@charset "UTF-8";
/* =========================================================
   Silver-tone redesign.css
   2026-08-16 rev.4 — テンプレート改修に合わせた全面版

   ■ 前提（rev.4 でテンプレート側を改修した）
   template.asp / template_new.asp / template_test.asp /
   hobby/template_copy.asp / howto/template_howto.asp /
   diary_concert/template_copy.asp の6本で、writeheader()・
   writenavi1()・writemenu()・writemenu2()・changecss() を共通化した。
     ・UA判定による出し分けは全廃（レスポンシブ1本）
     ・バナー画像 → テキストロゴ .head-logo
     ・#header-section を正しく閉じた（旧版は閉じておらずページ全体を
       包んでいた。もう「幅以外を書くな」という制約は無い）
     ・#nav-input を #wrap 直下（#all-column より前の兄弟）に出し、
       スマホでは #left-column そのものをドロワーとして滑り込ませる
       → 33項目のHTML二重化はしていない
     ・/howto/ の writemenu2() も #left-column に統一（旧 #left-column2
       のままだとドロワーが空になる）
   CSSは全ページで /css/redesign.css を読む。段階リリースはしない方針
   （サイト全体を仕上げてから一括で上げる）。

   ■ rev.1 で本番を崩した原因（同じ轍を踏まないための記録）
   旧CSSの実定義を確認せず、一部のプロパティだけ上書きした。
     ・#left-column li a に height:1.3em の固定高さがあるのに
       font-size と padding だけ変えた → 行が重なった（致命的）
     ・li.left-navheader は背景画像 img_left_menutitle2.jpg が
       背景に敷かれているのに padding だけ変えた → 画像と文字がずれた
     ・#header li の float:left を残したまま flex 化 → ナビ崩壊
     ・#header-background-right の float:right を解除 → 検索が左へ
   → この版では、旧定義を打ち消してから組み直す。
     特に height / background / float / border / width は明示的に戻す。

   ■ ブレークポイント
   1000px。未満 = 1カラム + ドロワー、以上 = 3カラム（最大1280px）。
   UA判定を外したので、PCブラウザを縮めてもドロワーが出る。

   ■ 未対応（次の作業）
   ・トップページ等の .middle-column-box-* 系のデザイン
   ・テンプレートを include しない236ファイル（diary 127 ほか）
   ・スマホのヘッダに検索が無い（.head-search は 1000px 未満で非表示）
   ========================================================= */

:root{
  --brick:#963232; --brick-d:#7A2828;
  --terra-ink:#A55638; --terra:#C2765C;
  --terra-p:#F2E1D8; --terra-pp:#FBF4EF;
  --bg:#FAF7F4; --surface:#FFFFFF;
  --ink:#2A2320; --ink2:#463C37; --muted:#6F625B;
  --line:#E5D9D1; --line-s:#D6C4B9;
  --serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,system-ui,sans-serif;
  --gut:20px;
}

/* =========================================================
   1. 土台
   旧: body{font-size:62.5%; background:url(img_background1.gif) repeat-y;
            font-family:Verdana,Tahoma,Arial}
   ========================================================= */
html{-webkit-text-size-adjust:100%}
body{
  margin:0;padding:0;
  font-size:16px;line-height:1.9;letter-spacing:.02em;
  font-family:var(--sans);
  font-feature-settings:"palt" 1;
  background:var(--bg);
  background-image:none;
  color:var(--ink);
}
body *{box-sizing:border-box}
body img{max-width:100%;height:auto}

/* 旧: #wrap{width:872px} */
#wrap{width:auto;max-width:100%;margin:0}

/* =========================================================
   2. 上部の帯（#header-top）
   旧: border-right / background:#fff / height:2em / line-height:2em /
       text-transform:uppercase
   ========================================================= */
#header-top{
  clear:both;margin:0;padding:8px var(--gut);
  border:0;border-bottom:1px solid var(--line);
  background:var(--surface);
  height:auto;line-height:1.7;
  text-transform:none;
  font-size:12px;color:var(--muted);
}
#header-top p{margin:0;font-size:12px;line-height:1.7}
#header-top ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:14px}
#header-top li{float:none;margin:0}
#header-top li a{
  display:inline-block;padding:2px 0;border:0;background:none;
  font-size:12.5px;color:var(--ink2);text-decoration:none;
}
#header-top li a:hover{color:var(--brick);text-decoration:underline}
@media (min-width:1000px){
  #header-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 28px}
}

/* =========================================================
   3. ヘッダ本体（#header-section）
   2026-08-16 テンプレート改修後の前提:
     ・UA判定は撤廃。PC/スマホとも同じHTMLが出る
     ・#header-section は正しく閉じている（旧版は閉じておらず
       ページ全体がこの中に入っていた。もう気にしなくてよい）
     ・中身は .head-inner > (#nav-open / .head-logo / .head-search)
     ・バナー画像は廃止しテキストロゴ(.head-logo)になった
   旧 style.css の #header-section{width:872px} を打ち消す。
   ========================================================= */
#header-section{
  position:relative;
  width:auto;max-width:100%;margin:0;padding:0;border:0;
  background:#2A1113;
  border-bottom:3px solid var(--terra-ink);
  color:#FFF7F2;
}
/* スマホは上端に貼り付ける。写真は読み込ませない（min-width:1000px 側でのみ指定） */
@media (max-width:999px){
  #header-section{position:sticky;top:0;z-index:60}
}
@media (min-width:1000px){
  #header-section{
    background-image:
      linear-gradient(100deg,rgba(33,10,12,.96) 0%,rgba(35,11,13,.90) 30%,rgba(37,12,14,.62) 58%,rgba(40,14,16,.40) 100%),
      url(/img/header_violin.jpg);
    background-size:cover,cover;
    background-position:center,center 38%;
    background-repeat:no-repeat,no-repeat;
  }
}
.head-inner{
  display:flex;align-items:center;gap:10px;
  margin:0 auto;padding:0 var(--gut);
  min-height:56px;
}
@media (min-width:1000px){
  .head-inner{
    max-width:1280px;padding:34px 28px;gap:40px;
    justify-content:space-between;
  }
}

/* --- ロゴ（テキスト） --- */
.head-logo{
  display:block;flex:1 1 auto;min-width:0;
  text-decoration:none;color:#FFF7F2;
}
.head-logo:hover{text-decoration:none}
.head-logo .kicker{
  display:none;
  margin:0 0 6px;font-size:11px;font-weight:700;
  letter-spacing:.24em;color:#E4AE81;
}
.head-logo .latin{
  display:block;
  font-family:var(--serif);font-size:21px;font-weight:600;
  line-height:1.15;letter-spacing:.06em;color:#FFF7F2;
}
.head-logo .jp{
  display:block;margin-top:2px;
  font-size:10.5px;letter-spacing:.06em;color:#EDD9CE;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
@media (min-width:1000px){
  .head-logo{flex:0 1 auto}
  .head-logo .kicker{display:flex;align-items:center;gap:9px}
  .head-logo .kicker:before{content:"";width:22px;height:1px;background:#E4AE81;opacity:.85}
  .head-logo .latin{font-size:40px;line-height:1.05;letter-spacing:.07em}
  .head-logo .latin:after{
    content:"";display:block;width:56px;height:2px;margin:13px 0 0;
    background:linear-gradient(90deg,#E4AE81,rgba(228,174,129,0));
  }
  .head-logo .jp{margin-top:11px;font-size:14px;letter-spacing:.1em}
}

/* --- ハンバーガー（スマホのみ） ---
   旧 stylem.css は 75px の巨大ボタンだったが stylem.css はもう
   読み込まない。それでも直リンクしているページに備えて寸法を明示する */
#nav-open{
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;width:44px;height:44px;
  margin:0 0 0 -10px;padding:0;
  background:none;border:0;cursor:pointer;
}
#nav-open span{
  display:block;position:relative;
  width:22px;height:2px;background:#FFF7F2;border-radius:2px;
}
#nav-open span:before,#nav-open span:after{
  content:"";position:absolute;left:0;
  width:22px;height:2px;background:#FFF7F2;border-radius:2px;
}
#nav-open span:before{top:-7px}
#nav-open span:after{top:7px}
@media (min-width:1000px){
  #nav-open{display:none}
}

/* --- 検索フォーム ---
   スマホでは出さない（appbar を 56px に保つため。
   旧テンプレートもスマホには検索を出していなかった） */
.head-search{display:none}
@media (min-width:1000px){
  .head-search{display:block;flex:0 0 310px;width:310px}
  .head-search form{margin:0}
  .head-search-row{
    display:flex;overflow:hidden;
    border:1px solid var(--line-s);border-radius:8px;background:var(--surface);
  }
  .head-search input[type="text"]{
    flex:1 1 auto;min-width:0;height:40px;
    margin:0;padding:8px 12px;border:0;
    font-size:14px;color:var(--ink);background:transparent;
  }
  .head-search input[type="text"]:focus{outline:2px solid var(--terra);outline-offset:-2px}
  .head-search input[type="submit"]{
    flex:0 0 auto;height:40px;margin:0;padding:0 16px;
    border:0;cursor:pointer;
    background:var(--brick);color:#fff;
    font-size:13.5px;font-weight:600;letter-spacing:.04em;
  }
  .head-search input[type="submit"]:hover{background:var(--brick-d)}
  .head-search-scope{
    display:flex;gap:16px;margin:8px 0 0;
    font-size:12px;color:#EDD9CE;
  }
  .head-search-scope label{display:flex;align-items:center;gap:5px;cursor:pointer}
  .head-search input[type="radio"]{margin:0;vertical-align:middle}
}

/* =========================================================
   4. グローバルナビ（#header）
   旧: background:rgb(255,160,130) / border-top,bottom / height:2em /
       line-height:2em / text-transform:uppercase
       #header li{float:left} / #header li a{background:rgb(255,160,130);
       border-right:0.1em; padding:0 1em}
   スマホは7項目が収まらないので横スクロールにする（折り返さない）
   ========================================================= */
#header{
  clear:both;margin:0;padding:0;
  border:0;border-bottom:1px solid var(--line);
  background:var(--surface);
  height:auto;line-height:1.6;
  text-transform:none;
}
#header ul{
  margin:0 auto;padding:0 var(--gut);list-style:none;
  display:flex;flex-wrap:nowrap;
  max-width:1280px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  font-size:16px;font-weight:400;
}
#header ul::-webkit-scrollbar{display:none}
#header li{float:none;margin:0;white-space:nowrap;flex:0 0 auto}
#header li a{
  display:block;padding:12px 14px;
  border:0;border-bottom:3px solid transparent;
  background:none;
  font-size:14px;font-weight:600;color:var(--ink2);
  text-decoration:none;
}
#header li a:hover{color:var(--brick);border-bottom-color:var(--terra);text-decoration:none}
#header .selected,#header li a.selected{
  color:var(--brick);border-bottom-color:var(--brick);background:none;
}
@media (min-width:1000px){
  #header ul{padding:0 28px;overflow-x:visible}
  #header li a{padding:15px 20px;font-size:15px}
}

/* =========================================================
   5. ドロワー（スマホ）
   HTMLは二重化していない。左メニュー #left-column そのものを
   スマホでは画面外に置き、#nav-input:checked で滑り込ませる。
     #nav-input … #wrap 直下（#all-column より前の兄弟）
     #nav-close … 全面オーバーレイ
     .drawer-close … #left-column 内の閉じるボタン
   ========================================================= */
.nav-unshown{display:none}
#nav-close{display:none}
@media (max-width:999px){
  #nav-input:checked ~ #nav-close{
    display:block;position:fixed;inset:0;
    background:rgba(20,10,8,.5);
    z-index:70;cursor:pointer;
  }
}

/* =========================================================
   6. カラムレイアウト（2026-08-16 右カラム廃止 → 2カラム）
   旧: #left-middle-column{width:700px;float:left}
       #middle-column{float:right;width:508px}
       #left-column{width:172px;float:left}
   右カラム(#right-column)は全ページから削除した。中身は
   2007年作成の160px広告2枠・消滅したAmazonウィジェット・
   2018年で止まった更新情報だけで、しかも全部PC限定だった。
   広告は AdSense 自動配信（<head> のタグ）に一本化している。
   HTML順は #left-middle-column(#middle-column → #left-column)。
   PCでは order で「左メニュー｜本文」に並べ替える。
   本文は日本語の可読幅（1行40〜45字）に収まるよう 760px で頭打ち。
   ========================================================= */
#all-column{margin:0;padding:0}
#left-middle-column,
#middle-column,
#left-column{
  float:none;width:auto;margin:0;padding:0;background:none;
}
#middle-column{padding:0 var(--gut)}
#left-column{padding:0 var(--gut)}
/* 旧レイアウトは中身が float なので、親の高さが 0 に潰れる。
   放置すると後続（左メニュー・フッタ）が本文に重なる。 */
#all-column,#left-middle-column,#middle-column{display:flow-root}
/* 本文内の2段組（トップページ等）。1000px 未満では縦に積む */
@media (max-width:999px){
  .middle-column-left,.middle-column-right{float:none;width:auto}
}

@media (min-width:1000px){
  #all-column{
    max-width:1048px;margin:0 auto;padding:36px 28px 56px;
  }
  #left-middle-column{
    display:grid;grid-template-columns:200px minmax(0,1fr);gap:40px;
    align-items:start;
  }
  #middle-column{order:2;padding:0;max-width:760px}
  #left-column{order:1;padding:0;position:sticky;top:20px}
}
@media (max-width:999px){
  /* 左メニューはドロワーになるので流れから外す */
  #left-column{
    position:fixed;top:0;left:0;bottom:0;z-index:80;
    width:86%;max-width:330px;margin:0;padding:16px 16px 48px;
    background:var(--surface);
    box-shadow:6px 0 28px rgba(30,15,10,.28);
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    transform:translateX(-101%);
    transition:transform .25s ease;
  }
  #nav-input:checked ~ #all-column #left-column{transform:translateX(0)}
}

/* =========================================================
   7. 左メニュー（#left-column）
   ★ここが rev.1 で崩れた箇所。旧定義を明示的に打ち消す。
     旧 #left-column ul{width:165px}
     旧 #left-column li a{height:1.3em; padding:.4em .7em .1em 1.2em;
        border-left:.5em; border-top:.1em; background-color:rgb(255,230,220)}
     旧 li.left-navheader{background:url(img_left_menutitle2.jpg) top center;
        font-size:1.2em; padding:.3em .7em .2em .9em}
     旧 li.left-navheader-first{background-color:rgb(240,215,205);font-size:1.4em}
   ========================================================= */
#left-column{font-size:14.5px;color:var(--ink2)}
#left-column ul{width:auto;margin:0;padding:0;list-style:none}

/* ドロワーの閉じるボタン。PCでは出さない */
.drawer-close{display:none}
@media (max-width:999px){
  .drawer-close{
    display:block;position:absolute;top:10px;right:10px;
    width:38px;height:38px;cursor:pointer;border-radius:50%;
    background:var(--terra-pp);
  }
  .drawer-close:before,.drawer-close:after{
    content:"";position:absolute;top:18px;left:11px;
    width:16px;height:2px;background:var(--brick);border-radius:2px;
  }
  .drawer-close:before{transform:rotate(45deg)}
  .drawer-close:after{transform:rotate(-45deg)}
  /* 閉じるボタンと重ならないよう、ドロワー先頭の見出しは右を空ける */
  #left-column li.left-navheader-first{padding-right:52px}
  /* 楽天ウィジェット(160x600)はドロワー最下部。幅からはみ出さないように */
  #left-column iframe,#left-column ins,#left-column img{max-width:100%}
}
#left-column li{margin:0;padding:0;list-style:none}

/* グループ見出し（li そのもの。中に a は無い） */
#left-column li.left-navheader,
#left-column li.left-navheader-first{
  display:block;
  background:none;background-image:none;background-color:transparent;
  border:0;border-bottom:1px solid var(--line-s);
  margin:26px 0 6px;padding:0 0 8px 2px;
  font-family:var(--sans);font-size:11.5px;font-weight:700;
  letter-spacing:.16em;line-height:1.6;
  color:var(--terra-ink);text-decoration:none;
}
#left-column li.left-navheader-first{
  margin-top:0;
  font-size:13px;letter-spacing:.1em;color:var(--ink);
  border-bottom-color:var(--brick);
}

/* 項目リンク。height:1.3em を必ず auto に戻す */
#left-column li a{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  height:auto;min-height:0;
  margin:0;padding:9px 8px 9px 2px;
  border:0;border-bottom:1px solid var(--line);
  background:none;background-color:transparent;
  font-size:14.5px;font-weight:400;line-height:1.6;
  color:var(--ink2);text-decoration:none;
  border-radius:0;
}
#left-column li a:hover{
  background:var(--terra-pp);color:var(--brick);
  border-left:0;text-decoration:none;
}
#left-column .selected{
  background:var(--terra-pp);color:var(--brick);font-weight:700;
}

/* =========================================================
   8. （旧）右カラム #right-column
   2026-08-16 に全ページから削除したため、スタイルも撤去した。
   中身は2007年作成の160px広告2枠・消滅したAmazonウィジェット・
   2018年で止まった更新情報だけで、しかも全部PC限定だった。
   広告は AdSense 自動配信（<head> のタグ）に一本化。
   ========================================================= */

/* =========================================================
   9. フッタ
   旧: width:872px; float:left; height:2.5em; border-top/bottom;
       background:rgb(240,215,205)
   ========================================================= */
#footer{
  clear:both;float:none;width:auto;height:auto;
  margin:0;padding:22px var(--gut);
  border:0;border-top:1px solid var(--line);
  background:var(--terra-pp);
  color:var(--muted);font-size:13px;line-height:1.9;text-align:center;
}
#footer a{color:var(--brick)}

/* =========================================================
   10. 本文（教室案内 boshu.asp）
   ========================================================= */
#middle-column{
  font-size:16px;line-height:1.9;letter-spacing:.02em;
  color:var(--ink);
}
#middle-column a{color:var(--brick);text-decoration:none}
#middle-column a:hover{text-decoration:underline}
#middle-column .content{max-width:740px;padding:0 0 40px}

/* --- ページヘッド --- */
#middle-column .pagehead{padding:26px 0 22px}
#middle-column .pagehead h1{
  clear:none;display:block;margin:0 0 10px;padding:0;border:0;
  font-family:var(--serif);font-size:27px;font-weight:600;
  line-height:1.5;letter-spacing:.04em;color:var(--ink);
}
/* 名前の横に顔写真を置く（profile.asp の見出し） */
#middle-column .person{
  display:flex;align-items:center;gap:16px;margin:0 0 18px;
}
#middle-column .person img{
  flex:0 0 auto;width:92px;height:92px;
  border:1px solid var(--line);border-radius:10px;
  object-fit:cover;object-position:center 42%;
}
#middle-column .person>div{min-width:0}
#middle-column .person h1{margin:0 0 6px}
#middle-column .person .where{margin:0}
@media (min-width:1000px){
  #middle-column .person{gap:20px}
  #middle-column .person img{width:118px;height:118px}
}

/* 肩書き行。.pagehead の中だけでなく、本文中の節（トップのプロフィール欄）でも使う */
#middle-column .where{
  margin:0 0 16px;font-family:var(--sans);font-size:14px;font-weight:600;
  letter-spacing:.05em;color:var(--terra-ink);line-height:1.7;
}
/* .where と同じく、.pagehead の外（本文冒頭の導入文）でも使う */
#middle-column .lead{
  margin:0 0 20px;font-size:16px;line-height:1.95;color:var(--ink2);
}
#middle-column .facts{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;padding:0;list-style:none;
}
#middle-column .facts li{
  margin:0;padding:7px 13px;border-radius:999px;list-style:none;
  font-size:13px;line-height:1.5;letter-spacing:.03em;
  background:var(--surface);border:1px solid var(--line-s);color:var(--ink2);
}

/* --- CTA --- */
#middle-column .cta{
  display:block;text-align:center;background:var(--brick);color:#fff;
  border-radius:12px;padding:17px 20px;
  font-size:16.5px;font-weight:600;letter-spacing:.04em;line-height:1.5;
  text-decoration:none;box-shadow:0 2px 0 var(--brick-d);
}
#middle-column .cta:hover{background:var(--brick-d);color:#fff;text-decoration:none}
#middle-column .cta small{
  display:block;margin-top:4px;font-size:12.5px;font-weight:400;
  opacity:.92;letter-spacing:.02em;
}
#middle-column .cta-note{
  margin:10px 0 0;font-size:13px;line-height:1.8;color:var(--muted);text-align:center;
}

/* --- セクション --- */
#middle-column .sec{margin:38px 0 0}
#middle-column .sec>h2{
  clear:none;display:block;margin:0 0 16px;padding:0 0 10px;
  font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.5;
  letter-spacing:.04em;color:var(--ink);
  border:0;border-bottom:2px solid var(--brick);
}
#middle-column .card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:20px;margin:0 0 12px;
}
#middle-column .card:last-child{margin-bottom:0}
#middle-column .card p{margin:0 0 14px;font-size:15.5px;line-height:1.95;color:var(--ink2)}
#middle-column .card p:last-child{margin-bottom:0}
#middle-column .card h3{
  clear:none;display:block;margin:0 0 12px;padding:0;border:0;
  font-family:var(--serif);font-size:17px;font-weight:600;line-height:1.6;color:var(--ink);
}

/* --- こんな方へ --- */
#middle-column .targets{display:grid;gap:8px;margin:0;padding:0;list-style:none}
#middle-column .targets li{margin:0;padding:0;list-style:none}
#middle-column .targets a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:52px;padding:12px 16px;text-decoration:none;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;
  font-size:15.5px;line-height:1.6;color:var(--ink);
}
#middle-column .targets a:after{
  content:"\203A";color:var(--line-s);font-size:20px;line-height:1;flex:0 0 auto;
}
#middle-column .targets a:hover{border-color:var(--terra);text-decoration:none}

/* --- 講師カード（コンテナ幅で1列/2列が決まる） --- */
#middle-column .tutors{
  display:grid;gap:14px;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  align-items:start;
}
#middle-column .tutor{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;
}
#middle-column .tutor-head{
  padding:16px 20px;background:var(--terra-pp);border-bottom:1px solid var(--line);
}
#middle-column .tutor-head h3{
  clear:none;display:block;margin:0;padding:0;border:0;
  font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.4;color:var(--ink);
}
#middle-column .tutor-head .day{
  display:inline-block;margin-top:7px;padding:4px 11px;border-radius:999px;
  background:var(--brick);color:#fff;font-family:var(--sans);
  font-size:12.5px;font-weight:600;letter-spacing:.06em;line-height:1.5;
}
#middle-column .tutor-body{padding:18px 20px}
#middle-column .tutor-body dl{margin:0;padding:0}
#middle-column .tutor-body dt{
  margin:0 0 4px;padding:0;font-family:var(--sans);font-size:12px;font-weight:700;
  letter-spacing:.12em;color:var(--terra-ink);line-height:1.6;
}
#middle-column .tutor-body dd{
  margin:0 0 16px;padding:0;font-size:15px;line-height:1.85;color:var(--ink2);
}
#middle-column .tutor-body dd:last-child{margin-bottom:0}
#middle-column .tutor-body .fee{
  background:var(--terra-pp);border-radius:9px;padding:12px 14px;
  font-size:14.5px;line-height:1.9;
}
#middle-column .tutor-body .fee+.fee{margin-top:8px}
#middle-column .tutor-body .fee b{font-size:16px;color:var(--ink);font-weight:700}
#middle-column .tutor-body .fee .sub{
  display:block;margin-top:5px;font-size:13px;color:var(--muted);
}
#middle-column .tutors-note{
  margin:14px 0 0;padding:16px 18px;background:var(--terra-pp);
  border-radius:10px;font-size:14.5px;line-height:1.9;color:var(--ink2);
}

/* --- 該当例の箇条書き --- */
#middle-column .checklist{margin:0 0 16px;padding:0;list-style:none}
#middle-column .checklist li{
  position:relative;margin:0 0 8px;padding:0 0 0 22px;list-style:none;
  font-size:15.5px;line-height:1.85;color:var(--ink2);
}
#middle-column .checklist li:before{
  content:"";position:absolute;left:4px;top:.75em;
  width:7px;height:7px;border-radius:50%;background:var(--terra);
}
#middle-column .checklist li:last-child{margin-bottom:0}

/* --- 写真・アーカイブ・注意・年齢別 --- */
#middle-column .photo{margin:0 0 16px;border-radius:10px;overflow:hidden}
#middle-column .photo img{display:block;width:100%;height:auto;border:0}
#middle-column .archive{font-size:14px;color:var(--muted);line-height:2}
#middle-column .note{
  background:#FDF6F1;border:1px solid var(--terra-p);
  border-left:4px solid var(--terra);border-radius:10px;
  padding:18px 20px;margin:0 0 12px;
}
#middle-column .note h3{
  clear:none;display:block;margin:0 0 8px;padding:0;border:0;
  font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.6;color:var(--brick);
}
#middle-column .note p{margin:0;font-size:14.5px;line-height:1.9;color:var(--ink2)}
#middle-column .ages{
  background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:20px;
}
#middle-column .ages p.intro{margin:0 0 18px;font-size:15.5px;line-height:1.95;color:var(--ink2)}
#middle-column .ages h3{
  clear:none;display:block;margin:22px 0 8px;padding:0 0 0 11px;
  font-family:var(--serif);font-size:16.5px;font-weight:600;line-height:1.6;
  color:var(--ink);border:0;border-left:3px solid var(--terra);
}
#middle-column .ages h3:first-of-type{margin-top:0}
#middle-column .ages p{margin:0 0 14px;font-size:15px;line-height:1.9;color:var(--ink2)}
#middle-column .ages p:last-child{margin-bottom:0}

/* =========================================================
   日記の本文（diary/diaryYYMMDD.asp・121ページ）
   元はテンプレート未使用の素のHTMLで、ページ内 <STYLE> に
     BODY,TH,TD{font-size:10.5pt;line-height:140%} / .pict{padding:4px;border:1px solid}
   を持っていた。共通テンプレートに載せ替えた際にその <STYLE> は撤去したので、
   写真の枠だけここで定義し直す。
   ========================================================= */
#middle-column .diary-body img{max-width:100%;height:auto}
#middle-column .diary-body img.pict{
  padding:4px;margin:0 6px 10px 0;
  border:1px solid var(--line-s);border-radius:4px;background:var(--surface);
}
#middle-column .diary-body table[width="550"]{width:100%}
#middle-column .diary-body hr{margin:28px 0 20px}

/* --- YouTube 埋め込み（library.asp）---
   旧 .youtube は stylem.css にしか無く、UA判定を外して stylem.css を
   読まなくなった時点で定義が消える。ここで必ず定義し直す */
#middle-column .youtube{
  position:relative;width:100%;overflow:hidden;
  padding-bottom:56.25%;height:0;
  margin:0 0 22px;border-radius:10px;background:#000;
}
#middle-column .youtube iframe{
  position:absolute;top:0;left:0;
  width:100%;height:100%;margin:0;border:0;
}

/* --- 本文内の広告 --- */
#middle-column .boshu1{max-width:100%;overflow-x:auto;margin:26px 0 0}
#middle-column ins,#middle-column iframe{max-width:100%}

/* =========================================================
   10. 旧マークアップの共通ボックス（下層ページの底上げ）
   マークアップを触らずに効かせる。使用実績（全.aspの実測）:
     .middle-column-box-white-large 102 / -title-grey 45 /
     .middle-column-img-left 29 / -right-white 18 /
     -white 17 / -left-white 15
   旧定義:
     .middle-column-box-*{float:left; width:100%(または98%); margin:0 0 1.5em}
     .middle-column-box-title-grey{background:url(img_middle_menusub.jpg) center;
        background-color:rgb(240,215,205); padding:.2em 0 .2em .3em}
     .middle-column-box-white-large li{font-size:1.3em}
     .middle-column-img-left{float:left; margin:.3em .5em 0 0; border:1px solid #646464}
   ========================================================= */
#middle-column .middle-column-box-white,
#middle-column .middle-column-box-white-large,
#middle-column .middle-column-box-left-white,
#middle-column .middle-column-box-right-white,
#middle-column .middle-column-box-blue,
#middle-column .middle-column-box-yellow,
#middle-column .middle-column-box-green,
#middle-column .middle-column-box-red{
  float:none;width:auto;margin:0 0 26px;padding:0;
  display:flow-root;   /* 中の回り込み画像で高さが潰れるのを防ぐ */
  background:none;
}
/* 本文の書体と文字サイズを統一する。
   旧CSSはボックスの種類ごとに p / li のサイズがバラバラだった（実測）:
     .middle-column-box-white p        0.9em → 14.4px
     .middle-column-box-white-large p  1.2em / line-height 1.4 → 19.2px
     .middle-column-box-white-large li 1.3em
     （blue / yellow / green / red にも同じ組が定義されている）
   → ID付きセレクタで一段強くして、見出し・メニューと同じ書体に揃える */
#middle-column p,
#middle-column li,
#middle-column dt,#middle-column dd,
#middle-column td,#middle-column th,
#middle-column blockquote,
#middle-column address{
  font-family:var(--sans);
  font-size:16px;line-height:1.9;
}
/* <font face="MS ゴシック"> 等は書体だけ無効化する（size 指定はそのまま） */
#middle-column font{font-family:inherit}

/* 見出し帯。背景画像(img_middle_menusub.jpg)を消して罫線見出しにする */
#middle-column .middle-column-box-title-grey,
#middle-column .middle-column-box-title-blue,
#middle-column .middle-column-box-title-yellow,
#middle-column .middle-column-box-title-green,
#middle-column .middle-column-box-title-red{
  clear:both;display:block;
  margin:0 0 14px;padding:0 0 9px;
  background:none;background-image:none;background-color:transparent;
  border:0;border-bottom:2px solid var(--brick);
  font-family:var(--serif);font-size:19px;font-weight:600;
  line-height:1.5;letter-spacing:.04em;color:var(--ink);
}
@media (min-width:1000px){
  #middle-column .middle-column-box-title-grey,
  #middle-column .middle-column-box-title-blue,
  #middle-column .middle-column-box-title-yellow,
  #middle-column .middle-column-box-title-green,
  #middle-column .middle-column-box-title-red{font-size:20px}
}

/* 本文中の回り込み画像。原寸100px前後の小さな資産なので拡大はしない */
#middle-column .middle-column-img-left{
  float:left;margin:4px 16px 8px 0;
  border:1px solid var(--line);border-radius:6px;
}
#middle-column .middle-column-img-right{
  float:right;margin:4px 0 8px 16px;
  border:1px solid var(--line);border-radius:6px;
}
#middle-column p{margin:0 0 16px}
#middle-column p:last-child{margin-bottom:0}

/* =========================================================
   11. トップページ（index.asp を新マークアップに書き換えた分）
   .pagehead / .sec / .photo / .cta は boshu.asp と共通のものを使う
   ========================================================= */
#middle-column .byline{
  margin:0;font-size:13.5px;letter-spacing:.06em;color:var(--muted);
}

/* トップの主画像。教室案内ページの冒頭（レッスン室のコラージュ）と
   見分けが付くよう、こちらは楽器の寄りの横長にしている */
#middle-column .hero{
  margin:6px 0 4px;border-radius:12px;overflow:hidden;
}
#middle-column .hero img{display:block;width:100%;height:auto;border:0}

/* リンクカード。画像の有無どちらでも成立するよう float で組む
   （flex/grid だと <img><b><span> が横一列になってしまう） */
#middle-column .tiles{display:grid;gap:10px;margin:0}
#middle-column .tile{
  display:flow-root;padding:15px 17px;
  background:var(--surface);border:1px solid var(--line);border-radius:12px;
  color:var(--ink);text-decoration:none;
}
#middle-column .tile:hover{
  border-color:var(--terra);background:var(--terra-pp);text-decoration:none;
}
#middle-column .tile img{
  float:left;width:50px;height:auto;margin:2px 14px 4px 0;
  border:1px solid var(--line);border-radius:8px;
}
#middle-column .tile b{
  display:block;margin:0 0 4px;
  font-size:15.5px;font-weight:700;line-height:1.6;color:var(--ink);
}
#middle-column .tile span{
  display:block;font-size:13.5px;line-height:1.8;color:var(--muted);
}
@media (min-width:1000px){
  #middle-column .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
}

/* =========================================================
   12. 表組み（_mockup/mock_tables.html の設計を移植）
   旧マークアップ（<font size> / bgcolor / border=1 / width=450 /
   <center> / <b>）はそのまま。属性由来の指定は presentational hint で
   作者CSSより弱いので !important なしで上書きできる。
   フック（2026-08-15 実測）:
     concert.asp    年ラベル = table[bgcolor="#ffe8ff"]（14）
                    公演表   = table[bgcolor="#ffffe8"]（14）
     repertoire_*   曲目表   = table[border="1"]（40/ページ）
                    外枠     = table[width="500"]
   曲目表だけは行の意味（1行目＝見出し）を使うので、
   外枠に class="repertoire" を足して明示スコープにしている
   （4ファイル×1属性。属性セレクタだけだと diary/hobby の表も巻き込む）
   ========================================================= */
#middle-column table{
  border-collapse:collapse;border-spacing:0;
  max-width:100%;background:none;border:0;
}
/* nowrap 属性（<td nowrap>）は presentational hint なので作者CSSで打ち消せる。
   残っていると min-content が文字列全長になり、狭い画面で表が親をはみ出す
   （hobby/car.asp で実測 394px > 335px）。9ファイル33行のみ。 */
#middle-column [nowrap]{white-space:normal}
#middle-column td,#middle-column th{
  border:0;background:none;padding:0;
  text-align:left;vertical-align:top;
}
#middle-column center{text-align:left}
#middle-column hr{
  width:100%;height:1px;border:0;background:var(--line-s);
  margin:38px 0 26px;
}
/* この節で組み直す表の中だけ、<font> のサイズと色を無効化する
   （プロフィール等の border="0" のレイアウト表では色を残す） */
#middle-column table[bgcolor] font,
#middle-column table[border="1"] font{font-size:inherit;color:inherit}

/* --- 見出し（旧 h1.main{font-size:25px;line-height:1} 等を打ち消す） --- */
#middle-column h1{
  clear:none;margin:0 0 6px;padding:0;border:0;background:none;
  font-family:var(--serif);font-size:23px;font-weight:600;
  line-height:1.55;letter-spacing:.05em;color:var(--ink);
}
#middle-column h1 font{font-size:14px;color:var(--muted);letter-spacing:.06em}
#middle-column h2{
  clear:none;margin:0 0 20px;padding:0;border:0;background:none;
  font-family:var(--sans);font-size:15px;font-weight:600;
  line-height:1.6;letter-spacing:.06em;color:var(--muted);
}
#middle-column h3{
  clear:none;margin:30px 0 12px;padding:0 0 8px;background:none;
  border:0;border-bottom:1px solid var(--line-s);
  font-family:var(--serif);font-size:18px;font-weight:600;
  line-height:1.5;letter-spacing:.04em;color:var(--ink);
}
#middle-column h4{
  clear:none;margin:30px 0 10px;padding:0 0 0 11px;background:none;
  border:0;border-left:3px solid var(--terra);
  font-family:var(--serif);font-size:17px;font-weight:600;
  line-height:1.5;letter-spacing:.08em;color:var(--ink);
}

/* --- 兄弟ページ切替リンク（小品｜無伴奏曲｜ソナタ｜協奏曲） --- */
#middle-column .tabs{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;
  font-size:0;line-height:0;          /* 区切りの「｜」を消す */
}
#middle-column .tabs a,
#middle-column .tabs b,
#middle-column .tabs font{
  display:inline-block;padding:9px 14px;
  border:1px solid var(--line-s);border-radius:999px;
  background:var(--surface);color:var(--brick);
  font-size:14px;line-height:1.4;letter-spacing:.04em;text-decoration:none;
}
#middle-column .tabs b{background:var(--brick);border-color:var(--brick);color:#fff;font-weight:600}
#middle-column .tabs a:hover{border-color:var(--terra);background:var(--terra-pp);text-decoration:none}

/* concert.asp の区切り見出し（<BR>連打を h2+p に整形した箇所） */
#middle-column .past-head{
  margin:0 0 4px;font-family:var(--serif);font-size:19px;font-weight:600;
  line-height:1.5;letter-spacing:.05em;color:var(--ink);
}
#middle-column .past-note{margin:0;font-size:14px;color:var(--terra-ink)}

/* --- concert.asp: 年ラベル --- */
#middle-column table[bgcolor="#ffe8ff"],
#middle-column table[bgcolor="#ffe8ff"] tbody,
#middle-column table[bgcolor="#ffe8ff"] td{display:block}
#middle-column table[bgcolor="#ffe8ff"]{width:100%;margin:30px 0 0}
#middle-column table[bgcolor="#ffe8ff"] tr{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-bottom:7px;border-bottom:2px solid var(--brick);
}
#middle-column table[bgcolor="#ffe8ff"] td:first-child font{
  font-family:var(--serif);font-size:20px;font-weight:600;
  color:var(--brick);letter-spacing:.06em;
}
#middle-column table[bgcolor="#ffe8ff"] td+td{flex:0 0 auto;font-size:13px;white-space:nowrap}
#middle-column table[bgcolor="#ffe8ff"] td+td a:after{content:"\203A";margin-left:3px;opacity:.7}

/* --- concert.asp: 公演表 --- */
#middle-column table[bgcolor="#ffffe8"]{width:100%;margin:0}
@media (max-width:999px){
  /* スマホは 1行＝1カード */
  #middle-column table[bgcolor="#ffffe8"],
  #middle-column table[bgcolor="#ffffe8"] tbody,
  #middle-column table[bgcolor="#ffffe8"] td{display:block}
  #middle-column table[bgcolor="#ffffe8"] tr{
    display:grid;grid-template-columns:auto 1fr;column-gap:10px;
    padding:15px 2px;border-bottom:1px solid var(--line);
  }
  #middle-column table[bgcolor="#ffffe8"] td:nth-child(1){
    font-size:13.5px;font-weight:700;color:var(--terra-ink);letter-spacing:.03em;line-height:1.7;
  }
  #middle-column table[bgcolor="#ffffe8"] td:nth-child(2){
    font-size:13.5px;color:var(--muted);letter-spacing:.03em;line-height:1.7;
  }
  #middle-column table[bgcolor="#ffffe8"] td:nth-child(3){
    grid-column:1 / -1;margin-top:5px;
    font-size:15.5px;line-height:1.85;color:var(--ink);
  }
}
@media (min-width:1000px){
  #middle-column table[bgcolor="#ffffe8"] td{
    padding:12px 14px;border-bottom:1px solid var(--line);
    font-size:15px;line-height:1.8;
  }
  #middle-column table[bgcolor="#ffffe8"] td:nth-child(1){
    width:9.5em;white-space:nowrap;font-weight:600;color:var(--terra-ink);font-size:14px;
  }
  #middle-column table[bgcolor="#ffffe8"] td:nth-child(2){
    width:7em;white-space:nowrap;color:var(--muted);font-size:14px;
  }
  #middle-column table[bgcolor="#ffffe8"] tr:hover td{background:var(--terra-pp)}
}

/* --- 汎用の <table border="1">（行の意味は仮定せず余白と罫線だけ） --- */
#middle-column table[border="1"]:not([bgcolor]){
  width:100%;margin:0 0 8px;border-top:1px solid var(--line-s);
}
#middle-column table[border="1"]:not([bgcolor]) td{
  padding:10px 12px;border-bottom:1px solid var(--line);
  font-size:15px;line-height:1.75;color:var(--ink);
}
#middle-column table[border="1"]:not([bgcolor]) tr:nth-child(even) td{background:#FCFAF8}

/* --- 年表（profile.asp の演奏略歴）---
   `table[border="0"]` はサイト全体で500件超あり、画像の横並びなど
   レイアウト目的の器がほとんど。一括で当てると各所が崩れるので、
   .repertoire と同じく class="history" を足して明示スコープにする */
#middle-column .history{width:100%;margin:0 0 22px}
#middle-column .history td{padding:7px 14px 7px 0;line-height:1.8;vertical-align:top}
#middle-column .history td:first-child{
  width:1%;white-space:nowrap;
  font-size:14.5px;font-weight:600;color:var(--terra-ink);letter-spacing:.02em;
}
#middle-column .history td:last-child{padding-right:0}
#middle-column .history tr+tr td{border-top:1px solid var(--line)}

/* repertoire の外枠（レイアウト用の器）は幅だけ解除する */
#middle-column table[width="500"]{width:100%}
#middle-column table[width="500"]>tbody>tr>td{padding:0}

/* --- repertoire_*.asp: 曲目表 --- */
/* 表と表の間は <br> で空けられている（1つ21px）。直下の br だけ落とす
   （セル内の <br> は意味があるので残す） */
#middle-column .repertoire>tbody>tr>td>br{display:none}
#middle-column .repertoire h4:first-child{margin-top:0}
#middle-column .repertoire table td:nth-child(2){width:34%;font-size:13.5px;color:var(--muted)}
/* 1行目は「曲名／備考」の見出し行（<th>ではなく<td>）。
   ゼブラと詳細度が並ぶので、後に書いて勝たせる */
#middle-column .repertoire table tr:first-child td{
  padding:7px 12px;background:var(--terra-pp);
  font-size:11.5px;font-weight:700;letter-spacing:.14em;
  color:var(--terra-ink);line-height:1.6;
}
/* 同じ見出しが作曲家ごとに40回出るので2つ目以降は隠す。
   一般兄弟結合子で「先行する表がある表」だけを対象にできる */
#middle-column .repertoire table ~ table tr:first-child{display:none}
#middle-column .repertoire table ~ table{border-top:1px solid var(--line-s)}

/* リンクの列（ブログのカテゴリ・その他） */
#middle-column .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}
#middle-column .chips a{
  display:inline-block;padding:7px 14px;
  border:1px solid var(--line-s);border-radius:999px;
  background:var(--surface);
  font-size:13.5px;color:var(--ink2);text-decoration:none;
}
#middle-column .chips a:hover{
  border-color:var(--terra);background:var(--terra-pp);
  color:var(--brick);text-decoration:none;
}

/* =========================================================
   14. アンケート結果アーカイブ（/enquete2/）
   1ページに数十件並ぶので <details> で畳んでおく。
   旧CSSに details/summary の定義は無いので打ち消しは不要。
   ========================================================= */
#middle-column .anq{
  margin:0 0 10px;background:var(--surface);
  border:1px solid var(--line);border-radius:10px;
}
#middle-column .anq[open]{border-color:var(--line-s)}
#middle-column .anq>summary{
  padding:13px 16px;cursor:pointer;list-style:none;
  font-family:var(--sans);font-size:15px;font-weight:700;
  line-height:1.7;color:var(--ink);
}
/* Safari の既定マーカーを消して自前の三角に置き換える */
#middle-column .anq>summary::-webkit-details-marker{display:none}
#middle-column .anq>summary::before{
  content:"\25B8";margin-right:8px;color:var(--terra);font-weight:400;
}
#middle-column .anq[open]>summary::before{content:"\25BE"}
#middle-column .anq>summary:hover{background:var(--terra-pp);border-radius:10px}
#middle-column .anq-total{
  margin-left:6px;font-size:13px;font-weight:400;color:var(--muted);
}
#middle-column .anq-body{padding:0 16px 14px;border-top:1px solid var(--line)}
#middle-column .anq-meta{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
#middle-column .anq-date{white-space:nowrap}

#middle-column .anq-list{margin:12px 0 0;padding:0;list-style:none;counter-reset:anq}
#middle-column .anq-list li{
  display:grid;grid-template-columns:1fr 46px;gap:2px 10px;
  margin:0;padding:8px 0;list-style:none;
  border-top:1px solid var(--line);font-size:14.5px;line-height:1.7;
}
#middle-column .anq-list li:first-child{border-top:0}
#middle-column .anq-name{grid-column:1;color:var(--ink2);word-break:break-word}
#middle-column .anq-n{
  grid-column:2;grid-row:1;align-self:center;
  text-align:right;font-size:13.5px;color:var(--muted);white-space:nowrap;
}
/* 棒グラフ。最多得票を100%とした相対長 */
#middle-column .anq-bar{
  grid-column:1 / -1;display:block;height:6px;
  background:var(--terra-p);border-radius:999px;overflow:hidden;
}
#middle-column .anq-bar i{display:block;height:100%;background:var(--terra);border-radius:999px}

@media (min-width:1000px){
  #middle-column .anq-list li{grid-template-columns:minmax(0,1fr) 150px 46px}
  #middle-column .anq-name{grid-column:1;align-self:center}
  #middle-column .anq-bar{grid-column:2;grid-row:1;align-self:center}
  #middle-column .anq-n{grid-column:3}
}

/* 検索結果（search.asp）。Googleのスクリプトが幅500pxのiframeを書くので
   スマホで横にあふれる。器ごと収める */
#middle-column #googleSearchUnitIframe{max-width:100%;overflow-x:auto}
#middle-column #googleSearchUnitIframe iframe{max-width:100%}

/* 列数が多い／半角英数字が長くてどうしても縮めない表は、
   表だけ横スクロールさせる（ページ全体を横に溢れさせない）。
   付与先: hobby/pc.asp の2表（仕様表380px / ベンチ表535px） */
@media (max-width:999px){
  #middle-column table.scroll-x{
    display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  }
}

/* なんでもランキング: 過去のアーカイブであることの注記
   付与先: enquete2/ の index および各集計ページの冒頭 */
#middle-column .anq-note{
  margin:14px 0 20px;padding:12px 15px;
  border:1px solid var(--line);border-left:3px solid var(--line-s);border-radius:4px;
  background:var(--bg);
  font-size:13.5px;line-height:1.8;color:var(--muted);
}