@charset "UTF-8";
/************************************
Unify layer
component.css の後に読み込み、余白・見出し・CTA・ボタンを正規化
（見た目のモダン化は適用しない。タイポ/余白の引き締めのみ）
************************************/

/* ----------------------------------------
   Global type / button
---------------------------------------- */
body {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  letter-spacing: 0.04em;
  color: var(--color-text);
}

h1, h2, h3 {
  line-height: var(--lh-heading);
  letter-spacing: 0.04em;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }

.btn_wrap {
  width: var(--btn-width);
}
.btn {
  border-color: var(--color-border);
  border-radius: var(--btn-radius);
  padding: var(--btn-padding);
  font-size: var(--fs-btn);
  line-height: var(--lh-tight);
  background: var(--color-white);
  color: var(--color-text);
  box-shadow: var(--shadow-xs);
}

/* ----------------------------------------
   Border-radius law（用途別）
---------------------------------------- */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="url"],
input[type="number"],
textarea,
select {
  border-radius: var(--radius-control);
}

.cta-block--products .inner,
#products_cta .inner {
  border-radius: var(--radius-sm);
}
.cta-block--split.cta-block--dark .inner,
#cta .inner {
  border-radius: var(--radius-md);
}
.cta-block--bg .inner,
.cta-block--bg .cta_inner,
.cta-block--bg .casual_meeting_inner,
.cta-block--entry .inner,
#cta_a .inner,
#entry_cta .inner,
#single_insights .cta .inner {
  border-radius: var(--radius-card);
}

#index .strengths_head .strengths_img_wrap,
#index .insights_headimg_wrap img,
#capabilities .industries ul li {
  border-radius: var(--radius-media);
}

#index .insights_cat,
#insights .insights_cat,
#single_insights .insights_list .insights_cat,
#single_insights .insights_headline_txt .insights_cat {
  border-radius: var(--radius-xs);
}

.cookie_consent .close_btn {
  border-radius: var(--radius-full);
}
.btn_b {
  background: var(--color-text);
  color: var(--color-white);
}
.btn .btn_txt span {
  background: var(--color-text);
  color: var(--color-white);
  border-radius: var(--radius-full);
}
.btn.btn_b .btn_txt span {
  color: var(--color-text);
  background: var(--color-white);
}
.btn:before {
  background: var(--color-text);
}
.capabilities_scroll_nav_link, .cookie_agree, .cookie_reject {
  border-radius: var(--radius-pill);
}

/* ----------------------------------------
   Section rhythm
---------------------------------------- */
#page .page_section,
#capabilities section:not(#cta):not(.cta-block),
#about > section.page_section,
#careers > section.page_section,
#sustainability > section.page_section,
#contact > section.page_section {
  margin-bottom: var(--section-gap);
}
#capabilities .capabilities_headline,
#capabilities .service_headline {
  margin-bottom: var(--section-gap);
}

#page .section_headtxt {
  margin-bottom: var(--space-80);
}

#page .list_content {
  margin-bottom: var(--section-gap);
  padding-bottom: var(--section-gap);
  border-bottom-color: var(--color-border);
}
.capabilities_scroll_nav_link, .cookie_agree, .cookie_reject {
  border-radius: var(--radius-pill);
}
/* ----------------------------------------
   Hero
---------------------------------------- */
#page .page_headline {
  padding-bottom: var(--hero-gap);
}
#page .page_headline_noimg {
  margin-bottom: var(--hero-gap);
}
#page .page_headline_tra,
#capabilities .capabilities_headline,
#capabilities .service_headline {
  margin-bottom: var(--section-gap);
}

#page .page_headline .en {
  color: var(--color-text-muted);
  font-size: var(--fs-caption);
}

#index .mission_top_copy,
#index .insights_copy,
#index .strengths_copy,
#index .sustainability_copy,
#page .list p {
  font-size: var(--fs-lead);
  line-height: 1.5;
  font-weight: bold;
}
#index .insights_copy,
#index .strengths_copy,
#index .sustainability_copy,
#page .list p {
  margin-bottom: var(--space-40);
}

/* ----------------------------------------
   Index: 英字見出し
---------------------------------------- */
#index h2 {
  font-size: var(--fs-h2);
  line-height: 1.5;
}
#index h2.section_headline,
#index .section_headline {
  font-size: inherit;
  margin-bottom: var(--space-20);
}
#index .headline_en,
#index h2 .headline_en,
#index .section_headline .headline_en {
  display: block;
  font-size: var(--fs-eyebrow);
  font-weight: 500;
  color: var(--color-text-muted);
  line-height: 1.2;
  letter-spacing: 0.08em;
}

/* ----------------------------------------
   CTA block 共通
---------------------------------------- */
.cta-block {
  margin-bottom: var(--section-gap);
}
.cta-block .btn_wrap {
  width: var(--btn-width);
  margin: 0;
}
.cta-block .cta_txt h2,
.cta-block .casual_meeting_txt h2 {
  margin-bottom: var(--space-20);
}
.cta-block .cta_txt p,
.cta-block .casual_meeting_txt p {
  margin-bottom: var(--space-40);
}

/* メインCTA: ダーク非対称パネル */
.cta-block--split.cta-block--dark .inner,
.cta-block--dark .cta_panel {
  background: #142836;
  border-radius: var(--radius-md);
  overflow: hidden;
  min-height: 420px;
}
.cta-block--split.cta-block--dark .cta_txt {
  flex-direction: column;
  justify-content: center;
  width: 42%;
  padding: 72px 5% 72px 6%;
  color: #fff;
}
.cta-block--split.cta-block--dark .cta_txt h2 {
  color: #fff;
}
.cta-block--split.cta-block--dark .cta_txt p {
  color: rgba(255, 255, 255, 0.78);
}
.cta-block--split.cta-block--dark .cta_visual,
.cta-block--split.cta-block--dark picture {
  order: 2;
  width: 58%;
}
.cta-block--split.cta-block--dark picture img,
.cta-block--split.cta-block--dark .cta_visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}
.cta-block--split.cta-block--dark .btn_b {
  background: #fff;
  color: var(--color-text);
}
.cta-block--split.cta-block--dark .btn_b .btn_txt span {
  background: var(--color-text);
  color: #fff;
}
.cta-block--split.cta-block--dark .btn_b:before {
  background: var(--color-accent);
}
.cta-block--split.cta-block--dark .btn_b:hover {
  background: var(--color-accent);
}
.cta-block--split.cta-block--dark .btn_b:hover .btn_txt {
  color: #fff;
}
.cta-block--split.cta-block--dark .btn_b:hover .btn_txt span {
  background: #fff;
  color: var(--color-accent);
}

.cta-block--bg .inner,
.cta-block--bg .cta_inner,
.cta-block--bg .casual_meeting_inner,
.cta-block--entry .inner {
  border-radius: var(--radius-md);
  padding: var(--space-80) 5%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.cta-block--bg .cta_txt,
.cta-block--bg .casual_meeting_txt,
.cta-block--entry .cta_txt {
  width: calc(100% - 300px);
  color: var(--color-white);
}
.cta-block--bg .cta_txt h2,
.cta-block--bg .casual_meeting_txt h2,
.cta-block--entry .cta_txt h2 {
  text-align: left;
  color: inherit;
}

.cta-block--products .inner {
  background: var(--color-surface);
  border-radius: var(--radius-sm);
  padding: var(--space-80) 5%;
}
.cta-block--products img,
.cta-block--products .products_cta_img {
  order: 2;
  width: 50%;
}
.cta-block--products .cta_txt {
  width: 50%;
}

#cta,
#cta.cta-block {
  margin-bottom: var(--section-gap);
}
#cta .cta_txt .btn_wrap,
#cta_a .btn_wrap,
#products_cta .cta_txt .btn_wrap,
#entry_cta .inner .btn_wrap,
#single_insights .cta .btn_wrap,
#careers .casual_meeting .btn_wrap,
#careers_jobs .casual_meeting .btn_wrap {
  width: var(--btn-width);
}
#cta_a .inner,
#entry_cta .inner,
#single_insights .cta .inner,
#careers .casual_meeting .casual_meeting_inner,
#careers_jobs .casual_meeting .casual_meeting_inner {
  padding: var(--space-80) 5%;
  border-radius: var(--radius-md);
}
#products_cta .inner {
  padding: var(--space-80) 5%;
  border-radius: var(--radius-sm);
}

/* ----------------------------------------
   SP
---------------------------------------- */
@media screen and (max-width: 960px) {
  body { font-size: var(--fs-body-sp); }
  h1 { font-size: var(--fs-h1-sp); }
  h2 { font-size: var(--fs-h2-sp); }
  h3 { font-size: var(--fs-h3-sp); }

  .btn_wrap {
    width: var(--btn-width-sp);
    max-width: var(--btn-max-width-sp);
  }

  #page .page_section,
  #capabilities section:not(#cta):not(.cta-block),
  #about > section.page_section,
  #careers > section.page_section,
  #sustainability > section.page_section,
  #contact > section.page_section {
    margin-bottom: var(--section-gap-sp);
  }
  #capabilities .capabilities_headline,
  #capabilities .service_headline {
    margin-bottom: var(--section-gap-sp);
  }

  #page .section_headtxt {
    margin-bottom: var(--space-40);
  }

  #page .list_content {
    margin-bottom: var(--section-gap-sp);
    padding-bottom: var(--section-gap-sp);
  }

  #page .page_headline {
    padding-bottom: var(--hero-gap-sp);
  }
  #page .page_headline_noimg {
    margin-bottom: var(--hero-gap-sp);
  }
  #page .page_headline_tra,
  #capabilities .capabilities_headline,
  #capabilities .service_headline {
    margin-bottom: var(--section-gap-sp);
  }

  #index .mission_top_copy,
  #index .insights_copy,
  #index .strengths_copy,
  #index .sustainability_copy,
  #page .list p {
    font-size: var(--fs-lead-sp);
  }
  #index .insights_copy,
  #index .strengths_copy,
  #index .sustainability_copy,
  #page .list p {
    margin-bottom: var(--space-40);
  }

  #index h2 {
    font-size: var(--fs-h2-sp);
  }
  #index .headline_en,
  #index h2 .headline_en,
  #index .section_headline .headline_en {
    font-size: var(--fs-eyebrow-sp);
  }

  .cta-block {
    margin-bottom: var(--section-gap-sp);
  }
  .cta-block .btn_wrap,
  #cta .cta_txt .btn_wrap,
  #cta_a .btn_wrap,
  #products_cta .cta_txt .btn_wrap,
  #entry_cta .inner .btn_wrap,
  #single_insights .cta .btn_wrap,
  #careers .casual_meeting .btn_wrap,
  #careers_jobs .casual_meeting .btn_wrap {
    width: var(--btn-width-sp);
    max-width: var(--btn-max-width-sp);
    margin-left: auto;
    margin-right: auto;
  }

  .cta-block--split.cta-block--dark .inner,
  .cta-block--split.cta-block--dark .inner.flex,
  .cta-block--dark .cta_panel,
  #cta .inner,
  #cta .inner.flex,
  #cta .cta_panel {
    display: flex !important;
    flex-direction: column !important;
    width: 100%;
    min-height: 0;
  }
  .cta-block--split.cta-block--dark .cta_txt,
  #cta .cta_txt {
    order: 2 !important;
    width: 100%;
    text-align: left;
    padding: var(--space-40) 8%;
  }
  .cta-block--split.cta-block--dark .cta_visual,
  .cta-block--split.cta-block--dark picture,
  #cta picture,
  #cta .cta_visual {
    order: 1 !important;
    width: 100%;
    min-height: 220px;
    aspect-ratio: 16 / 10;
    display: block;
  }
  .cta-block--split.cta-block--dark picture img,
  .cta-block--split.cta-block--dark .cta_visual img {
    border-radius: 0;
  }

  .cta-block--bg .inner,
  .cta-block--bg .cta_inner,
  .cta-block--bg .casual_meeting_inner,
  .cta-block--entry .inner,
  #cta_a .inner,
  #entry_cta .inner,
  #single_insights .cta .inner {
    padding: var(--space-40) 8%;
  }
  .cta-block--bg .cta_txt,
  .cta-block--bg .casual_meeting_txt,
  .cta-block--entry .cta_txt {
    width: 100%;
    margin-bottom: var(--space-40);
  }

  .cta-block--products .inner,
  #products_cta .inner {
    display: block;
    width: 100%;
    padding: var(--space-40) 10%;
  }
  .cta-block--products img,
  .cta-block--products .products_cta_img {
    width: 100%;
  }
  .cta-block--products .cta_txt {
    width: 100%;
  }

  #cta,
  #cta.cta-block {
    margin-bottom: var(--section-gap-sp);
  }
}
