/*
Theme Name: 柔整Online
Theme URI: https://jusei-online.jp/
Author: 武蔵野メディカルシステム株式会社
Description: 接骨院・柔道整復業界の専門ニュースメディア「柔整Online」のテーマ。デザイン試作（site-prototype/index.html）をもとに作成。AI編集部プラグイン（ai-henshubu）と組み合わせて使います。
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: jusei-online
*/

/* ---- 試作サイト（site-prototype/index.html）から移したスタイル ---- */
:root{--navy:#0B2545;--blue:#1D5FD1;--ink:#1A2433;--sub:#4E5A6B;--line:#DDE3EC;--bg:#F3F6FA;--ok:#1F7A45;--okbg:#EEF7F1;--warn:#B54708;--warnbg:#FFF4E5;--pr:#7A4300;--prbg:#FFFBF3}
*{box-sizing:border-box}
body{margin:0;font-family:'Noto Sans JP',sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.8;-webkit-text-size-adjust:100%}
a{color:var(--blue)}a:hover{color:var(--navy)}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
.util{background:var(--bg);border-bottom:1px solid var(--line);font-size:12px;color:var(--sub)}
.util .wrap{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:5px;padding-bottom:5px}
header.site{border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.logo{text-decoration:none;display:flex;flex-direction:column;line-height:1.3}
.logo b{font-size:26px;font-weight:900;color:var(--navy);letter-spacing:.02em}.logo b span{color:var(--blue)}
.logo small{font-size:12px;color:var(--sub)}
.logo-img{display:block;width:400px;height:auto}@media(max-width:640px){.logo-img{width:200px}}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:6px;font-weight:700;font-size:14px;text-decoration:none;border:0;cursor:pointer;font-family:inherit}
.btn-line{background:#06C755;color:#fff}.btn-line:hover{color:#fff;background:#05A848}
.btn-out{border:1px solid var(--navy);color:var(--navy);background:#fff}
nav.gn{background:var(--navy);overflow-x:auto;white-space:nowrap}
nav.gn .wrap{display:flex;padding:0 8px}
nav.gn a{color:#fff;text-decoration:none;font-weight:700;font-size:14px;padding:12px 14px;display:block;border-bottom:3px solid transparent}
nav.gn a.on{border-bottom-color:#7FB0FF}
main{padding:24px 0 48px}
.grid{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
.col-main{flex:999 1 560px;min-width:0}
.col-side{flex:1 1 300px;display:flex;flex-direction:column;gap:24px}
h2.sec{font-size:19px;color:var(--navy);margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--navy);display:flex;justify-content:space-between;align-items:baseline;gap:8px}
h2.sec small{font-size:12px;color:var(--sub);font-weight:400}
.week{border:2px solid var(--blue);border-radius:10px;padding:16px 18px;margin-bottom:28px}
.week h2{margin:0 0 4px;font-size:17px;color:var(--navy)}
.week p.lead{margin:0 0 10px;font-size:13px;color:var(--sub)}
.dl{display:flex;flex-direction:column;gap:8px}
.dl a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);padding:10px 12px;border-radius:8px;background:var(--bg)}
.dl a:hover{background:#E7EEF8}
.cd{flex:none;min-width:64px;text-align:center;border-radius:6px;padding:4px 6px;font-weight:900;font-size:15px;line-height:1.2;background:var(--navy);color:#fff}
.cd small{display:block;font-size:10px;font-weight:500}
.cd.urgent{background:var(--warn)}.cd.done{background:#8A94A3}
.dl .t{font-size:14px;font-weight:700;line-height:1.5}.dl .d{font-size:12px;color:var(--sub)}
.newbar{display:none;background:var(--okbg);color:var(--ok);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:700;margin-bottom:16px}
.hero{display:block;text-decoration:none;color:var(--ink);margin-bottom:24px}
.hero .eye{background:var(--navy);color:#fff;border-radius:10px;padding:22px 22px 20px;display:flex;flex-direction:column;gap:10px}
.hero .eye .k{font-size:12px;font-weight:700;color:#A9C4F5}
.hero .eye .big{font-size:clamp(22px,4vw,30px);font-weight:900;line-height:1.35}
.hero .eye .facts{display:flex;flex-wrap:wrap;gap:10px}
.hero .eye .facts span{background:rgba(255,255,255,.12);border-radius:6px;padding:6px 10px;font-size:13px;font-weight:700}
.hero h3{font-size:clamp(19px,3vw,24px);line-height:1.5;color:var(--navy);margin:14px 0 6px}
.hero p{margin:0;color:var(--sub);font-size:15px}
.meta{font-size:12px;color:var(--sub);display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:3px;background:#E8F0FD;color:var(--blue);line-height:1.8}
.tag.type{background:var(--bg);color:var(--sub)}
.verified{display:inline-flex;gap:4px;align-items:center;font-size:11px;font-weight:700;color:var(--ok)}
.list a.item{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid #EEF2F7;text-decoration:none;color:var(--ink)}
.list a.item b{font-size:16px;line-height:1.55}
.list a.item:hover b{color:var(--blue)}
.list .new{color:var(--warn);font-size:11px;font-weight:900;margin-left:6px}
.box{border:1px solid var(--line);border-radius:10px;padding:16px}
.box h3{margin:0 0 10px;font-size:15px;color:var(--navy)}
.watch li{margin-bottom:10px;font-size:14px;line-height:1.6}
.watch .st{display:inline-block;font-size:11px;font-weight:700;color:var(--warn);background:var(--warnbg);border-radius:3px;padding:0 6px;margin-right:4px}
.stat{display:flex;align-items:baseline;gap:6px}.stat b{font-size:32px;color:var(--navy);font-weight:900;line-height:1.1}
.pr{background:var(--prbg);border:1px solid #E8C98F;border-radius:10px;padding:14px}
.pr .lab{display:inline-block;font-size:11px;font-weight:700;color:#fff;background:#9A5A00;border-radius:3px;padding:0 8px;margin-right:6px}
.pr h3{color:#4A2E00;font-size:15px;margin:8px 0 6px}
.pr ul{margin:0;padding-left:18px;font-size:13px;color:#4A2E00}
.pr p{font-size:11px;color:#6B5330;margin:8px 0 0}
/* editorial (business-news style) */
.serif,.hero h3,article.post h1,.list a.item b,.page h1,.feat h3,.feat a b,.rank a b,.hl a{font-family:'Noto Serif JP',serif}
.hl{border-bottom:1px solid var(--line);margin:-8px 0 20px;padding:8px 0;display:flex;gap:14px;align-items:baseline;overflow-x:auto;white-space:nowrap;font-size:14px}
.hl .lab{flex:none;font-size:11px;font-weight:900;color:#fff;background:var(--navy);padding:2px 8px;border-radius:2px}
.hl a{color:var(--ink);text-decoration:none;font-weight:700}.hl a:hover{color:var(--blue)}
.hl time{color:var(--sub);font-size:12px;margin-right:4px}
.kick{display:block;font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.04em;margin-bottom:4px}
.top2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.top2 .sub a{display:block;text-decoration:none;color:var(--ink);padding:12px 0;border-top:1px solid var(--line)}
.top2 .sub a:first-child{border-top:3px solid var(--navy)}
.top2 .sub a b{font-family:'Noto Serif JP',serif;font-size:17px;line-height:1.5;display:block}
.top2 .sub a:hover b{color:var(--blue)}
.feat{border-top:3px solid var(--navy);margin:8px 0 28px}
.feat .fh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 0 4px}
.feat .fh span{font-size:11px;font-weight:900;color:#fff;background:var(--blue);padding:2px 8px;border-radius:2px}
.feat h3{margin:0;font-size:22px;color:var(--navy)}
.feat p.d{margin:2px 0 8px;font-size:13px;color:var(--sub)}
.feat .fl{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 20px}
.feat .fl a{display:block;text-decoration:none;color:var(--ink);padding:12px 0;border-top:1px solid var(--line)}
.feat .fl a b{font-size:16px;line-height:1.5;display:block}.feat .fl a:hover b{color:var(--blue)}
.rank{counter-reset:r}
.rank a{display:flex;gap:12px;text-decoration:none;color:var(--ink);padding:10px 0;border-top:1px solid var(--line)}
.rank a:before{counter-increment:r;content:counter(r);font-family:'Noto Serif JP',serif;font-size:26px;font-weight:900;color:var(--blue);line-height:1;min-width:22px}
.rank a b{font-size:14px;line-height:1.55}.rank a:hover b{color:var(--blue)}
h2.sec{font-family:'Noto Serif JP',serif}
/* article */
article.post{max-width:760px}
.crumb{font-size:12px;color:var(--sub);margin-bottom:10px}
article.post h1{font-size:clamp(22px,4vw,30px);line-height:1.45;color:var(--navy);margin:8px 0 10px}
.trust{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}
.trust span{font-size:12px;background:var(--okbg);color:var(--ok);border-radius:4px;padding:3px 8px;font-weight:700}
.points{background:var(--bg);border-radius:10px;padding:16px 20px;margin:0 0 20px}
.points h2{font-size:15px;margin:0 0 6px;color:var(--navy)}
.points ul{margin:0;padding-left:20px}
article.post h2.h{font-size:20px;color:var(--navy);border-left:6px solid var(--blue);padding-left:12px;margin:30px 0 10px;line-height:1.5}
.label{display:inline-block;font-size:11px;font-weight:700;border-radius:3px;padding:0 6px;margin-left:8px;vertical-align:middle}
.label.fact{background:#E8F0FD;color:var(--blue)}.label.view{background:var(--warnbg);color:var(--warn)}
table.t{border-collapse:collapse;width:100%;font-size:14px;line-height:1.6}
table.t th{background:var(--navy);color:#fff;text-align:left;padding:9px 10px;font-weight:700}
table.t td{border:1px solid var(--line);padding:9px 10px;vertical-align:top}
.tw{overflow-x:auto;margin:8px 0}
.src{border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin-top:28px;font-size:14px}
.src h2{font-size:16px;margin:0 0 8px;color:var(--navy)}
.src ol{margin:0;padding-left:20px}.src li{margin-bottom:6px}
.src .chk{margin-top:12px;background:var(--okbg);color:#1F5A35;border-radius:8px;padding:10px 12px;font-size:13px}
.fix{font-size:13px;color:var(--sub);margin-top:12px}
.rel{margin-top:28px}
.cta{background:var(--navy);color:#fff;border-radius:10px;padding:18px 20px;margin-top:28px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.cta b{font-size:16px}.cta small{display:block;color:#C9D3E1;font-size:13px;font-weight:400}
.page h1{font-size:clamp(22px,4vw,28px);color:var(--navy);margin:0 0 8px}
.page h2{font-size:18px;color:var(--navy);margin:28px 0 8px}
.page .lead{color:var(--sub);margin:0 0 16px}
.todo{background:var(--warnbg);color:var(--warn);border-radius:6px;padding:2px 8px;font-weight:700;font-size:13px}
footer.site{background:var(--navy);color:#C9D3E1;padding:28px 0;font-size:13px}
footer.site a{color:#C9D3E1}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between}
footer .links{display:flex;flex-wrap:wrap;gap:8px 18px;max-width:620px}

/* ---- WordPress用の追加スタイル ---- */
/* 一覧ページの見出し（見た目は h2.sec と同じ。件数は h1 の外） */
.h1row{font-family:'Noto Serif JP',serif;font-size:19px;font-weight:700;color:var(--navy);margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid var(--navy);display:flex;justify-content:space-between;align-items:baseline;gap:8px;line-height:1.8}
.h1row h1{font-size:inherit;margin:0;color:inherit;font-weight:inherit;line-height:inherit}
.h1row small{font-size:12px;color:var(--sub);font-weight:400;font-family:'Noto Sans JP',sans-serif}
.site-title{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:static!important;width:auto;height:auto;clip:auto;display:block;padding:8px 12px;background:#fff}
.custom-sec{margin-bottom:28px}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.cat-grid h3{font-size:15px;color:var(--navy);border-top:3px solid var(--blue);padding-top:8px;margin:0 0 4px;display:flex;justify-content:space-between}
.cat-grid h3 a{font-size:12px;font-weight:400}
.cat-grid .c a.t{display:block;padding:8px 0;border-bottom:1px solid #EEF2F7;color:var(--ink);text-decoration:none;font-size:14px;line-height:1.5}
.cat-grid .c a.t:hover{color:var(--blue)}
.muted{font-size:13px;color:var(--sub)}
.hero .thumb img{display:block;width:100%;height:auto;border-radius:10px}
.disclosure{background:var(--warnbg);border-radius:8px;padding:10px 12px;font-size:13px;color:#7A3A00;margin-bottom:14px}
.briefs{margin:0;padding:0;list-style:none}
.briefs li{padding:8px 0;border-top:1px solid #EEF2F7;font-size:13px;line-height:1.6}
.briefs .o{color:var(--sub);font-size:11px}
.briefs .r{font-size:11px;font-weight:700}
.pr .res{display:block;text-decoration:none;color:#4A2E00;padding:10px 0;border-top:1px solid #EAD9BC}
.pr .res:first-of-type{margin-top:10px}
.pr .res b{font-size:15px}.pr .res span{font-size:12px}
.adslot{border-style:dashed;text-align:center}
.adslot .lab{font-size:11px;font-weight:700;color:var(--sub)}
.pager{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.pager .page-numbers{display:inline-flex;min-width:40px;min-height:40px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;text-decoration:none;font-size:14px;padding:0 10px}
.pager .page-numbers.current{background:var(--navy);color:#fff;border-color:var(--navy)}
.search-form{display:flex;gap:8px;margin:12px 0 20px}
.search-form input[type=search]{flex:1;min-height:44px;border:1px solid var(--line);border-radius:6px;padding:0 12px;font:inherit;font-size:16px}
.widget{border:1px solid var(--line);border-radius:10px;padding:16px;font-size:14px}
.widget h2,.widget h3,.widget .widget-title{margin:0 0 10px;font-size:15px;color:var(--navy)}
.widget ul{margin:0;padding-left:18px}

/* 記事本文（AI編集部プラグインが作る本文の部品にも対応） */
.entry{overflow-wrap:anywhere}
.entry img{max-width:100%;height:auto}
.entry h2{font-size:20px;color:var(--navy);border-left:6px solid var(--blue);padding-left:12px;margin:30px 0 10px;line-height:1.5}
.entry h3{font-size:17px;color:var(--navy);margin:24px 0 8px}
.entry table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.6;display:block;overflow-x:auto}
.entry th{background:var(--navy);color:#fff;text-align:left;padding:9px 10px;font-weight:700}
.entry td{border:1px solid var(--line);padding:9px 10px;vertical-align:top}
.entry .aih-date{font-size:13px;color:var(--sub);margin:0 0 6px}
.entry .aih-lead{font-weight:500}
.entry .aih-lead strong{font-weight:500}
.entry .aih-label{display:inline-block;font-size:11px;font-weight:700;border-radius:3px;padding:0 6px;margin-left:8px;vertical-align:middle;line-height:1.8}
.entry .aih-fact{background:#E8F0FD;color:var(--blue)}
.entry .aih-view{background:var(--warnbg);color:var(--warn)}
.entry .aih-points{background:var(--bg);border-radius:10px;padding:16px 20px;margin:0 0 20px}
.entry .aih-points > p{margin:0 0 6px;color:var(--navy);font-size:15px}
.entry .aih-points ul{margin:0;padding-left:20px}
.entry .aih-sources{border:1px solid var(--line);border-radius:10px;padding:16px 20px;margin-top:28px;font-size:14px}
.entry .aih-sources > p:first-child{margin:0 0 8px;color:var(--navy);font-size:16px}
.entry .aih-sources ol{margin:0;padding-left:20px}
.entry .aih-sources li{margin-bottom:6px}
.entry .aih-note{margin:12px 0 0;background:var(--okbg);color:#1F5A35;border-radius:8px;padding:10px 12px;font-size:13px}
.post-foot{border-top:1px solid var(--line);margin-top:24px;padding-top:12px}
.dl .dl-row{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);padding:10px 12px;border-radius:8px;background:var(--bg)}
.dl a.dl-row:hover{background:#E7EEF8}

/* 物療機器・開業支援のPR枠：記事（白地・明朝の見出し）と分けるため、色付きの枠・ゴシックの見出し・上部の「PR」帯 */
.pr-equip{margin-top:28px;border:2px solid #C98A1E;padding:0 16px 16px;font-family:'Noto Sans JP',sans-serif}
.pr-equip-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 -16px;padding:8px 16px;background:#F6E7C8;border-radius:8px 8px 0 0;font-size:12px;font-weight:700;color:#6B5330}
.pr-equip-head .lab{font-size:12px}
.pr-equip h3{font-family:'Noto Sans JP',sans-serif;font-size:17px;margin:12px 0 2px}
.pr-equip .pr-equip-for{font-size:12px;margin:0 0 10px}
.pr .pr-equip-list{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.pr-equip-list a{display:flex;flex-direction:column;gap:2px;height:100%;box-sizing:border-box;padding:10px 12px;background:#fff;border:1px solid #EAD9BC;border-radius:8px;text-decoration:none;color:#4A2E00}
.pr-equip-list a:hover{border-color:#C98A1E}
.pr-equip-list b{font-size:15px}
.pr-equip-list span{font-size:12px;color:#6B5330;line-height:1.6}
.pr-equip .pr-equip-terms{list-style:none;padding:0;margin:0 0 10px;font-size:12px}

/* 運営会社の公式LINE（PR）：記事と分けるため、物療機器のPR枠と同じ色付きの枠・PR帯 */
.pr-line{margin-top:28px;border:2px solid #C98A1E;padding:0 16px 16px;font-family:'Noto Sans JP',sans-serif}
.pr-line-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 -16px;padding:8px 16px;background:#F6E7C8;border-radius:8px 8px 0 0;font-size:12px;font-weight:700;color:#6B5330}
.pr-line-head .lab{font-size:12px}
.pr .pr-line-text{font-size:14px;color:#4A2E00;line-height:1.7;margin:12px 0}
.pr-line .btn-line{width:100%}
.col-side .pr-line{margin-top:0}
/* ヘッダーのLINEボタン：PR表示つき */
.btn-pr{gap:6px}
.btn-pr .lab{display:inline-block;font-size:11px;font-weight:700;color:#7A4300;background:#FFF4D6;border-radius:3px;padding:0 6px;line-height:1.7}
