/*
Theme Name: 士道館浜松添野道場
Theme URI: https://s-shido.com/
Description: 世界空手道連盟 士道館 浜松添野道場のオリジナルテーマ
Version: 0.3.0
Requires PHP: 8.1
Text Domain: shidokan
*/

/* 見た目の本体は assets/css/top.css（トップ）と site.css（それ以外）。ここは WordPress 用の追加だけ */
.admin-bar .hd{top:32px}
@media (max-width:782px){.admin-bar .hd{top:46px}}

/* 管理画面の本文を表示するページ・投稿・一覧 */
.entry-wrap{padding:calc(var(--hd) + 56px) var(--gr) 120px var(--g);max-width:calc(820px + var(--g) + var(--gr));margin:0 auto}
.entry-wrap.wide{max-width:none;padding:var(--hd) 0 0}
.entry-title{font-family:var(--f-head);font-weight:600;font-size:clamp(26px,3.2vw,42px);line-height:1.5;letter-spacing:.06em}
.entry-meta{margin-top:12px;font-size:14px;color:var(--hai)}
.entry-thumb{margin:32px 0 0}
.entry-thumb img{width:100%;height:auto}
.entry-body{margin-top:40px;line-height:2}
.entry-body>*+*{margin-top:1.4em}
.entry-body h2{font-family:var(--f-head);font-size:clamp(22px,2.4vw,30px);line-height:1.6;margin-top:2.4em}
.entry-body h3{font-family:var(--f-head);font-size:clamp(19px,2vw,24px);line-height:1.6;margin-top:2em}
.entry-body a{color:var(--ort)}
.entry-body img{max-width:100%;height:auto}
.entry-body ul,.entry-body ol{padding-left:1.4em}
.entry-body iframe{max-width:100%}
.entry-nav{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:64px;padding-top:24px;border-top:1px solid var(--line)}
.pagination{margin-top:48px}
.pagination .page-numbers{display:inline-block;padding:8px 12px}
.pagination .current{font-weight:700;color:var(--ort)}
.booking{margin-top:48px}

/* お問合せフォーム（MW WP Form）。本文は管理画面のままで、見本の形に合わせる */
.formx .mw_wp_form form>div[style]:first-child{display:none} /* 体験の案内はページの左に同じものがある */
.formx table.cform,.formx .cform tbody,.formx .cform tr,.formx .cform th,.formx .cform td{display:block;width:auto;height:auto!important;padding:0;border:0;text-align:left;background:none}
.formx .cform tr{margin-top:24px}
.formx .cform tr:first-child{margin-top:0}
.formx .cform th{font-weight:700;margin-bottom:8px}
.formx .required-srt{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:var(--ort)}
.formx .cform label{display:block;font-size:13px;margin-bottom:6px}
.formx .cform label strong{font-weight:500;color:var(--hai)}
.formx input[type=text],.formx input[type=email],.formx input[type=tel],.formx textarea{display:block;width:100%;max-width:100%;box-sizing:border-box;min-height:52px;padding:12px 14px;border:1px solid var(--hai);border-radius:0;background:var(--white);color:var(--ink);font:inherit}
.formx textarea{min-height:180px}
.formx input[type=submit]{min-height:58px;margin-top:24px;margin-right:8px;padding:0 32px;border:0;border-radius:0;background:var(--ink);color:var(--white);font:inherit;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:background var(--t-ui),color var(--t-ui)}
.formx input[type=submit]:hover{background:var(--or);color:var(--ink)}
.formx .error{color:#9A3324;font-size:14px;margin-top:6px}
.formx .mw_wp_form form>p{text-align:left!important}
.formx input[name=submitBack]{margin-top:12px;background:none;color:var(--ink);border:2px solid var(--ink)}

/* PHASE 12・13：スマホの押しやすさ、読みやすさ、キーボード操作 */
.skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--ink);color:var(--white);padding:12px 16px;text-decoration:none;font-weight:700}
.skip:focus{top:8px}
main img{height:auto}
.kv,.stars{color:var(--ordeep)}
.dark .kv,.calcwrap .kv,.today .kv,.info .kv{color:var(--or)}
a.kv{text-decoration:none}
.bjj.dk .dl dt{color:var(--gray2)}
.dark .ch-head .en{color:var(--or)}
.fbar a.tel{color:var(--ink);text-decoration:none;display:block;min-height:44px;padding:4px 2px}
.tl{position:relative}
.tl::before{content:"";position:absolute;left:0;right:0;top:-8px;bottom:-8px}
@media (max-width:1180px){.menu{min-height:44px;min-width:44px}}
@media (max-width:899px){
  .ft li a{display:inline-block;padding:10px 0}
  .formx input[type=text],.formx input[type=email],.formx input[type=tel],.formx textarea{font-size:16px}
}

.review .stars{color:var(--ordeep)}
@media (max-width:360px){.fbar .btn{padding:4px;font-size:12px;letter-spacing:0}.fbar{gap:6px}}

/* パソコンのメニュー：英語の下に日本語を添える */
.gnav a{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0 6px}
.gnav .ja{font-family:var(--f-body);font-size:11px;font-weight:500;letter-spacing:.04em;line-height:1.4}

/* スマホのトップを短くする。文字の壁は外す（近道のボタンは持ち主の実機確認で外した） */
@media (max-width:899px){
  .wall{display:none}
  .hvis{height:clamp(540px,160vw,860px);min-height:0}
  .hero-cta{padding-top:20px}
  .home .ch{padding-top:72px}
  .home .dintro{padding-top:72px}
  .home .sh-wrap{padding-top:72px}
  .home .calcwrap{margin-top:48px}
  .home .cgrid{gap:56px}
  .home .final{margin-top:72px}
}

/* 予約カレンダー：スマホの幅に収める（1マス44px固定だと土曜の列がはみ出す） */
@media (max-width:480px){
  .booking .stb-calendar{padding-inline:6px}
  .booking .stb-cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
}

/* 料金の計算：合計が幅のある金額になったので、スマホで1行に収める */
.total .v{white-space:nowrap;font-size:clamp(25px,4vw,56px)}

/* 料金の一覧：幅のある金額は、スマホでは「〜」の位置でそろえて折り返す */
@media (max-width:480px){.tbl.cost .rg{display:block}}

/* スマホ：写真はカラーで見せる（マウスを乗せる操作が無いため。白黒の加工はスクロールも重くする） */
@media (hover:none),(max-width:899px){
  .ccard .pw img,.wph img{filter:none}
}

/* メニューのボタンは3本線 */
.menu{width:48px;height:44px;padding:0;align-items:center;justify-content:center;border:0}
.menu .bars{display:block;position:relative;width:26px;height:18px}
.menu .bars i{position:absolute;left:0;width:100%;height:2.5px;background:var(--ink);transition:transform .25s var(--e-f),opacity .2s}
.menu .bars i:nth-child(1){top:0}
.menu .bars i:nth-child(2){top:7.75px}
.menu .bars i:nth-child(3){top:15.5px}
.menu[aria-expanded=true] .bars i:nth-child(1){transform:translateY(7.75px) rotate(45deg)}
.menu[aria-expanded=true] .bars i:nth-child(2){opacity:0}
.menu[aria-expanded=true] .bars i:nth-child(3){transform:translateY(-7.75px) rotate(-45deg)}
@media (max-width:1180px){.menu{display:inline-flex}}

/* 電話のボタン：スマホではその場でかけられる */
@media (max-width:899px){.pc-only{display:none!important}}
@media (min-width:900px){.sp-only{display:none!important}}

/* スマホ：大きな英語を画面の幅に収める */
@media (max-width:899px){
  .ch-head .bg,.soft .ch-head .bg{font-size:min(24vw,calc((100vw - var(--g) - var(--gr)) / (var(--m,var(--n,7)) * .88)))}
  .hero .giant{font-size:21.3vw;left:0}
  .ph-giant{left:0}
  .cv1 .num,.cv2 .num,.cv3 .num,.cv2.cvp .num,.cv3.cvp .num{right:0}
  .big[style*="--n"]:not(.ph-giant):not(.bg){font-size:min(24vw,calc((100vw - var(--g) - var(--gr)) / (var(--n) * .76)))}
  .dintro .bgw{font-size:14vw}
  .sh-wrap,.sh-body{grid-template-columns:minmax(0,1fr)}
  html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hd) + 8px)}
}
@media (max-width:899px) and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* スマホ：写真の枠の高さを画面の高さに連動させない。アドレスバーが縮むと枠が伸びて見えるため、画面の幅を基準にする */
@media (max-width:899px){
  .hero .tops{top:calc(var(--hd) + 16px)}
  .hero h1{top:calc(var(--hd) + 16px + 24vw)}
  .hero .fig{top:calc(var(--hd) + 16px + 23vw);bottom:29vw}
  .hero .giant{bottom:40px}
  .hero .jpsub{bottom:16px}
  .sh-fig{height:clamp(420px,152vw,760px)}
}

/* 応援企業様・隣接教室 */
#supporters .bg{font-size:min(15vw,calc((100vw - var(--g) - var(--gr)) / (var(--n) * .88)))}
.sponsors{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px}
.sponsor{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.sponsor img{width:100%;height:auto;aspect-ratio:2/1;object-fit:contain;background:var(--white);border:1px solid var(--line)}
.sponsor .tag{margin-top:14px;font-size:12px;font-weight:700;color:var(--ort)}
.sponsor .name{margin-top:4px;font-family:var(--f-head);font-weight:600;font-size:18px;line-height:1.6}
.sponsor .txt{margin-top:4px;font-size:14px;color:var(--hai)}
@media (hover:hover) and (pointer:fine){.sponsor:hover .name{color:var(--ort)}}
@media (max-width:899px){.sponsors{grid-template-columns:1fr;gap:28px}}

/* スマホのメニュー画面だけ、日本語もゴシックにする（2026-11-05 持ち主の決定。ほかの見出しは明朝のまま） */
.spnav a{font-family:var(--f-body);font-weight:500}

/* スマホ：コースのカードを番号順に並べる（パソコンは2列のまま） */
@media (max-width:899px){
  .cgrid>div{display:contents}
  .cgrid>div>div[style]{display:none}
  .cgrid>div:first-child>a:first-of-type{order:1}
  .cgrid>.c2>a:first-of-type{order:2}
  .cgrid>div:first-child>a:last-of-type{order:3}
  .cgrid>.c2>a:last-of-type{order:4}
}

/* スマホ：道場の写真の横スクロールで、最後の文章まで止まれるようにする */
.hend{scroll-snap-align:end}
@media (max-width:899px){.hview{scroll-snap-type:x proximity}}

/* スマホの改行は文節で区切る（本文の <wbr> は tools/add_phrase_breaks.py が入れる）。管理画面やプラグインの文章は普通に折り返す */
@media (max-width:899px){
  /* iPhone のブラウザは auto-phrase を使えないので、どの端末でも同じ keep-all と <wbr> にそろえる */
  body,h1,h2,h3,p,li,dd,dt,td,th,summary,.tl,.txt,.lead,.note,.d,b{word-break:keep-all;overflow-wrap:break-word;line-break:strict}
  h1,h2,h3,summary{text-wrap:balance}
  p,li,dd{text-wrap:pretty}
  .booking,.booking h1,.booking h2,.booking h3,.booking p,.booking li,.booking dd,.booking dt,.booking td,.booking th,.booking summary,.booking .tl,.booking .txt,.booking .lead,.booking .note,.booking .d,.booking b,.formx,.formx h1,.formx h2,.formx h3,.formx p,.formx li,.formx dd,.formx dt,.formx td,.formx th,.formx summary,.formx .tl,.formx .txt,.formx .lead,.formx .note,.formx .d,.formx b,.entry-wrap,.entry-wrap h1,.entry-wrap h2,.entry-wrap h3,.entry-wrap p,.entry-wrap li,.entry-wrap dd,.entry-wrap dt,.entry-wrap td,.entry-wrap th,.entry-wrap summary,.entry-wrap .tl,.entry-wrap .txt,.entry-wrap .lead,.entry-wrap .note,.entry-wrap .d,.entry-wrap b,.entry-body,.entry-body h1,.entry-body h2,.entry-body h3,.entry-body p,.entry-body li,.entry-body dd,.entry-body dt,.entry-body td,.entry-body th,.entry-body summary,.entry-body .tl,.entry-body .txt,.entry-body .lead,.entry-body .note,.entry-body .d,.entry-body b,.news,.news h1,.news h2,.news h3,.news p,.news li,.news dd,.news dt,.news td,.news th,.news summary,.news .tl,.news .txt,.news .lead,.news .note,.news .d,.news b,#sb_instagram,#sb_instagram h1,#sb_instagram h2,#sb_instagram h3,#sb_instagram p,#sb_instagram li,#sb_instagram dd,#sb_instagram dt,#sb_instagram td,#sb_instagram th,#sb_instagram summary,#sb_instagram .tl,#sb_instagram .txt,#sb_instagram .lead,#sb_instagram .note,#sb_instagram .d,#sb_instagram b{word-break:normal}
}

/* 酸素ルームの本文は .entry-wrap の中だが、テーマの表示で <wbr> を入れているので keep-all にする（functions.php） */
@media (max-width:899px){
  .shido-cozy h1,.shido-cozy h2,.shido-cozy h3,.shido-cozy p,.shido-cozy li,.shido-cozy dd,.shido-cozy dt,.shido-cozy td,.shido-cozy th,.shido-cozy summary,.shido-cozy b{word-break:keep-all}
  .shido-cozy .sn-sec *{min-width:0}
  .shido-soft h2,.shido-soft h3,.shido-soft p,.shido-soft li{word-break:keep-all}
}

/* スケジュールの表（parts/site-schedule.php）。縦に時間、横に曜日 */
.tbl.tt{table-layout:fixed;font-size:15px}
.tbl.tt th,.tbl.tt td{width:auto;padding:14px 4px;border:1px solid var(--line);text-align:center;vertical-align:middle;font-weight:500;line-height:1.5}
.tbl.tt thead th{background:var(--paper);font-family:var(--f-head);font-weight:600}
.tbl.tt .t{width:8.5em;font-size:14px;font-variant-numeric:tabular-nums}
.tbl.tt .ka,.tt-key .ka{background:var(--ink);color:var(--white)}
.tbl.tt .el,.tt-key .el{background:#5A524A;color:var(--white)}
.tbl.tt .bj,.tt-key .bj{background:var(--or);color:var(--ink);font-weight:700}
.tbl.tt .off{color:var(--hai)}
.tt-key{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 0;padding:0;list-style:none}
.tt-key li{display:flex;align-items:center;gap:8px}
.tt-key i{flex:none;width:14px;height:14px}
@media (max-width:899px){
  .tbl.tt{font-size:13px}
  .tbl.tt th,.tbl.tt td{padding:10px 1px;letter-spacing:0}
  .tbl.tt .t{width:4.8em;font-size:12px}
  .tbl.tt thead th,.tbl.tt .el{font-size:12px}
  .tbl.tt .rg{display:block}
  .tbl.tt .off{writing-mode:vertical-rl;letter-spacing:.1em}
  .tt-key li{align-items:flex-start}
  .tt-key i{margin-top:.35em}
}

.nw,.jn{white-space:nowrap}

/* スマホ：「。」で改行し（<br class="sp-only"> は tools/add_phrase_breaks.py が入れる）、「、」では無理に改行しない */
@media (max-width:899px){
  .pr{display:inline}
  .motto-intro .stmt .pr,.info .pr{display:inline-block}
  /* Safari は長い文の幅で列を広げるので、列の中身が列より広がらないようにする */
  .two,.two2,.cards,.figs,.subblk ul,.calc,.plist,.pt{grid-template-columns:minmax(0,1fr)}
  .calc>*,.plist>*,.pt>*{min-width:0}
  .cards>*,.two>*,.two2>*,.steps>*,.acc>*,.box>*,.it>*,.wrap>*,.in>*,.wide-note>*,.figs>*,.dl>*,.dlx>*,.ccard{min-width:0}
  .news time{white-space:nowrap}
}

/* スマホ：料金の計算の選択欄が枠からはみ出さないようにする */
fieldset{min-width:0}
.calc>*{min-width:0}

/* スマホ：写真を切らずに全体を見せる（持ち主の実機確認、2026-11-05）。パソコンは今のまま。トップの最初の写真だけは文字と重ねるので除く */
@media (max-width:899px){
  .ph-pic,.band,.figs .im,.figs.lead>:first-child .im,.eq .im,.ccard .pw,.hfig .im,.hfig.t .im,.hfig.w .im{height:auto;aspect-ratio:auto}
  .ph-pic img,.band img,.figs img,.eq .im img,.ccard .pw img,.hfig img,.wph img,.wph .pw:last-child img{position:static;display:block;width:100%;height:auto;margin:0;aspect-ratio:auto}
  .ph-pic .ph,.figs .im .ph,.ccard .pw .ph{height:auto;aspect-ratio:4/3}
  .ph-hero.noimg{min-height:0}
  .band{margin-top:64px}
}

/* スマホ：モットーの3枚。文字を写真に重ねず、英語→写真→見出しと番号→本文の順に並べる */
@media (max-width:899px){
  .covers .cv{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;align-items:end;height:auto;min-height:0;padding:56px var(--gr) 48px var(--g)}
  .covers .cv .ttl{grid-column:1/-1;grid-row:1;position:static;line-height:1.05}
  .covers .cv .art,.covers .cv .fig,.covers .cv1 .fig.ph1{grid-column:1/-1;grid-row:2;position:relative;inset:auto;width:auto;height:auto;margin:14px calc(var(--gr) * -1) 0 calc(var(--g) * -1);clip-path:none}
  .covers .cv .art img,.covers .cv .fig img{display:block;width:100%;height:auto;max-width:100%}
  .covers .cv .art::after,.covers .cv2.cvp .art::after{content:none}
  .covers .cv .vt,.covers .cv1 .vt,.covers .cv2.cvp .vt,.covers .cv3.cvp .vt{grid-column:1;grid-row:3;position:static;writing-mode:horizontal-tb;margin-top:20px;padding:0;background:none;font-size:clamp(26px,8vw,38px);line-height:1.4;letter-spacing:.1em;white-space:nowrap;text-shadow:none;color:inherit}
  .covers .cv .vt .vc,.covers .cv2.cvp .vt .vc,.covers .cv3.cvp .vt .vc{display:inline-block;padding:0;background:none}
  .covers .cv .num,.covers .cv2.cvp .num,.covers .cv3.cvp .num{grid-column:2;grid-row:3;position:static;margin-top:20px;font-size:clamp(44px,14vw,72px);line-height:1;opacity:1}
  .covers .cv3.cvp .num{color:var(--ink)}
  .covers .cv .txt,.covers .cv1 .txt,.covers .cv2.cvp .txt,.covers .cv3 .txt{grid-column:1/-1;grid-row:4;position:static;width:auto;margin-top:12px;padding:0;background:none}
}

/* 小さな画面：料金の一覧を画面に収める */
@media (max-width:340px){.tbl.cost{table-layout:fixed;width:100%}.tbl.cost th,.tbl.cost td{font-size:13px;word-break:normal}}

/* 料金の計算：幅のある金額は「〜」の位置でそろえて折り返す。当日入会の説明が長くなっても枠に収める */
@media (max-width:480px){.calcwrap .tbl .rg{display:block}.calcwrap .tbl th{width:auto}}
.calcwrap .tbl td.r{text-align:right}

/* 最初の画面の大きな英語「KARATE」：パソコンは写真の左の列に収める（大きいままだと写真の後ろに隠れて「KA」しか読めない） */
@media (min-width:900px){.hero .giant{font-size:calc((30vw - var(--g) - 1.5vw) / 4.56);left:var(--g);bottom:calc(3.2vh + 2.6em * .5 + 18px);line-height:1}}

/* Instagram の枠は点線にしない（点線は撮影予定の枠の見た目） */
.igbox{border:0;padding:0}

/* VK Blocks を読み込む投稿でも、ヘッダーとボタンはテーマの形のままにする */
.btn{border-radius:0}
.hd .row{margin-left:0;margin-right:0}

/* 酸素ルーム予約のタブ：COZY のマークを白い円に載せる */
.o2tab img{flex:none;width:26px;height:26px;padding:3px;border-radius:50%;background:#fff;object-fit:contain}

/* よくある質問：質問文に囲み（nw、jn）があると横並びの部品に分かれて語順が崩れるので、文章として流し、＋は右に固定する */
.qa summary{display:block;position:relative;padding-right:40px}
.qa summary .pm{position:absolute;right:0;top:22px}

/* 師範の写真の幅で列が広がり、文章が画面の外へ出るのを防ぐ（横幅1024px前後） */
.sh-wrap>*,.sh-body>*{min-width:0}

/* スマホ：記事のタイトルも文節の境目で折り返す（shidokan_soft_breaks）。今日の稽古の時間は折り返さない */
@media (max-width:899px){
  .news .t{word-break:keep-all}
  .cls>span:first-child{white-space:nowrap}
}

/* スマホ：長い英語は2行にして大きく見せ、下層の最初の画面の空白を詰める（--m は長いほうの行の文字数） */
@media (max-width:899px){
  .big .l{display:block;line-height:.95}
  .bjj .big{font-size:min(110px,29vw)}
  .ph-hero{gap:20px;padding-top:calc(var(--hd) + 14px)}
  .ph-txt{padding-top:0}
  .ph-hero>*{min-width:0}
  .ph-giant,.soft .ph-giant{position:static;font-size:min(30vw,calc((100vw - var(--g) - var(--gr)) / (var(--m,var(--n)) * .76)))}
}

/* トップの一番上の、ブラジリアン柔術の案内（12/5 まで）。見出し部分のすぐ下に置き、最初の画面はその分だけ詰める */
.preband{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:var(--hd);padding:12px var(--gr) 12px var(--g);background:var(--ink);color:var(--white);line-height:1.6}
.preband .tag{flex:none;font-family:var(--f-en);font-weight:800;font-size:11px;letter-spacing:.14em;background:var(--or);color:#fff;padding:3px 9px}
.preband .t{flex:1 1 min(320px,100%);min-width:0;color:var(--white);text-decoration:none;font-size:15px}
.preband .t b{display:block;font-weight:700}
.preband .s{display:block;font-size:13px;color:var(--gray2)}
.preband .go{flex:none;display:inline-block;padding:10px 18px;background:var(--or);color:#fff;font-weight:700;font-size:14px;text-decoration:none}
.preband+.hero{--hd:0px}
@media (min-width:900px){.preband+.hero{height:calc(100svh - 72px - var(--pb,70px));min-height:600px}}

/* 大会のクラス分け一覧（大会案内ページ）。年代ごとのカードと、体重の区分の札。実力の3区分は最初に1度だけ見せる */
.lvl{margin-top:24px;background:var(--ink);color:var(--white);padding:20px 22px}
.lvl-lead{font-weight:700;color:var(--white)}
.lvl ol{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.lvl li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:baseline;border-top:2px solid var(--or);padding-top:10px;font-size:14px;line-height:1.6;color:var(--gray2)}
.lvl li b{font-size:17px;color:var(--white)}
.lvl li>span:last-child{grid-column:1/-1;margin-top:4px}
.lvl-n{font-family:var(--f-en);font-weight:800;color:var(--or)}
.cls-h{margin-top:40px;display:flex;align-items:baseline;gap:12px;font-size:20px}
.cls-count{font-family:var(--f-body);font-size:13px;font-weight:700;color:var(--ort);border:1px solid var(--ort);padding:1px 8px}
.cls-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.cls-card{min-width:0;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--ink);padding:16px 18px}
.cls-card h5{display:flex;align-items:baseline;gap:8px;font-size:18px;font-weight:700;margin:0}
.cls-card h5 small{font-size:13px;font-weight:500;color:var(--gray)}
.cls-card h5 span{margin-left:auto;font-size:12px;font-weight:700;color:var(--gray)}
.cls-note{font-size:13px;color:var(--gray);margin-top:4px}
.cls-rows{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:8px;margin-top:10px;align-items:start}
.cls-rows dt{font-size:14px;font-weight:700;padding-top:5px;white-space:nowrap}
.cls-rows dt small{display:block;font-size:11px;font-weight:500;color:var(--gray);line-height:1.3}
.cls-rows dd{margin:0;min-width:0}
.chips{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.cls-rows .chips{margin-top:0}
.chips li{display:inline-flex;align-items:baseline;gap:5px;background:var(--paper);border:1px solid var(--line);padding:4px 10px;font-size:14px;font-weight:700;line-height:1.5}
.chips li small{font-size:12px;font-weight:500;color:var(--ort)}
@media (max-width:1100px){.cls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:899px){.cls-grid,.lvl ol{grid-template-columns:minmax(0,1fr)}}

/* 猛虎杯の申し込みボタン（大会案内ページ）。オレンジで大きく、締切を添える */
.entry-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;max-width:440px;min-height:72px;padding:12px 24px;background:var(--or);color:#fff;text-decoration:none;font-weight:900;font-size:20px;letter-spacing:.08em;line-height:1.3;text-align:center;box-shadow:0 5px 0 var(--ordeep);transition:transform var(--t-press) var(--e-f),box-shadow var(--t-press) var(--e-f),background var(--t-ui)}
.entry-btn small{font-size:13px;font-weight:700;letter-spacing:.04em}
.entry-btn:hover{background:var(--ordeep);color:#fff}
.entry-btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--ordeep)}
.entry{margin-top:40px;background:var(--white);border:2px solid var(--or);padding:24px;scroll-margin-top:calc(var(--hd) + 16px)}
.entry-h{font-family:var(--f-head);font-size:22px;font-weight:600}
.entry-h .en{display:block;color:var(--ort);margin-bottom:4px}
.entry-steps{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.entry-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;border-top:2px solid var(--ink);padding-top:12px;font-weight:700;line-height:1.6}
.entry-steps li b{font-family:var(--f-en);font-weight:800;font-size:22px;line-height:1.1;color:var(--or)}
.entry-steps li small{display:block;margin-top:4px;font-size:13px;font-weight:500;color:var(--gray)}
.entry-go{margin-top:22px;text-align:center}
@media (max-width:899px){.entry-steps{grid-template-columns:minmax(0,1fr)}.entry{padding:20px 16px}.entry-btn{max-width:none}}

/* トップの「大会のご案内」：猛虎杯の期間（〜大会の日）はポスターと申込ボタンを出す。ポスターは切らずに全体を見せる */
.mouko.mouko6{grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start}
.mk-poster{display:block}
.mk-poster img{display:block;width:100%;height:auto}
.mk-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin-top:20px;font-size:15px;line-height:1.6}
.mk-facts dt{color:var(--or);font-weight:700}
@media (max-width:899px){.mouko.mouko6{grid-template-columns:minmax(0,1fr);gap:28px}.mk-poster{max-width:420px}}
