@charset "UTF-8";
/* concept.css - コンセプトページ */
/* --------------------------------------------
   Concept page styles
-------------------------------------------- */
/* Section backgrounds (Figma 1:1194) */
.p-concept {
  background-color: #f8f8f8;
}
.p-concept .c-pageTitle {
  background-color: #f8f8f8;
}
.p-concept .c-breadcrumbs {
  background-color: #fff;
}

/* Main Copy Section */
.p-conceptCopy {
  background-color: #f8f8f8;
  border-block-end: 1px solid var(--color-border);
  position: relative;
  overflow: hidden;
}
.p-conceptCopy__wrap {
  display: flex;
  gap: min(5.556vw, 80px);
}
.p-conceptCopy__body {
  flex: 1;
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
  padding-block-start: 60px;
  text-align: justify;
}
.p-conceptCopy__body p + p {
  margin-block-start: 2em;
}
.p-conceptCopy__heading {
  display: flex;
  gap: 40px;
  flex-shrink: 0;
}
.p-conceptCopy__vtext {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.p-conceptCopy__vtext .line {
  background-color: #333;
  display: block;
  width: 1px;
  height: 250px;
}
.p-conceptCopy__vtext .txt {
  color: #222;
  font-size: clamp(var(--fs-32), 2.778vw, var(--fs-40));
  font-weight: 700;
  letter-spacing: 4px;
  line-height: 1.1;
  writing-mode: vertical-rl;
}
.p-conceptCopy__vtext:last-child .line {
  height: 205px;
}
.p-conceptCopy__tagline {
  color: #EDEDED;
  font-family: var(--font-family-en);
  font-size: clamp(8rem, 15.278vw, 13.75rem);
  font-weight: 300;
  letter-spacing: 11px;
  line-height: 1;
  margin-block-start: 80px;
  overflow: hidden;
  text-transform: uppercase;
  white-space: nowrap;
}
.p-conceptCopy__tagline span {
  display: inline-block;
  animation: infinity-scroll-left 40s infinite linear;
}
@media (max-width: 767.98px) {
  .p-conceptCopy__wrap {
    flex-direction: column-reverse;
    gap: 60px;
  }
  .p-conceptCopy__body {
    padding-block-start: 0;
  }
  .p-conceptCopy__heading {
    gap: 20px;
    justify-content: center;
  }
  .p-conceptCopy__vtext .line {
    height: 150px;
  }
  .p-conceptCopy__vtext {
    gap: 10px;
  }
  .p-conceptCopy__vtext .txt {
    font-size: var(--fs-28);
  }
  .p-conceptCopy__vtext:last-child .line {
    height: 120px;
  }
  .p-conceptCopy__tagline {
    font-size: 5rem;
    margin-block-start: 40px;
  }
}

/* Strength Section */
.p-conceptStrength {
  background-color: #f8f8f8;
}
.p-conceptStrength__head {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.p-conceptStrength__label {
  align-items: center;
  display: flex;
  gap: 6px;
}
.p-conceptStrength__label .line {
  background-color: var(--color-sub);
  display: block;
  height: 1px;
  width: 10px;
}
.p-conceptStrength__label .en {
  color: var(--color-sub);
  font-family: var(--font-family-en);
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 1.1;
  text-transform: uppercase;
}
.p-conceptStrength__ttl {
  font-size: var(--fs-28);
  font-weight: 500;
  letter-spacing: 1.4px;
  line-height: 1.6;
}
.p-conceptStrength__content {
  display: flex;
  flex-direction: column;
  gap: 80px;
  margin-block-start: 80px;
}
.p-conceptStrength__diagram {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.p-conceptStrength__subttl {
  font-feature-settings: "palt" on;
  font-size: clamp(var(--fs-28), 2.778vw, var(--fs-40));
  font-weight: 500;
  letter-spacing: 2px;
  line-height: 1.6;
}
.p-conceptStrength__txt {
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
}
.p-conceptStrength__diagramImg {
  margin-block-start: 20px;
}
.p-conceptStrength__diagramImg img {
  display: block;
  max-width: 100%;
  height: auto;
}
.p-conceptStrength__img img {
  display: block;
  width: 100%;
}
.p-conceptStrength__img--pc {
  aspect-ratio: 994/560;
  object-fit: contain;
}
.p-conceptStrength__img--sp {
  height: auto;
  object-fit: contain;
}
@media (max-width: 767.98px) {
  .p-conceptStrength__content {
    gap: 40px;
    margin-block-start: 40px;
  }
}

/* Commitment Section */
.p-conceptCommit {
  background-color: #fff;
  padding-block-start: 160px;
}
.p-conceptCommit__head {
  margin-block-end: 0;
}
.p-conceptCommit__headInner {
  align-items: flex-start;
  display: flex;
  gap: 40px;
}
.p-conceptCommit__title {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  gap: 10px;
  width: 167px;
}
.p-conceptCommit__label {
  align-items: center;
  display: flex;
  gap: 6px;
}
.p-conceptCommit__label .line {
  background-color: var(--color-sub);
  display: block;
  height: 1px;
  width: 10px;
}
.p-conceptCommit__label .en {
  color: var(--color-sub);
  font-family: var(--font-family-en);
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 1.1;
  text-transform: uppercase;
}
.p-conceptCommit__ttl {
  font-size: var(--fs-28);
  font-weight: 500;
  letter-spacing: 1.4px;
  line-height: 1.6;
}
.p-conceptCommit__desc {
  color: #222;
  flex: 1;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
  min-width: 0;
  padding-block-start: 34px;
}
.p-conceptCommit__desc p + p {
  margin-block-start: 2em;
}
.p-conceptCommit {
  /* 4 Pillars Navigation */
}
.p-conceptCommit__nav {
  display: flex;
  gap: 22px;
  justify-content: space-between;
  margin-block-start: 80px;
}
.p-conceptCommit__navItem {
  align-items: center;
  background-color: var(--color-base);
  border-radius: 10px;
  color: #fff;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  justify-content: center;
  min-height: 180px;
  padding: 30px 20px;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-conceptCommit__navItem:hover {
  opacity: 0.8;
}
.p-conceptCommit__navNum {
  font-size: var(--fs-16);
  letter-spacing: 0.8px;
  line-height: 1.2;
}
.p-conceptCommit__navLabel {
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 1.6;
  text-align: center;
}
.p-conceptCommit__navEn {
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--fs-13);
  letter-spacing: 0.65px;
  line-height: 1.2;
  text-transform: capitalize;
}
.p-conceptCommit__navArw {
  margin-block-start: 4px;
}
.p-conceptCommit__navArw img {
  display: block;
  filter: brightness(0) invert(1);
  height: 10px;
  transform: rotate(90deg);
  width: auto;
}
@media (max-width: 767.98px) {
  .p-conceptCommit__headInner {
    flex-direction: column;
    gap: 20px;
  }
  .p-conceptCommit__title {
    width: auto;
  }
  .p-conceptCommit__desc {
    padding-block-start: 0;
  }
  .p-conceptCommit__nav {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 16px !important;
    margin-block-start: 40px;
    padding-inline: 4px;
  }
  .p-conceptCommit__navItem {
    box-sizing: border-box;
    flex: none !important;
    width: auto !important;
    min-width: 0;
    min-height: 140px;
    padding: 20px 16px;
    margin: 0 !important;
  }
}

/* Detail Sections (01)-(04) */
.p-conceptDetail {
  margin-block-start: 150px;
}
.p-conceptDetail__header {
  display: flex;
  align-items: flex-start;
}
.p-conceptDetail__num {
  color: var(--color-base);
  flex-shrink: 0;
  font-size: var(--fs-16);
  letter-spacing: 0.8px;
  line-height: 3.8;
  width: 64px;
}
.p-conceptDetail__ttl {
  font-feature-settings: "palt" on;
  font-size: clamp(var(--fs-26), 2.778vw, var(--fs-40));
  font-weight: 500;
  letter-spacing: 2px;
  line-height: 1.6;
}
.p-conceptDetail__content {
  display: flex;
  flex-direction: column;
  gap: 60px;
  margin-block-start: 60px;
  padding-inline-start: 64px;
}
.p-conceptDetail__main {
  display: flex;
  gap: 40px;
}
.p-conceptDetail__txt {
  color: #222;
  flex: 1;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
  text-align: justify;
}
.p-conceptDetail__txt p + p {
  margin-block-start: 2em;
}
.p-conceptDetail__img {
  flex-shrink: 0;
  width: 45%;
}
.p-conceptDetail__img img {
  border-radius: 0;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
@media (max-width: 767.98px) {
  .p-conceptDetail {
    margin-block-start: 80px;
  }
  .p-conceptDetail__header {
    flex-direction: column;
    gap: 6px;
  }
  .p-conceptDetail__num {
    line-height: 1.6;
    width: auto;
  }
  .p-conceptDetail__content {
    gap: 40px;
    margin-block-start: 30px;
    padding-inline-start: 0;
  }
  .p-conceptDetail__main {
    flex-direction: column;
    gap: 20px;
  }
  .p-conceptDetail__img {
    width: 100%;
  }
}

/* Accordion */
.p-conceptAccordion {
  background-color: #e5e8ea;
  border: 1px solid var(--color-border);
  border-radius: 0;
  overflow: hidden;
}
.p-conceptAccordion__head {
  align-items: center;
  background: none;
  border: 0;
  color: #222;
  cursor: pointer;
  display: flex;
  font-family: inherit;
  justify-content: space-between;
  padding: 30px 40px;
  width: 100%;
  -webkit-text-fill-color: currentColor;
  -webkit-tap-highlight-color: transparent;
}
.p-conceptAccordion__head:focus,
.p-conceptAccordion__head:active {
  color: #222;
}
.p-conceptAccordion__hdg {
  color: inherit;
  font-size: var(--fs-16);
  font-weight: 700;
  letter-spacing: 0.8px;
  line-height: 1.6;
}
.p-conceptAccordion__icon {
  align-items: center;
  border: 1px solid var(--color-border);
  border-radius: 50%;
  display: flex;
  flex-shrink: 0;
  height: 36px;
  justify-content: center;
  position: relative;
  width: 36px;
}
.p-conceptAccordion__icon::before, .p-conceptAccordion__icon::after {
  background-color: var(--color-base);
  content: "";
  position: absolute;
  transition: transform 0.3s ease;
}
.p-conceptAccordion__icon::before {
  height: 1px;
  width: 14px;
}
.p-conceptAccordion__icon::after {
  height: 14px;
  width: 1px;
}
.p-conceptAccordion__body {
  display: none;
  padding: 0 40px 40px;
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
}
.p-conceptAccordion__flex {
  display: flex;
  gap: 30px;
}
.p-conceptAccordion__txt {
  flex: 1;
}
.p-conceptAccordion__img {
  flex-shrink: 0;
  width: 200px;
}
.p-conceptAccordion__img img {
  border-radius: 5px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
@media (min-width: 768px) {
  #commit-04 .p-conceptAccordion__img {
    width: 300px;
  }
}
.p-conceptAccordion__list {
  list-style: disc;
  margin-block-start: 1.5em;
  padding-inline-start: 1.5em;
}
.p-conceptAccordion__list li + li {
  margin-block-start: 0.5em;
}
.p-conceptAccordion.is-open .p-conceptAccordion__body {
  display: block;
}
.p-conceptAccordion.is-open .p-conceptAccordion__icon::after {
  transform: rotate(90deg);
}
@media (max-width: 767.98px) {
  .p-conceptAccordion__head {
    padding: 20px;
  }
  .p-conceptAccordion__body {
    padding: 0 20px 20px;
  }
  .p-conceptAccordion__flex {
    flex-direction: column;
    gap: 20px;
  }
  .p-conceptAccordion__img {
    width: 100%;
  }
}

/* Expert Profile */
.p-conceptExpert {
  align-items: stretch;
  display: flex;
  gap: 40px;
}
.p-conceptExpert__img {
  flex-shrink: 0;
  display: flex;
  width: 270px;
}
.p-conceptExpert__img img {
  border-radius: 0;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.p-conceptExpert__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 30px;
}
.p-conceptExpert__intro {
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
}
.p-conceptExpert__profile {
  background-color: #f8f8f8;
  border: 1px solid var(--color-border);
  border-radius: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 30px;
}
.p-conceptExpert__label {
  font-size: var(--fs-13);
  letter-spacing: 0.65px;
  line-height: 1.6;
  text-transform: uppercase;
}
.p-conceptExpert__name {
  font-size: var(--fs-18);
  font-weight: 700;
  letter-spacing: 0.9px;
  line-height: 1.6;
}
.p-conceptExpert__bio {
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-13);
  letter-spacing: 0.65px;
  line-height: 2;
}
@media (max-width: 767.98px) {
  .p-conceptExpert {
    align-items: initial;
    flex-direction: column;
    gap: 20px;
  }
  .p-conceptExpert__img {
    display: block;
    width: 100%;
  }
  .p-conceptExpert__img img {
    height: auto;
  }
  .p-conceptExpert__profile {
    padding: 20px;
  }
}

/* Performance Spec Diagram */
.p-conceptSpec__img--pc,
.p-conceptSpec__img--sp {
  display: block;
  height: auto;
  max-width: 100%;
  width: 100%;
}
.p-conceptSpec__img--pc {
  aspect-ratio: 1860 / 500;
  object-fit: contain;
}
.p-conceptSpec__img--sp {
  aspect-ratio: 1 / 1;
  object-fit: contain;
}

/* Sub-sections (Seismic, Insulation, Eco-friendly) */
#commit-02 .p-conceptDetail__content {
  gap: 0;
}
#commit-02 .p-conceptSpec {
  margin-block-end: 60px;
}
#commit-02 .p-conceptSub {
  border-block-start: 1px solid var(--color-border);
  margin-block-start: 0;
  padding-block-start: 40px;
}
#commit-02 .p-conceptSub + .p-conceptSub {
  margin-block-start: 80px;
}
.p-conceptSub__label {
  color: var(--color-sub);
  font-family: var(--font-family-en);
  font-size: var(--fs-13);
  font-weight: 500;
  letter-spacing: 0.65px;
  line-height: 1.6;
  text-transform: uppercase;
}
.p-conceptSub__ttl {
  font-feature-settings: "palt" on;
  font-size: clamp(var(--fs-22), 2.083vw, var(--fs-28));
  font-weight: 500;
  letter-spacing: 1.4px;
  line-height: 1.6;
  margin-block-start: 10px;
}
.p-conceptSub__content {
  display: flex;
  gap: 30px;
  margin-block-start: 40px;
}
.p-conceptSub__img {
  flex-shrink: 0;
  width: 45%;
}
.p-conceptSub__img img {
  border-radius: 5px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.p-conceptSub__txt {
  color: #222;
  flex: 1;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
  text-align: justify;
}
.p-conceptSub__txt p + p {
  margin-block-start: 2em;
}
.p-conceptSub__body {
  color: #222;
  font-feature-settings: "palt" on;
  font-size: var(--fs-15);
  font-weight: 500;
  letter-spacing: 0.75px;
  line-height: 2.3;
  margin-block-start: 40px;
}
/* Eco-friendly は本文の下に図を全幅で配置 */
.p-conceptSub__body + .p-conceptSub__img {
  width: 100%;
  margin-block-start: 40px;
}
.p-conceptSub .p-conceptAccordion {
  margin-block-start: 40px;
}
@media (max-width: 767.98px) {
  #commit-02 .p-conceptSpec {
    margin-block-end: 40px;
  }
  #commit-02 .p-conceptSub {
    padding-block-start: 30px;
  }
  #commit-02 .p-conceptSub + .p-conceptSub {
    margin-block-start: 60px;
  }
  .p-conceptSub__content {
    flex-direction: column;
    gap: 20px;
  }
  .p-conceptSub__img {
    width: 100%;
  }
}

/* Service Links */
.p-conceptService {
  background-color: #fff;
  border-block-start: 1px solid var(--color-border);
  display: flex;
}
.p-conceptService__item {
  align-items: center;
  border-inline-end: 1px solid var(--color-border);
  display: flex;
  flex: 1;
  gap: 40px;
  padding: 60px min(8.333vw, 120px);
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.p-conceptService__item:last-child {
  border-inline-end: none;
}
.p-conceptService__item:hover {
  opacity: 0.7;
}
.p-conceptService__img {
  flex-shrink: 0;
  width: 270px;
}
.p-conceptService__img img {
  aspect-ratio: 4/3;
  border-radius: 5px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.p-conceptService__link {
  align-items: center;
  display: flex;
  gap: 10px;
}
.p-conceptService__label {
  align-items: center;
  color: #222;
  display: inline-flex;
  font-size: var(--fs-18);
  font-weight: 500;
  gap: 10px;
  letter-spacing: 1.8px;
  line-height: 1.5;
  overflow: hidden;
}
.p-conceptService__label::after {
  background: url("data:image/svg+xml,%3Csvg width='14' height='13' viewBox='0 0 14 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.75977 0.75H12.4015V10.3925' stroke='%23333333' stroke-width='1.5' stroke-linecap='round'/%3E%3Cline x1='0.75' y1='-0.75' x2='15.4947' y2='-0.75' transform='matrix(-0.70708 0.707134 -0.70708 -0.707134 11.4863 0.525879)' stroke='%23333333' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E%0A") no-repeat center/contain;
  backface-visibility: hidden;
  content: "";
  flex-shrink: 0;
  height: 12px;
  opacity: 1;
  width: 12px;
  will-change: transform, opacity;
}
.p-conceptService__item:hover .p-conceptService__label::after,
.p-conceptService__item:focus-visible .p-conceptService__label::after {
  animation: arw-loop 1.6s ease infinite;
}
@media (max-width: 1199.98px) and (min-width: 768px) {
  .p-conceptService__item {
    gap: 24px;
    padding: 40px 30px;
  }
  .p-conceptService__img {
    width: clamp(140px, 22vw, 220px);
  }
}
@media (max-width: 767.98px) {
  .p-conceptService {
    flex-direction: column;
  }
  .p-conceptService__item {
    border-inline-end: none;
    border-block-end: 1px solid var(--color-border);
    gap: 20px;
    padding: 30px 20px;
  }
  .p-conceptService__item:last-child {
    border-block-end: none;
  }
  .p-conceptService__img {
    width: 120px;
  }
}
