/* Fully scoped: theme typography/chrome and every article page remain untouched. */
.kbf-page {
  --kbf-blue:#006fae; --kbf-deep:#005fb9; --kbf-cyan:#00cade;
  --kbf-text:#212121; --kbf-muted:#5c6670; --kbf-line:#d6e9f1; --kbf-soft:#f2fafe;
  width:100%; margin:0; color:var(--kbf-text); background:#fff;
  font-family:"noto-sans-cjk-jp",sans-serif; font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased; line-height:1.8; overflow-wrap:anywhere;
}
.kbf-page *, .kbf-page *::before, .kbf-page *::after { box-sizing:border-box; }
.kbf-page a { color:inherit; text-decoration:none; }
.kbf-page img { display:block; width:100%; max-width:100%; height:auto; }
.kbf-page p { margin:0; }
.kbf-page h2, .kbf-page h3 {
  margin:0; padding:0; border:0; background:none; box-shadow:none;
  color:var(--kbf-text); font-family:inherit; font-weight:700; line-height:1.6;
}
.kbf-page h2 { font-size:26px; letter-spacing:.02em; }
.kbf-page h2::before, .kbf-page h2::after, .kbf-page h3::before, .kbf-page h3::after { display:none; }
.kbf-page ul, .kbf-page ol { margin:0; padding:0; list-style:none; }
.kbf-page li { margin:0; padding:0; list-style:none; }
.kbf-page li::before { display:none; }
.kbf-page button, .kbf-page input, .kbf-page select { font:inherit; letter-spacing:inherit; }
.kbf-page button { cursor:pointer; }
.kbf-page a:focus-visible, .kbf-page button:focus-visible, .kbf-page input:focus-visible, .kbf-page select:focus-visible { outline:3px solid #005fb9; outline-offset:4px; }
.kbf-page .kbf-container { width:min(1080px,calc(100% - 40px)); margin-inline:auto; }
.kbf-page .kbf-breadcrumb { padding:0; background:#f7f9fa; color:#6b747b; font-size:12px; line-height:1.5; }
.kbf-page .kbf-breadcrumb ol { display:flex; align-items:center; gap:8px; }
.kbf-page .kbf-breadcrumb a { display:inline-flex; align-items:center; min-height:44px; color:var(--kbf-blue); }
.kbf-page .kbf-br-mobile { display:none; }
.kbf-page .kbf-body { padding-top:44px; padding-bottom:88px; }
.kbf-page .kbf-eyebrow { margin:0 0 7px; color:var(--kbf-blue); font-size:14px; font-weight:600; letter-spacing:.05em; line-height:1.4; }
.kbf-page .kbf-search-panel { padding:32px 40px; border:1px solid var(--kbf-line); border-radius:22px; background:#fff; box-shadow:0 10px 40px rgba(0,89,139,.07); }
.kbf-page .kbf-section-heading { margin-bottom:24px; }
.kbf-page .kbf-label { display:block; margin-bottom:7px; color:var(--kbf-text); font-size:13px; font-weight:700; line-height:1.7; }
.kbf-page .kbf-search-row { display:flex; gap:12px; }
.kbf-page .kbf-input-wrap { position:relative; flex:1; min-width:0; }
.kbf-page .kbf-input-wrap svg { position:absolute; top:50%; left:19px; width:23px; height:23px; transform:translateY(-50%); stroke:var(--kbf-blue); stroke-width:1.7; pointer-events:none; }
.kbf-page input[type=search] { width:100%; min-height:60px; margin:0; padding:14px 20px 14px 52px; border:1px solid #a9c5d3; border-radius:9px; background:#fcfeff; color:var(--kbf-text); font-size:16px; line-height:1.7; box-shadow:none; }
.kbf-page input::placeholder { color:#6d7981; opacity:1; }
.kbf-page .kbf-button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:48px; margin:0; padding:12px 24px; border:1px solid transparent; border-radius:8px; font-size:14px; font-weight:700; line-height:1.5; text-align:center; transition:background .15s,box-shadow .15s; }
.kbf-page .kbf-button--primary { background:#006fae; color:#fff; }
.kbf-page .kbf-button--primary:hover { background:#00598d; box-shadow:0 4px 12px rgba(0,89,139,.15); }
.kbf-page .kbf-search-row > .kbf-button { min-width:166px; }
.kbf-page .kbf-button--outline { border-color:#8fbdd3; background:#fff; color:var(--kbf-blue); }
.kbf-page .kbf-button--outline:hover { background:var(--kbf-soft); }
.kbf-page .kbf-help { margin-top:9px; color:var(--kbf-muted); font-size:12px; line-height:1.8; }
.kbf-page .kbf-search-options { display:flex; align-items:flex-end; gap:14px; margin-top:21px; }
.kbf-page .kbf-field { flex:1; min-width:0; }
.kbf-page .kbf-field--sort { flex:0 1 245px; }
.kbf-page select { width:100%; min-height:46px; margin:0; padding:10px 34px 10px 12px; border:1px solid #b7cdd8; border-radius:7px; background-color:#fff; color:var(--kbf-text); font-size:14px; line-height:1.7; }
.kbf-page .kbf-button--apply { min-height:46px; padding:10px 20px; border-color:#a9c9d8; background:#f2fafe; color:var(--kbf-blue); white-space:nowrap; }
.kbf-page .kbf-button--apply:hover { background:#e3f3fa; }
.kbf-page .kbf-suggestions { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; margin-top:21px; padding-top:16px; border-top:1px solid #e9f0f3; font-size:12px; }
.kbf-page .kbf-suggestions > span { margin-right:4px; color:var(--kbf-muted); }
.kbf-page .kbf-suggestions a { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:var(--kbf-blue); text-decoration:underline; text-decoration-color:#b8dbea; text-underline-offset:4px; }
.kbf-page .kbf-suggestions a:hover { text-decoration-color:currentColor; }
.kbf-page .kbf-concerns { padding-top:48px; }
.kbf-page .kbf-section-line { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:20px; }
.kbf-page .kbf-section-line h2 { font-size:21px; }
.kbf-page .kbf-section-line > span { color:var(--kbf-blue); font-size:13px; letter-spacing:.04em; }
.kbf-page .kbf-concern-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.kbf-page .kbf-concern { position:relative; display:flex; flex-direction:column; align-items:flex-start; min-height:157px; padding:17px 16px 24px; border:1px solid var(--kbf-line); border-radius:12px; background:linear-gradient(145deg,#f7fcff,#f1fafc); transition:border-color .15s,box-shadow .15s; }
.kbf-page .kbf-concern:hover { border-color:#76b9d6; box-shadow:0 4px 14px rgba(0,89,139,.07); }
.kbf-page .kbf-concern__number { margin-bottom:8px; color:#287da9; font-size:13px; line-height:1.5; }
.kbf-page .kbf-concern strong { font-size:16px; line-height:1.6; }
.kbf-page .kbf-concern__description { margin-top:5px; color:var(--kbf-muted); font-size:11px; line-height:1.8; }
.kbf-page .kbf-concern__arrow { position:absolute; bottom:9px; right:13px; color:var(--kbf-blue); font-size:18px; }
.kbf-page .kbf-results { padding-top:58px; scroll-margin-top:105px; }
.kbf-page .kbf-results:focus { outline:none; }
.kbf-page #kbf-search-title { scroll-margin-top:110px; }
.kbf-page .kbf-results-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:24px; }
.kbf-page .kbf-count { color:var(--kbf-muted); font-size:13px; text-align:right; white-space:nowrap; }
.kbf-page .kbf-count strong { margin-right:3px; color:var(--kbf-blue); font-size:29px; font-weight:600; line-height:1.4; }
.kbf-page .kbf-count > span { display:block; margin-top:3px; font-size:11px; }
.kbf-page .kbf-category-nav { display:flex; flex-wrap:wrap; gap:9px; margin-bottom:24px; }
.kbf-page .kbf-sort-nav { display:flex; gap:22px; margin-bottom:22px; border-bottom:1px solid var(--kbf-line); }
.kbf-page .kbf-sort-nav a { display:inline-flex; align-items:center; min-height:48px; padding:9px 3px 12px; border-bottom:3px solid transparent; color:var(--kbf-muted); font-size:15px; font-weight:700; }
.kbf-page .kbf-sort-nav a span { font-size:12px; }
.kbf-page .kbf-sort-nav a:hover { color:var(--kbf-blue); }
.kbf-page .kbf-sort-nav a[aria-current=page] { border-bottom-color:var(--kbf-blue); color:var(--kbf-blue); }
.kbf-page .kbf-popular-note { margin:-5px 0 22px; padding:12px 16px; border-radius:8px; background:var(--kbf-soft); color:#456170; font-size:12px; line-height:1.9; }
.kbf-page .kbf-chip { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 18px; border:1px solid #c6dfe9; border-radius:30px; background:#fff; color:#3c5f71; font-size:12px; line-height:1.6; }
.kbf-page .kbf-chip:hover { background:#eef8fc; }
.kbf-page .kbf-chip.is-active { border-color:var(--kbf-blue); background:var(--kbf-blue); color:#fff; }
.kbf-page .kbf-active-filters { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:5px 20px; margin-bottom:24px; padding:8px 16px; border-radius:8px; background:var(--kbf-soft); font-size:13px; }
.kbf-page .kbf-active-filters p { flex:1; min-width:180px; }
.kbf-page .kbf-active-filters p span { display:inline-block; margin-left:6px; }
.kbf-page .kbf-active-filters a { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--kbf-blue); text-decoration:underline; text-underline-offset:4px; }
.kbf-page .kbf-article-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; }
.kbf-page .kbf-card { min-width:0; overflow:hidden; border:1px solid #e0ecf1; border-radius:13px; background:#fff; transition:box-shadow .15s,border-color .15s; }
.kbf-page .kbf-card:hover { border-color:#91c7de; box-shadow:0 8px 28px rgba(0,84,123,.08); }
.kbf-page .kbf-card__link { display:flex; flex-direction:column; height:100%; }
.kbf-page .kbf-card:focus-within { outline:3px solid #005fb9; outline-offset:4px; }
.kbf-page .kbf-card__link:focus-visible { outline:none; }
.kbf-page .kbf-card__image { aspect-ratio:16/9; overflow:hidden; background:#eff8fc; }
.kbf-page .kbf-card__image img { width:100%; height:100%; object-fit:cover; }
.kbf-page .kbf-card__placeholder { display:flex; align-items:center; justify-content:center; flex-direction:column; height:100%; color:#277599; background:radial-gradient(circle at 80% 20%,#d7f5f8,transparent 50%),linear-gradient(135deg,#f4fcff,#deeff8); font-size:32px; letter-spacing:.1em; }
.kbf-page .kbf-card__placeholder > span { margin-top:3px; font-size:11px; letter-spacing:.04em; }
.kbf-page .kbf-card__content { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:20px 20px 16px; }
.kbf-page .kbf-card__category { display:inline-block; margin-bottom:10px; padding:3px 9px; border-radius:4px; background:#eaf6fb; color:#06658f; font-size:11px; line-height:1.7; }
.kbf-page .kbf-card h3 { width:100%; font-size:17px; line-height:1.7; letter-spacing:.01em; }
.kbf-page .kbf-card__excerpt { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin:11px 0 20px; color:var(--kbf-muted); font-size:12px; line-height:1.9; }
.kbf-page .kbf-card__footer { display:flex; justify-content:space-between; align-items:center; gap:9px; width:100%; margin-top:auto; padding-top:13px; border-top:1px solid #e7eff3; }
.kbf-page .kbf-card__date { color:var(--kbf-muted); font-size:10px; line-height:1.6; }
.kbf-page .kbf-card__read { color:var(--kbf-blue); font-size:11px; font-weight:700; white-space:nowrap; }
.kbf-page .kbf-card__read > span { margin-left:4px; }
.kbf-page .kbf-pagination { margin:40px 0 0; }
.kbf-page .kbf-pagination ul { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; }
.kbf-page .kbf-pagination a, .kbf-page .kbf-pagination span.page-numbers { display:flex; align-items:center; justify-content:center; min-width:46px; min-height:46px; padding:8px 14px; border:1px solid #cfdee6; border-radius:7px; background:#fff; color:#476575; font-size:13px; line-height:1.6; }
.kbf-page .kbf-pagination a:hover { background:var(--kbf-soft); border-color:#8bbcd2; }
.kbf-page .kbf-pagination span.current { border-color:var(--kbf-blue); background:var(--kbf-blue); color:#fff; }
.kbf-page .kbf-pagination span.dots { min-width:22px; padding-inline:0; border-color:transparent; }
.kbf-page .kbf-empty { padding:45px 24px; border:1px solid var(--kbf-line); border-radius:14px; background:#f8fcfe; text-align:center; }
.kbf-page .kbf-empty__icon { color:var(--kbf-blue); font-size:44px; line-height:1; }
.kbf-page .kbf-empty h3 { margin:15px 0 10px; font-size:19px; }
.kbf-page .kbf-empty > p:not(.kbf-empty__icon) { color:var(--kbf-muted); font-size:14px; }
.kbf-page .kbf-empty__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:22px; }
.kbf-page .kbf-salon { display:flex; justify-content:space-between; align-items:center; gap:28px; margin-top:72px; padding:32px; border:1px solid var(--kbf-line); border-radius:15px; background:linear-gradient(135deg,#f4fbff,#edfafd); }
.kbf-page .kbf-salon h2 { font-size:22px; }
.kbf-page .kbf-salon h2 + p { margin-top:8px; color:var(--kbf-muted); font-size:12px; }
.kbf-page .kbf-salon__actions { display:flex; flex-shrink:0; gap:10px; }
.kbf-page .kbf-salon__actions .kbf-button { padding-inline:18px; }
.kbf-page .kbf-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:960px) {
  .kbf-page .kbf-search-panel { padding:28px; }
  .kbf-page .kbf-concern-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .kbf-page .kbf-concern { min-height:143px; }
  .kbf-page .kbf-article-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kbf-page .kbf-salon { align-items:flex-start; flex-direction:column; }
}
@media (max-width:768px) {
  .kbf-page .kbf-container { width:min(calc(100% - 32px),620px); }
  .kbf-page .kbf-body { padding-top:28px; padding-bottom:55px; }
  .kbf-page .kbf-search-panel { padding:24px 20px; border-radius:16px; }
  .kbf-page h2 { font-size:23px; }
  .kbf-page .kbf-section-heading h2 { font-size:22px; }
  .kbf-page .kbf-eyebrow { font-size:12px; }
  .kbf-page .kbf-search-row { gap:10px; }
  .kbf-page .kbf-search-row > .kbf-button { min-width:120px; padding-inline:16px; }
  .kbf-page .kbf-search-row > .kbf-button span { display:none; }
  .kbf-page .kbf-search-options { flex-wrap:wrap; gap:13px; }
  .kbf-page .kbf-field { flex:1 1 calc(50% - 13px); }
  .kbf-page .kbf-button--apply { width:100%; }
  .kbf-page .kbf-concerns { padding-top:35px; }
  .kbf-page .kbf-concern-grid { gap:10px; }
  .kbf-page .kbf-results { padding-top:42px; }
  .kbf-page .kbf-results-heading { margin-bottom:20px; }
  .kbf-page .kbf-article-grid { gap:22px 16px; }
  .kbf-page .kbf-card__content { padding:16px; }
  .kbf-page .kbf-card h3 { font-size:16px; }
  .kbf-page .kbf-card__footer { flex-wrap:wrap; }
  .kbf-page .kbf-salon { margin-top:48px; padding:25px; }
}
@media (max-width:600px) {
  .kbf-page .kbf-br-mobile { display:block; }
  .kbf-page .kbf-search-panel { padding:22px 18px; }
  .kbf-page .kbf-section-heading { margin-bottom:20px; }
  .kbf-page .kbf-section-heading h2 { font-size:19px; letter-spacing:0; }
  .kbf-page .kbf-search-row { flex-direction:column; }
  .kbf-page input[type=search] { min-height:56px; padding-left:43px; padding-right:12px; }
  .kbf-page .kbf-input-wrap svg { left:13px; width:21px; }
  .kbf-page .kbf-search-row > .kbf-button { min-height:48px; }
  .kbf-page .kbf-help { font-size:11px; }
  .kbf-page .kbf-search-options { margin-top:18px; }
  .kbf-page .kbf-field { flex-basis:100%; }
  .kbf-page .kbf-suggestions { gap:2px 14px; margin-top:16px; padding-top:14px; }
  .kbf-page .kbf-suggestions > span { flex-basis:100%; }
  .kbf-page .kbf-section-line h2 { font-size:19px; }
  .kbf-page .kbf-concern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kbf-page .kbf-concern { min-height:134px; padding:14px 13px 24px; }
  .kbf-page .kbf-concern:last-child { grid-column:1 / -1; min-height:105px; }
  .kbf-page .kbf-concern strong { font-size:15px; }
  .kbf-page .kbf-concern__description { font-size:11px; }
  .kbf-page .kbf-category-nav { gap:7px; }
  .kbf-page .kbf-chip { padding-inline:13px; font-size:11px; }
  .kbf-page .kbf-count strong { font-size:26px; }
  .kbf-page .kbf-article-grid { grid-template-columns:1fr; gap:22px; }
  .kbf-page .kbf-card__content { padding:20px; }
  .kbf-page .kbf-card h3 { font-size:18px; }
  .kbf-page .kbf-card__excerpt { font-size:13px; }
  .kbf-page .kbf-card__date, .kbf-page .kbf-card__read { font-size:11px; }
  .kbf-page .kbf-pagination ul { gap:6px; }
  .kbf-page .kbf-pagination a, .kbf-page .kbf-pagination span.page-numbers { min-width:44px; padding:8px 11px; }
  .kbf-page .kbf-pagination span.dots { min-width:15px; padding-inline:0; }
  .kbf-page .kbf-salon { padding:25px 21px; gap:22px; }
  .kbf-page .kbf-salon h2 { font-size:20px; }
  .kbf-page .kbf-salon__actions { flex-direction:column; width:100%; }
  .kbf-page .kbf-empty { padding:32px 20px; }
  .kbf-page .kbf-empty h3 { font-size:17px; }
  .kbf-page .kbf-empty__actions { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  .kbf-page *, .kbf-page *::before, .kbf-page *::after { transition:none !important; scroll-behavior:auto !important; }
}
