/* STABRO CSSまとめ 2026-10-09（元のCSSを同じ順につなげたもの。元を直したら作り直す）
   /ph/site-consistency-20260930.css
   /ph/light-fix-20260930.css
   /ph/campaign-data/campaigns.css */

/* ===== /ph/site-consistency-20260930.css ===== */
/* Shared heading sizes and current-page treatment for the static STABRO site. */
body[data-heading-scale] main h1 {font-size:40px !important;line-height:1.35 !important;overflow-wrap:anywhere;}
body[data-heading-scale="entry"] main h1 {font-size:48px !important;}
body[data-heading-scale] h2 {font-size:30px !important;line-height:1.45 !important;overflow-wrap:anywhere;}
body[data-heading-scale] main h1 > span,body[data-heading-scale] main h1 > em,
body[data-heading-scale] h2 > span,body[data-heading-scale] h2 > em {font-size:inherit !important;}
body[data-heading-scale] .header-action a[aria-current="page"] {outline:3px solid #005653;outline-offset:3px;}
body[data-heading-scale] .city-section-nav a {white-space:nowrap;}
@media(max-width:767px){body[data-heading-scale] main h1,body[data-heading-scale] h2{letter-spacing:-.035em;}body[data-heading-scale] .city-section-nav .shared-wrap{overflow-x:auto;}}

/* Shared reading rhythm and next actions; no pricing or content changes. */
:root{--flow-ink:#075653;--flow-accent:#c65b16;--flow-line:#d6e4df;--flow-paper:#f3f8f5}
body main :is(h1,h2,h3){word-break:normal;overflow-wrap:break-word;text-wrap:balance}
body[data-heading-scale] main h1:not(.sr-only){font-size:clamp(28px,3.6vw,48px)!important;line-height:1.45!important;overflow-wrap:break-word}
body[data-heading-scale] main h2{font-size:clamp(23px,2.4vw,30px)!important;line-height:1.5!important;overflow-wrap:break-word}
body main :is(h1,h2) br{display:none}
body main :is(h1,h2)>span{max-width:100%;white-space:normal}
body .content-guide{box-sizing:border-box;max-width:880px!important;margin:64px auto!important;padding:0 24px!important;line-height:1.9}
body .content-guide :is(p,li){line-height:1.9}
body .content-guide :is(h2,h3){margin-top:2em;margin-bottom:.8em}
body .content-guide a:not(.btn){color:var(--flow-ink);text-decoration:underline;text-underline-offset:4px}
body main :is(.page-toc,.section-nav,.city-section-nav){scroll-margin-top:100px}
body main [id]{scroll-margin-top:100px}
body main a:focus-visible,body main button:focus-visible,body main select:focus-visible{outline:3px solid #c65b16;outline-offset:4px}
.flow-start{max-width:1180px;margin:28px auto 48px;padding:0 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.flow-start a{display:grid;grid-template-columns:44px 1fr 20px;align-items:center;gap:12px;min-height:100px;padding:20px;background:#fff;border:1px solid var(--flow-line);border-radius:16px;color:var(--flow-ink);box-shadow:0 4px 16px #07565308;text-decoration:none;transition:box-shadow .2s,border-color .2s}
.flow-start a:hover{border-color:var(--flow-ink);box-shadow:0 6px 20px #07565315}
.flow-start .flow-symbol{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--flow-paper);font-size:22px}
.flow-start strong{display:block;font-size:20px;line-height:1.5}.flow-start small{display:block;font-size:13px;color:#526762;line-height:1.7;margin-top:4px}
.flow-card-actions{display:grid;gap:10px;margin-top:16px}.flow-card-actions .btn{width:100%;min-height:48px;justify-content:center;white-space:normal;text-align:center}.flow-card-actions .flow-price{color:var(--flow-ink);background:#fff;border:1px solid var(--flow-ink)}
.flow-hint{font-size:14px!important;line-height:1.7!important;margin:12px 0!important;color:#526762}
#consult-link[aria-disabled="true"]{opacity:.55;cursor:not-allowed}#consult-link[aria-disabled="false"]{opacity:1}
@media(max-width:767px){.flow-start{margin:20px auto 32px;padding:0 18px;gap:10px;grid-template-columns:1fr}.flow-start a{min-height:76px;padding:14px 16px}.flow-start strong{font-size:18px}.flow-start small{font-size:13px}body .content-guide{padding:0 20px!important;margin:40px auto!important}body main :is(h1,h2,h3){letter-spacing:0!important}.flow-card-actions .btn{min-height:48px}}
@media(prefers-reduced-motion:reduce){.flow-start a{transition:none}}
body .wp-article{box-sizing:border-box;max-width:880px!important;margin:0 auto!important;padding:0 24px!important;font-size:16px!important;line-height:1.9!important;color:#283f3b}
body .wp-article p{margin:0 0 1.5em!important;line-height:1.9!important}body .wp-article :is(ul,ol){padding-left:1.5em!important;line-height:1.9!important}body .wp-article li{margin-bottom:.6em!important}
body .wp-article :is(h2,h3){margin:2em 0 .8em!important;line-height:1.5!important;color:var(--flow-ink)}body .wp-article a:not(.btn){color:var(--flow-ink)!important;text-decoration:underline!important;text-underline-offset:4px}
body .wp-article :is(img,iframe){max-width:100%!important}body .wp-article img{height:auto!important}body .wp-article table{display:block;max-width:100%;overflow-x:auto}body .wp-article .sgft-contact{margin:32px 0!important;padding:24px!important;background:var(--flow-paper)!important;border:1px solid var(--flow-line);border-radius:16px}
@media(max-width:767px){body .wp-article{padding:0 20px!important}body .wp-article .sgft-contact{padding:18px!important}}
/* Existing table-of-contents layouts keep their page-specific structure. */
body main :is(.prep-toc,.cp-nav,.ph-nav,.about-section-nav,.area-nav,.city-section-nav,.shared-tabs) a{min-height:44px;box-sizing:border-box;line-height:1.6;text-align:center;text-underline-offset:4px}
body main :is(.prep-toc,.cp-nav,.ph-nav,.about-section-nav,.area-nav) a{padding:12px 16px;border-radius:10px}
@media(max-width:767px){body main :is(.prep-toc,.cp-nav,.ph-nav,.about-section-nav,.area-nav){gap:8px}body main :is(.prep-toc,.cp-nav,.ph-nav,.about-section-nav,.area-nav) a{font-size:14px!important;padding:10px 12px}}


/* ===== /ph/light-fix-20260930.css ===== */
/* Full-width backgrounds, with existing content widths preserved. */
html body[data-mode="public"]{max-width:none!important;width:100%;margin-inline:0!important;}
body[data-mode="public"] .site-header,body[data-mode="public"] .site-footer{width:100%;max-width:none!important;}
body[data-mode="public"] .header-inner,body[data-mode="public"] .site-footer>.wrap{max-width:1200px!important;margin-inline:auto!important;}
body[data-mode="public"] .hero-approved,body[data-mode="public"] .diagnosis-strip{max-width:1200px;margin-inline:auto;}
body[data-mode="public"] .closing-inner{max-width:1200px;margin-inline:auto;}
body[data-page="school"] .page-main{max-width:none!important;}
body[data-page="school"] .shared-hero{display:block!important;}
.light-hero-inner{display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);max-width:1200px;margin-inline:auto;}
body[data-page="school"] .shared-tabs{display:block;padding:0;}
.light-tabs-inner{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));max-width:1200px;margin-inline:auto;padding:22px 35px;}
@media(max-width:760px){.light-hero-inner{display:flex;flex-direction:column;}.light-tabs-inner{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;gap:8px;}}
body[data-heading-scale] main h1{font-size:40px!important;line-height:1.35!important;}
body[data-heading-scale="entry"] main h1{font-size:48px!important;}
body[data-heading-scale] h2{font-size:30px!important;line-height:1.45!important;}

/* Keep TOP and diagnosis content centered inside full-width backgrounds. */
body[data-mode="public"][data-page="index"] .wrap,
body[data-mode="public"][data-page="index"] .page-heading,
body[data-mode="public"][data-page="diagnosis"] .wrap,
body[data-mode="public"][data-page="diagnosis"] .page-heading{
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}


/* ===== /ph/campaign-data/campaigns.css ===== */
.campaign-page{max-width:1200px;margin:auto;padding:48px 24px 72px;color:#23443d;line-height:1.85;overflow-wrap:anywhere}
.campaign-page *{box-sizing:border-box}
.campaign-kicker{color:#627b6b;font-size:12px;letter-spacing:.16em;font-weight:700}
.campaign-page h1{font-size:clamp(27px,3.5vw,42px);line-height:1.5;margin:12px 0 20px}
.campaign-intro{max-width:780px;margin-bottom:32px}
.campaign-service{background:#edf4ec;border:1px solid #dce6d7;border-radius:16px;padding:28px;margin:30px 0 44px}
.campaign-service h2,.campaign-heading{font-size:clamp(21px,2.4vw,28px);line-height:1.5;margin:0 0 18px}
.campaign-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.campaign-service h3{font-size:18px;margin:0 0 8px}.campaign-service p{margin:0}
.campaign-count{color:#627267;font-size:14px}
.campaign-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:20px}
.campaign-card{border:1px solid #e3e1d8;background:#fff;border-radius:16px;padding:25px;min-width:0;color:#23443d;line-height:1.85}
.campaign-card h3{font-size:20px;line-height:1.6;margin:14px 0 10px}.campaign-card p{margin:10px 0}
.campaign-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.campaign-label{font-size:12px;font-weight:700;background:#fff0df;color:#9a491f;padding:4px 11px;border-radius:999px;white-space:nowrap}
.campaign-school{font-weight:700;color:#175f49;text-decoration:underline;text-underline-offset:3px}
.campaign-area{color:#68776d;font-size:12px}
.campaign-period{font-size:14px;font-weight:700}.campaign-source,.campaign-conditions{font-size:13px;color:#617166}
.campaign-conditions{border-top:1px solid #e8e8e0;padding-top:12px}
.campaign-note{font-size:14px;background:#fff7ea;border-left:3px solid #dc974e;padding:18px 22px;margin:30px 0}
.campaign-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.campaign-empty{grid-column:1/-1;padding:20px;background:#f5f7f2;border-radius:12px;margin:0}
.campaign-school-notices{padding-top:24px;padding-bottom:12px}
.campaign-school-wrap{max-width:1200px;margin:auto}.campaign-school-wrap .campaign-card{margin:12px 0}
.campaign-news-title{font-size:22px;margin:0 0 16px}.campaign-all{display:inline-block;margin:12px 0;color:#175f49;text-decoration:underline;text-underline-offset:3px}
@media(max-width:700px){.campaign-page{padding:30px 18px 44px}.campaign-service{padding:22px;margin:25px 0 32px}.campaign-service-grid,.campaign-grid{grid-template-columns:1fr}.campaign-card{padding:20px}.campaign-card h3{font-size:18px}.campaign-actions{flex-direction:column}.campaign-actions .btn{width:100%}.campaign-school-wrap{padding:0 18px}.campaign-grid{gap:16px}}

