@charset "utf-8";

/* ==========================================================================
   business.css — 事業内容ページ（03-1 親 + 03-2 子）
   元 business.css の本文ブロック配置を維持。
   グローバル汚染防止: .business__* は .service-section 配下に限定。
   ページ枠は pages.css に準拠。フォントは base.css（--font-base / --font-base_en）に準拠。
   page-nav は column_main 内で全幅に伸ばす。
   ========================================================================== */
.content_body{
    padding-bottom: 0;
}

.business-intro,
.service-section,
.architecture,
.works-examples {
  /* フォントは base.css の :root トークンに準拠 */
  font-family: var(--font-base);
  --container-padding-inline: 2.5rem;
  --content-width-business: 75rem;
  --space-sm: 1.375rem;
  --space-md: 1.5rem;
  --space-lg: 3rem;
  --space-xl: 4rem;
  --space-component: 1.5rem;
  --radius-lg: 1.5rem;
  --radius-banner: var(--radius-lg);
  --font-size-sm: 0.875rem;
  --font-size-base: 1rem;
  --font-size-md: 1.25rem;
  --font-size-l: 2.5rem;
  --font-size-3xl: 3rem;
  --font-size-2xl: var(--font-size-l);
  --line-height-body: 1.8;
  --color-white: #ffffff;
  --color-black: #000000;
  --color-text: var(--text-color);
  --color-text-muted: #666666;
  --color-text-subtle: #888888;
  --color-border: #dddddd;
  --color-bg-cream: rgba(254, 250, 236, 1);
  --color-business-blue: #4a90d9;
  --color-business-orange: #e67e22;
  --color-business-green: #27ae60;
  --business-hero-title-en: 4rem;
}

.works-examples {
  --works-card-radius: var(--radius-lg);
  --works-grid-col-gap: 5rem;
  --works-grid-row-gap: 4rem;
}

.business-intro .layout-container,
.service-section .layout-container,
.architecture .layout-container,
.works-examples .layout-container {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--content-width-business);
  margin-inline: auto;
}

/* イントロのみ 50rem・余白なし（layout-container 共通指定の打ち消し） */
.business-intro .business-intro__inner.layout-container {
  max-width: 50rem;
  padding-inline: 0;
}

/* column_main の align-items:center から page-nav を除外し、他ページ同様に全幅＋右寄せ */
/*
.contents.business .page-nav {
  align-self: stretch;
  width: 100%;
}

.contents.business .page-nav__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
*/

/* ==========================================================================
   pages.css 汎用スタイル打ち消し（.page_body 内・事業ブロックのみ）
   ========================================================================== */

/* h2 — SP の .page_body h2 余白打ち消し */
.page_body .service-section .service-section__head .section-heading__en,
.page_body .service-section #service-heading {
  margin: 0;
  clear: none;
  position: static;
}

.page_body .architecture .architecture__head .section-heading__en {
  margin: 0;
  clear: none;
  position: static;
}

.page_body .works-examples .works-examples__head .section-heading__en {
  margin: 0;
  clear: none;
  position: static;
}

.page_body .business-intro:has(+ .architecture) .business-intro__heading {
  margin: 0 0 1.5rem;
  clear: none;
  position: static;
}

/* p.section-heading__ja — .page_body p 余白打ち消し */
.page_body .service-section .section-heading__ja {
  margin: 0 0 1rem;
}

.page_body .architecture .architecture__head .section-heading__ja {
  margin: 0 0 var(--space-sm);
}

.page_body .works-examples .works-examples__head .section-heading__ja {
  margin: 0 0 0.75rem;
}

/* 本文 p — .page_body p 余白打ち消し */
.page_body .service-section .business__desc p {
  margin: 0;
}

.page_body .architecture .architecture-card__text,
.page_body .works-examples .works-examples-card__text {
  margin: 0;
}

/* ul — .page_body ul / li::before 打ち消し（business__tags 含む） */
.page_body .service-section .business__tags {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}

.page_body .service-section .business__tags li {
  margin: 0;
  padding-left: 0;
  position: static;
  list-style: none;
}

.page_body .service-section .business__tags li::before {
  content: "#";
  width: auto;
  height: auto;
  border-radius: 0;
  display: inline;
  background: none;
  position: static;
  top: auto;
  left: auto;
}

/* a / hover — pages.css・home.css のリンク色・下線打ち消し */
.page_body .service-section .business__title a,
.page_body .service-section .business__panel-head .business__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease;
}

/* panel-head 全体をリンクのクリック・ホバー領域に（再生アイコン用 ::after と競合しないよう ::before） */
.page_body .service-section .business__panel-head .business__title a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}


.page_body .service-section .business__title a:hover,
.page_body .service-section .business__title a:focus-visible,
.page_body .service-section .business__panel-head .business__title a:hover,
.page_body .service-section .business__panel-head .business__title a:focus-visible {
  text-decoration: none;
  opacity: 1;
}

/* ホバー時 — business__num-dot-wrapper と同じ色 */
.page_body .service-section .business__row--01 .business__title a:hover,
.page_body .service-section .business__row--01 .business__title a:focus-visible {
  color: var(--main_color3, var(--color-business-blue));
}

.page_body .service-section .business__row--02 .business__title a:hover,
.page_body .service-section .business__row--02 .business__title a:focus-visible {
  color: var(--main_color2, var(--color-business-orange));
}

.page_body .service-section .business__row--03 .business__title a:hover,
.page_body .service-section .business__row--03 .business__title a:focus-visible {
  color: var(--main_color4, #2d8c3b);
}

.page_body .works-examples .works-examples-card__title-row a,
.page_body .works-examples .works-examples-card__title-row a:hover,
.page_body .works-examples .works-examples-card__title-row a:focus-visible {
  color: var(--color-black);
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.page_body .works-examples .works-examples-card__title-row a:hover,
.page_body .works-examples .works-examples-card__title-row a:focus-visible {
  opacity: 0.75;
}

/* title-row 全体をリンクのクリック・ホバー領域に（矢印アイコン用 ::after と競合しないよう ::before） */
.page_body .works-examples .works-examples-card__title-row .works-examples-card__title a::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* img — .page_body img の height:auto 打ち消し（パノラマは 400px 固定） */
.page_body .business-panorama img,
.page_body .wp-block-image.business-panorama img {
  display: block;
  width: auto;
  height: 400px;
  /*object-fit: cover;*/
}

/* wp-block-image — pages.css figure 余白打ち消し */
.page_body .wp-block-image.business-panorama,
.page_body .wp-block-image.business-panorama figure {
  margin: 0;
}

.page_body .service-section .business__figure-img {
  height: 100%;
  object-fit: cover;
}


.section-heading {
  margin: 0;
}

.section-heading__ja {
  margin-bottom: var(--space-sm);
  font-size: var(--font-size-md);
  font-weight: 700;
  line-height: 1.4;
}

.section-heading__en {
  font-family: var(--font-base_en);
  font-size: clamp(var(--font-size-3xl), 7vw, var(--business-hero-title-en));
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

/* --- イントロ --- */
.business-intro {
  padding: 0;
  background: none;
}

.business-intro__inner {
  max-width: 50rem;
  margin-inline: auto;
  margin:0 2rem 2rem 2rem;
  padding-inline: 0;
}

/* 親ページ index — column_main 中央寄せの影響を打ち消し、イントロ全幅＋内側800px */
.contents.business .page_body > .business-intro {
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
}

/* service-section / business-panorama 全幅 — pages.css .page_body margin / column_wrapper 幅の打ち消し */
.contents.business .column_main:has(.service-section),
.contents.business .column_main:has(.business-panorama) {
  align-items: stretch;
}

.contents.business .page_body_wrapper:has(.service-section),
.contents.business .page_body_wrapper:has(.business-panorama),
.contents.business .content_body:has(.service-section),
.contents.business .content_body:has(.business-panorama),
.contents.business .column_wrapper:has(.service-section),
.contents.business .column_wrapper:has(.business-panorama) {
  overflow-x: visible;
}

.contents.business .page_body:has(> .service-section),
.contents.business .page_body:has(> .business-panorama),
.contents.business .page_body:has(> .wp-block-image.business-panorama) {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow-x: visible;
}

.contents.business .page_body > .service-section {
  position: relative;
  z-index: 0;
  align-self: stretch;
  box-sizing: border-box;
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: 0;
  overflow-x: clip;
  padding: 4rem 0;
}

/* flex 子で width:100vw が打ち消されても背景だけ画面端まで伸ばす */
.contents.business .page_body > .service-section::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  background-color: rgba(254, 250, 236, 1);
}

.contents.business .page_body > .service-section .sub_ttl{
  text-align: center;
}

.contents.business .page_body > .business-panorama,
.contents.business .page_body > .wp-block-image.business-panorama {
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 0;
  align-self: stretch;
  box-sizing: border-box;
  width: 100vw;
  max-width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding-inline: 0;
  overflow: visible;
  height: 400px;
  line-height: 0;
}

.business-intro__heading,
.page_body .business-intro__heading {
  margin: 0 0 1.5rem;
  font-family: var(--font-base_maru);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-black);
  text-align: center;
  position: static;
  clear: none;
}

.business-intro__text,
.page_body .business-intro__text {
  line-height: var(--line-height-body);
  text-align: center;
}

.business-intro__text:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* --- page-business 相当（.contents.business 用・配置のみ） --- */

.page-business .business-intro,
.contents.business.index .business-intro {
  margin-bottom: 32px;
}

/*事業内容*/

.business__list {
    max-width: 920px;
    margin: 0 auto;
}

.page_body .business__list ul {
  margin: 0;
}

.page_body .business__list ul li.business__list_item::before{
  display: none;
}

.business__list_item {
  position: relative;
  opacity: 0;
  transition: all 1s ease;
  transition-delay: 0.5s;
  transform: translateY(2rem);
}

.business__list_item.show {
  opacity: 1;
  transform: translateY(0);
}

.business__list_item a {
  display: block;
  padding: 5rem;
  /*position: relative;*/
  z-index: 1;
  text-decoration: none;
  color: var(--text-color);
}

.business__list_item h3 {
  position: relative;
  z-index: 1;
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 0.7rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: all 0.3s ease;
}

  .business__list_item h3::after{
    content: "";
    display: inline-block;
    width: 2rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--text-color);
    background-size: 1rem auto;
    background-repeat: no-repeat;
    background-position: left calc(50% + 1px) center;
    background-image: url(../shared/icon_arrow_w.png);
    transition: all 0.3s ease;
  }

    .business__list_item h3::before{
      font-family: var(--font-base_en);
      position: absolute;
      right: 0;
      top: 0;
      font-size: 3.25rem;
      font-weight: normal;
      line-height: 1;
    }

.business__list_item p {
  font-size: 1.1rem;
}

.business__list_tags {
  font-size: 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0 1em;
  margin-top: 1rem;
}

.page_body .business__list_tags li{
  padding-left: 0;
  margin-bottom: 0;
}

.page_body .business__list_tags li::before {
  content: "#"; 
  width: unset;
  height: unset;
  border-radius: unset;
  display: unset;
  background: unset;
  position: unset;
  top: unset;
  left: unset;
}

.business__list_item .img_business::before{
  content: "";
  position: absolute;
  width: 1.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #555;
  z-index: 1;
}

.business__list_item.for_custom {
  padding-right: 16rem;
  padding-left: 0;
  margin-bottom: 0;
  z-index: 1;
}

  .business__list_item.for_custom a:hover h3{
      color: var(--main_color3);
  }

  .business__list_item.for_custom h3::before{
      content: "01";
      color: var(--main_color3);
  }

  .business__list_item.for_custom a:hover h3::after{
    background-color: var(--main_color3);
  }

  .business__list_item.for_custom .img_business{
    position: absolute;
    top: 0;
    right: -25rem;
    z-index: 0;
    width: 42.5rem;
    z-index: -1;
  }

  .business__list_item.for_custom .img_business::before{
      background-color: var(--main_color3);
      left: -0.75rem;
      top: 6rem;
  }

.business__list_item.for_reform {
  padding-left: 16rem;
}

  .business__list_item.for_reform a:hover h3{
      color: var(--main_color2);
  }

  .business__list_item.for_reform h3::before{
      content: "02";
      color: var(--main_color2);
  }

  .business__list_item.for_reform a:hover h3::after{
      background-color: var(--main_color2);
  }

  .business__list_item.for_reform .img_business{
    position: absolute;
    top: -16rem;
    left: -25rem;
    z-index: 0;
    width: 42.5rem;
    z-index: -1;
  }

  .business__list_item.for_reform .img_business::before{
      background-color: var(--main_color2);
      right: -0.75rem;
      top: 22rem;
  }

.business__list_item.for_zeh {
  padding-right: 16rem;
  margin-bottom: 0;
}

  .business__list_item.for_zeh a:hover h3{
      color: var(--main_color4);    
  }

  .business__list_item.for_zeh h3::before{
      content: "03";
      color: var(--main_color4);
  }

  .business__list_item.for_zeh a:hover h3::after{
      background-color: var(--main_color4);
  }

  .business__list_item.for_zeh .img_business{
    position: absolute;
    top: 0;
    right: -25rem;
    z-index: 0;
    width: 42.5rem;
    z-index: -1;
  }

    .business__list_item.for_zeh .img_business img{
      border-radius: 1rem;
    }

  .business__list_item.for_zeh .img_business::before{
      background-color: var(--main_color4);
      left: -0.75rem;
      top: 6rem;
  }

.business__list_item.for_custom .business__list_tags{
  color: var(--main_color3);
}

.business__list_item.for_reform  .business__list_tags{
  color: var(--main_color2);
}

/* --- パノラマ --- */
.business-panorama,
.wp-block-image.business-panorama {
  width: 100%;
  height: 400px;
  margin: 0;
  line-height: 0;
}

.business-panorama img,
.wp-block-image.business-panorama img {
  display: block;
  width: auto;
  height: 400px;
  max-width: unset !important;
/*  object-fit: cover;*/
}
/* --- 03-2 注文住宅（子ページ） --- */

/* ==========================================================================
   aboutus.css — 03-2 注文住宅下層ページ
   ========================================================================== */

/* WP 枠補正 — custom.html / .page-aboutus 相当（page-nav__inner は触らない） */
.contents.business .page_body_wrapper:has(.architecture) {
  align-self: stretch;
  width: 100%;
  overflow-x: visible;
}

.contents.business .content_body:has(.architecture) {
  overflow-x: visible;
}

.contents.business .column_wrapper:has(.architecture) {
  overflow-x: visible;
}

.contents.business .page_body:has(.architecture) > .business-intro,
.contents.business .page_body:has(.architecture) > .architecture {
  width: 100%;
  max-width: none;
}

.contents.business .page_body:has(.architecture) > .architecture {
  margin-inline: -1rem;
  width: calc(100% + 2rem);
}

/* works-examples 背景 — 画面横幅いっぱい（flex 子の width:100vw は親幅で打ち消されるため ::before で描画） */
.contents.business .page_body:has(.architecture) > .works-examples {
  position: relative;
  z-index: 0;
  align-self: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
  background: transparent;
  overflow: visible;
}

.contents.business .page_body:has(.architecture) > .works-examples::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background: var(--color-bg-cream);
}

.business-intro:has(+ .architecture) {
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}

.business-intro:has(+ .architecture) .business-intro__heading {
  margin-bottom: 1.5rem;
  font-size: 2rem;
  color: var(--color-black);
}

/* --- ARCHITECTURE --- */
.architecture {
  padding:1.5rem 0 3.5rem 0;
  /*background: var(--color-white);*/
}

.architecture > .layout-container {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.architecture__head {
  margin: 0 0 1.5rem;
  text-align: center;
}

.architecture__head .section-heading__en {
  font-size: 1.5rem;
  color: var(--color-black);
}

.architecture__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}

.architecture-card {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.architecture-card__media {
  margin: 0 0 1rem;
  border-radius: 0.5rem;
  overflow: hidden;
  line-height: 0;
}

.architecture-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 320 / 200;
  object-fit: cover;
}

.page_body .architecture-card__label {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  color: var(--color-business-blue);
}

.page_body .architecture .architecture-card__title {
  margin: 0 0 1rem;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.4;
  position: static;
  clear: none;
  color: var(--color-text);
}

.architecture-card__text {
  margin: 0;
  font-size: 1rem;
  line-height: var(--line-height-body);
  color: var(--color-text);
}

@media (min-width: 48rem) {
  .architecture__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
  }
}

/* --- WORKS 施工事例 --- */
.works-examples {
  margin: 0;
  padding: 4rem 0 3rem 0;
  background: var(--color-bg-cream);
}

.works-examples > .layout-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 880px;
  max-width: 100%;
  padding-inline: 0;
}

.works-examples__head {
  margin: 0 0 2.5rem;
  text-align: center;
}

.works-examples__head .section-heading__ja {
  margin-bottom: 0.75rem;
  font-size: var(--font-size-md);
  font-weight: 500;
}

.works-examples__head .section-heading__en {
  font-size: 2.5rem;
}

.works-examples__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--works-grid-row-gap);
  width: 880px;
  max-width: 100%;
  padding-bottom: 48px;
}

.works-examples-card {
  width: 400px;
  max-width: 100%;
}

.works-examples-card a{
  text-decoration: none;
  color: var(--color-black);
}

.works-examples-card__media {
  width: 400px;
  max-width: 100%;
  margin: 0 0 1rem;
  border-radius: 0.5rem;
  overflow: hidden;
  line-height: 0;
}

.works-examples-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 400 / 250;
  object-fit: cover;
  transition: .3s all ease;
}

.works-examples-card a:hover .works-examples-card__img{
  filter: brightness(1.1);
  transform: scale(1.05);
}

.works-examples-card__title-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  margin-bottom: 0.5rem;
}

.page_body .works-examples .works-examples-card__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  position: static;
  clear: none;
  color: var(--color-black);
}

.works-examples-card__title-row::after {
  content: "";
  display: inline-block;
  width: 2rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--text-color);
  background-size: 1rem auto;
  background-repeat: no-repeat;
  background-position: left calc(50% + 1px) center;
  background-image: url(../shared/icon_arrow_w.png);
  transition: all 0.3s ease;
  margin-right: 0.4rem;
  /*  content: "";
  display: inline-flex;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background-color: var(--color-black);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Cpath fill='%23fff' d='M0 0l8 5-8 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 54% center;
  background-size: calc(2rem * 4 / 15) calc(2rem / 3);
*/
}

.works-examples-card a:hover .works-examples-card__title-row::after{
  margin-right: 0;
}

.works-examples-card__text {
  margin: 0;
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
}

@media (min-width: 48rem) {
  .works-examples__grid {
    grid-template-columns: repeat(2, 1fr);
    column-gap: var(--works-grid-col-gap);
  }
}



/*-- zeh.css: ZEHの家ページ --*/
:root {
  --zeh-color-text: #212121;
  --zeh-color-heading: #212121;
  --zeh-color-subheading: #000000;
  --zeh-color-bg: #ffffff;
  --zeh-color-achievement-bg: #fff9e5;
  --zeh-color-border: #cccccc;
  --zeh-color-deco: #2d8c3b;
  --zeh-color-merit-title: #3d8b37;
  --zeh-color-formula-orange: #ff9044;
  --zeh-color-formula-green: #73cc80;
  --zeh-color-formula-blue: #52acf1;
  --zeh-color-merit-icon-bg: #e8f3e8;
  --zeh-color-table-result: #f3cc51;
  --zeh-color-table-goal: #166ab3;
  --zeh-color-table-border: #333333;
  --zeh-font-family: "Noto Sans JP", sans-serif;
  --zeh-font-family-heading-en: "Poppins", sans-serif;
  --zeh-container-max: 70rem; /* 1120px @ 1440px */
  --zeh-achievement-inner-max: 70rem; /* 1120px @ 1440px */
  --zeh-container-padding: 1.25rem;
  --zeh-section-padding-y: 5rem;
  --zeh-body-line-height: 1.75;
  --zeh-image-radius: 2.5rem; /* 40px @ 1440px */
  --zeh-about-content-width: 39rem; /* 624px @ 1440px */
  --zeh-about-content-text-max: 31.5rem; /* 504px @ 1440px（本文幅・画像にかぶらない） */
  --zeh-about-content-image-gap: -1.5rem; /* -24px @ 1440px（コンテンツと画像の間・固定） */
  --zeh-about-image-size: 42.5rem; /* 680px @ 1440px */
  --zeh-about-image-bleed-right: calc(var(--zeh-about-image-size) / 6); /* 約113px @ 1440px（右1/6が画面外） */
  --zeh-about-deco-width: 17.5rem; /* 280px @ 1440px */
  --zeh-about-deco-height: 29.875rem; /* 478px @ 1440px */
  --zeh-about-deco-gap: 1rem; /* 16px @ 1440px（装飾とコンテンツの間） */
  --zeh-formula-item-width: 9rem; /* 144px @ 1440px */
  --zeh-formula-item-height: 12.75rem; /* 204px @ 1440px */
  --zeh-formula-item-radius: 4.5rem; /* 72px @ 1440px */
  --zeh-formula-item-padding-top: 2rem; /* 32px @ 1440px */
  --zeh-formula-item-padding-x: 1.5rem; /* 24px @ 1440px */
  --zeh-formula-item-padding-bottom: 1.5rem; /* 24px @ 1440px */
  --zeh-formula-icon-size: 4.5rem; /* 72px @ 1440px */
  --zeh-formula-op-size: 3rem; /* 48px @ 1440px */
  --zeh-merits-section-height: 46.5rem; /* 744px @ 1440px */
  --zeh-merits-grid-width: 55rem; /* 880px @ 1440px */
  --zeh-merits-grid-height: 21.5rem; /* 344px @ 1440px */
  --zeh-merits-grid-padding-top: 1rem; /* 16px @ 1440px */
  --zeh-merits-grid-padding-bottom: 3rem; /* 48px @ 1440px */
  --zeh-merits-grid-column-gap: 1.5rem; /* 24px @ 1440px */
  --zeh-merits-grid-row-gap: 0.5rem; /* 8px @ 1440px */
  --zeh-merits-item-width: 26.75rem; /* 428px @ 1440px */
  --zeh-merits-item-height: 8.5rem; /* 136px @ 1440px */
  --zeh-merits-item-body-width: 17.25rem; /* 276px @ 1440px */
  --zeh-merits-item-gap: 1rem; /* 16px @ 1440px */
  --zeh-merit-icon-size: 8.5rem; /* 136px @ 1440px */
  --zeh-merit-icon-image-size: 5rem; /* 80px @ 1440px */
  --zeh-achievement-section-height: 61rem; /* 976px @ 1440px */
  --zeh-achievement-inner-padding-y: 4rem; /* 64px @ 1440px */
  --zeh-achievement-heading-chunks-gap: 2.5rem; /* 40px @ 1440px */
  --zeh-achievement-chunks-height: 44.25rem; /* 708px @ 1440px */
  --zeh-achievement-chunks-padding-y: 1rem; /* 16px @ 1440px */
  --zeh-achievement-chunk-gap: 2rem; /* 32px @ 1440px */
  --zeh-achievement-table-action-gap: 1.5rem; /* 24px @ 1440px */
  --zeh-achievement-text-max: 45rem; /* 720px @ 1440px */
  --zeh-achievement-chunk-table-padding-bottom: 2rem; /* 32px @ 1440px */
  --zeh-achievement-button-width: 25.75rem; /* 412px @ 1440px */
  --zeh-achievement-button-height: 3.5rem; /* 56px @ 1440px */
  --zeh-achievement-table-col-width: 22.5rem; /* 360px @ 1440px */
  --zeh-achievement-table-col-height: 8.5rem; /* 136px @ 1440px */
  --zeh-achievement-table-head-height: 3.5rem; /* 56px @ 1440px */
  --zeh-achievement-table-value-height: 5rem; /* 80px @ 1440px */
  --zeh-button-radius: 3.125rem; /* 50px @ 1440px */
}

@media (min-width: 48rem) {
  :root {
    --zeh-container-padding: 2.5rem;
    --zeh-section-padding-y: 6.25rem;
  }
}

body {
  font-size: 1rem;
  font-weight: 400;
  font-family: var(--zeh-font-family);
  color: var(--zeh-color-text);
  background-color: var(--zeh-color-bg);
  line-height: var(--zeh-body-line-height);
}

.zeh-main {
  background-color: var(--zeh-color-bg);
  overflow: visible;
}

/* 共通見出し（日本語 p + 英字 h2） */
.zeh-heading__main {
  font-size: 1rem; /* 16px @ 1440px */
  font-weight: 500;
  color: var(--zeh-color-subheading);
  margin: 0 0 0.5rem;
  padding: 0;
}

/* WP テーマの p フォントサイズ・余白上書き対策 */
.entry-content p.zeh-heading__main,
.zeh-main p.zeh-heading__main,
.zeh-heading p.zeh-heading__main {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--zeh-color-subheading);
  margin: 0 0 0.3rem;
  padding: 0;
}

.zeh-heading__sub {
  font-size: 2rem; /* 32px @ 1440px */
  font-family: var(--zeh-font-family-heading-en);
  font-weight: 700;
  color: var(--zeh-color-heading);
  letter-spacing: 0.02em;
  line-height: 1.2;
  margin-bottom: 1.5rem;
}

.zeh-heading--center {
  text-align: center;
}

.zeh-heading--center .zeh-heading__main {
  margin-bottom: 0.5rem;
}

.zeh-heading--center .zeh-heading__sub {
  margin-bottom: 2.5rem;
}

.zeh-heading__sub--achievement {
  font-size: 2.5rem; /* 40px @ 1440px */
}

@media (min-width: 48rem) {
  .zeh-heading__sub--achievement {
    margin-bottom: 3rem;
  }
}

.zeh-achievement .zeh-heading__main,
.entry-content .zeh-achievement p.zeh-heading__main,
.zeh-main .zeh-achievement p.zeh-heading__main {
  font-size: 1.25rem; /* 20px @ 1440px */
}

.zeh-achievement .zeh-heading--center {
  margin-bottom: var(--zeh-achievement-heading-chunks-gap);
}

.zeh-achievement .zeh-heading--center .zeh-heading__sub {
  margin-bottom: 0;
}

@media (min-width: 48rem) {
  .zeh-achievement .zeh-heading--center .zeh-heading__sub--achievement {
    margin-bottom: 0;
  }
}

/* ABOUT */
.zeh-about {
  position: relative;
  background-color: var(--zeh-color-bg);
  overflow: visible;
}

/* WP 本文エリアでも画像の右はみ出しを切らない */
.entry-content:has(.zeh-about),
.site-main:has(.zeh-about),
.post-content:has(.zeh-about),
.wp-block-post-content:has(.zeh-about),
.entry-content .zeh-about,
.entry-content .zeh-about__inner,
.zeh-main .zeh-about,
.zeh-main .zeh-about__inner {
  overflow: visible;
}

.zeh-about__deco {
    position: absolute;
    top: 0;
    left: calc(
      (100% - var(--zeh-merits-grid-width)) / 2
      - var(--zeh-about-deco-width)
      - var(--zeh-about-deco-gap)
    );
    display: block;
    margin: 0;
}

.zeh-about__deco-text {
  display: block;
  font-family: var(--zeh-font-family-heading-en);
  font-size: var(--zeh-about-deco-width); /* 280px @ 1440px */
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--zeh-color-deco);
  opacity: 0.25;
  writing-mode: vertical-rl;
}

.zeh-about__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
  max-width: var(--zeh-container-max);
  margin: 0 auto;
  padding: 0;
  overflow: visible;
}


.zeh-about__content {
  position: relative;
  z-index: 2;
  min-width: 0;
  max-width: var(--zeh-about-content-width);
}

@media (min-width: 48rem) {
  .zeh-about__content {
    box-sizing: border-box;
    width: var(--zeh-about-content-width);
    max-width: none;
    margin-left: calc((100% - var(--zeh-merits-grid-width)) / 2);
    margin-right: 0;
  }
}

.zeh-about__heading,
.zeh-about__lead,
.zeh-about__block {
  max-width: var(--zeh-about-content-text-max);
}

.zeh-about__lead {
  font-size: 1rem;
  font-weight: 400;
  line-height: var(--zeh-body-line-height);
  color: var(--zeh-color-text);
  margin-bottom: 2rem;
}

.zeh-about__block {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--zeh-color-border);
}

.zeh-about__block + .zeh-about__block {
  margin-top: 0;
}

.zeh-about__block-title {
  font-size: 1.75rem; /* 28px @ 1440px */
  font-weight: 700;
  color: var(--zeh-color-heading);
  margin: 0;
  padding: 0;
}

.zeh-about__text {
  font-size: 1rem;
  font-weight: 400;
  line-height: var(--zeh-body-line-height);
  color: var(--zeh-color-text);
  margin: 0;
  padding: 0;
}

/* WP テーマの h3 / p 余白上書き対策 */
.entry-content .zeh-about__block h3.zeh-about__block-title,
.zeh-about__block h3.zeh-about__block-title {
  margin: 0;
  padding: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--zeh-color-heading);
}

.entry-content .zeh-about__block p.zeh-about__text,
.zeh-about__block p.zeh-about__text {
  margin: 0;
  padding: 0;
}

.entry-content .zeh-about__block p.zeh-about__text:last-child,
.zeh-about__block p.zeh-about__text:last-child {
  margin-bottom: 1.5rem;
}

.zeh-about__image {
  position: relative;
  z-index: 1;
  overflow: hidden;
  width: 100%;
  max-width: var(--zeh-about-image-size);
  margin: 0 auto;
  border-radius: var(--zeh-image-radius);
}

@media (min-width: 48rem) {
  .zeh-about__image {
    position: absolute;
    top: 0;
    left: calc(
      (100% - var(--zeh-merits-grid-width)) / 2
      + var(--zeh-about-content-width)
      + var(--zeh-about-content-image-gap)
    );
    width: var(--zeh-about-image-size);
    height: var(--zeh-about-image-size);
    margin: 0;
    margin-right: calc(50% - 50vw - var(--zeh-about-image-bleed-right));
    border-radius: var(--zeh-image-radius);
  }
}

.zeh-about__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

@media (min-width: 48rem) {
  .zeh-about__image img {
    width: var(--zeh-about-image-size);
    height: var(--zeh-about-image-size);
    aspect-ratio: auto;
  }
}

/* MERITS */
.zeh-merits {
  padding: 5rem 0 4rem 0;
  background-color: var(--zeh-color-bg);
}

.zeh-merits__inner {
  max-width: var(--zeh-container-max);
  margin: 0 auto;
  padding: 0 var(--zeh-container-padding);
}

.zeh-merits__title {
  font-family: var(--zeh-font-family-heading-en);
  font-size: 1.5rem; /* 24px @ 1440px */
  font-weight: 700;
  color: var(--zeh-color-heading);
  text-align: center;
  letter-spacing: 0.02em;
  margin-bottom: 2.5rem;
}

@media (min-width: 48rem) {
  .zeh-merits__title {
    margin-bottom: 3.5rem;
  }
}

.zeh-merits__formula {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.75rem 0.5rem;
  margin-bottom: 3rem;
}

/* WordPress wpautop が演算子を <p> で包んだ場合のレイアウト崩れ防止 */
.zeh-merits__formula > p {
  display: contents;
  margin: 0;
}

@media (min-width: 48rem) {
  .zeh-merits__formula {
    flex-wrap: nowrap;
    gap: 0;
    margin-bottom: 4rem;
  }
}

.zeh-merits__formula-zeh {
  font-family: var(--zeh-font-family-heading-en);
  font-size: 4.5rem; /* 72px @ 1440px */
  font-weight: 500;
  color: var(--zeh-color-heading);
  line-height: 1;
}

@media (min-width: 48rem) {
  .zeh-merits__formula-zeh {
    margin-right: 1.5rem;
  }
}

.zeh-merits__formula-op {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--zeh-formula-op-size);
  height: var(--zeh-formula-op-size);
  color: #212121;
}

/* テキスト「+」で描画（WP が空 span / SVG / 疑似要素を除去しても表示される） */
.zeh-merits__formula-op:not(.zeh-merits__formula-op--approx) {
  font-family: var(--zeh-font-family-heading-en);
  font-size: var(--zeh-formula-op-size);
  font-weight: 300;
  line-height: 1;
}

@media (min-width: 48rem) {
  .zeh-merits__formula-op {
    margin: 0 0.75rem;
  }
}

.zeh-merits__formula-op--approx {
  width: auto;
  height: auto;
  font-family: var(--zeh-font-family-heading-en);
  font-size: 4.5rem; /* 72px @ 1440px */
  font-weight: 500;
  color: var(--zeh-color-heading);
  line-height: 1;
}

.zeh-merits__formula-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  width: var(--zeh-formula-item-width);
  height: var(--zeh-formula-item-height);
  padding: var(--zeh-formula-item-padding-top) var(--zeh-formula-item-padding-x) var(--zeh-formula-item-padding-bottom);
  border-radius: var(--zeh-formula-item-radius);
  text-align: center;
  color: var(--zeh-color-heading);
}

.zeh-merits__formula-item--orange {
  background-color: var(--zeh-color-formula-orange);
}

.zeh-merits__formula-item--green {
  background-color: var(--zeh-color-formula-green);
}

.zeh-merits__formula-item--blue {
  background-color: var(--zeh-color-formula-blue);
}

.zeh-merits__formula-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--zeh-formula-icon-size);
  /*height: var(--zeh-formula-icon-size);*/
  margin-bottom: auto;
  background: transparent;
}

.zeh-merits__formula-icon img {
  /*
  display: block;
  width: var(--zeh-formula-icon-size);
  height: var(--zeh-formula-icon-size);
  object-fit: contain;
  background: transparent;
  */
}

.zeh-merits__formula-label {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  line-height: 1.3;
  color: var(--zeh-color-heading);
}

.zeh-merits__formula-label-line {
  font-size: 1rem; /* 16px @ 1440px */
  font-weight: 400;
}

.zeh-merits__formula-label-strong {
  font-size: 1.5rem; /* 24px @ 1440px */
  font-weight: 700;
}

.zeh-merits__formula-result {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

@media (min-width: 48rem) {
  .zeh-merits__formula-result {
    margin-left: 0.75rem;
  }
}

.zeh-merits__formula-result-label {
  font-family: var(--zeh-font-family);
  font-size: 1.5rem; /* 24px @ 1440px */
  font-weight: 700;
  color: var(--zeh-color-heading);
  line-height: 1.2;
  white-space: nowrap;
}

.zeh-merits__formula-result-zero {
  font-family: var(--zeh-font-family-heading-en);
  font-size: 10rem; /* 160px @ 1440px */
  font-weight: 500;
  color: var(--zeh-color-heading);
  line-height: 1;
}

.zeh-merits__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* WP テーマの ul リセット上書き対策（旧マークアップ互換） */
ul.zeh-merits__grid,
.entry-content ul.zeh-merits__grid {
  list-style: none;
  padding-left: 0;
}

ul.zeh-merits__grid > li.zeh-merits__item,
.entry-content ul.zeh-merits__grid > li.zeh-merits__item {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

@media (min-width: 48rem) {
  .zeh-merits__grid {
    box-sizing: border-box;
    width: var(--zeh-merits-grid-width);
    height: var(--zeh-merits-grid-height);
    margin: 0 auto;
    padding: var(--zeh-merits-grid-padding-top) 0 var(--zeh-merits-grid-padding-bottom);
    grid-template-columns: var(--zeh-merits-item-width) var(--zeh-merits-item-width);
    grid-template-rows: var(--zeh-merits-item-height) var(--zeh-merits-item-height);
    column-gap: var(--zeh-merits-grid-column-gap);
    row-gap: 1.5rem;
  }
}

.zeh-merits__item {
  display: flex;
  align-items: center;
  gap: var(--zeh-merits-item-gap);
}

@media (min-width: 48rem) {
  .zeh-merits__item {
    width: var(--zeh-merits-item-width);
    height: var(--zeh-merits-item-height);
  }
}

.zeh-merits__item-body {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1;
  min-width: 0;
}

@media (min-width: 48rem) {
  .zeh-merits__item-body {
    flex: 0 0 var(--zeh-merits-item-body-width);
    width: var(--zeh-merits-item-body-width);
    height: var(--zeh-merits-item-height);
  }
}

.zeh-merits__item-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--zeh-color-merit-title);
  margin: 0;
  padding: 0;
}

.zeh-merits__item-text {
  font-size: 1rem;
  font-weight: 400;
  line-height: var(--zeh-body-line-height);
  color: var(--zeh-color-text);
  margin: 0;
  padding: 0;
}

/* WP テーマの h3 / p 余白・色上書き対策 */
.entry-content h3.zeh-merits__item-title,
.zeh-merits__item-body h3.zeh-merits__item-title {
  font-size: 1.8rem;
  margin: 0;
  padding: 0;
  color: var(--zeh-color-merit-title);
}

.entry-content p.zeh-merits__item-text,
.zeh-merits__item-body p.zeh-merits__item-text {
  font-size: 1.1rem;
  margin: 0;
  padding: 0;
}

.zeh-merits__item-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: var(--zeh-merit-icon-size);
  height: var(--zeh-merit-icon-size);
  background: #ecf6ee;
  border-radius: 50%;
}

.zeh-merits__item-icon img {
  display: block;
  width: var(--zeh-merit-icon-image-size);
  height: var(--zeh-merit-icon-image-size);
  object-fit: contain;
}

/* ACHIEVEMENT */
.zeh-achievement {
  box-sizing: border-box;
  position: relative;
}

.zeh-achievement::before{
  content:"";
  width: 100vw;
  height: 100%;
  background-color: var(--zeh-color-achievement-bg);
  position: absolute;
  top: 0;
  left: calc(50% - 50vw);
  z-index: -1;
}

@media (min-width: 48rem) {
  .zeh-achievement {
    min-height: var(--zeh-achievement-section-height);
  }
}

.zeh-achievement__inner {
  box-sizing: border-box;
  max-width: var(--zeh-achievement-inner-max);
  margin: 0 auto;
  padding: var(--zeh-achievement-inner-padding-y) var(--zeh-container-padding);
  text-align: center;
}

.zeh-achievement__chunks {
  display: flex;
  flex-direction: column;
  gap: var(--zeh-achievement-chunk-gap);
  box-sizing: border-box;
  width: 100%;
  max-width: var(--zeh-achievement-inner-max);
  margin: 0 auto;
}

@media (min-width: 48rem) {
  .zeh-achievement__chunks {
    height: var(--zeh-achievement-chunks-height);
    padding: var(--zeh-achievement-chunks-padding-y) 0;
  }
}

.zeh-achievement__chunk {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
}

.zeh-achievement__block-title {
  font-size: 1.75rem; /* 28px @ 1440px */
  font-weight: 700;
  color: var(--zeh-color-heading);
  margin: 0 0 1.25rem;
  padding-top: 0;
}

/* WP テーマの h3 余白上書き対策 */
.entry-content h3.zeh-achievement__block-title,
.zeh-achievement__chunk h3.zeh-achievement__block-title,
.page_body h3.zeh-achievement__block-title {
  margin: 0 0 1.25rem;
  padding-top: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--zeh-color-heading);
}

.zeh-achievement__text {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--zeh-achievement-text-max);
  margin: 0 auto;
  padding: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: var(--zeh-body-line-height);
  color: var(--zeh-color-text);
  text-align: left;
}

/* WP テーマの p 余白上書き（ブロック自体は中央・本文は左揃え） */
.entry-content p.zeh-achievement__text,
.zeh-achievement__chunk p.zeh-achievement__text {
  width: 100%;
  max-width: var(--zeh-achievement-text-max);
  margin-left: auto;
  margin-right: auto;
  padding: 0;
}

.zeh-achievement__chunk:nth-child(2) {
  padding-bottom: var(--zeh-achievement-chunk-table-padding-bottom);
}

.zeh-achievement__table {
  display: flex;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  border: 1px solid var(--zeh-color-table-border);
}

.zeh-achievement__table-col {
  display: flex;
  flex-direction: column;
  width: var(--zeh-achievement-table-col-width);
  height: var(--zeh-achievement-table-col-height);
}

.zeh-achievement__table-col + .zeh-achievement__table-col {
  border-left: 1px solid var(--zeh-color-table-border);
}

@media (max-width: 47.99rem) {
  .zeh-achievement__table {
    width: 100%;
  }

  .zeh-achievement__table-col {
    flex: 1;
    width: auto;
    min-width: 0;
    height: auto;
  }

  .zeh-achievement__table-value {
    height: auto;
    min-height: var(--zeh-achievement-table-value-height);
    padding: 1rem;
  }
}

.zeh-achievement__table-head,
.zeh-achievement__table-value {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
}

.zeh-achievement__table-head {
  flex-shrink: 0;
  height: var(--zeh-achievement-table-head-height);
  border-bottom: 1px solid var(--zeh-color-table-border);
  font-weight: 700;
  line-height: 1.4;
}

.zeh-achievement__table-head--result {
  background-color: var(--zeh-color-table-result);
  color: var(--zeh-color-heading);
}

.zeh-achievement__table-head--goal {
  background-color: var(--zeh-color-table-goal);
  color: #ffffff;
}

.zeh-achievement__table-value {
  flex: 1;
  height: var(--zeh-achievement-table-value-height);
  padding: 0 1rem;
  background-color: #ffffff;
  line-height: 1;
  gap: 0.25rem;
  font-family: var(--font-base_en);
  font-weight: 500;
}

.zeh-achievement__table-num {
  font-size: 2.5rem;
}

.zeh-achievement__table-unit {
  font-size: 1.25rem;
  margin-top: 0.4em;
}

.zeh-achievement__action {
  margin: var(--zeh-achievement-table-action-gap) 0 0;
}

.zeh-achievement__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-sizing: border-box;
  width: var(--zeh-achievement-button-width);
  height: var(--zeh-achievement-button-height);
  padding: 0 1rem;
  border-radius: calc(var(--zeh-achievement-button-height) / 2);
  background-color: var(--zeh-color-table-goal);
  font-weight: 500;
  line-height: 1.4;
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.zeh-achievement__button:hover,
.zeh-achievement__button:focus,
.zeh-achievement__button:visited {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.85;
}

/* WP テーマの a リンク色・下線上書き対策 */
.entry-content a.zeh-achievement__button,
a.zeh-achievement__button {
  color: #ffffff;
  text-decoration: none;
  background-color: var(--zeh-color-table-goal);
}

.entry-content a.zeh-achievement__button:hover,
.entry-content a.zeh-achievement__button:focus,
.entry-content a.zeh-achievement__button:visited,
a.zeh-achievement__button:hover,
a.zeh-achievement__button:focus,
a.zeh-achievement__button:visited {
  color: #ffffff;
  text-decoration: none;
}

.zeh-achievement__button-icon {
  flex-shrink: 0;
}

.zeh_bns{
  margin: 3rem 0 0 0;
  padding: 0;
}

.zeh_bns ul{
  display: flex;
  margin: 0;
  padding: 0;
  gap: 1.5rem;
}

.zeh_bns ul li{
  padding: 0;
  margin: 0;
  width: 17.5rem;
}

.zeh_bns ul li::before{
  content: none;
}

.zeh_bns ul li a{
  display: block;
  transition: all 0.3s ease;
}

.zeh_bns ul li a:hover{
  filter: brightness(1.05);
}


/* --------------------------------------------------------------------------
   WP テーマ pages.css 共通レイアウト幅の打ち消し（aboutus と同様）
   本文はテーマ側の <main class="zeh-main"> 内に差し込む想定
   -------------------------------------------------------------------------- */
.contents:has(.zeh-main) .column_wrapper {
  max-width: none;
  padding: 0;
}

.contents:has(.zeh-main) .page_body_wrapper {
  min-width: 0;
}

.contents:has(.zeh-main) .page_body {
  margin: 0;
  min-width: 0;
  min-height: 0;
  line-height: var(--zeh-body-line-height);
}

@media screen and (max-width: 1024px) {
  .contents:has(.zeh-main) .column_wrapper {
    padding-left: 0;
    padding-right: 0;
  }
}


/* ==========================================================================
   custom-content.css — 固定ページ本文ブロック（WordPress the_content 用）
   使い方:
     1. 本文に <div class="custom-content">…</div> を貼る（partials/eco_reform-page-body.html）
     2. この CSS を読み込む（<link> または WP で enqueue）
   他 CSS の影響を受けないよう、すべて .custom-content 配下に閉じる
   ========================================================================== */
/*-- deco.css: custom-content（hiraya / chouki 等） --*/

.custom-content {
  --custom-content-deco-width: 11.5rem; /* 184px @ 1440px */
  --custom-content-deco-height: 45.5rem; /* 728px @ 1440px */
  --custom-content-deco-gap: 32px;
  --custom-content-deco-offset-top: 24px;
  --custom-content-page-title-block-height: calc(
    var(--custom-content-page-title-padding-y) * 2 + 32px * 1.5 + 8px + 14px + 1px
  );
  --custom-content-deco-color: #166ab3;
  --custom-content-font-family-deco: "Poppins", sans-serif;
  --custom-content-body-bg: #ffffff;
  --custom-content-body-width: 1040px;
  --custom-content-body-min-height: 0;
  --custom-content-body-radius: 28px;
  --custom-content-main-visual-height: 320px;
  --custom-content-page-title-padding-y: 56px;
  --custom-content-page-title-margin-bottom: 72px;
  --custom-content-content-width: 720px;
  --custom-content-body-padding-x: calc((var(--custom-content-body-width) - var(--custom-content-content-width)) / 2);
  --custom-content-block-gap: 8px;
  --custom-content-block-padding-bottom: 40px;
  --custom-content-intro-lead-margin-bottom: 32px;
  --custom-content-kinds-height: 832px;
  --custom-content-grid-height: 832px;
  --custom-content-grid-gap: 32px;
  --custom-content-color-heading: #166ab3;
  --custom-content-color-text: #212121;
  --custom-content-color-category: #4d4d4d;
  --custom-content-color-border: #e0e0e0;
  --custom-content-font-base: var(--font-base, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  /*align-items: center;*/
  width: min(var(--custom-content-body-width), 100%);
  max-width: var(--custom-content-body-width);
  /*min-height: var(--custom-content-body-min-height);*/
  min-height: 800px;
  margin: 0 auto;
  padding: 0 var(--custom-content-body-padding-x) 0;
  position: relative;
  border-radius: var(--custom-content-body-radius);
  background-color: var(--custom-content-body-bg);
  font-family: var(--custom-content-font-base);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.85;
  color: var(--custom-content-color-text);
  text-align: left;
  overflow: visible;
}

/* WP 本文エリアでも装飾テキストのはみ出しを切らない */
.entry-content:has(.custom-content),
.site-main:has(.custom-content),
.post-content:has(.custom-content),
.wp-block-post-content:has(.custom-content),
.entry-content .custom-content {
  overflow: visible;
}

.custom-content *,
.custom-content *::before,
.custom-content *::after {
  box-sizing: border-box;
}

/* --- テーマ / pages.css 打ち消し --- */
.custom-content figure {
  margin: 0;
  padding: 0;
}

.custom-content > h2.wp-block-heading,
.custom-content h3.wp-block-heading,
.custom-content h4.wp-block-heading {
  /*
  position: static;
  clear: none;
  background: none;
  */
}

.custom-content h4.wp-block-heading {
  padding-left: 0;
}

.custom-content h4.wp-block-heading::before {
  content: none;
  display: none;
}

.custom-content p.wp-block-paragraph {
  margin: 0;
}

.custom-content ul.wp-block-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.custom-content ul.wp-block-list li {
  margin: 0;
  padding-left: 0;
  position: static;
}

.custom-content ul.wp-block-list li::before {
  content: none;
  display: none;
  width: auto;
  height: auto;
  background: none;
}

/*
.custom-content img {
  max-width: none;
  height: auto;
  border: 0;
  vertical-align: top;
}
  */

/* --- メインビジュアル（1040×320 / 上角28px） --- */
.custom-content__main-visual {
  width: 100%;
  /*border-radius: 1.75rem 1.75rem 0 0;*/
  margin-bottom: 3rem;
}

/* --- ページ見出し（画像と同幅 1040px / 下のみ外側余白） --- */
.custom-content-page-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 208 / 64;
  border-radius: 1.75rem;
  overflow: hidden;
  position: relative;
  margin-bottom: 1.5rem;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: translateY(1rem);
  transition: all .8s ease;
}

.custom-content-page-title.show {
  transform: translateY(0);
  opacity: 1;
}

.business.sho_ene .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_sho_ene.jpg);
}

.business.eco_reform .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_eco_reform.jpg);
}

.business.hiraya .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_hiraya.jpg);
}

.business.choki_yuryo .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_choki_yuryo.jpg);
}

.business.tenpo .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_tenpo.jpg);
}

.business.koreisha .custom-content-page-title {
  background-image: url(../shared/business_custom/content_title_koreisha.jpg);
}

.custom-content-page-title::before{
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.custom-content-page-title__ja {
  font-size: 2.2rem;
  line-height: 1.5;
  font-weight: 700;
  color: #fff;
  position: relative;
  text-align: center;
}

.custom-content-page-title__ja br{
  display: none;
}

.page_body .custom-content-page-title__en {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
  color: #fff;
  position: relative;
  margin-bottom: 0;
}

.back_business_custom{
  margin-top: 4rem;
    text-align: center;
}

  .back_business_custom a{
    color: var(--color-text);
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    gap: 0.5rem;
    font-size: 0.94em;
  }

  .back_business_custom a::before{
    content: "";
    width: 1.5rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background-color: var(--text-color);
    background-size: 1rem auto;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(../shared/icon_arrow_w_s_l.png);
    transition: all 0.3s ease;
  }

  .back_business_custom a:hover::before{
    transform: translateX(-0.25rem);
  }

/* --- 種類セクション見出し --- */
.custom-content > h2.wp-block-heading:first-of-type {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 32px 0 0;
  padding: 0;
  font-family: var(--custom-content-font-base);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
  color: var(--custom-content-color-heading);
}

/* --- イントロ文 --- */
/*
.custom-content .custom-content-intro {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--custom-content-block-gap);
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 0 auto 64px;
  overflow: visible;
}
*/

/*
.custom-content .custom-content-intro > .custom-content-intro__lead {
  margin: 0 0 var(--custom-content-intro-lead-margin-bottom);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.85;
  color: var(--custom-content-color-text);
}
*/

.custom-content .custom-content-intro__block {
  width: 100%;
}
/*
.custom-content .custom-content-intro__block--01 {
  padding-bottom: var(--custom-content-block-padding-bottom);
}
*/

.custom-content .custom-content-intro__block--02 {
  padding-bottom: 0;
}

.custom-content h3.wp-block-heading {
  margin: 2em 0 0.5em;
  padding: 0;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
  color: var(--custom-content-color-heading);
  width: 100%;
}

.custom-content .custom-content-intro__block p.wp-block-paragraph {
  margin: 0 0 16px;
  font-weight: 400;
  line-height: 1.85;
  color: var(--custom-content-color-text);
}

.custom-content .custom-content-intro__block p.wp-block-paragraph:last-child {
  margin-bottom: 0;
}

.page_body ul.custom_content_list{}

.page_body ul.custom_content_list li{
  font-weight: 500;
  font-size: 1.1rem;
}

.custom-content > p.wp-block-paragraph.custom-content-kinds-lead {
  width: 100%;
  max-width: var(--custom-content-content-width);
  padding: 0;
  font-family: var(--custom-content-font-base);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.85;
  color: var(--custom-content-color-text);
}

.contents.business.eco_reform .custom-content > p.wp-block-paragraph.custom-content-kinds-lead {
  /*
  margin-top: 24px;
  margin-bottom: 48px;
  */
  margin-bottom: 1em;
}


.custom-content > .wp-block-group.custom-content-kinds {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: var(--custom-content-grid-gap);
  width: 100%;
  max-width: var(--custom-content-content-width);
  min-height: var(--custom-content-kinds-height);
  margin: 0 auto;
}

.custom-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--custom-content-grid-gap);
  row-gap: 0;
  width: 100%;
  min-height: var(--custom-content-grid-height);
  margin: 0;
  padding: 0;
}

.custom-content .wp-block-group.custom-content-kinds .custom-content-kinds__item {
  margin: 0;
  padding: 1em 0;
  border-top: 1px solid var(--custom-content-color-border);
}

.custom-content .wp-block-group.custom-content-kinds .custom-content-kinds__item > .wp-block-group__inner-container {
  margin: 0;
  padding: 0;
}

.custom-content .custom-content-kinds__item h4.wp-block-heading {
  margin: 0 0 8px;
  padding: 0;
  border: 0;
  font-family: var(--custom-content-font-base);
  font-size: 1.3rem;
  font-weight: 500;
  text-align: left;
  color: var(--custom-content-color-category);
}

.custom-content .custom-content-kinds__item ul.wp-block-list li {
  display: inline;
  /*
  font-family: var(--custom-content-font-base);
  font-size: 14px;
  font-weight: 400;
  */
  line-height: 1.6;
  color: var(--custom-content-color-category);
}

.custom-content .custom-content-kinds__item ul.wp-block-list li:not(:last-child)::after {
  content: "／";
}

/* --- 装飾テキスト（CUSTOM / 184×728） --- */
.custom-content .custom-content__deco {
  display: none;
  flex-shrink: 0;
  width: var(--custom-content-deco-width);
  height: var(--custom-content-deco-height);
  margin: 0;
  pointer-events: none;
  user-select: none;
}

.custom-content .custom-content__deco-text {
  display: block;
  font-family: var(--custom-content-font-family-deco);
  font-size: var(--custom-content-deco-width); /* 184px @ 1440px / Poppins Light */
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em; /* -4% */
  color: var(--custom-content-deco-color);
  opacity: 0.25;
  writing-mode: vertical-rl;
}

@media (min-width: 64rem) {
  /* .custom-content 直下：メインビジュアル左端から 32px 空けて配置 */
  .custom-content > .custom-content__deco {
    display: block;
    position: absolute;
    top: var(--custom-content-deco-offset-top);
    left: calc(-1 * (var(--custom-content-deco-width) + var(--custom-content-deco-gap)));
    right: auto;
    z-index: 0;
  }

  /* .custom-content-intro 内（メインビジュアル基準に合わせる） */
  .custom-content .custom-content-intro > .custom-content__deco {
    display: block;
    position: absolute;
    top: calc(-1 * (var(--custom-content-main-visual-height) + var(--custom-content-page-title-block-height)) + var(--custom-content-deco-offset-top));
    left: calc(-1 * (var(--custom-content-body-padding-x) + var(--custom-content-deco-width) + var(--custom-content-deco-gap)));
    right: auto;
    z-index: 0;
  }

  .custom-content .custom-content__main-visual,
  .custom-content .custom-content-page-title,
  .custom-content .custom-content-intro {
    position: relative;
    z-index: 1;
  }
}

@media (max-width: 63.99rem) {

  .custom-content > h2.wp-block-heading:first-of-type {
    font-size: 1.4em;
    margin: 1.5em 0 1em;
  }

  .custom-content .custom-content__main-visual {
    width: calc(100% + 48px);
    height: auto;
    min-height: 180px;
    aspect-ratio: 1040 / 320;
    margin: 0 -24px 0;
    border-radius: 20px 20px 0 0;
  }

  .custom-content .custom-content-page-title {
    width: calc(100% + 48px);
    margin: 0 -24px 48px;
    padding: 40px 0;
  }

  .custom-content .custom-content-page-title__ja {
    font-size: 1.4em;
  }
/*
  .custom-content .custom-content-intro {
    margin-bottom: 48px;
  }
*/

  .custom-content .custom-content-intro__block--01,
  .custom-content .custom-content-intro__block--02 {
    padding-bottom: 0;
  }

  .custom-content > .wp-block-group.custom-content-kinds {
    min-height: 0;
  }

  .custom-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .custom-content .wp-block-group.custom-content-kinds .custom-content-kinds__item {
    width: 100%;
    max-width: 100%;
  }
}

  /* ==========================================================================
   sho_ene.css — 省エネ住宅ページ専用（custom-content.css / business.css は変更しない）
   スコープ: .sho_ene-content のみ（eco_reform 等に影響しない）
   使い方: sho_ene.html で custom-content.css の後に読み込む
   ========================================================================== */

/* --- イントロ〜最初の見出し：隙間を狭く --- */
/*
.contents.business.sho_ene .sho_ene-content__intro {
  gap: 0;
  min-height: 0;
  margin-bottom: 24px;
}

.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--01,
.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--02 {
  min-height: 0;
}
*/
/*
.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--01 {
  padding-bottom: 24px;
}
*/

.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--02 {
  padding-bottom: 0;
}

.contents.business.sho_ene .sho_ene-content__heading--environment {
  margin-top: 16px;
}

/* --- セクション見出し（2つ目以降も1つ目と同じ体裁） --- */
.contents.business.sho_ene .sho_ene-content__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 32px 0 0;
  padding: 0;
  font-family: var(--custom-content-font-base);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
  color: var(--custom-content-color-heading);
}

.contents.business.sho_ene .sho_ene-content__heading--features {
  margin-top: 32px;
}

/* --- 締めブロック：上に余白を広げてグループ化 --- */
/*
.contents.business.sho_ene .sho_ene-content__closing {
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 56px auto 0;
}

.contents.business.sho_ene .sho_ene-content__heading--closing {
  margin-top: 0;
}

.contents.business.sho_ene .sho_ene-content__closing-text {
  margin: 16px 0 0;
  font-size: 1rem;
  line-height: 1.85;
  color: var(--custom-content-color-text);
}

.contents.business.sho_ene .sho_ene-content > p.wp-block-paragraph.custom-content-kinds-lead {
  margin-top: 0;
  margin-bottom: 2em;
}
*/

/* --- 種類グリッドを縦並び --- */
.contents.business.sho_ene .sho_ene-content > .wp-block-group.custom-content-kinds {
  min-height: 0;
}


.contents.business.sho_ene .sho_ene-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  min-height: 0;
  padding-top: 0;
  grid-template-columns: unset;
}

.contents.business.sho_ene .sho_ene-content .wp-block-group.custom-content-kinds .custom-content-kinds__item {
  flex: none;
  width: 100%;
  max-width: 100%;
}


/* ==========================================================================
   custom-business-page.css — 注文住宅下層ページ共通（sho_ene / hiraya 等）
   スコープ: .{slug}-content のみ（eco_reform の .custom-content 単体には影響しない）
   custom-content.css / business.css は変更しない
   ========================================================================== */

/* --- イントロ〜最初の見出し：隙間を狭く --- */
.contents.business.sho_ene .sho_ene-content__intro,
.contents.business.hiraya .hiraya-content__intro,
.contents.business.choki_yuryo .choki_yuryo-content__intro,
.contents.business.tenpo .tenpo-content__intro,
.contents.business.koreisha .koreisha-content__intro {
  /*
  gap: 0;
  min-height: 0;
  margin-bottom: 24px;
  */
}
/*
.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--01,
.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--02,
.contents.business.hiraya .hiraya-content__intro .custom-content-intro__block--01,
.contents.business.hiraya .hiraya-content__intro .custom-content-intro__block--02,
.contents.business.choki_yuryo .choki_yuryo-content__intro .custom-content-intro__block--01,
.contents.business.choki_yuryo .choki_yuryo-content__intro .custom-content-intro__block--02,
.contents.business.tenpo .tenpo-content__intro .custom-content-intro__block--01,
.contents.business.tenpo .tenpo-content__intro .custom-content-intro__block--02,
.contents.business.koreisha .koreisha-content__intro .custom-content-intro__block--01,
.contents.business.koreisha .koreisha-content__intro .custom-content-intro__block--02 {
  min-height: 0;
}

.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--01,
.contents.business.hiraya .hiraya-content__intro .custom-content-intro__block--01,
.contents.business.choki_yuryo .choki_yuryo-content__intro .custom-content-intro__block--01,
.contents.business.tenpo .tenpo-content__intro .custom-content-intro__block--01,
.contents.business.koreisha .koreisha-content__intro .custom-content-intro__block--01 {
  padding-bottom: 24px;
}

.contents.business.sho_ene .sho_ene-content__intro .custom-content-intro__block--02,
.contents.business.hiraya .hiraya-content__intro .custom-content-intro__block--02,
.contents.business.choki_yuryo .choki_yuryo-content__intro .custom-content-intro__block--02,
.contents.business.tenpo .tenpo-content__intro .custom-content-intro__block--02,
.contents.business.koreisha .koreisha-content__intro .custom-content-intro__block--02 {
  padding-bottom: 0;
}

.contents.business.sho_ene .sho_ene-content__heading--environment,
.contents.business.hiraya .hiraya-content__heading--environment,
.contents.business.choki_yuryo .choki_yuryo-content__heading--environment,
.contents.business.tenpo .tenpo-content__heading--environment,
.contents.business.koreisha .koreisha-content__heading--environment {
  margin-top: 16px;
}
*/

/* --- セクション見出し（2つ目以降も1つ目と同じ体裁） --- */
.contents.business.sho_ene .sho_ene-content__heading,
.contents.business.hiraya .hiraya-content__heading,
.contents.business.choki_yuryo .choki_yuryo-content__heading,
.contents.business.tenpo .tenpo-content__heading,
.contents.business.koreisha .koreisha-content__heading {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 32px 0 0;
  padding: 0;
  font-family: var(--custom-content-font-base);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
  color: var(--custom-content-color-heading);
}

.contents.business.sho_ene .sho_ene-content__heading--features,
.contents.business.hiraya .hiraya-content__heading--features,
.contents.business.choki_yuryo .choki_yuryo-content__heading--features,
.contents.business.tenpo .tenpo-content__heading--features,
.contents.business.koreisha .koreisha-content__heading--features {
  margin-top: 32px;
}

/* --- 締めブロック --- */
/*
.contents.business.sho_ene .sho_ene-content__closing,
.contents.business.hiraya .hiraya-content__closing,
.contents.business.choki_yuryo .choki_yuryo-content__closing,
.contents.business.tenpo .tenpo-content__closing,
.contents.business.koreisha .koreisha-content__closing {
  width: 100%;
  max-width: var(--custom-content-content-width);
  margin: 56px auto 0;
}
*/

.contents.business.sho_ene .sho_ene-content__heading--closing,
.contents.business.hiraya .hiraya-content__heading--closing,
.contents.business.choki_yuryo .choki_yuryo-content__heading--closing,
.contents.business.tenpo .tenpo-content__heading--closing,
.contents.business.koreisha .koreisha-content__heading--closing {
  margin-top: 0;
}

.contents.business.sho_ene .sho_ene-content__closing-text,
.contents.business.hiraya .hiraya-content__closing-text,
.contents.business.choki_yuryo .choki_yuryo-content__closing-text,
.contents.business.tenpo .tenpo-content__closing-text,
.contents.business.koreisha .koreisha-content__closing-text {
  margin: 16px 0 0;
  font-size: 1rem;
  line-height: 1.85;
  color: var(--custom-content-color-text);
}

/* --- 種類グリッドを縦並び --- */
.contents.business.sho_ene .sho_ene-content > .wp-block-group.custom-content-kinds,
.contents.business.hiraya .hiraya-content > .wp-block-group.custom-content-kinds,
.contents.business.choki_yuryo .choki_yuryo-content > .wp-block-group.custom-content-kinds,
.contents.business.tenpo .tenpo-content > .wp-block-group.custom-content-kinds,
.contents.business.koreisha .koreisha-content > .wp-block-group.custom-content-kinds {
  min-height: 0;
}

.contents.business.sho_ene .sho_ene-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container,
.contents.business.hiraya .hiraya-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container,
.contents.business.choki_yuryo .choki_yuryo-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container,
.contents.business.tenpo .tenpo-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container,
.contents.business.koreisha .koreisha-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-height: 0;
  grid-template-columns: unset;
}

.contents.business.sho_ene .sho_ene-content .wp-block-group.custom-content-kinds .custom-content-kinds__item,
.contents.business.hiraya .hiraya-content .wp-block-group.custom-content-kinds .custom-content-kinds__item,
.contents.business.choki_yuryo .choki_yuryo-content .wp-block-group.custom-content-kinds .custom-content-kinds__item,
.contents.business.tenpo .tenpo-content .wp-block-group.custom-content-kinds .custom-content-kinds__item,
.contents.business.koreisha .koreisha-content .wp-block-group.custom-content-kinds .custom-content-kinds__item {
  flex: none;
  width: 100%;
  max-width: 100%;
}

.contents.business.sho_ene .sho_ene-content > .wp-block-group.custom-content-kinds > .wp-block-group__inner-container {
  gap: 2rem;
}

/* ==========================================================================
   reform — リフォームページ（business/reform）
   partials/reform-page-body.html を page_body に貼り付け
   レイアウトは .page_body:has(.architecture) 共通スタイルに準拠
   ========================================================================== */

.contents.business.reform .page_body_wrapper,
.contents.business.reform .column_main,
.contents.business.reform .business-intro,
.contents.business.reform .architecture {
  overflow-x: visible;
}

.contents.business.reform .business-intro__text {
  text-align: center;
}

/* 装飾テキスト — 上端は business-intro__content、左端は architecture layout-container 隣 */
.contents.business.reform .business-intro {
  container-type: inline-size;
  container-name: reform-intro;
  --content-width-business: 75rem;
  --reform-intro-inner-width: 50rem;
  --reform-deco-width: 11.5rem; /* 184px @ 1440px */
  --reform-deco-height: 41.4375rem; /* 663px @ 1440px */
  --reform-deco-color: #ef4f0f;
  --reform-deco-gap: 32px;
  overflow: visible;
}

.contents.business.reform .business-intro__inner {
  position: relative;
  overflow: visible;
}

.reform-deco {
  display: none;
  flex-shrink: 0;
  width: var(--reform-deco-width);
  height: var(--reform-deco-height);
  margin: 0;
  pointer-events: none;
  user-select: none;
}

.reform-deco__text {
  display: block;
  font-family: var(--font-base_en);
  font-size: var(--reform-deco-width);
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--reform-deco-color);
  opacity: 0.25;
  writing-mode: vertical-rl;
}

@media (min-width: 64rem) {
  /* 上端: inner 先頭＝content 上端 / 左端: architecture layout-container 左隣（custom-content__deco 同様） */
  .contents.business.reform .business-intro .reform-deco {
    display: block;
    position: absolute;
    top: 0;
    left: calc(
      (min(100cqw, var(--reform-intro-inner-width)) - min(100cqw, var(--content-width-business))) / 2
      - var(--reform-deco-width)
      - var(--reform-deco-gap)
    );
    right: auto;
    z-index: 0;
  }

  .contents.business.reform .business-intro__content {
    position: relative;
    z-index: 1;
  }
}

.contents.business.custom .business-intro {
  container-type: inline-size;
  container-name: reform-intro;
  --content-width-business: 75rem;
  --reform-intro-inner-width: 50rem;
  --reform-deco-width: 11.5rem; /* 184px @ 1440px */
  --reform-deco-height: 41.4375rem; /* 663px @ 1440px */
  --reform-deco-color: #ef4f0f;
  --reform-deco-gap: 32px;
  overflow: visible;
}

.contents.business.custom .business-intro__inner {
  position: relative;
  overflow: visible;
}

.custom-deco {
  display: none;
  flex-shrink: 0;
  width: 11.5rem;
  height: 41.4375rem;
  margin: 0;
  pointer-events: none;
  user-select: none;
}

.custom-deco__text {
  display: block;
  font-family: var(--font-base_en);
  font-size: 11.5rem;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #c4d9ec;
  writing-mode: vertical-rl;
}

@media (min-width: 64rem) {
  /* 上端: inner 先頭＝content 上端 / 左端: architecture layout-container 左隣（custom-content__deco 同様） */
  .contents.business.custom .business-intro .custom-deco {
    display: block;
    position: absolute;
    top: 0;
    left: calc(
      (min(100cqw, var(--reform-intro-inner-width)) - min(100cqw, var(--content-width-business))) / 2
      - var(--reform-deco-width)
      - var(--reform-deco-gap)
    );
    right: auto;
    z-index: 0;
  }

  .contents.business.custom .business-intro__content {
    position: relative;
    z-index: 1;
  }
}

/* リフォームページ — エコリフォーム（--has-icon）のみ黒丸アイコン */
.contents.business.reform .works-examples .works-examples-card:not(.works-examples-card--has-icon) .works-examples-card__title-row::after {
  content: none;
  display: none;
}

/* REFORM MENU — グリッドとボタンの間 32px / CTAボタン 304×56 */
.contents.business.reform .architecture__grid {
  height: auto;
  margin-bottom: 32px;
}

.contents.business.reform .architecture__action {
  margin: 0;
  text-align: center;
}

.contents.business.reform .architecture__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-sizing: border-box;
  width: 19rem; /* 304px @ 1440px */
  height: 3.5rem; /* 56px @ 1440px */
  padding: 0 1.25rem;
  border-radius: 1.75rem;
  background-color: #166ab3;
  font-size: 1rem; /* B16 */
  font-weight: 700;
  line-height: 1;
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.contents.business.reform .page_body a.architecture__link {
  color: #ffffff;
  text-decoration: none;
}

.contents.business.reform .page_body a.architecture__link:visited,
.contents.business.reform a.architecture__link:visited {
  color: #ffffff;
  text-decoration: none;
}

.contents.business.reform .page_body a.architecture__link:hover,
.contents.business.reform .page_body a.architecture__link:focus-visible,
.contents.business.reform a.architecture__link:hover,
.contents.business.reform a.architecture__link:focus-visible {
  color: #ffffff;
  text-decoration: none;
  opacity: 0.85;
}

.contents.business.reform .architecture__link-text {
  flex: 1;
  text-align: center;
}

.contents.business.reform .architecture__link-icon {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 1.5rem; /* 24px @ 1440px */
  height: 1.5rem;
}

.contents.business.reform .architecture__link-icon-img {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
  object-fit: contain;
}

/*ipad*/
@media screen and (min-width:1px) and (max-width:1024px){
  .custom-content{
    padding: 0 5vw;
  }
}

/* ##########SP########## */
@media screen and (min-width:1px) and (max-width:575px) {
  .content_body{
    padding-bottom: 0;
  }

  .sub_catch_img_box + .page-nav{
      margin: 0 auto;
  }

  .custom-content{
    padding: 0;
    min-height: auto;
    min-height: initial;
  }

  .business-intro__inner {
    margin: 2rem;
  }

.contents.business .page_body > .service-section{
    margin-inline: calc(50% - 50vw);
    padding: 4rem 5vw 2rem 5vw;
}

  .page_body .business__list_item{
    margin-bottom: 1rem;
  }

  .page_body .business__list_item:last-child{
    margin-bottom: 0;
  }

.business__list_item a {
  padding: 0.5rem;
}

.business__list_item.for_custom,
.business__list_item.for_zeh{
  padding-right: 10rem;
  padding-left: 0;
}

.business__list_item.for_reform{
  padding-left: 10rem;
}

.business__list_item .img_business::before{
  width: 1rem;
}

.business__list_item.for_custom .img_business{
  width: 15rem;
  right: -7rem;
}

.business__list_item.for_reform .img_business{
  width: 15rem;
  top: 0;
  left: -7rem;
}

.business__list_item.for_zeh .img_business{
  width: 20rem;
  right: -12rem;
}

.business__list_item h3 {
  font-size: 1.5rem;
}

.business__list_item h3::before{
  font-size: 2.5rem;
}

.business__list_item h3::after{
  width: 1.5rem;
}

.business__list_item p {
  font-size: 1rem;
  line-height: 1.5;
}

.business__list_item p br{
  display: none;
}

.business__list_tags {
  font-size: 0.8rem;
}

.business__list_item.for_custom .img_business::before{
  left: -0.5rem;
  top: 1.5rem;
}

.business__list_item.for_reform .img_business::before {
    right: -0.5rem;
    top: 1.5rem;
}

.business__list_item.for_zeh .img_business::before{
  left: -0.5rem;
  top: 1.5rem;
}

.contents.business .page_body > .business-panorama,
.contents.business .page_body > .wp-block-image.business-panorama {
      margin-inline: calc(50% - 50vw);
      height: 31.2vw;
}

.contents.business .page_body > .business-panorama a,
.contents.business .page_body > .wp-block-image.business-panorama a{
  overflow: hidden;
  width: 100vw;
  display: flex;
  justify-content: center;
}


.page_body .business-panorama img, .page_body .wp-block-image.business-panorama img{
      object-fit: unset;
      height: 31.2vw;
      width: auto;
      max-width: unset;
  }

.works-examples-card{
  width: 100%;
}

.works-examples-card__media{
  width: 100%;
}

.business-intro:has(+ .architecture) .business-intro__heading{
    font-size: 1.4rem;
}

.contents.business.reform .business-intro__text{
  text-align: left;
}

.contents.business.reform .business-intro__text br{
  display: none;
}

  .zeh-about{
    padding-top: 2rem;
  }

  .zeh-about__deco{
    left: calc(50% - 50vw);
  }

    .zeh-about__deco-text{
      font-size: 6rem;

    }

  .page_body .zeh-heading__sub{
    font-size: 1.6em;
    background-size: unset;
    margin: 0 0 1rem 0;
  }

  .zeh-about__image{
    border-radius:1rem;
  }

  .zeh-merits{
      padding: 3rem 0 3rem 0;
  }

  .zeh-merits__inner{
    padding: 0;
  }

  .page_body .zeh-merits__title{
    font-size: 1.6em;
    background-size: unset;
    margin: 0 0 1rem 0;
  }

  .zeh-achievement__inner{
    padding: var(--zeh-achievement-inner-padding-y) 0;
  }

  .custom-content__main-visual{
    margin: 1.5rem 0 0 0;
  }

  .custom-content-page-title{
    border-radius: 1rem;
  }

  .page_body h2.custom-content-page-title__ja{
    margin: 0;
  }

  .page_body .custom-content-page-title__en{
    margin: 0;
  }

  .custom-content-page-title__ja br{
    display: inline;
  }

  .zeh-merits__formula-zeh{
    width: 100%;
    font-size: 3rem;
    text-align: center;
  }

  .zeh-merits__formula-icon{
    width: 12vw;
  }

  .zeh-merits__formula-item{
    width: 22vw;
    height: 30vw;
    padding: 1rem;
  }

  .zeh-merits__formula-label-line{
    font-size: 0.8rem;
  }

  .zeh-merits__formula-label-strong{
    font-size: 1.2rem;
  }

  .zeh-merits__formula-op{
    font-size: 2.5rem;
  }

  .zeh-merits__formula-op:not(.zeh-merits__formula-op--approx){
    width: auto;
    height: auto;
    font-size: 2rem;
  }

  .zeh-merits__formula-result{
    flex-direction: row;
    gap: 0.5rem;
  }

  .zeh-merits__formula-result-zero{
    font-size: 4rem;
  }

  .zeh-merits__grid{
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 2rem;
  }

    .zeh-merits__item{
      width: calc((100% - 2rem) / 2);
      flex-direction: column-reverse;
      gap: 0.75rem;
    }

    .zeh-merits__item-body h3.zeh-merits__item-title{
      font-size: 1.4rem;
      text-align: center;
    }

    .zeh-merits__item-body{
      gap: 0.5rem;
    }

    .zeh-merits__item-text{
      line-height: 1.5;
    }


  /*リフォームサイド英語*/
  .reform-deco{
    width: auto;
    height: auto;
  }

  .reform-deco__text{
    font-size: 6rem;
  }

  .contents.business.reform .business-intro .reform-deco {
    display: block;
    position: absolute;
    top: 0;
    left: calc(50% - 50vw);
    right: auto;
    z-index: -1;
    opacity: 0.6;
  }

  .contents.business.reform .business-intro__content {
    position: relative;
    z-index: 1;
  }

  /*注文住宅サイド英語*/
  .custom-deco{
    width: auto;
    height: auto;
  }

  .custom-deco__text{
    font-size: 6rem;
  }

  .contents.business.custom .business-intro .custom-deco {
    display: block;
    position: absolute;
    top: 0;
    left: calc(50% - 50vw);
    right: auto;
    z-index: -1;
    opacity: 0.6;
  }

  .contents.business.custom .business-intro__content {
    position: relative;
    z-index: 1;
  }

  .business-intro__text, .page_body .business-intro__text{
    text-align: left;
    font-size: 1.05rem;
  }

  /*OUR SURVICE*/
  .works-examples__grid{
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 1.5rem;
  }

  .page_body .works-examples .works-examples-card__title{
    font-size: 1.3rem;
    font-weight: 600;
  }

  .works-examples-card__title-row::after{
    width: 1.5rem;
    min-width: 1.5rem;
  }

  .contents.business .page_body:has(.architecture) > .architecture{
    margin-inline: 0;
    width: 100%;
  }

  .zeh_bns ul{
    gap: 1rem;
    justify-content: center;
  }

  .zeh_bns ul li{
    width: calc((100% - 1rem) / 2);
  }

  .works-examples-card__title-row{
    gap: 0;
  }



}