/* ================================================================
   診療科目 メガメニュー（PCのみ・右半分スライドインパネル）
   - 既存グローバルメニューのレイアウトには影響しません
   - position:fixed で別レイヤーに描画
   ================================================================ */

:root{
  --sm-green:      #8bc34a;
  --sm-green-dark: #558b2f;
  --sm-mint:       #aed581;
  --sm-text:       #333333;
  --sm-muted:      #5a6b6a;
  --sm-ease-out:   cubic-bezier(0.22, 1, 0.36, 1);
  --sm-ease-pow:   cubic-bezier(0.77, 0, 0.175, 1);
  --sm-ease-spring:cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* トリガーリンク側 */
.sm-trigger{position:relative}
.sm-trigger .sm-caret{
  display:inline-block;width:8px;height:8px;margin-left:6px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .4s var(--sm-ease-spring);vertical-align:middle;
}
.sm-trigger.is-open .sm-caret{transform:rotate(-135deg) translateY(1px)}

/* ===== パネル本体 =====
   .sm-panel: top:0 から画面全体をカバー（ナビへのホバー橋渡し用）
   .sm-inner: 実際に見えるパネル（--sm-offset-top から下のみ描画）
*/
.sm-panel{
  position:fixed;
  top:0;right:0;
  width:min(820px, 62vw);
  height:100vh;
  background:transparent;
  opacity:0;visibility:hidden;
  transform:translateX(40px);
  transform-origin:top right;
  transition:
    opacity .5s var(--sm-ease-out),
    transform .65s var(--sm-ease-pow),
    visibility .5s;
  pointer-events:none;
  z-index:55;
  font-family:'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','メイリオ','Meiryo',sans-serif;
}
.sm-panel.is-open{
  opacity:1;visibility:visible;
  transform:translateX(0);
  pointer-events:auto;
}

/* 左の縦ラインアクセント */
.sm-panel::before{
  content:'';position:absolute;
  top:calc(var(--sm-offset-top, 120px) + 40px);bottom:40px;left:0;width:2px;
  background:linear-gradient(180deg,
    transparent 0%,var(--sm-mint) 10%,
    var(--sm-green) 50%,var(--sm-green-dark) 90%,
    transparent 100%);
  transform:scaleY(0);transform-origin:top;
  transition:transform 1.1s var(--sm-ease-pow) .15s;
  z-index:2;border-radius:2px;
  box-shadow:0 0 10px rgba(139,195,74,.35);
}
.sm-panel.is-open::before{transform:scaleY(1)}

/* 実際に見える「ガラス」パネル */
.sm-inner{
  position:absolute;
  top:var(--sm-offset-top, 120px);
  left:0;right:0;bottom:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.82) 0%, rgba(255,255,255,.68) 100%);
  backdrop-filter:blur(28px) saturate(180%);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  border-left:1px solid rgba(255,255,255,.6);
  border-top:1px solid rgba(255,255,255,.75);
  border-top-left-radius:28px;
  box-shadow:
    -28px 0 80px rgba(26,42,18,.14),
    -4px -4px 24px rgba(139,195,74,.08),
    inset 1px 1px 0 rgba(255,255,255,.8);
  padding:34px 44px 36px;
  display:flex;flex-direction:column;
  overflow-y:auto;overflow-x:hidden;
}

/* 左上の装飾グロー */
.sm-inner::after{
  content:'';position:absolute;top:0;left:0;
  width:180px;height:180px;
  background:radial-gradient(circle at 0% 0%, rgba(139,195,74,.18), transparent 60%);
  pointer-events:none;border-top-left-radius:inherit;z-index:0;
}
/* パネル内の装飾ブロブ */
.sm-inner::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(400px 400px at 100% 110%, rgba(174,213,129,.22), transparent 60%),
    radial-gradient(500px 300px at 0% 0%, rgba(139,195,74,.14), transparent 60%);
  pointer-events:none;opacity:0;
  transition:opacity .8s var(--sm-ease-out) .2s;z-index:0;
}
.sm-panel.is-open .sm-inner::before{opacity:1}
.sm-inner > *{position:relative;z-index:1}

/* ヘッダー（中央寄せ + 絶対配置の閉じるボタン） */
.sm-head{
  position:relative;display:flex;flex-direction:column;align-items:center;
  margin-top:0;margin-bottom:14px;padding:4px 0 22px;gap:6px;
}
.sm-head::after{
  content:'';position:absolute;left:50%;bottom:0;
  width:56px;height:2px;
  background:linear-gradient(90deg, transparent, var(--sm-green), var(--sm-green-dark), transparent);
  transform:translateX(-50%) scaleX(0);transform-origin:center;
  transition:transform .9s var(--sm-ease-pow) .35s;border-radius:2px;
}
.sm-panel.is-open .sm-head::after{transform:translateX(-50%) scaleX(1)}

.sm-head-left{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  opacity:0;transform:translateY(-10px);
  transition:opacity .6s var(--sm-ease-out) .2s, transform .7s var(--sm-ease-spring) .2s;
}
.sm-panel.is-open .sm-head-left{opacity:1;transform:translateY(0)}

.sm-tag{
  font-size:12px;font-weight:700;letter-spacing:.35em;text-transform:uppercase;
  color:var(--sm-green-dark);position:relative;padding:0 14px;
}
.sm-tag::before,.sm-tag::after{
  content:'';position:absolute;top:50%;width:18px;height:1px;
  background:linear-gradient(90deg, transparent, var(--sm-green));
}
.sm-tag::before{right:100%}
.sm-tag::after{left:100%;background:linear-gradient(90deg, var(--sm-green), transparent)}
.sm-title{
  font-size:26px;font-weight:800;letter-spacing:.08em;
  background:linear-gradient(135deg, #33691e 0%, #558b2f 45%, #689f38 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 1px 0 rgba(255,255,255,.3);
}

.sm-close{
  position:absolute;top:6px;right:0;z-index:3;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;border-radius:999px;
  background:rgba(241,248,233,.8);color:var(--sm-green-dark);
  font-size:12px;font-weight:700;letter-spacing:.05em;
  text-decoration:none;border:1px solid rgba(139,195,74,.25);
  cursor:pointer;font-family:inherit;
  transition:all .4s var(--sm-ease-spring);
  white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.sm-close:hover{
  background:var(--sm-green-dark);color:#fff;
  border-color:var(--sm-green-dark);transform:translateY(-1px);
}
.sm-close svg{width:13px;height:13px;transition:transform .5s var(--sm-ease-spring)}
.sm-close:hover svg{transform:rotate(90deg)}

/* 一覧を見る（左上：閉じるボタンの対称位置） */
.sm-view-all{
  position:absolute;top:6px;left:0;z-index:3;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;border-radius:999px;
  background:rgba(241,248,233,.8);color:var(--sm-green-dark);
  font-size:12px;font-weight:700;letter-spacing:.05em;
  text-decoration:none;border:1px solid rgba(139,195,74,.25);
  cursor:pointer;font-family:inherit;
  transition:all .4s var(--sm-ease-spring);
  white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.sm-view-all:hover{
  background:var(--sm-green-dark);color:#fff;
  border-color:var(--sm-green-dark);transform:translateY(-1px);
}
.sm-view-all svg{width:13px;height:13px;transition:transform .4s var(--sm-ease-spring)}
.sm-view-all:hover svg{transform:translateX(3px)}

/* リスト */
.sm-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.sm-item{
  position:relative;display:flex;align-items:center;gap:18px;
  padding:18px 22px;border-radius:12px;cursor:pointer;overflow:hidden;
  opacity:0;transform:translateX(24px);
  transition:
    opacity .55s var(--sm-ease-out),
    transform .65s var(--sm-ease-spring),
    background .4s var(--sm-ease-out);
  text-decoration:none;color:inherit;
  background-image:
    linear-gradient(90deg,
      transparent 0%,rgba(139,195,74,.45) 12%,
      rgba(85,139,47,.75) 50%,rgba(139,195,74,.45) 88%,
      transparent 100%);
  background-repeat:no-repeat;background-size:100% 2px;background-position:bottom left;
}
.sm-item:last-child{background-image:none}
.sm-panel.is-open .sm-item{opacity:1;transform:translateX(0)}
.sm-panel.is-open .sm-item:nth-child(1){transition-delay:.12s}
.sm-panel.is-open .sm-item:nth-child(2){transition-delay:.16s}
.sm-panel.is-open .sm-item:nth-child(3){transition-delay:.20s}
.sm-panel.is-open .sm-item:nth-child(4){transition-delay:.24s}
.sm-panel.is-open .sm-item:nth-child(5){transition-delay:.28s}
.sm-panel.is-open .sm-item:nth-child(6){transition-delay:.32s}
.sm-panel.is-open .sm-item:nth-child(7){transition-delay:.36s}
.sm-panel.is-open .sm-item:nth-child(8){transition-delay:.40s}
.sm-panel.is-open .sm-item:nth-child(9){transition-delay:.44s}
.sm-panel.is-open .sm-item:nth-child(10){transition-delay:.48s}
.sm-panel.is-open .sm-item:nth-child(11){transition-delay:.52s}
.sm-panel.is-open .sm-item:nth-child(12){transition-delay:.56s}
.sm-panel.is-open .sm-item:nth-child(13){transition-delay:.60s}

.sm-item::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(241,248,233,.85) 0%, rgba(241,248,233,.25) 100%);
  opacity:0;transition:opacity .4s var(--sm-ease-out);z-index:-1;border-radius:inherit;
}
.sm-item::after{
  content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;
  background:linear-gradient(180deg, #8bc34a, #4a8a3e);border-radius:3px;
  transform:scaleY(0);transform-origin:center;
  transition:transform .5s var(--sm-ease-spring);
}
.sm-item:hover::before{opacity:1}
.sm-item:hover::after{transform:scaleY(1)}

.sm-item-body{flex:1;min-width:0;display:flex;align-items:center;gap:20px}
.sm-num{
  font-family:'Plus Jakarta Sans','Noto Sans JP',sans-serif;
  font-size:12px;font-weight:800;letter-spacing:.15em;
  color:var(--sm-muted);flex-shrink:0;min-width:26px;
  transition:color .4s var(--sm-ease-out), transform .5s var(--sm-ease-spring);
}
.sm-item:hover .sm-num{color:var(--sm-green-dark);transform:translateX(4px)}
.sm-item-title{
  font-size:16px;font-weight:700;color:var(--sm-text);
  letter-spacing:.02em;line-height:1.4;flex:1;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  transition:color .35s var(--sm-ease-out);
}
.sm-item:hover .sm-item-title{color:var(--sm-green-dark)}
.sm-arrow{
  width:16px;height:12px;position:relative;flex-shrink:0;
  opacity:0;transform:translateX(-8px);
  transition:opacity .35s var(--sm-ease-out),transform .4s var(--sm-ease-spring);
}
.sm-arrow::before{
  content:'';position:absolute;left:0;top:50%;width:100%;height:2px;
  background:var(--sm-green-dark);transform:translateY(-50%);border-radius:2px;
}
.sm-arrow::after{
  content:'';position:absolute;right:0;top:50%;width:7px;height:7px;
  border-right:2px solid var(--sm-green-dark);border-top:2px solid var(--sm-green-dark);
  transform:translateY(-50%) rotate(45deg);
}
.sm-item:hover .sm-arrow{opacity:1;transform:translateX(0)}

/* 背景オーバーレイ */
.sm-backdrop{
  position:fixed;inset:0;
  background:rgba(20,30,15,.25);
  backdrop-filter:blur(3px) saturate(110%);
  -webkit-backdrop-filter:blur(3px) saturate(110%);
  opacity:0;visibility:hidden;z-index:54;
  transition:opacity .5s var(--sm-ease-out),visibility .5s;
  pointer-events:none;
}
.sm-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}

/* SPでは無効化 */
@media (max-width:1023px){
  .sm-panel,.sm-backdrop{display:none !important}
  .sm-trigger .sm-caret{display:none}
}

/* モーション配慮 */
@media (prefers-reduced-motion: reduce){
  .sm-panel,.sm-panel::before,.sm-item,.sm-arrow,.sm-num{
    transition-duration:.01ms !important;
  }
}

/* ================================================================
   文字サイズ切替（大中小）— 全ページ共通の統一スタイル
   JS: services-mega.js の統一ハンドラが body に sd-font-s / sd-font-l を付与。
   旧 site-font 系（style.css）・mdt-detail.css / index.css の個別定義はここへ集約。
   ================================================================ */

/* ---- 詳細ページ（mdt_*：.sd-* コンテンツ） ---- */
body.sd-font-s .sd-body p,
body.sd-font-s .sd-note{font-size:14px}
body.sd-font-s .sd-body li,
body.sd-font-s .sd-checklist li{font-size:13.5px}
body.sd-font-s .sd-h2{font-size:23px}
body.sd-font-s .sd-h3{font-size:18px}
body.sd-font-s .sd-card h4{font-size:13.5px}
body.sd-font-s .sd-card p{font-size:13px}
body.sd-font-s .sd-chip{font-size:13px}
@media(min-width:900px){body.sd-font-s .sd-h2{font-size:28px}}
body.sd-font-l .sd-body p,
body.sd-font-l .sd-note{font-size:18px}
body.sd-font-l .sd-body li,
body.sd-font-l .sd-checklist li{font-size:17px}
body.sd-font-l .sd-h2{font-size:30px}
body.sd-font-l .sd-h3{font-size:22px}
body.sd-font-l .sd-card h4{font-size:17px}
body.sd-font-l .sd-card p{font-size:16px}
body.sd-font-l .sd-chip{font-size:16px}
@media(min-width:900px){body.sd-font-l .sd-h2{font-size:36px}}

/* ---- トップページ（index.html） ---- */
body.sd-font-s .concept-desc{font-size:12px}
body.sd-font-s .concept-heading{font-size:21px}
body.sd-font-s .concept-label{font-size:12px}
body.sd-font-s .nested-heading{font-size:24px}
body.sd-font-s .nested-topix-title{font-size:21px}
body.sd-font-s .nested-topix-text{font-size:13.5px}
body.sd-font-s .topMedical-card-title{font-size:14px}
body.sd-font-s .topMedical-card-label{font-size:12px}
body.sd-font-s .concept-features li{font-size:13.5px}
body.sd-font-s .info-date{font-size:12px}
body.sd-font-s .info-cat{font-size:10px}
body.sd-font-s .info-title,
body.sd-font-s .info-title a{font-size:13px}
body.sd-font-l .concept-desc{font-size:17px}
body.sd-font-l .concept-heading{font-size:28px}
body.sd-font-l .concept-label{font-size:15px}
body.sd-font-l .nested-heading{font-size:31px}
body.sd-font-l .nested-topix-title{font-size:28px}
body.sd-font-l .nested-topix-text{font-size:17px}
body.sd-font-l .topMedical-card-title{font-size:18px}
body.sd-font-l .topMedical-card-label{font-size:15px}
body.sd-font-l .concept-features li{font-size:17px}
body.sd-font-l .info-date{font-size:15px}
body.sd-font-l .info-cat{font-size:13px}
body.sd-font-l .info-title,
body.sd-font-l .info-title a{font-size:16px}

/* ---- 下層ページ（doctor/first/access/services/facility/cooperation/news/news_detail/kijun） ----
   これらは Tailwind ユーティリティ構成のため main#main 内の text-* をスケール。
   文字サイズUIは lg(≥1024px) でのみ表示されるので @media(min-width:1024px) 内で適用。
   トークン昇順に記述し、md: 等の広幅変種が後勝ちする挙動に追随。 */
@media(min-width:1024px){
  /* === 小 === */
  body.sd-font-s main#main .text-xs,
  body.sd-font-s main#main .sm\:text-xs,
  body.sd-font-s main#main .md\:text-xs,
  body.sd-font-s main#main .lg\:text-xs{font-size:11px}
  body.sd-font-s main#main .text-sm,
  body.sd-font-s main#main .sm\:text-sm,
  body.sd-font-s main#main .md\:text-sm,
  body.sd-font-s main#main .lg\:text-sm{font-size:13px}
  body.sd-font-s main#main .text-base,
  body.sd-font-s main#main .sm\:text-base,
  body.sd-font-s main#main .md\:text-base,
  body.sd-font-s main#main .lg\:text-base{font-size:14px}
  body.sd-font-s main#main .text-lg,
  body.sd-font-s main#main .sm\:text-lg,
  body.sd-font-s main#main .md\:text-lg,
  body.sd-font-s main#main .lg\:text-lg{font-size:16px}
  body.sd-font-s main#main .text-xl,
  body.sd-font-s main#main .sm\:text-xl,
  body.sd-font-s main#main .md\:text-xl,
  body.sd-font-s main#main .lg\:text-xl{font-size:18px}
  body.sd-font-s main#main .text-2xl,
  body.sd-font-s main#main .sm\:text-2xl,
  body.sd-font-s main#main .md\:text-2xl,
  body.sd-font-s main#main .lg\:text-2xl{font-size:21px}
  body.sd-font-s main#main .text-3xl,
  body.sd-font-s main#main .sm\:text-3xl,
  body.sd-font-s main#main .md\:text-3xl,
  body.sd-font-s main#main .lg\:text-3xl{font-size:26px}
  body.sd-font-s main#main .text-4xl,
  body.sd-font-s main#main .sm\:text-4xl,
  body.sd-font-s main#main .md\:text-4xl,
  body.sd-font-s main#main .lg\:text-4xl{font-size:31px}
  /* 無クラス継承テキスト（news_detail 等） */
  body.sd-font-s main#main p,
  body.sd-font-s main#main li,
  body.sd-font-s main#main dd,
  body.sd-font-s main#main dt,
  body.sd-font-s main#main td,
  body.sd-font-s main#main th{font-size:14px}
  body.sd-font-s main#main h2{font-size:18px}
  body.sd-font-s main#main h3{font-size:16px}
  body.sd-font-s main#main h4{font-size:15px}
  /* news_detail 独自クラス（汎用 main#main h2 より詳細度を上げるため main#main で限定） */
  body.sd-font-s main#main .news-article-title{font-size:24px}
  body.sd-font-s main#main .news-article-date,
  body.sd-font-s main#main .nav-prev,
  body.sd-font-s main#main .nav-next{font-size:12px}
  body.sd-font-s main#main .news-article-cat{font-size:10px}
  body.sd-font-s main#main .nav-label{font-size:11px}

  /* === 大 === */
  body.sd-font-l main#main .text-xs,
  body.sd-font-l main#main .sm\:text-xs,
  body.sd-font-l main#main .md\:text-xs,
  body.sd-font-l main#main .lg\:text-xs{font-size:13px}
  body.sd-font-l main#main .text-sm,
  body.sd-font-l main#main .sm\:text-sm,
  body.sd-font-l main#main .md\:text-sm,
  body.sd-font-l main#main .lg\:text-sm{font-size:16px}
  body.sd-font-l main#main .text-base,
  body.sd-font-l main#main .sm\:text-base,
  body.sd-font-l main#main .md\:text-base,
  body.sd-font-l main#main .lg\:text-base{font-size:18px}
  body.sd-font-l main#main .text-lg,
  body.sd-font-l main#main .sm\:text-lg,
  body.sd-font-l main#main .md\:text-lg,
  body.sd-font-l main#main .lg\:text-lg{font-size:20px}
  body.sd-font-l main#main .text-xl,
  body.sd-font-l main#main .sm\:text-xl,
  body.sd-font-l main#main .md\:text-xl,
  body.sd-font-l main#main .lg\:text-xl{font-size:22px}
  body.sd-font-l main#main .text-2xl,
  body.sd-font-l main#main .sm\:text-2xl,
  body.sd-font-l main#main .md\:text-2xl,
  body.sd-font-l main#main .lg\:text-2xl{font-size:27px}
  body.sd-font-l main#main .text-3xl,
  body.sd-font-l main#main .sm\:text-3xl,
  body.sd-font-l main#main .md\:text-3xl,
  body.sd-font-l main#main .lg\:text-3xl{font-size:34px}
  body.sd-font-l main#main .text-4xl,
  body.sd-font-l main#main .sm\:text-4xl,
  body.sd-font-l main#main .md\:text-4xl,
  body.sd-font-l main#main .lg\:text-4xl{font-size:41px}
  /* 無クラス継承テキスト（news_detail 等） */
  body.sd-font-l main#main p,
  body.sd-font-l main#main li,
  body.sd-font-l main#main dd,
  body.sd-font-l main#main dt,
  body.sd-font-l main#main td,
  body.sd-font-l main#main th{font-size:18px}
  body.sd-font-l main#main h2{font-size:23px}
  body.sd-font-l main#main h3{font-size:20px}
  body.sd-font-l main#main h4{font-size:18px}
  /* news_detail 独自クラス（汎用 main#main h2 より詳細度を上げるため main#main で限定） */
  body.sd-font-l main#main .news-article-title{font-size:32px}
  body.sd-font-l main#main .news-article-date,
  body.sd-font-l main#main .nav-prev,
  body.sd-font-l main#main .nav-next{font-size:15px}
  body.sd-font-l main#main .news-article-cat{font-size:13px}
  body.sd-font-l main#main .nav-label{font-size:14px}
}

