/* 配下ページ（2026-10-17 site/pages.css をそのまま。site/build_site.py で作る） */
/* 配下ページ（2026-10-17）：トップ top-2026.css の色・書体・部品の上に重ねる。
   決まり＝見出しの上に小さな札を置かない／矢印なし／左の縦線なし／キャラは紺の面に載せない／2人横並びは向き合う組 */

/* ---------- 共通 ---------- */
.site-header .desktop-nav a.is-current{color:var(--navy);border-bottom:1px solid var(--navy);padding-bottom:4px}
.pmain{display:block}
.sec{padding-block:clamp(56px,7vw,100px)}
.sec--tint{background:var(--ground);border-block:1px solid var(--rule)}
.sec--tint+.sec--tint{border-top:0}
.sec--navy{background:var(--navy);color:#fff}
.sec--navy h2,.sec--navy .statement{color:#fff}
.sec--navy p{color:#e3e6f0}
.sec--art{background:var(--art)}
.narrow{max-width:46em;margin-inline:auto}
.sec-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);align-items:start;margin-bottom:clamp(32px,4vw,52px)}
.sec-head h2{margin:0}
.sec-head .prose{padding-top:6px}
.sec-head--single{display:block}
.sec-head--single h2{margin-bottom:28px}
h2.h2{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.7rem,1.2rem+1.4vw,2.4rem);line-height:1.55;letter-spacing:.04em}
h3.h3{font-size:1.1875rem;font-weight:700;color:var(--navy);line-height:1.6}
.prose{font-size:1rem;line-height:2.05;color:var(--ink)}
.prose p+p{margin-top:1.2em}
.prose strong{font-weight:700;color:var(--navy)}
.prose .text-link{margin-top:22px}
.statement{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.35rem,1.05rem+1vw,1.9rem);line-height:1.7;letter-spacing:.03em}
.statement+.prose,.prose+.statement{margin-top:24px}
.lead{font-size:1.0625rem;line-height:2.05;color:var(--ink)}
.muted{color:var(--muted)}
.small{font-size:.875rem;line-height:1.9}
.center{text-align:center}
.actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:32px}
.actions .button{min-width:260px}
.actions--center{justify-content:center}

/* パンくず */
.breadcrumb{font-size:.75rem;color:var(--muted);margin-bottom:22px}
.breadcrumb__list{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0;padding:0}
.breadcrumb__item+.breadcrumb__item::before{content:"/";margin:0 10px;color:var(--rule)}
.breadcrumb__item a:hover{color:var(--navy)}

/* ---------- ページの頭 ---------- */
.page-hero{background:var(--white);padding-block:clamp(44px,6vw,80px) clamp(44px,6vw,72px)}
.page-hero h1{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(2.1rem,1.4rem+2.2vw,3.4rem);line-height:1.45;letter-spacing:.05em}
.page-hero .statement{margin-top:28px}
.page-hero .lead{margin-top:22px;max-width:36em}
.page-hero .lead p+p{margin-top:1em}
.page-hero--portrait{position:relative;isolation:isolate;overflow:hidden}
.page-hero--portrait .hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:center}
.page-portrait{position:relative;min-height:520px;background:var(--navy);border-radius:96px 4px 4px 4px;overflow:hidden}
.page-portrait>img{position:absolute;bottom:0;left:50%;transform:translateX(-50%);height:88%;width:auto;max-width:none}
.page-portrait--wide>img{height:auto;width:96%;bottom:-2%}
.page-portrait .portrait-name{position:absolute;left:clamp(28px,4vw,56px);top:48px;font-family:var(--serif);font-size:1.9rem;line-height:1.6;color:#fff;letter-spacing:.07em;z-index:1}
.page-portrait .portrait-name span{display:block;width:max-content;font-family:var(--body);font-size:.75rem;letter-spacing:.16em;color:#fff;padding-bottom:9px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.75)}
.page-hero--pair .hero-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.2fr) minmax(0,1fr);gap:clamp(16px,3vw,48px);align-items:end}
.page-hero--pair .hero-pair>img{width:100%;max-width:300px;justify-self:center}
.page-hero--pair .hero-pair>div{text-align:center;padding-bottom:12px}
.page-hero--pair .lead{margin-inline:auto;text-align:left}
.page-hero--pair .statement{text-align:center}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:36px;border-top:1px solid var(--rule);padding-top:22px}
.facts>p{padding:0 clamp(14px,2vw,28px);border-left:1px solid var(--rule)}
.facts>p:first-child{padding-left:0;border-left:0}
.facts strong{display:block;font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.45rem;line-height:1.4;letter-spacing:.04em;white-space:nowrap}
.facts span{display:block;margin-top:6px;font-size:.75rem;color:var(--muted)}

/* ---------- 部品 ---------- */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:var(--white);border:1px solid var(--rule);border-top:4px solid var(--navy);border-radius:2px;padding:28px 28px 30px;min-width:0}
.card .num{display:block;font-family:var(--serif);font-size:2.3rem;line-height:1;font-weight:600;color:var(--navy);margin-bottom:12px}
.card h3{font-size:1.125rem;font-weight:700;color:var(--navy);line-height:1.6}
.card h3+p,.card h3+ul{margin-top:14px}
.card p{font-size:.9375rem;line-height:2;color:var(--ink)}
.card .era{font-size:.75rem;letter-spacing:.12em;color:var(--muted);margin-bottom:10px}
.card .text-link{margin-top:18px;font-size:.8125rem}
.card--plain{border-top:1px solid var(--rule)}
.pair-band{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(28px,5vw,64px);row-gap:12px;align-items:center;background:#eef0f5;padding:36px clamp(28px,5vw,64px);border-radius:2px}
.pair-band .pair{grid-row:1/3;display:flex;gap:0}
.pair-band .pair img{width:170px}
.pair-band .statement{align-self:end;font-size:clamp(1.25rem,1rem+.8vw,1.6rem)}
.pair-band .prose{align-self:start;font-size:.9375rem}
.sec--tint .pair-band{background:#eef0f5}
.sec:not(.sec--tint) .pair-band{background:var(--ground)}
.with-figure{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:clamp(28px,5vw,64px);align-items:center}
.with-figure--left{grid-template-columns:220px minmax(0,1fr)}
.with-figure>img{width:100%;max-width:220px;justify-self:center}
.tbl{width:100%;border-collapse:collapse;border-top:1px solid var(--navy);font-size:.9375rem;line-height:1.9}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--rule)}
.tbl thead th{font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--muted);padding-top:12px;padding-bottom:12px;background:none}
.tbl tbody th{font-weight:700;color:var(--navy);white-space:nowrap}
.tbl td strong{color:var(--navy)}
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl--art th:nth-child(2),.tbl--art td:nth-child(2){color:var(--red)}
.tbl--art th:nth-child(3),.tbl--art td:nth-child(3){color:var(--blue)}
.tbl--art thead th{color:var(--muted)}
.note{margin-top:20px;font-size:.875rem;line-height:1.9;color:var(--muted)}
.quote-box{background:var(--ground);border-radius:2px;padding:30px clamp(24px,4vw,44px);margin-block:28px}
.sec--tint .quote-box{background:var(--white);border:1px solid var(--rule)}
.quote-box p{font-family:var(--serif);font-weight:500;font-size:1.125rem;line-height:2;color:var(--navy)}
.faq{border-top:1px solid var(--navy)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 4px;font-size:1.0625rem;font-weight:700;color:var(--navy);line-height:1.7}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex-shrink:0;font-family:var(--serif);font-size:1.5rem;font-weight:400;color:var(--navy);line-height:1}
.faq details[open] summary::after{content:"−"}
.faq .faq-a{padding:0 4px 24px;font-size:.9375rem;line-height:2;color:var(--ink);max-width:46em}
.faq .faq-a p+p{margin-top:.8em}
.check-list,.dash-list,.plain-list{list-style:none;margin:0;padding:0}
.check-list li,.dash-list li,.plain-list li{position:relative;padding:11px 0 11px 28px;border-bottom:1px solid var(--rule);font-size:.9375rem;line-height:1.9}
.check-list li::before{content:"";position:absolute;left:4px;top:19px;width:9px;height:5px;border-left:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(-45deg)}
.dash-list li::before{content:"";position:absolute;left:4px;top:22px;width:12px;height:1px;background:var(--muted)}
.plain-list li{padding-left:0}
.dash-list li span{display:block;font-size:.8125rem;color:var(--muted);margin-top:2px}
.chips{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:28px}
.chips span{display:inline-block;padding:8px 16px;border:1px solid var(--rule);border-radius:999px;font-size:.875rem;color:var(--ink);background:var(--white)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.steps .card{padding:24px 24px 26px}
.steps .card .num{font-size:1.9rem;margin-bottom:10px}
.steps .card p{font-size:.9375rem;font-weight:700;color:var(--navy);line-height:1.8}
.related{display:flex;align-items:center;gap:22px;margin-top:36px;padding:16px 20px 16px 16px;border:1px solid var(--rule);border-radius:2px;background:var(--white);transition:border-color .18s}
.related:hover{border-color:var(--navy)}
.related img{width:150px;height:79px;object-fit:cover;flex-shrink:0;border-radius:2px}
.related span{display:block;font-size:.75rem;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}
.related strong{font-size:.9375rem;font-weight:500;color:var(--navy);line-height:1.75}
.sec--tint .related{background:var(--white)}
.points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.points .card .num{font-size:1.9rem}
.points .card p{font-family:var(--serif);font-weight:600;font-size:1.25rem;color:var(--navy);line-height:1.6}
.two-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,72px)}
.two-lists h3{margin-bottom:12px}
.combo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.mini-type{background:var(--white);border:1px solid var(--rule);border-radius:4px;padding:26px 26px 26px;display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:16px;align-items:center}
.mini-type img{width:130px}
.mini-type.art{background:var(--art);border-color:transparent}
.mini-type.design{background:var(--design);border-color:transparent}
.mini-type.art{grid-template-columns:130px minmax(0,1fr)}
.mini-type.art img{order:-1}
.mini-type h3{font-family:Hand,var(--body);font-weight:400;font-size:2rem;line-height:1.3;letter-spacing:0;color:var(--navy)}
.mini-type.art h3{color:var(--red)}
.mini-type.design h3{color:var(--blue)}
.mini-type p{margin-top:10px;font-size:.9375rem;line-height:1.95;color:var(--ink)}
.handout-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:36px}
.handout-strip figure{margin:0}
.handout-strip img{width:100%;border:1px solid var(--rule);background:#fff}
.handout-strip figcaption{margin-top:10px;font-size:.8125rem;color:var(--muted);text-align:center}

/* 料金の行 */
.plan-rows{display:grid;gap:28px;margin-top:40px}
.plan-row{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);background:var(--white);border:1px solid var(--rule);border-top:4px solid var(--navy);border-radius:2px;padding:clamp(28px,4vw,44px)}
.plan-row h3{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.5rem;line-height:1.5}
.plan-row .who{font-size:.8125rem;color:var(--muted);margin-top:8px}
.plan-row .price{font-size:2.6rem;margin-top:18px;line-height:1.2}
.plan-row .price span{font-family:var(--body);font-weight:500;font-size:.875rem;margin-left:6px;color:var(--ink);letter-spacing:.04em}
.plan-row .price-note{font-size:.8125rem;color:var(--muted);margin-top:8px}
.plan-row .prose{font-size:.9375rem}
.plan-row .side .button{width:100%;margin-top:22px}
.plan-row .side .button+.button{margin-top:12px}
.plan-row .side h4{font-size:.75rem;letter-spacing:.1em;color:var(--muted);font-weight:700;margin-bottom:6px}
.plan-row .side .check-list li{font-size:.875rem;padding:9px 0 9px 26px}
.plan-row .side .check-list li::before{top:17px}
.line-box{background:var(--ground);border-radius:2px;padding:16px 18px;margin-top:18px;font-size:.875rem;line-height:1.9}
.line-box strong{color:var(--blue)}
.plan-row--type{grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr) minmax(0,1fr)}
.plan-row .type-pair{display:flex;gap:4px;margin-top:22px}
.plan-row .type-pair img{width:96px}

/* 申し込み・問い合わせの枠（Contact Form 7） */
.form-box{background:var(--white);border:1px solid var(--rule);border-radius:2px;padding:clamp(24px,4vw,44px);margin-top:36px;max-width:46em}
.sec--tint .form-box{background:var(--white)}
.wpcf7 form{display:grid;gap:18px}
.wpcf7 form p{margin:0}
.wpcf7 form label{display:block;font-size:.875rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 input[type=url],.wpcf7 textarea,.wpcf7 select{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;padding:13px 14px;border:1px solid var(--rule);border-radius:3px;background:#fff;color:var(--ink)}
.wpcf7 input:focus,.wpcf7 textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.wpcf7 textarea{min-height:180px}
.wpcf7 input[type=submit],.wpcf7 .wpcf7-submit{display:inline-flex;justify-content:center;align-items:center;min-height:56px;padding:16px 30px;border:0;border-radius:3px;background:var(--red);color:#fff;font:inherit;font-size:.9375rem;font-weight:500;letter-spacing:.06em;cursor:pointer;min-width:240px;transition:background-color .18s}
.wpcf7 input[type=submit]:hover{background:var(--red-hover)}
.wpcf7 .wpcf7-spinner{margin:0 12px}
.wpcf7 .wpcf7-not-valid-tip{font-size:.8125rem;color:var(--red);margin-top:6px;display:block}
.wpcf7 .wpcf7-response-output{margin:8px 0 0;padding:14px 16px;border:1px solid var(--rule)!important;border-radius:3px;font-size:.875rem}

/* 本文だけのページ（プライバシー・特商法・運営者情報・お問い合わせ） */
.doc{max-width:44em}
.doc h2{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.25rem;line-height:1.6;margin:2.6em 0 .9em;padding-bottom:.5em;border-bottom:1px solid var(--rule)}
.doc h2:first-child{margin-top:0}
.doc h2 strong{font-weight:600}
.doc h3{font-size:1.0625rem;font-weight:700;color:var(--navy);margin:2em 0 .8em}
.doc p{font-size:.9375rem;line-height:2;color:var(--ink)}
.doc p+p{margin-top:1em}
.doc table{width:100%;border-collapse:collapse;border-top:1px solid var(--navy);font-size:.9375rem;line-height:1.9}
.doc td{padding:14px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.doc td:first-child{font-weight:700;color:var(--navy);white-space:nowrap;width:11em}
.doc .form-box{margin-top:28px}

/* ---------- 研究ノート ---------- */
.cat-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}
.cat-chips a{display:inline-block;padding:9px 18px;border:1px solid var(--rule);border-radius:999px;font-size:.8125rem;color:var(--ink);background:var(--white)}
.cat-chips a.is-current,.cat-chips a:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.blog-index .posts{margin-top:0}
.blog-index .post{background:var(--white);border:1px solid var(--rule);border-radius:2px;overflow:hidden}
.blog-index .post .th img{width:100%;aspect-ratio:768/403;object-fit:cover;display:block}
.blog-index .post .meta{display:flex;gap:14px;margin:18px 20px 0;font-size:.75rem;color:var(--muted)}
.blog-index .post .cat{color:var(--navy);font-weight:500}
.blog-index .post h3{margin:8px 20px 14px;font-size:.9375rem;font-weight:500;line-height:1.85;color:var(--ink)}
.blog-index .post p{margin:0 20px 22px;font-size:.8125rem;line-height:1.9;color:var(--muted)}
.blog-index .post:hover h3{color:var(--navy)}
.pagination{margin-top:48px}
.pagination .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--rule);border-radius:3px;font-size:.875rem;color:var(--ink);background:var(--white)}
.pagination .page-numbers.current{background:var(--navy);border-color:var(--navy);color:#fff}
.post-list__empty{color:var(--muted)}

/* 記事 */
.entry-wrap{max-width:760px;margin-inline:auto}
.entry-head{margin-bottom:36px}
.entry-head .meta{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:.8125rem;color:var(--muted);margin-bottom:18px}
.entry-head .meta a{display:inline-block;padding:5px 12px;border:1px solid var(--rule);border-radius:999px;color:var(--navy);font-weight:500}
.entry-head h1{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.6rem,1.2rem+1.4vw,2.3rem);line-height:1.6;letter-spacing:.03em}
.entry-thumb{margin:0 0 40px}
.entry-thumb img{width:100%;height:auto;border-radius:3px;display:block}
.entry{font-size:1rem;line-height:2.1;color:var(--ink)}
.entry>*+*{margin-top:1.5em}
.entry p{margin:0}
.entry p+p{margin-top:1.5em}
.entry h2{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.4rem,1.15rem+.8vw,1.8rem);line-height:1.55;margin:3em 0 1.1em;padding-bottom:.55em;border-bottom:1px solid var(--rule)}
.entry h3{font-size:1.1875rem;font-weight:700;color:var(--navy);line-height:1.7;margin:2.4em 0 .9em}
.entry h4{font-size:1.0625rem;font-weight:700;color:var(--navy);margin:2em 0 .8em}
.entry strong{font-weight:700;color:var(--navy)}
.entry a{color:var(--navy);text-decoration:underline;text-underline-offset:4px}
.entry ul,.entry ol{padding-left:1.4em}
.entry li{margin:.35em 0}
.entry li::marker{color:var(--navy)}
.entry figure{margin:2.2em 0}
.entry figure img{width:100%;height:auto;border-radius:3px;display:block}
.entry figcaption{font-size:.8125rem;color:var(--muted);margin-top:10px;text-align:center}
.entry .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.entry table{width:100%;border-collapse:collapse;border-top:1px solid var(--navy);font-size:.9375rem;line-height:1.8}
.entry th,.entry td{padding:12px 14px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.entry th{font-weight:700;color:var(--navy);background:var(--ground)}
.entry blockquote{margin:2em 0;padding:24px clamp(20px,3vw,32px);background:var(--ground);border-radius:2px;font-family:var(--serif);color:var(--navy)}
.entry blockquote p+p{margin-top:1em}
.entry .post-toc{background:var(--ground);border-radius:2px;padding:26px 28px 22px;margin:2.5em 0 3em}
.entry .post-toc__title{font-family:var(--serif);font-weight:600;font-size:1rem;letter-spacing:.12em;color:var(--navy);margin-bottom:.7em}
.entry .post-toc__list{margin:0;padding-left:1.4em;font-size:.9375rem;line-height:1.9}
.entry .post-toc__list>li{margin:.3em 0}
.entry .post-toc__sub{margin:.3em 0 .3em;padding-left:1.4em;font-size:.875rem}
.entry .post-toc a{text-decoration:none;color:var(--ink)}
.entry .post-toc a:hover{color:var(--navy);text-decoration:underline}
.entry .swell-block-button{margin:2.4em 0;text-align:center}
.entry .swell-block-button__link{display:inline-flex;justify-content:center;align-items:center;min-height:56px;min-width:280px;padding:16px 30px;border-radius:3px;background:var(--red);color:#fff;font-weight:500;font-size:.9375rem;letter-spacing:.06em;text-decoration:none;transition:background-color .18s}
.entry .swell-block-button__link:hover{background:var(--red-hover)}
.entry .wp-block-buttons .wp-block-button__link{background:var(--red);color:#fff;border-radius:3px;text-decoration:none}
.entry-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px}
.entry-tags a{font-size:.8125rem;color:var(--muted);padding:5px 12px;border:1px solid var(--rule);border-radius:999px}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:56px;padding-top:32px;border-top:1px solid var(--rule)}
.post-nav a{display:block;padding:18px 20px;background:var(--ground);border-radius:2px;font-size:.9375rem;font-weight:500;line-height:1.7;color:var(--ink)}
.post-nav a:hover{color:var(--navy)}
.post-nav__prev span,.post-nav__next span{display:block;font-size:.75rem;color:var(--muted);margin-bottom:6px;letter-spacing:.1em}
.post-nav__next{text-align:right}
.entry-related{margin-top:64px;padding-top:40px;border-top:1px solid var(--rule)}
.entry-related h2{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:1.4rem;margin-bottom:24px}

/* 検索・404 */
.search-form{display:flex;gap:10px;max-width:36em;margin-top:24px}
.search-form input[type=search]{flex:1;font:inherit;padding:13px 14px;border:1px solid var(--rule);border-radius:3px}
.search-form button{font:inherit;padding:13px 22px;border:0;border-radius:3px;background:var(--navy);color:#fff;cursor:pointer}

/* ---------- タブレット ---------- */
@media(max-width:1080px){
 .page-portrait{min-height:440px}
 .page-portrait .portrait-name{font-size:1.5rem;top:36px}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
 .plan-row{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
 .plan-row .side{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:end;padding-top:20px;border-top:1px solid var(--rule)}
 .plan-row .side .button{margin-top:0}
 .plan-row .side .button+.button{margin-top:10px}
 .plan-row .side .buttons{display:grid;gap:10px}
 .pair-band .pair img{width:140px}
}
@media(max-width:900px){
 .sec-head{grid-template-columns:1fr;gap:20px;margin-bottom:32px}
 .page-hero--portrait .hero-grid{grid-template-columns:1fr;gap:28px}
 .page-portrait{min-height:0;height:360px;border-radius:64px 4px 4px 4px}
 .page-portrait>img{height:92%}
 .page-portrait--wide>img{height:auto;width:min(96%,520px)}
 .page-hero--pair .hero-pair{grid-template-columns:1fr;gap:12px}
 .page-hero--pair .hero-pair>img{display:none}
 .page-hero--pair .hero-pair-sp{display:flex;justify-content:center;gap:24px;margin-top:28px}
 .page-hero--pair .hero-pair-sp img{width:min(40%,180px)}
 .with-figure,.with-figure--left{grid-template-columns:1fr}
 .with-figure>img{order:-1;max-width:180px}
 .two-lists,.points,.combo,.handout-strip{grid-template-columns:1fr}
}
@media(min-width:901px){.page-hero--pair .hero-pair-sp{display:none}}

/* ---------- スマートフォン ---------- */
@media(max-width:600px){
 .sec{padding-block:56px}
 .page-hero{padding-block:30px 44px}
 .page-hero h1{font-size:2rem;line-height:1.5}
 .page-hero .statement{margin-top:22px}
 .page-hero .lead{font-size:.9375rem;margin-top:18px}
 .page-portrait{height:300px;border-radius:56px 4px 4px 4px}
 .page-portrait .portrait-name{top:30px;left:22px;font-size:1.5rem}
 .page-portrait .portrait-name span{font-size:.6875rem;padding-bottom:7px;margin-bottom:8px}
 .breadcrumb{font-size:.6875rem;margin-bottom:16px}
 .facts{grid-template-columns:1fr;padding-top:6px}
 .facts>p{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-left:0;border-top:1px solid var(--rule)}
 .facts>p:first-child{border-top:0}
 .facts strong{font-size:1.3rem}
 .facts span{margin:0;text-align:right}
 h2.h2{font-size:1.7rem;line-height:1.6}
 h3.h3{font-size:1.0625rem}
 .statement{font-size:1.3rem}
 .prose,.lead{font-size:.9375rem}
 .cards,.steps{grid-template-columns:1fr;gap:14px}
 .card{padding:22px 22px 24px}
 .card .num{font-size:1.9rem}
 .steps .card{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:14px;padding:18px 20px}
 .steps .card .num{margin:0;font-size:1.6rem}
 .pair-band{grid-template-columns:1fr;padding:28px 22px 30px;row-gap:10px}
 .pair-band .pair{grid-row:1;justify-content:center}
 .pair-band .pair img{width:132px}
 .pair-band .statement{text-align:center;font-size:1.3rem}
 .pair-band .prose{text-align:center;font-size:.875rem}
 .tbl{font-size:.875rem}
 .tbl th,.tbl td{padding:11px 10px}
 .tbl--stack thead{display:none}
 .tbl--stack tr{display:block;padding:12px 0;border-bottom:1px solid var(--rule)}
 .tbl--stack tbody th,.tbl--stack td{display:block;border:0;padding:3px 0}
 .tbl--stack td::before{content:attr(data-label);display:inline-block;min-width:7em;font-size:.75rem;color:var(--muted);margin-right:8px}
 .quote-box{padding:24px 22px}
 .quote-box p{font-size:1rem}
 .faq summary{font-size:.9375rem;padding:16px 2px}
 .faq .faq-a{font-size:.875rem}
 .check-list li,.dash-list li{font-size:.875rem}
 .chips span{font-size:.8125rem;padding:7px 13px}
 .related{gap:14px;padding:14px}
 .related img{width:100px;height:53px}
 .related strong{font-size:.875rem}
 .mini-type,.mini-type.art{grid-template-columns:minmax(0,1fr) 100px;padding:22px}
 .mini-type.art{grid-template-columns:100px minmax(0,1fr)}
 .mini-type img{width:100px}
 .mini-type h3{font-size:1.7rem}
 .mini-type p{font-size:.875rem}
 .plan-row{grid-template-columns:1fr;padding:24px 22px 26px;gap:20px}
 .plan-row h3{font-size:1.35rem}
 .plan-row .price{font-size:2.2rem}
 .plan-row .side{grid-template-columns:1fr;gap:16px}
 .plan-row .side .button{width:100%}
 .plan-row .type-pair{justify-content:center}
 .form-box{padding:22px 18px}
 .wpcf7 input[type=submit]{width:100%}
 .doc td{display:block;padding:8px 0}
 .doc td:first-child{width:auto;white-space:normal;padding-top:14px;padding-bottom:2px;font-size:.8125rem;color:var(--muted);border-bottom:0}
 .doc tr:first-child td:first-child{padding-top:10px}
 .doc td:last-child{padding-bottom:14px}
 .entry{font-size:.9375rem}
 .entry h2{font-size:1.35rem}
 .entry h3{font-size:1.0625rem}
 .entry th,.entry td{padding:10px 10px;font-size:.875rem}
 .entry .post-toc{padding:20px 20px 16px}
 .entry .post-toc__sub{display:none}
 .entry .swell-block-button__link{width:100%;min-width:0}
 .post-nav{grid-template-columns:1fr}
 .post-nav__next{text-align:left}
 .blog-index .posts{grid-template-columns:1fr;gap:16px}
 .blog-index .post{display:grid;grid-template-columns:110px 1fr;align-items:start}
 .blog-index .post .th{grid-row:1/4}
 .blog-index .post .th img{height:100%;aspect-ratio:1/1}
 .blog-index .post .meta{margin:12px 14px 0;font-size:.6875rem;gap:8px}
 .blog-index .post h3{margin:4px 14px 10px;font-size:.8125rem}
 .blog-index .post p{display:none}
 .cat-chips{gap:8px;margin-bottom:24px}
 .cat-chips a{font-size:.75rem;padding:8px 13px}
 .actions{flex-direction:column;align-items:stretch}
 .actions .button{width:100%;min-width:0}
 .actions .text-link{align-self:center}
 .entry-head h1{font-size:1.5rem}
 .handout-strip{gap:16px}
}
@media(max-width:359px){
 .page-hero h1{font-size:1.75rem}
 .page-portrait{height:260px}
 .page-portrait .portrait-name{font-size:1.3rem}
 .facts strong{font-size:1.15rem}
 .plan-row .price{font-size:1.9rem}
 .mini-type,.mini-type.art{grid-template-columns:1fr}
 .mini-type.art img{order:0}
 .mini-type img{width:100px;margin-inline:auto}
}
/* 小さすぎる文字を12px以上に */
@media(max-width:600px){.breadcrumb{font-size:.75rem}.page-portrait .portrait-name span{font-size:.75rem}}
@media(max-width:960px){.type-facts dt{font-size:.75rem}.type-caption{font-size:.75rem}}
.sec--navy h2.h2,.sec--navy .statement,.sec--navy .prose strong{color:#fff}
.sec--navy .prose{color:#e3e6f0}
.page-portrait--wide>img{height:94%;width:auto;bottom:0;max-width:none}
@media(max-width:900px){.page-portrait--wide>img{height:94%;width:auto}}
/* 本番で見つかった小さな直し */
html{overflow-x:clip}
.wpcf7 .hissu,.wpcf7 form label span[style*="color"]{color:var(--red)!important;font-size:.8125rem;margin-left:4px}
.wpcf7 form label br{display:none}
.wpcf7 form label{margin-bottom:0}
.wpcf7 form label input,.wpcf7 form label textarea,.wpcf7 form label select{margin-top:8px}
@media(max-width:600px){.blog-index .post .meta{font-size:.75rem}.blog-index .post .meta{flex-wrap:wrap}}
@media(max-width:359px){.blog-index .post{grid-template-columns:92px 1fr}.blog-index .post h3{margin:4px 10px 10px;font-size:.75rem}.blog-index .post .meta{margin:10px 10px 0}}
@media(max-width:600px){.page-hero h1{font-size:1.85rem;overflow-wrap:anywhere}}
/* 記事の <article> にはWPが post クラスを付ける。一覧カード用の .post の規則を打ち消す */
.entry-wrap article.post,.entry-wrap .entry-article{display:block;grid-template-columns:none;background:none;border:0;border-radius:0;overflow:visible;min-width:0}
.entry-wrap .entry-article .th{display:contents}

/* ===== 22:00 組み直し：トップと同じ密度・同じ部品で ===== */
h2.h2{font-size:clamp(1.9rem,1.3rem + 1.6vw,2.75rem)}
.sec{padding-block:clamp(64px,7.3vw,108px)}
.sec-head{margin-bottom:clamp(36px,4.5vw,56px)}
/* トップと同じ hero を配下でも使う（.hero の見た目は top-2026.css） */
.hero--sub .breadcrumb{margin-bottom:24px}
.hero--sub h1{font-size:clamp(2.2rem,1.4rem + 2vw,3.3rem)}
.hero--sub .hero-lead{max-width:34em}
.hero--sub .hero-detail{max-width:36em}
.hero--sub .hero-detail p+p{margin-top:.9em}
.hero--sub .hero-statement{margin-top:28px;font-family:var(--serif);font-weight:600;color:var(--navy);font-size:clamp(1.25rem,1rem + .8vw,1.6rem);line-height:1.75}
.hero--sub .hero-cred{margin-top:36px}
.hero-portrait--cheer>img{height:74%;transform:translateX(-50%)}
.hero-portrait--arms>img{height:84%;transform:translateX(-50%)}
/* キャラが台の上に立つ面（左に置く子は右向き・右に置く子は左向き） */
.stage{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(28px,5vw,72px);align-items:end;background:#eef0f5;border-radius:2px;padding:clamp(32px,4.5vw,56px) clamp(28px,5vw,64px) 0}
.stage--left{grid-template-columns:280px minmax(0,1fr)}
.stage>img{width:100%;max-width:280px;justify-self:center;display:block}
.stage>div{padding-bottom:clamp(32px,4.5vw,56px)}
.stage .statement{font-size:clamp(1.35rem,1.05rem + 1vw,1.9rem)}
.stage .prose{margin-top:18px}
.sec--tint .stage{background:var(--white);border:1px solid var(--rule)}
.stage+.stage{margin-top:28px}
/* 表はカードに */
.tbl-card{background:var(--white);border:1px solid var(--rule);border-top:4px solid var(--navy);border-radius:2px;padding:6px clamp(16px,3vw,32px) 8px}
.tbl-card .tbl{border-top:0}
.tbl-card .tbl tbody tr:last-child th,.tbl-card .tbl tbody tr:last-child td{border-bottom:0}
.cards--auto{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card .num+h3{margin-top:0}
.card h3+p{margin-top:12px}
/* 料金の行を強く */
.plan-row{border-top:5px solid var(--navy);padding:clamp(32px,4.5vw,52px)}
.plan-row--main{background:var(--ground)}
.plan-row .price{font-size:3rem}
.plan-row .pair{display:flex;gap:6px;margin-top:24px}
.plan-row .pair img{width:120px}
/* 型のページの頭 */
.page-hero--pair{background:var(--ground);border-bottom:1px solid var(--rule);padding-block:clamp(40px,5vw,64px) clamp(48px,6vw,80px)}
.page-hero--pair h1{font-size:clamp(2.4rem,1.6rem + 2.6vw,4rem)}
.page-hero--pair .hero-pair>img{max-width:380px}
.page-hero--pair .hero-pair>div{padding-bottom:30px}
.page-hero--pair .lead{margin-top:36px}
/* 研究ノート・記事の題 */
.page-hero h1{font-size:clamp(2.2rem,1.4rem + 2vw,3.3rem)}
@media(max-width:900px){
 .stage,.stage--left{grid-template-columns:1fr;padding-bottom:0}
 .stage>img{order:2;max-width:210px;margin-top:4px}
 .stage>div{padding-bottom:22px}
}
@media(max-width:600px){
 .hero--sub .breadcrumb{grid-row:1;margin-bottom:12px}
 .hero--sub h1{grid-row:2;font-size:2.1rem}
 .hero--sub .hero-portrait{grid-row:3}
 .hero--sub .hero-lead{grid-row:4}
 .hero--sub .hero-detail{grid-row:5}
 .hero--sub .hero-statement{grid-row:6;margin-top:22px}
 .hero--sub .hero-actions{grid-row:7}
 .hero--sub .hero-meta{grid-row:8}
 .hero--sub .hero-cred{grid-row:9;margin-top:0}
 .hero-portrait--cheer>img{height:100%;bottom:-18px;transform:translateX(-50%)}
 .hero-portrait--arms>img{height:112%;bottom:-44px;transform:translateX(-50%)}
 .plan-row{padding:26px 22px 28px}
 .plan-row .price{font-size:2.3rem}
 .plan-row .pair{justify-content:center}
 .page-hero--pair h1{font-size:2.1rem}
}
/* 320px と小さな文字の手当て */
.plan-main .eyebrow,.plan .price span,.plan-main .price span,.plan-top .price span{font-size:.75rem!important}
@media(max-width:600px){h2.h2{font-size:1.75rem}.hero--sub .portrait-name span{font-size:.75rem}.wpcf7 input[type=submit]{min-width:0}.hero--sub .breadcrumb{word-break:auto-phrase;overflow-wrap:anywhere}}
@media(max-width:359px){h2.h2{font-size:1.5rem}.hero--sub h1{font-size:1.8rem}.stage{padding-inline:18px}.form-box{padding:18px 14px}.pair-band{padding-inline:18px}}
/* 目視後：スマホで写真が名札に重ならないように／型ページの導入文の幅／5枚のカード */
.page-hero--pair .section-intro.lead{max-width:none;margin-top:40px}
.cards--auto{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.mini-type img{width:160px}.mini-type,.mini-type.design{grid-template-columns:minmax(0,1fr) 160px}.mini-type.art{grid-template-columns:160px minmax(0,1fr)}
@media(max-width:600px){
 .hero-portrait--cheer>img{height:104%;bottom:-20px;transform:translateX(-34%)}
 .hero-portrait--arms>img{height:116%;bottom:-48px;transform:translateX(-28%)}
 .mini-type img{width:110px}.mini-type,.mini-type.design{grid-template-columns:minmax(0,1fr) 110px}.mini-type.art{grid-template-columns:110px minmax(0,1fr)}
}
@media(max-width:600px){.hero-portrait--cheer>img{height:100%;bottom:-16px;transform:translateX(-26%)}.hero-portrait--arms>img{height:112%;bottom:-44px;transform:translateX(-18%)}.hero--sub .portrait-name{font-size:1.5rem}}
@media(max-width:359px){.stage .quote-box{padding:18px 16px}.stage .statement{font-size:1.2rem}.quote-box p{font-size:.9375rem}}
