@charset "UTF-8";

/*
Theme Name: Cocoon Child
Template: cocoon-master
*/

/*
 * BousaiWxLab public site design layer
 * Canonical local source for Cocoon Child style.css additions.
 * Updated: 2026-08-21
 */

:root {
  --bousai-navy: #0b3a67;
  --bousai-navy-deep: #062b4d;
  --bousai-blue: #1267a5;
  --bousai-sky: #48a8dd;

  --bousai-teal: #2a7f78;
  --bousai-ink: #1f2d3d;
  --bousai-muted: #5a6b7c;
  --bousai-surface: #ffffff;
  --bousai-surface-soft: #f5f9fc;
  --bousai-border: #dce8f1;
  --bousai-border-strong: #c7dbe8;
  --bousai-shadow-sm: 0 8px 24px rgba(11, 58, 103, 0.08);
  --bousai-shadow-md: 0 18px 46px rgba(11, 58, 103, 0.14);
  --bousai-shadow-card: 0 12px 30px rgba(11, 58, 103, 0.09);
  --bousai-radius-sm: 14px;
  --bousai-radius-md: 22px;
  --bousai-radius-lg: 30px;
  --bousai-ease: 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

html {
  scroll-behavior: smooth;
}

body {
  color: var(--bousai-ink);
  background:
    radial-gradient(circle at 8% 8%, rgba(72, 168, 221, 0.13), transparent 28rem),
    radial-gradient(circle at 92% 36%, rgba(42, 127, 120, 0.08), transparent 26rem),
    linear-gradient(180deg, #f8fbfd 0%, #f3f7fa 48%, #eef5f8 100%);
}

a {
  transition: color var(--bousai-ease), background-color var(--bousai-ease),
    border-color var(--bousai-ease), box-shadow var(--bousai-ease),
    transform var(--bousai-ease), opacity var(--bousai-ease);
}

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #f2bd35;
  outline-offset: 4px;
  border-radius: 6px;
}

.wrap {
  width: min(1180px, calc(100% - 40px));
}

/* Sky header: the site name remains real HTML text. */
#header {
  position: relative;
  overflow: hidden;
  background-position: center 42%;
  background-size: cover;
  isolation: isolate;
}

#header,
#header-in {
  height: 228px !important;
}

#header::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background:
    linear-gradient(180deg, rgba(5, 44, 79, 0.06) 0%, rgba(255, 255, 255, 0.04) 50%, rgba(6, 43, 77, 0.12) 100%),
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.34), transparent 38%);
  pointer-events: none;
}

#header-in {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#header-in::before {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: min(790px, calc(100% - 48px));
  height: 128px;
  content: "";
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(240, 249, 254, 0.66));
  box-shadow: 0 18px 48px rgba(7, 47, 83, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(12px) saturate(112%);
  backdrop-filter: blur(12px) saturate(112%);
}

.logo-header {
  margin: 0;
}

.site-name-text {
  color: var(--bousai-navy);
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 760;
  line-height: 1.22;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 10px rgba(255, 255, 255, 0.9);
}

.tagline {
  max-width: 720px;
  margin-top: 12px;
  padding: 0 18px;
  color: #163b5c;
  font-size: 13px;
  font-weight: 620;
  line-height: 1.6;
  letter-spacing: 0.015em;
  text-align: center;
  text-shadow: 0 1px 8px rgba(255, 255, 255, 0.95);
}

/* Lighter navigation: names only, no truncated descriptions. */
#navi {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 56%, #105887);
  box-shadow: 0 8px 24px rgba(7, 47, 83, 0.14);
}

#navi .navi-in > ul {
  gap: 8px;
  padding: 7px 0;
}

#navi .sub-caption {
  display: none;
}

#navi .navi-in > ul > li > a {
  position: relative;
  min-height: 46px;
  padding: 0 22px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.025em;
}

#navi .navi-in > ul > li > a::after {
  position: absolute;
  right: 20px;
  bottom: 8px;
  left: 20px;
  height: 2px;
  content: "";
  transform: scaleX(0);
  border-radius: 999px;
  background: #86d8ef;
  transition: transform var(--bousai-ease);
}

/* Keep every item neutral until hover. The body prefix also outranks the
   older WordPress Additional CSS current-menu rule loaded later in the page. */
body #navi .navi-in > ul > li > a:not(:hover) {
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.025);
}

body #navi .navi-in > ul > li > a:not(:hover)::after {
  transform: scaleX(0);
}

#navi .navi-in > ul > li > a:hover {
  color: #fff;
  border-color: rgba(134, 216, 239, 0.58);
  background: rgba(255, 255, 255, 0.12);
}

#navi .navi-in > ul > li > a:hover::after {
  transform: scaleX(1);
}

/* Reading surfaces. */
.content-in {
  padding-top: 36px;
  padding-bottom: 64px;
}

#main {
  border: 1px solid rgba(220, 232, 241, 0.92);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--bousai-shadow-sm);
}

.home #main {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.home .entry-content {
  margin-top: 0;
}

.home .entry-content > .bousai-intro,
.home .entry-content > .bousai-section,
.home .entry-content > .bousai-x-strip {
  width: min(1120px, calc(100% - 40px));
  margin-right: auto;
  margin-left: auto;
}

.home .article-header,
.home .article-footer.entry-footer {
  display: none;
}

.page:not(.home) #main,
.single #main {
  max-width: 860px;
  margin-right: auto;
  margin-left: auto;
}

.entry-content {
  line-height: 1.9;
}

.entry-content > h2:not(.has-text-align-center) {
  position: relative;
  margin-top: 2.7em;
  padding: 0 0 0.55em 20px;
  border: 0;
  background: transparent;
  color: var(--bousai-navy);
  font-weight: 750;
  letter-spacing: 0.02em;
}

.entry-content > h2:not(.has-text-align-center)::before {
  position: absolute;
  top: 0.12em;
  bottom: 0.62em;
  left: 0;
  width: 5px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bousai-sky), var(--bousai-teal));
}

.entry-content h3 {
  color: var(--bousai-navy);
}

.entry-content img {
  border-radius: var(--bousai-radius-sm);
}

.entry-content a:not(.wp-block-button__link):hover {
  color: var(--bousai-teal);
}

/* Homepage: compact brand message, then articles. */
.bousai-intro {
  position: relative;
  overflow: hidden;
  margin: 0 0 44px;
  padding: 42px clamp(30px, 5vw, 60px);
  border: 1px solid var(--bousai-border-strong);
  border-radius: 26px;
  background:
    linear-gradient(122deg, rgba(255, 255, 255, 0.98), rgba(238, 248, 253, 0.96)),
    var(--bousai-surface);
  box-shadow: var(--bousai-shadow-card);
}

.bousai-intro::after {
  position: absolute;
  top: -120px;
  right: -90px;
  width: 330px;
  height: 330px;
  content: "";
  border-radius: 50%;
  background: radial-gradient(circle, rgba(72, 168, 221, 0.2), transparent 68%);
  pointer-events: none;
}

.bousai-kicker {
  margin: 0 0 14px;
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 780;
  letter-spacing: 0.075em;
  text-transform: none;
}

.bousai-intro h1,
.bousai-intro h2 {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: clamp(32px, 3.1vw, 42px);
  font-weight: 780;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.bousai-intro h2::before {
  display: none;
}

.bousai-intro-copy {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 18px 0 0;
  color: #40556a;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.85;
}

.bousai-intro-actions {
  position: relative;
  z-index: 1;
  margin-top: 28px;
}

.bousai-intro .wp-block-button__link,
.bousai-primary-link {
  border: 1px solid transparent;
  border-radius: 999px;
  background: linear-gradient(110deg, var(--bousai-navy), var(--bousai-blue));
  box-shadow: 0 10px 24px rgba(18, 103, 165, 0.2);
  color: #fff;
  font-weight: 700;
}

.bousai-intro .wp-block-button__link:hover,
.bousai-primary-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(18, 103, 165, 0.28);
  color: #fff;
}

.bousai-intro .is-style-outline .wp-block-button__link {
  border-color: #b8cfdf;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: none;
  color: var(--bousai-navy);
}

.bousai-section {
  margin-top: 52px;
  margin-bottom: 52px;
}

.entry-content .bousai-section-heading {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(26px, 2.55vw, 32px) !important;
  font-weight: 760;
  letter-spacing: 0.01em;
}

.entry-content .bousai-section-heading::before {
  display: block;
  width: 34px;
  height: 4px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bousai-sky), var(--bousai-teal));
}

.bousai-section-note {
  max-width: 760px;
  margin: -10px 0 26px;
  color: var(--bousai-muted);
  font-size: 15px;
}

/* Future-ready article grid: first post becomes the feature automatically. */
.bousai-post-grid .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
}

.bousai-post-grid .wp-block-post {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: var(--bousai-surface);
  box-shadow: var(--bousai-shadow-sm);
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease), border-color var(--bousai-ease);
}

.bousai-post-grid .wp-block-post:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.bousai-post-grid .wp-block-post:hover {
  transform: translateY(-6px);
  border-color: #b5d5e6;
  box-shadow: var(--bousai-shadow-md);
}

.bousai-post-grid .wp-block-post-featured-image {
  overflow: hidden;
  margin: 0;
}

.bousai-post-grid .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0;
  object-fit: cover;
  transition: transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bousai-post-grid .wp-block-post:hover .wp-block-post-featured-image img {
  transform: scale(1.035);
}

.bousai-post-grid .wp-block-post-title,
.bousai-post-grid .wp-block-post-excerpt,
.bousai-post-grid .wp-block-post-terms {
  margin-right: 20px;
  margin-left: 20px;
}

.bousai-post-grid .wp-block-post-title {
  margin-top: 14px;
  margin-bottom: 10px;
  font-size: 20px;
  line-height: 1.55;
}

.bousai-post-grid .wp-block-post:first-child .wp-block-post-title {
  font-size: clamp(24px, 2.4vw, 32px);
}

.bousai-post-grid .wp-block-post-title a {
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-post-grid .wp-block-post-title a:hover {
  color: var(--bousai-blue);
}

.bousai-post-grid .wp-block-post-terms {
  margin-top: 16px;
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 750;
}

.bousai-post-grid .wp-block-post-excerpt {
  margin-bottom: 20px;
  color: var(--bousai-muted);
  font-size: 14px;
  line-height: 1.75;
}

.bousai-launch-note {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background: var(--bousai-surface);
  box-shadow: var(--bousai-shadow-md);
}

.bousai-launch-note figure {
  min-height: 330px;
  margin: 0;
  overflow: hidden;
}

.bousai-launch-note img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  border-radius: 0;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bousai-launch-note:hover img {
  transform: scale(1.025);
}

.bousai-launch-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(30px, 4.5vw, 58px);
}

.bousai-launch-copy h3 {
  margin: 0 0 16px;
  font-size: clamp(23px, 2.5vw, 30px);
  line-height: 1.5;
}

.bousai-launch-copy p {
  margin: 0;
  color: var(--bousai-muted);
}

.bousai-image-note {
  display: block;
  margin-top: 16px;
  color: #718091;
  font-size: 11px;
  line-height: 1.6;
}

/* Theme gateways remain subordinate to articles. */
.bousai-theme-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
}

.bousai-theme-link {
  position: relative;
  display: flex;
  min-height: 164px;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px;
  border: 1px solid var(--bousai-border-strong);
  border-top: 3px solid rgba(42, 127, 120, 0.72);
  border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 252, 0.94));
  box-shadow: var(--bousai-shadow-card);
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-theme-link::after {
  display: grid;
  width: 34px;
  height: 34px;
  align-self: flex-end;
  content: "→";
  color: var(--bousai-blue);
  place-items: center;
  border: 1px solid #c8deea;
  border-radius: 50%;
  background: #fff;
  font-size: 18px;
  transition: transform var(--bousai-ease);
}

.bousai-theme-link:hover {
  transform: translateY(-5px);
  border-color: #abd2e5;
  background: linear-gradient(145deg, #fff, #eaf7fb);
  box-shadow: var(--bousai-shadow-md);
  color: var(--bousai-navy);
}

.bousai-theme-link:hover::after {
  transform: translateX(5px);
}

.bousai-theme-link strong {
  font-size: 18px;
  line-height: 1.45;
}

.bousai-theme-label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 12px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(18, 103, 165, 0.09);
  color: var(--bousai-blue);
  font-size: 11px;
  font-weight: 780;
  letter-spacing: 0.045em;
}

.bousai-theme-link small {
  margin-top: 8px;
  color: var(--bousai-muted);
  font-size: 13px;
  line-height: 1.65;
}

/* Preparedness knowledge hub: intuitive before / during / after path. */
.bousai-knowledge-hero {
  margin: 0 0 46px;
  padding: clamp(30px, 5vw, 58px);
  border: 1px solid rgba(181, 214, 232, 0.82);
  border-radius: var(--bousai-radius-lg);
  background:
    radial-gradient(circle at 92% 8%, rgba(72, 168, 221, 0.18), transparent 30%),
    linear-gradient(135deg, #fff, #eef8fc);
  box-shadow: var(--bousai-shadow-md);
}

.entry-content .bousai-knowledge-hero h2 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(30px, 4vw, 44px) !important;
  line-height: 1.35;
}

.entry-content .bousai-knowledge-hero h2::before {
  display: none;
}

.bousai-knowledge-lead {
  max-width: 760px;
  margin: 18px 0 0;
  color: #40556a;
  font-size: 17px;
  line-height: 1.9;
}

.bousai-stage-timeline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  margin-top: 34px;
}

.bousai-stage-card {
  display: flex;
  min-height: 178px;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 8px 22px rgba(11, 58, 103, 0.06);
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-stage-card:hover {
  transform: translateY(-5px);
  border-color: #9ccde3;
  box-shadow: var(--bousai-shadow-md);
  color: var(--bousai-navy);
}

.bousai-stage-number {
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.14em;
}

.bousai-stage-card strong {
  display: block;
  margin: 12px 0 8px;
  font-size: 23px;
}

.bousai-stage-card small {
  color: var(--bousai-muted);
  font-size: 13px;
  line-height: 1.65;
}

.bousai-stage-arrow {
  display: grid;
  color: var(--bousai-blue);
  font-size: 28px;
  font-weight: 800;
  place-items: center;
}

.bousai-foundation-panel,
.bousai-stage-detail {
  scroll-margin-top: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-foundation-panel {
  margin: 46px 0;
  padding: clamp(28px, 4vw, 44px);
  border-left: 6px solid var(--bousai-teal);
}

.bousai-foundation-panel h2,
.bousai-stage-detail h2 {
  margin-top: 0 !important;
}

.bousai-topic-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.bousai-topic-chips li {
  padding: 8px 13px;
  border: 1px solid #cfe2ec;
  border-radius: 999px;
  background: #f5fafc;
  color: #3c5369;
  font-size: 13px;
}

.bousai-stage-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
}

.bousai-stage-detail {
  padding: 28px 24px;
}

.bousai-stage-detail ul {
  margin-bottom: 0;
}

.bousai-empty-note {
  margin: 22px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--bousai-border);
  color: var(--bousai-muted);
  font-size: 13px;
}

.bousai-promises {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  counter-reset: promise;
  list-style: none;
}

.bousai-promises li {
  position: relative;
  padding: 28px 24px 26px 64px;
  border: 1px solid var(--bousai-border-strong);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--bousai-shadow-card);
  color: #3d5165;
  counter-increment: promise;
}

.bousai-promises li::before {
  position: absolute;
  top: 26px;
  left: 22px;
  display: grid;
  width: 28px;
  height: 28px;
  content: counter(promise);
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bousai-blue), var(--bousai-teal));
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.bousai-profile {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 4vw, 50px);
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(240, 248, 252, 0.94));
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-profile img {
  width: 160px;
  height: 160px;
  border: 5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 16px 34px rgba(11, 58, 103, 0.18);
  object-fit: cover;
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease);
}

.bousai-profile:hover img {
  transform: translateY(-4px) rotate(-1deg);
  box-shadow: 0 22px 42px rgba(11, 58, 103, 0.24);
}

.bousai-profile h3 {
  margin: 0 0 12px;
  font-size: 26px;
}

.bousai-profile p {
  margin: 0;
  color: #40556a;
}

.bousai-text-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  color: var(--bousai-blue);
  font-weight: 750;
  text-decoration: none;
}

.bousai-text-link:hover {
  gap: 10px;
  color: var(--bousai-teal);
}

.bousai-x-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 30px;
  border-radius: var(--bousai-radius-md);
  background: linear-gradient(112deg, var(--bousai-navy-deep), var(--bousai-navy));
  box-shadow: var(--bousai-shadow-sm);
  color: #fff;
}

.bousai-x-strip p {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
}

.bousai-x-strip a {
  flex: 0 0 auto;
  padding: 11px 19px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 999px;
  color: #fff;
  font-weight: 750;
  text-decoration: none;
}

.bousai-x-strip a:hover {
  transform: translateY(-2px);
  border-color: #fff;
  background: #fff;
  color: var(--bousai-navy);
}

/* Provisional daily disaster calendar. */
.bousai-daily-teaser {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid #c8dfed;
  border-radius: var(--bousai-radius-md);
  background:
    radial-gradient(circle at 92% 18%, rgba(72, 168, 221, 0.18), transparent 16rem),
    linear-gradient(135deg, #f7fbfe, #eef7fb);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-daily-teaser .bousai-section-heading {
  margin-bottom: 14px;
}

.bousai-daily-teaser p:last-child {
  max-width: 680px;
  margin-bottom: 0;
  color: #40556a;
}

.bousai-daily-teaser-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 999px;
  background: var(--bousai-navy);
  color: #fff;
  font-weight: 750;
  text-decoration: none;
}

.bousai-daily-teaser-link:hover {
  gap: 13px;
  transform: translateY(-2px);
  background: var(--bousai-navy-deep);
  color: #fff;
}

.bousai-note-hero,
.bousai-note-section,
.bousai-note-method {
  margin: 0 0 42px;
}

.bousai-note-hero {
  padding: clamp(28px, 5vw, 50px);
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background:
    radial-gradient(circle at 92% 12%, rgba(72, 168, 221, 0.17), transparent 18rem),
    linear-gradient(135deg, #fff, #f2f9fc);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-note-hero h2 {
  margin: 4px 0 16px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(28px, 4.5vw, 42px);
  line-height: 1.38;
}

.bousai-note-hero h2::before,
.bousai-note-heading-row h2::before,
.bousai-note-method h2::before,
.bousai-damage-card h3::before {
  display: none !important;
}

.bousai-note-hero > p:not(.bousai-kicker):not(.bousai-note-caution) {
  max-width: 720px;
  color: #40556a;
  font-size: 16px;
}

.bousai-note-caution {
  margin: 22px 0 0;
  padding: 16px 18px;
  border-left: 5px solid #d18b00;
  border-radius: 0 12px 12px 0;
  background: #fff8e8;
  color: #533a0e;
}

.bousai-note-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.bousai-note-heading-row h2,
.bousai-note-method h2 {
  margin: 4px 0 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(25px, 3.2vw, 34px);
}

.bousai-note-checked {
  max-width: 300px;
  margin: 0;
  color: var(--bousai-muted);
  font-size: 13px;
  text-align: right;
}

.bousai-damage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.bousai-damage-card {
  padding: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-damage-card-severe {
  border-top: 5px solid #9d2f35;
}

.bousai-damage-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.bousai-status-chip {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eaf5fa;
  color: var(--bousai-navy);
  font-size: 12px;
  font-weight: 800;
}

.bousai-source-label {
  color: var(--bousai-muted);
  font-size: 12px;
  font-weight: 700;
}

.bousai-damage-card h3 {
  margin: 18px 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: 22px;
}

.bousai-damage-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}

.bousai-damage-stats-four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bousai-damage-stats div {
  padding: 13px;
  border-radius: 12px;
  background: var(--bousai-surface-soft);
}

.bousai-damage-stats dt {
  color: var(--bousai-muted);
  font-size: 12px;
  font-weight: 700;
}

.bousai-damage-stats dd {
  margin: 4px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.35;
}

.bousai-damage-stats small {
  display: block;
  margin-top: 3px;
  color: #52677a;
  font-size: 11px;
  font-weight: 600;
}

.bousai-damage-card > p {
  color: #40556a;
  font-size: 14px;
}

.bousai-source-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--bousai-blue);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.bousai-source-link:hover {
  color: var(--bousai-teal);
}

.bousai-archive-search {
  border: 1px solid #c9dce7;
  background: linear-gradient(145deg, #f8fbfd 0%, #edf6fa 100%);
}

.bousai-archive-search-form {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(150px, 1fr)) auto;
  align-items: end;
  gap: 12px;
}

.bousai-archive-search-form label {
  display: grid;
  gap: 7px;
  margin: 0;
  color: var(--bousai-navy-deep);
  font-size: 12px;
  font-weight: 800;
}

.bousai-archive-search-form input,
.bousai-archive-search-form select,
.bousai-archive-search-form button {
  min-height: 48px;
  margin: 0;
  border-radius: 10px;
  font: inherit;
}

.bousai-archive-search-form input,
.bousai-archive-search-form select {
  width: 100%;
  border: 1px solid #a9becb;
  background: #fff;
  color: var(--bousai-ink);
}

.bousai-archive-search-form input {
  padding: 0 14px;
}

.bousai-archive-search-form select {
  padding: 0 34px 0 12px;
}

.bousai-archive-search-form button {
  padding: 0 17px;
  border: 1px solid var(--bousai-navy);
  background: var(--bousai-navy);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.bousai-archive-search-form input:focus-visible,
.bousai-archive-search-form select:focus-visible,
.bousai-archive-search-form button:focus-visible,
.bousai-search-results a:focus-visible,
.bousai-history-links a:focus-visible,
.bousai-history-chart:focus-visible {
  outline: 3px solid #68b8d7;
  outline-offset: 3px;
}

.bousai-search-help,
.bousai-search-noscript {
  margin: 12px 0 0;
  color: #52677a;
  font-size: 12px;
}

.bousai-search-count {
  margin: 18px 0 9px;
  color: var(--bousai-muted);
  font-size: 13px;
}

.bousai-search-count strong {
  margin-right: 4px;
  color: var(--bousai-navy-deep);
  font-size: 18px;
}

.bousai-search-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-search-results li {
  min-width: 0;
}

.bousai-search-results a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 12px;
  height: 100%;
  padding: 13px 14px;
  border: 1px solid #d2e0e8;
  border-radius: 11px;
  background: #fff;
  color: var(--bousai-ink);
  text-decoration: none;
}

.bousai-search-results a:hover {
  border-color: #74aac7;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-search-results strong {
  min-width: 0;
  overflow: hidden;
  color: var(--bousai-navy-deep);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bousai-search-results a > span:not(.bousai-search-result-status) {
  grid-column: 1;
  color: var(--bousai-muted);
  font-size: 11px;
}

.bousai-search-result-status {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: #e8f2f7;
  color: #28556e;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.bousai-search-results .is-empty {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed #b7cbd6;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.65);
  color: var(--bousai-muted);
  text-align: center;
}

.bousai-calendar-archive-nav {
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid var(--bousai-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-calendar-year-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
}

.bousai-calendar-year-row a {
  color: var(--bousai-blue);
  font-size: 13px;
  font-weight: 750;
}

.bousai-calendar-year-row strong {
  color: var(--bousai-navy-deep);
  font-size: 24px;
}

.bousai-calendar-nav-note {
  color: var(--bousai-muted);
  font-size: 12px;
  text-align: right;
}

.bousai-calendar-months {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-calendar-months span,
.bousai-calendar-months strong {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  font-size: 12px;
}

.bousai-calendar-months span {
  background: #f3f6f8;
  color: #82909d;
}

.bousai-calendar-months strong {
  background: var(--bousai-navy);
  color: #fff;
}

.bousai-calendar-swipe-note {
  display: none;
  margin: 0 0 10px;
  color: var(--bousai-muted);
  font-size: 12px;
}

.bousai-month-calendar-scroll {
  max-width: 100%;
  overflow-x: auto;
  padding: 1px 1px 12px;
  border-radius: 14px;
  overscroll-behavior-inline: contain;
  scrollbar-color: #86b7d2 #edf4f7;
}

.bousai-month-calendar-scroll:focus-visible {
  outline: 3px solid #68b8d7;
  outline-offset: 4px;
}

.bousai-month-calendar-shell {
  width: 100%;
  min-width: 0;
}

.bousai-month-weekdays,
.bousai-month-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.bousai-month-weekdays span {
  padding: 10px;
  border: 1px solid #d7e4eb;
  background: #f6f8f9;
  color: var(--bousai-navy-deep);
  font-weight: 800;
  text-align: center;
}

.bousai-month-weekdays .is-sunday {
  background: #fff0f0;
  color: #a42f38;
}

.bousai-month-weekdays .is-saturday {
  background: #edf6ff;
  color: #175c9a;
}

.bousai-month-calendar {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-month-calendar li {
  min-width: 0;
  min-height: 226px;
  border: 1px solid #d7e4eb;
  background: #fff;
}

.bousai-month-calendar .is-empty {
  background: #f6f8f9;
}

.bousai-month-calendar a,
.bousai-month-calendar li > div {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 9px;
}

.bousai-month-calendar a {
  color: var(--bousai-ink);
  text-decoration: none;
}

.bousai-month-calendar a:hover {
  position: relative;
  z-index: 1;
  background: #f1f8fc;
  box-shadow: inset 0 0 0 2px #7eb8d7;
}

.bousai-month-calendar strong {
  margin-bottom: 7px;
  color: var(--bousai-navy-deep);
  font-size: 19px;
}

.bousai-month-calendar .is-sunday strong {
  color: #a42f38;
}

.bousai-month-calendar .is-saturday strong {
  color: #175c9a;
}

.bousai-month-calendar img,
.bousai-chart-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 600 / 581;
  border-radius: 8px;
}

.bousai-month-calendar img {
  border: 1px solid #d3e0e7;
  background: #eaf2f6;
  object-fit: cover;
}

.bousai-month-calendar a > span:last-child {
  margin-top: 8px;
  color: #314b62;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}

.bousai-chart-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px dashed #bdcdd6;
  background: linear-gradient(145deg, #f7fafb, #eaf1f4);
  color: #617686;
}

.bousai-month-calendar .bousai-chart-placeholder span,
.bousai-month-calendar .bousai-chart-placeholder small {
  margin: 0;
  color: inherit;
}

.bousai-month-calendar .bousai-chart-placeholder small {
  margin-top: 4px;
  font-size: 10px;
}

.bousai-month-calendar .has-event {
  background: #fffdf2;
}

.bousai-month-calendar .is-current {
  box-shadow: inset 0 0 0 3px var(--bousai-blue);
}

.bousai-month-calendar .is-current strong::after {
  content: " 今日";
  color: var(--bousai-blue);
  font-size: 10px;
}

.bousai-month-calendar .is-future {
  background: #f8fafb;
}

.bousai-calendar-source {
  margin: 12px 0 0;
  color: var(--bousai-muted);
  font-size: 12px;
}

.bousai-history-intro {
  max-width: 900px;
  color: #40556a;
}

.bousai-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.bousai-history-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 16px;
  border: 1px solid var(--bousai-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-history-date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.bousai-history-date time {
  color: var(--bousai-navy-deep);
  font-size: 15px;
  font-weight: 850;
  letter-spacing: 0.03em;
}

.bousai-history-date span {
  color: var(--bousai-muted);
  font-size: 10px;
  font-weight: 700;
  text-align: right;
}

.bousai-history-chart,
.bousai-history-placeholder {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border: 1px solid #d2e0e8;
  border-radius: 11px;
  background: #eaf2f6;
  aspect-ratio: 4 / 3;
}

.bousai-history-chart img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bousai-history-chart > span {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(4, 37, 67, 0.88);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.bousai-history-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  border-style: dashed;
  background: linear-gradient(145deg, #f7fafb, #e6eef2);
  color: #617686;
}

.bousai-history-placeholder strong {
  color: var(--bousai-navy-deep);
  font-size: 20px;
}

.bousai-history-placeholder span {
  font-size: 11px;
}

.bousai-history-card h3 {
  margin: 15px 0 8px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: 20px;
}

.bousai-history-card > p {
  flex: 1;
  margin: 0 0 14px;
  color: #40556a;
  font-size: 13px;
}

.bousai-history-links {
  display: grid;
  gap: 7px;
}

.bousai-history-links a {
  color: var(--bousai-blue);
  font-size: 12px;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.bousai-note-method {
  padding: 25px 28px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: var(--bousai-surface-soft);
}

.bousai-note-method ul {
  margin: 16px 0 18px;
}

.bousai-note-method li + li {
  margin-top: 7px;
}

/* Daily weather archive: use the editorial canvas efficiently without
   changing the width of other fixed pages. */
body.page.page-id-57 #main {
  width: 100%;
  max-width: 1180px;
}

/* About page: reduce unused side space while keeping a readable measure. */
body.page.page-id-14 #main {
  width: min(1240px, calc(100% - 48px));
  max-width: none;
  padding-top: 18px;
  padding-right: clamp(30px, 4vw, 48px);
  padding-bottom: 22px;
  padding-left: clamp(30px, 4vw, 48px);
}

body.page.page-id-14 .content-in {
  width: 100%;
  max-width: none;
  padding-top: 16px;
  padding-bottom: 30px;
}

.page-id-14 .entry-content {
  line-height: 1.82;
}

.page-id-57 .entry-content {
  line-height: 1.78;
}

.page-id-57 .bousai-note-hero,
.page-id-57 .bousai-note-section,
.page-id-57 .bousai-note-method {
  margin-bottom: 30px;
}

.page-id-57 .bousai-note-hero {
  padding: clamp(24px, 3.3vw, 38px);
}

.page-id-57 .bousai-note-hero h2 {
  margin-bottom: 12px;
  font-size: clamp(28px, 3.3vw, 40px);
  line-height: 1.32;
}

.page-id-57 .bousai-note-hero > p:not(.bousai-kicker):not(.bousai-note-caution) {
  max-width: 980px;
}

.page-id-57 .bousai-note-caution {
  margin-top: 18px;
  padding: 14px 16px;
}

.page-id-57 .bousai-note-heading-row {
  margin-bottom: 16px;
}

.page-id-57 .bousai-damage-grid {
  gap: 16px;
}

.page-id-57 .bousai-damage-card {
  padding: 20px;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 14px;
  padding: 14px;
}

.page-id-57 .bousai-month-calendar .is-future,
.page-id-57 .bousai-month-calendar .is-empty {
  min-height: 92px;
}

.page-id-57 .bousai-history-grid {
  gap: 14px;
  margin-top: 16px;
}

.page-id-57 .bousai-history-card {
  padding: 14px;
}

.page-id-57 .bousai-note-method {
  padding: 22px 24px;
}

.page-id-57 .bousai-note-method ul {
  margin: 12px 0 14px;
}

@media screen and (min-width: 1024px) {
  .page-id-57 .bousai-search-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Keep the monthly calendar first and fully visible in one normal PC viewport.
   Weather charts remain small supporting thumbnails; the dated record is primary. */
@media screen and (min-width: 835px) {
  .page-id-57 .bousai-calendar-priority {
    margin-bottom: 24px;
  }

  .page-id-57 .bousai-calendar-priority .bousai-note-heading-row {
    margin-bottom: 7px;
  }

  .page-id-57 .bousai-calendar-priority .bousai-kicker {
    margin-bottom: 1px;
  }

  .page-id-57 .bousai-calendar-priority h2 {
    margin: 0;
    font-size: 26px;
    line-height: 1.2;
  }

  .page-id-57 .bousai-calendar-priority .bousai-note-checked {
    max-width: 430px;
    font-size: 11px;
    line-height: 1.35;
  }

  .page-id-57 .bousai-calendar-archive-nav {
    margin-bottom: 6px;
    padding: 7px 10px;
    border-radius: 12px;
  }

  .page-id-57 .bousai-calendar-year-row {
    gap: 8px;
    margin-bottom: 5px;
  }

  .page-id-57 .bousai-calendar-year-row a,
  .page-id-57 .bousai-calendar-nav-note {
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-year-row strong {
    font-size: 18px;
  }

  .page-id-57 .bousai-calendar-months {
    gap: 3px;
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 22px;
    border-radius: 6px;
    font-size: 10px;
  }

  .page-id-57 .bousai-month-calendar-scroll {
    overflow-y: hidden;
    padding-bottom: 4px;
  }

  .page-id-57 .bousai-month-weekdays span {
    padding: 4px;
    font-size: 12px;
    line-height: 1.2;
  }

  .page-id-57 .bousai-month-calendar li,
  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    height: 68px;
    min-height: 68px;
  }

  .page-id-57 .bousai-month-calendar a,
  .page-id-57 .bousai-month-calendar li > div {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 4px;
    padding: 4px;
  }

  .page-id-57 .bousai-month-calendar strong {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    margin: 0;
    font-size: 15px;
    line-height: 1.1;
  }

  .page-id-57 .bousai-month-calendar img,
  .page-id-57 .bousai-chart-placeholder {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 58px;
    aspect-ratio: auto;
    border-radius: 4px;
    object-fit: cover;
  }

  .page-id-57 .bousai-month-calendar a > span:last-child {
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin: 0;
    padding: 2px 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.92);
    font-size: 8.5px;
    line-height: 1.15;
  }

  .page-id-57 .bousai-month-calendar .bousai-chart-placeholder span {
    font-size: 9px;
  }

  .page-id-57 .bousai-month-calendar .bousai-chart-placeholder small {
    margin-top: 1px;
    font-size: 8px;
  }

  .page-id-57 .bousai-calendar-source {
    margin-top: 5px;
    font-size: 10.5px;
    line-height: 1.35;
  }
}

/* 2026-08-18 production information architecture for the Bousai Weather
   Calendar. This final override keeps the calendar dominant, removes the
   experimental radar motif, and introduces event-based recent topics. */
.page-id-57 .entry-content {
  overflow-x: clip;
}

.page-id-57 .bousai-calendar-brand {
  min-height: 104px;
  gap: 18px;
  margin: 0 0 8px;
  padding: 14px 22px;
  border-color: #d7e6ef;
  border-radius: 16px 16px 8px 8px;
  background-color: #fbfdff;
  background-image:
    linear-gradient(rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(112deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 251, 254, 0.96) 64%, rgba(235, 247, 252, 0.9) 100%);
  background-size: 24px 24px, 24px 24px, 100% 100%;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.07);
}

.page-id-57 .bousai-calendar-brand::before {
  inset: 0;
  width: auto;
  height: auto;
  opacity: 0.28;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160'%3E%3Cg fill='none' stroke='%23228da0' stroke-width='1.2' opacity='.46'%3E%3Cpath d='M600 28c95-39 175 36 270 3s174-17 262 27'/%3E%3Cpath d='M565 62c98-35 180 39 278 7s183-13 279 33'/%3E%3Cpath d='M535 98c106-31 186 40 291 13s188-7 292 43'/%3E%3C/g%3E%3Cg fill='%2315909b' opacity='.48'%3E%3Ccircle cx='846' cy='69' r='2.5'/%3E%3Ccircle cx='915' cy='47' r='2.5'/%3E%3Ccircle cx='983' cy='55' r='2.5'/%3E%3C/g%3E%3Cg fill='%2352abc6' opacity='.16'%3E%3Cpath d='M1015 118c17-19 37-21 53-5 23-31 65-18 67 13h-120c-8-1-8-7 0-8Z'/%3E%3Cpath d='M925 132c11-14 28-15 40-3 17-23 48-13 50 11h-90c-6-1-6-6 0-8Z'/%3E%3C/g%3E%3C/svg%3E") right center / auto 100% no-repeat;
  transform: none;
}

.page-id-57 .bousai-calendar-brand::after {
  top: 16px;
  right: 18px;
  bottom: auto;
  width: 142px;
  height: 20px;
  border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 142 20'%3E%3Cpath d='M2 10h138' stroke='%231b95a1' stroke-width='1' opacity='.28'/%3E%3Cg fill='%231b95a1' opacity='.45'%3E%3Ccircle cx='22' cy='10' r='2'/%3E%3Ccircle cx='70' cy='10' r='2'/%3E%3Ccircle cx='118' cy='10' r='2'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  filter: none;
}

.page-id-57 .bousai-calendar-brand-icon {
  width: 68px;
  height: 68px;
  border-radius: 17px;
  box-shadow: 0 9px 20px rgba(10, 61, 105, 0.14), inset 0 0 0 1px rgba(83, 165, 200, 0.18);
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: baseline;
  gap: 3px 18px;
  padding-left: 18px;
}

.page-id-57 .bousai-calendar-brand-copy::before {
  width: 3px;
  background: #15979b;
}

.page-id-57 .bousai-calendar-brand h1 {
  grid-column: 1;
  font-size: clamp(27px, 3vw, 36px);
  line-height: 1.12;
  letter-spacing: 0.018em;
}

.page-id-57 .bousai-calendar-brand p,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  display: block;
  margin: 0;
  white-space: normal;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  grid-column: 2;
  color: #148d94;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0.06em;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  grid-column: 1 / -1;
  color: #4b667a;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}

.page-id-57 .bousai-calendar-brand p span {
  display: none;
}

.page-id-57 .bousai-calendar-priority {
  margin-bottom: 18px;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 5px;
  padding: 8px 10px 9px;
  border-radius: 13px;
  box-shadow: 0 5px 17px rgba(12, 63, 103, 0.06);
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(280px, 1.15fr) auto auto;
  gap: 11px;
  margin-bottom: 7px;
  padding: 2px 4px 8px;
}

.page-id-57 .bousai-calendar-current-month {
  grid-template-columns: 38px auto minmax(130px, 1fr);
  gap: 8px;
}

.page-id-57 .bousai-calendar-current-icon {
  width: 34px;
  height: 34px;
}

.page-id-57 .bousai-calendar-current-icon svg {
  width: 20px;
  height: 20px;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 10px !important;
  font-size: clamp(25px, 2.6vw, 33px);
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 36px;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-control-panel button {
  min-width: 92px;
  padding: 6px 10px;
}

.page-id-57 .bousai-calendar-control-panel select {
  min-width: 102px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 12px;
}

.page-id-57 .bousai-calendar-months {
  gap: 5px;
}

.page-id-57 .bousai-calendar-months button,
.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 32px;
}

.page-id-57 .bousai-calendar-months button {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9e5ec;
  border-radius: 10px;
  background: #fff;
  color: #708396;
  font-size: 12px;
  font-weight: 600;
  opacity: 1;
}

.page-id-57 .bousai-calendar-swipe-note {
  margin: 3px 0 5px;
}

.page-id-57 .bousai-calendar-source {
  margin: 7px 0 0;
  color: #587084;
  font-size: 11.5px;
  line-height: 1.5;
}

.page-id-57 .bousai-calendar-today-label {
  display: inline-flex;
  margin: 2px 0 0 3px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #e4f7f7;
  color: #087e88;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.5;
}

.page-id-57 .bousai-recent-topics,
.page-id-57 .bousai-archive-search,
.page-id-57 .bousai-calendar-about,
.page-id-57 .bousai-note-method {
  padding: clamp(20px, 2.7vw, 30px);
  border: 1px solid #d7e6ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.055);
}

.page-id-57 .bousai-recent-topics-intro {
  margin: -4px 0 18px;
  color: #4e687b;
}

.page-id-57 .bousai-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.page-id-57 .bousai-topic-card {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid #cfe1eb;
  border-top: 4px solid #15979b;
  border-radius: 15px;
  background: linear-gradient(180deg, #fbfeff, #fff 30%);
}

.page-id-57 .bousai-topic-card.is-severe {
  border-top-color: #0b4f82;
}

.page-id-57 .bousai-topic-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}

.page-id-57 .bousai-topic-meta span {
  padding: 4px 8px;
  border: 1px solid #d7e6ef;
  border-radius: 999px;
  background: #f5fafc;
  color: #4f6b7f;
  font-size: 10.5px;
  font-weight: 720;
}

.page-id-57 .bousai-topic-card h3 {
  margin: 0 0 8px;
  color: var(--bousai-navy-deep);
  font-size: clamp(20px, 2.1vw, 25px);
  line-height: 1.3;
}

.page-id-57 .bousai-topic-summary {
  margin: 0 0 13px;
  color: #3f596c;
  font-size: 13px;
  line-height: 1.72;
}

.page-id-57 .bousai-topic-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0 0 14px;
}

.page-id-57 .bousai-topic-card:not(.is-severe) .bousai-topic-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-id-57 .bousai-topic-stats div {
  padding: 8px 6px;
  border: 1px solid #dbe8ef;
  border-radius: 10px;
  background: #f7fbfd;
  text-align: center;
}

.page-id-57 .bousai-topic-stats dt {
  color: #60798b;
  font-size: 10px;
  font-weight: 700;
}

.page-id-57 .bousai-topic-stats dd {
  margin: 2px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 16px;
  font-weight: 820;
  line-height: 1.25;
}

.page-id-57 .bousai-topic-timeline {
  position: relative;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.page-id-57 .bousai-topic-timeline::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 48px;
  width: 1px;
  background: #b8d9e2;
  content: "";
}

.page-id-57 .bousai-topic-timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  align-items: start;
  padding: 5px 0;
  color: #405b6e;
  font-size: 11.5px;
  line-height: 1.55;
}

.page-id-57 .bousai-topic-timeline li::before {
  position: absolute;
  top: 12px;
  left: 45px;
  width: 7px;
  height: 7px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #15979b;
  box-shadow: 0 0 0 1px #89cbd1;
  content: "";
}

.page-id-57 .bousai-topic-timeline time {
  color: #0a5878;
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}

.page-id-57 .bousai-topic-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.page-id-57 .bousai-topic-links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 9px;
  border: 1px solid #add5de;
  border-radius: 8px;
  background: #f6fbfc;
  color: #087b87;
  font-size: 10.5px;
  font-weight: 760;
  text-decoration: none;
}

.page-id-57 .bousai-topic-links a:hover {
  border-color: #15979b;
  background: #eaf8f8;
}

.page-id-57 .bousai-topic-data-note {
  margin: 11px 0 0;
  color: #6b7f8e;
  font-size: 10.5px;
  line-height: 1.55;
}

.page-id-57 .bousai-calendar-about h2,
.page-id-57 .bousai-note-method h2 {
  margin-bottom: 12px;
}

.page-id-57 .bousai-calendar-about p:not(.bousai-kicker) {
  margin: 8px 0 0;
  color: #435e71;
}

.page-id-57 .bousai-safety-note {
  margin: 16px 0;
  padding: 14px 16px;
  border-left: 4px solid #15979b;
  border-radius: 8px;
  background: #edf8fa;
  color: #173f5b;
  font-weight: 680;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 760px) {
  .page-id-57 .bousai-topic-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    min-height: 0;
    gap: 10px;
    margin-bottom: 7px;
    padding: 12px;
    border-radius: 13px 13px 7px 7px;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: 0;
    opacity: 0.19;
  }

  .page-id-57 .bousai-calendar-brand::after {
    display: none;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 50px;
    height: 50px;
    border-radius: 13px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6.1vw, 24px);
    white-space: normal;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 3px;
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 7px;
    font-size: 10.5px;
    line-height: 1.5;
  }

  .page-id-57 .bousai-calendar-control-panel {
    gap: 7px;
    padding-bottom: 8px;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-template-columns: 35px auto 1fr;
  }

  .page-id-57 .bousai-calendar-current-icon {
    width: 33px;
    height: 33px;
  }

  .page-id-57 .bousai-calendar-current-month h2 {
    font-size: 23px;
  }

  .page-id-57 .bousai-calendar-year-controls {
    padding-top: 7px;
  }

  .page-id-57 .bousai-calendar-months {
    display: flex;
    grid-template-columns: none;
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 6px;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .page-id-57 .bousai-calendar-months li {
    flex: 0 0 62px;
    scroll-snap-align: start;
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 34px;
  }

  .page-id-57 .bousai-recent-topics,
  .page-id-57 .bousai-archive-search,
  .page-id-57 .bousai-calendar-about,
  .page-id-57 .bousai-note-method {
    padding: 18px 15px;
    border-radius: 14px;
  }

  .page-id-57 .bousai-topic-card {
    padding: 16px;
  }

  .page-id-57 .bousai-topic-stats,
  .page-id-57 .bousai-topic-card:not(.is-severe) .bousai-topic-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-57 .bousai-topic-links a {
    flex: 1 1 calc(50% - 7px);
    justify-content: center;
  }
}

@media screen and (min-width: 835px) {
  body.page-id-57 #content {
    margin-top: 8px;
  }

  body.page-id-57 .content-in {
    padding-top: 8px;
  }

  body.page.page-id-57 #main {
    padding-top: 16px;
  }

  body.page-id-57 .entry-content {
    margin-top: 0;
  }
}

/* Article and fixed-page details. */
.article-header .entry-title {
  color: var(--bousai-navy-deep);
  line-height: 1.45;
  letter-spacing: 0.015em;
}

.entry-content blockquote {
  border: 0;
  border-left: 5px solid var(--bousai-teal);
  border-radius: 0 var(--bousai-radius-sm) var(--bousai-radius-sm) 0;
  background: #f1f8f8;
}

.entry-content table {
  overflow: hidden;
  border-radius: 10px;
}

.breadcrumb {
  color: #64788a;
  font-size: 12px;
}

.article-footer.entry-footer .footer-meta {
  color: var(--bousai-muted);
}

/* Global footer. */
#footer,
.footer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(135deg, #052a4b, #0b3a67 58%, #105b81);
  color: rgba(255, 255, 255, 0.82);
}

#footer a,
.footer a {
  color: rgba(255, 255, 255, 0.86);
}

#footer a:hover,
.footer a:hover {
  color: #fff;
  text-decoration-color: #86d8ef;
}

#footer .footer-bottom-logo .site-name-text {
  color: rgba(255, 255, 255, 0.94);
  text-shadow: none;
}

#footer .footer-bottom-logo .site-name-text-link:hover .site-name-text,
#footer .footer-bottom-logo .site-name-text-link:focus-visible .site-name-text {
  color: #fff;
}

#footer .footer-bottom-logo .site-name-text-link:focus-visible {
  border-radius: 4px;
  outline: 3px solid #86d8ef;
  outline-offset: 4px;
}

@media screen and (max-width: 1023px) {
  .wrap {
    width: min(100% - 32px, 940px);
  }

  .home .entry-content > .bousai-intro,
  .home .entry-content > .bousai-section,
  .home .entry-content > .bousai-x-strip {
    width: min(940px, calc(100% - 32px));
  }

  .bousai-post-grid .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-post-grid .wp-block-post:first-child {
    grid-column: span 2;
    grid-row: auto;
  }

  .bousai-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-archive-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-history-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 834px) {
  #header,
  #header-in {
    height: 158px !important;
  }

  #header {
    background-position: center 55%;
  }

  #header-in {
    padding: 0 16px;
  }

  #header-in::before {
    width: calc(100% - 28px);
    height: 112px;
    border-radius: 19px;
  }

  .site-name-text {
    font-size: clamp(23px, 5.8vw, 29px);
  }

  .tagline {
    margin-top: 8px;
    padding: 0 12px;
    font-size: 11.5px;
    line-height: 1.5;
  }

  .content-in {
    padding-top: 26px;
    padding-bottom: 44px;
  }

  .bousai-intro {
    margin-bottom: 42px;
    padding: 34px 28px;
    border-radius: 24px;
  }

  .bousai-intro h1,
  .bousai-intro h2 {
    font-size: clamp(29px, 7vw, 36px);
  }

  .bousai-launch-note {
    grid-template-columns: 1fr;
  }

  .bousai-launch-note figure,
  .bousai-launch-note img {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .bousai-profile {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .bousai-profile img {
    width: 130px;
    height: 130px;
  }

  .bousai-promises {
    grid-template-columns: 1fr;
  }

  .bousai-stage-timeline {
    grid-template-columns: 1fr;
  }

  .bousai-stage-arrow {
    min-height: 28px;
    transform: rotate(90deg);
  }

  .bousai-stage-details {
    grid-template-columns: 1fr;
  }

  .bousai-damage-grid {
    grid-template-columns: 1fr;
  }

  .bousai-daily-teaser,
  .bousai-note-heading-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .bousai-note-checked {
    max-width: none;
    text-align: left;
  }

  .bousai-calendar-months {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .bousai-calendar-swipe-note {
    display: block;
  }

  .bousai-search-results,
  .bousai-history-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 480px) {
  .wrap {
    width: calc(100% - 24px);
  }

  .home .entry-content > .bousai-intro,
  .home .entry-content > .bousai-section,
  .home .entry-content > .bousai-x-strip {
    width: calc(100% - 24px);
  }

  #header,
  #header-in {
    height: 150px !important;
  }

  #header-in::before {
    width: calc(100% - 20px);
    height: 108px;
    border-radius: 16px;
  }

  .site-name-text {
    font-size: 21px;
    letter-spacing: 0.015em;
  }

  .tagline {
    max-width: 340px;
    font-size: 10.5px;
  }

  .bousai-intro {
    padding: 28px 22px;
  }

  .bousai-intro-copy {
    font-size: 16px;
  }

  .bousai-intro-actions .wp-block-buttons {
    align-items: stretch;
    flex-direction: column;
  }

  .bousai-intro-actions .wp-block-button,
  .bousai-intro-actions .wp-block-button__link {
    width: 100%;
  }

  .bousai-section {
    margin-top: 42px;
    margin-bottom: 42px;
  }

  .entry-content .bousai-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
    font-size: 27px !important;
  }

  .bousai-post-grid .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .bousai-post-grid .wp-block-post:first-child {
    grid-column: auto;
  }

  .bousai-theme-links {
    grid-template-columns: 1fr;
  }

  .bousai-theme-link {
    min-height: 140px;
    padding: 20px;
  }

  .bousai-calendar-year-row {
    grid-template-columns: 1fr;
    gap: 8px;
    text-align: left;
  }

  .bousai-calendar-nav-note {
    text-align: left;
  }

  .bousai-calendar-months {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .bousai-month-calendar-shell {
    min-width: 760px;
  }

  .bousai-month-calendar li {
    min-height: 190px;
  }

  .bousai-archive-search-form {
    grid-template-columns: 1fr;
  }

  .bousai-archive-search-form button {
    width: 100%;
  }

  .bousai-search-results a {
    grid-template-columns: 1fr;
  }

  .bousai-search-result-status {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }

  .bousai-damage-stats,
  .bousai-damage-stats-four {
    grid-template-columns: 1fr;
  }

  .bousai-daily-teaser-link {
    width: 100%;
    justify-content: center;
  }

  .bousai-theme-link {
    min-height: 126px;
  }

  .bousai-knowledge-hero {
    padding: 30px 20px;
  }

  .bousai-stage-card {
    min-height: 148px;
  }

  .bousai-profile {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .bousai-profile img {
    margin: 0 auto;
  }

  .bousai-x-strip {
    align-items: flex-start;
    flex-direction: column;
    padding: 24px;
  }
}

@media screen and (max-width: 480px) {
  body.page.page-id-14 #main {
    padding: 24px 20px;
  }

  .page-id-14 .entry-content {
    line-height: 1.76;
  }

  body.page.page-id-57 #main {
    padding: 24px 10px;
  }

  .page-id-57 .entry-content {
    line-height: 1.72;
  }

  .page-id-57 .bousai-note-hero,
  .page-id-57 .bousai-note-section,
  .page-id-57 .bousai-note-method {
    margin-bottom: 24px;
  }

  .page-id-57 .bousai-note-hero {
    padding: 22px 18px;
  }

  .page-id-57 .bousai-note-hero h2 {
    margin-bottom: 10px;
    font-size: clamp(25px, 7vw, 30px);
    line-height: 1.3;
  }

  .page-id-57 .bousai-note-caution {
    margin-top: 14px;
    padding: 12px 14px;
  }

  .page-id-57 .bousai-note-heading-row {
    gap: 8px;
    margin-bottom: 13px;
  }

  .page-id-57 .bousai-damage-card {
    padding: 16px;
  }

  .page-id-57 .bousai-damage-stats,
  .page-id-57 .bousai-damage-stats-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    min-height: 84px;
  }

  .page-id-57 .bousai-history-grid {
    gap: 12px;
    margin-top: 13px;
  }

  .page-id-57 .bousai-history-card {
    padding: 12px;
  }

  .page-id-57 .bousai-note-method {
    padding: 18px 16px;
  }
}

/* Final public-surface polish overrides. The body prefix intentionally
   outranks older WordPress Additional CSS that is loaded after this file. */
body #header,
body #header-in {
  height: 228px !important;
}

body #header-in::before {
  width: min(790px, calc(100% - 48px));
  height: 128px;
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(240, 249, 254, 0.66));
  box-shadow: 0 18px 48px rgba(7, 47, 83, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(12px) saturate(112%);
  backdrop-filter: blur(12px) saturate(112%);
}

body .site-name-text {
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 760;
  line-height: 1.22;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 10px rgba(255, 255, 255, 0.9);
}

body .tagline {
  max-width: 720px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 620;
}

body #navi .navi-in > ul > li > a {
  height: 46px !important;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  font-size: 14.5px;
}

body #navi .navi-in > ul > li {
  height: 46px;
}

body.home .entry-content > .bousai-intro {
  padding: 42px clamp(30px, 5vw, 60px);
  border: 1px solid var(--bousai-border-strong);
  border-radius: 26px;
  box-shadow: var(--bousai-shadow-card);
}

body .bousai-kicker {
  font-size: 12px;
  font-weight: 780;
  letter-spacing: 0.075em;
  text-transform: none;
}

body .bousai-intro h1,
body .bousai-intro h2 {
  max-width: 800px;
  font-size: clamp(32px, 3.1vw, 42px);
  font-weight: 780;
  line-height: 1.4;
}

body .bousai-intro-copy {
  max-width: 720px;
  margin-top: 18px;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.85;
}

body .entry-content .bousai-section-heading {
  gap: 12px;
  margin-bottom: 22px !important;
  font-size: clamp(26px, 2.55vw, 32px) !important;
  font-weight: 760;
  letter-spacing: 0.01em;
}

body .entry-content .bousai-section-heading::before {
  width: 34px;
  height: 4px;
}

body.home .bousai-theme-link {
  min-height: 164px;
  padding: 22px;
  border: 1px solid var(--bousai-border-strong);
  border-top: 3px solid rgba(42, 127, 120, 0.72);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(241, 248, 252, 0.96));
  box-shadow: var(--bousai-shadow-card);
}

body.home .bousai-theme-link::after {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #c8deea;
  border-radius: 50%;
  background: #fff;
  font-size: 18px;
}

body.home .bousai-theme-link strong {
  font-size: 18px;
}

body.home .bousai-theme-label {
  font-size: 11px;
  font-weight: 780;
  letter-spacing: 0.045em;
}

body.home .bousai-promises li {
  border: 1px solid var(--bousai-border-strong);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--bousai-shadow-card);
}

@media screen and (max-width: 834px) {
  body #header,
  body #header-in {
    height: 158px !important;
  }

  body #header-in::before {
    width: calc(100% - 28px);
    height: 112px;
    border-radius: 19px;
  }

  body .site-name-text {
    font-size: clamp(23px, 5.8vw, 29px);
  }

  body.home .entry-content > .bousai-intro {
    padding: 34px 28px;
  }

  body .bousai-intro h1,
  body .bousai-intro h2 {
    font-size: clamp(29px, 7vw, 36px);
  }
}

@media screen and (max-width: 480px) {
  body #header,
  body #header-in {
    height: 150px !important;
  }

  body #header-in::before {
    width: calc(100% - 20px);
    height: 108px;
    border-radius: 16px;
  }

  body .site-name-text {
    font-size: 21px;
  }

  body.home .entry-content > .bousai-intro {
    padding: 28px 22px;
  }

  body.home .bousai-theme-link {
    min-height: 140px;
    padding: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  #navi a:hover,
  .wp-block-post:hover,
  .bousai-theme-link:hover,
  .bousai-stage-card:hover,
  .bousai-profile:hover img,
  .bousai-x-strip a:hover,
  .bousai-daily-teaser-link:hover,
  .bousai-month-calendar a:hover,
  .wp-block-button__link:hover {
    transform: none !important;
  }
}

/* Homepage reference-layout rebuild: compact identity, wide lead, four learning
   gateways, truthful latest-post state, calendar archive, and author card. */
body #header-container {
  border-bottom: 1px solid #d7e5ee;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 5px 20px rgba(11, 58, 103, 0.07);
}

body #header-container-in {
  display: grid;
  width: min(1320px, calc(100% - 48px));
  min-height: 92px;
  margin: 0 auto;
  grid-template-columns: minmax(390px, 1fr) minmax(690px, auto);
  align-items: center;
}

body #header,
body #header-in {
  height: 92px !important;
}

body #header .header-in {
  min-height: 92px !important;
  max-height: 92px !important;
}

body #header {
  width: 100%;
  overflow: visible;
  background: none !important;
}

body #header::before {
  display: none;
}

body #header-in {
  display: grid;
  width: 100%;
  margin: 0;
  padding: 0;
  grid-template-columns: 56px minmax(0, 1fr);
  grid-template-rows: 46px 46px;
  column-gap: 16px;
  align-items: center;
}

body #header-in::before {
  position: static;
  display: grid;
  width: 54px;
  height: 54px;
  content: "\f0c2";
  transform: none;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, #73cce5, #1c8eb2);
  box-shadow: 0 9px 22px rgba(28, 142, 178, 0.24);
  color: #fff;
  font-family: FontAwesome;
  font-size: 28px;
  place-items: center;
  grid-row: 1 / 3;
}

body #header .logo-header {
  display: flex;
  height: auto !important;
  min-height: 0 !important;
  align-items: flex-end;
  justify-content: flex-start;
  align-self: end;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 2;
  grid-row: 1;
}

body #header .logo-header a {
  padding-right: 0;
  padding-left: 0;
  text-align: left;
}

body .site-name-text {
  color: var(--bousai-navy-deep);
  font-size: clamp(23px, 2.1vw, 29px);
  font-weight: 820;
  line-height: 1.16;
  letter-spacing: 0.02em;
  text-shadow: 0 3px 14px rgba(11, 58, 103, 0.1);
}

body .tagline {
  display: flex;
  max-width: none;
  align-self: start;
  align-items: center;
  gap: 9px;
  margin: 4px 0 0;
  padding: 0;
  color: #45647c;
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: 0.025em;
  text-align: left;
  text-shadow: none;
  grid-column: 2;
  grid-row: 2;
}

body .tagline::before {
  width: 24px;
  height: 3px;
  flex: 0 0 24px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bousai-blue), var(--bousai-teal));
  box-shadow: 0 2px 8px rgba(20, 155, 182, 0.18);
}

body #navi {
  width: auto;
  height: 92px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body #header-container #navi {
  background: transparent !important;
}

body #navi .navi-in {
  width: auto;
  height: 100%;
}

body #navi .navi-in > ul {
  display: flex;
  height: 100%;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
}

body #navi .menu-mobile {
  display: none !important;
}

body #navi .navi-in > ul > li {
  height: 92px;
  flex: 0 0 auto;
}

body #navi .navi-in > ul > li > a {
  height: 92px !important;
  min-height: 92px;
  padding: 0 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body #navi .navi-in > ul > li > a:not(:hover) {
  border-color: transparent;
  background: transparent;
  color: var(--bousai-navy-deep);
}

body #navi .navi-in > ul > li > a::after {
  right: 18px;
  bottom: 12px;
  left: 18px;
  height: 3px;
  background: linear-gradient(90deg, var(--bousai-blue), var(--bousai-teal));
}

body #navi .navi-in > ul > li > a:hover {
  background: rgba(72, 168, 221, 0.07);
  color: var(--bousai-blue);
}

body.home .content-in {
  width: 100%;
  padding-top: 0;
}

body.home .entry-content > .bousai-home-hero {
  width: 100%;
}

body.home .entry-content > .bousai-home-content {
  width: min(1240px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

.bousai-home-hero {
  position: relative;
  padding: 30px 0 18px;
  border-bottom: 1px solid #d7e7f0;
  background:
    linear-gradient(90deg, rgba(243, 250, 255, 0.98) 0%, rgba(238, 248, 254, 0.93) 48%, rgba(239, 249, 254, 0.62) 72%, rgba(239, 249, 254, 0.38) 100%),
    url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/codex-clipboard-cd07245e-38b8-43f0-82af-a7c492a7a61f.png") center 46% / cover no-repeat;
}

.bousai-home-hero-inner {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

.bousai-home-lead {
  margin: 0 2px 20px;
}

.bousai-home-lead h1 {
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: clamp(34px, 3.15vw, 48px);
  font-weight: 790;
  line-height: 1.32;
  letter-spacing: 0.025em;
}

.bousai-home-lead p {
  max-width: none;
  margin: 11px 0 0;
  color: #294966;
  font-size: clamp(16px, 1.36vw, 18px);
  font-weight: 540;
  line-height: 1.75;
  letter-spacing: 0.01em;
}

.bousai-home-theme-links {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bousai-home-theme-card {
  display: grid;
  min-height: 146px;
  padding: 17px;
  border: 1px solid rgba(193, 217, 231, 0.95);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.91);
  box-shadow: 0 9px 24px rgba(11, 58, 103, 0.08);
  color: var(--bousai-navy-deep);
  text-decoration: none;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 14px;
}

.bousai-home-theme-card:hover {
  transform: translateY(-4px);
  border-color: #86c5dc;
  background: #fff;
  box-shadow: 0 15px 32px rgba(11, 58, 103, 0.13);
  color: var(--bousai-navy);
}

.bousai-home-theme-icon {
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: inset 0 0 0 1px rgba(43, 132, 181, 0.11), 0 8px 18px rgba(11, 58, 103, 0.1);
}

.bousai-home-theme-icon svg {
  width: 54px;
  height: 54px;
  fill: none;
  filter: drop-shadow(0 3px 4px rgba(11, 58, 103, 0.12));
}

.bousai-home-theme-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.bousai-home-theme-copy strong {
  font-size: 19px;
  line-height: 1.4;
}

.bousai-home-theme-copy small {
  margin-top: 7px;
  color: #52677a;
  font-size: 12px;
  line-height: 1.65;
}

.bousai-home-theme-copy > span {
  margin-top: auto;
  padding-top: 7px;
  color: #087c92;
  font-size: 12.5px;
  font-weight: 720;
}

.bousai-home-content {
  display: grid;
  column-gap: 20px;
  row-gap: 32px;
  margin-top: 16px !important;
  margin-bottom: 24px;
  grid-template-columns: minmax(0, 3fr) minmax(300px, 1fr);
  align-items: start;
}

body.home .bousai-home-content > .bousai-home-main-stack,
body.home .bousai-home-content > .bwl-official-links,
body.home .bousai-home-content > .bousai-home-operator-wide,
body.home .bousai-home-main-stack > .bousai-home-latest,
body.home .bousai-home-main-stack > .bousai-home-featured,
body.home .bousai-home-latest > *,
body.home .bousai-home-featured > * {
  width: 100%;
  max-width: none;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.home .bousai-home-content > .bousai-home-main-stack,
body.home .bousai-home-content > .bwl-official-links,
body.home .bousai-home-content > .bousai-home-operator-wide,
body.home .bousai-home-main-stack > .bousai-home-latest,
body.home .bousai-home-main-stack > .bousai-home-featured {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.bousai-home-main-stack {
  display: grid;
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
  gap: 36px;
}

.bousai-home-latest {
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-section-heading-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.bousai-home-section-more {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 3px;
  color: #087c92;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

a.bousai-home-section-more:hover {
  color: var(--bousai-navy);
}

.bousai-home-section-more--disabled {
  color: #738594;
  cursor: default;
}

body .entry-content .bousai-home-section-heading-row .bousai-section-heading {
  margin-bottom: 0 !important;
  font-size: 24px !important;
}

body .entry-content .bousai-home-section-heading-row .bousai-section-heading::before {
  width: 5px;
  height: 24px;
}

.bousai-home-content .bousai-post-grid .wp-block-post-template {
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bousai-home-content .bousai-post-grid .wp-block-post,
.bousai-home-content .bousai-post-grid .wp-block-post:first-child {
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-content .bousai-post-grid .wp-block-post-title,
.bousai-home-content .bousai-post-grid .wp-block-post:first-child .wp-block-post-title {
  font-size: 18px;
}

.bousai-home-content .bousai-launch-note {
  min-height: 286px;
  border-radius: 15px;
  box-shadow: var(--bousai-shadow-sm);
  grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1.05fr);
}

.bousai-home-content .bousai-launch-note figure {
  min-height: 286px;
}

.bousai-home-content .bousai-launch-copy {
  padding: 30px 28px;
}

.bousai-home-content .bousai-launch-copy h3 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 22px;
}

.bousai-home-featured {
  min-width: 0;
  margin-top: 0;
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-featured-heading {
  align-items: center !important;
}

.bousai-home-featured-note {
  margin: 0 0 10px !important;
  color: #5a7082;
  font-size: 12.5px;
  line-height: 1.65;
}

.bousai-featured-samples,
.bousai-featured-query .wp-block-post-template {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bousai-featured-sample-card,
.bousai-featured-query .wp-block-post {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  margin: 0;
  border: 1px solid #c9dce7;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 19px rgba(11, 58, 103, 0.07);
}

.bousai-featured-visual,
.bousai-featured-query .wp-block-post-featured-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  margin: 0;
}

.bousai-featured-visual {
  display: grid;
  place-items: center;
  color: #176caa;
}

.bousai-featured-visual svg {
  width: 67%;
  height: 67%;
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bousai-featured-visual--knowledge {
  background: radial-gradient(circle at 82% 18%, rgba(89, 187, 255, 0.2), transparent 34%), linear-gradient(145deg, #eef8ff, #dbeeff);
  color: #176caa;
}

.bousai-featured-visual--rainband {
  background: radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.72), transparent 30%), linear-gradient(145deg, #e7f2fb, #c5dbea);
  color: #315f83;
}

.bousai-featured-visual--gear {
  background: radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.62), transparent 30%), linear-gradient(145deg, #eaf8f4, #caece3);
  color: #0d806f;
}

.bousai-featured-visual--typhoon {
  background: radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.68), transparent 32%), linear-gradient(145deg, #eef7fb, #d0e8f2);
  color: #207a9b;
}

.bousai-featured-visual--power {
  background: radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.64), transparent 31%), linear-gradient(145deg, #edf9f4, #ccebe0);
  color: #0b806b;
}

.bousai-featured-visual--lightning {
  background: radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.7), transparent 32%), linear-gradient(145deg, #f3f5ff, #dce6fb);
  color: #476aad;
}

.bousai-featured-query .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}

.bousai-featured-sample-body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  padding: 11px 12px 12px;
}

.bousai-featured-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 7px;
}

.bousai-featured-category,
.bousai-featured-query .wp-block-post-terms {
  color: #087c92;
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.45;
}

.bousai-featured-status {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  padding: 2px 6px;
  border: 1px solid #ecd58d;
  border-radius: 999px;
  background: #fff8dc;
  color: #765716;
  font-size: 9px;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}

.bousai-featured-sample-card h3,
.bousai-featured-query .wp-block-post-title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 0 7px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 14.5px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.bousai-featured-sample-card p,
.bousai-featured-query .wp-block-post-excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #52677a;
  font-size: 11px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.bousai-featured-query .wp-block-post-terms {
  margin: 11px 12px 7px;
}

.bousai-featured-query .wp-block-post-terms a {
  color: inherit;
}

.bousai-featured-query .wp-block-post-title {
  margin-right: 12px;
  margin-left: 12px;
}

.bousai-featured-query .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
}

.bousai-featured-query .wp-block-post-excerpt {
  margin-right: 12px;
  margin-bottom: 12px;
  margin-left: 12px;
}

.bousai-featured-query .wp-block-post-excerpt__more-text {
  display: none;
}

.bwl-official-links,
.bwl-official-links * {
  box-sizing: border-box;
}

.bwl-official-links {
  min-width: 0;
  margin-top: 0;
  grid-column: 1 / -1;
  grid-row: 2;
}

.bwl-official-links__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

body .entry-content .bwl-official-links__heading h2 {
  position: relative;
  margin: 0 !important;
  padding: 0 0 0 17px;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 24px !important;
  line-height: 1.45;
}

body .entry-content .bwl-official-links__heading h2::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
  height: 24px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bousai-sky), var(--bousai-teal));
  content: "";
  transform: translateY(-50%);
}

.bwl-official-links__all {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 3px;
  color: #087c92;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.bwl-official-links__all:hover {
  color: var(--bousai-navy);
}

.bwl-official-links__all:focus-visible,
.bwl-official-links__item:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 3px;
}

.bwl-official-links__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bwl-official-links__item {
  display: flex;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
  height: 100%;
  flex-direction: column;
  padding: 12px 12px 13px;
  border: 1px solid #c9dfe9;
  border-top: 4px solid #2495a3;
  border-radius: 13px;
  background: linear-gradient(180deg, #f8fcfe 0%, #ffffff 34%);
  box-shadow: 0 7px 19px rgba(11, 58, 103, 0.07);
  color: var(--bousai-navy-deep);
  text-decoration: none !important;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.bwl-official-links__media {
  display: block;
  width: calc(100% + 24px);
  margin: -12px -12px 11px;
  overflow: hidden;
  border-radius: 9px 9px 0 0;
  background: #edf5f8;
  line-height: 0;
}

.bwl-official-links__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

.bwl-official-links__source {
  align-self: flex-start;
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 2px 7px;
  border: 1px solid #cce4ea;
  border-radius: 999px;
  background: #edf8fa;
  color: #316879;
  font-size: 9.5px;
  font-weight: 740;
  line-height: 1.45;
}

.bwl-official-links__item-title {
  display: block;
  margin: 8px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 16px;
  font-weight: 760;
  line-height: 1.35;
}

.bwl-official-links__description {
  display: block;
  margin: 5px 0 0;
  color: #52677a;
  font-size: 11.5px;
  line-height: 1.6;
}

.bwl-official-links__cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 40px;
  margin: auto 0 0;
  padding: 11px 0 0;
  color: #087c92;
  font-size: 11.5px;
  font-weight: 740;
  line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-official-links__item:hover {
    border-color: #78bdcb;
    box-shadow: 0 11px 24px rgba(11, 58, 103, 0.11);
    color: var(--bousai-navy-deep);
    transform: translateY(-2px);
  }
}

.bousai-home-sidebar {
  display: grid;
  gap: 14px;
  grid-column: 2;
  grid-row: 1;
}

.bousai-home-operator-wide,
.bousai-home-operator-wide * {
  box-sizing: border-box;
}

.bousai-home-operator-wide {
  position: relative;
  isolation: isolate;
  display: grid;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  aspect-ratio: 4.3 / 1;
  padding: 22px 42px 0;
  border: 1px solid #c9dfe9;
  border-radius: 16px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.82) 0%, rgba(248, 253, 255, 0.40) 47%, rgba(255, 255, 255, 0.94) 70%, rgba(255, 255, 255, 0.99) 100%),
    url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/codex-clipboard-cd07245e-38b8-43f0-82af-a7c492a7a61f.png") center 67% / cover no-repeat;
  box-shadow: 0 8px 22px rgba(11, 58, 103, 0.08);
  grid-column: 1 / -1;
  grid-row: 3;
  grid-template-columns: minmax(0, 1.22fr) minmax(250px, 0.70fr) minmax(0, 1.13fr);
  gap: 20px;
  align-items: center;
}

.bousai-home-operator-wide::after {
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 42px;
  background:
    linear-gradient(90deg, rgba(75, 145, 174, 0.15) 0 5%, transparent 5% 6%, rgba(75, 145, 174, 0.11) 6% 9%, transparent 9% 11%, rgba(75, 145, 174, 0.13) 11% 16%, transparent 16% 19%, rgba(75, 145, 174, 0.10) 19% 24%, transparent 24% 29%, rgba(75, 145, 174, 0.08) 29% 33%, transparent 33% 100%),
    linear-gradient(180deg, transparent, rgba(118, 185, 198, 0.10));
  content: "";
  opacity: 0.75;
}

.bousai-home-operator-wide__intro,
.bousai-home-operator-wide__details {
  position: relative;
  z-index: 2;
  align-self: center;
}

.bousai-home-operator-wide__intro {
  display: flex;
  align-self: stretch;
  flex-direction: column;
  justify-content: flex-start;
  padding: 22px 0 18px;
}

.bousai-home-operator-wide__eyebrow {
  display: block;
  margin-bottom: clamp(28px, 2.5vw, 36px);
  color: #174f72;
  font-size: clamp(14px, 1.25vw, 17px);
  font-weight: 760;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

body .entry-content .bousai-home-operator-wide__intro h2 {
  margin: 0 !important;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: clamp(26px, 2.1vw, 30px) !important;
  font-weight: 790;
  line-height: 1.5;
  letter-spacing: 0.005em;
  white-space: nowrap;
}

.bousai-home-operator-wide__portrait {
  position: relative;
  z-index: 1;
  display: flex;
  overflow: hidden;
  height: 100%;
  min-height: 0;
  align-self: stretch;
  align-items: flex-end;
  justify-content: center;
}

.bousai-home-operator-wide__portrait img {
  display: block;
  width: min(330px, 116%);
  max-width: none;
  height: auto;
  margin: 0 0 -13px;
  border-radius: 0 !important;
  mix-blend-mode: multiply;
  object-fit: contain;
  object-position: center bottom;
  -webkit-mask-image: radial-gradient(ellipse 62% 76% at 50% 52%, #000 68%, rgba(0, 0, 0, 0.88) 78%, transparent 100%);
  mask-image: radial-gradient(ellipse 62% 76% at 50% 52%, #000 68%, rgba(0, 0, 0, 0.88) 78%, transparent 100%);
}

.bousai-home-operator-wide__details {
  padding: 2px 0 18px;
}

.bousai-home-operator-wide__identity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}

.bousai-home-operator-wide__identity strong {
  color: var(--bousai-navy-deep);
  font-size: clamp(22px, 1.85vw, 27px);
  font-weight: 790;
  line-height: 1.35;
}

.bousai-home-operator-wide__identity span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 10px;
  border: 1px solid #7eb9ca;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.74);
  color: #2f6c82;
  font-size: clamp(11px, 0.95vw, 13px);
  font-weight: 720;
  line-height: 1.35;
  white-space: nowrap;
}

.bousai-home-operator-wide__details p {
  margin: 17px 0 0;
  color: #2f4a61;
  font-size: clamp(12.5px, 1.03vw, 14.5px);
  line-height: 1.85;
}

.bousai-home-operator-wide__details a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin-top: 10px;
  color: #087c92;
  font-size: clamp(13px, 1.03vw, 14.5px);
  font-weight: 760;
  line-height: 1.4;
  text-decoration: none;
}

.bousai-home-operator-wide__details a:hover {
  gap: 11px;
  color: var(--bousai-navy);
}

.bousai-home-operator-wide__details a:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

/*
BousaiWxLab approved calendar feature card
Installation contract:
- Do not simplify, redraw, recolor, or replace the supplied artwork.
- Do not add a top-right calendar icon, weather icon strip, or CSS mini-calendar.
- Keep the whole card as one link.
*/

.bwl-calendar-feature,
.bwl-calendar-feature * {
  box-sizing: border-box;
}

.bwl-calendar-feature {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  color: #0b3559;
  text-decoration: none !important;
  background: #ffffff;
  border: 1px solid #cfe1eb;
  border-radius: 22px;
  box-shadow:
    0 18px 38px rgba(10, 55, 86, 0.12),
    0 3px 10px rgba(10, 55, 86, 0.06);
  isolation: isolate;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease;
}

.bwl-calendar-feature__media {
  display: block;
  width: 100%;
  aspect-ratio: 924 / 684;
  overflow: hidden;
  background: #eef7fa;
}

.bwl-calendar-feature__media img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

.bwl-calendar-feature__content {
  display: block;
  padding: 17px 18px 20px;
  background:
    linear-gradient(180deg, rgba(246, 251, 253, 0.55) 0%, #ffffff 24%);
}

.bwl-calendar-feature__eyebrow {
  display: inline-block;
  width: auto;
  min-height: 29px;
  padding: 5px 12px;
  color: #17688f;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.02em;
  background: #eaf4f8;
  border: 1px solid #d4e8f0;
  border-radius: 999px;
}

.bwl-calendar-feature__title {
  display: block;
  margin-top: 13px;
  color: #0a3459;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: clamp(20px, 1.45vw, 22.5px);
  font-weight: 750;
  line-height: 1.42;
  letter-spacing: 0.005em;
  text-wrap: balance;
}

.bwl-calendar-feature__description {
  display: block;
  margin-top: 10px;
  color: #4d6170;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: 0.01em;
}

.bwl-calendar-feature__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  margin-top: 16px;
  padding: 11px 17px;
  color: #ffffff;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: 0.03em;
  background: linear-gradient(135deg, #2b8bc3 0%, #287bb3 100%);
  border: 1px solid rgba(8, 75, 116, 0.12);
  border-radius: 13px;
  box-shadow:
    0 9px 18px rgba(28, 114, 165, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.bwl-calendar-feature__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  font-size: 31px;
  font-weight: 300;
  line-height: 0.75;
  transform: translateY(-1px);
}

@media (hover: hover) and (pointer: fine) {
  .bwl-calendar-feature:hover {
    color: #0b3559;
    text-decoration: none;
    border-color: #9fcadb;
    box-shadow:
      0 22px 46px rgba(10, 55, 86, 0.16),
      0 5px 12px rgba(10, 55, 86, 0.07);
    transform: translateY(-3px);
  }

  .bwl-calendar-feature:hover .bwl-calendar-feature__cta {
    background: linear-gradient(135deg, #2786bd 0%, #2274aa 100%);
  }
}

.bwl-calendar-feature:focus {
  color: #0b3559;
  text-decoration: none;
}

.bwl-calendar-feature:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .bwl-calendar-feature {
    border-radius: 20px;
  }

  .bwl-calendar-feature__content {
    padding: 16px 17px 18px;
  }

  .bwl-calendar-feature__title {
    font-size: 21px;
  }

  .bwl-calendar-feature__description {
    font-size: 13.5px;
  }

  .bwl-calendar-feature__cta {
    min-height: 50px;
    font-size: 15.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bwl-calendar-feature {
    transition: none;
  }

  .bwl-calendar-feature:hover {
    transform: none;
  }
}

.bousai-home-x-card,
.bousai-home-x-card * {
  box-sizing: border-box;
}

.bousai-home-x-card {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: 8px;
  line-height: 0;
  text-decoration: none !important;
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease);
}

.bousai-home-x-card img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

@media (hover: hover) and (pointer: fine) {
  .bousai-home-x-card:hover {
    box-shadow: 0 12px 26px rgba(11, 58, 103, 0.16);
    transform: translateY(-2px);
  }
}

.bousai-home-x-card:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .bousai-home-x-card {
    transition: none;
  }

  .bousai-home-x-card:hover {
    transform: none;
  }
}

@media screen and (max-width: 1120px) {
  body #header-container-in {
    width: calc(100% - 32px);
    grid-template-columns: minmax(330px, 1fr) minmax(610px, auto);
  }

  body .tagline {
    max-width: 360px;
    font-size: 11.5px;
  }

  body #navi .navi-in > ul > li > a {
    padding-right: 13px;
    padding-left: 13px;
    font-size: 13px;
  }

  .bousai-home-theme-card {
    padding: 18px 15px;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 11px;
  }

  .bousai-home-theme-icon {
    width: 46px;
    height: 46px;
  }

  .bousai-home-theme-icon svg {
    width: 35px;
    height: 35px;
  }

  .bousai-home-theme-copy strong {
    font-size: 17px;
  }

  .bousai-home-operator-wide {
    padding-right: 28px;
    padding-left: 28px;
    grid-template-columns: minmax(0, 1fr) minmax(225px, 0.72fr) minmax(0, 1fr);
    gap: 14px;
  }

  body .entry-content .bousai-home-operator-wide__intro h2 {
    white-space: normal;
  }
}

@media screen and (max-width: 1100px) {
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bwl-official-links__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 900px) {
  body #header-container-in {
    display: block;
    width: 100%;
  }

  body #header,
  body #header-in {
    height: 96px !important;
  }

  body #header .header-in {
    min-height: 96px !important;
    max-height: 96px !important;
  }

  body #header-in {
    width: calc(100% - 32px);
    margin: 0 auto;
    grid-template-rows: 48px 48px;
  }

  body #navi {
    width: 100%;
    height: 50px;
    background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 62%, #105887);
  }

  body #header-container #navi {
    background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 62%, #105887) !important;
  }

  body #navi .navi-in > ul > li {
    height: 50px;
    flex: 1 1 auto;
  }

  body #navi .menu-pc {
    display: none !important;
  }

  body #navi .menu-mobile {
    display: flex !important;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 50px !important;
    min-height: 50px;
    padding: 0 12px;
    background: transparent;
    color: rgba(255, 255, 255, 0.94);
  }

  body #navi .navi-in > ul > li > a::after {
    bottom: 5px;
    background: #86d8ef;
  }

  body #navi .navi-in > ul > li > a:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
  }

  .bousai-home-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-home-content {
    grid-template-columns: 1fr;
  }

  .bousai-home-main-stack,
  .bousai-home-sidebar {
    grid-column: 1;
    grid-row: auto;
  }

  .bwl-official-links {
    grid-column: 1;
    grid-row: auto;
  }

  .bousai-home-operator-wide {
    min-height: 0;
    aspect-ratio: auto;
    padding: 28px 30px;
    grid-column: 1;
    grid-row: auto;
    grid-template-areas:
      "operator-intro operator-portrait"
      "operator-details operator-details";
    grid-template-columns: minmax(0, 1fr) minmax(230px, 0.78fr);
    gap: 20px 30px;
  }

  .bousai-home-operator-wide__intro {
    grid-area: operator-intro;
    padding: 0;
  }

  .bousai-home-operator-wide__portrait {
    height: 250px;
    grid-area: operator-portrait;
  }

  .bousai-home-operator-wide__portrait img {
    width: 300px;
    margin-bottom: -11px;
  }

  .bousai-home-operator-wide__details {
    padding: 0;
    grid-area: operator-details;
  }

  .bousai-home-operator-wide__eyebrow {
    margin-bottom: 22px;
  }

  .bousai-home-sidebar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-home-x-card {
    grid-column: 2;
  }
}

@media screen and (max-width: 760px) {
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  body #header,
  body #header-in {
    height: 92px !important;
  }

  body #header .header-in {
    min-height: 92px !important;
    max-height: 92px !important;
  }

  body #header-in {
    width: calc(100% - 24px);
    grid-template-columns: 46px minmax(0, 1fr);
    column-gap: 11px;
    grid-template-rows: 46px 46px;
  }

  body #header-in::before {
    width: 44px;
    height: 44px;
    font-size: 23px;
  }

  body .site-name-text {
    font-size: 18.5px;
  }

  body .tagline {
    max-width: none;
    overflow: hidden;
    gap: 6px;
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .tagline::before {
    width: 17px;
    height: 2px;
    flex-basis: 17px;
  }

  body #navi,
  body #navi .navi-in {
    height: auto;
  }

  body #navi .navi-in > ul {
    flex-wrap: wrap;
  }

  body #navi .navi-in > ul > li {
    height: 42px;
    flex: 1 1 33.333%;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 42px !important;
    min-height: 42px;
    padding: 0 7px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 11.5px;
  }

  body.home .entry-content > .bousai-home-content,
  .bousai-home-hero-inner {
    width: calc(100% - 24px);
  }

  .bousai-home-hero {
    padding-top: 24px;
    padding-bottom: 18px;
  }

  .bousai-home-lead {
    margin-bottom: 18px;
  }

  .bousai-home-lead h1 {
    font-size: clamp(29px, 9vw, 35px);
    line-height: 1.35;
  }

  .bousai-home-lead p {
    font-size: 15px;
    line-height: 1.75;
  }

  .bousai-home-theme-links,
  .bousai-home-sidebar,
  .bousai-home-content .bousai-post-grid .wp-block-post-template,
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .bousai-home-x-card {
    grid-column: auto;
  }

  .bousai-home-operator-wide {
    padding: 22px 20px 24px;
    grid-template-areas:
      "operator-intro"
      "operator-portrait"
      "operator-details";
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .bousai-home-operator-wide__eyebrow {
    margin-bottom: 14px;
    font-size: 13px;
  }

  body .entry-content .bousai-home-operator-wide__intro h2 {
    font-size: clamp(23px, 7.2vw, 27px) !important;
    line-height: 1.55;
  }

  .bousai-home-operator-wide__portrait {
    height: 278px;
  }

  .bousai-home-operator-wide__portrait img {
    width: min(338px, 108%);
    margin-bottom: -9px;
  }

  .bousai-home-operator-wide__identity {
    gap: 8px;
  }

  .bousai-home-operator-wide__identity strong {
    font-size: 23px;
  }

  .bousai-home-operator-wide__identity span {
    min-height: 29px;
    font-size: 11px;
  }

  .bousai-home-operator-wide__details p {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.78;
  }

  .bousai-home-operator-wide__details a {
    min-height: 44px;
    margin-top: 7px;
    font-size: 13.5px;
  }

  .bwl-official-links__grid {
    grid-template-columns: 1fr;
  }

  .bwl-official-links__item {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 17px 18px 16px;
  }

  .bwl-official-links__media {
    display: block;
    width: calc(100% + 36px);
    align-self: auto;
    margin: -17px -18px 15px;
    border-radius: 9px 9px 0 0;
  }

  .bwl-official-links__source {
    margin: 0;
  }

  .bwl-official-links__item-title {
    margin: 10px 0 0;
  }

  .bwl-official-links__description {
    margin: 7px 0 0;
  }

  .bwl-official-links__cta {
    min-height: 44px;
    margin: auto 0 0;
    padding: 12px 0 0;
  }

  .bousai-home-theme-card {
    min-height: 118px;
  }

  .bousai-home-content .bousai-launch-note {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .bousai-home-content .bousai-launch-note figure {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .bousai-home-content .bousai-launch-copy {
    padding: 24px 20px;
  }

  .bousai-home-featured {
    margin-top: 2px;
  }

  .bousai-home-featured-note {
    font-size: 12px;
  }

  .bousai-featured-sample-body {
    padding: 13px;
  }

  .bousai-featured-sample-card h3,
  .bousai-featured-query .wp-block-post-title {
    font-size: 16px;
  }

  .bousai-featured-sample-card p,
  .bousai-featured-query .wp-block-post-excerpt {
    font-size: 12.5px;
  }

}

@media (prefers-reduced-motion: reduce) {
  .bwl-official-links__item {
    transition: none;
  }

  .bwl-official-links__item:hover {
    transform: none;
  }

  .bousai-home-theme-card:hover {
    transform: none !important;
  }
}

/* About page: editorial cards, compact rhythm, and clear reading paths. */
.page-id-14 .article-header {
  display: none;
}

.page-id-14 .article-header .post-date,
.page-id-14 .article-header .post-update {
  display: none;
}

.page-id-14 .entry-title {
  margin-bottom: 0;
}

.page-id-14 .entry-content {
  line-height: 1.72;
}

.bousai-about {
  --about-navy: #0b3a67;
  --about-blue: #1267a5;
  --about-cyan: #1e9db2;
  --about-ink: #21364a;
  --about-muted: #526a7e;
  --about-line: #cfe2ee;
  display: grid;
  gap: 14px;
  color: var(--about-ink);
}

.bousai-about :where(h2, h3, p, blockquote, ol) {
  margin-top: 0;
}

.bousai-about :where(h2, h3) {
  color: var(--about-navy);
}

.page-id-14 .bousai-about h2,
.page-id-14 .bousai-about h3 {
  color: var(--about-navy) !important;
}

.page-id-14 .bousai-about h3 {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.page-id-14 .bousai-about h3::before,
.page-id-14 .bousai-about h3::after {
  display: none !important;
}

.bousai-about p {
  margin-bottom: 12px;
}

.bousai-about p:last-child {
  margin-bottom: 0;
}

.bousai-about-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 54%);
  grid-template-rows: auto auto;
  overflow: hidden;
  border: 1px solid #c4ddea;
  border-radius: 24px;
  background: #edf8fe;
  box-shadow: 0 14px 36px rgba(24, 73, 108, 0.08);
}

.bousai-about-hero-copy {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  height: 100%;
  padding: 24px clamp(24px, 2.7vw, 36px);
  background: linear-gradient(120deg, #f9fdff 0%, #f1f9fd 72%, #eef8fd 100%);
}

.bousai-about-hero-visual {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  height: clamp(280px, 23vw, 360px);
  background: #eef8fd;
}

.bousai-about-hero-visual::before {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 0;
  width: 34px;
  background: linear-gradient(90deg, rgba(238, 248, 253, 0.96), rgba(238, 248, 253, 0));
  content: "";
  pointer-events: none;
}

.bousai-about-hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: 72% center;
}

.bousai-about-kicker,
.bousai-about-heading > div > p,
.bousai-about-safety-heading p {
  margin-bottom: 4px !important;
  color: #167e9f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bousai-about-hero h2 {
  position: relative;
  z-index: 1;
  margin-bottom: 13px;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: clamp(30px, 2.55vw, 32px);
  line-height: 1.3;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.62);
}

.bousai-about-hero h2::before,
.bousai-about-hero h2::after {
  display: none !important;
}

.bousai-about-hero-text > p {
  max-width: 485px;
}

.bousai-about-hero-copy p {
  margin-bottom: 9px;
}

.bousai-about-intro {
  font-size: 14px;
  line-height: 1.62;
}

.bousai-about-options {
  color: #3d566b;
  font-size: 13px;
  line-height: 1.58;
}

.bousai-about-mission {
  position: relative;
  z-index: 3;
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0 !important;
  padding: 14px 16px;
  border-top: 1px solid rgba(150, 199, 224, 0.72);
  background: rgba(255, 255, 255, 0.96);
  text-align: center;
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: -0.01em;
  box-shadow: 0 -7px 20px rgba(18, 84, 126, 0.04);
}

.bousai-about-panel,
.bousai-about-safety {
  padding: clamp(21px, 2.3vw, 28px);
  border: 1px solid var(--about-line);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 28px rgba(24, 73, 108, 0.06);
}

.bousai-about-heading {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 14px;
}

.bousai-about-heading > span {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #0b4e8a, #199ab0);
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  box-shadow: 0 7px 15px rgba(18, 103, 165, 0.18);
}

.bousai-about-heading h2,
.bousai-about-safety h2 {
  margin-bottom: 0;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: clamp(23px, 2.5vw, 30px);
  line-height: 1.3;
}

.bousai-about-heading h2::before,
.bousai-about-heading h2::after,
.bousai-about-safety h2::before,
.bousai-about-safety h2::after {
  display: none !important;
}

.bousai-about-origin-lead {
  flex: 0 0 auto;
  margin: 0 0 0 auto !important;
  padding: 11px 16px;
  border-radius: 13px;
  background: linear-gradient(145deg, #e7f5fb, #f7fcff);
  color: var(--about-navy);
  font-size: 17px;
  line-height: 1.45;
  white-space: nowrap;
}

.bousai-about-origin-body {
  margin-left: 0;
}

.bousai-about-origin blockquote {
  position: relative;
  display: block;
  margin: 12px 0 0;
  padding: 15px 48px;
  border: 0;
  border-radius: 16px;
  background: #f2f8fc;
  line-height: 1.8;
}

.bousai-about-origin blockquote::before,
.bousai-about-origin blockquote::after {
  position: absolute;
  color: #87a5bd;
  font-family: Georgia, serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}

.bousai-about-origin blockquote::before {
  top: 11px;
  left: 16px;
  content: "“";
}

.bousai-about-origin blockquote::after {
  right: 16px;
  bottom: 2px;
  content: "”";
}

.bousai-about-origin blockquote strong {
  color: var(--about-navy);
  font-size: 16px;
}

.bousai-about-origin blockquote span {
  color: var(--about-muted);
  font-size: 14px;
}

.bousai-about-topic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bousai-about-topic {
  min-width: 0;
  padding: 17px 15px;
  border: 1px solid #d6e6f0;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff, #f9fcfe);
}

.bousai-about-topic-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 12px;
  place-items: center;
  border-radius: 50%;
  background: #eef8fb;
}

.bousai-about-topic-icon svg {
  width: 45px;
  height: 45px;
}

.bousai-about-topic h3 {
  margin-bottom: 9px;
  font-size: 18px;
  line-height: 1.35;
}

.bousai-about-topic p {
  color: #40586d;
  font-size: 13px;
  line-height: 1.72;
}

.bousai-about-method {
  background: linear-gradient(180deg, #fff, #f7fbfe);
}

.bousai-about-method-lead {
  margin-bottom: 16px !important;
}

.bousai-about-method-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.bousai-about-method-list li {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
  min-width: 0;
  padding: 14px 13px;
  border: 1px solid #cfe2ec;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.9);
  text-align: left;
}

.bousai-about-method-list li > span {
  display: block;
  width: 28px;
  height: 5px;
  margin: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #0f6ea7, #22a8b4);
}

.bousai-about-method-list p {
  margin: 0;
  color: #38536a;
  font-size: 12.5px;
  line-height: 1.62;
}

.bousai-about-method-summary,
.bousai-about-role-note {
  margin: 0 !important;
  padding: 14px 17px;
  border-radius: 12px;
  background: #eaf5fa;
}

.bousai-about-method-summary {
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: -0.015em;
}

@media screen and (min-width: 901px) {
  .bousai-about-method-summary {
    padding-right: 14px;
    padding-left: 14px;
    white-space: nowrap;
  }
}

.bousai-about-author-grid {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.bousai-about-author-grid > img {
  width: 132px;
  height: 132px;
  margin: 0;
  border: 7px solid #e8f4fa;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 10px 22px rgba(24, 73, 108, 0.12);
}

.bousai-about-author-name {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.bousai-about-author-name h3 {
  margin: 0;
  font-size: 22px;
}

.bousai-about-author-name span {
  padding: 4px 9px;
  border: 1px solid #a9cfdf;
  border-radius: 999px;
  background: #edf8fc;
  color: #28617b;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.bousai-about-author-grid p {
  font-size: 14px;
}

.bousai-about-role-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.bousai-about-role-grid article {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid #c9dfec;
  border-radius: 16px;
  background: #fbfdff;
}

.bousai-about-role-grid article > span {
  position: absolute;
  top: 12px;
  right: 14px;
  color: rgba(18, 103, 165, 0.12);
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.bousai-about-role-grid h3 {
  position: relative;
  margin-bottom: 9px;
  padding-right: 60px;
  font-size: 18px;
}

.bousai-about-role-grid p {
  position: relative;
  color: #40586d;
  font-size: 14px;
}

.bousai-about-safety {
  border-color: #b9d7e5;
  background: linear-gradient(120deg, #eef8fc, #fff 58%);
}

.bousai-about-safety-heading {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 14px;
}

.bousai-about-safety-icon {
  display: grid;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(145deg, #0b4e8a, #199ab0);
}

.bousai-about-safety-icon svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bousai-about-safety h2 {
  margin-bottom: 0;
}

.bousai-about-safety-close {
  margin-top: 13px !important;
  padding-top: 13px;
  border-top: 1px solid #d2e6ef;
}

@media screen and (max-width: 900px) {
  .bousai-about-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }

  .bousai-about-hero-copy {
    grid-column: 1;
    grid-row: 1;
    padding: 22px 20px 18px;
  }

  .bousai-about-hero h2 {
    font-size: 30px;
  }

  .bousai-about-hero-visual {
    grid-column: 1;
    grid-row: 2;
    height: auto;
    aspect-ratio: 2.25 / 1;
    border-left: 0;
  }

  .bousai-about-hero-visual::before {
    display: none;
  }

  .bousai-about-mission {
    grid-column: 1;
    grid-row: 3;
  }

  .bousai-about-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-about-method-list {
    grid-template-columns: repeat(5, minmax(112px, 1fr));
    overflow-x: auto;
    padding-bottom: 8px;
  }
}

@media screen and (max-width: 600px) {
  body.page.page-id-14 .content-in {
    padding-top: 10px;
    padding-bottom: 20px;
  }

  body.page.page-id-14 #main {
    width: calc(100% - 24px);
    padding: 14px 20px 18px;
  }

  .page-id-14 .article-header {
    margin-bottom: 13px;
  }

  .page-id-14 .entry-title {
    font-size: 25px;
  }

  .bousai-about {
    gap: 11px;
  }

  .bousai-about-panel,
  .bousai-about-safety {
    padding: 17px 16px;
    border-radius: 16px;
  }

  .bousai-about-hero {
    grid-template-rows: auto auto auto;
    border-radius: 16px;
  }

  .bousai-about-hero-copy {
    display: contents;
  }

  .bousai-about-hero-title {
    position: relative;
    z-index: 3;
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 14px 40% 12px 16px;
    background: linear-gradient(90deg, rgba(248, 253, 255, 0.98) 0%, rgba(248, 253, 255, 0.9) 48%, rgba(248, 253, 255, 0.24) 76%, rgba(248, 253, 255, 0) 100%);
    pointer-events: none;
  }

  .bousai-about-hero-text {
    position: relative;
    z-index: 2;
    grid-column: 1;
    grid-row: 2;
    padding: 13px 16px 10px;
    background: linear-gradient(180deg, #f2faff, #f9fdff);
  }

  .bousai-about-hero-visual {
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 1.95 / 1;
  }

  .bousai-about-hero-visual img {
    object-position: 67% center;
  }

  .bousai-about-mission {
    grid-row: 3;
  }

  .bousai-about-hero h2 {
    max-width: 205px;
    margin-bottom: 0;
    font-size: 21px;
    line-height: 1.28;
    letter-spacing: 0;
  }

  .bousai-about-hero h2 br {
    display: none;
  }

  .bousai-about-intro,
  .bousai-about-mission {
    font-size: 13px;
  }

  .bousai-about-options {
    font-size: 12.5px;
  }

  .bousai-about-method-summary {
    font-size: 13px;
    letter-spacing: 0;
  }

  .bousai-about-mission {
    margin-top: 0 !important;
    padding: 11px 13px;
    text-align: left;
  }

  .bousai-about-heading {
    gap: 10px;
    margin-bottom: 12px;
  }

  .bousai-about-heading > span {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    font-size: 11px;
  }

  .bousai-about-heading h2,
  .bousai-about-safety h2 {
    font-size: 19px;
  }

  .bousai-about-origin blockquote,
  .bousai-about-topic-grid,
  .bousai-about-author-grid,
  .bousai-about-role-grid {
    grid-template-columns: 1fr;
  }

  .bousai-about-origin .bousai-about-heading {
    flex-wrap: wrap;
  }

  .bousai-about-origin-lead {
    flex-basis: 100%;
    margin-left: 46px !important;
    padding: 9px 12px;
    font-size: 14px;
    border-radius: 12px;
    white-space: normal;
  }

  .bousai-about-origin-body {
    margin-left: 0;
  }

  .bousai-about-origin blockquote {
    margin-top: 10px;
    padding: 12px 32px 12px 36px;
  }

  .bousai-about-origin blockquote::before {
    top: 10px;
    left: 11px;
    font-size: 28px;
  }

  .bousai-about-origin blockquote::after {
    display: none;
  }

  .bousai-about-topic {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 0 12px;
    padding: 16px;
  }

  .bousai-about-topic-icon {
    grid-row: 1 / span 2;
    width: 48px;
    height: 48px;
    margin: 0;
  }

  .bousai-about-topic-icon svg {
    width: 40px;
    height: 40px;
  }

  .bousai-about-topic h3 {
    margin: 0 0 6px;
    font-size: 17px;
  }

  .bousai-about-topic p {
    font-size: 12.5px;
  }

  .bousai-about-method-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    overflow: visible;
    padding: 0;
  }

  .bousai-about-method-list li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #d4e5ed;
    border-radius: 11px;
    background: #f4f9fc;
    text-align: left;
  }

  .bousai-about-method-list li > span {
    width: 10px;
    height: 10px;
    margin: 0;
    border-radius: 50%;
  }

  .bousai-about-author-grid {
    gap: 15px;
    text-align: left;
  }

  .bousai-about-author-grid > img {
    width: 94px;
    height: 94px;
  }

  .bousai-about-author-name {
    flex-wrap: wrap;
  }

  .bousai-about-author-name h3 {
    font-size: 20px;
  }

  .bousai-about-role-grid article {
    padding: 16px;
  }

  .bousai-about-safety-heading {
    gap: 10px;
    margin-bottom: 12px;
  }

  .bousai-about-safety-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .bousai-about-safety-icon svg {
    width: 29px;
    height: 29px;
  }
}

/* 2026-08-18 balanced text-and-icon header: retain the polished blue-white
   identity without letting a single large image overpower the page. */
body #header-container {
  background: linear-gradient(100deg, #fbfdff 0%, #ffffff 54%, #f8fcff 100%) !important;
}

body #header {
  background:
    radial-gradient(circle at 8% 50%, rgba(57, 152, 197, 0.1) 0 1px, transparent 1.6px) 0 0 / 18px 18px,
    linear-gradient(90deg, rgba(238, 248, 253, 0.72), rgba(255, 255, 255, 0.18) 72%) !important;
}

body #header-container-in {
  width: min(1320px, calc(100% - 48px));
  min-height: 106px;
  grid-template-columns: minmax(430px, 1fr) auto;
  column-gap: 26px;
}

body #header,
body #header-in {
  height: 106px !important;
}

body #header .header-in {
  min-height: 106px !important;
  max-height: 106px !important;
}

body #header-in {
  position: relative;
  display: grid;
  width: 100%;
  margin: 0;
  padding: 6px 0;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 56px 38px;
  align-items: center;
}

body #header-in::before {
  display: none !important;
}

body #header .logo-header {
  display: flex;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  align-items: flex-end;
  align-self: end;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 1;
  grid-row: 1;
}

body #header .logo-header a {
  position: static;
  display: flex;
  width: auto !important;
  height: auto;
  min-height: 52px;
  overflow: visible;
  align-items: flex-end;
  padding: 0 0 2px 84px !important;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: left;
  transition: none;
}

body #header .logo-header a::before {
  position: absolute;
  z-index: 1;
  top: 18px;
  left: 0;
  width: 68px;
  height: 68px;
  content: "";
  border: 1px solid rgba(177, 210, 227, 0.72);
  border-radius: 18px;
  background: #fff url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-150x150.png") center top / 150% auto no-repeat;
  box-shadow: 0 10px 24px rgba(11, 58, 103, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.92);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

body #header .logo-header a::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  content: "";
}

body #header .logo-header a:hover {
  transform: none;
  border-color: transparent;
  box-shadow: none;
}

body #header .logo-header a:hover::before {
  transform: translateY(-1px);
  border-color: rgba(83, 165, 200, 0.78);
  box-shadow: 0 13px 28px rgba(11, 58, 103, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body #header .logo-header a:focus-visible {
  outline: 3px solid #118699;
  outline-offset: 3px;
}

body #header .site-name-text {
  position: relative !important;
  z-index: 2;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  border: 0 !important;
  color: var(--bousai-navy-deep);
  font-size: clamp(24px, 2.05vw, 30px);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: 0.015em;
  white-space: nowrap !important;
  text-shadow: 0 3px 14px rgba(11, 58, 103, 0.09);
}

body #header .tagline {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  margin: 3px 0 0 84px !important;
  padding: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  border: 0 !important;
  color: #49677f;
  font-size: 12.5px;
  font-weight: 660;
  line-height: 1.35;
  letter-spacing: 0.02em;
  white-space: nowrap !important;
  grid-column: 1;
  grid-row: 2;
}

body #navi,
body #navi .navi-in,
body #navi .navi-in > ul > li {
  height: 106px;
}

body #navi .navi-in > ul > li {
  width: auto !important;
}

body #navi .navi-in > ul > li > a,
body #navi .navi-in > ul > li > a:not(:hover) {
  width: auto !important;
  height: 106px !important;
  min-height: 106px;
  padding-right: 14px;
  padding-left: 14px;
  font-size: 14px;
}

@media screen and (max-width: 1120px) {
  body #header-container-in {
    width: calc(100% - 32px);
    grid-template-columns: minmax(370px, 1fr) auto;
    column-gap: 14px;
  }

  body #header .site-name-text {
    font-size: 24px;
  }

  body #header .tagline {
    font-size: 11.5px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    padding-right: 10px;
    padding-left: 10px;
    font-size: 12.5px;
  }
}

@media screen and (max-width: 900px) {
  body #header-container-in {
    display: block;
    width: 100%;
    min-height: 0;
  }

  body #header,
  body #header-in,
  body #header .header-in {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
  }

  body #header-in {
    width: calc(100% - 32px);
    margin: 0 auto;
    padding: 5px 0;
    grid-template-rows: 55px 39px;
  }

  body #header .logo-header a {
    width: auto !important;
    height: auto;
    margin: 0;
  }

  body #navi,
  body #navi .navi-in {
    height: 50px;
  }

  body #navi .navi-in > ul > li {
    width: auto !important;
    height: 50px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 50px !important;
    min-height: 50px;
    padding-right: 12px;
    padding-left: 12px;
  }
}

@media screen and (max-width: 600px) {
  body #header,
  body #header-in,
  body #header .header-in {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }

  body #header-in {
    width: calc(100% - 24px);
    padding: 4px 0;
    grid-template-rows: 47px 37px;
  }

  body #header .logo-header a {
    width: auto !important;
    min-height: 45px;
    padding-left: 61px !important;
  }

  body #header .logo-header a::before {
    top: 18px;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background-size: 150% auto;
  }

  body #header .site-name-text {
    font-size: 18.5px;
    letter-spacing: 0.005em;
  }

  body #header .tagline {
    max-width: calc(100% - 61px);
    overflow: hidden !important;
    margin-left: 61px !important;
    gap: 6px;
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body #header .tagline::before {
    width: 17px;
    height: 2px;
    flex-basis: 17px;
  }

  body #navi,
  body #navi .navi-in {
    height: auto;
  }

  body #navi .navi-in > ul > li {
    width: auto !important;
    height: 42px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 42px !important;
    min-height: 42px;
    padding-right: 7px;
    padding-left: 7px;
    font-size: 11.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body #header .logo-header a::before {
    transition: none;
  }

  body #header .logo-header a:hover::before {
    transform: none;
  }
}

/* 2026-08-18 Bousai Weather Calendar: replace the generic page heading with
   a compact branded masthead and usable archive controls. */
body.page-id-57 .article-header {
  display: none;
}

.page-id-57 .bousai-calendar-brand {
  position: relative;
  display: flex;
  min-height: 176px;
  align-items: center;
  gap: clamp(20px, 3vw, 34px);
  overflow: hidden;
  margin: 0 0 18px;
  padding: 28px clamp(30px, 5vw, 64px);
  border: 1px solid #d4e7f1;
  border-radius: 22px 22px 0 0;
  background:
    radial-gradient(circle at 89% 48%, rgba(79, 174, 220, 0.24) 0 3px, transparent 4px),
    repeating-radial-gradient(circle at 89% 48%, transparent 0 18px, rgba(76, 163, 207, 0.09) 19px 21px, transparent 22px 38px),
    radial-gradient(circle at 80% 118%, rgba(154, 218, 247, 0.52), transparent 35%),
    linear-gradient(120deg, #fff 0%, #fbfdff 52%, #e9f7ff 100%);
  box-shadow: 0 12px 34px rgba(12, 63, 103, 0.09);
  isolation: isolate;
}

.page-id-57 .bousai-calendar-brand::before,
.page-id-57 .bousai-calendar-brand::after {
  position: absolute;
  z-index: -1;
  content: "";
  pointer-events: none;
}

.page-id-57 .bousai-calendar-brand::before {
  top: -38px;
  right: 12%;
  width: 300px;
  height: 210px;
  opacity: 0.45;
  background: repeating-linear-gradient(135deg, transparent 0 11px, rgba(42, 144, 195, 0.12) 12px 14px);
  transform: skewX(-12deg);
}

.page-id-57 .bousai-calendar-brand::after {
  right: -18px;
  bottom: -46px;
  width: 390px;
  height: 120px;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 18% 60%, rgba(255,255,255,0.94) 0 22%, transparent 23%),
    radial-gradient(ellipse at 42% 45%, rgba(255,255,255,0.9) 0 26%, transparent 27%),
    radial-gradient(ellipse at 68% 66%, rgba(255,255,255,0.86) 0 24%, transparent 25%);
  filter: blur(1px);
}

.page-id-57 .bousai-calendar-brand-icon {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 24px;
  background: #fff url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-150x150.png") center top / 150% auto no-repeat;
  box-shadow: 0 14px 28px rgba(10, 61, 105, 0.19), inset 0 0 0 1px rgba(83, 165, 200, 0.18);
}

.page-id-57 .bousai-calendar-brand-copy {
  position: relative;
  min-width: 0;
  padding-left: clamp(22px, 3vw, 34px);
}

.page-id-57 .bousai-calendar-brand-copy::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(#0b7489, #31bfc0);
  content: "";
}

.page-id-57 .bousai-calendar-brand h1 {
  margin: 0;
  color: var(--bousai-navy-deep);
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 830;
  line-height: 1.18;
  letter-spacing: 0.025em;
}

.page-id-57 .bousai-calendar-brand p {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 13px 0 0;
  color: #15979b;
  font-size: clamp(15px, 1.5vw, 20px);
  font-weight: 760;
  letter-spacing: 0.055em;
}

.page-id-57 .bousai-calendar-brand p span {
  width: 42px;
  height: 2px;
  background: linear-gradient(90deg, #1ba0a6, #81d8d8);
}

.page-id-57 .bousai-calendar-brand p span:last-child {
  width: 34px;
  background: linear-gradient(90deg, #81d8d8, transparent);
}

.page-id-57 .bousai-calendar-brand p span:last-child::after {
  display: block;
  width: 7px;
  height: 7px;
  margin: -2.5px 0 0 28px;
  background: #24aeb0;
  content: "";
  transform: rotate(45deg);
}

.page-id-57 .bousai-calendar-priority {
  margin-top: 0;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 8px;
  padding: 12px;
  border-color: #d4e7f1;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.08);
}

.page-id-57 .bousai-calendar-control-panel {
  display: grid;
  grid-template-columns: minmax(300px, 1.15fr) auto auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
  padding: 8px 10px 14px;
  border-bottom: 1px solid #d9e7ef;
}

.page-id-57 .bousai-calendar-current-month {
  display: grid;
  grid-template-columns: 48px auto minmax(140px, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.page-id-57 .bousai-calendar-current-icon {
  display: grid;
  grid-row: 1;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #8cd4d5;
  border-radius: 50%;
  background: #f0fbfb;
  color: #15979b;
}

.page-id-57 .bousai-calendar-current-icon svg {
  width: 25px;
  height: 25px;
}

.page-id-57 .bousai-calendar-current-label {
  color: #4d6880;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.page-id-57 .bousai-calendar-current-month h2 {
  margin: 0;
  padding: 0 0 0 14px !important;
  border: 0 !important;
  border-left: 1px solid #d5e3eb !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  white-space: nowrap;
}

.page-id-57 .bousai-calendar-current-month h2::before {
  display: none !important;
}

.page-id-57 .bousai-calendar-step-group,
.page-id-57 .bousai-calendar-year-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 18px;
  border-left: 1px solid #d5e3eb;
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 42px;
  border: 1px solid #a8d6df;
  border-radius: 11px;
  background: #fff;
  color: #0a6676;
  font-size: 13px;
  font-weight: 750;
}

.page-id-57 .bousai-calendar-control-panel button {
  display: inline-flex;
  min-width: 102px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 8px 14px;
}

.page-id-57 .bousai-calendar-control-panel button span {
  font-size: 26px;
  font-weight: 400;
  line-height: 0;
}

.page-id-57 .bousai-calendar-control-panel select {
  min-width: 112px;
  padding: 8px 32px 8px 14px;
  border-color: #b8cfe0;
  color: var(--bousai-navy-deep);
}

.page-id-57 .bousai-calendar-control-panel button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.page-id-57 .bousai-calendar-control-panel button:focus-visible,
.page-id-57 .bousai-calendar-control-panel select:focus-visible {
  outline: 3px solid #38aebc;
  outline-offset: 3px;
}

.page-id-57 .bousai-calendar-months {
  gap: 6px;
}

.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 38px;
  border: 1px solid #d9e5ec;
  border-radius: 10px;
  background: #fff;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-months strong {
  position: relative;
  overflow: hidden;
  border-color: #0b4f82;
  background: linear-gradient(145deg, #082f59, #0a4a80);
  color: #fff;
  box-shadow: 0 7px 16px rgba(7, 58, 102, 0.18);
}

.page-id-57 .bousai-calendar-months strong::after {
  position: absolute;
  right: 12px;
  bottom: 5px;
  left: 12px;
  height: 2px;
  border-radius: 999px;
  background: #f1bf47;
  content: "";
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }

  .page-id-57 .bousai-calendar-step-group {
    justify-content: flex-start;
  }

  .page-id-57 .bousai-calendar-year-controls {
    justify-content: flex-end;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    min-height: 128px;
    gap: 13px;
    margin-bottom: 12px;
    padding: 20px 16px;
    border-radius: 17px 17px 0 0;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: -70px;
  }

  .page-id-57 .bousai-calendar-brand::after {
    opacity: 0.58;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 62px;
    height: 62px;
    border-radius: 17px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    padding-left: 14px;
  }

  .page-id-57 .bousai-calendar-brand-copy::before {
    width: 3px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 5.8vw, 22.5px);
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  .page-id-57 .bousai-calendar-brand p {
    gap: 7px;
    margin-top: 8px;
    font-size: 11px;
    letter-spacing: 0.025em;
    white-space: nowrap;
  }

  .page-id-57 .bousai-calendar-brand p span {
    width: 18px;
  }

  .page-id-57 .bousai-calendar-brand p span:last-child {
    display: none;
  }

  .page-id-57 .bousai-calendar-archive-nav {
    padding: 10px;
  }

  .page-id-57 .bousai-calendar-control-panel {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    padding: 2px 2px 12px;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-template-columns: 42px auto 1fr;
    gap: 8px;
  }

  .page-id-57 .bousai-calendar-current-icon {
    width: 39px;
    height: 39px;
  }

  .page-id-57 .bousai-calendar-current-label {
    font-size: 11px;
  }

  .page-id-57 .bousai-calendar-current-month h2 {
    padding-left: 9px !important;
    font-size: 24px;
  }

  .page-id-57 .bousai-calendar-step-group,
  .page-id-57 .bousai-calendar-year-controls {
    display: grid;
    gap: 6px;
  }

  .page-id-57 .bousai-calendar-step-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-57 .bousai-calendar-year-controls {
    grid-template-columns: 1fr 1.15fr 1fr;
    padding: 10px 0 0;
    border-top: 1px solid #d5e3eb;
    border-left: 0;
  }

  .page-id-57 .bousai-calendar-control-panel button,
  .page-id-57 .bousai-calendar-control-panel select {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 7px 8px;
    font-size: 11px;
  }

  .page-id-57 .bousai-calendar-months {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 36px;
  }
}

/* 2026-08-18 monthly chart framing: let the six calendar rows use nearly a
   full desktop viewport and preserve the complete JMA chart aspect ratio. */
@media screen and (min-width: 835px) {
  .page-id-57 .bousai-month-calendar {
    grid-auto-rows: clamp(118px, calc((100svh - 54px) / 6), 165px);
  }

  .page-id-57 .bousai-month-calendar li,
  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    height: auto;
    min-height: 0;
  }

  .page-id-57 .bousai-month-calendar a,
  .page-id-57 .bousai-month-calendar li > div {
    height: 100%;
  }

  .page-id-57 .bousai-month-calendar img,
  .page-id-57 .bousai-chart-placeholder {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
  }
}

/* Cascade lock: these compact production masthead rules intentionally follow
   all earlier calendar experiments in this stylesheet. */
.page-id-57 .bousai-calendar-brand {
  min-height: 104px;
  gap: 18px;
  margin: 0 0 8px;
  padding: 14px 22px;
  border-color: #d7e6ef;
  border-radius: 16px 16px 8px 8px;
  background-color: #fbfdff;
  background-image:
    linear-gradient(rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(112deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 251, 254, 0.96) 64%, rgba(235, 247, 252, 0.9) 100%);
  background-size: 24px 24px, 24px 24px, 100% 100%;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.07);
}

.page-id-57 .bousai-calendar-brand::before {
  inset: 0;
  width: auto;
  height: auto;
  opacity: 0.28;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160'%3E%3Cg fill='none' stroke='%23228da0' stroke-width='1.2' opacity='.46'%3E%3Cpath d='M600 28c95-39 175 36 270 3s174-17 262 27'/%3E%3Cpath d='M565 62c98-35 180 39 278 7s183-13 279 33'/%3E%3Cpath d='M535 98c106-31 186 40 291 13s188-7 292 43'/%3E%3C/g%3E%3Cg fill='%2315909b' opacity='.48'%3E%3Ccircle cx='846' cy='69' r='2.5'/%3E%3Ccircle cx='915' cy='47' r='2.5'/%3E%3Ccircle cx='983' cy='55' r='2.5'/%3E%3Cg fill='%2352abc6' opacity='.32'%3E%3Cpath d='M1015 118c17-19 37-21 53-5 23-31 65-18 67 13h-120c-8-1-8-7 0-8Z'/%3E%3Cpath d='M925 132c11-14 28-15 40-3 17-23 48-13 50 11h-90c-6-1-6-6 0-8Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") right center / auto 100% no-repeat;
  transform: none;
}

.page-id-57 .bousai-calendar-brand::after {
  top: 16px;
  right: 18px;
  bottom: auto;
  width: 142px;
  height: 20px;
  border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 142 20'%3E%3Cpath d='M2 10h138' stroke='%231b95a1' stroke-width='1' opacity='.28'/%3E%3Cg fill='%231b95a1' opacity='.45'%3E%3Ccircle cx='22' cy='10' r='2'/%3E%3Ccircle cx='70' cy='10' r='2'/%3E%3Ccircle cx='118' cy='10' r='2'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  filter: none;
}

.page-id-57 .bousai-calendar-brand-icon {
  width: 68px;
  height: 68px;
  border-radius: 17px;
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: baseline;
  gap: 3px 18px;
  padding-left: 18px;
}

.page-id-57 .bousai-calendar-brand h1 {
  grid-column: 1;
  font-size: clamp(27px, 3vw, 36px);
  line-height: 1.12;
}

.page-id-57 .bousai-calendar-brand p,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  display: block;
  margin: 0;
  white-space: normal;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  grid-column: 2;
  color: #148d94;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0.06em;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  grid-column: 1 / -1;
  color: #4b667a;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 5px;
  padding: 8px 10px 9px;
  border-radius: 13px;
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(280px, 1.15fr) auto auto;
  gap: 11px;
  margin-bottom: 7px;
  padding: 2px 4px 8px;
}

.page-id-57 .bousai-calendar-current-month {
  grid-template-columns: 38px auto minmax(130px, 1fr);
  gap: 8px;
}

.page-id-57 .bousai-calendar-current-icon {
  width: 34px;
  height: 34px;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 10px !important;
  font-size: clamp(25px, 2.6vw, 33px);
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 36px;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-control-panel button {
  min-width: 92px;
  padding: 6px 10px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 12px;
}

.page-id-57 .bousai-calendar-months {
  gap: 5px;
}

.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 32px;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    min-height: 0;
    gap: 10px;
    margin-bottom: 7px;
    padding: 12px;
    border-radius: 13px 13px 7px 7px;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: 0;
    opacity: 0.19;
  }

  .page-id-57 .bousai-calendar-brand::after {
    display: none;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 50px;
    height: 50px;
    border-radius: 13px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6.1vw, 24px);
    white-space: normal;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 3px;
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 7px;
    font-size: 10.5px;
    line-height: 1.5;
  }

  .page-id-57 .bousai-calendar-control-panel {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    padding: 2px 2px 8px;
  }

  .page-id-57 .bousai-calendar-year-controls {
    padding: 7px 0 0;
    border-top: 1px solid #d5e3eb;
    border-left: 0;
  }

  .page-id-57 .bousai-calendar-months {
    display: flex;
    grid-template-columns: none;
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 6px;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .page-id-57 .bousai-calendar-months li {
    flex: 0 0 62px;
    scroll-snap-align: start;
  }

  .page-id-57 .bousai-calendar-months button,
  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 34px;
  }
}

.page-id-57 .bousai-topic-card h3 {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.page-id-57 .bousai-topic-card h3::before,
.page-id-57 .bousai-topic-card h3::after {
  display: none !important;
}

/* 2026-08-18 dedicated service-page shell. Only page 57 drops Cocoon's
   article chrome and sidebar; the shared site header and footer remain. */
body.page-id-57 #content-in {
  display: block;
}

body.page-id-57 #sidebar,
body.page-id-57 .article-footer,
body.page-id-57 #breadcrumb,
body.page-id-57 .breadcrumb,
body.page-id-57 .related-entry-heading,
body.page-id-57 .related-list,
body.page-id-57 .pager-post-navi,
body.page-id-57 .sns-share,
body.page-id-57 .sns-follow,
body.page-id-57 .comment-area {
  display: none !important;
}

body.page.page-id-57 #main {
  width: calc(100% - 32px);
  max-width: 1320px;
  margin-right: auto;
  margin-left: auto;
  padding-right: clamp(18px, 2.3vw, 30px);
  padding-left: clamp(18px, 2.3vw, 30px);
}

.page-id-57 .bousai-calendar-brand {
  display: block;
  min-height: 0;
  margin-bottom: 6px;
  padding: 10px 18px;
  border-radius: 14px 14px 7px 7px;
}

.page-id-57 .bousai-calendar-brand-icon {
  display: none !important;
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 2px 16px;
  padding-left: 14px;
}

.page-id-57 .bousai-calendar-brand-copy::before {
  top: 1px;
  bottom: 1px;
}

.page-id-57 .bousai-calendar-brand h1 {
  font-size: clamp(26px, 2.7vw, 33px);
  line-height: 1.08;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  align-self: center;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  font-size: 11.5px;
  line-height: 1.42;
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(180px, 1fr) auto auto;
}

.page-id-57 .bousai-calendar-current-month {
  display: block;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 0 !important;
  border-left: 0 !important;
  font-size: clamp(25px, 2.55vw, 32px);
}

.page-id-57 .bousai-calendar-current-icon,
.page-id-57 .bousai-calendar-current-label {
  display: none !important;
}

.page-id-57 .bousai-calendar-home-return {
  margin: -2px 0 4px;
}

.page-id-57 .bousai-calendar-home-return a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 7px 13px;
  border: 1px solid #c9dce7;
  border-radius: 8px;
  background: #fff;
  color: var(--bousai-navy-deep);
  font-size: 12px;
  font-weight: 720;
  text-decoration: none;
  transition: background-color 0.16s ease, border-color 0.16s ease;
}

.page-id-57 .bousai-calendar-home-return a:hover {
  border-color: #9fcbd7;
  background: #edf8fb;
}

.page-id-57 .bousai-calendar-home-return a:focus-visible {
  outline: 3px solid #38aebc;
  outline-offset: 3px;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 600px) {
  body.page.page-id-57 #main {
    width: calc(100% - 16px);
    padding: 12px 10px 22px;
  }

  .page-id-57 .entry-content {
    margin-top: 0;
  }

  .page-id-57 .bousai-calendar-brand {
    display: block;
    padding: 10px 12px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6vw, 23px);
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 2px;
    font-size: 10px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 5px;
    font-size: 10.5px;
    line-height: 1.45;
  }

  .page-id-57 .bousai-calendar-home-return a {
    width: 100%;
    justify-content: center;
  }
}

/* Official sources preparation page. Every rule is limited to the page's
   bwl-official-sources namespace so the shared theme remains unchanged. */
body.page:has(.bwl-official-sources) #content {
  background: linear-gradient(180deg, #f7fbfd 0%, #eef7fa 100%);
}

body.page:has(.bwl-official-sources) #content-in {
  width: min(960px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

body.page:has(.bwl-official-sources) #main {
  float: none;
  width: 100%;
  max-width: 900px;
  margin: 34px auto 46px;
  padding: clamp(32px, 5vw, 54px);
  border: 1px solid #d5e6ee;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 34px rgba(11, 58, 103, 0.08);
}

body.page:has(.bwl-official-sources) #sidebar,
body.page:has(.bwl-official-sources) #main .date-tags,
body.page:has(.bwl-official-sources) #main .author-info,
body.page:has(.bwl-official-sources) #main .sns-share,
body.page:has(.bwl-official-sources) #main .sns-follow,
body.page:has(.bwl-official-sources) #main .related-entry-heading,
body.page:has(.bwl-official-sources) #main .related-entries,
body.page:has(.bwl-official-sources) #main .comment-area {
  display: none;
}

body.page:has(.bwl-official-sources) #main .entry-title {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  color: #0a3459;
  font-size: clamp(28px, 3.1vw, 38px);
  line-height: 1.42;
  letter-spacing: 0.01em;
  text-align: center;
}

body.page:has(.bwl-official-sources) #main .entry-content {
  margin-top: 26px;
}

.bwl-official-sources,
.bwl-official-sources * {
  box-sizing: border-box;
}

.bwl-official-sources {
  width: min(760px, 100%);
  margin: 0 auto;
  color: #173f5e;
}

.bwl-official-sources__intro {
  max-width: 660px;
  margin: 0 auto;
  color: #46657a;
  font-size: 16px;
  line-height: 1.85;
  text-align: center;
}

.bwl-official-sources__panel {
  margin-top: 30px;
  padding: clamp(34px, 5vw, 48px);
  border: 1px solid #c9e0ea;
  border-radius: 18px;
  background: linear-gradient(145deg, #ffffff 0%, #eef8fb 100%);
  box-shadow: 0 10px 26px rgba(11, 58, 103, 0.08);
  text-align: center;
}

.bwl-official-sources__status {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 5px 14px;
  border: 1px solid #b9dce7;
  border-radius: 999px;
  background: #e5f4f7;
  color: #087b83;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.bwl-official-sources__message {
  max-width: 600px;
  margin: 20px auto 0;
  color: #274c68;
  font-size: 17px;
  line-height: 1.85;
}

.bwl-official-sources__home {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin-top: 28px;
  padding: 11px 24px;
  border: 1px solid #16889c;
  border-radius: 12px;
  background: linear-gradient(135deg, #168ba5 0%, #176fa3 100%);
  box-shadow: 0 8px 18px rgba(18, 121, 153, 0.18);
  color: #ffffff !important;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.4;
  text-decoration: none !important;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-official-sources__home:hover {
    background: linear-gradient(135deg, #117f98 0%, #126796 100%);
    box-shadow: 0 11px 22px rgba(18, 105, 145, 0.24);
    transform: translateY(-2px);
  }
}

.bwl-official-sources__home:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media screen and (max-width: 600px) {
  body.page:has(.bwl-official-sources) #content-in {
    width: calc(100% - 24px);
  }

  body.page:has(.bwl-official-sources) #main {
    margin: 18px auto 28px;
    padding: 26px 18px 30px;
    border-radius: 16px;
  }

  body.page:has(.bwl-official-sources) #main .entry-title {
    font-size: clamp(25px, 7.2vw, 30px);
  }

  body.page:has(.bwl-official-sources) #main .entry-content {
    margin-top: 20px;
  }

  .bwl-official-sources__intro {
    font-size: 15px;
    line-height: 1.78;
  }

  .bwl-official-sources__panel {
    margin-top: 22px;
    padding: 28px 20px;
    border-radius: 15px;
  }

  .bwl-official-sources__message {
    margin-top: 16px;
    font-size: 15.5px;
    line-height: 1.78;
  }

  .bwl-official-sources__home {
    width: 100%;
    margin-top: 24px;
  }
}

/* Compact global footer. Keep Cocoon's existing footer content and links,
   while placing the full-width background behind a centered inner layout. */
body #footer.footer-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid rgba(132, 205, 226, 0.22);
  border-radius: 0;
  background: linear-gradient(135deg, #062b4e 0%, #0a3a67 66%, #105c7d 100%);
  box-shadow: none;
}

body #footer #footer-in.footer-in {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px;
}

body #footer .footer-bottom {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  grid-template-areas:
    "brand nav"
    "copyright copyright";
  align-items: center;
  column-gap: 18px;
  row-gap: 4px;
  width: 100%;
  min-height: 96px;
  margin: 0;
  padding: 17px 74px 13px 26px;
}

body #footer .footer-bottom-logo {
  position: static;
  grid-area: brand;
  width: auto;
  margin: 0;
}

body #footer .logo-footer,
body #footer .footer-bottom-logo .site-name-text-link {
  display: flex;
  width: auto;
  min-height: 40px;
  align-items: center;
  justify-content: flex-start;
  margin: 0;
  padding: 0;
  text-align: left;
}

body #footer .footer-bottom-logo .site-name-text-link::before {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin-right: 10px;
  border-radius: 10px;
  background: url("/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-300x300.png") center / cover no-repeat;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.16);
  content: "";
}

body #footer .footer-bottom-logo .site-name-text {
  position: static;
  width: auto;
  height: auto;
  color: rgba(255, 255, 255, 0.96);
  font-size: 15px;
  font-weight: 760;
  line-height: 1.4;
  letter-spacing: 0.015em;
  text-shadow: none;
  white-space: nowrap;
}

body #footer .footer-bottom-content {
  display: contents;
}

body #footer #navi-footer {
  grid-area: nav;
  width: 100%;
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  text-align: right;
}

body #footer #navi-footer-in,
body #footer .menu-footer {
  width: 100%;
}

body #footer .menu-footer {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}

body #footer .menu-footer > li {
  flex: 0 0 auto;
  margin: 0;
  border: 0;
}

body #footer .menu-footer > li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.28);
}

body #footer .menu-footer > li > a {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 6px 9px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 620;
  line-height: 1.35;
  white-space: nowrap;
}

body #footer .copyright {
  grid-area: copyright;
  width: 100%;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 12.5px;
  line-height: 1.4;
  text-align: center;
}

body #go-to-top {
  right: max(20px, calc((100vw - 1440px) / 2 + 26px));
  bottom: 20px;
  width: 42px;
  height: 42px;
}

body #go-to-top .go-to-top-button {
  display: flex !important;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: linear-gradient(145deg, #178b88, #277e78);
  box-shadow: 0 6px 15px rgba(2, 29, 51, 0.2);
  color: #fff;
}

@media screen and (max-width: 1179px) {
  body #footer .footer-bottom {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "brand"
      "nav"
      "copyright";
    justify-items: center;
    row-gap: 6px;
    min-height: 0;
    padding: 18px 72px 15px 24px;
  }

  body #footer .footer-bottom-logo,
  body #footer #navi-footer {
    justify-self: center;
  }

  body #footer .menu-footer {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media screen and (max-width: 600px) {
  body #footer.footer-container {
    width: 100%;
    margin: 0;
    border-radius: 0;
  }

  body #footer #footer-in.footer-in {
    padding-right: 12px;
    padding-left: 12px;
  }

  body #footer .footer-bottom {
    row-gap: 10px;
    padding: 20px 52px 18px 16px;
  }

  body #footer .footer-bottom-logo .site-name-text-link::before {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  body #footer .footer-bottom-logo .site-name-text {
    font-size: 14.5px;
  }

  body #footer #navi-footer {
    font-size: 13px;
  }

  body #footer .menu-footer {
    gap: 0 2px;
  }

  body #footer .menu-footer > li + li {
    border-left: 0;
  }

  body #footer .menu-footer > li:nth-child(even) {
    border-left: 1px solid rgba(255, 255, 255, 0.22);
  }

  body #footer .menu-footer > li > a {
    min-height: 44px;
    padding: 8px 7px;
    font-size: 13px;
  }

  body #footer .copyright {
    font-size: 12px;
    line-height: 1.55;
  }

  body #go-to-top {
    right: 20px;
    bottom: 18px;
  }
}

/* 2026-08-22 TOP selected storm header: preserve the current thin geometry
   while using the supplied navy weather-and-disaster visual as the masthead. */
body.home #header-container {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-bottom: 1px solid rgba(65, 172, 255, 0.78);
  background: #174b7a url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousai-header-selected-v2.png") center center / 100% auto no-repeat !important;
  box-shadow: 0 5px 16px rgba(2, 19, 43, 0.2), inset 0 -1px 0 rgba(97, 200, 255, 0.58);
}

body.home #header-container::after {
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, transparent 0 12%, #1b8fff 18%, transparent 31% 80%, #54c6ff 87%, transparent 96%);
  box-shadow: 0 0 9px rgba(38, 154, 255, 0.78);
}

body.home #header-container-in {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1440px;
  padding-right: 2.2%;
  padding-left: 2.2%;
  grid-template-columns: 48% 52%;
  column-gap: 0;
  box-sizing: border-box;
}

body.home #header,
body.home #header-in,
body.home #header .header-in,
body.home #navi,
body.home #navi .navi-in,
body.home #navi .navi-in > ul,
body.home #navi .navi-in > ul > li {
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.home #header .logo-header a::before {
  opacity: 0;
}

body.home #header .site-name-text,
body.home #header .tagline,
body.home #navi .navi-in > ul > li > a,
body.home #navi .navi-in > ul > li > a:not(:hover) {
  color: transparent !important;
  text-shadow: none !important;
}

body.home #navi .navi-in,
body.home #navi .navi-in > ul {
  width: 100%;
  max-width: none;
}

body.home #navi .menu-pc {
  display: grid;
  grid-template-columns: 0.86fr 1.18fr 1.18fr 1.35fr 2fr 0.55fr;
}

body.home #navi .navi-in > ul > li {
  width: 100% !important;
}

body.home #navi .navi-in > ul > li > a,
body.home #navi .navi-in > ul > li > a:not(:hover) {
  width: 100% !important;
  padding-right: 0;
  padding-left: 0;
}

body.home #navi .navi-in > ul > li > a::after {
  display: none !important;
}

body.home #header .logo-header a:hover:not(:focus-visible) {
  color: var(--bousai-ink) !important;
  border-color: currentColor !important;
  outline: none !important;
  background: none !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  text-decoration: none !important;
}

body.home #header .logo-header a:hover:not(:focus-visible)::before {
  transform: none !important;
  border-color: rgba(177, 210, 227, 0.72) !important;
  box-shadow: 0 10px 24px rgba(11, 58, 103, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
}

body.home #navi .navi-in > ul > li > a:hover {
  background: none !important;
  box-shadow: inset 0 -2px 0 rgba(69, 181, 255, 0.88) !important;
}

body.home #header .logo-header a:focus-visible,
body.home #navi .navi-in > ul > li > a:focus-visible {
  outline: 2px solid #8ed8ff !important;
  outline-offset: -4px;
  background: rgba(21, 110, 190, 0.22) !important;
}

@media screen and (max-width: 900px) {
  body.home #header-container {
    background-position: right center !important;
    background-size: auto 302% !important;
  }

  body.home #header-container::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, rgba(1, 15, 34, 0.99), rgba(2, 22, 48, 0.97) 60%, rgba(1, 12, 29, 0.94));
  }

  body.home #header-container-in {
    width: 100%;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
  }

  body.home #header-in {
    width: calc(100% - 32px);
  }

  body.home #header .logo-header a::before {
    opacity: 1;
    border-color: rgba(128, 202, 255, 0.42);
    background-color: rgba(3, 25, 54, 0.82);
    box-shadow: 0 8px 22px rgba(0, 7, 20, 0.36), 0 0 0 1px rgba(62, 167, 255, 0.18);
  }

  body.home #header .site-name-text {
    color: #f7fbff !important;
    text-shadow: 0 2px 10px rgba(0, 7, 20, 0.72) !important;
  }

  body.home #header .tagline {
    color: #c7d9e8 !important;
    text-shadow: 0 1px 7px rgba(0, 7, 20, 0.74) !important;
  }

  body.home #header .tagline::before {
    background: linear-gradient(90deg, #3fb7ff, #70e4ff);
    box-shadow: 0 0 8px rgba(73, 190, 255, 0.7);
  }

  body.home #navi .menu-pc {
    display: none;
  }

  body.home #navi .menu-mobile {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  body.home #navi .navi-in > ul > li > a,
  body.home #navi .navi-in > ul > li > a:not(:hover) {
    color: #f3f8fc !important;
    text-shadow: 0 1px 7px rgba(0, 7, 20, 0.76) !important;
  }

  body.home #navi .navi-in > ul > li + li {
    border-left-color: rgba(159, 207, 237, 0.2);
  }

  body.home #navi .navi-in > ul > li.current-menu-item > a {
    color: #ffffff !important;
    background: linear-gradient(180deg, rgba(37, 129, 213, 0.1), rgba(37, 129, 213, 0.26)) !important;
    box-shadow: inset 0 -2px 0 #45b9ff !important;
  }
}

@media screen and (max-width: 600px) {
  body.home #header-container {
    background-position: right center !important;
  }

  body.home #header-in {
    width: calc(100% - 24px);
  }

  body.home #navi .menu-mobile {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.home #navi .navi-in > ul > li:nth-child(odd) {
    border-left: 0;
  }

  body.home #navi .navi-in > ul > li:nth-child(3n + 2),
  body.home #navi .navi-in > ul > li:nth-child(3n + 3) {
    border-left: 1px solid rgba(159, 207, 237, 0.2);
  }
}

/*
 * TOP final polish: selected X visual, reference-led operator card, and footer rhythm.
 * Scope: homepage only. The supplied X artwork remains unmodified and fully visible.
 */

body.home .bousai-home-x-card,
body.home .bousai-home-x-card * {
  box-sizing: border-box;
}

body.home .bousai-home-x-card {
  position: relative;
  isolation: isolate;
  display: block;
  overflow: hidden;
  min-width: 0;
  border: 1px solid rgba(17, 72, 111, 0.12);
  border-radius: 14px;
  background: #eef4f8;
  box-shadow: 0 8px 20px rgba(11, 58, 103, 0.09);
}

body.home .bousai-home-x-card::before {
  position: absolute;
  z-index: 0;
  inset: -14px;
  background: url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousai-x-card-final-1320x1000-1.png") center / cover no-repeat;
  content: "";
  filter: blur(11px);
  opacity: 0.16;
  transform: scale(1.08);
}

body.home .bousai-home-x-card img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: center;
}

body.home .bousai-home-operator-image-card,
body.home .bousai-home-operator-image-card * {
  box-sizing: border-box;
}

body.home .bousai-home-operator-image-card {
  position: relative;
  isolation: isolate;
  display: block;
  overflow: hidden;
  width: 100%;
  max-width: none !important;
  min-width: 0;
  margin: 0;
  grid-column: 1 / -1;
  grid-row: 3;
  justify-self: stretch;
  line-height: 0;
}

body.home .bousai-home-operator-image-card > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  object-fit: contain;
}

body.home .bousai-home-operator-image-card__about-hotspot {
  position: absolute;
  z-index: 2;
  top: 69%;
  left: 64.2%;
  display: block;
  width: 17.8%;
  height: 24%;
  border: 0;
  border-radius: 8px;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  cursor: pointer;
  text-decoration: none !important;
}

body.home .bousai-home-operator-image-card__about-hotspot:hover,
body.home .bousai-home-operator-image-card__about-hotspot:active {
  background: transparent !important;
  box-shadow: none !important;
  transform: none;
}

body.home .bousai-home-operator-image-card__about-hotspot:focus-visible {
  outline: 3px solid #087c92;
  outline-offset: 2px;
}

body.home .entry-content {
  margin-bottom: 0 !important;
}

body.home .article {
  margin-bottom: 0 !important;
}

body.home .content-in {
  padding-bottom: 0 !important;
}

@media screen and (min-width: 901px) {
  body.home .bousai-home-sidebar {
    height: 100%;
    align-self: stretch;
    grid-template-rows: auto minmax(0, 1fr);
  }

  body.home .bousai-home-x-card {
    height: 100%;
    min-height: 0;
  }
}

@media screen and (max-width: 900px) {
  body.home .bousai-home-sidebar {
    height: auto;
    align-self: start;
    grid-template-rows: auto;
  }

  body.home .bousai-home-x-card {
    height: auto;
    aspect-ratio: 1586 / 992;
    align-self: start;
  }

  body.home .bousai-home-operator-image-card {
    grid-column: 1;
    grid-row: auto;
  }
}

@media screen and (max-width: 600px) {
  body.home .bousai-home-operator-image-card__about-hotspot {
    top: 69%;
    left: 64.2%;
    width: 17.8%;
    height: 24%;
  }
}

  scroll-behavior: smooth;
}

body {
  color: var(--bousai-ink);
  background:
    radial-gradient(circle at 8% 8%, rgba(72, 168, 221, 0.13), transparent 28rem),
    radial-gradient(circle at 92% 36%, rgba(42, 127, 120, 0.08), transparent 26rem),
    linear-gradient(180deg, #f8fbfd 0%, #f3f7fa 48%, #eef5f8 100%);
}

a {
  transition: color var(--bousai-ease), background-color var(--bousai-ease),
    border-color var(--bousai-ease), box-shadow var(--bousai-ease),
    transform var(--bousai-ease), opacity var(--bousai-ease);
}

a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #f2bd35;
  outline-offset: 4px;
  border-radius: 6px;
}

.wrap {
  width: min(1180px, calc(100% - 40px));
}

/* Sky header: the site name remains real HTML text. */
#header {
  position: relative;
  overflow: hidden;
  background-position: center 42%;
  background-size: cover;
  isolation: isolate;
}

#header,
#header-in {
  height: 228px !important;
}

#header::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background:
    linear-gradient(180deg, rgba(5, 44, 79, 0.06) 0%, rgba(255, 255, 255, 0.04) 50%, rgba(6, 43, 77, 0.12) 100%),
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.34), transparent 38%);
  pointer-events: none;
}

#header-in {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#header-in::before {
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  width: min(790px, calc(100% - 48px));
  height: 128px;
  content: "";
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(240, 249, 254, 0.66));
  box-shadow: 0 18px 48px rgba(7, 47, 83, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(12px) saturate(112%);
  backdrop-filter: blur(12px) saturate(112%);
}

.logo-header {
  margin: 0;
}

.site-name-text {
  color: var(--bousai-navy);
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 760;
  line-height: 1.22;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 10px rgba(255, 255, 255, 0.9);
}

.tagline {
  max-width: 720px;
  margin-top: 12px;
  padding: 0 18px;
  color: #163b5c;
  font-size: 13px;
  font-weight: 620;
  line-height: 1.6;
  letter-spacing: 0.015em;
  text-align: center;
  text-shadow: 0 1px 8px rgba(255, 255, 255, 0.95);
}

/* Lighter navigation: names only, no truncated descriptions. */
#navi {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 56%, #105887);
  box-shadow: 0 8px 24px rgba(7, 47, 83, 0.14);
}

#navi .navi-in > ul {
  gap: 8px;
  padding: 7px 0;
}

#navi .sub-caption {
  display: none;
}

#navi .navi-in > ul > li > a {
  position: relative;
  min-height: 46px;
  padding: 0 22px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.025em;
}

#navi .navi-in > ul > li > a::after {
  position: absolute;
  right: 20px;
  bottom: 8px;
  left: 20px;
  height: 2px;
  content: "";
  transform: scaleX(0);
  border-radius: 999px;
  background: #86d8ef;
  transition: transform var(--bousai-ease);
}

/* Keep every item neutral until hover. The body prefix also outranks the
   older WordPress Additional CSS current-menu rule loaded later in the page. */
body #navi .navi-in > ul > li > a:not(:hover) {
  color: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.025);
}

body #navi .navi-in > ul > li > a:not(:hover)::after {
  transform: scaleX(0);
}

#navi .navi-in > ul > li > a:hover {
  color: #fff;
  border-color: rgba(134, 216, 239, 0.58);
  background: rgba(255, 255, 255, 0.12);
}

#navi .navi-in > ul > li > a:hover::after {
  transform: scaleX(1);
}

/* Reading surfaces. */
.content-in {
  padding-top: 36px;
  padding-bottom: 64px;
}

#main {
  border: 1px solid rgba(220, 232, 241, 0.92);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--bousai-shadow-sm);
}

.home #main {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.home .entry-content {
  margin-top: 0;
}

.home .entry-content > .bousai-intro,
.home .entry-content > .bousai-section,
.home .entry-content > .bousai-x-strip {
  width: min(1120px, calc(100% - 40px));
  margin-right: auto;
  margin-left: auto;
}

.home .article-header,
.home .article-footer.entry-footer {
  display: none;
}

.page:not(.home) #main,
.single #main {
  max-width: 860px;
  margin-right: auto;
  margin-left: auto;
}

.entry-content {
  line-height: 1.9;
}

.entry-content > h2:not(.has-text-align-center) {
  position: relative;
  margin-top: 2.7em;
  padding: 0 0 0.55em 20px;
  border: 0;
  background: transparent;
  color: var(--bousai-navy);
  font-weight: 750;
  letter-spacing: 0.02em;
}

.entry-content > h2:not(.has-text-align-center)::before {
  position: absolute;
  top: 0.12em;
  bottom: 0.62em;
  left: 0;
  width: 5px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bousai-sky), var(--bousai-teal));
}

.entry-content h3 {
  color: var(--bousai-navy);
}

.entry-content img {
  border-radius: var(--bousai-radius-sm);
}

.entry-content a:not(.wp-block-button__link):hover {
  color: var(--bousai-teal);
}

/* Homepage: compact brand message, then articles. */
.bousai-intro {
  position: relative;
  overflow: hidden;
  margin: 0 0 44px;
  padding: 42px clamp(30px, 5vw, 60px);
  border: 1px solid var(--bousai-border-strong);
  border-radius: 26px;
  background:
    linear-gradient(122deg, rgba(255, 255, 255, 0.98), rgba(238, 248, 253, 0.96)),
    var(--bousai-surface);
  box-shadow: var(--bousai-shadow-card);
}

.bousai-intro::after {
  position: absolute;
  top: -120px;
  right: -90px;
  width: 330px;
  height: 330px;
  content: "";
  border-radius: 50%;
  background: radial-gradient(circle, rgba(72, 168, 221, 0.2), transparent 68%);
  pointer-events: none;
}

.bousai-kicker {
  margin: 0 0 14px;
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 780;
  letter-spacing: 0.075em;
  text-transform: none;
}

.bousai-intro h1,
.bousai-intro h2 {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: clamp(32px, 3.1vw, 42px);
  font-weight: 780;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.bousai-intro h2::before {
  display: none;
}

.bousai-intro-copy {
  position: relative;
  z-index: 1;
  max-width: 720px;
  margin: 18px 0 0;
  color: #40556a;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.85;
}

.bousai-intro-actions {
  position: relative;
  z-index: 1;
  margin-top: 28px;
}

.bousai-intro .wp-block-button__link,
.bousai-primary-link {
  border: 1px solid transparent;
  border-radius: 999px;
  background: linear-gradient(110deg, var(--bousai-navy), var(--bousai-blue));
  box-shadow: 0 10px 24px rgba(18, 103, 165, 0.2);
  color: #fff;
  font-weight: 700;
}

.bousai-intro .wp-block-button__link:hover,
.bousai-primary-link:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 32px rgba(18, 103, 165, 0.28);
  color: #fff;
}

.bousai-intro .is-style-outline .wp-block-button__link {
  border-color: #b8cfdf;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: none;
  color: var(--bousai-navy);
}

.bousai-section {
  margin-top: 52px;
  margin-bottom: 52px;
}

.entry-content .bousai-section-heading {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 22px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(26px, 2.55vw, 32px) !important;
  font-weight: 760;
  letter-spacing: 0.01em;
}

.entry-content .bousai-section-heading::before {
  display: block;
  width: 34px;
  height: 4px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bousai-sky), var(--bousai-teal));
}

.bousai-section-note {
  max-width: 760px;
  margin: -10px 0 26px;
  color: var(--bousai-muted);
  font-size: 15px;
}

/* Future-ready article grid: first post becomes the feature automatically. */
.bousai-post-grid .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
}

.bousai-post-grid .wp-block-post {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: var(--bousai-surface);
  box-shadow: var(--bousai-shadow-sm);
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease), border-color var(--bousai-ease);
}

.bousai-post-grid .wp-block-post:first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.bousai-post-grid .wp-block-post:hover {
  transform: translateY(-6px);
  border-color: #b5d5e6;
  box-shadow: var(--bousai-shadow-md);
}

.bousai-post-grid .wp-block-post-featured-image {
  overflow: hidden;
  margin: 0;
}

.bousai-post-grid .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0;
  object-fit: cover;
  transition: transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bousai-post-grid .wp-block-post:hover .wp-block-post-featured-image img {
  transform: scale(1.035);
}

.bousai-post-grid .wp-block-post-title,
.bousai-post-grid .wp-block-post-excerpt,
.bousai-post-grid .wp-block-post-terms {
  margin-right: 20px;
  margin-left: 20px;
}

.bousai-post-grid .wp-block-post-title {
  margin-top: 14px;
  margin-bottom: 10px;
  font-size: 20px;
  line-height: 1.55;
}

.bousai-post-grid .wp-block-post:first-child .wp-block-post-title {
  font-size: clamp(24px, 2.4vw, 32px);
}

.bousai-post-grid .wp-block-post-title a {
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-post-grid .wp-block-post-title a:hover {
  color: var(--bousai-blue);
}

.bousai-post-grid .wp-block-post-terms {
  margin-top: 16px;
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 750;
}

.bousai-post-grid .wp-block-post-excerpt {
  margin-bottom: 20px;
  color: var(--bousai-muted);
  font-size: 14px;
  line-height: 1.75;
}

.bousai-launch-note {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr);
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background: var(--bousai-surface);
  box-shadow: var(--bousai-shadow-md);
}

.bousai-launch-note figure {
  min-height: 330px;
  margin: 0;
  overflow: hidden;
}

.bousai-launch-note img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  border-radius: 0;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bousai-launch-note:hover img {
  transform: scale(1.025);
}

.bousai-launch-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(30px, 4.5vw, 58px);
}

.bousai-launch-copy h3 {
  margin: 0 0 16px;
  font-size: clamp(23px, 2.5vw, 30px);
  line-height: 1.5;
}

.bousai-launch-copy p {
  margin: 0;
  color: var(--bousai-muted);
}

.bousai-image-note {
  display: block;
  margin-top: 16px;
  color: #718091;
  font-size: 11px;
  line-height: 1.6;
}

/* Theme gateways remain subordinate to articles. */
.bousai-theme-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
}

.bousai-theme-link {
  position: relative;
  display: flex;
  min-height: 164px;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px;
  border: 1px solid var(--bousai-border-strong);
  border-top: 3px solid rgba(42, 127, 120, 0.72);
  border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 252, 0.94));
  box-shadow: var(--bousai-shadow-card);
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-theme-link::after {
  display: grid;
  width: 34px;
  height: 34px;
  align-self: flex-end;
  content: "→";
  color: var(--bousai-blue);
  place-items: center;
  border: 1px solid #c8deea;
  border-radius: 50%;
  background: #fff;
  font-size: 18px;
  transition: transform var(--bousai-ease);
}

.bousai-theme-link:hover {
  transform: translateY(-5px);
  border-color: #abd2e5;
  background: linear-gradient(145deg, #fff, #eaf7fb);
  box-shadow: var(--bousai-shadow-md);
  color: var(--bousai-navy);
}

.bousai-theme-link:hover::after {
  transform: translateX(5px);
}

.bousai-theme-link strong {
  font-size: 18px;
  line-height: 1.45;
}

.bousai-theme-label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 12px;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(18, 103, 165, 0.09);
  color: var(--bousai-blue);
  font-size: 11px;
  font-weight: 780;
  letter-spacing: 0.045em;
}

.bousai-theme-link small {
  margin-top: 8px;
  color: var(--bousai-muted);
  font-size: 13px;
  line-height: 1.65;
}

/* Preparedness knowledge hub: intuitive before / during / after path. */
.bousai-knowledge-hero {
  margin: 0 0 46px;
  padding: clamp(30px, 5vw, 58px);
  border: 1px solid rgba(181, 214, 232, 0.82);
  border-radius: var(--bousai-radius-lg);
  background:
    radial-gradient(circle at 92% 8%, rgba(72, 168, 221, 0.18), transparent 30%),
    linear-gradient(135deg, #fff, #eef8fc);
  box-shadow: var(--bousai-shadow-md);
}

.entry-content .bousai-knowledge-hero h2 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(30px, 4vw, 44px) !important;
  line-height: 1.35;
}

.entry-content .bousai-knowledge-hero h2::before {
  display: none;
}

.bousai-knowledge-lead {
  max-width: 760px;
  margin: 18px 0 0;
  color: #40556a;
  font-size: 17px;
  line-height: 1.9;
}

.bousai-stage-timeline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  margin-top: 34px;
}

.bousai-stage-card {
  display: flex;
  min-height: 178px;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 8px 22px rgba(11, 58, 103, 0.06);
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

.bousai-stage-card:hover {
  transform: translateY(-5px);
  border-color: #9ccde3;
  box-shadow: var(--bousai-shadow-md);
  color: var(--bousai-navy);
}

.bousai-stage-number {
  color: var(--bousai-teal);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.14em;
}

.bousai-stage-card strong {
  display: block;
  margin: 12px 0 8px;
  font-size: 23px;
}

.bousai-stage-card small {
  color: var(--bousai-muted);
  font-size: 13px;
  line-height: 1.65;
}

.bousai-stage-arrow {
  display: grid;
  color: var(--bousai-blue);
  font-size: 28px;
  font-weight: 800;
  place-items: center;
}

.bousai-foundation-panel,
.bousai-stage-detail {
  scroll-margin-top: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-foundation-panel {
  margin: 46px 0;
  padding: clamp(28px, 4vw, 44px);
  border-left: 6px solid var(--bousai-teal);
}

.bousai-foundation-panel h2,
.bousai-stage-detail h2 {
  margin-top: 0 !important;
}

.bousai-topic-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.bousai-topic-chips li {
  padding: 8px 13px;
  border: 1px solid #cfe2ec;
  border-radius: 999px;
  background: #f5fafc;
  color: #3c5369;
  font-size: 13px;
}

.bousai-stage-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
}

.bousai-stage-detail {
  padding: 28px 24px;
}

.bousai-stage-detail ul {
  margin-bottom: 0;
}

.bousai-empty-note {
  margin: 22px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--bousai-border);
  color: var(--bousai-muted);
  font-size: 13px;
}

.bousai-promises {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  counter-reset: promise;
  list-style: none;
}

.bousai-promises li {
  position: relative;
  padding: 28px 24px 26px 64px;
  border: 1px solid var(--bousai-border-strong);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--bousai-shadow-card);
  color: #3d5165;
  counter-increment: promise;
}

.bousai-promises li::before {
  position: absolute;
  top: 26px;
  left: 22px;
  display: grid;
  width: 28px;
  height: 28px;
  content: counter(promise);
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bousai-blue), var(--bousai-teal));
  color: #fff;
  font-size: 13px;
  font-weight: 800;
}

.bousai-profile {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 4vw, 50px);
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(240, 248, 252, 0.94));
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-profile img {
  width: 160px;
  height: 160px;
  border: 5px solid #fff;
  border-radius: 50%;
  box-shadow: 0 16px 34px rgba(11, 58, 103, 0.18);
  object-fit: cover;
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease);
}

.bousai-profile:hover img {
  transform: translateY(-4px) rotate(-1deg);
  box-shadow: 0 22px 42px rgba(11, 58, 103, 0.24);
}

.bousai-profile h3 {
  margin: 0 0 12px;
  font-size: 26px;
}

.bousai-profile p {
  margin: 0;
  color: #40556a;
}

.bousai-text-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  color: var(--bousai-blue);
  font-weight: 750;
  text-decoration: none;
}

.bousai-text-link:hover {
  gap: 10px;
  color: var(--bousai-teal);
}

.bousai-x-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 30px;
  border-radius: var(--bousai-radius-md);
  background: linear-gradient(112deg, var(--bousai-navy-deep), var(--bousai-navy));
  box-shadow: var(--bousai-shadow-sm);
  color: #fff;
}

.bousai-x-strip p {
  margin: 0;
  color: rgba(255, 255, 255, 0.84);
}

.bousai-x-strip a {
  flex: 0 0 auto;
  padding: 11px 19px;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 999px;
  color: #fff;
  font-weight: 750;
  text-decoration: none;
}

.bousai-x-strip a:hover {
  transform: translateY(-2px);
  border-color: #fff;
  background: #fff;
  color: var(--bousai-navy);
}

/* Provisional daily disaster calendar. */
.bousai-daily-teaser {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
  padding: clamp(28px, 4vw, 42px);
  border: 1px solid #c8dfed;
  border-radius: var(--bousai-radius-md);
  background:
    radial-gradient(circle at 92% 18%, rgba(72, 168, 221, 0.18), transparent 16rem),
    linear-gradient(135deg, #f7fbfe, #eef7fb);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-daily-teaser .bousai-section-heading {
  margin-bottom: 14px;
}

.bousai-daily-teaser p:last-child {
  max-width: 680px;
  margin-bottom: 0;
  color: #40556a;
}

.bousai-daily-teaser-link {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
  padding: 13px 20px;
  border-radius: 999px;
  background: var(--bousai-navy);
  color: #fff;
  font-weight: 750;
  text-decoration: none;
}

.bousai-daily-teaser-link:hover {
  gap: 13px;
  transform: translateY(-2px);
  background: var(--bousai-navy-deep);
  color: #fff;
}

.bousai-note-hero,
.bousai-note-section,
.bousai-note-method {
  margin: 0 0 42px;
}

.bousai-note-hero {
  padding: clamp(28px, 5vw, 50px);
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-lg);
  background:
    radial-gradient(circle at 92% 12%, rgba(72, 168, 221, 0.17), transparent 18rem),
    linear-gradient(135deg, #fff, #f2f9fc);
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-note-hero h2 {
  margin: 4px 0 16px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(28px, 4.5vw, 42px);
  line-height: 1.38;
}

.bousai-note-hero h2::before,
.bousai-note-heading-row h2::before,
.bousai-note-method h2::before,
.bousai-damage-card h3::before {
  display: none !important;
}

.bousai-note-hero > p:not(.bousai-kicker):not(.bousai-note-caution) {
  max-width: 720px;
  color: #40556a;
  font-size: 16px;
}

.bousai-note-caution {
  margin: 22px 0 0;
  padding: 16px 18px;
  border-left: 5px solid #d18b00;
  border-radius: 0 12px 12px 0;
  background: #fff8e8;
  color: #533a0e;
}

.bousai-note-heading-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}

.bousai-note-heading-row h2,
.bousai-note-method h2 {
  margin: 4px 0 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(25px, 3.2vw, 34px);
}

.bousai-note-checked {
  max-width: 300px;
  margin: 0;
  color: var(--bousai-muted);
  font-size: 13px;
  text-align: right;
}

.bousai-damage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.bousai-damage-card {
  padding: 24px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-damage-card-severe {
  border-top: 5px solid #9d2f35;
}

.bousai-damage-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.bousai-status-chip {
  display: inline-flex;
  padding: 5px 10px;
  border-radius: 999px;
  background: #eaf5fa;
  color: var(--bousai-navy);
  font-size: 12px;
  font-weight: 800;
}

.bousai-source-label {
  color: var(--bousai-muted);
  font-size: 12px;
  font-weight: 700;
}

.bousai-damage-card h3 {
  margin: 18px 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: 22px;
}

.bousai-damage-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}

.bousai-damage-stats-four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bousai-damage-stats div {
  padding: 13px;
  border-radius: 12px;
  background: var(--bousai-surface-soft);
}

.bousai-damage-stats dt {
  color: var(--bousai-muted);
  font-size: 12px;
  font-weight: 700;
}

.bousai-damage-stats dd {
  margin: 4px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.35;
}

.bousai-damage-stats small {
  display: block;
  margin-top: 3px;
  color: #52677a;
  font-size: 11px;
  font-weight: 600;
}

.bousai-damage-card > p {
  color: #40556a;
  font-size: 14px;
}

.bousai-source-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--bousai-blue);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.bousai-source-link:hover {
  color: var(--bousai-teal);
}

.bousai-archive-search {
  border: 1px solid #c9dce7;
  background: linear-gradient(145deg, #f8fbfd 0%, #edf6fa 100%);
}

.bousai-archive-search-form {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(2, minmax(150px, 1fr)) auto;
  align-items: end;
  gap: 12px;
}

.bousai-archive-search-form label {
  display: grid;
  gap: 7px;
  margin: 0;
  color: var(--bousai-navy-deep);
  font-size: 12px;
  font-weight: 800;
}

.bousai-archive-search-form input,
.bousai-archive-search-form select,
.bousai-archive-search-form button {
  min-height: 48px;
  margin: 0;
  border-radius: 10px;
  font: inherit;
}

.bousai-archive-search-form input,
.bousai-archive-search-form select {
  width: 100%;
  border: 1px solid #a9becb;
  background: #fff;
  color: var(--bousai-ink);
}

.bousai-archive-search-form input {
  padding: 0 14px;
}

.bousai-archive-search-form select {
  padding: 0 34px 0 12px;
}

.bousai-archive-search-form button {
  padding: 0 17px;
  border: 1px solid var(--bousai-navy);
  background: var(--bousai-navy);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.bousai-archive-search-form input:focus-visible,
.bousai-archive-search-form select:focus-visible,
.bousai-archive-search-form button:focus-visible,
.bousai-search-results a:focus-visible,
.bousai-history-links a:focus-visible,
.bousai-history-chart:focus-visible {
  outline: 3px solid #68b8d7;
  outline-offset: 3px;
}

.bousai-search-help,
.bousai-search-noscript {
  margin: 12px 0 0;
  color: #52677a;
  font-size: 12px;
}

.bousai-search-count {
  margin: 18px 0 9px;
  color: var(--bousai-muted);
  font-size: 13px;
}

.bousai-search-count strong {
  margin-right: 4px;
  color: var(--bousai-navy-deep);
  font-size: 18px;
}

.bousai-search-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-search-results li {
  min-width: 0;
}

.bousai-search-results a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 12px;
  height: 100%;
  padding: 13px 14px;
  border: 1px solid #d2e0e8;
  border-radius: 11px;
  background: #fff;
  color: var(--bousai-ink);
  text-decoration: none;
}

.bousai-search-results a:hover {
  border-color: #74aac7;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-search-results strong {
  min-width: 0;
  overflow: hidden;
  color: var(--bousai-navy-deep);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bousai-search-results a > span:not(.bousai-search-result-status) {
  grid-column: 1;
  color: var(--bousai-muted);
  font-size: 11px;
}

.bousai-search-result-status {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  padding: 5px 8px;
  border-radius: 999px;
  background: #e8f2f7;
  color: #28556e;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.bousai-search-results .is-empty {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed #b7cbd6;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.65);
  color: var(--bousai-muted);
  text-align: center;
}

.bousai-calendar-archive-nav {
  margin-bottom: 18px;
  padding: 16px;
  border: 1px solid var(--bousai-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-calendar-year-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  margin-bottom: 14px;
}

.bousai-calendar-year-row a {
  color: var(--bousai-blue);
  font-size: 13px;
  font-weight: 750;
}

.bousai-calendar-year-row strong {
  color: var(--bousai-navy-deep);
  font-size: 24px;
}

.bousai-calendar-nav-note {
  color: var(--bousai-muted);
  font-size: 12px;
  text-align: right;
}

.bousai-calendar-months {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-calendar-months span,
.bousai-calendar-months strong {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  font-size: 12px;
}

.bousai-calendar-months span {
  background: #f3f6f8;
  color: #82909d;
}

.bousai-calendar-months strong {
  background: var(--bousai-navy);
  color: #fff;
}

.bousai-calendar-swipe-note {
  display: none;
  margin: 0 0 10px;
  color: var(--bousai-muted);
  font-size: 12px;
}

.bousai-month-calendar-scroll {
  max-width: 100%;
  overflow-x: auto;
  padding: 1px 1px 12px;
  border-radius: 14px;
  overscroll-behavior-inline: contain;
  scrollbar-color: #86b7d2 #edf4f7;
}

.bousai-month-calendar-scroll:focus-visible {
  outline: 3px solid #68b8d7;
  outline-offset: 4px;
}

.bousai-month-calendar-shell {
  width: 100%;
  min-width: 0;
}

.bousai-month-weekdays,
.bousai-month-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.bousai-month-weekdays span {
  padding: 10px;
  border: 1px solid #d7e4eb;
  background: #f6f8f9;
  color: var(--bousai-navy-deep);
  font-weight: 800;
  text-align: center;
}

.bousai-month-weekdays .is-sunday {
  background: #fff0f0;
  color: #a42f38;
}

.bousai-month-weekdays .is-saturday {
  background: #edf6ff;
  color: #175c9a;
}

.bousai-month-calendar {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bousai-month-calendar li {
  min-width: 0;
  min-height: 226px;
  border: 1px solid #d7e4eb;
  background: #fff;
}

.bousai-month-calendar .is-empty {
  background: #f6f8f9;
}

.bousai-month-calendar a,
.bousai-month-calendar li > div {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 9px;
}

.bousai-month-calendar a {
  color: var(--bousai-ink);
  text-decoration: none;
}

.bousai-month-calendar a:hover {
  position: relative;
  z-index: 1;
  background: #f1f8fc;
  box-shadow: inset 0 0 0 2px #7eb8d7;
}

.bousai-month-calendar strong {
  margin-bottom: 7px;
  color: var(--bousai-navy-deep);
  font-size: 19px;
}

.bousai-month-calendar .is-sunday strong {
  color: #a42f38;
}

.bousai-month-calendar .is-saturday strong {
  color: #175c9a;
}

.bousai-month-calendar img,
.bousai-chart-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 600 / 581;
  border-radius: 8px;
}

.bousai-month-calendar img {
  border: 1px solid #d3e0e7;
  background: #eaf2f6;
  object-fit: cover;
}

.bousai-month-calendar a > span:last-child {
  margin-top: 8px;
  color: #314b62;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}

.bousai-chart-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px dashed #bdcdd6;
  background: linear-gradient(145deg, #f7fafb, #eaf1f4);
  color: #617686;
}

.bousai-month-calendar .bousai-chart-placeholder span,
.bousai-month-calendar .bousai-chart-placeholder small {
  margin: 0;
  color: inherit;
}

.bousai-month-calendar .bousai-chart-placeholder small {
  margin-top: 4px;
  font-size: 10px;
}

.bousai-month-calendar .has-event {
  background: #fffdf2;
}

.bousai-month-calendar .is-current {
  box-shadow: inset 0 0 0 3px var(--bousai-blue);
}

.bousai-month-calendar .is-current strong::after {
  content: " 今日";
  color: var(--bousai-blue);
  font-size: 10px;
}

.bousai-month-calendar .is-future {
  background: #f8fafb;
}

.bousai-calendar-source {
  margin: 12px 0 0;
  color: var(--bousai-muted);
  font-size: 12px;
}

.bousai-history-intro {
  max-width: 900px;
  color: #40556a;
}

.bousai-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.bousai-history-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 16px;
  border: 1px solid var(--bousai-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--bousai-shadow-sm);
}

.bousai-history-date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.bousai-history-date time {
  color: var(--bousai-navy-deep);
  font-size: 15px;
  font-weight: 850;
  letter-spacing: 0.03em;
}

.bousai-history-date span {
  color: var(--bousai-muted);
  font-size: 10px;
  font-weight: 700;
  text-align: right;
}

.bousai-history-chart,
.bousai-history-placeholder {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  border: 1px solid #d2e0e8;
  border-radius: 11px;
  background: #eaf2f6;
  aspect-ratio: 4 / 3;
}

.bousai-history-chart img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bousai-history-chart > span {
  position: absolute;
  right: 8px;
  bottom: 8px;
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(4, 37, 67, 0.88);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.bousai-history-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  border-style: dashed;
  background: linear-gradient(145deg, #f7fafb, #e6eef2);
  color: #617686;
}

.bousai-history-placeholder strong {
  color: var(--bousai-navy-deep);
  font-size: 20px;
}

.bousai-history-placeholder span {
  font-size: 11px;
}

.bousai-history-card h3 {
  margin: 15px 0 8px;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: 20px;
}

.bousai-history-card > p {
  flex: 1;
  margin: 0 0 14px;
  color: #40556a;
  font-size: 13px;
}

.bousai-history-links {
  display: grid;
  gap: 7px;
}

.bousai-history-links a {
  color: var(--bousai-blue);
  font-size: 12px;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.bousai-note-method {
  padding: 25px 28px;
  border: 1px solid var(--bousai-border);
  border-radius: var(--bousai-radius-md);
  background: var(--bousai-surface-soft);
}

.bousai-note-method ul {
  margin: 16px 0 18px;
}

.bousai-note-method li + li {
  margin-top: 7px;
}

/* Daily weather archive: use the editorial canvas efficiently without
   changing the width of other fixed pages. */
body.page.page-id-57 #main {
  width: 100%;
  max-width: 1180px;
}

/* About page: reduce unused side space while keeping a readable measure. */
body.page.page-id-14 #main {
  width: min(1240px, calc(100% - 48px));
  max-width: none;
  padding-top: 18px;
  padding-right: clamp(30px, 4vw, 48px);
  padding-bottom: 22px;
  padding-left: clamp(30px, 4vw, 48px);
}

body.page.page-id-14 .content-in {
  width: 100%;
  max-width: none;
  padding-top: 16px;
  padding-bottom: 30px;
}

.page-id-14 .entry-content {
  line-height: 1.82;
}

.page-id-57 .entry-content {
  line-height: 1.78;
}

.page-id-57 .bousai-note-hero,
.page-id-57 .bousai-note-section,
.page-id-57 .bousai-note-method {
  margin-bottom: 30px;
}

.page-id-57 .bousai-note-hero {
  padding: clamp(24px, 3.3vw, 38px);
}

.page-id-57 .bousai-note-hero h2 {
  margin-bottom: 12px;
  font-size: clamp(28px, 3.3vw, 40px);
  line-height: 1.32;
}

.page-id-57 .bousai-note-hero > p:not(.bousai-kicker):not(.bousai-note-caution) {
  max-width: 980px;
}

.page-id-57 .bousai-note-caution {
  margin-top: 18px;
  padding: 14px 16px;
}

.page-id-57 .bousai-note-heading-row {
  margin-bottom: 16px;
}

.page-id-57 .bousai-damage-grid {
  gap: 16px;
}

.page-id-57 .bousai-damage-card {
  padding: 20px;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 14px;
  padding: 14px;
}

.page-id-57 .bousai-month-calendar .is-future,
.page-id-57 .bousai-month-calendar .is-empty {
  min-height: 92px;
}

.page-id-57 .bousai-history-grid {
  gap: 14px;
  margin-top: 16px;
}

.page-id-57 .bousai-history-card {
  padding: 14px;
}

.page-id-57 .bousai-note-method {
  padding: 22px 24px;
}

.page-id-57 .bousai-note-method ul {
  margin: 12px 0 14px;
}

@media screen and (min-width: 1024px) {
  .page-id-57 .bousai-search-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Keep the monthly calendar first and fully visible in one normal PC viewport.
   Weather charts remain small supporting thumbnails; the dated record is primary. */
@media screen and (min-width: 835px) {
  .page-id-57 .bousai-calendar-priority {
    margin-bottom: 24px;
  }

  .page-id-57 .bousai-calendar-priority .bousai-note-heading-row {
    margin-bottom: 7px;
  }

  .page-id-57 .bousai-calendar-priority .bousai-kicker {
    margin-bottom: 1px;
  }

  .page-id-57 .bousai-calendar-priority h2 {
    margin: 0;
    font-size: 26px;
    line-height: 1.2;
  }

  .page-id-57 .bousai-calendar-priority .bousai-note-checked {
    max-width: 430px;
    font-size: 11px;
    line-height: 1.35;
  }

  .page-id-57 .bousai-calendar-archive-nav {
    margin-bottom: 6px;
    padding: 7px 10px;
    border-radius: 12px;
  }

  .page-id-57 .bousai-calendar-year-row {
    gap: 8px;
    margin-bottom: 5px;
  }

  .page-id-57 .bousai-calendar-year-row a,
  .page-id-57 .bousai-calendar-nav-note {
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-year-row strong {
    font-size: 18px;
  }

  .page-id-57 .bousai-calendar-months {
    gap: 3px;
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 22px;
    border-radius: 6px;
    font-size: 10px;
  }

  .page-id-57 .bousai-month-calendar-scroll {
    overflow-y: hidden;
    padding-bottom: 4px;
  }

  .page-id-57 .bousai-month-weekdays span {
    padding: 4px;
    font-size: 12px;
    line-height: 1.2;
  }

  .page-id-57 .bousai-month-calendar li,
  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    height: 68px;
    min-height: 68px;
  }

  .page-id-57 .bousai-month-calendar a,
  .page-id-57 .bousai-month-calendar li > div {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    gap: 4px;
    padding: 4px;
  }

  .page-id-57 .bousai-month-calendar strong {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    margin: 0;
    font-size: 15px;
    line-height: 1.1;
  }

  .page-id-57 .bousai-month-calendar img,
  .page-id-57 .bousai-chart-placeholder {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 58px;
    aspect-ratio: auto;
    border-radius: 4px;
    object-fit: cover;
  }

  .page-id-57 .bousai-month-calendar a > span:last-child {
    z-index: 1;
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    margin: 0;
    padding: 2px 3px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.92);
    font-size: 8.5px;
    line-height: 1.15;
  }

  .page-id-57 .bousai-month-calendar .bousai-chart-placeholder span {
    font-size: 9px;
  }

  .page-id-57 .bousai-month-calendar .bousai-chart-placeholder small {
    margin-top: 1px;
    font-size: 8px;
  }

  .page-id-57 .bousai-calendar-source {
    margin-top: 5px;
    font-size: 10.5px;
    line-height: 1.35;
  }
}

/* 2026-08-18 production information architecture for the Bousai Weather
   Calendar. This final override keeps the calendar dominant, removes the
   experimental radar motif, and introduces event-based recent topics. */
.page-id-57 .entry-content {
  overflow-x: clip;
}

.page-id-57 .bousai-calendar-brand {
  min-height: 104px;
  gap: 18px;
  margin: 0 0 8px;
  padding: 14px 22px;
  border-color: #d7e6ef;
  border-radius: 16px 16px 8px 8px;
  background-color: #fbfdff;
  background-image:
    linear-gradient(rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(112deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 251, 254, 0.96) 64%, rgba(235, 247, 252, 0.9) 100%);
  background-size: 24px 24px, 24px 24px, 100% 100%;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.07);
}

.page-id-57 .bousai-calendar-brand::before {
  inset: 0;
  width: auto;
  height: auto;
  opacity: 0.28;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160'%3E%3Cg fill='none' stroke='%23228da0' stroke-width='1.2' opacity='.46'%3E%3Cpath d='M600 28c95-39 175 36 270 3s174-17 262 27'/%3E%3Cpath d='M565 62c98-35 180 39 278 7s183-13 279 33'/%3E%3Cpath d='M535 98c106-31 186 40 291 13s188-7 292 43'/%3E%3C/g%3E%3Cg fill='%2315909b' opacity='.48'%3E%3Ccircle cx='846' cy='69' r='2.5'/%3E%3Ccircle cx='915' cy='47' r='2.5'/%3E%3Ccircle cx='983' cy='55' r='2.5'/%3E%3C/g%3E%3Cg fill='%2352abc6' opacity='.16'%3E%3Cpath d='M1015 118c17-19 37-21 53-5 23-31 65-18 67 13h-120c-8-1-8-7 0-8Z'/%3E%3Cpath d='M925 132c11-14 28-15 40-3 17-23 48-13 50 11h-90c-6-1-6-6 0-8Z'/%3E%3C/g%3E%3C/svg%3E") right center / auto 100% no-repeat;
  transform: none;
}

.page-id-57 .bousai-calendar-brand::after {
  top: 16px;
  right: 18px;
  bottom: auto;
  width: 142px;
  height: 20px;
  border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 142 20'%3E%3Cpath d='M2 10h138' stroke='%231b95a1' stroke-width='1' opacity='.28'/%3E%3Cg fill='%231b95a1' opacity='.45'%3E%3Ccircle cx='22' cy='10' r='2'/%3E%3Ccircle cx='70' cy='10' r='2'/%3E%3Ccircle cx='118' cy='10' r='2'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  filter: none;
}

.page-id-57 .bousai-calendar-brand-icon {
  width: 68px;
  height: 68px;
  border-radius: 17px;
  box-shadow: 0 9px 20px rgba(10, 61, 105, 0.14), inset 0 0 0 1px rgba(83, 165, 200, 0.18);
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: baseline;
  gap: 3px 18px;
  padding-left: 18px;
}

.page-id-57 .bousai-calendar-brand-copy::before {
  width: 3px;
  background: #15979b;
}

.page-id-57 .bousai-calendar-brand h1 {
  grid-column: 1;
  font-size: clamp(27px, 3vw, 36px);
  line-height: 1.12;
  letter-spacing: 0.018em;
}

.page-id-57 .bousai-calendar-brand p,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  display: block;
  margin: 0;
  white-space: normal;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  grid-column: 2;
  color: #148d94;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0.06em;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  grid-column: 1 / -1;
  color: #4b667a;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}

.page-id-57 .bousai-calendar-brand p span {
  display: none;
}

.page-id-57 .bousai-calendar-priority {
  margin-bottom: 18px;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 5px;
  padding: 8px 10px 9px;
  border-radius: 13px;
  box-shadow: 0 5px 17px rgba(12, 63, 103, 0.06);
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(280px, 1.15fr) auto auto;
  gap: 11px;
  margin-bottom: 7px;
  padding: 2px 4px 8px;
}

.page-id-57 .bousai-calendar-current-month {
  grid-template-columns: 38px auto minmax(130px, 1fr);
  gap: 8px;
}

.page-id-57 .bousai-calendar-current-icon {
  width: 34px;
  height: 34px;
}

.page-id-57 .bousai-calendar-current-icon svg {
  width: 20px;
  height: 20px;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 10px !important;
  font-size: clamp(25px, 2.6vw, 33px);
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 36px;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-control-panel button {
  min-width: 92px;
  padding: 6px 10px;
}

.page-id-57 .bousai-calendar-control-panel select {
  min-width: 102px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 12px;
}

.page-id-57 .bousai-calendar-months {
  gap: 5px;
}

.page-id-57 .bousai-calendar-months button,
.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 32px;
}

.page-id-57 .bousai-calendar-months button {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  border: 1px solid #d9e5ec;
  border-radius: 10px;
  background: #fff;
  color: #708396;
  font-size: 12px;
  font-weight: 600;
  opacity: 1;
}

.page-id-57 .bousai-calendar-swipe-note {
  margin: 3px 0 5px;
}

.page-id-57 .bousai-calendar-source {
  margin: 7px 0 0;
  color: #587084;
  font-size: 11.5px;
  line-height: 1.5;
}

.page-id-57 .bousai-calendar-today-label {
  display: inline-flex;
  margin: 2px 0 0 3px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #e4f7f7;
  color: #087e88;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.5;
}

.page-id-57 .bousai-recent-topics,
.page-id-57 .bousai-archive-search,
.page-id-57 .bousai-calendar-about,
.page-id-57 .bousai-note-method {
  padding: clamp(20px, 2.7vw, 30px);
  border: 1px solid #d7e6ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.055);
}

.page-id-57 .bousai-recent-topics-intro {
  margin: -4px 0 18px;
  color: #4e687b;
}

.page-id-57 .bousai-topic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.page-id-57 .bousai-topic-card {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid #cfe1eb;
  border-top: 4px solid #15979b;
  border-radius: 15px;
  background: linear-gradient(180deg, #fbfeff, #fff 30%);
}

.page-id-57 .bousai-topic-card.is-severe {
  border-top-color: #0b4f82;
}

.page-id-57 .bousai-topic-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}

.page-id-57 .bousai-topic-meta span {
  padding: 4px 8px;
  border: 1px solid #d7e6ef;
  border-radius: 999px;
  background: #f5fafc;
  color: #4f6b7f;
  font-size: 10.5px;
  font-weight: 720;
}

.page-id-57 .bousai-topic-card h3 {
  margin: 0 0 8px;
  color: var(--bousai-navy-deep);
  font-size: clamp(20px, 2.1vw, 25px);
  line-height: 1.3;
}

.page-id-57 .bousai-topic-summary {
  margin: 0 0 13px;
  color: #3f596c;
  font-size: 13px;
  line-height: 1.72;
}

.page-id-57 .bousai-topic-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0 0 14px;
}

.page-id-57 .bousai-topic-card:not(.is-severe) .bousai-topic-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-id-57 .bousai-topic-stats div {
  padding: 8px 6px;
  border: 1px solid #dbe8ef;
  border-radius: 10px;
  background: #f7fbfd;
  text-align: center;
}

.page-id-57 .bousai-topic-stats dt {
  color: #60798b;
  font-size: 10px;
  font-weight: 700;
}

.page-id-57 .bousai-topic-stats dd {
  margin: 2px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 16px;
  font-weight: 820;
  line-height: 1.25;
}

.page-id-57 .bousai-topic-timeline {
  position: relative;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.page-id-57 .bousai-topic-timeline::before {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 48px;
  width: 1px;
  background: #b8d9e2;
  content: "";
}

.page-id-57 .bousai-topic-timeline li {
  position: relative;
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 16px;
  align-items: start;
  padding: 5px 0;
  color: #405b6e;
  font-size: 11.5px;
  line-height: 1.55;
}

.page-id-57 .bousai-topic-timeline li::before {
  position: absolute;
  top: 12px;
  left: 45px;
  width: 7px;
  height: 7px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #15979b;
  box-shadow: 0 0 0 1px #89cbd1;
  content: "";
}

.page-id-57 .bousai-topic-timeline time {
  color: #0a5878;
  font-size: 10.5px;
  font-weight: 800;
  white-space: nowrap;
}

.page-id-57 .bousai-topic-links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.page-id-57 .bousai-topic-links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 9px;
  border: 1px solid #add5de;
  border-radius: 8px;
  background: #f6fbfc;
  color: #087b87;
  font-size: 10.5px;
  font-weight: 760;
  text-decoration: none;
}

.page-id-57 .bousai-topic-links a:hover {
  border-color: #15979b;
  background: #eaf8f8;
}

.page-id-57 .bousai-topic-data-note {
  margin: 11px 0 0;
  color: #6b7f8e;
  font-size: 10.5px;
  line-height: 1.55;
}

.page-id-57 .bousai-calendar-about h2,
.page-id-57 .bousai-note-method h2 {
  margin-bottom: 12px;
}

.page-id-57 .bousai-calendar-about p:not(.bousai-kicker) {
  margin: 8px 0 0;
  color: #435e71;
}

.page-id-57 .bousai-safety-note {
  margin: 16px 0;
  padding: 14px 16px;
  border-left: 4px solid #15979b;
  border-radius: 8px;
  background: #edf8fa;
  color: #173f5b;
  font-weight: 680;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 760px) {
  .page-id-57 .bousai-topic-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    min-height: 0;
    gap: 10px;
    margin-bottom: 7px;
    padding: 12px;
    border-radius: 13px 13px 7px 7px;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: 0;
    opacity: 0.19;
  }

  .page-id-57 .bousai-calendar-brand::after {
    display: none;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 50px;
    height: 50px;
    border-radius: 13px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6.1vw, 24px);
    white-space: normal;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 3px;
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 7px;
    font-size: 10.5px;
    line-height: 1.5;
  }

  .page-id-57 .bousai-calendar-control-panel {
    gap: 7px;
    padding-bottom: 8px;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-template-columns: 35px auto 1fr;
  }

  .page-id-57 .bousai-calendar-current-icon {
    width: 33px;
    height: 33px;
  }

  .page-id-57 .bousai-calendar-current-month h2 {
    font-size: 23px;
  }

  .page-id-57 .bousai-calendar-year-controls {
    padding-top: 7px;
  }

  .page-id-57 .bousai-calendar-months {
    display: flex;
    grid-template-columns: none;
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 6px;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .page-id-57 .bousai-calendar-months li {
    flex: 0 0 62px;
    scroll-snap-align: start;
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 34px;
  }

  .page-id-57 .bousai-recent-topics,
  .page-id-57 .bousai-archive-search,
  .page-id-57 .bousai-calendar-about,
  .page-id-57 .bousai-note-method {
    padding: 18px 15px;
    border-radius: 14px;
  }

  .page-id-57 .bousai-topic-card {
    padding: 16px;
  }

  .page-id-57 .bousai-topic-stats,
  .page-id-57 .bousai-topic-card:not(.is-severe) .bousai-topic-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-57 .bousai-topic-links a {
    flex: 1 1 calc(50% - 7px);
    justify-content: center;
  }
}

@media screen and (min-width: 835px) {
  body.page-id-57 #content {
    margin-top: 8px;
  }

  body.page-id-57 .content-in {
    padding-top: 8px;
  }

  body.page.page-id-57 #main {
    padding-top: 16px;
  }

  body.page-id-57 .entry-content {
    margin-top: 0;
  }
}

/* Article and fixed-page details. */
.article-header .entry-title {
  color: var(--bousai-navy-deep);
  line-height: 1.45;
  letter-spacing: 0.015em;
}

.entry-content blockquote {
  border: 0;
  border-left: 5px solid var(--bousai-teal);
  border-radius: 0 var(--bousai-radius-sm) var(--bousai-radius-sm) 0;
  background: #f1f8f8;
}

.entry-content table {
  overflow: hidden;
  border-radius: 10px;
}

.breadcrumb {
  color: #64788a;
  font-size: 12px;
}

.article-footer.entry-footer .footer-meta {
  color: var(--bousai-muted);
}

/* Global footer. */
#footer,
.footer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(135deg, #052a4b, #0b3a67 58%, #105b81);
  color: rgba(255, 255, 255, 0.82);
}

#footer a,
.footer a {
  color: rgba(255, 255, 255, 0.86);
}

#footer a:hover,
.footer a:hover {
  color: #fff;
  text-decoration-color: #86d8ef;
}

#footer .footer-bottom-logo .site-name-text {
  color: rgba(255, 255, 255, 0.94);
  text-shadow: none;
}

#footer .footer-bottom-logo .site-name-text-link:hover .site-name-text,
#footer .footer-bottom-logo .site-name-text-link:focus-visible .site-name-text {
  color: #fff;
}

#footer .footer-bottom-logo .site-name-text-link:focus-visible {
  border-radius: 4px;
  outline: 3px solid #86d8ef;
  outline-offset: 4px;
}

@media screen and (max-width: 1023px) {
  .wrap {
    width: min(100% - 32px, 940px);
  }

  .home .entry-content > .bousai-intro,
  .home .entry-content > .bousai-section,
  .home .entry-content > .bousai-x-strip {
    width: min(940px, calc(100% - 32px));
  }

  .bousai-post-grid .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-post-grid .wp-block-post:first-child {
    grid-column: span 2;
    grid-row: auto;
  }

  .bousai-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-archive-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-history-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 834px) {
  #header,
  #header-in {
    height: 158px !important;
  }

  #header {
    background-position: center 55%;
  }

  #header-in {
    padding: 0 16px;
  }

  #header-in::before {
    width: calc(100% - 28px);
    height: 112px;
    border-radius: 19px;
  }

  .site-name-text {
    font-size: clamp(23px, 5.8vw, 29px);
  }

  .tagline {
    margin-top: 8px;
    padding: 0 12px;
    font-size: 11.5px;
    line-height: 1.5;
  }

  .content-in {
    padding-top: 26px;
    padding-bottom: 44px;
  }

  .bousai-intro {
    margin-bottom: 42px;
    padding: 34px 28px;
    border-radius: 24px;
  }

  .bousai-intro h1,
  .bousai-intro h2 {
    font-size: clamp(29px, 7vw, 36px);
  }

  .bousai-launch-note {
    grid-template-columns: 1fr;
  }

  .bousai-launch-note figure,
  .bousai-launch-note img {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .bousai-profile {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  .bousai-profile img {
    width: 130px;
    height: 130px;
  }

  .bousai-promises {
    grid-template-columns: 1fr;
  }

  .bousai-stage-timeline {
    grid-template-columns: 1fr;
  }

  .bousai-stage-arrow {
    min-height: 28px;
    transform: rotate(90deg);
  }

  .bousai-stage-details {
    grid-template-columns: 1fr;
  }

  .bousai-damage-grid {
    grid-template-columns: 1fr;
  }

  .bousai-daily-teaser,
  .bousai-note-heading-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .bousai-note-checked {
    max-width: none;
    text-align: left;
  }

  .bousai-calendar-months {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .bousai-calendar-swipe-note {
    display: block;
  }

  .bousai-search-results,
  .bousai-history-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 480px) {
  .wrap {
    width: calc(100% - 24px);
  }

  .home .entry-content > .bousai-intro,
  .home .entry-content > .bousai-section,
  .home .entry-content > .bousai-x-strip {
    width: calc(100% - 24px);
  }

  #header,
  #header-in {
    height: 150px !important;
  }

  #header-in::before {
    width: calc(100% - 20px);
    height: 108px;
    border-radius: 16px;
  }

  .site-name-text {
    font-size: 21px;
    letter-spacing: 0.015em;
  }

  .tagline {
    max-width: 340px;
    font-size: 10.5px;
  }

  .bousai-intro {
    padding: 28px 22px;
  }

  .bousai-intro-copy {
    font-size: 16px;
  }

  .bousai-intro-actions .wp-block-buttons {
    align-items: stretch;
    flex-direction: column;
  }

  .bousai-intro-actions .wp-block-button,
  .bousai-intro-actions .wp-block-button__link {
    width: 100%;
  }

  .bousai-section {
    margin-top: 42px;
    margin-bottom: 42px;
  }

  .entry-content .bousai-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
    font-size: 27px !important;
  }

  .bousai-post-grid .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .bousai-post-grid .wp-block-post:first-child {
    grid-column: auto;
  }

  .bousai-theme-links {
    grid-template-columns: 1fr;
  }

  .bousai-theme-link {
    min-height: 140px;
    padding: 20px;
  }

  .bousai-calendar-year-row {
    grid-template-columns: 1fr;
    gap: 8px;
    text-align: left;
  }

  .bousai-calendar-nav-note {
    text-align: left;
  }

  .bousai-calendar-months {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .bousai-month-calendar-shell {
    min-width: 760px;
  }

  .bousai-month-calendar li {
    min-height: 190px;
  }

  .bousai-archive-search-form {
    grid-template-columns: 1fr;
  }

  .bousai-archive-search-form button {
    width: 100%;
  }

  .bousai-search-results a {
    grid-template-columns: 1fr;
  }

  .bousai-search-result-status {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }

  .bousai-damage-stats,
  .bousai-damage-stats-four {
    grid-template-columns: 1fr;
  }

  .bousai-daily-teaser-link {
    width: 100%;
    justify-content: center;
  }

  .bousai-theme-link {
    min-height: 126px;
  }

  .bousai-knowledge-hero {
    padding: 30px 20px;
  }

  .bousai-stage-card {
    min-height: 148px;
  }

  .bousai-profile {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .bousai-profile img {
    margin: 0 auto;
  }

  .bousai-x-strip {
    align-items: flex-start;
    flex-direction: column;
    padding: 24px;
  }
}

@media screen and (max-width: 480px) {
  body.page.page-id-14 #main {
    padding: 24px 20px;
  }

  .page-id-14 .entry-content {
    line-height: 1.76;
  }

  body.page.page-id-57 #main {
    padding: 24px 10px;
  }

  .page-id-57 .entry-content {
    line-height: 1.72;
  }

  .page-id-57 .bousai-note-hero,
  .page-id-57 .bousai-note-section,
  .page-id-57 .bousai-note-method {
    margin-bottom: 24px;
  }

  .page-id-57 .bousai-note-hero {
    padding: 22px 18px;
  }

  .page-id-57 .bousai-note-hero h2 {
    margin-bottom: 10px;
    font-size: clamp(25px, 7vw, 30px);
    line-height: 1.3;
  }

  .page-id-57 .bousai-note-caution {
    margin-top: 14px;
    padding: 12px 14px;
  }

  .page-id-57 .bousai-note-heading-row {
    gap: 8px;
    margin-bottom: 13px;
  }

  .page-id-57 .bousai-damage-card {
    padding: 16px;
  }

  .page-id-57 .bousai-damage-stats,
  .page-id-57 .bousai-damage-stats-four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    min-height: 84px;
  }

  .page-id-57 .bousai-history-grid {
    gap: 12px;
    margin-top: 13px;
  }

  .page-id-57 .bousai-history-card {
    padding: 12px;
  }

  .page-id-57 .bousai-note-method {
    padding: 18px 16px;
  }
}

/* Final public-surface polish overrides. The body prefix intentionally
   outranks older WordPress Additional CSS that is loaded after this file. */
body #header,
body #header-in {
  height: 228px !important;
}

body #header-in::before {
  width: min(790px, calc(100% - 48px));
  height: 128px;
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(240, 249, 254, 0.66));
  box-shadow: 0 18px 48px rgba(7, 47, 83, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(12px) saturate(112%);
  backdrop-filter: blur(12px) saturate(112%);
}

body .site-name-text {
  font-size: clamp(32px, 3vw, 42px);
  font-weight: 760;
  line-height: 1.22;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 10px rgba(255, 255, 255, 0.9);
}

body .tagline {
  max-width: 720px;
  margin-top: 12px;
  font-size: 13px;
  font-weight: 620;
}

body #navi .navi-in > ul > li > a {
  height: 46px !important;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  font-size: 14.5px;
}

body #navi .navi-in > ul > li {
  height: 46px;
}

body.home .entry-content > .bousai-intro {
  padding: 42px clamp(30px, 5vw, 60px);
  border: 1px solid var(--bousai-border-strong);
  border-radius: 26px;
  box-shadow: var(--bousai-shadow-card);
}

body .bousai-kicker {
  font-size: 12px;
  font-weight: 780;
  letter-spacing: 0.075em;
  text-transform: none;
}

body .bousai-intro h1,
body .bousai-intro h2 {
  max-width: 800px;
  font-size: clamp(32px, 3.1vw, 42px);
  font-weight: 780;
  line-height: 1.4;
}

body .bousai-intro-copy {
  max-width: 720px;
  margin-top: 18px;
  font-size: clamp(16px, 1.5vw, 18px);
  line-height: 1.85;
}

body .entry-content .bousai-section-heading {
  gap: 12px;
  margin-bottom: 22px !important;
  font-size: clamp(26px, 2.55vw, 32px) !important;
  font-weight: 760;
  letter-spacing: 0.01em;
}

body .entry-content .bousai-section-heading::before {
  width: 34px;
  height: 4px;
}

body.home .bousai-theme-link {
  min-height: 164px;
  padding: 22px;
  border: 1px solid var(--bousai-border-strong);
  border-top: 3px solid rgba(42, 127, 120, 0.72);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(241, 248, 252, 0.96));
  box-shadow: var(--bousai-shadow-card);
}

body.home .bousai-theme-link::after {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #c8deea;
  border-radius: 50%;
  background: #fff;
  font-size: 18px;
}

body.home .bousai-theme-link strong {
  font-size: 18px;
}

body.home .bousai-theme-label {
  font-size: 11px;
  font-weight: 780;
  letter-spacing: 0.045em;
}

body.home .bousai-promises li {
  border: 1px solid var(--bousai-border-strong);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--bousai-shadow-card);
}

@media screen and (max-width: 834px) {
  body #header,
  body #header-in {
    height: 158px !important;
  }

  body #header-in::before {
    width: calc(100% - 28px);
    height: 112px;
    border-radius: 19px;
  }

  body .site-name-text {
    font-size: clamp(23px, 5.8vw, 29px);
  }

  body.home .entry-content > .bousai-intro {
    padding: 34px 28px;
  }

  body .bousai-intro h1,
  body .bousai-intro h2 {
    font-size: clamp(29px, 7vw, 36px);
  }
}

@media screen and (max-width: 480px) {
  body #header,
  body #header-in {
    height: 150px !important;
  }

  body #header-in::before {
    width: calc(100% - 20px);
    height: 108px;
    border-radius: 16px;
  }

  body .site-name-text {
    font-size: 21px;
  }

  body.home .entry-content > .bousai-intro {
    padding: 28px 22px;
  }

  body.home .bousai-theme-link {
    min-height: 140px;
    padding: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  #navi a:hover,
  .wp-block-post:hover,
  .bousai-theme-link:hover,
  .bousai-stage-card:hover,
  .bousai-profile:hover img,
  .bousai-x-strip a:hover,
  .bousai-daily-teaser-link:hover,
  .bousai-month-calendar a:hover,
  .wp-block-button__link:hover {
    transform: none !important;
  }
}

/* Homepage reference-layout rebuild: compact identity, wide lead, four learning
   gateways, truthful latest-post state, calendar archive, and author card. */
body #header-container {
  border-bottom: 1px solid #d7e5ee;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 5px 20px rgba(11, 58, 103, 0.07);
}

body #header-container-in {
  display: grid;
  width: min(1320px, calc(100% - 48px));
  min-height: 92px;
  margin: 0 auto;
  grid-template-columns: minmax(390px, 1fr) minmax(690px, auto);
  align-items: center;
}

body #header,
body #header-in {
  height: 92px !important;
}

body #header .header-in {
  min-height: 92px !important;
  max-height: 92px !important;
}

body #header {
  width: 100%;
  overflow: visible;
  background: none !important;
}

body #header::before {
  display: none;
}

body #header-in {
  display: grid;
  width: 100%;
  margin: 0;
  padding: 0;
  grid-template-columns: 56px minmax(0, 1fr);
  grid-template-rows: 46px 46px;
  column-gap: 16px;
  align-items: center;
}

body #header-in::before {
  position: static;
  display: grid;
  width: 54px;
  height: 54px;
  content: "\f0c2";
  transform: none;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, #73cce5, #1c8eb2);
  box-shadow: 0 9px 22px rgba(28, 142, 178, 0.24);
  color: #fff;
  font-family: FontAwesome;
  font-size: 28px;
  place-items: center;
  grid-row: 1 / 3;
}

body #header .logo-header {
  display: flex;
  height: auto !important;
  min-height: 0 !important;
  align-items: flex-end;
  justify-content: flex-start;
  align-self: end;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 2;
  grid-row: 1;
}

body #header .logo-header a {
  padding-right: 0;
  padding-left: 0;
  text-align: left;
}

body .site-name-text {
  color: var(--bousai-navy-deep);
  font-size: clamp(23px, 2.1vw, 29px);
  font-weight: 820;
  line-height: 1.16;
  letter-spacing: 0.02em;
  text-shadow: 0 3px 14px rgba(11, 58, 103, 0.1);
}

body .tagline {
  display: flex;
  max-width: none;
  align-self: start;
  align-items: center;
  gap: 9px;
  margin: 4px 0 0;
  padding: 0;
  color: #45647c;
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: 0.025em;
  text-align: left;
  text-shadow: none;
  grid-column: 2;
  grid-row: 2;
}

body .tagline::before {
  width: 24px;
  height: 3px;
  flex: 0 0 24px;
  content: "";
  border-radius: 999px;
  background: linear-gradient(90deg, var(--bousai-blue), var(--bousai-teal));
  box-shadow: 0 2px 8px rgba(20, 155, 182, 0.18);
}

body #navi {
  width: auto;
  height: 92px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body #header-container #navi {
  background: transparent !important;
}

body #navi .navi-in {
  width: auto;
  height: 100%;
}

body #navi .navi-in > ul {
  display: flex;
  height: 100%;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
}

body #navi .menu-mobile {
  display: none !important;
}

body #navi .navi-in > ul > li {
  height: 92px;
  flex: 0 0 auto;
}

body #navi .navi-in > ul > li > a {
  height: 92px !important;
  min-height: 92px;
  padding: 0 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

body #navi .navi-in > ul > li > a:not(:hover) {
  border-color: transparent;
  background: transparent;
  color: var(--bousai-navy-deep);
}

body #navi .navi-in > ul > li > a::after {
  right: 18px;
  bottom: 12px;
  left: 18px;
  height: 3px;
  background: linear-gradient(90deg, var(--bousai-blue), var(--bousai-teal));
}

body #navi .navi-in > ul > li > a:hover {
  background: rgba(72, 168, 221, 0.07);
  color: var(--bousai-blue);
}

body.home .content-in {
  width: 100%;
  padding-top: 0;
}

body.home .entry-content > .bousai-home-hero {
  width: 100%;
}

body.home .entry-content > .bousai-home-content {
  width: min(1240px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

.bousai-home-hero {
  position: relative;
  padding: 30px 0 18px;
  border-bottom: 1px solid #d7e7f0;
  background:
    linear-gradient(90deg, rgba(243, 250, 255, 0.98) 0%, rgba(238, 248, 254, 0.93) 48%, rgba(239, 249, 254, 0.62) 72%, rgba(239, 249, 254, 0.38) 100%),
    url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/codex-clipboard-cd07245e-38b8-43f0-82af-a7c492a7a61f.png") center 46% / cover no-repeat;
}

.bousai-home-hero-inner {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
}

.bousai-home-lead {
  margin: 0 2px 20px;
}

.bousai-home-lead h1 {
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: clamp(34px, 3.15vw, 48px);
  font-weight: 790;
  line-height: 1.32;
  letter-spacing: 0.025em;
}

.bousai-home-lead p {
  max-width: none;
  margin: 11px 0 0;
  color: #294966;
  font-size: clamp(16px, 1.36vw, 18px);
  font-weight: 540;
  line-height: 1.75;
  letter-spacing: 0.01em;
}

.bousai-home-theme-links {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bousai-home-theme-card {
  display: grid;
  min-height: 146px;
  padding: 17px;
  border: 1px solid rgba(193, 217, 231, 0.95);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.91);
  box-shadow: 0 9px 24px rgba(11, 58, 103, 0.08);
  color: var(--bousai-navy-deep);
  text-decoration: none;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 14px;
}

.bousai-home-theme-card:hover {
  transform: translateY(-4px);
  border-color: #86c5dc;
  background: #fff;
  box-shadow: 0 15px 32px rgba(11, 58, 103, 0.13);
  color: var(--bousai-navy);
}

.bousai-home-theme-icon {
  display: grid;
  width: 60px;
  height: 60px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: inset 0 0 0 1px rgba(43, 132, 181, 0.11), 0 8px 18px rgba(11, 58, 103, 0.1);
}

.bousai-home-theme-icon svg {
  width: 54px;
  height: 54px;
  fill: none;
  filter: drop-shadow(0 3px 4px rgba(11, 58, 103, 0.12));
}

.bousai-home-theme-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.bousai-home-theme-copy strong {
  font-size: 19px;
  line-height: 1.4;
}

.bousai-home-theme-copy small {
  margin-top: 7px;
  color: #52677a;
  font-size: 12px;
  line-height: 1.65;
}

.bousai-home-theme-copy > span {
  margin-top: auto;
  padding-top: 7px;
  color: #087c92;
  font-size: 12.5px;
  font-weight: 720;
}

.bousai-home-content {
  display: grid;
  column-gap: 20px;
  row-gap: 32px;
  margin-top: 16px !important;
  margin-bottom: 24px;
  grid-template-columns: minmax(0, 3fr) minmax(300px, 1fr);
  align-items: start;
}

body.home .bousai-home-content > .bousai-home-main-stack,
body.home .bousai-home-content > .bwl-official-links,
body.home .bousai-home-main-stack > .bousai-home-latest,
body.home .bousai-home-main-stack > .bousai-home-featured,
body.home .bousai-home-latest > *,
body.home .bousai-home-featured > * {
  width: 100%;
  max-width: none;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

body.home .bousai-home-content > .bousai-home-main-stack,
body.home .bousai-home-content > .bwl-official-links,
body.home .bousai-home-main-stack > .bousai-home-latest,
body.home .bousai-home-main-stack > .bousai-home-featured {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.bousai-home-main-stack {
  display: grid;
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
  gap: 36px;
}

.bousai-home-latest {
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-section-heading-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

.bousai-home-section-more {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 3px;
  color: #087c92;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

a.bousai-home-section-more:hover {
  color: var(--bousai-navy);
}

.bousai-home-section-more--disabled {
  color: #738594;
  cursor: default;
}

body .entry-content .bousai-home-section-heading-row .bousai-section-heading {
  margin-bottom: 0 !important;
  font-size: 24px !important;
}

body .entry-content .bousai-home-section-heading-row .bousai-section-heading::before {
  width: 5px;
  height: 24px;
}

.bousai-home-content .bousai-post-grid .wp-block-post-template {
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bousai-home-content .bousai-post-grid .wp-block-post,
.bousai-home-content .bousai-post-grid .wp-block-post:first-child {
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-content .bousai-post-grid .wp-block-post-title,
.bousai-home-content .bousai-post-grid .wp-block-post:first-child .wp-block-post-title {
  font-size: 18px;
}

.bousai-home-content .bousai-launch-note {
  min-height: 286px;
  border-radius: 15px;
  box-shadow: var(--bousai-shadow-sm);
  grid-template-columns: minmax(260px, 0.95fr) minmax(0, 1.05fr);
}

.bousai-home-content .bousai-launch-note figure {
  min-height: 286px;
}

.bousai-home-content .bousai-launch-copy {
  padding: 30px 28px;
}

.bousai-home-content .bousai-launch-copy h3 {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 22px;
}

.bousai-home-featured {
  min-width: 0;
  margin-top: 0;
  grid-column: auto;
  grid-row: auto;
}

.bousai-home-featured-heading {
  align-items: center !important;
}

.bousai-home-featured-note {
  margin: 0 0 10px !important;
  color: #5a7082;
  font-size: 12.5px;
  line-height: 1.65;
}

.bousai-featured-samples,
.bousai-featured-query .wp-block-post-template {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bousai-featured-sample-card,
.bousai-featured-query .wp-block-post {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  overflow: hidden;
  margin: 0;
  border: 1px solid #c9dce7;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 19px rgba(11, 58, 103, 0.07);
}

.bousai-featured-visual,
.bousai-featured-query .wp-block-post-featured-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  margin: 0;
}

.bousai-featured-visual {
  display: grid;
  place-items: center;
  color: #176caa;
}

.bousai-featured-visual svg {
  width: 67%;
  height: 67%;
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bousai-featured-visual--knowledge {
  background: radial-gradient(circle at 82% 18%, rgba(89, 187, 255, 0.2), transparent 34%), linear-gradient(145deg, #eef8ff, #dbeeff);
  color: #176caa;
}

.bousai-featured-visual--rainband {
  background: radial-gradient(circle at 18% 20%, rgba(255, 255, 255, 0.72), transparent 30%), linear-gradient(145deg, #e7f2fb, #c5dbea);
  color: #315f83;
}

.bousai-featured-visual--gear {
  background: radial-gradient(circle at 80% 18%, rgba(255, 255, 255, 0.62), transparent 30%), linear-gradient(145deg, #eaf8f4, #caece3);
  color: #0d806f;
}

.bousai-featured-visual--typhoon {
  background: radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.68), transparent 32%), linear-gradient(145deg, #eef7fb, #d0e8f2);
  color: #207a9b;
}

.bousai-featured-visual--power {
  background: radial-gradient(circle at 82% 18%, rgba(255, 255, 255, 0.64), transparent 31%), linear-gradient(145deg, #edf9f4, #ccebe0);
  color: #0b806b;
}

.bousai-featured-visual--lightning {
  background: radial-gradient(circle at 20% 18%, rgba(255, 255, 255, 0.7), transparent 32%), linear-gradient(145deg, #f3f5ff, #dce6fb);
  color: #476aad;
}

.bousai-featured-query .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}

.bousai-featured-sample-body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  padding: 11px 12px 12px;
}

.bousai-featured-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 7px;
}

.bousai-featured-category,
.bousai-featured-query .wp-block-post-terms {
  color: #087c92;
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.45;
}

.bousai-featured-status {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  padding: 2px 6px;
  border: 1px solid #ecd58d;
  border-radius: 999px;
  background: #fff8dc;
  color: #765716;
  font-size: 9px;
  font-weight: 760;
  line-height: 1;
  white-space: nowrap;
}

.bousai-featured-sample-card h3,
.bousai-featured-query .wp-block-post-title {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 0 7px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 14.5px;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.bousai-featured-sample-card p,
.bousai-featured-query .wp-block-post-excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  color: #52677a;
  font-size: 11px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.bousai-featured-query .wp-block-post-terms {
  margin: 11px 12px 7px;
}

.bousai-featured-query .wp-block-post-terms a {
  color: inherit;
}

.bousai-featured-query .wp-block-post-title {
  margin-right: 12px;
  margin-left: 12px;
}

.bousai-featured-query .wp-block-post-title a {
  color: inherit;
  text-decoration: none;
}

.bousai-featured-query .wp-block-post-excerpt {
  margin-right: 12px;
  margin-bottom: 12px;
  margin-left: 12px;
}

.bousai-featured-query .wp-block-post-excerpt__more-text {
  display: none;
}

.bwl-official-links,
.bwl-official-links * {
  box-sizing: border-box;
}

.bwl-official-links {
  min-width: 0;
  margin-top: 0;
  grid-column: 1 / -1;
  grid-row: 2;
}

.bwl-official-links__heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}

body .entry-content .bwl-official-links__heading h2 {
  position: relative;
  margin: 0 !important;
  padding: 0 0 0 17px;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
  font-size: 24px !important;
  line-height: 1.45;
}

body .entry-content .bwl-official-links__heading h2::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
  height: 24px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--bousai-sky), var(--bousai-teal));
  content: "";
  transform: translateY(-50%);
}

.bwl-official-links__all {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 3px;
  color: #087c92;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.4;
  text-decoration: none;
  white-space: nowrap;
}

.bwl-official-links__all:hover {
  color: var(--bousai-navy);
}

.bwl-official-links__all:focus-visible,
.bwl-official-links__item:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 3px;
}

.bwl-official-links__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bwl-official-links__item {
  display: flex;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
  height: 100%;
  flex-direction: column;
  padding: 12px 12px 13px;
  border: 1px solid #c9dfe9;
  border-top: 4px solid #2495a3;
  border-radius: 13px;
  background: linear-gradient(180deg, #f8fcfe 0%, #ffffff 34%);
  box-shadow: 0 7px 19px rgba(11, 58, 103, 0.07);
  color: var(--bousai-navy-deep);
  text-decoration: none !important;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.bwl-official-links__media {
  display: block;
  width: calc(100% + 24px);
  margin: -12px -12px 11px;
  overflow: hidden;
  border-radius: 9px 9px 0 0;
  background: #edf5f8;
  line-height: 0;
}

.bwl-official-links__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

.bwl-official-links__source {
  align-self: flex-start;
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 2px 7px;
  border: 1px solid #cce4ea;
  border-radius: 999px;
  background: #edf8fa;
  color: #316879;
  font-size: 9.5px;
  font-weight: 740;
  line-height: 1.45;
}

.bwl-official-links__item-title {
  display: block;
  margin: 8px 0 0;
  color: var(--bousai-navy-deep);
  font-size: 16px;
  font-weight: 760;
  line-height: 1.35;
}

.bwl-official-links__description {
  display: block;
  margin: 5px 0 0;
  color: #52677a;
  font-size: 11.5px;
  line-height: 1.6;
}

.bwl-official-links__cta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 40px;
  margin: auto 0 0;
  padding: 11px 0 0;
  color: #087c92;
  font-size: 11.5px;
  font-weight: 740;
  line-height: 1.4;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-official-links__item:hover {
    border-color: #78bdcb;
    box-shadow: 0 11px 24px rgba(11, 58, 103, 0.11);
    color: var(--bousai-navy-deep);
    transform: translateY(-2px);
  }
}

.bousai-home-sidebar {
  display: grid;
  gap: 14px;
  grid-column: 2;
  grid-row: 1;
}

.bousai-home-author {
  padding: 22px;
  border: 1px solid #c7dee9;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 7px 20px rgba(11, 58, 103, 0.07);
}

/*
BousaiWxLab approved calendar feature card
Installation contract:
- Do not simplify, redraw, recolor, or replace the supplied artwork.
- Do not add a top-right calendar icon, weather icon strip, or CSS mini-calendar.
- Keep the whole card as one link.
*/

.bwl-calendar-feature,
.bwl-calendar-feature * {
  box-sizing: border-box;
}

.bwl-calendar-feature {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  color: #0b3559;
  text-decoration: none !important;
  background: #ffffff;
  border: 1px solid #cfe1eb;
  border-radius: 22px;
  box-shadow:
    0 18px 38px rgba(10, 55, 86, 0.12),
    0 3px 10px rgba(10, 55, 86, 0.06);
  isolation: isolate;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease;
}

.bwl-calendar-feature__media {
  display: block;
  width: 100%;
  aspect-ratio: 924 / 684;
  overflow: hidden;
  background: #eef7fa;
}

.bwl-calendar-feature__media img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}

.bwl-calendar-feature__content {
  display: block;
  padding: 17px 18px 20px;
  background:
    linear-gradient(180deg, rgba(246, 251, 253, 0.55) 0%, #ffffff 24%);
}

.bwl-calendar-feature__eyebrow {
  display: inline-block;
  width: auto;
  min-height: 29px;
  padding: 5px 12px;
  color: #17688f;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.02em;
  background: #eaf4f8;
  border: 1px solid #d4e8f0;
  border-radius: 999px;
}

.bwl-calendar-feature__title {
  display: block;
  margin-top: 13px;
  color: #0a3459;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: clamp(20px, 1.45vw, 22.5px);
  font-weight: 750;
  line-height: 1.42;
  letter-spacing: 0.005em;
  text-wrap: balance;
}

.bwl-calendar-feature__description {
  display: block;
  margin-top: 10px;
  color: #4d6170;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.72;
  letter-spacing: 0.01em;
}

.bwl-calendar-feature__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  margin-top: 16px;
  padding: 11px 17px;
  color: #ffffff;
  font-family:
    -apple-system, BlinkMacSystemFont, "Hiragino Sans",
    "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: 0.03em;
  background: linear-gradient(135deg, #2b8bc3 0%, #287bb3 100%);
  border: 1px solid rgba(8, 75, 116, 0.12);
  border-radius: 13px;
  box-shadow:
    0 9px 18px rgba(28, 114, 165, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.bwl-calendar-feature__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  font-size: 31px;
  font-weight: 300;
  line-height: 0.75;
  transform: translateY(-1px);
}

@media (hover: hover) and (pointer: fine) {
  .bwl-calendar-feature:hover {
    color: #0b3559;
    text-decoration: none;
    border-color: #9fcadb;
    box-shadow:
      0 22px 46px rgba(10, 55, 86, 0.16),
      0 5px 12px rgba(10, 55, 86, 0.07);
    transform: translateY(-3px);
  }

  .bwl-calendar-feature:hover .bwl-calendar-feature__cta {
    background: linear-gradient(135deg, #2786bd 0%, #2274aa 100%);
  }
}

.bwl-calendar-feature:focus {
  color: #0b3559;
  text-decoration: none;
}

.bwl-calendar-feature:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media (max-width: 600px) {
  .bwl-calendar-feature {
    border-radius: 20px;
  }

  .bwl-calendar-feature__content {
    padding: 16px 17px 18px;
  }

  .bwl-calendar-feature__title {
    font-size: 21px;
  }

  .bwl-calendar-feature__description {
    font-size: 13.5px;
  }

  .bwl-calendar-feature__cta {
    min-height: 50px;
    font-size: 15.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bwl-calendar-feature {
    transition: none;
  }

  .bwl-calendar-feature:hover {
    transform: none;
  }
}

.bousai-home-sidebar-label {
  display: block;
  margin-bottom: 11px;
  color: #517086;
  font-size: 11px;
  font-weight: 730;
  letter-spacing: 0.04em;
}

.bousai-home-author h2 {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--bousai-navy-deep);
}

.bousai-home-author p {
  margin: 12px 0 0;
  color: #52677a;
  font-size: 12.5px;
  line-height: 1.65;
}

.bousai-home-author-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 86px;
  align-items: start;
  gap: 14px;
}

.bousai-home-author h2 {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 17px;
  line-height: 1.45;
  white-space: nowrap;
}

.bousai-home-author h2 small {
  display: inline-block;
  margin-left: 0;
  padding: 2px 6px;
  border: 1px solid #c8dee8;
  border-radius: 4px;
  color: #4f7183;
  font-size: 9.5px;
  font-weight: 650;
  vertical-align: 2px;
  white-space: nowrap;
}

.bousai-home-author-body p {
  margin-top: 12px;
}

.bousai-home-author img {
  width: 86px;
  height: 86px;
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 8px 18px rgba(11, 58, 103, 0.14);
  object-fit: cover;
  margin-top: 12px;
}

.bousai-home-author-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 13px;
  color: var(--bousai-blue);
  font-size: 12.5px;
  font-weight: 730;
  text-decoration: none;
}

.bousai-home-author-link:hover {
  gap: 10px;
  color: var(--bousai-teal);
}

.bousai-home-x-card,
.bousai-home-x-card * {
  box-sizing: border-box;
}

.bousai-home-x-card {
  display: block;
  width: 100%;
  max-width: 100%;
  border-radius: 8px;
  line-height: 0;
  text-decoration: none !important;
  transition: transform var(--bousai-ease), box-shadow var(--bousai-ease);
}

.bousai-home-x-card img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

@media (hover: hover) and (pointer: fine) {
  .bousai-home-x-card:hover {
    box-shadow: 0 12px 26px rgba(11, 58, 103, 0.16);
    transform: translateY(-2px);
  }
}

.bousai-home-x-card:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .bousai-home-x-card {
    transition: none;
  }

  .bousai-home-x-card:hover {
    transform: none;
  }
}

@media screen and (max-width: 1120px) {
  body #header-container-in {
    width: calc(100% - 32px);
    grid-template-columns: minmax(330px, 1fr) minmax(610px, auto);
  }

  body .tagline {
    max-width: 360px;
    font-size: 11.5px;
  }

  body #navi .navi-in > ul > li > a {
    padding-right: 13px;
    padding-left: 13px;
    font-size: 13px;
  }

  .bousai-home-theme-card {
    padding: 18px 15px;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 11px;
  }

  .bousai-home-theme-icon {
    width: 46px;
    height: 46px;
  }

  .bousai-home-theme-icon svg {
    width: 35px;
    height: 35px;
  }

  .bousai-home-theme-copy strong {
    font-size: 17px;
  }
}

@media screen and (max-width: 1100px) {
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bwl-official-links__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 900px) {
  body #header-container-in {
    display: block;
    width: 100%;
  }

  body #header,
  body #header-in {
    height: 96px !important;
  }

  body #header .header-in {
    min-height: 96px !important;
    max-height: 96px !important;
  }

  body #header-in {
    width: calc(100% - 32px);
    margin: 0 auto;
    grid-template-rows: 48px 48px;
  }

  body #navi {
    width: 100%;
    height: 50px;
    background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 62%, #105887);
  }

  body #header-container #navi {
    background: linear-gradient(105deg, var(--bousai-navy-deep), var(--bousai-navy) 62%, #105887) !important;
  }

  body #navi .navi-in > ul > li {
    height: 50px;
    flex: 1 1 auto;
  }

  body #navi .menu-pc {
    display: none !important;
  }

  body #navi .menu-mobile {
    display: flex !important;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 50px !important;
    min-height: 50px;
    padding: 0 12px;
    background: transparent;
    color: rgba(255, 255, 255, 0.94);
  }

  body #navi .navi-in > ul > li > a::after {
    bottom: 5px;
    background: #86d8ef;
  }

  body #navi .navi-in > ul > li > a:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
  }

  .bousai-home-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-home-content {
    grid-template-columns: 1fr;
  }

  .bousai-home-main-stack,
  .bousai-home-sidebar {
    grid-column: 1;
    grid-row: auto;
  }

  .bwl-official-links {
    grid-column: 1;
    grid-row: auto;
  }

  .bousai-home-sidebar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-home-x-card {
    grid-column: 2;
  }
}

@media screen and (max-width: 760px) {
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  body #header,
  body #header-in {
    height: 92px !important;
  }

  body #header .header-in {
    min-height: 92px !important;
    max-height: 92px !important;
  }

  body #header-in {
    width: calc(100% - 24px);
    grid-template-columns: 46px minmax(0, 1fr);
    column-gap: 11px;
    grid-template-rows: 46px 46px;
  }

  body #header-in::before {
    width: 44px;
    height: 44px;
    font-size: 23px;
  }

  body .site-name-text {
    font-size: 18.5px;
  }

  body .tagline {
    max-width: none;
    overflow: hidden;
    gap: 6px;
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .tagline::before {
    width: 17px;
    height: 2px;
    flex-basis: 17px;
  }

  body #navi,
  body #navi .navi-in {
    height: auto;
  }

  body #navi .navi-in > ul {
    flex-wrap: wrap;
  }

  body #navi .navi-in > ul > li {
    height: 42px;
    flex: 1 1 33.333%;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 42px !important;
    min-height: 42px;
    padding: 0 7px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 11.5px;
  }

  body.home .entry-content > .bousai-home-content,
  .bousai-home-hero-inner {
    width: calc(100% - 24px);
  }

  .bousai-home-hero {
    padding-top: 24px;
    padding-bottom: 18px;
  }

  .bousai-home-lead {
    margin-bottom: 18px;
  }

  .bousai-home-lead h1 {
    font-size: clamp(29px, 9vw, 35px);
    line-height: 1.35;
  }

  .bousai-home-lead p {
    font-size: 15px;
    line-height: 1.75;
  }

  .bousai-home-theme-links,
  .bousai-home-sidebar,
  .bousai-home-content .bousai-post-grid .wp-block-post-template,
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template {
    grid-template-columns: 1fr;
  }

  .bousai-home-x-card {
    grid-column: auto;
  }

  .bwl-official-links__grid {
    grid-template-columns: 1fr;
  }

  .bwl-official-links__item {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 17px 18px 16px;
  }

  .bwl-official-links__media {
    display: block;
    width: calc(100% + 36px);
    align-self: auto;
    margin: -17px -18px 15px;
    border-radius: 9px 9px 0 0;
  }

  .bwl-official-links__source {
    margin: 0;
  }

  .bwl-official-links__item-title {
    margin: 10px 0 0;
  }

  .bwl-official-links__description {
    margin: 7px 0 0;
  }

  .bwl-official-links__cta {
    min-height: 44px;
    margin: auto 0 0;
    padding: 12px 0 0;
  }

  .bousai-home-theme-card {
    min-height: 118px;
  }

  .bousai-home-content .bousai-launch-note {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .bousai-home-content .bousai-launch-note figure {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .bousai-home-content .bousai-launch-copy {
    padding: 24px 20px;
  }

  .bousai-home-featured {
    margin-top: 2px;
  }

  .bousai-home-featured-note {
    font-size: 12px;
  }

  .bousai-featured-sample-body {
    padding: 13px;
  }

  .bousai-featured-sample-card h3,
  .bousai-featured-query .wp-block-post-title {
    font-size: 16px;
  }

  .bousai-featured-sample-card p,
  .bousai-featured-query .wp-block-post-excerpt {
    font-size: 12.5px;
  }

  .bousai-home-author {
    padding: 20px;
  }

}

@media (prefers-reduced-motion: reduce) {
  .bwl-official-links__item {
    transition: none;
  }

  .bwl-official-links__item:hover {
    transform: none;
  }

  .bousai-home-theme-card:hover {
    transform: none !important;
  }
}

/* About page: editorial cards, compact rhythm, and clear reading paths. */
.page-id-14 .article-header {
  display: none;
}

.page-id-14 .article-header .post-date,
.page-id-14 .article-header .post-update {
  display: none;
}

.page-id-14 .entry-title {
  margin-bottom: 0;
}

.page-id-14 .entry-content {
  line-height: 1.72;
}

.bousai-about {
  --about-navy: #0b3a67;
  --about-blue: #1267a5;
  --about-cyan: #1e9db2;
  --about-ink: #21364a;
  --about-muted: #526a7e;
  --about-line: #cfe2ee;
  display: grid;
  gap: 14px;
  color: var(--about-ink);
}

.bousai-about :where(h2, h3, p, blockquote, ol) {
  margin-top: 0;
}

.bousai-about :where(h2, h3) {
  color: var(--about-navy);
}

.page-id-14 .bousai-about h2,
.page-id-14 .bousai-about h3 {
  color: var(--about-navy) !important;
}

.page-id-14 .bousai-about h3 {
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.page-id-14 .bousai-about h3::before,
.page-id-14 .bousai-about h3::after {
  display: none !important;
}

.bousai-about p {
  margin-bottom: 12px;
}

.bousai-about p:last-child {
  margin-bottom: 0;
}

.bousai-about-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 46%) minmax(0, 54%);
  grid-template-rows: auto auto;
  overflow: hidden;
  border: 1px solid #c4ddea;
  border-radius: 24px;
  background: #edf8fe;
  box-shadow: 0 14px 36px rgba(24, 73, 108, 0.08);
}

.bousai-about-hero-copy {
  position: relative;
  z-index: 2;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  height: 100%;
  padding: 24px clamp(24px, 2.7vw, 36px);
  background: linear-gradient(120deg, #f9fdff 0%, #f1f9fd 72%, #eef8fd 100%);
}

.bousai-about-hero-visual {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  height: clamp(280px, 23vw, 360px);
  background: #eef8fd;
}

.bousai-about-hero-visual::before {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 0;
  width: 34px;
  background: linear-gradient(90deg, rgba(238, 248, 253, 0.96), rgba(238, 248, 253, 0));
  content: "";
  pointer-events: none;
}

.bousai-about-hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: 72% center;
}

.bousai-about-kicker,
.bousai-about-heading > div > p,
.bousai-about-safety-heading p {
  margin-bottom: 4px !important;
  color: #167e9f;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bousai-about-hero h2 {
  position: relative;
  z-index: 1;
  margin-bottom: 13px;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: clamp(30px, 2.55vw, 32px);
  line-height: 1.3;
  letter-spacing: 0.015em;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.62);
}

.bousai-about-hero h2::before,
.bousai-about-hero h2::after {
  display: none !important;
}

.bousai-about-hero-text > p {
  max-width: 485px;
}

.bousai-about-hero-copy p {
  margin-bottom: 9px;
}

.bousai-about-intro {
  font-size: 14px;
  line-height: 1.62;
}

.bousai-about-options {
  color: #3d566b;
  font-size: 13px;
  line-height: 1.58;
}

.bousai-about-mission {
  position: relative;
  z-index: 3;
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0 !important;
  padding: 14px 16px;
  border-top: 1px solid rgba(150, 199, 224, 0.72);
  background: rgba(255, 255, 255, 0.96);
  text-align: center;
  font-size: 14px;
  line-height: 1.65;
  letter-spacing: -0.01em;
  box-shadow: 0 -7px 20px rgba(18, 84, 126, 0.04);
}

.bousai-about-panel,
.bousai-about-safety {
  padding: clamp(21px, 2.3vw, 28px);
  border: 1px solid var(--about-line);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 28px rgba(24, 73, 108, 0.06);
}

.bousai-about-heading {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 14px;
}

.bousai-about-heading > span {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #0b4e8a, #199ab0);
  color: #fff;
  font-size: 13px;
  font-weight: 850;
  box-shadow: 0 7px 15px rgba(18, 103, 165, 0.18);
}

.bousai-about-heading h2,
.bousai-about-safety h2 {
  margin-bottom: 0;
  border: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  font-size: clamp(23px, 2.5vw, 30px);
  line-height: 1.3;
}

.bousai-about-heading h2::before,
.bousai-about-heading h2::after,
.bousai-about-safety h2::before,
.bousai-about-safety h2::after {
  display: none !important;
}

.bousai-about-origin-lead {
  flex: 0 0 auto;
  margin: 0 0 0 auto !important;
  padding: 11px 16px;
  border-radius: 13px;
  background: linear-gradient(145deg, #e7f5fb, #f7fcff);
  color: var(--about-navy);
  font-size: 17px;
  line-height: 1.45;
  white-space: nowrap;
}

.bousai-about-origin-body {
  margin-left: 0;
}

.bousai-about-origin blockquote {
  position: relative;
  display: block;
  margin: 12px 0 0;
  padding: 15px 48px;
  border: 0;
  border-radius: 16px;
  background: #f2f8fc;
  line-height: 1.8;
}

.bousai-about-origin blockquote::before,
.bousai-about-origin blockquote::after {
  position: absolute;
  color: #87a5bd;
  font-family: Georgia, serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}

.bousai-about-origin blockquote::before {
  top: 11px;
  left: 16px;
  content: "“";
}

.bousai-about-origin blockquote::after {
  right: 16px;
  bottom: 2px;
  content: "”";
}

.bousai-about-origin blockquote strong {
  color: var(--about-navy);
  font-size: 16px;
}

.bousai-about-origin blockquote span {
  color: var(--about-muted);
  font-size: 14px;
}

.bousai-about-topic-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bousai-about-topic {
  min-width: 0;
  padding: 17px 15px;
  border: 1px solid #d6e6f0;
  border-radius: 16px;
  background: linear-gradient(180deg, #fff, #f9fcfe);
}

.bousai-about-topic-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 12px;
  place-items: center;
  border-radius: 50%;
  background: #eef8fb;
}

.bousai-about-topic-icon svg {
  width: 45px;
  height: 45px;
}

.bousai-about-topic h3 {
  margin-bottom: 9px;
  font-size: 18px;
  line-height: 1.35;
}

.bousai-about-topic p {
  color: #40586d;
  font-size: 13px;
  line-height: 1.72;
}

.bousai-about-method {
  background: linear-gradient(180deg, #fff, #f7fbfe);
}

.bousai-about-method-lead {
  margin-bottom: 16px !important;
}

.bousai-about-method-list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.bousai-about-method-list li {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 10px;
  min-width: 0;
  padding: 14px 13px;
  border: 1px solid #cfe2ec;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.9);
  text-align: left;
}

.bousai-about-method-list li > span {
  display: block;
  width: 28px;
  height: 5px;
  margin: 0;
  border-radius: 999px;
  background: linear-gradient(90deg, #0f6ea7, #22a8b4);
}

.bousai-about-method-list p {
  margin: 0;
  color: #38536a;
  font-size: 12.5px;
  line-height: 1.62;
}

.bousai-about-method-summary,
.bousai-about-role-note {
  margin: 0 !important;
  padding: 14px 17px;
  border-radius: 12px;
  background: #eaf5fa;
}

.bousai-about-method-summary {
  font-size: 15px;
  line-height: 1.55;
  letter-spacing: -0.015em;
}

@media screen and (min-width: 901px) {
  .bousai-about-method-summary {
    padding-right: 14px;
    padding-left: 14px;
    white-space: nowrap;
  }
}

.bousai-about-author-grid {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}

.bousai-about-author-grid > img {
  width: 132px;
  height: 132px;
  margin: 0;
  border: 7px solid #e8f4fa;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 10px 22px rgba(24, 73, 108, 0.12);
}

.bousai-about-author-name {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.bousai-about-author-name h3 {
  margin: 0;
  font-size: 22px;
}

.bousai-about-author-name span {
  padding: 4px 9px;
  border: 1px solid #a9cfdf;
  border-radius: 999px;
  background: #edf8fc;
  color: #28617b;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.bousai-about-author-grid p {
  font-size: 14px;
}

.bousai-about-role-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.bousai-about-role-grid article {
  position: relative;
  overflow: hidden;
  padding: 20px;
  border: 1px solid #c9dfec;
  border-radius: 16px;
  background: #fbfdff;
}

.bousai-about-role-grid article > span {
  position: absolute;
  top: 12px;
  right: 14px;
  color: rgba(18, 103, 165, 0.12);
  font-size: 30px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.bousai-about-role-grid h3 {
  position: relative;
  margin-bottom: 9px;
  padding-right: 60px;
  font-size: 18px;
}

.bousai-about-role-grid p {
  position: relative;
  color: #40586d;
  font-size: 14px;
}

.bousai-about-safety {
  border-color: #b9d7e5;
  background: linear-gradient(120deg, #eef8fc, #fff 58%);
}

.bousai-about-safety-heading {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 14px;
}

.bousai-about-safety-icon {
  display: grid;
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(145deg, #0b4e8a, #199ab0);
}

.bousai-about-safety-icon svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: #fff;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.bousai-about-safety h2 {
  margin-bottom: 0;
}

.bousai-about-safety-close {
  margin-top: 13px !important;
  padding-top: 13px;
  border-top: 1px solid #d2e6ef;
}

@media screen and (max-width: 900px) {
  .bousai-about-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }

  .bousai-about-hero-copy {
    grid-column: 1;
    grid-row: 1;
    padding: 22px 20px 18px;
  }

  .bousai-about-hero h2 {
    font-size: 30px;
  }

  .bousai-about-hero-visual {
    grid-column: 1;
    grid-row: 2;
    height: auto;
    aspect-ratio: 2.25 / 1;
    border-left: 0;
  }

  .bousai-about-hero-visual::before {
    display: none;
  }

  .bousai-about-mission {
    grid-column: 1;
    grid-row: 3;
  }

  .bousai-about-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bousai-about-method-list {
    grid-template-columns: repeat(5, minmax(112px, 1fr));
    overflow-x: auto;
    padding-bottom: 8px;
  }
}

@media screen and (max-width: 600px) {
  body.page.page-id-14 .content-in {
    padding-top: 10px;
    padding-bottom: 20px;
  }

  body.page.page-id-14 #main {
    width: calc(100% - 24px);
    padding: 14px 20px 18px;
  }

  .page-id-14 .article-header {
    margin-bottom: 13px;
  }

  .page-id-14 .entry-title {
    font-size: 25px;
  }

  .bousai-about {
    gap: 11px;
  }

  .bousai-about-panel,
  .bousai-about-safety {
    padding: 17px 16px;
    border-radius: 16px;
  }

  .bousai-about-hero {
    grid-template-rows: auto auto auto;
    border-radius: 16px;
  }

  .bousai-about-hero-copy {
    display: contents;
  }

  .bousai-about-hero-title {
    position: relative;
    z-index: 3;
    grid-column: 1;
    grid-row: 1;
    align-self: stretch;
    padding: 14px 40% 12px 16px;
    background: linear-gradient(90deg, rgba(248, 253, 255, 0.98) 0%, rgba(248, 253, 255, 0.9) 48%, rgba(248, 253, 255, 0.24) 76%, rgba(248, 253, 255, 0) 100%);
    pointer-events: none;
  }

  .bousai-about-hero-text {
    position: relative;
    z-index: 2;
    grid-column: 1;
    grid-row: 2;
    padding: 13px 16px 10px;
    background: linear-gradient(180deg, #f2faff, #f9fdff);
  }

  .bousai-about-hero-visual {
    grid-column: 1;
    grid-row: 1;
    aspect-ratio: 1.95 / 1;
  }

  .bousai-about-hero-visual img {
    object-position: 67% center;
  }

  .bousai-about-mission {
    grid-row: 3;
  }

  .bousai-about-hero h2 {
    max-width: 205px;
    margin-bottom: 0;
    font-size: 21px;
    line-height: 1.28;
    letter-spacing: 0;
  }

  .bousai-about-hero h2 br {
    display: none;
  }

  .bousai-about-intro,
  .bousai-about-mission {
    font-size: 13px;
  }

  .bousai-about-options {
    font-size: 12.5px;
  }

  .bousai-about-method-summary {
    font-size: 13px;
    letter-spacing: 0;
  }

  .bousai-about-mission {
    margin-top: 0 !important;
    padding: 11px 13px;
    text-align: left;
  }

  .bousai-about-heading {
    gap: 10px;
    margin-bottom: 12px;
  }

  .bousai-about-heading > span {
    flex-basis: 36px;
    width: 36px;
    height: 36px;
    font-size: 11px;
  }

  .bousai-about-heading h2,
  .bousai-about-safety h2 {
    font-size: 19px;
  }

  .bousai-about-origin blockquote,
  .bousai-about-topic-grid,
  .bousai-about-author-grid,
  .bousai-about-role-grid {
    grid-template-columns: 1fr;
  }

  .bousai-about-origin .bousai-about-heading {
    flex-wrap: wrap;
  }

  .bousai-about-origin-lead {
    flex-basis: 100%;
    margin-left: 46px !important;
    padding: 9px 12px;
    font-size: 14px;
    border-radius: 12px;
    white-space: normal;
  }

  .bousai-about-origin-body {
    margin-left: 0;
  }

  .bousai-about-origin blockquote {
    margin-top: 10px;
    padding: 12px 32px 12px 36px;
  }

  .bousai-about-origin blockquote::before {
    top: 10px;
    left: 11px;
    font-size: 28px;
  }

  .bousai-about-origin blockquote::after {
    display: none;
  }

  .bousai-about-topic {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 0 12px;
    padding: 16px;
  }

  .bousai-about-topic-icon {
    grid-row: 1 / span 2;
    width: 48px;
    height: 48px;
    margin: 0;
  }

  .bousai-about-topic-icon svg {
    width: 40px;
    height: 40px;
  }

  .bousai-about-topic h3 {
    margin: 0 0 6px;
    font-size: 17px;
  }

  .bousai-about-topic p {
    font-size: 12.5px;
  }

  .bousai-about-method-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    overflow: visible;
    padding: 0;
  }

  .bousai-about-method-list li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #d4e5ed;
    border-radius: 11px;
    background: #f4f9fc;
    text-align: left;
  }

  .bousai-about-method-list li > span {
    width: 10px;
    height: 10px;
    margin: 0;
    border-radius: 50%;
  }

  .bousai-about-author-grid {
    gap: 15px;
    text-align: left;
  }

  .bousai-about-author-grid > img {
    width: 94px;
    height: 94px;
  }

  .bousai-about-author-name {
    flex-wrap: wrap;
  }

  .bousai-about-author-name h3 {
    font-size: 20px;
  }

  .bousai-about-role-grid article {
    padding: 16px;
  }

  .bousai-about-safety-heading {
    gap: 10px;
    margin-bottom: 12px;
  }

  .bousai-about-safety-icon {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
    border-radius: 12px;
  }

  .bousai-about-safety-icon svg {
    width: 29px;
    height: 29px;
  }
}

/* 2026-08-18 balanced text-and-icon header: retain the polished blue-white
   identity without letting a single large image overpower the page. */
body #header-container {
  background: linear-gradient(100deg, #fbfdff 0%, #ffffff 54%, #f8fcff 100%) !important;
}

body #header {
  background:
    radial-gradient(circle at 8% 50%, rgba(57, 152, 197, 0.1) 0 1px, transparent 1.6px) 0 0 / 18px 18px,
    linear-gradient(90deg, rgba(238, 248, 253, 0.72), rgba(255, 255, 255, 0.18) 72%) !important;
}

body #header-container-in {
  width: min(1320px, calc(100% - 48px));
  min-height: 106px;
  grid-template-columns: minmax(430px, 1fr) auto;
  column-gap: 26px;
}

body #header,
body #header-in {
  height: 106px !important;
}

body #header .header-in {
  min-height: 106px !important;
  max-height: 106px !important;
}

body #header-in {
  position: relative;
  display: grid;
  width: 100%;
  margin: 0;
  padding: 6px 0;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 56px 38px;
  align-items: center;
}

body #header-in::before {
  display: none !important;
}

body #header .logo-header {
  display: flex;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  align-items: flex-end;
  align-self: end;
  margin: 0 !important;
  padding: 0 !important;
  grid-column: 1;
  grid-row: 1;
}

body #header .logo-header a {
  position: static;
  display: flex;
  width: auto !important;
  height: auto;
  min-height: 52px;
  overflow: visible;
  align-items: flex-end;
  padding: 0 0 2px 84px !important;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  text-align: left;
  transition: none;
}

body #header .logo-header a::before {
  position: absolute;
  z-index: 1;
  top: 18px;
  left: 0;
  width: 68px;
  height: 68px;
  content: "";
  border: 1px solid rgba(177, 210, 227, 0.72);
  border-radius: 18px;
  background: #fff url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-150x150.png") center top / 150% auto no-repeat;
  box-shadow: 0 10px 24px rgba(11, 58, 103, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.92);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

body #header .logo-header a::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  content: "";
}

body #header .logo-header a:hover {
  transform: none;
  border-color: transparent;
  box-shadow: none;
}

body #header .logo-header a:hover::before {
  transform: translateY(-1px);
  border-color: rgba(83, 165, 200, 0.78);
  box-shadow: 0 13px 28px rgba(11, 58, 103, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body #header .logo-header a:focus-visible {
  outline: 3px solid #118699;
  outline-offset: 3px;
}

body #header .site-name-text {
  position: relative !important;
  z-index: 2;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  border: 0 !important;
  color: var(--bousai-navy-deep);
  font-size: clamp(24px, 2.05vw, 30px);
  font-weight: 800;
  line-height: 1.16;
  letter-spacing: 0.015em;
  white-space: nowrap !important;
  text-shadow: 0 3px 14px rgba(11, 58, 103, 0.09);
}

body #header .tagline {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  margin: 3px 0 0 84px !important;
  padding: 0 !important;
  clip: auto !important;
  clip-path: none !important;
  border: 0 !important;
  color: #49677f;
  font-size: 12.5px;
  font-weight: 660;
  line-height: 1.35;
  letter-spacing: 0.02em;
  white-space: nowrap !important;
  grid-column: 1;
  grid-row: 2;
}

body #navi,
body #navi .navi-in,
body #navi .navi-in > ul > li {
  height: 106px;
}

body #navi .navi-in > ul > li {
  width: auto !important;
}

body #navi .navi-in > ul > li > a,
body #navi .navi-in > ul > li > a:not(:hover) {
  width: auto !important;
  height: 106px !important;
  min-height: 106px;
  padding-right: 14px;
  padding-left: 14px;
  font-size: 14px;
}

@media screen and (max-width: 1120px) {
  body #header-container-in {
    width: calc(100% - 32px);
    grid-template-columns: minmax(370px, 1fr) auto;
    column-gap: 14px;
  }

  body #header .site-name-text {
    font-size: 24px;
  }

  body #header .tagline {
    font-size: 11.5px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    padding-right: 10px;
    padding-left: 10px;
    font-size: 12.5px;
  }
}

@media screen and (max-width: 900px) {
  body #header-container-in {
    display: block;
    width: 100%;
    min-height: 0;
  }

  body #header,
  body #header-in,
  body #header .header-in {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
  }

  body #header-in {
    width: calc(100% - 32px);
    margin: 0 auto;
    padding: 5px 0;
    grid-template-rows: 55px 39px;
  }

  body #header .logo-header a {
    width: auto !important;
    height: auto;
    margin: 0;
  }

  body #navi,
  body #navi .navi-in {
    height: 50px;
  }

  body #navi .navi-in > ul > li {
    width: auto !important;
    height: 50px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 50px !important;
    min-height: 50px;
    padding-right: 12px;
    padding-left: 12px;
  }
}

@media screen and (max-width: 600px) {
  body #header,
  body #header-in,
  body #header .header-in {
    height: 92px !important;
    min-height: 92px !important;
    max-height: 92px !important;
  }

  body #header-in {
    width: calc(100% - 24px);
    padding: 4px 0;
    grid-template-rows: 47px 37px;
  }

  body #header .logo-header a {
    width: auto !important;
    min-height: 45px;
    padding-left: 61px !important;
  }

  body #header .logo-header a::before {
    top: 18px;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    background-size: 150% auto;
  }

  body #header .site-name-text {
    font-size: 18.5px;
    letter-spacing: 0.005em;
  }

  body #header .tagline {
    max-width: calc(100% - 61px);
    overflow: hidden !important;
    margin-left: 61px !important;
    gap: 6px;
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap !important;
  }

  body #header .tagline::before {
    width: 17px;
    height: 2px;
    flex-basis: 17px;
  }

  body #navi,
  body #navi .navi-in {
    height: auto;
  }

  body #navi .navi-in > ul > li {
    width: auto !important;
    height: 42px;
  }

  body #navi .navi-in > ul > li > a,
  body #navi .navi-in > ul > li > a:not(:hover) {
    height: 42px !important;
    min-height: 42px;
    padding-right: 7px;
    padding-left: 7px;
    font-size: 11.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body #header .logo-header a::before {
    transition: none;
  }

  body #header .logo-header a:hover::before {
    transform: none;
  }
}

/* 2026-08-18 Bousai Weather Calendar: replace the generic page heading with
   a compact branded masthead and usable archive controls. */
body.page-id-57 .article-header {
  display: none;
}

.page-id-57 .bousai-calendar-brand {
  position: relative;
  display: flex;
  min-height: 176px;
  align-items: center;
  gap: clamp(20px, 3vw, 34px);
  overflow: hidden;
  margin: 0 0 18px;
  padding: 28px clamp(30px, 5vw, 64px);
  border: 1px solid #d4e7f1;
  border-radius: 22px 22px 0 0;
  background:
    radial-gradient(circle at 89% 48%, rgba(79, 174, 220, 0.24) 0 3px, transparent 4px),
    repeating-radial-gradient(circle at 89% 48%, transparent 0 18px, rgba(76, 163, 207, 0.09) 19px 21px, transparent 22px 38px),
    radial-gradient(circle at 80% 118%, rgba(154, 218, 247, 0.52), transparent 35%),
    linear-gradient(120deg, #fff 0%, #fbfdff 52%, #e9f7ff 100%);
  box-shadow: 0 12px 34px rgba(12, 63, 103, 0.09);
  isolation: isolate;
}

.page-id-57 .bousai-calendar-brand::before,
.page-id-57 .bousai-calendar-brand::after {
  position: absolute;
  z-index: -1;
  content: "";
  pointer-events: none;
}

.page-id-57 .bousai-calendar-brand::before {
  top: -38px;
  right: 12%;
  width: 300px;
  height: 210px;
  opacity: 0.45;
  background: repeating-linear-gradient(135deg, transparent 0 11px, rgba(42, 144, 195, 0.12) 12px 14px);
  transform: skewX(-12deg);
}

.page-id-57 .bousai-calendar-brand::after {
  right: -18px;
  bottom: -46px;
  width: 390px;
  height: 120px;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 18% 60%, rgba(255,255,255,0.94) 0 22%, transparent 23%),
    radial-gradient(ellipse at 42% 45%, rgba(255,255,255,0.9) 0 26%, transparent 27%),
    radial-gradient(ellipse at 68% 66%, rgba(255,255,255,0.86) 0 24%, transparent 25%);
  filter: blur(1px);
}

.page-id-57 .bousai-calendar-brand-icon {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  border-radius: 24px;
  background: #fff url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-150x150.png") center top / 150% auto no-repeat;
  box-shadow: 0 14px 28px rgba(10, 61, 105, 0.19), inset 0 0 0 1px rgba(83, 165, 200, 0.18);
}

.page-id-57 .bousai-calendar-brand-copy {
  position: relative;
  min-width: 0;
  padding-left: clamp(22px, 3vw, 34px);
}

.page-id-57 .bousai-calendar-brand-copy::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(#0b7489, #31bfc0);
  content: "";
}

.page-id-57 .bousai-calendar-brand h1 {
  margin: 0;
  color: var(--bousai-navy-deep);
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 830;
  line-height: 1.18;
  letter-spacing: 0.025em;
}

.page-id-57 .bousai-calendar-brand p {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 13px 0 0;
  color: #15979b;
  font-size: clamp(15px, 1.5vw, 20px);
  font-weight: 760;
  letter-spacing: 0.055em;
}

.page-id-57 .bousai-calendar-brand p span {
  width: 42px;
  height: 2px;
  background: linear-gradient(90deg, #1ba0a6, #81d8d8);
}

.page-id-57 .bousai-calendar-brand p span:last-child {
  width: 34px;
  background: linear-gradient(90deg, #81d8d8, transparent);
}

.page-id-57 .bousai-calendar-brand p span:last-child::after {
  display: block;
  width: 7px;
  height: 7px;
  margin: -2.5px 0 0 28px;
  background: #24aeb0;
  content: "";
  transform: rotate(45deg);
}

.page-id-57 .bousai-calendar-priority {
  margin-top: 0;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 8px;
  padding: 12px;
  border-color: #d4e7f1;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.08);
}

.page-id-57 .bousai-calendar-control-panel {
  display: grid;
  grid-template-columns: minmax(300px, 1.15fr) auto auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 12px;
  padding: 8px 10px 14px;
  border-bottom: 1px solid #d9e7ef;
}

.page-id-57 .bousai-calendar-current-month {
  display: grid;
  grid-template-columns: 48px auto minmax(140px, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.page-id-57 .bousai-calendar-current-icon {
  display: grid;
  grid-row: 1;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #8cd4d5;
  border-radius: 50%;
  background: #f0fbfb;
  color: #15979b;
}

.page-id-57 .bousai-calendar-current-icon svg {
  width: 25px;
  height: 25px;
}

.page-id-57 .bousai-calendar-current-label {
  color: #4d6880;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.page-id-57 .bousai-calendar-current-month h2 {
  margin: 0;
  padding: 0 0 0 14px !important;
  border: 0 !important;
  border-left: 1px solid #d5e3eb !important;
  background: transparent !important;
  color: var(--bousai-navy-deep) !important;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  white-space: nowrap;
}

.page-id-57 .bousai-calendar-current-month h2::before {
  display: none !important;
}

.page-id-57 .bousai-calendar-step-group,
.page-id-57 .bousai-calendar-year-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 18px;
  border-left: 1px solid #d5e3eb;
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 42px;
  border: 1px solid #a8d6df;
  border-radius: 11px;
  background: #fff;
  color: #0a6676;
  font-size: 13px;
  font-weight: 750;
}

.page-id-57 .bousai-calendar-control-panel button {
  display: inline-flex;
  min-width: 102px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 8px 14px;
}

.page-id-57 .bousai-calendar-control-panel button span {
  font-size: 26px;
  font-weight: 400;
  line-height: 0;
}

.page-id-57 .bousai-calendar-control-panel select {
  min-width: 112px;
  padding: 8px 32px 8px 14px;
  border-color: #b8cfe0;
  color: var(--bousai-navy-deep);
}

.page-id-57 .bousai-calendar-control-panel button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.page-id-57 .bousai-calendar-control-panel button:focus-visible,
.page-id-57 .bousai-calendar-control-panel select:focus-visible {
  outline: 3px solid #38aebc;
  outline-offset: 3px;
}

.page-id-57 .bousai-calendar-months {
  gap: 6px;
}

.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 38px;
  border: 1px solid #d9e5ec;
  border-radius: 10px;
  background: #fff;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-months strong {
  position: relative;
  overflow: hidden;
  border-color: #0b4f82;
  background: linear-gradient(145deg, #082f59, #0a4a80);
  color: #fff;
  box-shadow: 0 7px 16px rgba(7, 58, 102, 0.18);
}

.page-id-57 .bousai-calendar-months strong::after {
  position: absolute;
  right: 12px;
  bottom: 5px;
  left: 12px;
  height: 2px;
  border-radius: 999px;
  background: #f1bf47;
  content: "";
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }

  .page-id-57 .bousai-calendar-step-group {
    justify-content: flex-start;
  }

  .page-id-57 .bousai-calendar-year-controls {
    justify-content: flex-end;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    min-height: 128px;
    gap: 13px;
    margin-bottom: 12px;
    padding: 20px 16px;
    border-radius: 17px 17px 0 0;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: -70px;
  }

  .page-id-57 .bousai-calendar-brand::after {
    opacity: 0.58;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 62px;
    height: 62px;
    border-radius: 17px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    padding-left: 14px;
  }

  .page-id-57 .bousai-calendar-brand-copy::before {
    width: 3px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 5.8vw, 22.5px);
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  .page-id-57 .bousai-calendar-brand p {
    gap: 7px;
    margin-top: 8px;
    font-size: 11px;
    letter-spacing: 0.025em;
    white-space: nowrap;
  }

  .page-id-57 .bousai-calendar-brand p span {
    width: 18px;
  }

  .page-id-57 .bousai-calendar-brand p span:last-child {
    display: none;
  }

  .page-id-57 .bousai-calendar-archive-nav {
    padding: 10px;
  }

  .page-id-57 .bousai-calendar-control-panel {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
    padding: 2px 2px 12px;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-template-columns: 42px auto 1fr;
    gap: 8px;
  }

  .page-id-57 .bousai-calendar-current-icon {
    width: 39px;
    height: 39px;
  }

  .page-id-57 .bousai-calendar-current-label {
    font-size: 11px;
  }

  .page-id-57 .bousai-calendar-current-month h2 {
    padding-left: 9px !important;
    font-size: 24px;
  }

  .page-id-57 .bousai-calendar-step-group,
  .page-id-57 .bousai-calendar-year-controls {
    display: grid;
    gap: 6px;
  }

  .page-id-57 .bousai-calendar-step-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-57 .bousai-calendar-year-controls {
    grid-template-columns: 1fr 1.15fr 1fr;
    padding: 10px 0 0;
    border-top: 1px solid #d5e3eb;
    border-left: 0;
  }

  .page-id-57 .bousai-calendar-control-panel button,
  .page-id-57 .bousai-calendar-control-panel select {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 7px 8px;
    font-size: 11px;
  }

  .page-id-57 .bousai-calendar-months {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 36px;
  }
}

/* 2026-08-18 monthly chart framing: let the six calendar rows use nearly a
   full desktop viewport and preserve the complete JMA chart aspect ratio. */
@media screen and (min-width: 835px) {
  .page-id-57 .bousai-month-calendar {
    grid-auto-rows: clamp(118px, calc((100svh - 54px) / 6), 165px);
  }

  .page-id-57 .bousai-month-calendar li,
  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty {
    height: auto;
    min-height: 0;
  }

  .page-id-57 .bousai-month-calendar a,
  .page-id-57 .bousai-month-calendar li > div {
    height: 100%;
  }

  .page-id-57 .bousai-month-calendar img,
  .page-id-57 .bousai-chart-placeholder {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: contain;
    object-position: center;
  }
}

/* Cascade lock: these compact production masthead rules intentionally follow
   all earlier calendar experiments in this stylesheet. */
.page-id-57 .bousai-calendar-brand {
  min-height: 104px;
  gap: 18px;
  margin: 0 0 8px;
  padding: 14px 22px;
  border-color: #d7e6ef;
  border-radius: 16px 16px 8px 8px;
  background-color: #fbfdff;
  background-image:
    linear-gradient(rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(30, 126, 154, 0.035) 1px, transparent 1px),
    linear-gradient(112deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 251, 254, 0.96) 64%, rgba(235, 247, 252, 0.9) 100%);
  background-size: 24px 24px, 24px 24px, 100% 100%;
  box-shadow: 0 8px 24px rgba(12, 63, 103, 0.07);
}

.page-id-57 .bousai-calendar-brand::before {
  inset: 0;
  width: auto;
  height: auto;
  opacity: 0.28;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 160'%3E%3Cg fill='none' stroke='%23228da0' stroke-width='1.2' opacity='.46'%3E%3Cpath d='M600 28c95-39 175 36 270 3s174-17 262 27'/%3E%3Cpath d='M565 62c98-35 180 39 278 7s183-13 279 33'/%3E%3Cpath d='M535 98c106-31 186 40 291 13s188-7 292 43'/%3E%3C/g%3E%3Cg fill='%2315909b' opacity='.48'%3E%3Ccircle cx='846' cy='69' r='2.5'/%3E%3Ccircle cx='915' cy='47' r='2.5'/%3E%3Ccircle cx='983' cy='55' r='2.5'/%3E%3Cg fill='%2352abc6' opacity='.32'%3E%3Cpath d='M1015 118c17-19 37-21 53-5 23-31 65-18 67 13h-120c-8-1-8-7 0-8Z'/%3E%3Cpath d='M925 132c11-14 28-15 40-3 17-23 48-13 50 11h-90c-6-1-6-6 0-8Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") right center / auto 100% no-repeat;
  transform: none;
}

.page-id-57 .bousai-calendar-brand::after {
  top: 16px;
  right: 18px;
  bottom: auto;
  width: 142px;
  height: 20px;
  border-radius: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 142 20'%3E%3Cpath d='M2 10h138' stroke='%231b95a1' stroke-width='1' opacity='.28'/%3E%3Cg fill='%231b95a1' opacity='.45'%3E%3Ccircle cx='22' cy='10' r='2'/%3E%3Ccircle cx='70' cy='10' r='2'/%3E%3Ccircle cx='118' cy='10' r='2'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
  filter: none;
}

.page-id-57 .bousai-calendar-brand-icon {
  width: 68px;
  height: 68px;
  border-radius: 17px;
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  align-items: baseline;
  gap: 3px 18px;
  padding-left: 18px;
}

.page-id-57 .bousai-calendar-brand h1 {
  grid-column: 1;
  font-size: clamp(27px, 3vw, 36px);
  line-height: 1.12;
}

.page-id-57 .bousai-calendar-brand p,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en,
.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  display: block;
  margin: 0;
  white-space: normal;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  grid-column: 2;
  color: #148d94;
  font-size: 13px;
  font-weight: 760;
  letter-spacing: 0.06em;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  grid-column: 1 / -1;
  color: #4b667a;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0;
}

.page-id-57 .bousai-calendar-archive-nav {
  margin-bottom: 5px;
  padding: 8px 10px 9px;
  border-radius: 13px;
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(280px, 1.15fr) auto auto;
  gap: 11px;
  margin-bottom: 7px;
  padding: 2px 4px 8px;
}

.page-id-57 .bousai-calendar-current-month {
  grid-template-columns: 38px auto minmax(130px, 1fr);
  gap: 8px;
}

.page-id-57 .bousai-calendar-current-icon {
  width: 34px;
  height: 34px;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 10px !important;
  font-size: clamp(25px, 2.6vw, 33px);
}

.page-id-57 .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-control-panel select {
  min-height: 36px;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-control-panel button {
  min-width: 92px;
  padding: 6px 10px;
}

.page-id-57 .bousai-calendar-year-controls {
  padding-left: 12px;
}

.page-id-57 .bousai-calendar-months {
  gap: 5px;
}

.page-id-57 .bousai-calendar-months span,
.page-id-57 .bousai-calendar-months strong {
  min-height: 32px;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-brand {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);
    min-height: 0;
    gap: 10px;
    margin-bottom: 7px;
    padding: 12px;
    border-radius: 13px 13px 7px 7px;
  }

  .page-id-57 .bousai-calendar-brand::before {
    right: 0;
    opacity: 0.19;
  }

  .page-id-57 .bousai-calendar-brand::after {
    display: none;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 50px;
    height: 50px;
    border-radius: 13px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6.1vw, 24px);
    white-space: normal;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 3px;
    font-size: 10.5px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 7px;
    font-size: 10.5px;
    line-height: 1.5;
  }

  .page-id-57 .bousai-calendar-control-panel {
    display: flex;
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    padding: 2px 2px 8px;
  }

  .page-id-57 .bousai-calendar-year-controls {
    padding: 7px 0 0;
    border-top: 1px solid #d5e3eb;
    border-left: 0;
  }

  .page-id-57 .bousai-calendar-months {
    display: flex;
    grid-template-columns: none;
    gap: 6px;
    overflow-x: auto;
    padding: 1px 1px 6px;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
  }

  .page-id-57 .bousai-calendar-months li {
    flex: 0 0 62px;
    scroll-snap-align: start;
  }

  .page-id-57 .bousai-calendar-months button,
  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong {
    min-height: 34px;
  }
}

.page-id-57 .bousai-topic-card h3 {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.page-id-57 .bousai-topic-card h3::before,
.page-id-57 .bousai-topic-card h3::after {
  display: none !important;
}

/* 2026-08-18 dedicated service-page shell. Only page 57 drops Cocoon's
   article chrome and sidebar; the shared site header and footer remain. */
body.page-id-57 #content-in {
  display: block;
  width: 100%;
  max-width: none;
}

body.page-id-57 #sidebar,
body.page-id-57 .article-footer,
body.page-id-57 #breadcrumb,
body.page-id-57 .breadcrumb,
body.page-id-57 .related-entry-heading,
body.page-id-57 .related-list,
body.page-id-57 .pager-post-navi,
body.page-id-57 .sns-share,
body.page-id-57 .sns-follow,
body.page-id-57 .comment-area {
  display: none !important;
}

body.page.page-id-57 #main {
  width: min(1240px, calc(100% - 48px));
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  padding-right: clamp(18px, 2.3vw, 30px);
  padding-left: clamp(18px, 2.3vw, 30px);
}

.page-id-57 .bousai-calendar-brand {
  display: block;
  min-height: 0;
  margin-bottom: 6px;
  padding: 10px 18px;
  border-radius: 14px 14px 7px 7px;
}

.page-id-57 .bousai-calendar-brand-icon {
  display: none !important;
}

.page-id-57 .bousai-calendar-brand-copy {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 2px 16px;
  padding-left: 14px;
}

.page-id-57 .bousai-calendar-brand-copy::before {
  top: 1px;
  bottom: 1px;
}

.page-id-57 .bousai-calendar-brand h1 {
  font-size: clamp(26px, 2.7vw, 33px);
  line-height: 1.08;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
  align-self: center;
  font-size: 12px;
}

.page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
  font-size: 11.5px;
  line-height: 1.42;
}

.page-id-57 .bousai-calendar-control-panel {
  grid-template-columns: minmax(180px, 1fr) auto auto;
}

.page-id-57 .bousai-calendar-current-month {
  display: block;
}

.page-id-57 .bousai-calendar-current-month h2 {
  padding-left: 0 !important;
  border-left: 0 !important;
  font-size: clamp(25px, 2.55vw, 32px);
}

.page-id-57 .bousai-calendar-current-icon,
.page-id-57 .bousai-calendar-current-label {
  display: none !important;
}

.page-id-57 .bousai-calendar-home-return {
  margin: -2px 0 4px;
}

.page-id-57 .bousai-calendar-home-return a {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  padding: 7px 13px;
  border: 1px solid #c9dce7;
  border-radius: 8px;
  background: #fff;
  color: var(--bousai-navy-deep);
  font-size: 12px;
  font-weight: 720;
  text-decoration: none;
  transition: background-color 0.16s ease, border-color 0.16s ease;
}

.page-id-57 .bousai-calendar-home-return a:hover {
  border-color: #9fcbd7;
  background: #edf8fb;
}

.page-id-57 .bousai-calendar-home-return a:focus-visible {
  outline: 3px solid #38aebc;
  outline-offset: 3px;
}

@media screen and (max-width: 1100px) {
  .page-id-57 .bousai-calendar-control-panel {
    grid-template-columns: 1fr 1fr;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 600px) {
  body.page.page-id-57 #main {
    width: calc(100% - 24px);
    padding: 12px 10px 22px;
  }

  .page-id-57 .entry-content {
    margin-top: 0;
  }

  .page-id-57 .bousai-calendar-brand {
    display: block;
    padding: 10px 12px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 10px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(21px, 6vw, 23px);
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 2px;
    font-size: 10px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 5px;
    font-size: 10.5px;
    line-height: 1.45;
  }

  .page-id-57 .bousai-calendar-home-return a {
    width: 100%;
    justify-content: center;
  }
}

/* Official sources preparation page. Every rule is limited to the page's
   bwl-official-sources namespace so the shared theme remains unchanged. */
body.page:has(.bwl-official-sources) #content {
  background: linear-gradient(180deg, #f7fbfd 0%, #eef7fa 100%);
}

body.page:has(.bwl-official-sources) #content-in {
  width: min(960px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

body.page:has(.bwl-official-sources) #main {
  float: none;
  width: 100%;
  max-width: 900px;
  margin: 34px auto 46px;
  padding: clamp(32px, 5vw, 54px);
  border: 1px solid #d5e6ee;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 14px 34px rgba(11, 58, 103, 0.08);
}

body.page:has(.bwl-official-sources) #sidebar,
body.page:has(.bwl-official-sources) #main .date-tags,
body.page:has(.bwl-official-sources) #main .author-info,
body.page:has(.bwl-official-sources) #main .sns-share,
body.page:has(.bwl-official-sources) #main .sns-follow,
body.page:has(.bwl-official-sources) #main .related-entry-heading,
body.page:has(.bwl-official-sources) #main .related-entries,
body.page:has(.bwl-official-sources) #main .comment-area {
  display: none;
}

body.page:has(.bwl-official-sources) #main .entry-title {
  max-width: 760px;
  margin: 0 auto;
  padding: 0;
  border: 0;
  color: #0a3459;
  font-size: clamp(28px, 3.1vw, 38px);
  line-height: 1.42;
  letter-spacing: 0.01em;
  text-align: center;
}

body.page:has(.bwl-official-sources) #main .entry-content {
  margin-top: 26px;
}

.bwl-official-sources,
.bwl-official-sources * {
  box-sizing: border-box;
}

.bwl-official-sources {
  width: min(760px, 100%);
  margin: 0 auto;
  color: #173f5e;
}

.bwl-official-sources__intro {
  max-width: 660px;
  margin: 0 auto;
  color: #46657a;
  font-size: 16px;
  line-height: 1.85;
  text-align: center;
}

.bwl-official-sources__panel {
  margin-top: 30px;
  padding: clamp(34px, 5vw, 48px);
  border: 1px solid #c9e0ea;
  border-radius: 18px;
  background: linear-gradient(145deg, #ffffff 0%, #eef8fb 100%);
  box-shadow: 0 10px 26px rgba(11, 58, 103, 0.08);
  text-align: center;
}

.bwl-official-sources__status {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 5px 14px;
  border: 1px solid #b9dce7;
  border-radius: 999px;
  background: #e5f4f7;
  color: #087b83;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.bwl-official-sources__message {
  max-width: 600px;
  margin: 20px auto 0;
  color: #274c68;
  font-size: 17px;
  line-height: 1.85;
}

.bwl-official-sources__home {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  margin-top: 28px;
  padding: 11px 24px;
  border: 1px solid #16889c;
  border-radius: 12px;
  background: linear-gradient(135deg, #168ba5 0%, #176fa3 100%);
  box-shadow: 0 8px 18px rgba(18, 121, 153, 0.18);
  color: #ffffff !important;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.4;
  text-decoration: none !important;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-official-sources__home:hover {
    background: linear-gradient(135deg, #117f98 0%, #126796 100%);
    box-shadow: 0 11px 22px rgba(18, 105, 145, 0.24);
    transform: translateY(-2px);
  }
}

.bwl-official-sources__home:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 4px;
}

@media screen and (max-width: 600px) {
  body.page:has(.bwl-official-sources) #content-in {
    width: calc(100% - 24px);
  }

  body.page:has(.bwl-official-sources) #main {
    margin: 18px auto 28px;
    padding: 26px 18px 30px;
    border-radius: 16px;
  }

  body.page:has(.bwl-official-sources) #main .entry-title {
    font-size: clamp(25px, 7.2vw, 30px);
  }

  body.page:has(.bwl-official-sources) #main .entry-content {
    margin-top: 20px;
  }

  .bwl-official-sources__intro {
    font-size: 15px;
    line-height: 1.78;
  }

  .bwl-official-sources__panel {
    margin-top: 22px;
    padding: 28px 20px;
    border-radius: 15px;
  }

  .bwl-official-sources__message {
    margin-top: 16px;
    font-size: 15.5px;
    line-height: 1.78;
  }

  .bwl-official-sources__home {
    width: 100%;
    margin-top: 24px;
  }
}

/* Compact global footer. Keep Cocoon's existing footer content and links,
   while placing the full-width background behind a centered inner layout. */
body #footer.footer-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid rgba(132, 205, 226, 0.22);
  border-radius: 0;
  background: linear-gradient(135deg, #062b4e 0%, #0a3a67 66%, #105c7d 100%);
  box-shadow: none;
}

body #footer #footer-in.footer-in {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px;
}

body #footer .footer-bottom {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  grid-template-areas:
    "brand nav"
    "copyright copyright";
  align-items: center;
  column-gap: 18px;
  row-gap: 4px;
  width: 100%;
  min-height: 96px;
  margin: 0;
  padding: 17px 74px 13px 26px;
}

body #footer .footer-bottom-logo {
  position: static;
  grid-area: brand;
  width: auto;
  margin: 0;
}

body #footer .logo-footer,
body #footer .footer-bottom-logo .site-name-text-link {
  display: flex;
  width: auto;
  min-height: 40px;
  align-items: center;
  justify-content: flex-start;
  margin: 0;
  padding: 0;
  text-align: left;
}

body #footer .footer-bottom-logo .site-name-text-link::before {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  margin-right: 10px;
  border-radius: 10px;
  background: url("/wp-content/uploads/2026/08/bousaiwxlab-site-icon-20260817-v2-300x300.png") center / cover no-repeat;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.16);
  content: "";
}

body #footer .footer-bottom-logo .site-name-text {
  position: static;
  width: auto;
  height: auto;
  color: rgba(255, 255, 255, 0.96);
  font-size: 15px;
  font-weight: 760;
  line-height: 1.4;
  letter-spacing: 0.015em;
  text-shadow: none;
  white-space: nowrap;
}

body #footer .footer-bottom-content {
  display: contents;
}

body #footer #navi-footer {
  grid-area: nav;
  width: 100%;
  margin: 0;
  font-size: 13px;
  line-height: 1.4;
  text-align: right;
}

body #footer #navi-footer-in,
body #footer .menu-footer {
  width: 100%;
}

body #footer .menu-footer {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}

body #footer .menu-footer > li {
  flex: 0 0 auto;
  margin: 0;
  border: 0;
}

body #footer .menu-footer > li + li {
  border-left: 1px solid rgba(255, 255, 255, 0.28);
}

body #footer .menu-footer > li > a {
  display: flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 6px 9px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 620;
  line-height: 1.35;
  white-space: nowrap;
}

body #footer .copyright {
  grid-area: copyright;
  width: 100%;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: 12.5px;
  line-height: 1.4;
  text-align: center;
}

body #go-to-top {
  right: max(20px, calc((100vw - 1440px) / 2 + 26px));
  bottom: 20px;
  width: 42px;
  height: 42px;
}

body #go-to-top .go-to-top-button {
  display: flex !important;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background: linear-gradient(145deg, #178b88, #277e78);
  box-shadow: 0 6px 15px rgba(2, 29, 51, 0.2);
  color: #fff;
}

@media screen and (max-width: 1179px) {
  body #footer .footer-bottom {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "brand"
      "nav"
      "copyright";
    justify-items: center;
    row-gap: 6px;
    min-height: 0;
    padding: 18px 72px 15px 24px;
  }

  body #footer .footer-bottom-logo,
  body #footer #navi-footer {
    justify-self: center;
  }

  body #footer .menu-footer {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media screen and (max-width: 600px) {
  body #footer.footer-container {
    width: 100%;
    margin: 0;
    border-radius: 0;
  }

  body #footer #footer-in.footer-in {
    padding-right: 12px;
    padding-left: 12px;
  }

  body #footer .footer-bottom {
    row-gap: 10px;
    padding: 20px 52px 18px 16px;
  }

  body #footer .footer-bottom-logo .site-name-text-link::before {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }

  body #footer .footer-bottom-logo .site-name-text {
    font-size: 14.5px;
  }

  body #footer #navi-footer {
    font-size: 13px;
  }

  body #footer .menu-footer {
    gap: 0 2px;
  }

  body #footer .menu-footer > li + li {
    border-left: 0;
  }

  body #footer .menu-footer > li:nth-child(even) {
    border-left: 1px solid rgba(255, 255, 255, 0.22);
  }

  body #footer .menu-footer > li > a {
    min-height: 44px;
    padding: 8px 7px;
    font-size: 13px;
  }

  body #footer .copyright {
    font-size: 12px;
    line-height: 1.55;
  }

  body #go-to-top {
    right: 20px;
    bottom: 18px;
  }
}

/* 2026-08-22 shared global HTML-overlay header.
   The supplied background stays unmodified; logo, copy, links, and interaction
   remain real HTML so they can be changed independently in WordPress. */
body.body {
  --bousai-global-header-height: clamp(110px, 7.617vw, 156px);
}

body.body #header-container {
  width: 100%;
  height: var(--bousai-global-header-height) !important;
  min-height: var(--bousai-global-header-height) !important;
  overflow: hidden;
  border: 0 !important;
  border-bottom: 1px solid rgba(114, 211, 255, 0.72) !important;
  background-color: #174d82 !important;
  background-image: url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousai-header-background-html-overlay-20260822.png") !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: 100% auto !important;
  box-shadow: 0 5px 16px rgba(2, 19, 43, 0.2) !important;
}

body.body #header-container::before,
body.body #header-container::after {
  display: none !important;
  content: none !important;
}

body.body #header-container-in {
  position: relative;
  z-index: 2;
  display: grid !important;
  grid-template-columns: minmax(520px, 48%) minmax(0, 52%);
  width: 100%;
  max-width: 2048px;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 auto;
  padding: 0 clamp(20px, 2.25vw, 46px);
  align-items: stretch !important;
  box-sizing: border-box;
}

body.body #header,
body.body #header-in,
body.body #header .header-in,
body.body #navi,
body.body #navi-in,
body.body #navi .navi-in,
body.body #navi .navi-in > ul,
body.body #navi .navi-in > ul > li {
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.body #header,
body.body #navi,
body.body #header-in,
body.body #navi-in {
  width: 100%;
  max-width: none;
}

body.body #header-in {
  display: grid !important;
  grid-template-columns: clamp(72px, 5.4vw, 96px) minmax(0, 1fr);
  grid-template-rows: 1fr 1fr;
  column-gap: clamp(12px, 1vw, 18px);
  align-content: center;
  align-items: stretch;
  padding: 0;
  text-align: left;
  box-sizing: border-box;
}

body.body #header-in::before,
body.body .bousai-top-header-logo-link::before,
body.body .bousai-top-header-logo-link::after,
body.body #header .logo-header a::before,
body.body #header .logo-header a::after,
body.body #header .tagline::before,
body.body #header .tagline::after {
  display: none !important;
  content: none !important;
}

body.body .bousai-top-header-logo-link {
  grid-column: 1;
  grid-row: 1 / 3;
  align-self: center;
  display: block;
  width: clamp(72px, 5.4vw, 96px);
  height: clamp(72px, 5.4vw, 96px);
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0 !important;
  border-radius: 16px;
  color: transparent !important;
  outline: 0 !important;
  background: transparent;
  box-shadow: none;
  filter: none;
  opacity: 1;
  transform: none;
  text-decoration: none;
}

body.body .bousai-top-header-logo-image {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border-color: transparent !important;
  color: transparent !important;
  outline-color: transparent !important;
  object-fit: contain;
  object-position: center;
}

body.body #header .logo-header {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  display: flex;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 0 0 4px;
  text-align: left;
}

body.body #header .logo-header a,
body.body #header .logo-header a:not(:hover) {
  display: inline-flex;
  width: auto !important;
  min-width: 0;
  height: auto;
  min-height: 0 !important;
  align-items: flex-end;
  justify-content: flex-start;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  color: #ffffff !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  text-decoration: none !important;
}

body.body #header .site-name-text,
body.body #header .site-name-text-link,
body.body #header .site-name-text-link:not(:hover) {
  color: #ffffff !important;
  font-size: clamp(24px, 2.02vw, 32px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: 0.01em;
  text-align: left;
  white-space: nowrap;
  text-shadow: 0 2px 8px rgba(0, 13, 35, 0.72) !important;
}

body.body #header .tagline {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  display: block;
  width: 100% !important;
  max-width: none !important;
  height: auto;
  min-height: 0;
  margin: 0 !important;
  padding: 4px 0 0 !important;
  color: rgba(247, 252, 255, 0.96) !important;
  font-size: clamp(12px, 1.02vw, 16px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.025em;
  text-align: left;
  white-space: nowrap;
  text-shadow: 0 1px 7px rgba(0, 13, 35, 0.78) !important;
}

body.body .bousai-top-header-logo-link:hover:not(:focus-visible),
body.body #header .logo-header a:hover:not(:focus-visible) {
  border-color: transparent !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  text-decoration: none !important;
}

body.body #navi .menu-pc {
  display: grid !important;
  grid-template-columns: 0.86fr 1.18fr 1.18fr 1.36fr 1.72fr 2fr 0.56fr;
  align-items: stretch;
  width: 100%;
  max-width: none;
}

body.body #navi .menu-mobile {
  display: none !important;
}

body.body #navi .navi-in > ul > li {
  position: relative;
  width: 100% !important;
}

body.body #navi .menu-pc > li + li {
  padding-left: 1px;
}

body.body #navi .navi-in > ul > li > a,
body.body #navi .navi-in > ul > li > a:not(:hover),
body.body #navi .navi-in > ul > li.current-menu-item > a,
body.body #navi .navi-in > ul > li.current_page_item > a {
  display: flex;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0 7px;
  border: 0 !important;
  color: rgba(255, 255, 255, 0.96) !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  transform: none !important;
  text-decoration: none !important;
  text-shadow: 0 1px 6px rgba(0, 13, 35, 0.74) !important;
}

body.body #navi .caption-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

body.body #navi .menu-pc .caption-wrap,
body.body #navi .menu-pc .item-label {
  width: max-content !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}

body.body #navi .menu-pc .item-label {
  overflow: visible !important;
}

body.body #navi .item-label {
  position: relative;
  display: inline-block;
  color: inherit;
  font-size: clamp(12px, 0.98vw, 15px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

body.body #navi .navi-in > ul > li > a::before,
body.body #navi .navi-in > ul > li > a::after {
  display: none !important;
  content: none !important;
}

body.body #navi .item-label::after {
  position: absolute;
  right: -7px;
  bottom: -10px;
  left: -7px;
  display: block;
  height: 2px;
  content: "";
  pointer-events: none;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, #bcecff 16%, #f4fdff 50%, #75d4ff 84%, transparent);
  box-shadow: 0 0 7px rgba(121, 220, 255, 0.9), 0 3px 12px rgba(46, 171, 255, 0.72);
  opacity: 0;
  transform: scaleX(0.45);
  transform-origin: center;
  transition: opacity 150ms ease, transform 150ms ease;
}

body.body #navi .navi-in > ul > li > a:hover,
body.body #navi .navi-in > ul > li.current-menu-item > a:hover,
body.body #navi .navi-in > ul > li.current_page_item > a:hover {
  color: #ffffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.body #navi .navi-in > ul > li > a:hover .item-label::after,
body.body #navi .navi-in > ul > li > a:focus-visible .item-label::after {
  opacity: 1;
  transform: scaleX(1);
}

body.body .bousai-top-header-logo-link:focus-visible,
body.body #header .logo-header a:focus-visible,
body.body #navi .navi-in > ul > li > a:focus-visible {
  border-radius: 6px;
  outline: 2px solid #bcecff !important;
  outline-offset: -3px;
  background: rgba(11, 64, 113, 0.18) !important;
  box-shadow: none !important;
}

@media screen and (max-width: 1020px) {
  body.body {
    --bousai-global-header-height: 156px;
  }

  body.body #header-container {
    background-position: 52% center !important;
    background-size: auto 100% !important;
  }

  body.body #header-container-in {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 94px 62px;
    max-width: none;
    padding: 0;
  }

  body.body #header {
    grid-column: 1;
    grid-row: 1;
  }

  body.body #navi {
    grid-column: 1;
    grid-row: 2;
  }

  body.body #header-in {
    grid-template-columns: 72px minmax(0, 1fr);
    width: calc(100% - 32px);
    margin: 0 auto !important;
    column-gap: 14px;
  }

  body.body .bousai-top-header-logo-link {
    width: 68px;
    height: 68px;
    border-radius: 13px;
  }

  body.body #header .site-name-text,
  body.body #header .site-name-text-link,
  body.body #header .site-name-text-link:not(:hover) {
    font-size: clamp(21px, 3.2vw, 27px);
  }

  body.body #header .tagline {
    font-size: clamp(12px, 1.7vw, 14px);
  }

  body.body #navi .menu-pc {
    display: none !important;
  }

  body.body #navi .menu-mobile {
    display: grid !important;
    grid-template-columns: 0.86fr 1.08fr 1.08fr 1.22fr 1.54fr 1.72fr 0.54fr;
    width: 100%;
  }

  body.body #navi .menu-mobile > li + li {
    border-left: 1px solid rgba(218, 242, 255, 0.2) !important;
  }

  body.body #navi .item-label {
    font-size: clamp(11px, 1.7vw, 14px);
  }

  body.body #navi .item-label::after {
    bottom: -7px;
  }
}

@media screen and (max-width: 600px) {
  body.body {
    --bousai-global-header-height: 176px;
  }

  body.body #header-container {
    background-position: 51% center !important;
  }

  body.body #header-container-in {
    grid-template-rows: 104px 72px;
  }

  body.body #header-in {
    grid-template-columns: 58px minmax(0, 1fr);
    width: calc(100% - 20px);
    column-gap: 10px;
  }

  body.body .bousai-top-header-logo-link {
    width: 56px;
    height: 56px;
    border-radius: 11px;
  }

  body.body #header .logo-header {
    padding-bottom: 3px;
  }

  body.body #header .site-name-text,
  body.body #header .site-name-text-link,
  body.body #header .site-name-text-link:not(:hover) {
    font-size: clamp(17px, 4.85vw, 20px);
    letter-spacing: 0;
  }

  body.body #header .tagline {
    padding-top: 3px;
    font-size: clamp(10.5px, 2.85vw, 12px);
    letter-spacing: 0;
  }

  body.body #navi .menu-mobile {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(2, 36px);
  }

  body.body #navi .navi-in > ul > li:nth-child(-n + 4) {
    grid-column: span 3;
  }

  body.body #navi .navi-in > ul > li:nth-child(n + 5) {
    grid-column: span 4;
  }

  body.body #navi .navi-in > ul > li:nth-child(1),
  body.body #navi .navi-in > ul > li:nth-child(5) {
    border-left: 0 !important;
  }

  body.body #navi .navi-in > ul > li:not(:nth-child(1)):not(:nth-child(5)) {
    border-left: 1px solid rgba(218, 242, 255, 0.2) !important;
  }

  body.body #navi .navi-in > ul > li > a,
  body.body #navi .navi-in > ul > li > a:not(:hover),
  body.body #navi .navi-in > ul > li.current-menu-item > a,
  body.body #navi .navi-in > ul > li.current_page_item > a {
    padding: 0 4px;
  }

  body.body #navi .item-label {
    font-size: 11.5px;
  }

  body.body #navi .item-label::after {
    right: -5px;
    bottom: -5px;
    left: -5px;
  }
}
/* 2026-08-22 July 2026 full-chart density baseline.
   Keep all 31 source charts uncropped while compacting only calendar-owned
   spacing, date labels, weekday labels, and the one-line test comment. */
.page-id-57 .bousai-calendar-density-test .bousai-calendar-archive-nav {
  margin-bottom: 3px;
  padding: 5px 8px 6px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel {
  gap: 8px;
  margin-bottom: 4px;
  padding: 0 2px 5px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel button,
.page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel select {
  min-height: 30px;
  font-size: 11px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel button {
  min-width: 84px;
  padding: 4px 8px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-months {
  gap: 3px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-months button,
.page-id-57 .bousai-calendar-density-test .bousai-calendar-months span,
.page-id-57 .bousai-calendar-density-test .bousai-calendar-months strong {
  min-height: 27px;
  font-size: 11px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-swipe-note {
  margin-bottom: 4px;
}

.page-id-57 .bousai-calendar-density-test .bousai-month-calendar-scroll {
  padding: 0 0 4px;
}

.page-id-57 .bousai-calendar-density-test .bousai-month-weekdays span {
  padding: 2px 5px;
  font-size: 12px;
  line-height: 1.2;
}

.page-id-57 .bousai-calendar-density-test .bousai-month-calendar {
  grid-auto-rows: auto !important;
}

.page-id-57 .bousai-calendar-density-test .bousai-month-calendar li,
.page-id-57 .bousai-calendar-density-test .bousai-month-calendar .is-empty {
  height: auto !important;
  min-height: 0 !important;
  margin: 0;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-day {
  display: flex;
  height: 100%;
  flex-direction: column;
  padding: 3px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-day > strong {
  margin: 0 0 2px;
  font-size: 15px;
  line-height: 1.1;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link {
  display: block;
  width: min(100%, 138px);
  height: auto;
  margin: 0 auto;
  padding: 0;
  border-radius: 5px;
  background: transparent;
  box-shadow: none;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link:hover {
  background: transparent;
  box-shadow: 0 0 0 2px #7eb8d7;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link:focus-visible {
  outline: 3px solid #38aebc;
  outline-offset: 2px;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 600 / 581;
  border-radius: 5px;
  object-fit: contain;
  object-position: center;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-test-comment {
  display: block;
  overflow: visible;
  margin-top: 1px;
  color: #314b62;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-overflow: clip;
  overflow-wrap: anywhere;
  white-space: normal;
}

.page-id-57 .bousai-calendar-density-test .bousai-calendar-source {
  margin-top: 6px;
  font-size: 11px;
}

@media screen and (max-width: 600px) {
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel {
    gap: 5px;
    padding-bottom: 5px;
  }

  .page-id-57 .bousai-calendar-density-test .bousai-calendar-year-controls {
    padding-top: 5px;
  }

  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months {
    gap: 4px;
    padding-bottom: 4px;
  }

  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months li {
    flex-basis: 58px;
  }
}

/* 2026-08-22 official information directory.
   This final page-scoped block replaces the preparation layout without
   changing the shared header, footer, TOP cards, or other public pages. */
body.page:has(.bwl-official-sources) #content-in {
  width: 100%;
  max-width: none;
}

body.page:has(.bwl-official-sources) #main {
  width: min(1240px, calc(100% - 48px));
  max-width: none;
  margin: 30px auto 38px;
  padding: clamp(28px, 3.2vw, 42px);
  border-radius: 22px;
}

body.page:has(.bwl-official-sources) #main .entry-title {
  max-width: 980px;
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.35;
}

body.page:has(.bwl-official-sources) #main .entry-content {
  margin-top: 18px;
}

.bwl-official-sources {
  width: 100%;
  max-width: 1140px;
}

.bwl-official-sources__lead {
  max-width: 850px;
  margin: 0 auto;
  text-align: center;
}

.bwl-official-sources__eyebrow,
.bwl-official-sources__section-kicker,
.bwl-official-sources__notice-label {
  margin: 0;
  color: #087d91;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.bwl-official-sources__intro {
  max-width: 820px;
  margin: 5px auto 0;
  color: #456477;
  font-size: 15.5px;
  line-height: 1.75;
}

.bwl-official-sources__section {
  margin-top: 26px;
}

.bwl-official-sources__section--featured {
  margin-top: 28px;
  padding: 22px;
  border: 1px solid #d5e7ee;
  border-radius: 18px;
  background: linear-gradient(145deg, #f6fbfd 0%, #edf7fa 100%);
}

.bwl-official-sources__section-heading {
  position: relative;
  margin-bottom: 12px;
  padding-left: 15px;
}

.bwl-official-sources__section-heading::before {
  position: absolute;
  top: 2px;
  bottom: 2px;
  left: 0;
  width: 4px;
  border-radius: 999px;
  background: linear-gradient(180deg, #48a8dd, #2a8c8a);
  content: "";
}

body .entry-content .bwl-official-sources__section-heading h2 {
  margin: 1px 0 0 !important;
  padding: 0;
  border: 0;
  background: transparent;
  color: #0a3459;
  font-size: clamp(20px, 2vw, 24px) !important;
  line-height: 1.4;
}

.bwl-official-sources__featured-grid,
.bwl-official-sources__compact-grid {
  display: grid;
  align-items: stretch;
  gap: 12px;
}

.bwl-official-sources__featured-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bwl-official-sources__featured-card,
.bwl-official-sources__compact-card {
  display: flex;
  overflow: hidden;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  border: 1px solid #c9dfe9;
  border-top: 4px solid #2495a3;
  border-radius: 13px;
  background: #ffffff;
  box-shadow: 0 7px 18px rgba(11, 58, 103, 0.065);
  color: #0a3459 !important;
  text-decoration: none !important;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.bwl-official-sources__featured-media {
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1672 / 941;
  background: #edf5f8;
  line-height: 0;
}

.bwl-official-sources__featured-media img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
}

.bwl-official-sources__featured-body {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  padding: 12px 13px 13px;
}

.bwl-official-sources__source {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  min-height: 22px;
  margin: 0;
  padding: 2px 7px;
  border: 1px solid #cce4ea;
  border-radius: 999px;
  background: #edf8fa;
  color: #316879;
  font-size: 9.5px;
  font-weight: 760;
  line-height: 1.35;
}

.bwl-official-sources__card-title {
  display: block;
  margin-top: 7px;
  color: #0a3459;
  font-size: 16px;
  font-weight: 780;
  line-height: 1.35;
}

.bwl-official-sources__description {
  display: block;
  margin-top: 4px;
  color: #526b7c;
  font-size: 11.5px;
  line-height: 1.58;
}

.bwl-official-sources__cta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 36px;
  margin-top: auto;
  padding-top: 9px;
  color: #087c92;
  font-size: 11px;
  font-weight: 760;
  line-height: 1.4;
}

.bwl-official-sources__compact-grid--danger {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bwl-official-sources__compact-grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bwl-official-sources__compact-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.bwl-official-sources__compact-card {
  min-height: 142px;
  padding: 13px 14px 12px;
  border-top-width: 3px;
}

.bwl-official-sources__compact-grid--single .bwl-official-sources__compact-card {
  min-height: 126px;
}

.bwl-official-sources__notice {
  display: grid;
  align-items: center;
  margin-top: 26px;
  padding: 17px 19px;
  border: 1px solid #bedde8;
  border-radius: 15px;
  background: linear-gradient(135deg, #edf8fb 0%, #f8fcfd 100%);
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: 22px;
}

body .entry-content .bwl-official-sources__notice h2 {
  margin: 3px 0 0 !important;
  padding: 0;
  border: 0;
  background: transparent;
  color: #0a3459;
  font-size: 17px !important;
  line-height: 1.45;
}

.bwl-official-sources__notice > p {
  margin: 0;
  color: #48677a;
  font-size: 12.5px;
  line-height: 1.7;
}

.bwl-official-sources__home-wrap {
  margin: 20px 0 0;
  text-align: center;
}

.bwl-official-sources__home {
  min-height: 42px;
  margin: 0;
  padding: 8px 16px;
  border-color: #bfdbe5;
  background: #ffffff;
  box-shadow: none;
  color: #24718b !important;
  font-size: 12.5px;
}

.bwl-official-sources__featured-card:focus-visible,
.bwl-official-sources__compact-card:focus-visible,
.bwl-official-sources__home:focus-visible {
  outline: 3px solid #25a0c4;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-official-sources__featured-card:hover,
  .bwl-official-sources__compact-card:hover {
    border-color: #72b8c7;
    box-shadow: 0 11px 23px rgba(11, 58, 103, 0.11);
    color: #0a3459 !important;
    transform: translateY(-2px);
  }

  .bwl-official-sources__home:hover {
    border-color: #7fbdca;
    background: #edf8fa;
    box-shadow: none;
    color: #0a5c78 !important;
    transform: translateY(-1px);
  }
}

@media screen and (max-width: 960px) {
  body.page:has(.bwl-official-sources) #content-in {
    width: 100%;
  }

  body.page:has(.bwl-official-sources) #main {
    margin-top: 24px;
    padding: 28px 24px 32px;
  }

  .bwl-official-sources__featured-grid,
  .bwl-official-sources__compact-grid--danger {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  body.page:has(.bwl-official-sources) #content-in {
    width: 100%;
  }

  body.page:has(.bwl-official-sources) #main {
    width: calc(100% - 24px);
    margin: 14px auto 24px;
    padding: 24px 14px 26px;
    border-radius: 15px;
  }

  body.page:has(.bwl-official-sources) #main .entry-title {
    font-size: clamp(25px, 7vw, 29px);
  }

  .bwl-official-sources__intro {
    font-size: 14px;
    line-height: 1.7;
  }

  .bwl-official-sources__section,
  .bwl-official-sources__section--featured {
    margin-top: 22px;
  }

  .bwl-official-sources__section--featured {
    padding: 15px;
    border-radius: 14px;
  }

  .bwl-official-sources__featured-grid,
  .bwl-official-sources__compact-grid--danger,
  .bwl-official-sources__compact-grid--two {
    grid-template-columns: minmax(0, 1fr);
  }

  .bwl-official-sources__featured-body {
    padding: 13px 14px 14px;
  }

  .bwl-official-sources__compact-card,
  .bwl-official-sources__compact-grid--single .bwl-official-sources__compact-card {
    min-height: 132px;
    padding: 13px 14px 12px;
  }

  .bwl-official-sources__notice {
    padding: 16px;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .bwl-official-sources__home {
    width: auto;
    min-height: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bwl-official-sources__featured-card,
  .bwl-official-sources__compact-card,
  .bwl-official-sources__home {
    transition: none;
  }

  .bwl-official-sources__featured-card:hover,
  .bwl-official-sources__compact-card:hover,
  .bwl-official-sources__home:hover {
    transform: none;
  }
}

/* 2026-09-04: Published posts use a single-column reading surface. The
   unused Cocoon widget sidebar must not fall below the article. */
body.single.single-post #sidebar {
  display: none !important;
}

/* 2026-09-04: Keep the published article index as a clean, responsive card grid. */
body.page-id-128:not(.bwl-articles-index-page) #content-in {
  display: block;
  width: min(1180px, calc(100% - 32px));
  margin-right: auto;
  margin-left: auto;
}

body.page.page-id-128:not(.bwl-articles-index-page) #main {
  box-sizing: border-box;
  width: 100%;
  max-width: 1180px;
  margin-right: auto;
  margin-left: auto;
}

body.page-id-128 #sidebar,
body.page-id-128 .bwl-articles-page #toc,
body.page-id-128 .article-header .date-tags,
body.page-id-128 .article-footer.entry-footer {
  display: none !important;
}

body.page-id-128 .entry-content {
  width: 100%;
}

body.page-id-128 .bwl-articles-page > .wp-block-query {
  width: 100%;
  max-width: none !important;
}

body.page-id-128 .bwl-articles-page .wp-block-post-template {
  display: grid;
  width: 100%;
  max-width: none !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 24px;
  margin: 0;
  padding: 0;
}

body.page-id-128 .bwl-articles-page .wp-block-post {
  min-width: 0;
  margin: 0;
  list-style: none;
}

body.page-id-128 .bwl-articles-page .wp-block-post > .wp-block-group {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  height: 100%;
  margin: 0;
  padding: 18px !important;
  box-shadow: 0 10px 26px rgba(7, 48, 82, 0.08);
}

body.page-id-128 .bwl-articles-page .wp-block-post-featured-image {
  overflow: hidden;
  margin: 0 0 14px !important;
  border-radius: 10px;
}

body.page-id-128 .bwl-articles-page .wp-block-post-featured-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

body.page-id-128 .bwl-articles-page .wp-block-post-terms {
  margin: 0 0 10px !important;
  color: var(--bousai-teal);
  font-size: 13px !important;
  font-weight: 700;
  line-height: 1.5;
}

body.page-id-128 .bwl-articles-page .wp-block-post-title {
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--bousai-navy-deep) !important;
  font-size: 20px !important;
  font-weight: 750;
  line-height: 1.48 !important;
  letter-spacing: 0.01em;
}

body.page-id-128 .bwl-articles-page .wp-block-post-title::before,
body.page-id-128 .bwl-articles-page .wp-block-post-title::after {
  display: none !important;
  content: none !important;
}

body.page-id-128 .bwl-articles-page .wp-block-post-title a {
  color: var(--bousai-navy-deep);
  text-decoration: none;
}

body.page-id-128 .bwl-articles-page .wp-block-post-title a:hover {
  color: var(--bousai-blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

body.page-id-128 .bwl-articles-page .wp-block-post-date {
  margin: 0 0 12px !important;
  color: var(--bousai-muted);
  font-size: 13px !important;
  line-height: 1.5;
}

body.page-id-128 .bwl-articles-page .wp-block-post-excerpt {
  display: flex;
  flex: 1;
  flex-direction: column;
  margin: 0 !important;
  color: var(--bousai-text);
  font-size: 15px;
  line-height: 1.75;
}

body.page-id-128 .bwl-articles-page .wp-block-post-excerpt__excerpt {
  margin: 0;
}

body.page-id-128 .bwl-articles-page .wp-block-post-excerpt__more-text {
  margin: auto 0 0;
  padding-top: 16px;
}

body.page-id-128 .bwl-articles-page .wp-block-post-excerpt__more-link {
  font-weight: 700;
  text-underline-offset: 3px;
}

@media screen and (max-width: 960px) {
  body.page-id-128:not(.bwl-articles-index-page) #content-in {
    width: calc(100% - 28px);
  }

  body.page.page-id-128:not(.bwl-articles-index-page) #main {
    padding: 30px 24px;
  }

  body.page-id-128 .bwl-articles-page .wp-block-post-template {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}

@media screen and (max-width: 600px) {
  body.page-id-128:not(.bwl-articles-index-page) #content-in {
    width: calc(100% - 20px);
  }

  body.page.page-id-128:not(.bwl-articles-index-page) #main {
    margin-top: 14px;
    margin-bottom: 24px;
    padding: 24px 14px 26px;
    border-radius: 15px;
  }

  body.page-id-128 .bwl-articles-page .wp-block-post-template {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  body.page-id-128 .bwl-articles-page .wp-block-post > .wp-block-group {
    padding: 15px !important;
  }

  body.page-id-128 .bwl-articles-page .wp-block-post-title {
    font-size: 19px !important;
  }
}

/* 2026-09-04: Category archives are single-column index pages. Keep the
   unused Cocoon widget sidebar from dropping below every category listing. */
body.archive.category:not(.bwl-articles-index-page) #content-in {
  display: block;
}

body.archive.category:not(.bwl-articles-index-page) #main {
  float: none;
  box-sizing: border-box;
  width: 100%;
  max-width: 860px;
  margin-right: auto;
  margin-left: auto;
}

body.archive.category:not(.bwl-articles-index-page) #sidebar {
  display: none !important;
}

/* 2026-09-04: Six compact category entrances on the home hero. */
.bousai-home-hero-inner {
  width: min(1384px, calc(100% - 32px));
}

.bousai-home-theme-links {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.bousai-home-theme-card {
  min-height: 138px;
  padding: 12px 8px;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 4px;
  row-gap: 8px;
  align-content: start;
  align-items: start;
}

.bousai-home-theme-icon {
  width: 48px;
  height: 48px;
  grid-column: 1;
  grid-row: 1;
}

.bousai-home-theme-icon svg {
  display: block;
  width: 46px;
  height: 46px;
}

.bousai-home-theme-icon img {
  display: block;
  width: 64px;
  max-width: none;
  height: 64px;
  object-fit: contain;
}

.bousai-home-theme-icon--image {
  overflow: hidden;
  place-items: center;
  background: transparent;
  box-shadow: none;
}

.bousai-home-theme-copy {
  display: contents;
}

.bousai-home-theme-copy strong {
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 15.5px;
  line-height: 1.35;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.bousai-home-theme-copy small {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  margin-top: 0;
  font-size: 11.5px;
  line-height: 1.55;
}

@media screen and (max-width: 1100px) {
  .bousai-home-theme-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bousai-home-theme-copy strong {
    white-space: normal;
  }
}

@media screen and (max-width: 720px) {
  .bousai-home-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  .bousai-home-hero-inner {
    width: calc(100% - 24px);
  }
}

@media screen and (max-width: 520px) {
  .bousai-home-theme-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .bousai-home-theme-card {
    min-height: 112px;
  }
}


/* 2026-09-05: Six balanced category entrances; align the hero's inner
   content with the complete lower content frame while the background remains
   full-bleed. */
.bousai-home-hero-inner {
  width: min(1240px, calc(100% - 48px));
}

.bousai-home-lead {
  margin-right: 0;
  margin-left: 0;
}

.bousai-home-theme-links {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.bousai-home-theme-card {
  min-height: 142px;
  padding: 13px 10px;
  grid-template-columns: 52px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: 6px;
  row-gap: 8px;
  align-content: start;
  align-items: start;
}

.bousai-home-theme-icon {
  width: 52px;
  height: 52px;
  grid-column: 1;
  grid-row: 1;
}

.bousai-home-theme-icon svg {
  display: block;
  width: 48px;
  height: 48px;
}

.bousai-home-theme-icon img {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 68px;
  max-width: none;
  height: 68px;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.bousai-home-theme-icon--image {
  position: relative;
  overflow: hidden;
  place-items: center;
  background: transparent;
  box-shadow: none;
}

.bousai-home-theme-card[href="/category/weather-outlook/"] .bousai-home-theme-icon img {
  top: calc(50% + 2px);
  left: calc(50% + 1px);
}

.bousai-home-theme-card[href="/category/disaster-reports/"] .bousai-home-theme-icon img {
  top: calc(50% + 1px);
}

.bousai-home-theme-card[href="/category/blog-notices/"] .bousai-home-theme-icon img {
  top: calc(50% + 2px);
  width: 84px;
  height: 84px;
}

.bousai-home-theme-copy {
  display: contents;
}

.bousai-home-theme-copy strong {
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  font-size: 15.5px;
  line-height: 1.35;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.bousai-home-theme-copy small {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  margin-top: 0;
  font-size: 11.5px;
  line-height: 1.55;
}

@media screen and (max-width: 1100px) {
  .bousai-home-theme-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .bousai-home-theme-copy strong {
    white-space: normal;
  }
}

@media screen and (max-width: 720px) {
  .bousai-home-theme-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 600px) {
  .bousai-home-hero-inner {
    width: calc(100% - 24px);
  }
}

@media screen and (max-width: 520px) {
  .bousai-home-theme-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .bousai-home-theme-card {
    min-height: 112px;
  }
}

/* The original-tools landing page is intentionally self-contained. */
body.page-id-569 #sidebar {
  display: none;
}

/* 2026-09-05: original-tools selected-design shell; page 569 only. */
body.page-id-569 #sidebar,
body.page-id-569 .article-header,
body.page-id-569 .article-footer,
body.page-id-569 .breadcrumb,
body.page-id-569 .post-date,
body.page-id-569 .post-update,
body.page-id-569 .author-info,
body.page-id-569 .entry-categories-tags,
body.page-id-569 .pager-post-navi,
body.page-id-569 .sns-share,
body.page-id-569 .sns-follow,
body.page-id-569 .related-entry-heading,
body.page-id-569 .related-list,
body.page-id-569 .comment-area { display: none; }
body.page.page-id-569 #content { margin-top: 0; }
body.page.page-id-569 .content-in { width: 100%; max-width: none; padding: 0; }
body.page.page-id-569 #main { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.page-id-569 .entry-content { margin: 0; }


/* 2026-09-10: shared article index for /articles/ and six category archives. */
body.bwl-articles-index-page {
  background: #f6fbfe;
}

body.bwl-articles-index-page #content-in {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
}

body.bwl-articles-index-page #content-in #main {
  float: none;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 0 0 36px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.bwl-articles-index-page #sidebar,
body.bwl-articles-index-page .article-header,
body.bwl-articles-index-page .article-footer,
body.bwl-articles-index-page .breadcrumb,
body.bwl-articles-index-page .entry-content > .toc,
body.bwl-articles-index-page .entry-content > #toc {
  display: none !important;
}

body.bwl-articles-index-page .entry-content {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.bwl-articles-index,
.bwl-articles-index * {
  box-sizing: border-box;
}

.bwl-articles-index a {
  text-decoration: none;
}

.bwl-articles-hero {
  width: 100%;
  min-height: 156px;
  color: #0a3155;
  background-color: #eaf6ff;
  background-image: linear-gradient(90deg, rgba(246, 252, 255, 0.98) 0%, rgba(237, 248, 255, 0.94) 44%, rgba(226, 243, 255, 0.84) 100%), url("https://bousai-wx-lab.com/wp-content/uploads/2026/09/articles-hero-sky-20260910-v2.webp");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.bwl-articles-hero__inner {
  display: grid;
  width: min(1240px, calc(100% - 48px));
  min-height: 156px;
  grid-template-areas: "title art" "lead art";
  grid-template-columns: minmax(0, 1fr) 300px;
  align-content: center;
  align-items: center;
  column-gap: 28px;
  row-gap: 8px;
  margin: 0 auto;
  padding: 12px 0;
}

.bwl-articles-hero .bwl-articles-hero__title {
  position: relative;
  grid-area: title;
  align-self: end;
  min-width: 0;
  margin: 0;
  padding: 0 0 0 18px;
  border: 0;
  background: none;
  color: #0a3155;
  font-size: 36px;
  font-weight: 800;
  letter-spacing: 0.025em;
  line-height: 1.2;
}

.bwl-articles-hero .bwl-articles-hero__title::before {
  position: absolute;
  top: 0.12em;
  left: 0;
  width: 4px;
  height: 1em;
  border-radius: 3px;
  background: #1196ad;
  content: "";
}

.bwl-articles-hero__lead {
  grid-area: lead;
  align-self: start;
  min-width: 0;
  margin: 0 !important;
  padding: 0 0 0 18px;
  color: #294a69;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

.bwl-articles-hero__lead-compact {
  display: none;
}

.bwl-articles-hero__art {
  display: block;
  width: 300px;
  max-width: 100%;
  height: auto;
  grid-area: art;
  justify-self: end;
  margin: 0;
  border: 0;
  box-shadow: none;
  object-fit: contain;
}

.bwl-articles-nav {
  width: min(1240px, calc(100% - 48px));
  margin: 12px auto 14px;
}

.bwl-articles-nav__list {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bwl-articles-nav__item {
  min-width: 0;
  margin: 0;
  padding: 0;
}

.bwl-articles-nav__link {
  display: flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 8px;
  border: 1px solid #d5e5ee;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(10, 49, 85, 0.05);
  color: #0a3155 !important;
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.35;
  text-align: center;
}

.bwl-articles-nav__link[aria-current="page"] {
  border-color: #086bdc;
  background: #086bdc;
  box-shadow: 0 6px 14px rgba(8, 107, 220, 0.2);
  color: #fff !important;
  font-weight: 850;
}

.bwl-articles-nav__link:focus-visible,
.bwl-articles-card a:focus-visible,
.bwl-articles-sidebar a:focus-visible,
.bwl-articles-toolbar select:focus-visible,
.bwl-articles-toolbar button:focus-visible {
  outline: 3px solid #1196ad;
  outline-offset: 3px;
}

.bwl-articles-nav__icon {
  display: grid;
  flex: 0 0 23px;
  width: 23px;
  height: 23px;
  place-items: center;
}

.bwl-articles-nav__icon img,
.bwl-articles-nav__icon svg {
  display: block;
  width: 23px;
  height: 23px;
  object-fit: contain;
}

.bwl-articles-nav__link[aria-current="page"] .bwl-articles-nav__icon {
  filter: brightness(0) invert(1);
}

.bwl-articles-layout {
  display: grid;
  width: min(1240px, calc(100% - 48px));
  grid-template-columns: minmax(0, 916px) 300px;
  align-items: start;
  gap: 24px;
  margin: 0 auto;
}

.bwl-articles-toolbar {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 10px;
  color: #0a3155;
}

.bwl-articles-toolbar p {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
  margin: 0 !important;
  font-size: 14px;
}

.bwl-articles-toolbar p strong {
  font-size: 17px;
}

.bwl-articles-toolbar p a {
  margin-left: 6px;
  color: #08799a;
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bwl-articles-toolbar form,
.bwl-articles-toolbar label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.bwl-articles-toolbar form {
  flex: 0 0 auto;
}

.bwl-articles-toolbar label > span {
  flex: 0 0 auto;
  font-size: 12px;
  white-space: nowrap;
}

.bwl-articles-toolbar select,
.bwl-articles-toolbar button {
  min-height: 36px;
  margin: 0;
  border: 1px solid #cfdee8;
  border-radius: 8px;
  background: #fff;
  color: #0a3155;
  font-size: 13px;
}

.bwl-articles-toolbar select {
  padding: 5px 28px 5px 10px;
}

.bwl-articles-toolbar button {
  padding: 5px 9px;
  cursor: pointer;
  font-weight: 700;
}

.bwl-articles-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 20px 18px;
}

.bwl-articles-card {
  overflow: hidden;
  min-width: 0;
  margin: 0;
  border: 1px solid #dce8ef;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(10, 49, 85, 0.07);
}

.bwl-articles-card__image {
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #edf5f8;
}

.bwl-articles-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
}

.bwl-articles-card__placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: #6b8495;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.bwl-articles-card__body {
  display: flex;
  min-height: 250px;
  flex-direction: column;
  padding: 13px 15px 15px;
}

.bwl-articles-card__category {
  width: max-content;
  max-width: 100%;
  margin: 0 0 7px;
  color: #08799a !important;
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.bwl-articles-card .bwl-articles-card__title {
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: #0a3155 !important;
  font-size: 18px !important;
  font-weight: 800;
  line-height: 1.48 !important;
}

.bwl-articles-card .bwl-articles-card__title::before,
.bwl-articles-card .bwl-articles-card__title::after {
  display: none !important;
  content: none !important;
}

.bwl-articles-card__title a {
  color: #0a3155 !important;
}

.bwl-articles-card__date {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px !important;
  color: #6b8090;
  font-size: 12.5px;
  line-height: 1.45;
}

.bwl-articles-card__date > span {
  color: #739db6;
  font-size: 9px;
}

.bwl-articles-card__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 0 !important;
  color: #465e70;
  font-size: 13.5px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.bwl-articles-empty {
  padding: 30px 24px;
  border: 1px solid #d7e7ee;
  border-radius: 13px;
  background: #fff;
  text-align: center;
}

.bwl-articles-empty h2 {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: #0a3155 !important;
  font-size: 20px !important;
}

.bwl-articles-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 24px 0 0;
}

.bwl-articles-pagination .page-numbers {
  display: grid;
  min-width: 38px;
  min-height: 38px;
  place-items: center;
  border: 1px solid #d6e4ec;
  border-radius: 50%;
  background: #fff;
  color: #0a5f9d;
  font-size: 13px;
  font-weight: 750;
}

.bwl-articles-pagination .current {
  border-color: #0872d7;
  background: #0872d7;
  color: #fff;
}

.bwl-articles-sidebar {
  display: grid;
  gap: 14px;
  padding-top: 48px;
}

.bwl-articles-side-card {
  margin: 0;
  padding: 18px;
  border: 1px solid #d8e7ee;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(10, 49, 85, 0.05);
}

.bwl-articles-side-card h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: #0a3155 !important;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.4 !important;
}

.bwl-articles-side-card h2::before,
.bwl-articles-side-card h2::after {
  display: none !important;
  content: none !important;
}

.bwl-articles-side-card h2 > span {
  color: #0874d8;
}

.bwl-articles-side-card__note {
  margin: 2px 0 12px 26px !important;
  color: #6b8191;
  font-size: 11.5px;
}

.bwl-articles-calendar__head {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: center;
  margin-bottom: 8px;
  text-align: center;
}

.bwl-articles-calendar__head a,
.bwl-articles-calendar__head > span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: #0874d8;
  font-size: 24px;
}

.bwl-articles-calendar__head > span {
  color: #c3d0d8;
}

.bwl-articles-calendar__head strong {
  font-size: 13px;
}

.bwl-articles-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  padding: 7px;
  border: 1px solid #e1eaf0;
  border-radius: 8px;
}

.bwl-articles-calendar__weekday,
.bwl-articles-calendar__day,
.bwl-articles-calendar__blank {
  display: grid;
  min-width: 0;
  min-height: 29px;
  place-items: center;
  color: #4d6373;
  font-size: 11px;
}

.bwl-articles-calendar__weekday:nth-child(6),
.bwl-articles-calendar__weekday:nth-child(7) {
  color: #0874d8;
}

.bwl-articles-calendar__day a {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: #e7f3ff;
  color: #075fae !important;
  font-weight: 800;
}

.bwl-articles-calendar__day.is-today {
  box-shadow: inset 0 0 0 1px #09a094;
  border-radius: 50%;
}

.bwl-articles-calendar__day.is-selected a {
  background: #0874d8;
  color: #fff !important;
}

.bwl-articles-months ul {
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.bwl-articles-months li {
  margin: 0;
  border-bottom: 1px solid #edf2f5;
}

.bwl-articles-months li a {
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: #155b8d !important;
  font-size: 12.5px;
}

.bwl-articles-months li b {
  color: #718393;
  font-weight: 600;
}

.bwl-articles-months details {
  margin-top: 8px;
}

.bwl-articles-months summary {
  cursor: pointer;
  color: #0874d8;
  font-size: 12px;
  font-weight: 750;
  text-align: right;
}

.bwl-articles-side-card__empty {
  margin: 10px 0 0 !important;
  color: #6c8190;
  font-size: 12px;
}

.bwl-articles-sidebar .bousai-home-x-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-width: 0;
  aspect-ratio: 1586 / 992;
  border: 1px solid rgba(17, 72, 111, 0.12);
  border-radius: 14px;
  background: #eef4f8;
  box-shadow: 0 8px 20px rgba(11, 58, 103, 0.09);
}

.bwl-articles-sidebar .bousai-home-x-card::before {
  position: absolute;
  z-index: 0;
  inset: -14px;
  background: url("https://bousai-wx-lab.com/wp-content/uploads/2026/08/bousai-x-card-final-1320x1000-1.png") center / cover no-repeat;
  content: "";
  filter: blur(11px);
  opacity: 0.16;
  transform: scale(1.08);
}

.bwl-articles-sidebar .bousai-home-x-card img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

@media (hover: hover) and (pointer: fine) {
  .bwl-articles-nav__link:hover,
  .bwl-articles-card:hover {
    border-color: #8fc8db;
    box-shadow: 0 10px 25px rgba(10, 49, 85, 0.1);
  }

  .bwl-articles-card__title a:hover,
  .bwl-articles-sidebar a:hover {
    color: #0874d8 !important;
  }
}

@media screen and (max-width: 1099px) {
  .bwl-articles-hero,
  .bwl-articles-hero__inner {
    min-height: 136px;
  }

  .bwl-articles-hero__inner {
    grid-template-columns: minmax(0, 1fr) 254px;
    column-gap: 20px;
  }

  .bwl-articles-hero .bwl-articles-hero__title {
    font-size: 30px;
  }

  .bwl-articles-hero__art {
    width: 254px;
  }

  .bwl-articles-nav__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .bwl-articles-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .bwl-articles-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bwl-articles-sidebar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-top: 4px;
  }

  .bwl-articles-x-card {
    grid-column: 1 / -1;
  }
}

@media screen and (max-width: 600px) {
  body.bwl-articles-index-page #content-in #main {
    padding-bottom: 24px;
  }

  .bwl-articles-hero__inner,
  .bwl-articles-nav,
  .bwl-articles-layout {
    width: calc(100% - 24px);
  }

  .bwl-articles-hero {
    min-height: 0;
  }

  .bwl-articles-hero__inner {
    min-height: 116px;
    grid-template-areas: "title art" "lead lead";
    grid-template-columns: minmax(112px, 0.75fr) minmax(0, 1.25fr);
    column-gap: 7px;
    row-gap: 3px;
    padding: 8px 0;
  }

  .bwl-articles-hero .bwl-articles-hero__title {
    align-self: center;
    padding-left: 13px;
    font-size: 25px;
  }

  .bwl-articles-hero__lead {
    padding-left: 0;
    font-size: 13px;
    white-space: nowrap;
  }

  .bwl-articles-hero__lead-wide {
    display: none;
  }

  .bwl-articles-hero__lead-compact {
    display: inline;
  }

  .bwl-articles-hero__art {
    width: min(168px, 100%);
  }

  .bwl-articles-nav {
    margin-top: 7px;
    margin-bottom: 8px;
  }

  .bwl-articles-nav__list {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 4px;
  }

  .bwl-articles-nav__item {
    grid-column: span 3;
  }

  .bwl-articles-nav__item:nth-child(-n + 3) {
    grid-column: span 2;
  }

  .bwl-articles-nav__link {
    min-height: 44px;
    padding: 6px 3px;
    font-size: 11px;
    overflow-wrap: anywhere;
  }

  .bwl-articles-nav__icon {
    display: none;
  }

  .bwl-articles-toolbar {
    min-height: 44px;
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 8px;
  }

  .bwl-articles-toolbar p {
    max-width: none;
    font-size: 12px;
  }

  .bwl-articles-toolbar p strong {
    font-size: 14px;
  }

  .bwl-articles-toolbar label > span {
    display: inline;
  }

  .bwl-articles-toolbar form {
    align-self: flex-end;
  }

  .bwl-articles-toolbar select,
  .bwl-articles-toolbar button {
    min-height: 44px;
    font-size: 12px;
  }

  .bwl-articles-toolbar button {
    padding-right: 7px;
    padding-left: 7px;
  }

  .bwl-articles-grid,
  .bwl-articles-sidebar {
    grid-template-columns: minmax(0, 1fr);
  }

  .bwl-articles-grid {
    gap: 16px;
  }

  .bwl-articles-card__body {
    min-height: 0;
    padding: 12px 14px 14px;
  }

  .bwl-articles-card .bwl-articles-card__title {
    font-size: 17px !important;
  }

  .bwl-articles-card__excerpt {
    font-size: 13px;
  }

  .bwl-articles-sidebar {
    gap: 12px;
    margin-top: 18px;
  }
}

@media screen and (max-width: 359px) {
  .bwl-articles-hero .bwl-articles-hero__title {
    font-size: 23px;
  }

  .bwl-articles-hero__lead {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bwl-articles-nav__link,
  .bwl-articles-card {
    transition: none;
  }
}


/* 2026-09-10: article-index viewport and theme-TOC compatibility adjustments. */
.bwl-articles-index .toc {
  display: none !important;
}

.bwl-articles-index .bwl-articles-nav__list {
  margin: 0 !important;
}

.bwl-articles-index .bwl-articles-nav__item {
  margin: 0 !important;
}

.bwl-articles-index .bwl-articles-nav {
  margin-top: 4px !important;
  margin-bottom: 4px !important;
}

.bwl-articles-empty__title {
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: #0a3155 !important;
  font-size: 20px !important;
  font-weight: 800;
}

.bwl-articles-side-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: #0a3155 !important;
  font-size: 17px !important;
  font-weight: 800;
  line-height: 1.4 !important;
}

.bwl-articles-side-card__title > span {
  color: #0874d8;
}

body.bwl-articles-index-page #content {
  margin-top: 0 !important;
}

body.bwl-articles-index-page #content-in {
  padding-top: 0 !important;
}

body.bwl-articles-index-page #content-in #main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 2026-09-10: smartphone high-density presentation.
   This block is deliberately capped below 768px so the established tablet
   and PC presentation at 768px and above remains the unchanged baseline. */
@media screen and (max-width: 767px) {
  /* Shared header: keep the complete seven-link navigation visible in 4 + 3. */
  body.body {
    --bousai-global-header-height: 116px;
  }

  body.body #header-container-in {
    grid-template-rows: 60px 56px;
  }

  body.body #header,
  body.body #header-in,
  body.body #header .header-in {
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
  }

  body.body #header-in {
    width: calc(100% - 20px);
    padding: 3px 0;
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: 31px 23px;
    column-gap: 8px;
  }

  body.body .bousai-top-header-logo-link {
    width: 38px;
    height: 38px;
    border-radius: 8px;
  }

  body.body #header .logo-header {
    padding-bottom: 0;
  }

  body.body #header .logo-header a {
    min-height: 0;
    padding-left: 0 !important;
  }

  body.body #header .logo-header a::before {
    display: none !important;
  }

  body.body #header .site-name-text,
  body.body #header .site-name-text-link,
  body.body #header .site-name-text-link:not(:hover) {
    font-size: clamp(14px, 4.05vw, 16px);
    line-height: 1.15;
  }

  body.body #header .tagline {
    max-width: none;
    margin: 0 !important;
    padding: 0;
    gap: 4px;
    font-size: clamp(8.5px, 2.35vw, 9.5px);
    line-height: 1.25;
    text-overflow: clip;
    white-space: normal !important;
  }

  body.body #header .tagline::before {
    width: 12px;
    height: 2px;
    flex-basis: 12px;
  }

  body.body #navi,
  body.body #navi .navi-in {
    height: 56px;
  }

  body.body #navi .menu-mobile {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(2, 28px);
  }

  body.body #navi .navi-in > ul > li:nth-child(-n + 4) {
    grid-column: span 3;
  }

  body.body #navi .navi-in > ul > li:nth-child(n + 5) {
    grid-column: span 4;
  }

  body.body #navi .navi-in > ul > li:nth-child(1),
  body.body #navi .navi-in > ul > li:nth-child(5) {
    border-left: 0 !important;
  }

  body.body #navi .navi-in > ul > li {
    height: 28px;
  }

  body.body #navi .navi-in > ul > li > a,
  body.body #navi .navi-in > ul > li > a:not(:hover),
  body.body #navi .navi-in > ul > li.current-menu-item > a,
  body.body #navi .navi-in > ul > li.current_page_item > a {
    height: 28px !important;
    min-height: 28px;
    padding: 0 2px;
  }

  body.body #navi .item-label {
    font-size: clamp(8.5px, 2.45vw, 10px);
    line-height: 1.1;
  }

  body.body #navi .item-label::after {
    bottom: -3px;
  }

  /* Shared bottom controls and footer. */
  body .mobile-footer-menu-buttons {
    height: calc(46px + env(safe-area-inset-bottom));
    min-height: calc(46px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
  }

  body .mobile-footer-menu-buttons > .menu-button,
  body .mobile-footer-menu-buttons > .menu-button > .menu-button-in {
    height: 46px;
    min-height: 46px;
  }

  body .mobile-footer-menu-buttons .menu-icon {
    font-size: 17px;
  }

  body .mobile-footer-menu-buttons .menu-caption {
    font-size: 9px;
  }

  body #go-to-top {
    display: none !important;
  }

  body #footer .footer-bottom {
    row-gap: 7px;
    padding: 14px 12px calc(58px + env(safe-area-inset-bottom));
  }

  body #footer .footer-bottom-logo .site-name-text-link::before {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
  }

  body #footer .footer-bottom-logo .site-name-text {
    font-size: 12px;
  }

  body #footer #navi-footer,
  body #footer .footer-bottom-content {
    width: 100%;
  }

  body #footer .menu-footer {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
  }

  body #footer .menu-footer > li {
    min-width: 0;
  }

  body #footer .menu-footer > li + li,
  body #footer .menu-footer > li:nth-child(even) {
    border-left: 0;
  }

  body #footer .menu-footer > li:nth-child(even) {
    border-left: 1px solid rgba(255, 255, 255, 0.22);
  }

  body #footer .menu-footer > li > a {
    min-height: 32px;
    padding: 4px 5px;
    font-size: 10px;
    line-height: 1.25;
    white-space: normal;
  }

  body #footer .copyright {
    font-size: 10px;
  }

  /* TOP: denser hierarchy without changing copy, order, imagery, or links. */
  body.home .entry-content > .bousai-home-content,
  .bousai-home-hero-inner {
    width: calc(100% - 20px);
  }

  .bousai-home-hero {
    padding: 14px 0 10px;
  }

  .bousai-home-lead {
    margin-bottom: 10px;
  }

  .bousai-home-lead h1 {
    font-size: clamp(24px, 7.35vw, 29px);
    line-height: 1.28;
  }

  .bousai-home-lead p {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.55;
  }

  .bousai-home-theme-links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }

  .bousai-home-theme-card {
    min-height: 118px;
    padding: 7px 6px;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    column-gap: 3px;
    row-gap: 5px;
    border-radius: 9px;
  }

  .bousai-home-theme-icon {
    width: 34px;
    height: 34px;
  }

  .bousai-home-theme-icon svg {
    width: 30px;
    height: 30px;
  }

  .bousai-home-theme-icon img {
    width: 46px;
    height: 46px;
  }

  .bousai-home-theme-card[href="/category/blog-notices/"] .bousai-home-theme-icon img {
    width: 58px;
    height: 58px;
  }

  .bousai-home-theme-copy strong {
    font-size: 11px;
    line-height: 1.25;
    white-space: normal;
  }

  .bousai-home-theme-copy small {
    font-size: 9.5px;
    line-height: 1.4;
  }

  .bousai-home-content {
    row-gap: 16px;
    margin-top: 10px !important;
    margin-bottom: 14px;
  }

  .bousai-home-main-stack {
    gap: 16px;
  }

  .bousai-home-section-heading-row,
  .bwl-official-links__heading {
    margin-bottom: 6px;
  }

  body .entry-content .bousai-home-section-heading-row .bousai-section-heading,
  body .entry-content .bwl-official-links__heading h2 {
    font-size: 18px !important;
  }

  body .entry-content .bousai-home-section-heading-row .bousai-section-heading::before,
  body .entry-content .bwl-official-links__heading h2::before {
    height: 18px;
  }

  .bousai-home-content .bousai-post-grid .wp-block-post-template,
  body.home .bousai-latest-query .wp-block-post-template,
  .bousai-featured-samples,
  .bousai-featured-query .wp-block-post-template,
  .bousai-home-sidebar,
  .bwl-official-links__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .bousai-home-content .bousai-post-grid .wp-block-post,
  .bousai-featured-sample-card,
  .bousai-featured-query .wp-block-post {
    border-radius: 9px;
  }

  .bousai-featured-query .wp-block-post-terms {
    margin: 7px 8px 4px;
    font-size: 9px;
  }

  .bousai-featured-sample-card h3,
  .bousai-featured-query .wp-block-post-title {
    display: block;
    overflow: visible;
    margin: 0 8px 5px;
    font-size: 12px;
    line-height: 1.4;
    -webkit-line-clamp: unset;
  }

  .bousai-featured-sample-card p,
  .bousai-featured-query .wp-block-post-excerpt {
    margin-right: 8px;
    margin-bottom: 8px;
    margin-left: 8px;
    font-size: 9.5px;
    line-height: 1.45;
    -webkit-line-clamp: 3;
  }

  .bousai-home-sidebar {
    gap: 8px;
  }

  .bousai-home-x-card {
    grid-column: auto;
    border-radius: 10px;
  }

  .bwl-calendar-feature {
    border-radius: 10px;
  }

  .bwl-calendar-feature__content {
    padding: 8px;
  }

  .bwl-calendar-feature__eyebrow {
    min-height: 0;
    padding: 3px 6px;
    font-size: 9px;
  }

  .bwl-calendar-feature__title {
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.35;
  }

  .bwl-calendar-feature__description {
    margin-top: 5px;
    font-size: 9.5px;
    line-height: 1.45;
  }

  .bwl-calendar-feature__cta {
    min-height: 34px;
    margin-top: 7px;
    padding: 6px 8px;
    border-radius: 8px;
    font-size: 10px;
  }

  .bwl-calendar-feature__arrow {
    font-size: 21px;
  }

  .bwl-official-links__item {
    padding: 7px;
    border-radius: 9px;
  }

  .bwl-official-links__media {
    width: calc(100% + 14px);
    margin: -7px -7px 7px;
  }

  .bwl-official-links__source {
    padding: 1px 5px;
    font-size: 8px;
  }

  .bwl-official-links__item-title {
    margin-top: 5px;
    font-size: 12px;
  }

  .bwl-official-links__description {
    margin-top: 3px;
    font-size: 9px;
    line-height: 1.4;
  }

  .bwl-official-links__cta {
    min-height: 30px;
    padding-top: 6px;
    font-size: 9px;
  }

  /* Shared articles page and all six category archives. */
  .bwl-articles-hero,
  .bwl-articles-hero__inner {
    min-height: 70px;
  }

  .bwl-articles-hero__inner {
    width: calc(100% - 20px);
    min-height: 70px;
    padding: 4px 0;
    grid-template-areas: "title art" "lead art";
    grid-template-columns: minmax(120px, 0.85fr) minmax(0, 1.15fr);
    grid-template-rows: 1fr auto;
    column-gap: 5px;
    row-gap: 0;
  }

  .bwl-articles-hero .bwl-articles-hero__title {
    align-self: end;
    padding-left: 8px;
    font-size: 20px;
    line-height: 1.15;
  }

  .bwl-articles-hero__lead {
    align-self: start;
    padding: 1px 0 3px 8px;
    font-size: 9px;
    line-height: 1.3;
    white-space: normal;
  }

  .bwl-articles-hero__art {
    width: min(156px, 100%);
  }

  .bwl-articles-nav,
  .bwl-articles-layout {
    width: calc(100% - 20px);
  }

  .bwl-articles-nav {
    margin-top: 4px !important;
    margin-bottom: 5px !important;
  }

  .bwl-articles-nav__list {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 3px;
  }

  .bwl-articles-nav__item,
  .bwl-articles-nav__item:nth-child(-n + 3) {
    grid-column: span 3;
  }

  .bwl-articles-nav__item:nth-child(n + 5) {
    grid-column: span 4;
  }

  .bwl-articles-nav__link {
    min-height: 34px;
    padding: 4px 2px;
    font-size: 9px;
    line-height: 1.2;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  .bwl-articles-toolbar {
    min-height: 36px;
    flex-direction: row;
    align-items: center;
    gap: 5px;
    margin-bottom: 6px;
    padding: 4px 6px;
  }

  .bwl-articles-toolbar p {
    min-width: 0;
    max-width: none;
    font-size: 10px;
    line-height: 1.25;
    white-space: nowrap;
  }

  .bwl-articles-toolbar p strong {
    font-size: 12px;
  }

  .bwl-articles-toolbar form {
    margin-left: auto;
  }

  .bwl-articles-toolbar label {
    gap: 3px;
  }

  .bwl-articles-toolbar label > span {
    font-size: 9px;
  }

  .bwl-articles-toolbar select,
  .bwl-articles-toolbar button {
    min-height: 30px;
    font-size: 9px;
  }

  .bwl-articles-toolbar select {
    max-width: 76px;
    padding: 3px 18px 3px 5px;
  }

  .bwl-articles-toolbar button {
    padding: 3px 5px;
  }

  .bwl-articles-grid,
  .bwl-articles-sidebar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .bwl-articles-card {
    border-radius: 9px;
  }

  .bwl-articles-card__body {
    min-height: 0;
    padding: 7px 8px 8px;
  }

  .bwl-articles-card__category {
    margin-bottom: 4px;
    font-size: 9px;
  }

  .bwl-articles-card .bwl-articles-card__title {
    display: block;
    overflow: visible;
    margin-bottom: 5px !important;
    font-size: 12.5px !important;
    line-height: 1.4 !important;
    -webkit-line-clamp: unset;
  }

  .bwl-articles-card__date {
    gap: 3px;
    margin-bottom: 4px !important;
    font-size: 9.5px;
  }

  .bwl-articles-card__excerpt {
    font-size: 10px;
    line-height: 1.45;
    -webkit-line-clamp: 4;
  }

  .bwl-articles-pagination {
    gap: 4px;
    margin-top: 12px;
  }

  .bwl-articles-pagination .page-numbers {
    min-width: 32px;
    min-height: 32px;
    font-size: 11px;
  }

  .bwl-articles-sidebar {
    padding-top: 4px;
    margin-top: 10px;
  }

  .bwl-articles-x-card {
    grid-column: auto;
  }

  .bwl-articles-side-card {
    padding: 9px;
    border-radius: 9px;
  }

  .bwl-articles-side-card h2,
  .bwl-articles-side-card__title {
    gap: 4px;
    font-size: 12px !important;
  }

  .bwl-articles-side-card__note {
    margin: 1px 0 6px 16px !important;
    font-size: 9px;
  }

  .bwl-articles-calendar__grid {
    padding: 4px;
  }

  .bwl-articles-calendar__weekday,
  .bwl-articles-calendar__day,
  .bwl-articles-calendar__blank {
    min-height: 20px;
    font-size: 8px;
  }

  .bwl-articles-calendar__day a {
    width: 20px;
    height: 20px;
  }

  .bwl-articles-months li a {
    min-height: 30px;
    font-size: 9.5px;
  }

  .bwl-articles-sidebar .bousai-home-x-card {
    border-radius: 9px;
  }

  /* Official information directory: representative and directory cards stay
     in two columns while every name, description, source, and link remains. */
  body.page:has(.bwl-official-sources) #main {
    width: calc(100% - 20px);
    margin: 8px auto 14px;
    padding: 12px 8px 14px;
    border-radius: 12px;
  }

  body.page:has(.bwl-official-sources) #main .entry-title {
    font-size: clamp(21px, 6vw, 25px);
    line-height: 1.3;
  }

  body.page:has(.bwl-official-sources) #main .entry-content {
    margin-top: 8px;
  }

  .bwl-official-sources__intro {
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.55;
  }

  .bwl-official-sources__section,
  .bwl-official-sources__section--featured {
    margin-top: 14px;
  }

  .bwl-official-sources__section--featured {
    padding: 8px;
    border-radius: 10px;
  }

  .bwl-official-sources__section-heading {
    margin-bottom: 7px;
    padding-left: 10px;
  }

  body .entry-content .bwl-official-sources__section-heading h2 {
    font-size: 16px !important;
  }

  .bwl-official-sources__featured-grid,
  .bwl-official-sources__compact-grid--danger,
  .bwl-official-sources__compact-grid--two,
  .bwl-official-sources__compact-grid--single {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .bwl-official-sources__featured-card,
  .bwl-official-sources__compact-card {
    border-radius: 9px;
  }

  .bwl-official-sources__featured-body {
    padding: 7px;
  }

  .bwl-official-sources__source {
    min-height: 0;
    padding: 1px 4px;
    font-size: 7.5px;
  }

  .bwl-official-sources__card-title {
    margin-top: 4px;
    font-size: 11.5px;
  }

  .bwl-official-sources__description {
    margin-top: 3px;
    font-size: 9px;
    line-height: 1.4;
  }

  .bwl-official-sources__cta {
    min-height: 28px;
    padding-top: 5px;
    font-size: 8.5px;
  }

  .bwl-official-sources__compact-card,
  .bwl-official-sources__compact-grid--single .bwl-official-sources__compact-card {
    min-height: 0;
    padding: 7px;
  }

  .bwl-official-sources__notice {
    margin-top: 14px;
    padding: 9px;
    gap: 4px;
  }

  body .entry-content .bwl-official-sources__notice h2 {
    font-size: 13px !important;
  }

  .bwl-official-sources__notice > p {
    font-size: 10px;
    line-height: 1.5;
  }

  .bwl-official-sources__home-wrap {
    margin-top: 10px;
  }

  .bwl-official-sources__home {
    min-height: 34px;
    padding: 5px 10px;
    font-size: 10px;
  }

  /* Monthly calendar: seven columns and every week fit the viewport. */
  body.page.page-id-57 #main {
    width: calc(100% - 20px);
    margin-top: 8px;
    margin-bottom: 14px;
    padding: 8px;
  }

  .page-id-57 .bousai-calendar-brand {
    min-height: 72px;
    gap: 8px;
    margin-bottom: 6px;
    padding: 8px 9px;
    border-radius: 11px 11px 6px 6px;
  }

  .page-id-57 .bousai-calendar-brand-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
  }

  .page-id-57 .bousai-calendar-brand-copy {
    display: block;
    padding-left: 9px;
  }

  .page-id-57 .bousai-calendar-brand h1 {
    font-size: clamp(18px, 5.2vw, 21px);
    white-space: normal;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-en {
    margin-top: 2px;
    font-size: 8px;
  }

  .page-id-57 .bousai-calendar-brand .bousai-calendar-brand-lead {
    margin-top: 2px;
    font-size: 8.5px;
    line-height: 1.35;
  }

  .page-id-57 .bousai-calendar-archive-nav,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-archive-nav {
    margin-bottom: 4px;
    padding: 5px;
    border-radius: 9px;
  }

  .page-id-57 .bousai-calendar-control-panel,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin-bottom: 4px;
    padding: 0 0 4px;
  }

  .page-id-57 .bousai-calendar-current-month {
    grid-column: 1 / -1;
    grid-template-columns: 26px auto minmax(90px, 1fr);
    gap: 4px;
  }

  .page-id-57 .bousai-calendar-current-icon {
    width: 24px;
    height: 24px;
  }

  .page-id-57 .bousai-calendar-current-label {
    font-size: 8px;
  }

  .page-id-57 .bousai-calendar-current-month h2 {
    padding-left: 5px !important;
    font-size: 18px !important;
  }

  .page-id-57 .bousai-calendar-step-group,
  .page-id-57 .bousai-calendar-year-controls {
    display: grid;
    gap: 3px;
    padding: 0;
    border: 0;
  }

  .page-id-57 .bousai-calendar-step-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-id-57 .bousai-calendar-year-controls {
    grid-template-columns: 1fr 1.2fr 1fr;
  }

  .page-id-57 .bousai-calendar-control-panel button,
  .page-id-57 .bousai-calendar-control-panel select,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel button,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-control-panel select {
    width: 100%;
    min-width: 0;
    min-height: 26px;
    padding: 3px;
    font-size: 8.5px;
    border-radius: 7px;
  }

  .page-id-57 .bousai-calendar-months,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 3px;
    padding-bottom: 2px;
  }

  .page-id-57 .bousai-calendar-months li,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months li {
    min-width: 0;
    flex-basis: auto;
  }

  .page-id-57 .bousai-calendar-months button,
  .page-id-57 .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-months strong,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months button,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months span,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-months strong {
    min-height: 24px;
    padding: 2px;
    font-size: 8.5px;
    border-radius: 6px;
  }

  .page-id-57 .bousai-calendar-swipe-note {
    display: none !important;
  }

  .page-id-57 .bousai-month-calendar-scroll,
  .page-id-57 .bousai-calendar-density-test .bousai-month-calendar-scroll {
    width: 100%;
    overflow: visible;
    padding: 0 0 3px;
  }

  .page-id-57 .bousai-month-calendar-shell {
    width: 100%;
    min-width: 0;
  }

  .page-id-57 .bousai-month-weekdays {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .page-id-57 .bousai-month-weekdays span,
  .page-id-57 .bousai-calendar-density-test .bousai-month-weekdays span {
    min-width: 0;
    padding: 2px 0;
    font-size: 8px;
  }

  .page-id-57 .bousai-month-calendar,
  .page-id-57 .bousai-calendar-density-test .bousai-month-calendar {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: auto !important;
  }

  .page-id-57 .bousai-month-calendar li,
  .page-id-57 .bousai-month-calendar .is-future,
  .page-id-57 .bousai-month-calendar .is-empty,
  .page-id-57 .bousai-calendar-density-test .bousai-month-calendar li,
  .page-id-57 .bousai-calendar-density-test .bousai-month-calendar .is-empty {
    width: auto;
    height: auto !important;
    min-width: 0;
    min-height: 28px !important;
    padding: 0;
  }

  .page-id-57 .bousai-month-calendar a,
  .page-id-57 .bousai-month-calendar li > div,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-test-day {
    width: 100%;
    min-width: 0;
    height: 100%;
    padding: 2px;
  }

  .page-id-57 .bousai-month-calendar strong,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-test-day > strong {
    margin: 0 0 1px;
    font-size: 9px;
    line-height: 1.1;
  }

  .page-id-57 .bousai-month-calendar img,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-test-chart-link img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 600 / 581;
    margin: 0;
    object-fit: contain;
  }

  .page-id-57 .bousai-month-calendar a > span:last-child,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-test-comment {
    display: block;
    overflow: visible;
    margin-top: 1px;
    font-size: 7.5px;
    font-weight: 700;
    line-height: 1.25;
    text-align: left;
    text-overflow: clip;
    overflow-wrap: anywhere;
    white-space: normal;
    -webkit-line-clamp: unset;
  }

  .page-id-57 .bousai-chart-placeholder,
  .page-id-57 .bousai-calendar-chart-missing {
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: 600 / 581;
  }

  .page-id-57 .is-future .bousai-chart-placeholder,
  .page-id-57 .is-empty .bousai-chart-placeholder {
    display: none;
  }

  .page-id-57 .bousai-calendar-source,
  .page-id-57 .bousai-calendar-density-test .bousai-calendar-source {
    margin-top: 4px;
    font-size: 8px;
    line-height: 1.35;
  }

  .page-id-57 .bousai-recent-topics,
  .page-id-57 .bousai-archive-search,
  .page-id-57 .bousai-calendar-about,
  .page-id-57 .bousai-note-method,
  .page-id-57 .bousai-safety-note {
    margin-top: 14px;
    padding: 10px;
  }

  /* Original tools: reveal the first real tool and action earlier. */
  body.page-id-569 .bwl-ot-inner {
    width: calc(100% - 20px) !important;
  }

  body.page-id-569 .bwl-ot-intro {
    min-height: 0;
    padding: 9px 0 !important;
  }

  body.page-id-569 .bwl-ot-page-title {
    font-size: 22px !important;
  }

  body.page-id-569 .bwl-ot-intro-description {
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.45;
  }

  body.page-id-569 .bwl-ot-independent-note {
    margin-top: 3px;
    font-size: 9.5px;
    line-height: 1.35;
  }

  body.page-id-569 .bwl-ot-list {
    padding-block: 8px !important;
  }

  body.page-id-569 .bwl-ot-feature {
    padding: 5px !important;
    border-radius: 10px;
  }

  body.page-id-569 .bwl-ot-summary {
    gap: 6px !important;
    padding: 7px 5px 5px !important;
  }

  body.page-id-569 .bwl-ot-summary h2 {
    font-size: 18px !important;
  }

  body.page-id-569 .bwl-ot-description {
    font-size: 13px !important;
    line-height: 1.55;
  }

  body.page-id-569 .bwl-ot-note {
    margin-top: 5px;
    font-size: 10.5px;
    line-height: 1.5;
  }

  body.page-id-569 .bwl-ot-button {
    min-height: 40px;
    padding: 7px 10px;
    font-size: 14px;
  }

  body.page-id-569 .bwl-ot-future {
    padding-block: 10px !important;
  }

  body.page-id-569 .bwl-ot-closing {
    padding-block: 10px !important;
  }

  body.page-id-569 .bwl-ot-closing-grid {
    gap: 7px !important;
  }

  body.page-id-569 .bwl-ot-closing-message h2 {
    font-size: 20px !important;
  }

  /* About: two columns for short cards, one column for reading passages. */
  body.page.page-id-14 .content-in {
    padding-top: 6px;
    padding-bottom: 14px;
  }

  body.page.page-id-14 #main {
    width: calc(100% - 20px);
    padding: 8px;
  }

  .bousai-about {
    gap: 8px;
  }

  .bousai-about-panel,
  .bousai-about-safety {
    padding: 11px 10px;
    border-radius: 11px;
  }

  .bousai-about-hero {
    border-radius: 11px;
  }

  .bousai-about-hero-title {
    padding: 10px 40% 8px 10px;
  }

  .bousai-about-hero-text {
    padding: 9px 10px 8px;
  }

  .bousai-about-hero h2 {
    font-size: 19px;
  }

  .bousai-about-intro,
  .bousai-about-mission,
  .bousai-about p {
    font-size: 14px;
    line-height: 1.62;
  }

  .bousai-about-options {
    font-size: 12px;
  }

  .bousai-about-mission {
    padding: 8px 9px;
  }

  .bousai-about-heading,
  .bousai-about-safety-heading {
    gap: 7px;
    margin-bottom: 8px;
  }

  .bousai-about-heading > span {
    flex-basis: 30px;
    width: 30px;
    height: 30px;
    font-size: 9px;
  }

  .bousai-about-heading h2,
  .bousai-about-safety h2 {
    font-size: 17px;
  }

  .bousai-about-origin .bousai-about-heading {
    flex-wrap: wrap;
  }

  .bousai-about-origin-lead {
    flex-basis: 100%;
    width: 100%;
    margin-left: 0 !important;
    padding: 7px 8px;
    font-size: 12px;
    white-space: normal;
  }

  .bousai-about-origin blockquote {
    margin-top: 7px;
    padding: 9px 10px 9px 26px;
  }

  .bousai-about-topic-grid,
  .bousai-about-method-list,
  .bousai-about-role-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .bousai-about-topic {
    display: block;
    padding: 8px;
  }

  .bousai-about-topic-icon {
    width: 34px;
    height: 34px;
    margin: 0 0 5px;
  }

  .bousai-about-topic-icon svg {
    width: 28px;
    height: 28px;
  }

  .bousai-about-topic h3,
  .bousai-about-role-grid h3 {
    margin-bottom: 4px;
    font-size: 13px;
  }

  .bousai-about-topic p,
  .bousai-about-role-grid p {
    font-size: 11px;
    line-height: 1.5;
  }

  .bousai-about-method-list {
    overflow: visible;
    padding: 0;
  }

  .bousai-about-method-list li {
    grid-template-columns: 10px minmax(0, 1fr);
    gap: 5px;
    padding: 7px;
  }

  .bousai-about-method-list p {
    font-size: 10.5px;
    line-height: 1.45;
  }

  .bousai-about-author-grid {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 10px;
  }

  .bousai-about-author-grid > img {
    width: 72px;
    height: 72px;
  }

  .bousai-about-role-grid article {
    padding: 8px;
  }

  .bousai-about-safety-icon {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
  }
}

@media screen and (max-width: 339px) {
  .bousai-home-theme-card {
    min-height: 124px;
  }
}

/* 2026-09-12: On standard desktop viewports, size both X cards from the
   current 1320 x 1000 artwork itself so object-fit does not create grey
   letterboxing. Mobile proportional layouts retain their existing sizing. */
html[data-bousai-top-pc-scale-trial="standard"] body.home .bousai-home-x-card,
html[data-bousai-top-pc-scale-trial="standard"] body.bwl-articles-index-page .bwl-articles-sidebar .bousai-home-x-card {
  height: auto;
  aspect-ratio: auto;
}

html[data-bousai-top-pc-scale-trial="standard"] body.home .bousai-home-x-card {
  align-self: end;
}

html[data-bousai-top-pc-scale-trial="standard"] body.home .bousai-home-x-card img,
html[data-bousai-top-pc-scale-trial="standard"] body.bwl-articles-index-page .bwl-articles-sidebar .bousai-home-x-card img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 2026-09-25: Keep category labels outside thumbnail artwork. The script in
   site-functions.php moves Cocoon's native label before the corresponding
   title; these first rules prevent an in-image flash while the DOM settles. */
.eye-catch .cat-label,
.card-thumb .cat-label {
  display: none !important;
}

.cat-label.bwl-category-label-outside {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: inline-flex !important;
  width: auto !important;
  max-width: 100%;
  min-height: 0;
  margin: 0 0 0.55em;
  padding: 0.25em 0.72em;
  align-items: center;
  border: 1px solid #9bbdd7;
  border-radius: 999px;
  background: #edf5fb !important;
  box-shadow: none !important;
  color: #174d73 !important;
  font-size: 0.78em;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  white-space: normal;
}

.article-header > .cat-label.bwl-category-label-outside {
  margin-bottom: 0.75rem;
}

.e-card-content > .cat-label.bwl-category-label-outside,
.card-content > .cat-label.bwl-category-label-outside {
  margin-bottom: 0.35rem;
}

/* Article H2 decoration has one owner: this shared rule, not manuscript CSS.
 * Keep legacy inline borders safe without changing any saved article body.
 * Fixed pages, article cards and H3 are intentionally outside this scope.
 */
body.single-post .entry-content h2 {
  border: 0 !important;
  border-left: 4px solid var(--bousai-blue) !important;
  border-image: none !important;
  border-radius: 0 !important;
  background-color: #edf5fb !important;
  background-image: none !important;
  box-shadow: none !important;
  color: var(--bousai-navy) !important;
  padding: 0.7em 0.8em !important;
}

body.single-post .entry-content h2::before,
body.single-post .entry-content h2::after {
  content: none !important;
  display: none !important;
}

/* Eight header destinations: retain the existing seven and add the goods shelf. */
body.body #navi .menu-pc:has(> li:nth-child(8)) {
  grid-template-columns: repeat(8, max-content);
  justify-content: space-between;
}

@media screen and (min-width: 1021px) {
  body.body #header-container-in:has(#navi .menu-pc > li:nth-child(8)) {
    grid-template-columns: minmax(0, 44%) minmax(0, 56%);
    column-gap: 0;
  }
}

@media screen and (max-width: 600px) {
  body.body #navi .menu-mobile:has(> li:nth-child(8)) > li {
    grid-column: span 3;
  }
}

html[data-bousai-top-mobile-shell="enabled"] body.home #header-container .bousai-top-mobile-menu-panel ul:has(> li:nth-child(8)) {
  grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
}

/* Keep the goods shelf's outer frame aligned with TOP and other directories. */
body.page-id-1063 #content-in {
  width: 100%;
  max-width: none;
}

body.page.page-id-1063 #main {
  width: min(1240px, calc(100% - 48px));
  max-width: none;
}

body.page-id-1063 .bousai-goods {
  max-width: none;
}

@media screen and (max-width: 600px) {
  body.page.page-id-1063 #main {
    width: calc(100% - 24px);
  }
}
