@import url("https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600&family=Noto+Sans+JP:wght@400;500;600;700&display=swap");
:root {
  --km-primary: #021b4c;
  --km-secondary: #4286b2;
  --km-gold: #b4ad8f;
  --km-muted: #e8edf5;
  --km-muted-text: #58718a;
  --km-border: rgba(2, 27, 76, 0.12);
  --km-soft-blue: #f5f8fb;
  --km-white: #fff;
  --km-gradate:linear-gradient(90deg, rgba(2, 27, 76, 0.96), rgba(66, 134, 178, 0.8)), var(--km-primary);
  --km-space-6: 6px;
  --km-space-12: 12px;
  --km-space-24: 24px;
  --km-space-36: 36px;
  --km-space-48: 48px;
  --km-space-72: 72px;
  --km-space-120: 120px;
  --km-space-192: 192px;
  --km-content: 1232px;
  --km-wide: 1300px;
  --km-transition:0.4s;
  --km-mobile-gutter: 24px;
  --km-sidebar-w: 360px;
  --font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --km-serif:"Yu Mincho", "游明朝", "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "MS PMincho", "MS 明朝", serif;
  --km-display: "Cinzel", "Noto Sans JP", sans-serif;
  --km-text: #1f2f3e;
}
:where(.wp-site-blocks) > *{
  margin-block-start: 0;
  margin-block-end: 0;
}
:root :where(.is-layout-flow) > *{
  margin-block-start: 0;
  margin-block-end: 0;
}
body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: var(--km-content);
}
.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
  flex-basis: auto;
}
*{
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  padding: 0;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--km-white);
  color: var(--km-text);
  position: relative;
  height: 100%;
  font-family: var(--font-family);
  font-style: normal;
  line-height: 1.9;
  font-weight: 400;
  font-size: 16px;
  letter-spacing: 0.045em;
  font-feature-settings: "kern" 1;
  font-kerning: normal;
  font-optical-sizing: auto;
  line-break: strict;
  word-break: normal;
  overflow-wrap: anywhere;
}
body.km-mobile-menu-open {
  overflow: hidden;
}
body.km-mobile-menu-open .site-header__menu-toggle {
  display: none;
}

a {
  text-decoration: none;
}
h1,h2{
  line-height: 1;
}
.site-main {
  margin-top: var(--km-space-72);
}
.site-header {
  background: rgba(255, 255, 255, 0.95);
  border-bottom: 1px solid var(--km-border);
  box-sizing: border-box;
  left: 0;
  min-height: 80px;
  position: fixed;
  right: 0;
  top: 0;
  transition: var(--km-transition) ;
  width: 100%;
  z-index: 50;
}
.site-header.is-scrolled {
  box-shadow: 0 12px 32px rgba(2, 27, 76, 0.08);
}
.wp-block-buttons{
  margin-top: var(--km-space-24);
}
.wp-block-buttons .wp-block-button__link{
  border: 1px solid var(--km-border);
  background: transparent;
  color: var(--km-primary);
}
.wp-block-image img{
  width: 100%;
}
.site-header__inner {
  align-items: center;
  display: flex;
  gap: var(--km-space-36);
  justify-content: space-between;
  margin: 0 auto;
  max-width: var(--km-wide);
  min-height: 80px;
  padding: 0 var(--km-space-24);
}
.site-brand {
  align-items: center;
  color: var(--km-primary);
  display: inline-flex;
  gap: var(--km-space-12);
  text-decoration: none;
}
.site-brand__mark {
  display: block;
  height: 40px;
  object-fit: contain;
  width: 40px;
}
.site-brand__name {
  display: block;
  font-size: 22px;
  font-family: var(--km-serif);
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: var(--km-space-6);
}
.site-brand__en {
  color: var(--km-muted-text);
  display: block;
  font-size: 12px;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0;
}
.site-header .wp-block-navigation {
  font-size: 16px;
  gap: var(--km-space-36);
  font-family: var(--km-serif);
}
.site-header__nav-area {
  position: relative;
}
.site-header__menu-toggle {
  display: none;
}
.site-header .wp-block-navigation a{
  position: relative;
}
.site-header .wp-block-navigation a:hover {
  color: var(--km-secondary);
}
.site-header .wp-block-navigation a[aria-current="page"],
.site-header .wp-block-navigation a.is-current-page,
.site-header .wp-block-navigation-item.is-current-page > .wp-block-navigation-item__content {
  color: var(--km-secondary);
}
.site-header .wp-block-navigation a[aria-current="page"]::after,
.site-header .wp-block-navigation a.is-current-page::after,
.site-header .wp-block-navigation-item.is-current-page > .wp-block-navigation-item__content::after {
  bottom: -26px;
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  width: 100%;
}
.km-mega-products {
  background: var(--km-white);
  border: 1px solid var(--km-border);
  box-shadow: 0 24px 64px rgba(2, 27, 76, 0.16);
  color: var(--km-primary);
  opacity: 0;
  padding: var(--km-space-24);
  pointer-events: none;
  position: absolute;
  right: 0;
  top: calc(100% + 18px);
  transform: translateY(8px);
  transition: var(--km-transition) ;
  visibility: hidden;
  width: min(760px, calc(100vw - 48px));
  z-index: 50;
}
.site-header__nav-area.is-products-mega-open .km-mega-products,
.site-header__nav-area:has(.wp-block-navigation__container > li > a[href="/products/"]:hover) .km-mega-products,
.site-header__nav-area:has(.wp-block-navigation__container > li > a[href="/products/"]:focus-visible) .km-mega-products,
.site-header__nav-area:has(.km-mega-products:hover) .km-mega-products,
.site-header__nav-area:has(.km-mega-products:focus-within) .km-mega-products {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
}
.km-mega-products::before {
  content: "";
  height: 20px;
  left: 0;
  position: absolute;
  right: 0;
  top: -20px;
}
.km-mega-products .wp-block-template-part {
  display: grid;
  gap: var(--km-space-24);
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
}
.km-mega-products .km-product-sidebar__block {
  border: 0;
  padding: 0;
  margin: 0;
}
.km-mega-products .km-product-sidebar__block a{
  color: var(--km-primary);
  text-decoration: none;
}
.km-mega-products .km-product-sidebar__block h2{
  color: var(--km-secondary);
  font-weight: 500;
  font-size: 1.125rem;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: 0 0 var(--km-space-12);
}
.km-mega-products .km-product-sidebar__block ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
/* 工程別分類は3カラムで省スペース表示 */
.km-mega-products .km-product-sidebar__group ul {
  column-gap: var(--km-space-12);
  columns: 3;
}
.km-mega-products .km-product-sidebar__block li {
  break-inside: avoid;
}
.km-mega-products .km-product-sidebar__block a {
  display: block;
  line-height: 1.4;
  padding: var(--km-space-6) 0;
  transition: var(--km-transition) ;
}
.km-mega-products .km-product-sidebar__block a:hover,
.km-mega-products .km-product-sidebar__block a:focus-visible {
  color: var(--km-secondary);
}
footer{
  margin: 0;
}
.site-footer {
  background: var(--km-primary);
  color: var(--km-white);
}
.site-footer__inner {
  display: grid;
  gap: var(--km-space-12);
  grid-template-columns: 2fr 1fr 1fr 1fr;
  margin: 0 auto;
  max-width: var(--km-wide);
  padding: var(--km-space-48) var(--km-space-24) var(--km-space-24);
}
.site-footer__inner h3{
  font-family: var(--km-display);
}
.site-footer a {
  color: currentColor;
  opacity: 0.76;
  text-decoration: none;
}
.site-footer a:hover {
  opacity: 1;
}
.site-footer .sitename{
  font-family: var(--km-serif);
  font-size: 32px;
  margin: 0 0 var(--km-space-6);
  font-weight: 300;
  letter-spacing: 0.1em;
  line-height: 1;
}
.site-footer .copy{
  font-size:.75rem;letter-spacing:.1em;opacity:.7;margin:0 0 var(--km-space-24);
  font-family: var(--km-serif);
}
.site-footer .description {
  font-size:.9rem;line-height:1.9;opacity:.82;
}
.site-footer h3 {
  color: currentColor;
  opacity:.7;
  margin:0 0 var(--km-space-24);
}
.site-footer p span{
  font-size:12px;opacity:.62;
}
/* コピーライトは1カラム目の最下部に寄せ、他カラムの下端と揃える */
.site-footer__inner > div:first-child {
  display: flex;
  flex-direction: column;
}
.site-footer__copyright {
  font-size: 12px;
  line-height: 1.6;
  margin: auto 0 0;
  opacity: 0.4;
}
.entry-content.wp-block-post-content{
  max-width: var(--km-wide);
  margin-block-start: 0;
  margin: 0 auto;
  padding: var(--km-space-72) var(--km-space-24);
}
.home .entry-content.wp-block-post-content{
  padding: 0;
  max-width: none;
}
.single .entry-content.wp-block-post-content{
  padding-left: 0;
  padding-right: 0;
}
.entry-content.wp-block-post-content > p{
  margin: var(--km-space-12) 0;
}
.entry-content.wp-block-post-content > h2{
  margin: var(--km-space-24) 0;
}

.entry-content.wp-block-post-content a{
  text-decoration-thickness: 2px;
}

.km-subtitle a:not([class]),
.km-breadcrumb a:not([class]),
.wp-block-breadcrumbs a:not([class]) {
  text-decoration: none;
}

.wp-block-button__link,
.wp-block-button__link a,
.km-button-row,
.km-button-row a,
.km-link-button,
.km-link-button a,
.km-product-cta,
.km-product-cta a,
.km-catalog-btn,
.km-catalog-btn a,
.km-qr-trigger,
.km-qr-trigger a {
  text-decoration: none !important;
}
.km-section > .wp-block-group{
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  max-width: var(--km-wide);
  padding: 0 var(--km-space-24);
  width: 100%;
}
.km-section.is-muted {
  background: var(--km-muted);
}
.km-section.is-muted.full{
  width: 100vw;
  margin: var(--km-space-36) calc(50% - 50vw);
  max-width: 100vw;
  padding: var(--km-space-36) 0 !important;
}
.km-hero .content,
.km-section .content{
  box-sizing: border-box;
  width: 100%;
  max-width: var(--km-wide);
  margin: 0 auto;
  padding-left: var(--km-space-24);
  padding-right: var(--km-space-24);
}
.km-section > .content.wp-block-columns{
  gap: var(--km-space-48);
  padding-left: var(--km-space-24);
  padding-right: var(--km-space-24);
}
.km-hero .content .leftbox{
  position: relative;
  z-index: 10;
}
.km-hero .content .leftbox .km-heading-jp{
  font-size: 50px;
  letter-spacing: -5px;
  font-weight: 100;
}
.km-section.is-muted.full .content{
  box-sizing: border-box;
  max-width: var(--km-wide);
  margin: 0 auto;
}
.wp-block-post-content > .km-section {
  margin-left: calc(var(--km-space-24) * -1);
  margin-right: calc(var(--km-space-24) * -1);
  max-width: none;
  width: calc(100% + (var(--km-space-24) * 2));
}
.page-id-1340 .wp-block-post-content > .km-section{
  padding:  0;
}
.vision-left{
  width: 500px;
}
.vision-right{
  width: 710px;
}
.home .wp-block-post-content > .km-section {
  margin-left: 0;
  margin-right: 0;
  padding: var(--km-space-48) var(--km-space-24);
  width: 100%;
}
.km-container {
  margin: 0 auto;
  max-width: var(--km-wide);
  padding:var(--km-space-72) var(--km-space-24);
}
.km-container.is-layout-flex{
  gap: var(--km-space-72);
}
.km-hero {
  align-items: center;
  background: var(--km-primary);
  color: var(--km-white);
  display: flex;
  padding: var(--km-space-120) 0;
  overflow: hidden;
  position: relative;
}
.km-hero--home {
  min-height: min(680px, 62vh);
}
.km-hero__image {
  height: 100%;
  inset: 0 0 0 auto;
  overflow: hidden;
  position: absolute;
  width: 50%;
}
.km-hero__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.km-hero--home::after {
  background: linear-gradient(to right, var(--km-primary) 45%, rgba(2, 27, 76, 0.8) 65%, rgba(2, 27, 76, 0) 100%);
  content: "";
  inset: 0;
  position: absolute;
}
.km-hero__content {
  margin: 0 auto;
  max-width: var(--km-wide);
  padding: 0 var(--km-space-24);
  position: relative;
  width: 100%;
  z-index: 2;
}
.km-home-hero-title {
  font-size: clamp(1.5rem, 3.5vw, 2.25rem);
  letter-spacing: 0.06em;
  line-height: 1.7;
}
.km-hero-copy {
  font-family: var(--km-display);
  font-size: 40px;
  letter-spacing: 0;
  opacity: 0.6;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0em;
  margin-bottom: var(--km-space-36);
}
.km-hero-sticky-news {
  align-items: stretch;
  background: var(--km-white);
  border: 1px solid rgba(255, 255, 255, 0.34);
  bottom: 32px;
  box-shadow: 0 22px 60px rgba(2, 27, 76, 0.22);
  color: var(--km-primary);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  max-width: min(440px, calc(100vw - 48px));
  min-height: 132px;
  position: absolute;
  right: max(var(--km-space-24), calc((100vw - var(--km-wide)) / 2 + var(--km-space-24)));
  text-decoration: none;
  width: min(36vw, 440px);
  z-index: 3;
}
.km-hero-sticky-news:hover {
  transform: translateY(-1px);
}
.km-hero-sticky-news__body {
  display: flex;
  flex-direction: column;
  gap: var(--km-space-6);
  justify-content: center;
  min-width: 0;
  padding: var(--km-space-12) var(--km-space-24);
}
.km-hero-sticky-news__body .km-kicker {
  color: var(--km-secondary);
  font-size: 0.7rem;
  margin: 0;
}
.km-hero-sticky-news__body time {
  color: var(--km-muted-text);
  font-size: 0.75rem;
}
.km-hero-sticky-news__body h2{
  color: var(--km-primary);
  display: block;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.65;
}
.km-page-hero {
  align-items: center;
  align-content: center;
  background: var(--km-primary);
  color: var(--km-white);
  flex-wrap: wrap;
  justify-content: flex-start;
  text-align: left;
}
.km-page-hero .wp-block-query-title,
.km-hero .wp-block-query-title{
  color: currentColor;
  font-weight: normal;
  font-size: 16px;
  letter-spacing: 0.2em;
}
.km-page-hero > .wp-block-group,
.km-page-hero > .wp-block-heading,
.km-page-hero > .wp-block-columns {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--km-wide);
  padding-left: var(--km-space-24);
  padding-right: var(--km-space-24);
  width: 100%;
}
.km-page-hero .has-text-align-center {
  text-align: left;
}
.km-kicker {
  color: var(--km-gold);
  font-family: var(--km-display);
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: 0;
  font-size: 30px;
}
/* キッカー（段落の小見出しラベル）は km-heading-jp（17px）より小さく表示する。
   h2.km-kicker（製品ページ内のセクション見出し）は対象外。 */
p.km-kicker {
  font-size: 14px;
}
.km-heading-en {
  font-family: var(--km-display);
  font-size: 33px;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0;
}
.km-heading-jp {
  font-family: var(--km-serif);
  margin-top: 0;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.2;
  margin-bottom: var(--km-space-24);
  font-size: 30px;
}
.km-subtitle {
  color: var(--km-secondary);
  font-family: var(--km-serif);
  font-size: 14px;
  letter-spacing: 0.1em;
}
.km-accent {
  background: var(--km-gold);
  border: 0;
  height: 1px;
  margin-bottom: var(--km-space-24);
  margin-left: 0;
  margin-top: 0;
  width: 32px;
}
.km-grid-2,
.km-grid-5 {
  display: grid;
  gap: var(--km-space-24);
}
.km-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.km-grid-5 {
  grid-template-columns: 3fr 2fr;
}
.km-home-business {
  display: grid;
  gap: clamp(var(--km-space-36), 5vw, var(--km-space-72));
  grid-template-columns: minmax(250px, 1fr) minmax(0, 2fr);
}
.km-home-business__intro {
  align-self: center;
}
.km-aquetha-banner {
  align-items: center;
  background-image: linear-gradient(rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.42)), url('/wp-content/uploads/aquetha-banner-bg.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border: 1px solid var(--km-border);
  box-sizing: border-box;
  color: var(--km-primary);
  display: flex;
  gap: var(--km-space-12);
  justify-content: space-between;
  margin-top: var(--km-space-36);
  min-height: 88px;
  padding: 18px var(--km-space-24);
  text-decoration: none;
  transition: border-color 180ms ease, background-color 180ms ease;
  width: 100%;
}
.km-aquetha-banner:hover {
  background-image: linear-gradient(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.3)), url('/wp-content/uploads/aquetha-banner-bg.png');
  border-color: var(--km-primary);
}
.km-aquetha-banner__name {
  font-family: var(--km-serif);
  font-size: 1.15rem;
  letter-spacing: 0.12em;
}
.km-aquetha-banner__action {
  font-size: 0.78rem;
  white-space: nowrap;
}
.km-aquetha-banner__action::after {
  content: "↗";
  margin-left: 0.5em;
}
.km-card {
  background: var(--km-white);
  border: 1px solid var(--km-border);
  box-sizing: border-box;
  padding: var(--km-space-24);
}
.km-card__body > div{
  display: flex;
  align-items: center;
  margin-bottom: var(--km-space-24);
  line-height: 1;
  gap:var(--km-space-12);
}
.km-card__body {
  padding:var(--km-space-24);
  position: relative;
}
.km-card__body .km-kicker{
  font-weight: 600;
  margin: 0;
}
.km-card__body p{
  margin: 0;
}
.km-card__body h3{
  margin: 0;
  align-items: center;
  display: flex;
  gap: var(--km-space-24);
  margin-bottom: var(--km-space-24);
}
.km-business-intro {
  display: grid;
  gap: var(--km-space-24) var(--km-space-72);
  grid-template-columns: 1fr;
}
.km-business-intro .km-kicker,
.km-business-intro .km-heading-jp,
.km-business-lead {
  margin: 0;
}
.km-business-lead {
  color: rgba(2, 27, 76, 0.74);
  font-size: 1rem;
  line-height: 2.1;
}
.km-business-service-list {
  gap:0;
  margin:var(--km-space-24) 0;
  padding: 24px 0;
}
.km-business-service {
  height: 100%;
  padding: var(--km-space-36);
  border: 1px solid var(--km-border);
}
.bussiness-head-left{
  width: 680px;
}
.bussiness-head-right{
  width: 550px;
}
.km-business-service__number {
  color: rgba(2, 27, 76, 0.22);
  font-family: var(--km-display);
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  letter-spacing: 0.02em;
  line-height: 0.9;
  margin: 0;
}
.km-business-service__body {
  max-width: 900px;
}
.km-business-service__body .km-kicker {
  margin-bottom: var(--km-space-12);
}
.km-business-service__body h3 {
  color: var(--km-primary);
  font-family: var(--km-serif);
  font-size: clamp(1.35rem, 2.4vw, 2rem);
  font-weight: 400;
  line-height: 1.45;
  margin: 0 0 var(--km-space-12);
}
.km-business-service__body > p {
  color: rgba(2, 27, 76, 0.76);
  font-size: 1rem;
  line-height: 2;
  margin: 0;
}
/* カード下部の「詳細はこちら」テキストリンク */
.link-text {
  margin: var(--km-space-24) 0 0;
}
.link-text a {
  align-items: center;
  color: var(--km-primary);
  display: inline-flex;
  font-size: 0.9375rem;
  font-weight: 500;
  gap: var(--km-space-6);
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: color var(--km-transition) ease;
}
.link-text a::after {
  content: "\2192";
  font-size: 1rem;
  line-height: 1;
  transition: var(--km-transition) ;
}
.link-text a:hover,
.link-text a:focus-visible {
  color: var(--km-secondary);
}
.link-text a:hover::after,
.link-text a:focus-visible::after {
  transform: translateX(4px);
}
.km-business-sales-grid {
  margin: var(--km-space-24) 0;
  padding: 0 48px;
}
.slug-maintenance .km-business-sales-grid,
.slug-consulting .km-business-sales-grid {
  padding: 0;
}

.km-business-sales-box {
  padding: 6px 0;
}

.km-business-sales-box h4{
  width:120px;
}
.km-business-sales-box p{
  width:calc(100% - 320px);
}
.km-business-sales-box .wp-block-buttons{
  width: 200px;
}
.km-business-sales-box .wp-block-buttons a{
  padding: 6px 12px;
  font-size: 13px;
  width: 100%;
}
.km-business-sales-table {
  margin: var(--km-space-24) 0;
  overflow: visible;
  padding: 0 0 0 48px;
}
.km-business-sales-table table {
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}
.km-business-sales-table col.km-business-sales-table__title {
  width: 140px;
}
.km-business-sales-table col.km-business-sales-table__action {
  width: 160px;
}
.km-business-sales-table th,
.km-business-sales-table td {
  border: 0;
  padding: 6px 16px 6px 0;
  text-align: left;
  vertical-align: middle;
}
.km-business-sales-table th {
  color: var(--km-primary);
  font-size: inherit;
  font-weight: 700;
}
.km-business-sales-table td:last-child {
  padding-right: 0;
}
.km-business-sales-table .wp-block-button__link {
    border: 1px solid var(--km-border);
    background: transparent;
    color: var(--km-primary);
    border-radius: 0;
}

.km-business-sales-item {
  background: rgba(232, 237, 245, 0.6);
  border-left: 3px solid rgba(2, 27, 76, 0.18);
  box-sizing: border-box;
  padding: var(--km-space-24) var(--km-space-24);
}
.km-business-sales-item h4 {
  color: var(--km-primary);
  font-family: var(--km-serif);
  font-size: 1.05rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0 0 var(--km-space-12);
}
.km-business-sales-item p {
  color: rgba(2, 27, 76, 0.74);
  font-size: 0.95rem;
  line-height: 1.85;
  margin: 0;
}
.km-business-sales-item a {
  color: var(--km-primary);
  text-underline-offset: 0.18em;
}
.km-business-sales-item .km-kicker {
  color: var(--km-gold);
  font-size: 12px;
  letter-spacing: 0.16em;
  margin-bottom: var(--km-space-6);
}
.km-business-contact{
  margin: 0;
  padding: var(--km-space-48);
}
.km-business-contact .km-kicker {
  margin-bottom: var(--km-space-12);
}
.km-business-contact .km-heading-jp {
  margin-bottom: var(--km-space-24);
}
.smf-form--business .smf-item__col--label {
  align-items: flex-start;
  display: flex;
  gap: var(--km-space-12);
  justify-content: space-between;
}
.smf-item__label{
  white-space: nowrap;
}
.smf-item__description {
  color: var(--_dark-color-gray);
  margin-top: 0;
  --_font-size-level: auto;
  font-size: 14px;
  line-height: var(--_line-height);
  color: #a40000;
  white-space: nowrap;
}
.km-image {
  background: var(--km-muted);
  overflow: hidden;
}
.km-image img {
  aspect-ratio: 4 / 3;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.km-image--wide img {
  aspect-ratio: 16 / 9;
}
.km-vision-image img {
  aspect-ratio: 4 / 3;
  object-position: center;
}
.km-vision-art svg {
  display: block;
  height: auto;
  max-width: 100%;
  width: min(100%, 400px);
}
.vision-items{
  display: flex;
  flex-direction: column;
  gap:var(--km-space-24);
}
.vision-item {
  position: relative;
}
.vision-item h3{
  font-family: var(--km-display);
  font-size: 25px;
  font-weight: 500;
}
.vision-item h3::before{
  content: "";
  display: block;
  width: 200px;
  border-bottom: 1px solid var(--km-primary);
  position: absolute;
  left: -220px;
  top: 20px;
}
.vision-item .subtitle{
  color:var(--km-secondary);
  position: absolute;
  top:0;
  left: 120px;
}
.km-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--km-space-12);
}
/* ヒーロー内のボタン行は折り返さず1ラインに */
.km-hero .km-button-row {
  flex-wrap: nowrap;
}
.wp-block-button__link,
.km-link-button a{
transition: var(--km-transition) ;
}
.km-button-row a,
.km-link-button a{
  align-items: center;
  border: 1px solid currentColor;
  color: var(--km-primary);
  display: inline-flex;
  font-size: 14px;
  gap: var(--km-space-12);
  padding: var(--km-space-12) var(--km-space-24);
  text-decoration: none;
}
.km-button-row a:hover,
.km-link-button a:hover {
  background: var(--km-primary);
  color: var(--km-white);
}
.km-link-button a,
.km-recruit-panel__button a {
  color: inherit;
  text-decoration: none;
}
.km-link {
  align-items: center;
  color: var(--km-primary);
  display: inline-flex;
  font-size: 14px;
  gap: var(--km-space-12);
  text-decoration: none;
}
.km-link:hover {
  color: var(--km-secondary);
}
.km-link a {
  color: inherit;
  text-decoration: none;
}
.km-news-list,
.km-news-query .wp-block-post-template {
  display: grid;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.km-news-query .wp-block-post {
  margin: 0;
}
.km-news-item {
  border-bottom: 1px solid var(--km-border);
  color: inherit;
  display: grid;
  gap: var(--km-space-12);
  padding: var(--km-space-24) 0;
  text-decoration: none;
}
.km-news-query li:first-child .km-news-item{
  padding-top: 0;
}
.km-news-item__meta {
  align-items: center;
  color: var(--km-muted-text);
  display: flex;
  font-size: 14px;
  gap: var(--km-space-12);
  margin-bottom: 0;
  line-height: 1;
}
.km-news-item__terms a {
  border: 1px solid rgba(2, 27, 76, 0.2);
  color: var(--km-primary);
  display: inline-flex;
  font-size: 0.68rem;
  line-height: 1.4;
  padding: 0 var(--km-space-6);
  text-decoration: none;
}
.km-news-item__title {
  font-family: inherit;
  font-size:16px;
  font-weight: 400;
  line-height: 1.8;
  margin: 0;
}
.km-news-item__title a {
  color: var(--km-primary);
  text-decoration: none;
}
.km-news-item__title a:hover {
  color: var(--km-secondary);
}
.km-news-item__excerpt {
  color: rgba(2, 27, 76, 0.72);
  font-size: 0.875rem;
  line-height: 1.8;
  margin-top: var(--km-space-12);
}
.news-archive-main {
  padding-bottom: 0;
  padding-top: 0;
}
.news-archive-main > .km-page-hero {
  margin-bottom: clamp(var(--km-space-36), 6vw, var(--km-space-72));
}
.news-archive-main > .km-news-section {
  margin-bottom: clamp(var(--km-space-72), 8vw, var(--km-space-120));
}
.km-news-query--archive .km-news-item {
  padding: var(--km-space-24) 0;
}
.km-news-query--archive .km-news-item__title {
  font-family: var(--km-serif);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
}
.km-news-main {
  min-width: 0;
  order: 1;
}
.km-news-sidebar {
  align-self: start;
  order: 2;
  position: sticky;
  top: 104px;
  width: 100%;
}
.km-news-sidebar__block {
  border-bottom: 1px solid var(--km-border);
  margin-bottom: var(--km-space-36);
  padding-bottom: var(--km-space-24);
}
.km-news-sidebar__block > p {
  font-size: 1rem;
  line-height: 1.7;
}
.km-news-sidebar__company {
  background: var(--km-muted);
  border-bottom: 0;
  padding: var(--km-space-24);
}
.km-news-sidebar__brand {
  align-items: center;
  color: var(--km-primary);
  display: flex;
  gap: var(--km-space-12);
  margin-bottom: var(--km-space-12);
  text-decoration: none;
}
.km-news-sidebar__brand img {
  display: block;
  height: 44px;
  object-fit: contain;
  width: 44px;
}
.km-news-sidebar__name,
.km-news-sidebar__en {
  display: block;
  line-height: 1;
}
.km-news-sidebar__name {
  font-family: var(--km-serif);
  font-size: 1rem;
  letter-spacing: 0.04em;
  margin-bottom: var(--km-space-6);
}
.km-news-sidebar__company .km-news-sidebar__en{
  color: var(--km-muted-text);
  font-size: 13px;
  margin-top: var(--km-space-12);
}
.km-news-sidebar__button {
  background: var(--km-primary);
  color: var(--km-white);
  display: inline-flex;
  font-size: 0.85rem;
  padding: var(--km-space-12) var(--km-space-24);
  text-decoration: none;
}
.km-news-sidebar__button:hover {
  background: var(--km-secondary);
}
.km-news-sidebar ul,
.km-news-sidebar .wp-block-archives-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.km-news-sidebar ul li,
.km-news-sidebar .wp-block-archives-list li{
  display: flex;
  align-items: center;
}
.km-news-sidebar ul li span,
.km-news-sidebar .wp-block-archives-list li span{
  background: var(--km-secondary);
  width: 24px;
  border-radius: 5px;
  line-height: 1;
  padding: var(--km-space-6) 0;
  font-size: 0.68rem;
  text-align: center;
  display: inline-block;
  color: var(--km-muted)
}
.km-news-sidebar li + li {
  margin-top: var(--km-space-6);
}
.km-news-sidebar a:not(.km-news-sidebar__brand):not(.km-news-sidebar__button) {
  color: rgba(2, 27, 76, 0.72);
  display: block;
  font-size: 0.875rem;
  padding: var(--km-space-6) var(--km-space-12);
  text-decoration: none;
}
.km-news-sidebar a:not(.km-news-sidebar__brand):not(.km-news-sidebar__button):hover {
  background: rgba(2, 27, 76, 0.05);
  color: var(--km-primary);
}
.privacy-policy {
  color: rgba(2, 27, 76, 0.82);
  line-height: 2;
  margin: 0;
  padding: 0;
}
.km-single-news-layout .km-single-news {
  padding-bottom: 0;
  padding-top: 0;
}
.km-badge {
  border: 1px solid rgba(2, 27, 76, 0.2);
  color: var(--km-primary);
  display: inline-block;
  font-size: 0.68rem;
  padding: 0 var(--km-space-6);
}
.km-tile {
  background: var(--km-white);
  color: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: var(--km-space-24);
  text-decoration: none;
  position: relative;
}
.km-tile > * {
  margin-block-start: 0;
}
.km-tile .km-kicker{
  display: inline-block;
  margin-bottom: 0;
}
.km-tile h3 {
  font-family: var(--km-serif);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  display: inline-block;
}
.km-tile p:not(.km-kicker):not(.km-link) {
  color: rgba(2, 27, 76, 0.7);
  font-size: 0.875rem;
  line-height: 1.8;
}
.km-tile a {
  width: 100%;
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.km-tile .km-link a {
  color: inherit;
  text-decoration: none;
}
.km-tile:hover {
  background: rgba(232, 237, 245, 0.45);
}
.km-business-card {
  position: relative;
  background: var(--km-white);
  flex-direction: column;
  border: 1px solid var(--km-border);
  color: inherit;
  display: flex;
  gap: var(--km-space-12);
  padding: var(--km-space-24);
  text-decoration: none;
  transition: box-shadow var(--km-transition) ease, transform var(--km-transition) ease;
}
.km-business-card-grid {
  display: grid;
  gap: var(--km-space-24);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.km-home-business-columns {
  align-items: stretch;
}
.km-home-business-columns > .wp-block-column:last-child {
  display: flex;
}
.home .wp-block-column > .km-business-card-grid,
.km-home-business > .km-business-card-grid {
  align-self: stretch;
  flex: 1 1 auto;
  grid-auto-rows: minmax(0, 1fr);
  height: 100%;
  width: 100%;
}
.home .wp-block-column > .km-business-card-grid > .km-business-card,
.km-home-business > .km-business-card-grid > .km-business-card {
  box-sizing: border-box;
  height: 100%;
}
.km-business-link{
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top:0;
  left: 0;
}
.km-business-card:hover {
  box-shadow: 0 14px 30px rgba(2, 27, 76, 0.08);
  transform: translateY(-1px);
}
.km-business-card--wide {
  grid-column: span 1;
}
.km-business-card strong {
  display: block;
  font-family: var(--km-serif);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  margin-bottom: var(--km-space-12);
}
.km-business-card small {
  color: rgba(2, 27, 76, 0.7);
  display: block;
  font-size: 14px;
  line-height: 1.7;
  margin-top: var(--km-space-6);
}
.home .km-recruit-panel {
  box-sizing: border-box;
  background: var(--km-muted);
  overflow: hidden;
  padding: var(--km-space-36);
  position: relative;
  margin-top: 0;
}
.home .sec_map .km-button-row{
  margin-top: var(--km-space-12);
}
.home .sec_map .km-button-row .km-link-button{
  margin-top: 0;
}
.map_figure{
  margin-bottom: var(--km-space-12);
}
.map_figure img{
  width:100%;
}
.km-container--access {
  align-items: start;
  max-width: var(--km-wide);
}
.km-data-list {
  width: 100%;
  margin-top: 24px;
}
.km-data-list tr > *{
  border: 0;
  border-bottom: 1px solid var(--km-border);
  padding: var(--km-space-24);
  text-align: left;
  line-height: 1.6;
}
.km-data-list tr:first-child > *{
  padding-top: 0;
  border-top: none;
}
.km-data-list tr:last-child > *{
  padding-bottom: 0;
  border-bottom: none;
}
.km-data-list th {
  color: var(--km-muted-text);
  width: 170px;
  font-weight: normal;
}
.km-data-list td {
  margin: 0;
  white-space: pre-line;
}
.intro-text{
  margin-top: var(--km-space-24);
}
.intro-text strong{
  font-weight: normal;
  font-family: var(--km-serif);
  font-size: 20px;
}
.km-timeline {
  border-left: 1px solid var(--km-secondary);
  margin-left: var(--km-space-120);
  width: calc(100% - var(--km-space-120));
}
.km-timeline > div {
  border-bottom: 1px solid var(--km-border);
  display: grid;
  gap: var(--km-space-36);
  grid-template-columns: 110px 1fr;
  padding: var(--km-space-24) 0;
  transform: translateX(-110px);
}
.km-timeline dt {
  color: var(--km-muted-text);
  font-size: 0.875rem;
}
.km-timeline dd {
  margin: 0;
  position: relative;
}
.km-timeline dd::before {
  background: var(--km-secondary);
  content: "";
  height: 8px;
  left: -40px;
  position: absolute;
  top: 9px;
  width: 8px;
}
.page .km-heading-en{
  display: inline-block;
  color: var(--km-secondary);
  font-size: clamp(0.72rem, 1.1vw, 0.84rem);
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1;
  opacity: 0.9;
}
.page .km-title{
  color: var(--km-primary);
  display: flex;
  flex-direction: column;
  gap: var(--km-space-6);
  align-items: flex-start;
  line-height: 1;
  margin-bottom: var(--km-space-24);
}
.page .km-title .km-heading-jp,
.page .km-title h1,
.page .km-title h2 {
  color: var(--km-primary);
  letter-spacing: 0.06em;
  line-height: 1.28;
  margin-bottom: 0;
}
.page .km-title-headline{
  margin-bottom: var(--km-space-24);
}
.page .km-title-headline .km-title{
  margin-bottom: 0;
}
.page .km-subtitle{
  display: inline-block;
  margin: 0;
}
.archive-shell {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--km-wide);
  padding: var(--km-space-120) var(--km-space-24) var(--km-space-72);
  width: 100%;
}
.post-card {
  border-bottom: 1px solid var(--km-border);
  padding: var(--km-space-24) 0;
}
.km-breadcrumb {
  align-items: center;
  color: var(--km-muted-text);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: var(--km-space-6);
  margin: 0 auto;
  max-width: var(--km-wide);
  padding: var(--km-space-12) var(--km-space-24);
}
.km-breadcrumb a {
  color: inherit;
  text-decoration: none;
}
.km-breadcrumb a:hover {
  color: var(--km-primary);
}
.km-breadcrumb .wp-block-post-title,
.km-breadcrumb .wp-block-query-title,
.km-breadcrumb-current {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  margin: 0;
}
.km-single-product-layout {
  padding-bottom: var(--km-space-72);
}
.km-single-news__header {
  border-bottom: 1px solid var(--km-border);
  margin-bottom: var(--km-space-36);
  padding-bottom: var(--km-space-36);
}
.km-single-meta {
  color: var(--km-muted-text);
  font-size: 0.875rem;
  gap: var(--km-space-12);
  margin-bottom: var(--km-space-12);
}
.km-product-taxonomies {
  display: grid;
  gap: var(--km-space-6);
  margin-bottom: var(--km-space-12);
}
.km-product-terms {
  align-items: center;
  color: var(--km-muted-text);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.75rem;
  gap: var(--km-space-6);
  margin: 0;
}
.km-post-terms a,
.km-product-terms a {
  border: 1px solid rgba(2, 27, 76, 0.2);
  color: var(--km-primary);
  display: inline-flex;
  font-size: 0.75rem;
  line-height: 1.4;
  padding: 0 var(--km-space-6);
  text-decoration: none;
}
.km-single-title {
  color: var(--km-primary);
  font-family: var(--km-serif);
  font-size: clamp(1.35rem, 2.8vw, 2.25rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.28;
  margin: 0;
  margin-bottom: 0;
}
.km-single-featured {
  margin-bottom: var(--km-space-36);
}
.km-single-featured img {
  object-fit: cover;
}
.km-single-content {
  line-height: 1.9;
}
.km-single-content h2 {
  border-bottom: 1px solid var(--km-border);
  font-family: var(--font-family);
  font-size: 1.125rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin-top: var(--km-space-36);
  padding-bottom: var(--km-space-12);
}
.single-product-main .km-single-content > * + * {
  margin-block-start: var(--km-space-24);
}
.single-product-main .km-single-content h2 {
  border-bottom: 1px solid rgba(66, 134, 178, 0.28);
  border-left: 6px solid var(--km-secondary);
  color: var(--km-primary);
  font-family: var(--font-family);
  font-size: clamp(1.25rem, 2vw, 1.6rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.55;
  margin-top: var(--km-space-48);
  padding: 0 0 var(--km-space-12) var(--km-space-24);
}
.single-product-main .km-single-content h2:first-child {
  margin-top: 0;
}
.single-product-main .km-single-content h3 {
  align-items: center;
  color: var(--km-primary);
  display: flex;
  font-family: var(--font-family);
  font-size: clamp(1.05rem, 1.7vw, 1.25rem);
  font-weight: 600;
  gap: var(--km-space-12);
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-top: var(--km-space-36);
}
.single-product-main .km-single-content h3::before {
  background: var(--km-secondary);
  content: "";
  flex: 0 0 24px;
  height: 2px;
}
/* 製品ページの2カラム仕様表（functions.php で product_table を付与）。
   .single-product-main を持たないテンプレートでも効くよう単独で指定する。 */
.product_table {
  margin: var(--km-space-36) 0;
  overflow-x: auto;
}
.product_table table {
  border-collapse: collapse;
  border-top: 1px solid rgba(2, 27, 76, 0.18);
  font-size: 0.95rem;
  line-height: 1.75;
  table-layout: auto; /* 「セル幅を固定」オフ */
  width: 100%;
}
.product_table th,
.product_table td {
  border:none;
  border: 1px solid rgba(2, 27, 76, 0.12);
  padding: var(--km-space-12) var(--km-space-24);
  text-align: left;
  vertical-align: top;
}
.product_table th {
  background: var(--km-muted);
  color: var(--km-primary);
  font-weight: 600;
  /* 項目名の長さに合わせて左列を詰め、値側に幅を譲る */
  white-space: nowrap;
  width: 1%;
}

.single-product-main .km-single-content .wp-block-table {
  margin: var(--km-space-36) 0;
  overflow-x: auto;
}
.single-product-main .km-single-content table {
  border-collapse: collapse;
  border-top: 1px solid rgba(2, 27, 76, 0.18);
  font-size: 0.95rem;
  line-height: 1.75;
  min-width: 640px;
  width: 100%;
}
.single-product-main .km-single-content th,
.single-product-main .km-single-content td {
  border-bottom: 1px solid rgba(2, 27, 76, 0.12);
  padding: var(--km-space-12) var(--km-space-24);
  text-align: left;
  vertical-align: top;
}
.single-product-main .km-single-content th,
.single-product-main .km-single-content tr > td:first-child {
  background: rgba(232, 237, 245, 0.62);
  color: var(--km-primary);
  font-weight: 600;
  white-space: nowrap;
}
/* 左端列は内容に合わせた最小幅にし、残りの列に幅を譲る */
.single-product-main .km-single-content tr > th:first-child,
.single-product-main .km-single-content tr > td:first-child {
  width: 1%;
  white-space: nowrap;
}
.single-product-main .km-single-content thead th {
  background: var(--km-primary);
  color: var(--km-white);
}
.km-single-content .shiyo_table {
  border: 1px solid rgba(2, 27, 76, 0.16);
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.9rem;
  line-height: 1.65;
  margin: var(--km-space-36) 0;
  min-width: 0;
  table-layout: fixed;
  width: 100%;
}
.km-single-content .shiyo_table caption {
  color: var(--km-primary);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0 0 var(--km-space-12);
  text-align: left;
}
.km-single-content .shiyo_table th,
.km-single-content .shiyo_table td {
  border: 0;
  border-bottom: 1px solid rgba(2, 27, 76, 0.12);
  border-right: 1px solid rgba(2, 27, 76, 0.1);
  padding: var(--km-space-12);
  vertical-align: middle;
  white-space: normal;
}
.km-single-content .shiyo_table tr > :last-child {
  border-right: 0;
}
.km-single-content .shiyo_table tbody tr:last-child > * {
  border-bottom: 0;
}
.km-single-content .shiyo_table thead th {
  background: var(--km-primary);
  color: var(--km-white);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
}
.km-single-content .shiyo_table tbody tr {
  transition: background-color var(--km-transition);
}
.km-single-content .shiyo_table tbody tr:not(.section):hover {
  background: rgba(66, 134, 178, 0.05);
}
.km-single-content .shiyo_table td:first-child {
  color: var(--km-primary);
  font-weight: 600;
}
.km-single-content .shiyo_table .center {
  text-align: center;
}
.km-single-content .shiyo_table .right {
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.km-single-content .shiyo_table tr.section td {
  background: rgba(2, 27, 76, 0.08);
  color: var(--km-primary);
  font-weight: 600;
}
.km-single-content .shiyo_table tr.blue td:first-child {
  box-shadow: inset 3px 0 0 rgba(66, 134, 178, 0.7);
}
.km-single-content .shiyo_table tr.pink td:first-child {
  box-shadow: inset 3px 0 0 rgba(179, 104, 125, 0.55);
}
.km-related-box,
.km-product-cta {
  align-items: center;
  background: var(--km-muted);
  display: flex;
  gap: var(--km-space-24);
  justify-content: space-between;
  margin-top: var(--km-space-36);
  padding: var(--km-space-24);
}
.km-related-box__title,
.km-product-cta__title {
  margin: 0;
}
.km-post-nav {
  border-top: 1px solid var(--km-border);
  margin-top: var(--km-space-36);
  padding-top: var(--km-space-36);
}
.km-post-nav__grid {
  display: grid;
  gap: var(--km-space-12);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.km-post-nav__grid a {
  border: 1px solid var(--km-border);
  color: var(--km-primary);
  display: block;
  min-height: 84px;
  padding: var(--km-space-24);
  text-decoration: none;
}
.km-post-nav__grid a .post-navigation-link__label{
  color: var(--km-muted-text);
}
.km-post-nav__grid .post-navigation-link-next .post-navigation-link__label{
  text-align: right;
}
.km-post-nav__grid a:hover {
  background: var(--km-muted);
}
/* 2カラム共通レイアウト：製品一覧・製品ページ・お知らせ一覧・お知らせページの左右幅を統一 */
/* お知らせ/製品ページは wp:columns(flex) だが .wp-block-columns.km-container(0,2,0) で
   コアの .wp-block-columns(0,1,0) を上書きしてgrid化。inlineのflex-basisはgridでは無視される */
.km-single-product-layout,
.wp-block-columns.km-container {
  align-items: start;
  display: grid;
  gap: clamp(var(--km-space-36), 5vw, var(--km-space-72));
  grid-template-columns: minmax(0, 1fr) var(--km-sidebar-w);
}
.km-product-cat-layout {
  grid-template-columns: minmax(0, 1fr) var(--km-sidebar-w);
}
.km-product-sidebar {
  align-self: start;
  order: 2;
  top: 90px;
  width: 100%;
}
.km-single-product {
  order: 1;
}
/* aside を main の外に出したことで main が直接グリッドアイテムになる場合の対応 */
.km-single-product-layout > main {
  order: 1;
  min-width: 0;
}
.km-product-sidebar__block {
  margin-bottom: var(--km-space-36);
}
.km-product-sidebar__group p{
  color: var(--km-secondary);
  font-family: var(--km-serif);
  font-size: 18px;
  line-height: 1;
}
.km-product-sidebar__block h3{
  color: var(--km-muted-text);
  font-weight: 400;
  font-size: 16px;
  line-height: 1;
  letter-spacing: 0.08em;
  margin: 0 0 var(--km-space-12);
}
.km-product-sidebar__group h3 {
  border-left: 2px solid rgba(2, 27, 76, 0.3);
  padding-left: var(--km-space-6);
}
.km-product-sidebar ul {
  list-style: none;
  margin: 0 0 var(--km-space-24);
  padding: 0;
}
.km-product-sidebar ul.product-list li a {
  display: block;
  font-size: 15px;
  padding: var(--km-space-12);
  text-decoration: none;
}
.km-product-sidebar ul.product-list li a:hover,
body.product-cat-seimai .km-product-sidebar .km-product-sidebar__link--seimai,
body.product-cat-genryo .km-product-sidebar .km-product-sidebar__link--genryo,
body.product-cat-seigiku .km-product-sidebar .km-product-sidebar__link--seigiku,
body.product-cat-shubo .km-product-sidebar .km-product-sidebar__link--shubo,
body.product-cat-moromi .km-product-sidebar .km-product-sidebar__link--moromi,
body.product-cat-joso .km-product-sidebar .km-product-sidebar__link--joso,
body.product-cat-roka .km-product-sidebar .km-product-sidebar__link--roka,
body.product-cat-hiire .km-product-sidebar .km-product-sidebar__link--hiire,
body.product-cat-binzume .km-product-sidebar .km-product-sidebar__link--binzume {
  background: rgba(2, 27, 76, 0.05);
  color: var(--km-primary);
}
/* =========================================================
   サイドバー共通スタイル（ミニマル / 区切り線）
   製品・お知らせの見出し・区切り線・リンク・間隔を全ページで統一する
   ========================================================= */
/* グループ見出しのサイズを共通化 */
.km-product-sidebar__group h3 {
  line-height: 1.4;
}
/* リンクの余白・サイズ・角丸を共通化 */
.km-product-sidebar ul.product-list li a,
.km-news-sidebar ul.product-list li a{
  border-radius: 4px;
  padding: var(--km-space-6) var(--km-space-12);
  transition:var(--km-transition);
}
/* --- Common sidebar template parts ----------------------------- */
.km-sidebar {
  align-self: start;
  order: 2;
  top: 90px;
  width: 100%;
}
.km-sidebar.wp-block-template-part {
  background: var(--km-white);
  color: var(--km-primary);
  line-height: 1.7;
  margin-bottom: var(--km-space-36);
}
.km-sidebar .km-sidebar__block:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.km-news-sidebar__block h2,
.km-sidebar .km-sidebar_label {
  border-bottom: 0;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.4;
  margin: 0 0 var(--km-space-24);
  padding: 0;
  font-family: var(--font-family);
}
.km-sidebar .km-sidebar_label a{
  display: block;
}
.km-sidebar .km-sidebar_label a:hover{
  background: rgba(66, 134, 178, 0.1);
  color: var(--km-primary);
}
.km-sidebar ul.product-list,
.km-sidebar .wp-block-archives-list {
  margin: 0;
}
.km-sidebar .km-sidebar__group h3 {
  border-left: 0;
  color: var(--km-muted-text);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  margin: 0 0 var(--km-space-12);
  padding: 0;
}
.km-sidebar ul.product-list,
.km-sidebar .wp-block-archives-list {
  display: grid;
  gap: var(--km-space-6);
  list-style: none;
  padding: 0;
}
.km-sidebar .km-product-sidebar__block > ul.wp-block-list {
  display: grid;
  gap: var(--km-space-6);
  list-style: none;
  margin: 0;
  padding: 0;
}
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li {
  margin: 0;
}
.km-sidebar li.product-list,
.km-sidebar .wp-block-archives-list li {
  align-items: center;
  display: flex;
  gap: var(--km-space-6);
  margin: 0;
}
.km-sidebar .km-sidebar_label a,
.km-sidebar ul.product-list li a{
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  gap: var(--km-space-12);
  justify-content: space-between;
  line-height: 1;
  text-decoration: none;
}
/* リンクの文字サイズ・余白・角丸を .km-sidebar 側に集約（product/news 共通で一致させる） */
.km-sidebar ul.product-list li a {
  border-radius: 4px;
  font-size: 15px;
  padding: var(--km-space-6) var(--km-space-12);
  transition: var(--km-transition);
}
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a {
  align-items: center;
  border-radius: 4px;
  display: flex;
  font-size: 15px;
  gap: var(--km-space-12);
  justify-content: space-between;
  line-height: 1;
  padding: var(--km-space-6) var(--km-space-12);
  text-decoration: none;
  transition: var(--km-transition);
}
.km-sidebar .km-sidebar_label a:after,
.km-sidebar ul.product-list li a:after,
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:after {
  background: currentColor;
  content: "";
  flex: 0 0 18px;
  height: 18px;
  transform: translateX(-2px);
  transition: var(--km-transition);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  width: 18px;
}
.km-sidebar ul.product-list li a:hover,
.km-sidebar ul.product-list li a:focus-visible,
body.product-cat-seimai .km-sidebar .km-product-sidebar__link--seimai,
body.product-cat-genryo .km-sidebar .km-product-sidebar__link--genryo,
body.product-cat-seigiku .km-sidebar .km-product-sidebar__link--seigiku,
body.product-cat-shubo .km-sidebar .km-product-sidebar__link--shubo,
body.product-cat-moromi .km-sidebar .km-product-sidebar__link--moromi,
body.product-cat-joso .km-sidebar .km-product-sidebar__link--joso,
body.product-cat-roka .km-sidebar .km-product-sidebar__link--roka,
body.product-cat-hiire .km-sidebar .km-product-sidebar__link--hiire,
body.product-cat-binzume .km-sidebar .km-product-sidebar__link--binzume,
body.product-cat-other .km-sidebar .km-product-sidebar__link--other {
  background: rgba(66, 134, 178, 0.1);
  color: var(--km-primary);
}
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:hover,
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:focus-visible {
  background: rgba(66, 134, 178, 0.1);
  color: var(--km-primary);
}
.km-sidebar ul.product-list li a:not(.km-news-sidebar__brand):not(.km-news-sidebar__button):hover::after,
.km-sidebar ul.product-list li a:not(.km-news-sidebar__brand):not(.km-news-sidebar__button):focus-visible::after,
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:hover::after,
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:focus-visible::after,
body.product-cat-seimai .km-sidebar .km-product-sidebar__link--seimai::after,
body.product-cat-genryo .km-sidebar .km-product-sidebar__link--genryo::after,
body.product-cat-seigiku .km-sidebar .km-product-sidebar__link--seigiku::after,
body.product-cat-shubo .km-sidebar .km-product-sidebar__link--shubo::after,
body.product-cat-moromi .km-sidebar .km-product-sidebar__link--moromi::after,
body.product-cat-joso .km-sidebar .km-product-sidebar__link--joso::after,
body.product-cat-roka .km-sidebar .km-product-sidebar__link--roka::after,
body.product-cat-hiire .km-sidebar .km-product-sidebar__link--hiire::after,
body.product-cat-binzume .km-sidebar .km-product-sidebar__link--binzume::after,
body.product-cat-other .km-sidebar .km-product-sidebar__link--other::after {
  opacity: 1;
  transform: translateX(0);
}
.km-sidebar ul.product-list li a:not(.km-news-sidebar__brand):not(.km-news-sidebar__button):focus-visible {
  outline: 2px solid rgba(66, 134, 178, 0.45);
  outline-offset: 2px;
}
.km-sidebar .km-product-sidebar__block > ul.wp-block-list li a:focus-visible {
  outline: 2px solid rgba(66, 134, 178, 0.45);
  outline-offset: 2px;
}
.km-sidebar .archive-count,
.km-sidebar .wp-block-archives-list li span {
  background: rgba(66, 134, 178, 0.12);
  color: var(--km-secondary);
  flex: 0 0 auto;
  font-family: var(--km-display);
  font-size: 0.68rem;
  line-height: 1;
  min-width: 24px;
  padding: var(--km-space-6) 0;
  text-align: center;
}
.km-news-sidebar__brand {
  margin-bottom: var(--km-space-12);
}
.km-news-sidebar__brand img {
  height: 40px;
  width: 40px;
}
.km-news-sidebar__name {
  color: var(--km-primary);
  font-family: var(--font-family);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.4;
}
.km-news-sidebar__en {
  color: var(--km-muted-text);
}
.km-news-sidebar__company .km-news-sidebar__name{
  line-height: 1;
  font-size: 20px;
  margin: 0;
}
.km-news-sidebar__button {
  border: 1px solid var(--km-primary);
  color: var(--km-primary);
  display: inline-flex;
  font-size: 0.85rem;
  line-height: 1.4;
  padding: var(--km-space-6) var(--km-space-12);
  text-decoration: none;
}
.km-news-sidebar__button:hover,
.km-news-sidebar__button:focus-visible {
  background: var(--km-primary);
  color: var(--km-white);
}
.km-product-archive {
  order: 1;
}
/* --- 製品一覧テーブル（中古品ページ等） --- */
.km-product-table__wrap {
  overflow-x: auto;
}
.km-product-table {
  border-collapse: collapse;
  width: 100%;
}
.km-product-table thead th {
  border-bottom: 2px solid var(--km-primary);
  color: var(--km-muted-text);
  font-family: var(--km-display);
  letter-spacing: 0.1em;
  padding: var(--km-space-12);
  text-align: left;
  text-transform: uppercase;
  white-space: nowrap;
  font-size: 500;
}
.km-product-table tbody th,
.km-product-table tbody td {
  border-bottom: 1px solid var(--km-border);
  padding: var(--km-space-12);
  vertical-align: middle;
}
.km-product-table tbody th.km-product-table__name {
  color: var(--km-primary);
  font-size: 1rem;
  font-weight: 400;
  text-align: left;
}
.km-product-table__detail button,
.km-product-table__detail a,
.km-product-table__contact a {
  color: var(--km-primary);
  text-underline-offset: 0.18em;
  white-space: nowrap;
  line-height: 1;
}
.km-product-table__none {
  color: var(--km-muted-text);
}
/* バッジ（製品名右「カタログあり」／売却状況「売却済み」） */
.km-product-table__badge {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1.4;
  padding: 2px var(--km-space-12);
  vertical-align: middle;
  white-space: nowrap;
}
.km-product-table__badge--catalog {
  background: rgba(66, 134, 178, 0.12);
  border: 1px solid rgba(66, 134, 178, 0.45);
  color: var(--km-secondary);
}
.km-product-table__name .km-product-table__badge--catalog {
  margin-left: var(--km-space-12);
}
.km-product-table__badge--sold {
  background: rgba(2, 27, 76, 0.06);
  border: 1px solid var(--km-border);
  color: var(--km-muted-text);
}
/* テーブル内ボタン（「画像」「詳細」共通） */
.km-product-table__img-btn {
  background: transparent;
  border: 1px solid var(--km-primary);
  color: var(--km-primary);
  cursor: pointer;
  display: inline-block;
  font-family: inherit;
  font-size: 0.8rem;
  padding: var(--km-space-6) var(--km-space-12);
  text-decoration: none;
  transition: background var(--km-transition) ease, color var(--km-transition) ease;
  white-space: nowrap;
}
.km-product-table__img-btn:hover,
.km-product-table__img-btn:focus-visible {
  background: var(--km-primary);
  color: var(--km-white);
}
/* 製品画像モーダル */
.km-img-modal[hidden] {
  display: none;
}
.km-img-modal {
  align-items: center;
  display: flex;
  inset: 0;
  justify-content: center;
  padding: var(--km-space-24);
  position: fixed;
  z-index: 1000;
}
.km-img-modal__overlay {
  background: rgba(2, 27, 76, 0.6);
  inset: 0;
  position: absolute;
}
.km-img-modal__dialog {
  background: var(--km-white);
  box-shadow: 0 24px 64px rgba(2, 27, 76, 0.28);
  max-height: calc(100vh - 96px);
  max-width: min(760px, calc(100vw - 48px));
  overflow: auto;
  padding: var(--km-space-36);
  position: relative;
  z-index: 1;
}
.km-img-modal__img {
  display: block;
  height: auto;
  margin: 0 auto;
  max-width: 100%;
}
.km-img-modal__caption {
  color: var(--km-primary);
  font-size: 0.9rem;
  line-height: 1.6;
  margin: var(--km-space-12) 0 0;
  text-align: center;
}
.km-img-modal__close {
  align-items: center;
  background: var(--km-white);
  border: 1px solid var(--km-border);
  color: var(--km-primary);
  cursor: pointer;
  display: inline-flex;
  font-size: 1.25rem;
  height: 36px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: var(--km-space-12);
  top: var(--km-space-12);
  width: 36px;
}
.km-img-modal__close:hover {
  background: var(--km-muted);
}
.km-product-archive__description {
  margin-bottom: var(--km-space-36);
}
.km-product-archive__grid {
  align-items: stretch;
  gap: var(--km-space-12);
}
.km-product-archive__grid > li,
.km-product-archive__grid .wp-block-post {
  display: flex;
}
.km-product-archive-card {
  border: 1px solid var(--km-border);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: var(--km-space-12);
  padding: var(--km-space-24) var(--km-space-24);
  position: relative;
  transition: background-color var(--km-transition) ease, border-color var(--km-transition) ease;
  width: 100%;
}
.km-product-archive-card:hover {
  background: rgba(232, 237, 245, 0.35);
  border-color: rgba(2, 27, 76, 0.24);
}
.km-product-archive-card__image {
  aspect-ratio: 16 / 9;
  background: var(--km-muted);
  margin: calc(var(--km-space-24) * -1) calc(var(--km-space-24) * -1) 0;
  overflow: hidden;
}
.km-product-archive-card__image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.km-product-archive-card__title {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  margin: 0;
}
.km-product-archive-card__title a {
  color: var(--km-primary);
  text-decoration: none;
}
.km-product-archive-card__title a::after {
  content: "";
  inset: 0;
  position: absolute;
  z-index: 2;
}
.km-product-archive-card__title a:focus-visible::after {
  outline: 2px solid var(--km-secondary);
  outline-offset: 3px;
}
.km-product-archive-card__title a:hover {
  color: var(--km-secondary);
}
.km-product-archive-card__excerpt {
  color: rgba(2, 27, 76, 0.72);
  flex: 1 1 auto;
  font-size: 0.875rem;
  line-height: 1.8;
  margin: 0;
}
.km-product-archive__pagination {
  margin-top: var(--km-space-36);
}
.km-product-archive__pagination.wp-block-query-pagination {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  width: 100%;
}
/* --- ページネーション（クエリーループ） ---
   1ページ目は「前へ」、最終ページは「次へ」がそもそも出力されないため、
   ブロック側の space-between だと数字の並びが左右にずれる。
   3カラムグリッドに固定し、前へ/次への有無に関わらず数字を常に中央に置く。 */
.wp-block-query-pagination {
  align-items: center;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  flex-wrap: nowrap;
  gap: var(--km-space-12);
  margin-top: var(--km-space-48);
  max-width: 100%;
  overflow-x: auto;
  white-space: nowrap;
}
.wp-block-query-pagination > .wp-block-query-pagination-previous {
  grid-column: 1;
  justify-self: start;
}
.wp-block-query-pagination > .wp-block-query-pagination-numbers {
  grid-column: 2;
  justify-self: center;
}
.wp-block-query-pagination > .wp-block-query-pagination-next {
  grid-column: 3;
  justify-self: end;
}
.wp-block-query-pagination-numbers {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  gap: var(--km-space-6);
}
.wp-block-query-pagination .page-numbers {
  align-items: center;
  border: 1px solid var(--km-border);
  color: var(--km-primary);
  display: inline-flex;
  font-family: var(--km-display);
  font-size: 15px;
  height: 44px;
  justify-content: center;
  line-height: 1;
  min-width: 44px;
  padding: 0 var(--km-space-6);
  white-space: nowrap;
  text-decoration: none;
  transition: var(--km-transition) ;
}
.wp-block-query-pagination .page-numbers:hover {
  border-color: var(--km-primary);
  color: var(--km-secondary);
}
.wp-block-query-pagination .page-numbers.current {
  background: var(--km-primary);
  border-color: var(--km-primary);
  color: var(--km-white);
}
.wp-block-query-pagination .page-numbers.dots {
  border-color: transparent;
  min-width: auto;
}
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
  align-items: center;
  color: var(--km-primary);
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 15px;
  gap: var(--km-space-6);
  letter-spacing: 0.06em;
  white-space: nowrap;
  text-decoration: none;
  transition: var(--km-transition) ;
}
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover {
  color: var(--km-secondary);
}
.wp-block-query-pagination-previous::before,
.wp-block-query-pagination-next::after {
  transition: var(--km-transition) ;
}
.wp-block-query-pagination-next::after {
  content: "\2192";
}
.wp-block-query-pagination-previous::before {
  content: "\2190";
}
.wp-block-query-pagination-next:hover::after {
  transform: translateX(3px);
}
.wp-block-query-pagination-previous:hover::before {
  transform: translateX(-3px);
}
.km-product-archive__empty {
  border: 1px solid var(--km-border);
  color: var(--km-muted-text);
  padding: var(--km-space-24);
}
.km-product-title {
  margin-bottom: var(--km-space-24);
}
.km-product-header {
  align-items: flex-start;
  display: flex;
  gap: var(--km-space-24);
  justify-content: space-between;
  margin-bottom: var(--km-space-24);
}
.km-product-header .km-product-title {
  flex: 1 1 auto;
  margin-bottom: 0;
  font-size: 30px;
}
.wp-block-breadcrumbs li{
  line-height: 1;
  color: var(--km-muted-text);
}
.wp-block-breadcrumbs li a,
.wp-block-breadcrumbs ol a{
  color: var(--km-muted-text);
  line-height: 1;
  text-decoration: none;
}
.km-product-tools {
  display: flex;
  flex-wrap: wrap;
  gap: var(--km-space-12);
  justify-content: flex-end;
  margin-bottom: 0;
  position: relative;
  z-index: 3;
  width: 270px;
}
.km-qr-trigger,
.km-qr-actions button,
.km-qr-actions a {
  align-items: center;
  background: transparent;
  border: 1px solid var(--km-primary);
  color: var(--km-primary);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 14px;
  justify-content: center;
  line-height: 1.4;
  min-height: 44px;
  padding: var(--km-space-12) var(--km-space-24);
  text-decoration: none;
  transition: var(--km-transition) ;
}
.km-qr-trigger:hover,
.km-qr-actions button:hover,
.km-qr-actions a:hover {
  background: var(--km-primary);
  color: var(--km-white);
}
.km-qr-modal[hidden] {
  display: none;
}
.is-qr-modal-open {
  overflow: hidden;
}
.km-qr-modal {
  align-items: center;
  display: flex;
  inset: 0;
  justify-content: center;
  padding: var(--km-space-24);
  position: fixed;
  z-index: 100;
}
.km-qr-modal__backdrop {
  background: rgba(2, 27, 76, 0.56);
  inset: 0;
  position: absolute;
}
.km-qr-modal__panel {
  background: var(--km-white);
  border: 1px solid var(--km-border);
  box-shadow: 0 24px 70px rgba(2, 27, 76, 0.22);
  max-width: 440px;
  padding: var(--km-space-36);
  position: relative;
  width: min(100%, 440px);
}
.km-qr-modal__close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--km-border);
  color: var(--km-primary);
  cursor: pointer;
  display: inline-flex;
  font-size: 24px;
  height: 40px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 16px;
  top: 16px;
  width: 40px;
}
.km-qr-modal__panel .km-kicker {
  margin-bottom: var(--km-space-12);
}
.km-qr-modal__panel h2 {
  font-family: var(--km-serif);
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0 var(--km-space-48) var(--km-space-24) 0;
}
.km-qr-code {
  align-items: center;
  background: var(--km-white);
  border: 1px solid var(--km-border);
  display: flex;
  height: 260px;
  justify-content: center;
  margin: 0 auto var(--km-space-12);
  padding: var(--km-space-24);
  width: 260px;
}
.km-qr-code img,
.km-qr-code canvas {
  height: 220px;
  width: 220px;
}
.km-qr-url {
  color: var(--km-muted-text);
  font-size: 12px;
  line-height: 1.6;
  margin: 0 0 var(--km-space-24);
  overflow-wrap: anywhere;
}
.km-qr-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--km-space-12);
}
.km-product-cta {
  background: transparent;
  border: 1px solid var(--km-border);
}
.km-product-cta p {
  margin: 0;
}
.km-product-cta a {
  background: var(--km-primary);
  color: var(--km-white);
  flex-shrink: 0;
  padding: var(--km-space-12) var(--km-space-24);
  text-decoration: none;
}
.km-product-cta a:hover {
  background: var(--km-secondary);
}
.smf-form .smf-text-control__control{
  width: 100%;
}
.km-contact-intro,
.km-catalog-intro {
  border-left: 1px solid var(--km-secondary);
  margin-bottom: var(--km-space-48);
  padding-left: var(--km-space-36);
}
.km-contact-intro .km-kicker,
.km-catalog-intro .km-kicker {
  margin-bottom: var(--km-space-12);
}
.km-contact-intro .km-heading-jp,
.km-catalog-intro .km-heading-jp {
  margin-bottom: var(--km-space-24);
}
.km-contact-intro p:last-child,
.km-catalog-intro p:last-child {
  max-width: 760px;
}
/* --- catalog download button ---------------------------------- */
.km-product-cta__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--km-space-12);
  flex-shrink: 0;
}
.km-catalog-btn {
  background: var(--km-secondary);
  color: var(--km-white);
  flex-shrink: 0;
  padding: var(--km-space-12) var(--km-space-24);
  text-decoration: none;
  text-align: center;
}
.km-catalog-btn:hover {
  opacity: 0.85;
  color: var(--km-white);
}
/* --- 2026 tone refresh: clean, local, expert ------------------- */
.site-header {
  background: rgba(255, 255, 255, 0.94);
  border-bottom-color: rgba(66, 134, 178, 0.18);
}
.site-header.is-scrolled {
  box-shadow: 0 14px 36px rgba(2, 27, 76, 0.08);
}
.site-header .wp-block-navigation,
.km-heading-jp,
.km-subtitle,
.km-page-hero p,
.km-tile h3,
.km-business-card strong,
.km-product-sidebar__group p {
  font-family: var(--font-family);
}
.site-header .wp-block-navigation a:hover,
.site-footer a:hover {
  color: var(--km-secondary);
}
.km-section.is-muted,
.home .km-recruit-panel,
.km-product-cta,
.km-related-box {
  background: var(--km-muted);
}
.km-hero {
  padding: clamp(var(--km-space-120), 16vh, var(--km-space-192)) 0 clamp(var(--km-space-72), 12vh, var(--km-space-120));
}
.km-hero--home {
  background:
    linear-gradient(90deg, rgba(2, 27, 76, 0.86) 0%, rgba(2, 27, 76, 0.72) 42%, rgba(2, 27, 76, 0.28) 100%),
    url("/wp-content/uploads/vis.jpg") center / cover fixed;
}
.km-hero__image {
  inset: 0;
  opacity: 0.34;
  width: 100%;
}
.km-hero--home .km-hero__image {
  display: none;
}
.km-hero--home::after {
  background: linear-gradient(180deg, rgba(2, 27, 76, 0.05) 0%, rgba(2, 27, 76, 0.22) 100%);
}
.km-hero__content{
  max-width: var(--km-wide);
  padding-left: var(--km-space-24);
  padding-right: var(--km-space-24);
}
.km-hero .content .leftbox,
.km-hero__content > :where(p, h1, h2, .wp-block-buttons) {
  max-width: 900px;
}
.km-hero .content .leftbox .km-kicker{
  color: var(--km-gold);
  font-size: 18px;
  margin-bottom: var(--km-space-24);
}
.km-hero--home > .wp-block-columns.content {
  display: block;
}
.km-hero--home > .wp-block-columns.content > .wp-block-column {
  max-width: 900px;
  width: 100%;
}
.km-hero--home > .wp-block-columns.content > .wp-block-column:last-child {
  display: none;
}
.km-home-hero-title,
.km-hero .content .leftbox .km-heading-jp {
  font-family: var(--km-serif);
  font-size: clamp(2.3rem, 4.5vw, 4rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.34;
}
.km-hero-copy {
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--font-family);
  font-size: clamp(0.95rem, 1.8vw, 1.25rem);
  letter-spacing: 0.18em;
  line-height: 1.8;
  opacity: 1;
  text-transform: uppercase;
  white-space: normal;
}
.km-page-hero {
  background:var(--km-gradate);
  padding: var(--km-space-120) 0 var(--km-space-36);
  margin: 0;
}
.km-page-hero .value{
  font-size: 60px;
  font-family: var(--km-display);
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 0.08em;
  margin: var(--km-space-24) 0 var(--km-space-12);
  opacity: 0.72;
}
.km-heading-en {
  font-size: clamp(2.1rem, 5vw, 4rem);
}
.km-heading-jp {
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  font-family: var(--km-serif);
}
.km-kicker {
  color: var(--km-primary);
  font-weight: 400;
  letter-spacing: 0.22em;
}
.km-subtitle {
  color: var(--km-secondary);
  font-weight: 400;
  letter-spacing: 0.14em;
}
.km-accent {
  background: var(--km-secondary);
  width: 44px;
}

.km-grid-2,
.km-grid-5,
.km-home-business {
  gap: var(--km-space-36);
}
.km-image,
.wp-block-image.km-image,
.km-product-archive-card__image,
.km-single-featured {
  background: var(--km-muted);
  border-radius: 0;
  overflow: hidden;
}
.km-image img,
.km-product-archive-card__image img,
.km-single-content img {
  filter: saturate(0.96) contrast(1.02);
  transition: var(--km-transition) ;
}
.km-image:hover img,
.km-product-archive-card:hover .km-product-archive-card__image img {
  filter: saturate(1.02) contrast(1.04);
  transform: scale(1.035);
}
.km-link-button{
  margin-top: var(--km-space-24);
}
.wp-block-button__link a,
.km-button-row a,
.km-link-button a,
.km-product-cta a,
.km-catalog-btn a,
.km-qr-trigger a{
  align-items: center;
  background: transparent;
  border: 1px solid var(--km-primary);
  color: var(--km-primary);
  display: inline-flex;
  gap: var(--km-space-12);
  justify-content: space-between;
  letter-spacing: 0.08em;
  min-width: 176px;
  padding: var(--km-space-12) var(--km-space-24);
  position: relative;
  text-decoration: none;
transition: var(--km-transition) ;
}
.km-button-row a:after,
.wp-block-button__link a:after,
.km-link-button a:after {
  content: "\2192";
  font-size: 1rem;
  line-height: 1;
}
.km-button-row a:after
.km-product-cta a:after,
.km-catalog-btn a:after,
.km-qr-trigger a:after {
  background: currentColor;
  content: "";
  display: inline-block;
  flex: 0 0 18px;
  height: 18px;
  line-height: 1;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  width: 18px;
}
.km-product-cta a:not(.km-catalog-btn)::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16v12H4z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m4 7 8 6 8-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6h16v12H4z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='m4 7 8 6 8-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.km-catalog-btn a::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h8l4 4v17H7z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M15 3v6h6M10 13h7M10 17h7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h8l4 4v17H7z' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'/%3E%3Cpath d='M15 3v6h6M10 13h7M10 17h7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.km-qr-trigger a::after {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h7v7H4zM15 4h5v5h-5zM4 15h5v5H4zM14 14h2v2h-2zM18 14h2v2h-2zM14 18h2v2h-2zM18 18h2v2h-2z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 4h7v7H4zM15 4h5v5h-5zM4 15h5v5H4zM14 14h2v2h-2zM18 14h2v2h-2zM14 18h2v2h-2zM18 18h2v2h-2z' fill='black'/%3E%3C/svg%3E");
}
.km-button-row a:hover,
.wp-block-button__link a:hover,
.km-link-button a:hover,
.km-link-button a:hover,
.km-product-cta a:hover,
.km-catalog-btn a:hover,
.km-qr-trigger a:hover {
  background: var(--km-secondary);
  border-color: var(--km-secondary);
  color: var(--km-white);
  opacity: 1;
  transform: translateY(-1px);
}
.km-hero .wp-block-button__link,
.km-hero .km-link-button {
  border-color: rgba(255, 255, 255, 0.58);
  color: var(--km-white);
}
.km-hero .wp-block-button__link a:hover,
.km-hero .km-link-button a:hover {
  background: var(--km-secondary);
  border-color: var(--km-secondary);
  color: var(--km-white);
}
.km-link-button a{
  color: inherit;
}
.km-tile,
.km-business-card,
.km-card,
.km-product-archive-card,
.km-news-item {
  border-color: rgba(2, 27, 76, 0.1);
  transition: var(--km-transition) ;
}
.km-tile:hover,
.km-business-card:hover,
.km-product-archive-card:hover{
  background: var(--km-soft-blue);
  box-shadow: 0 18px 40px rgba(2, 27, 76, 0.08);
  transform: translateY(-2px);
}
.site-footer {
  background: var(--km-gradate);
}
.km-fade-target {
  opacity: 0;
  transform: translateY(28px);
  transition: var(--km-transition) ;
}
.km-tile{
  border: 1px solid var(--km-border);
}
.km-fade-target .km-tile > .wp-block-group{
  gap: var(--km-space-6);
}
.km-business-card .km-kicker{
  font-size: 13px;
}
.km-business-card .wp-block-heading{
  margin: var(--km-space-6) 0 0;
  line-height: 1;
}
.km-fade-target.is-visible {
  opacity: 1;
  transform: translateY(0);
}
/* --- final heading wrapping override -------------------------- */
/* keep-all で文節途中の不自然な改行を防ぐ。ただしそれでも収まらない場合は
   anywhere で強制的に折り返す（html,body の overflow-x:hidden で切れるのを防ぐ保険） */
h2.wp-block-heading,
h2.km-heading-jp {
  overflow-wrap: anywhere;
  word-break: keep-all;
}
.km-heading-en {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.18em;
}

/* ===================================================================
   メディアクエリ（レスポンシブ）はここにまとめています。
   元ファイル内での相対順序はそのまま維持しています。
   =================================================================== */

/* --- ナビのサブメニュー（事業案内などのドロップダウン／デスクトップ） --- */
@media (min-width: 1201px) {
  .site-header .wp-block-navigation .wp-block-navigation-submenu {
    position: relative;
  }
  /* 親とドロップダウンの間のホバー切れ防止 */
    .site-header .wp-block-navigation .wp-block-navigation-submenu::after {
    content: "";
    height: 18px;
    left: 0;
    position: absolute;
    right: 0;
    top: 100%;
  }
  /* 4クラス(0,4,0)でコア既定(0,3,0)に必ず勝つ。コアの width:0/height:0/overflow:hidden も明示的に打ち消す */
    .site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
    background: var(--km-white);
    border: 1px solid var(--km-border);
    box-shadow: 0 24px 64px rgba(2, 27, 76, 0.16);
    gap: 0;
    height: auto;
    left: 0;
    margin: 0;
    min-width: 240px;
    opacity: 0;
    overflow: visible;
    padding: var(--km-space-6);
    pointer-events: none;
    position: absolute;
    top: calc(100% + 18px);
    transform: translateY(8px);
    transition: var(--km-transition) ;
    visibility: hidden;
    width: max-content;
    z-index: 60;
  }
  .site-header .wp-block-navigation .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
    .site-header .wp-block-navigation .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container {
    height: auto;
    opacity: 1;
    overflow: visible;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
    width: max-content;
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item {
    width: 100%;
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    border-radius: 4px;
    display: block;
    font-size: 15px;
    padding: var(--km-space-12);
    white-space: nowrap;
    width: 100%;
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    background: rgba(2, 27, 76, 0.05);
    color: var(--km-secondary);
  }
  /* --- 事業案内・取扱製品の両方に同一デザインのシェブロン(▼)アイコンを付与して統一 --- */
    /* コア既定の▼ボタンは隠し、自作アイコンで見た目を完全一致させる */
    .site-header .wp-block-navigation .wp-block-navigation__submenu-icon {
    display: none;
  }
  .site-header .wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content,
    .site-header .wp-block-navigation a[href="/products/"] {
    align-items: center;
    display: inline-flex;
  }
  .site-header .wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content::before,
    .site-header .wp-block-navigation a[href="/products/"]::before {
    background: currentColor;
    content: "";
    height: 12px;
    margin-left: 0.4em;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M1.5 4 6 8l4.5-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    order: 1;
    transition: var(--km-transition) ;
    width: 12px;
  }
  .site-header .wp-block-navigation .wp-block-navigation-submenu:hover > .wp-block-navigation-item__content::before,
    .site-header__nav-area:has(a[href="/products/"]:hover) a[href="/products/"]::before {
    transform: rotate(180deg);
  }
  .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content::before,
    .site-header .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content::after {
    content: none;
  }
}

@media (min-width: 901px) {
  .slug-business .km-business-sales-grid {
    padding-right: 0;
  }
  .slug-business .km-business-sales-box--used p {
    flex: 1 1 auto;
    white-space: nowrap;
    width: auto;
  }
}

@media (max-width: 600px) {
  .km-business-sales-table {
    padding: 0 24px;
  }
  .km-business-sales-table table,
  .km-business-sales-table tbody,
  .km-business-sales-table tr,
  .km-business-sales-table th,
  .km-business-sales-table td {
    display: block;
    width: 100%;
  }
  .km-business-sales-table tr {
    margin-bottom: var(--km-space-24);
  }
  .km-business-sales-table th,
  .km-business-sales-table td {
    padding: 0 0 var(--km-space-12);
  }
  .km-business-sales-table td:last-child {
    max-width: 200px;
    padding-bottom: 0;
  }
}

@media (min-width: 640px) {
  .smf-form--business .smf-item__col--label {
    flex-basis: 17em;
    max-width: 17em;
  }
  .smf-form--business .smf-item__col--controls {
    flex-basis: calc(100% - 17em);
    max-width: calc(100% - 17em);
  }
}

/* --- km-product-table SP（横スクロールなし・縦積み／thead非表示） --- */
@media (max-width: 640px) {
  .km-product-table__wrap {
    overflow-x: visible;
  }
  .km-product-table thead {
    display: none;
  }
  .km-product-table,
  .km-product-table tbody {
    display: block;
    width: 100%;
  }
  .km-product-table tr {
    align-items: center;
    border-bottom: 1px solid var(--km-border);
    column-gap: var(--km-space-12);
    display: flex;
    flex-wrap: wrap;
    padding: var(--km-space-24) 0;
    row-gap: var(--km-space-12);
  }
  .km-product-table tbody th,
  .km-product-table tbody td {
    border-bottom: none;
    padding: 0;
  }
  /* 売却済みバッジのみ全幅で表示。非売却（—のみ）のセルは丸ごと隠す */
  .km-product-table__status {
    flex: 0 0 100%;
  }
  .km-product-table__status:has(.km-product-table__none) {
    display: none;
  }
  /* 製品名は横幅100% */
  .km-product-table__name {
    flex: 1 1 100%;
    width: 100%;
  }
  /* 画像・詳細・お問い合わせの3つを均等幅で横並び */
  .km-product-table__detail,
  .km-product-table__contact {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
  }
  .km-product-table__detail .km-product-table__img-btn,
  .km-product-table__contact a {
    display: block;
    text-align: center;
    width: 100%;
  }
}

@media (max-width: 1200px) {
  .site-header__menu-toggle {
    align-items: center;
    background: var(--km-white);
    border: 1px solid var(--km-border);
    color: var(--km-primary);
    display: flex;
    flex-direction: column;
    gap: var(--km-space-6);
    height: 44px;
    justify-content: center;
    position: fixed;
    right: 12px;
    top: 14px;
    width: 44px;
    z-index: 120;
  }
  .site-header__menu-toggle span {
    background: currentColor;
    display: block;
    height: 1.5px;
  transition: var(--km-transition) ;
    width: 18px;
  }
  .site-header__menu-toggle.is-open span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }
  .site-header__menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
  }
  .site-header__menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }
  .site-header .wp-block-navigation__responsive-container-open,
    .site-header__nav-area .wp-block-navigation__responsive-container-open {
    display: none;
  }
  .wp-block-navigation__responsive-container-close svg{
    fill:var(--km-white);
  }
  .site-header .wp-block-navigation__responsive-container {
    background: rgba(2, 27, 76, 0) !important;
    display: block;
    height: 100vh;
    inset: 0;
    pointer-events: none;
    position: fixed;
    padding: 0 !important;
    transition: var(--km-transition) ;
    width: 100vw;
    z-index: 110;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open,
  .site-header .wp-block-navigation__responsive-container.has-modal-open {
    background: rgba(2, 27, 76, 0.85) !important;
    pointer-events: auto;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }
  .site-header .wp-block-navigation__responsive-dialog {
    box-shadow: -24px 0 56px rgba(2, 27, 76, 0);
    color: var(--km-primary);
    height: 100vh;
    margin: 0 0 0 auto;
    overflow-y: auto;
    padding: var(--km-space-72) var(--km-space-24) var(--km-space-36);
    transform: translateX(100%);
    transition: var(--km-transition) ;
    width: 100%;
  }
  .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
  .site-header .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-dialog {
    transform: translateX(0);
    box-shadow: -24px 0 56px rgba(2, 27, 76, 0.22);
  }
  .site-header .wp-block-navigation__responsive-container-close {
    align-items: center;
    background: transparent;
    border: 1px solid var(--km-border);
    color: var(--km-primary);
    display: flex;
    height: 44px;
    justify-content: center;
    position: absolute;
    right: 20px;
    top: 20px;
    width: 44px;
  }
  .site-header .wp-block-navigation__responsive-container-content,
    .site-header .wp-block-navigation__container {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    padding-top: 0 !important;
  }
  .site-header .wp-block-navigation-item {
    width: 100%;
  }
  .site-header .wp-block-navigation-item__content {
    display: block;
    font-size: 1rem;
    padding: var(--km-space-24) 0;
    width: 100%;
  }
  .km-mega-products {
    display: none;
  }
}

/* さらに狭い画面（640px以下）でのモバイルメニューの上書き */
@media (max-width: 640px) {
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container {
    padding: 0;
    padding-left: var(--km-space-24);
    width: 100%;
  }
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
    padding: var(--km-space-12) !important;
    line-height: 1;
    color: #fff;
  }
}

/* ===== /モバイルナビ ここまで ===== */
@media (max-width: 900px) {
  html,
    body {
    overflow-x: hidden;
  }
  /* overflow-x:hidden ではみ出しが切り捨てられる幅では、
     見出しの keep-all を解除して日本語の通常改行を許可する */
  h2.wp-block-heading,
    h2.km-heading-jp,
    .km-heading-jp {
    word-break: normal;
    overflow-wrap: anywhere;
  }
  .vision-left,
    .vision-right,
    .bussiness-head-left,
    .bussiness-head-right {
    width: 100%;
  }

.bussiness-head-left{
  padding: 24px;
}

  .site-header__inner,
.archive-shell,
.km-breadcrumb,
.site-footer__inner,
.km-hero__content,
.km-hero .content,
.km-section.is-muted.full .content,
.km-page-hero > .wp-block-group,
.km-page-hero > .wp-block-heading,
.km-page-hero > .wp-block-columns {
    padding-left: var(--km-mobile-gutter);
    padding-right: var(--km-mobile-gutter);
  }
  .km-section > .content.wp-block-columns{
    padding-left: 0;
    padding-right: 0;
  }
  .site-header,
    .wp-block-post-content > .alignfull,
    .km-section,
    .km-page-hero,
    .km-hero {
    max-width: 100%;
    overflow-x: clip;
    margin: 0;
    padding-right: 0;
    padding-left:0;
  }
  .site-main {
    margin-top: var(--km-space-72);
  }
  .site-header,
    .site-header__inner {
    min-height: 72px;
  }
  .site-header__inner {
    gap: var(--km-space-12);
    max-width: 100%;
    position: relative;
    width: 100%;
  }
  .site-header__nav-area {
    flex: 0 0 44px;
    margin-left: auto;
    position: absolute;
    right: 0;
    top: 0;
    transform: none;
    height: 0;
    width: 0;
  }
  .site-header__nav-area .wp-block-navigation {
    position: static;
  }
  .site-brand {
    flex: 1 1 auto;
    min-width: 0;
    padding-right: var(--km-space-72);
  }
  .site-brand__name {
    line-height: 1.3;
    overflow-wrap: anywhere;
    font-family: var(--km-serif);
  }
  .km-hero__image {
    opacity: 0.28;
    width: 100%;
  }
  .km-hero--home::after {
    background: rgba(2, 27, 76, 0.78);
  }
  .km-hero {
    display: block;
    padding: var(--km-space-120) 0 var(--km-space-36) var(--km-space-48);
  }
  .km-hero--home {
    min-height: auto;
  }
  .km-hero > .wp-block-columns.content {
    display: block;
  }
  .km-hero > .wp-block-columns.content > .wp-block-column {
    flex-basis: 100%;
    max-width: none;
    width: 100%;
  }
  .km-hero .content .leftbox {
    max-width: min(100%, 620px);
    min-width: 0;
    width: min(100%, calc(100vw - 48px));
  }
  .km-hero .content .leftbox .km-heading-jp,
    .km-home-hero-title {
    font-size: clamp(1.45rem, 6.4vw, 2rem);
    letter-spacing: 0;
    line-height: 1.45;
  }
  .km-hero-copy {
    font-size: clamp(0.95rem, 3.6vw, 1.15rem);
    letter-spacing: 0.02em;
    line-height: 1.5;
    max-width: calc(100vw - 48px);
    overflow-wrap: anywhere;
    white-space: normal;
    width: calc(100vw - 48px);
  }
  .km-hero-sticky-news {
    bottom: auto;
    grid-template-columns: minmax(0, 1fr);
    left: auto;
    margin: var(--km-space-24) var(--km-space-24) 0;
    max-width: calc(100vw - (var(--km-mobile-gutter) * 2));
    position: relative;
    right: auto;
    width: calc(100vw - (var(--km-mobile-gutter) * 2));
  }
  .km-hero-sticky-news__body {
    min-width: 0;
    padding: var(--km-space-24);
  }
  .km-hero-sticky-news__body strong {
    line-height: 1.6;
    overflow-wrap: anywhere;
  }
  .km-grid-2,
.km-grid-5,
.km-home-business,
.km-news-layout,
.km-single-product-layout,
.wp-block-columns.km-container,
.site-footer__inner {
    grid-template-columns: 1fr;
    gap:0;
  }
  /* フッター：PC左から 1・2・3 → SPは上から 2・3・1 の順で表示 */
    .site-footer__inner > .wp-block-column:nth-child(1) {
    order: 3;
  }
  .site-footer__inner > .wp-block-column:nth-child(2) {
    order: 1;
  }
  .site-footer__inner > .wp-block-column:nth-child(3) {
    order: 2;
  }
  .km-business-card-grid {
    grid-auto-rows: auto;
    grid-template-columns: 1fr;
    height: auto;
    max-width: none;
    padding: 0;
  }
  .home .wp-block-column > .km-business-card-grid,
  .km-home-business > .km-business-card-grid {
    grid-auto-rows: auto;
    height: auto;
  }
  .km-container,
    .km-hero .content,
    .km-section .content,
    .km-section.is-muted.full .content {
    max-width: 100%;
    min-width: 0;
    width: 100%;
  }
  .km-home-business,
    .km-home-business__intro,
    .km-business-card,
    .km-business-card > span:first-child {
    min-width: 0;
  }
  .km-home-business > *,
    .km-home-business__intro > *,
    .km-business-content > *,
    .km-business-intro,
    .km-business-service,
    .km-business-service__body,
    .km-business-sales-grid {
    max-width: calc(100vw - 48px);
    width: calc(100vw - 48px);
  }
  .km-business-content .km-heading-jp,
    .km-business-content h2 {
    font-size: clamp(1.35rem, 7vw, 1.9rem);
    letter-spacing: 0;
    line-height: 1.6;
    max-width: calc(100vw - 48px);
    width: calc(100vw - 48px);
  }
  .km-business-card {
    align-items: flex-start;
    max-width: calc(100vw - 48px);
    padding: var(--km-space-24);
    width: calc(100vw - 48px);
  }
  .km-business-card small,
    .km-business-card strong,
    .km-home-business__intro p {
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  .km-business-intro,
    .km-business-service,
    .km-business-sales-grid {
    grid-template-columns: 1fr;
  }
  .km-business-content,
  .km-business-content * {
    box-sizing: border-box;
    max-width: 100%;
  }
  .km-business-service-list {
    grid-template-columns: 1fr;
    gap:0;
    padding: 24px;
  }
  .km-business-sales-box{
    flex-direction: column;
    gap:var(--km-space-12);
    margin-bottom: var(--km-space-24);
  }
  .km-business-section {
    overflow-x: hidden;
  }
  .km-business-sales-grid{
    padding:0 24px;
  }
  .km-business-sales-box p,
    .km-business-sales-box h4{
    width: 100%;
  }
  .km-business-content {
    width: 100%;
  }
  .km-business-content h2,
    .km-business-content h3,
    .km-business-content h4,
    .km-business-content p,
    .km-news-item__title,
    .km-news-item__title a,
    .km-news-item__excerpt,
    .km-product-archive-card__title,
    .km-product-archive-card__title a,
    .km-product-archive-card__excerpt,
    .km-product-archive-card__excerpt p,
    .km-single-content h2,
    .km-single-content h3,
    .km-product-archive p,
    .km-single-product p,
    .km-news-main p,
    .privacy-policy p {
    overflow-wrap: anywhere;
  }
  .km-news-main,
    .km-news-item,
    .km-product-archive,
    .km-product-archive-card {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
  }
  .km-news-item__title a,
    .km-product-archive-card__title a {
    display: block;
    white-space: normal;
  }
  .km-single-content img,
    .km-single-content figure,
    .km-single-content .wp-block-image {
    height: auto;
    max-width: 100%;
  }
  .single-product-main .km-single-content table:not(.km-product-table),
    .km-single-content table:not(.km-product-table) {
    font-size: 0.88rem;
    min-width: 0;
    max-width: 100%;
    width: 100%;
  }
  .single-product-main .km-single-content .wp-block-table,
    .km-single-content .wp-block-table {
    overflow: visible;
  }
  .km-single-content table:not(.km-product-table),
    .km-single-content table:not(.km-product-table) thead,
    .km-single-content table:not(.km-product-table) tbody,
    .km-single-content table:not(.km-product-table) tfoot,
    .km-single-content table:not(.km-product-table) tr,
    .km-single-content table:not(.km-product-table) th,
    .km-single-content table:not(.km-product-table) td {
    box-sizing: border-box;
    display: block;
    width: 100%;
  }
  .km-single-content table:not(.km-product-table) tr {
    border: 1px solid rgba(2, 27, 76, 0.14);
  }
  .km-single-content table:not(.km-product-table) th,
    .km-single-content table:not(.km-product-table) td {
    border: 0;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  .km-single-content table:not(.km-product-table) tr > * + * {
    border-top: 1px solid rgba(2, 27, 76, 0.1);
  }
  .single-product-main .km-single-content table:not(.km-product-table) th,
    .single-product-main .km-single-content table:not(.km-product-table) td {
    padding: var(--km-space-12);
  }
  .single-product-main .km-single-content table.shiyo_table,
    .km-single-content table.shiyo_table {
    background: transparent;
    border: 0;
    display: block;
    font-size: 0.88rem;
    margin: var(--km-space-24) 0;
    max-width: calc(100vw - 48px);
    min-width: 0;
    overflow: visible;
    table-layout: auto;
    width: calc(100vw - 48px);
  }
  .single-product-main .km-single-content .shiyo_table colgroup,
    .single-product-main .km-single-content .shiyo_table thead,
    .km-single-content .shiyo_table colgroup,
    .km-single-content .shiyo_table thead {
    display: none !important;
  }
  .km-single-content .shiyo_table caption {
    display: block;
    padding-bottom: var(--km-space-12);
    width: 100%;
  }
  .km-single-content .shiyo_table tbody {
    max-width: 100%;
    display: block;
    width: 100%;
  }
  .km-single-content .shiyo_table tbody tr {
    background: var(--km-white);
    border: 1px solid rgba(2, 27, 76, 0.16);
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(2, 27, 76, 0.05);
    display: block;
    margin: 0 0 var(--km-space-12);
    max-width: 100%;
    overflow: hidden;
    width: 100%;
  }
  .single-product-main .km-single-content .shiyo_table tbody td,
    .km-single-content .shiyo_table tbody td {
    align-items: start;
    background: var(--km-white);
    border: 0;
    border-bottom: 1px solid rgba(2, 27, 76, 0.1);
    box-shadow: none;
    display: grid;
    gap: var(--km-space-12);
    grid-template-columns: minmax(88px, 34%) minmax(0, 1fr);
    min-width: 0;
    overflow-wrap: anywhere;
    padding: var(--km-space-12);
    text-align: right;
    white-space: normal !important;
    width: 100%;
  }
  .km-single-content .shiyo_table tbody td:last-child {
    border-bottom: 0;
  }
  .km-single-content .shiyo_table tbody td:empty,
    .km-single-content .shiyo_table tbody td.is-empty {
    display: none;
  }
  .km-single-content .shiyo_table tbody td[data-label]::before {
    color: var(--km-muted-text);
    content: attr(data-label);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: left;
  }
  .km-single-content .shiyo_table .shiyo_table__value {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: right;
    white-space: normal;
    word-break: break-word;
  }
  .single-product-main .km-single-content .shiyo_table tr.section td,
    .km-single-content .shiyo_table tr.section td {
    background: rgba(2, 27, 76, 0.06);
  }
  .page-id-1340 .wp-block-post-content > .km-section{
    padding:var(--km-space-24);
    margin: 0;
    width: auto;
  }
  .km-business-intro .km-heading-jp {
    font-size: clamp(1.35rem, 5.8vw, 1.8rem);
    line-height: 1.55;
  }
  .km-business-lead,
    .km-business-service__body > p,
    .km-business-sales-item p {
    font-size: 0.95rem;
    line-height: 1.9;
  }
  .km-business-service {
    gap: var(--km-space-12);
  }
  .km-sidebar,
    .km-product-sidebar,
    .km-news-sidebar {
    order: 2;
    position: static;
  }
  .km-product-sidebar {
    display: none;
  }
  .km-sidebar-modal-trigger {
    align-items: center;
    border:1px solid var(--km-primary);
    border: 0;
    color: var(--km-primary);
    cursor: pointer;
    display: flex;
    font: inherit;
    font-weight: 600;
    justify-content: space-between;
    margin: 0 0 var(--km-space-24) !important;
    order: 0;
    padding: var(--km-space-12) var(--km-space-24);
    width: 100%;
  }
  .km-single-product-layout:has(> .km-sidebar-modal-trigger),
  .wp-block-columns.km-container:has(> .km-sidebar-modal-trigger) {
    padding-top: var(--km-space-24);
  }
  .km-products-section > .km-single-product-layout:has(> .km-sidebar-modal-trigger) {
    padding-top: 0;
  }
  .is-sidebar-modal-placeholder {
    display: none !important;
  }
  .km-sidebar-modal {
    inset: 0;
    position: fixed;
    z-index: 10000;
  }
  .km-sidebar-modal[hidden] {
    display: none;
  }
  .km-sidebar-modal__backdrop {
    animation: km-sidebar-backdrop-in 220ms ease-out both;
    background: rgba(2, 27, 76, 0.58);
    border: 0;
    inset: 0;
    position: absolute;
    width: 100%;
  }
  .km-sidebar-modal__panel {
    animation: km-sidebar-panel-in 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
    background: var(--km-white);
    border: 0;
    border-radius: 16px;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    height: auto;
    margin: 12px auto;
    max-height: calc(100dvh - 24px);
    max-width: calc(100vw - 24px);
    overflow: hidden;
    outline: 0;
    position: relative;
    width: min(94vw, 720px);
  }
  @keyframes km-sidebar-backdrop-in {
    from {
      opacity: 0;
    }
    to {
      opacity: 1;
    }
  }
  @keyframes km-sidebar-panel-in {
    from {
      opacity: 0;
      transform: translateY(12px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
  .km-sidebar-modal__close {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--km-primary);
    cursor: pointer;
    display: flex;
    font-size: 2rem;
    height: 44px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    position: absolute;
    right: var(--km-space-12);
    top: var(--km-space-12);
    width: 44px;
    z-index: 1;
  }
  .km-sidebar-modal__body {
    min-height: 0;
    overflow: visible;
    padding: var(--km-space-24) var(--km-space-24);
  }
  .km-sidebar-modal__body .km-sidebar {
    display: block;
    margin: 0;
    max-width: none;
    width: 100%;
  }
  .km-sidebar-modal__body .km-sidebar ul.product-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .km-sidebar-modal__body .km-sidebar ul.product-list li,
  .km-sidebar-modal__body .km-sidebar ul.product-list li a {
    min-width: 0;
  }
  .km-sidebar-modal__body .km-sidebar ul.product-list li a {
    gap: var(--km-space-6);
    padding:12px 0;
  }
  body.is-sidebar-modal-open {
    overflow: hidden;
  }
  .km-news-layout > .wp-block-template-part {
    max-width: none;
  }
  .km-news-main,
    .km-product-archive,
    .km-single-product {
    order: 1;
  }
  .km-product-header {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--km-space-12);
  }
  .km-product-tools {
    display: none;
  }
  /* モバイルは前へ/次へを隠して数字だけを横スクロールさせるため、
     3カラムグリッドをやめて flex に戻す（空の 1fr トラックが残るのを防ぐ） */
  .wp-block-query-pagination {
    display: flex;
    justify-content: flex-start;
    margin-top: var(--km-space-36);
    padding-bottom: var(--km-space-6);
  }
  .wp-block-query-pagination .page-numbers {
    font-size: 14px;
    height: 38px;
    min-width: 38px;
  }
  .wp-block-query-pagination-previous,
    .wp-block-query-pagination-next {
    display: none;
  }
  .km-post-nav__grid,
    .km-related-box,
    .km-product-cta {
    grid-template-columns: 1fr;
  }
  .km-related-box,
    .km-product-cta {
    align-items: flex-start;
    flex-direction: column;
  }
  /* SPでは2カラムを解いて1列（項目名の下に内容）で積む */
  .km-data-list table,
  .km-data-list tbody,
  .km-data-list tr {
    display: block;
    width: 100%;
  }
  .km-data-list tr {
    border-bottom: 1px solid var(--km-border);
    padding: var(--km-space-12) 0;
  }
  .km-data-list tr:first-child {
    padding-top: 0;
  }
  .km-data-list tr:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
  .km-data-list tr > * {
    border: 0;
    display: block;
    padding: 0;
    width: auto;
  }
  .km-data-list th {
    font-size: 0.85rem;
    margin-bottom: var(--km-space-6);
    width: auto;
  }
  .km-timeline {
    border-left: 0;
    margin-left: 0;
    width: 100%;
  }
  .km-timeline > div {
    grid-template-columns: 1fr;
    transform: none;
    width: auto;
    gap:12px;
  }
  .km-timeline dt {
    text-align: left;
  }
  .km-timeline dd::before {
    display: none;
  }
  body {
    font-size: 15px;
  }
  .km-hero--home {
    background-attachment: scroll;
    min-height: auto;
  }
  .km-hero__content,
    .km-hero .content {
    padding-left: var(--km-mobile-gutter);
    padding-right: var(--km-mobile-gutter);
  }
  .km-home-hero-title,
    .km-hero .content .leftbox .km-heading-jp {
    font-size: 28px;
    letter-spacing: 0.04em;
  }
  .km-section:nth-of-type(even) .km-grid-2 > :first-child,
.km-section:nth-of-type(even) .km-grid-2 > :last-child {
    order: initial;
  }
  .vision-right>.wp-block-group{
    flex-direction: column;
  }
}

@media (max-width: 900px) and (max-height: 560px) {
  .km-sidebar-modal__panel {
    margin: 8px auto;
    max-height: calc(100dvh - 16px);
    width: min(96vw, 820px);
  }
  .km-sidebar-modal__body {
    padding: var(--km-space-12) var(--km-space-24);
  }
  .km-sidebar-modal__body .km-sidebar ul.product-list {
    gap: var(--km-space-12);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .km-sidebar-modal__body .km-sidebar ul.product-list li a {
    font-size: 13px;
    padding-bottom: 4px;
    padding-top: 4px;
  }
}

@media (max-width: 640px) {
  :root {
    --km-content: 100%;
    --km-wide: 100%;
  }
  .km-page-hero .value{
    font-size: 36px;
  }
  .site-brand__en {
    display: none;
  }
  .site-header__inner{
    padding: 12px;
  }
.km-container,
.wp-block-columns.km-container,
.archive-shell,
.km-hero__content,
.km-breadcrumb,
.site-footer__inner {
    padding-left: var(--km-mobile-gutter);
    padding-right: var(--km-mobile-gutter);
  }
  .km-page-hero > .wp-block-group,
    .km-page-hero > .wp-block-heading,
    .km-page-hero > .wp-block-columns{
    padding-left: var(--km-mobile-gutter);
    padding-right: var(--km-mobile-gutter);
  }
  .km-hero .content .leftbox .km-kicker{
    font-size: 15px;
  }
  .km-hero .wp-block-buttons>.wp-block-button{
    width: 48%;
  }
  .km-hero .km-button-row a{
    min-width:auto;
  }
  .km-business-contact{
    padding: var(--km-space-24);
  }
  .km-tile,
  .km-card__body {
    padding: var(--km-space-24);
  }
  .entry-content.wp-block-post-content{
    padding: 0;
  }
  .parent-pageid-1341 .entry-content.wp-block-post-content{
    padding: var(--km-space-36) var(--km-space-24);
  }
  /* 全幅セクション(km-section)を持たない素のコンテンツページは、
     上の padding:0 だと画面端に張り付くため 24px の余白を戻す。
     business配下(consulting/maintenance)は .parent-pageid-1341 で対応済み。 */
  .slug-contact .entry-content.wp-block-post-content,
  .slug-catalog-dl .entry-content.wp-block-post-content,
  .slug-recruit .entry-content.wp-block-post-content,
  .slug-chuuko .entry-content.wp-block-post-content,
  .slug-owned .entry-content.wp-block-post-content,
  .slug-privacy-policy .entry-content.wp-block-post-content{
    padding: var(--km-space-24);
  }
  .km-business-sales-grid{
    width: 100%;
    padding: 24px;
    max-width: none;
  }

  .km-business-intro {
    gap: var(--km-space-12);
  }
  .km-business-service {
    padding:24px;
  }
  .km-business-service > .wp-block-group{
    margin-bottom: 24px;
  }
  .km-business-service__number {
    font-size: 2.4rem;
    white-space: nowrap;
  }
  .km-business-sales-item {
    padding: var(--km-space-24);
  }
  h2.wp-block-heading,
  h2.km-heading-jp {
    font-size: clamp(1.25rem, 6vw, 1.85rem);
    letter-spacing: 0.04em;
  }
  .km-products-section{
    padding: 24px;
  }
  .recruit-container,
  .contact-container{
    padding: 24px;
  }
  .site-footer__inner{
    gap:var(--km-space-36);
  }
  .site-footer .copyright{
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .km-sidebar-modal__backdrop,
  .km-sidebar-modal__panel {
    animation: none;
  }
  .km-fade-target {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .km-hero--home {
    background-attachment: scroll;
  }
}
