@charset "UTF-8";

/* Smooth scroll / Base font size: 10px = 1rem */
html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}
/* Reset */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
/* Base */
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  line-height: 1.7;
  letter-spacing: 0.1em;
  color: #000;
  background-color: #daebf2;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-feature-settings: "palt";
}
img {
  width: 100%;
  vertical-align: top;
}
#cookie-notice .cn-button:not(.cn-button-custom){
    border:1px solid #fff;
}
.kakko_l {
  margin-left:-0.4em;
}
.kakko_r {
  margin-right:-0.4em;
}
.tenmaru {
  margin-right:-0.4em;
}
@media (min-width: 768px) {
  .br-sp {
    display: none;
  }
}
@media (max-width: 767px) {
  .br-pc {
    display: none;
  }
}

/* スクリーンリーダーには読ませつつ、画面からは完全に隠すCSS */
.screen-reader-text {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

/* ========== WP基本設定上書き ========== */
.wp-block-image {
    margin: 2em 0;
}
/* ========== スクロール表示アニメーション ========== */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
/* ========== Header ========== */
/* KV表示中: absolute で透過（ページと一緒にスクロール） */
header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: transparent;
  border-bottom: 1px solid transparent;
  height: 100px;
}
@media (max-width: 768px) {
  header {
    height: 60px;
  }
}
/* KVが見えなくなったら: fixed・白背景 */
header.is-scrolled {
  position: fixed;
  background-color: #fff;
  border-bottom-color: #e8e8e8;
  transition: transform 0.3s ease, background-color 0.4s ease, border-color 0.4s ease;
  height: 60px;
}

/* 下層ページ: ロード直後は背景なし */
header.is-scrolled.is-transparent {
  background-color: transparent;
  border-bottom-color: transparent;
}
header.is-scrolled.is-hidden {
  transform: translateY(-100%);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3.5rem;
  height: 100px;
}
@media (max-width: 768px) {
  .header-inner {
    height: 60px;
    padding: 0 1.5rem;
  }
}
header.is-scrolled .header-inner {
  height: 60px;
}
.header-logo {
  width: 158px;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .header-logo {
    width: 37.8vw;
    height: 100%;
  }
}
header.is-scrolled .header-logo {
  width: 97px;
}
@media (max-width: 768px) {
  header.is-scrolled .header-logo {
    width: 37.8vw;
  }
}
/* ロゴ: デフォルトはライト（KV透過ヘッダー用） */
.logo-dark {
  display: none;
}
.logo-light {
  display: block;
}
@media (max-width: 768px) {
  .logo-light {
    display: flex;
  }
}
/* スクロール後はダークロゴ */
header.is-scrolled .logo-dark {
  display: block;
}
@media (max-width: 768px) {
  header.is-scrolled .logo-dark {
    display: flex;
  }
}
header.is-scrolled .logo-light {
  display: none;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 4rem;
}
@media (max-width: 768px) {
  .header-actions {
    gap: 2rem;
  }
}
/* CONTACT ボタン: デフォルトは白（KV用） */
.btn-contact {
  display: inline-block;
  padding: 0.3rem 3rem 0.1rem;
  border: 0.8px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 1.7rem;
  letter-spacing: 0.1em;
  border-radius: 6px;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
  font-family: "Roboto Condensed", sans-serif;
}
@media (max-width: 768px) {
  .btn-contact {
    font-size: 1.2rem;
    padding: 0.3rem 1rem 0.1rem;
  }
}
.btn-contact:hover {
  background-color: #fff;
  color: #000;
}
/* スクロール後はダーク */
header.is-scrolled .btn-contact {
  border-color: rgb(0 0 0 / 52%);
  color: #000;
}
header.is-scrolled .btn-contact:hover {
  background-color: #000;
  color: #fff;
}
/* ハンバーガーボタン */
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  width: 42px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
@media (max-width: 768px) {
  .hamburger {
    width: 25px;
    height: 36px;
    gap: 6px;
    padding: 0;
  }
}
/* バー: デフォルトは白（KV用） */
.hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
  transform-origin: center;
}
/* スクロール後はダーク */
header.is-scrolled .hamburger span {
  background-color: #000;
}
/* 開いた状態 → ? */
.hamburger.is-open span:nth-child(1) {
  transform: translateY(5px) rotate(45deg);
}
.hamburger.is-open span:nth-child(2) {
  transform: translateY(-5px) rotate(-45deg);
}
@media (max-width: 768px) {
  .hamburger.is-open span:nth-child(1) {
    transform: translateY(4px) rotate(45deg);
  }
  .hamburger.is-open span:nth-child(2) {
    transform: translateY(-5px) rotate(-45deg);
  }
}
/* ========== Drawer ========== */
.nav-drawer {
  position: fixed;
  top: 80px;
  right: 5%;
  width: 360px;
  max-width: 85vw;
  height: auto;
  max-height: calc(100vh - 60px);
  max-height: calc(100vh - 60px);
  background-color: #fff;
  z-index: 300;
  overflow-y: auto;
  transform: translateX(150%);
  transition: transform 0.35s ease;
}
@media (max-width: 768px) {
  .nav-drawer {
    width: 100%;
    max-width: 100vw;
    right: 0;
    top: 60px;
  }
}
.nav-drawer.is-open {
  transform: translateX(0);
}
.drawer-close {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 1.5rem;
  width: 100%;
  height: 60px;
  background: none;
  border: none;
  border-bottom: 1px solid #e8e8e8;
  font-size: 2.9rem;
  color: #555;
  cursor: pointer;
  flex-shrink: 0;
}
.drawer-close:hover {
  color: #000;
  background-color: #f5f5f5;
}
/* ナビリスト */
.nav-list {
  list-style: none;
}
.nav-list li {
  border-bottom: 1px solid #e8e8e8;
}
.nav-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1.5rem;
  text-decoration: none;
  color: #333;
  gap: 1rem;
  transition: background-color 0.15s;
}
.nav-list a .nav-ja::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.nav-list a:hover {
  background-color: #ebebeb;
}
.nav-en {
  font-weight: 400;
  letter-spacing: 0;
  color: #555;
  white-space: nowrap;
  min-width: 9rem;
  font-family: "Roboto Condensed", sans-serif;
  flex: 1;
}
.nav-ja {
  font-size: 1.3rem;
  color: #333;
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 500;
}
/* ========== Main ========== */
main {
  width: 100%;
  height: 100%;
}
/* ========== Sections ========== */
main > section {
  min-height: 100px;
  scroll-margin-top: 60px;
  position: relative;
}
main > section:not(#kv) {
  padding: 120px 0 138px;
  max-width: 1212px;
  margin: 0 auto;
  width: 90%;
}
@media (max-width: 767px) {
  main > section:not(#kv) {
    width: 100%;
    padding: 16.8vw 0 10.6vw;
  }
}
main > section:not(#kv, #company, .news #news, .contact #contact)::before {
  content: "";
  position: absolute;
  background: #fff;
  width: 73%;
  height: 1px;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
@media (max-width: 767px) {
  main > section:not(#kv, #company, .contact #contact)::before {
    width: 90%;
  }
}
/* ========== #kv ========== */
#kv {
  position: relative;
  display: flex;
  overflow: hidden;
}
.kv-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 2.5rem;
  max-width: 960px;
  margin: 0 auto;
  width: 100%;
}
.kv-logo {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 52%;
  aspect-ratio: 1492/589;
}
@media (max-width: 767px) {
  .kv-logo {
    width: 81.33%;
  }
}
.kv-bg {
  width: 100%;
  aspect-ratio: 2880/1520;
}
@media (max-width: 767px) {
.kv-bg {
    aspect-ratio: 750 / 974;
  }
}
.kv-bg video{
  width:100%;
  height:100%;
}
/* セクション共通ラベル（ABOUT / AccuVoltLink とは など） */
.section-label {
  display: flex;
  align-items: baseline;
  gap: 1.5rem;
  padding: 0 0 3rem;
  /* background-color: #fff; */
  max-width: 883px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .section-label {
    width: 84%;
    gap: 1rem;
  }
}
.label-en {
  font-size: clamp(2.5rem, 3.1vw, 3.8rem);
  font-weight: 300;
  letter-spacing: 0;
  color: #000;
  font-family: "Roboto Condensed", sans-serif;
}
.label-ja {
  font-size: 1.6rem;
  color: #000;
  font-weight: 300;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
.label-en {
  font-family: "Roboto Condensed", sans-serif;
}
.label-ja {
  font-size: 1.4rem;
}
}
/* ========== #about ========== */
.sec-container {
  max-width: 1212px;
  margin: 0 auto;
}
.sec-heading {
  text-align: center;
  font-size: clamp(2.3rem, 2.8vw, 3.7rem);
  font-weight: 500;
  /* letter-spacing: 0.12em; */
  line-height: 0;
  margin: 0 0 4rem;
  font-family: "Noto Serif JP", serif;
  background: url(img/sec-ttl-bg.png);
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 1212/103;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sec-heading img {
  max-width: 62%;
}
@media (max-width: 767px) {
  .sec-heading {
    background: url(img/sec-ttl-bg-sp.png);
    aspect-ratio: 749/162;
    background-size: contain;
    background-repeat: no-repeat;
    /* font-size: 2.5rem; */
    padding: 0 0 0.1em;
    margin: 0 0 3rem;
    text-align: center;
    justify-content: center;
  }
  .sec-heading img {
    max-width: 70%;
  }
  .sec-heading-2row{
    background: url(img/sec-ttl-bg-sp-2row.png);
    aspect-ratio: 749/229;
    background-size: contain;
  }
}
.sec-lead {
  font-size: clamp(1.8rem, 2.5vw, 2.8rem);
  text-align: center;
  margin-bottom: 5.2rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.18em;
  font-weight: 500;
  line-height: 0;
}
.sec-lead img {
  max-width: 53%;
}

@media (max-width: 767px) {
.sec-lead {}
}
.sec-lead img {
  max-width: 55%;
}
.sec-lead em {
  font-style: normal;
  font-weight: 700;
}
/* 本文 + カード の2カラム */
.sec-body#about-body::before{
  display:none;
}
.about-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  max-width: 810px;
  margin: 0 auto 0;
  padding: 5rem 0 106px;
}
@media (max-width: 767px) {
  .about-cols {
    padding: 0 0 14vw;
    flex-direction: column;
    gap: 0;
  }
}
.about-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.7;
  width: 54%;
  text-align: justify;
}
@media (max-width: 767px) {
  .about-text {
    width: 100%;
    display: contents;
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
  }
}
.about-text p + p {
  margin-top: 1.2rem;
}
@media (max-width: 767px) {
  .about-text p:nth-child(1) {
    order: 0;
    margin-top: 0;
  }
  .about-text p:nth-child(2) {
    order: 1;
    margin-top: 2.5rem;
  }
  .about-text p:nth-child(3) {
    order: 2;
    margin-top: 2.5rem;
  }
  .about-text p:nth-child(4) {
    order: 4;
    margin-top: 0;
  }
  .about-text p:nth-child(5) {
    order: 5;
    margin-top: 2.5rem;
  }
  .about-text p:nth-child(6) {
    order: 6;
    margin-top: 2.5rem;
  }
  .about-text p:nth-child(7) {
    order: 7;
    margin-top: 5.5rem;
  }
  .about-text p:nth-child(8) {
    order: 8;
    margin-top: 2.5rem;
  }
  .about-text p:nth-child(9) {
    order: 9;
    margin-top: 0;
  }
  .about-text p:nth-child(10) {
    order: 10;
    margin-top: 0;
  }
  .about-text p sup {
    font-size:1rem;
  }
}
/* 情報カード */
.about-card {
  flex-shrink: 0;
  width: 44%;
  background-color: #fff;
  border-radius: 4px;
  padding: 1rem;
  font-size: 1.2rem;
  text-align: center;
  margin-top: 193px;
}
@media (max-width: 767px) {
  .about-card {
    width: 100%;
    order: 3;
    margin-top: 0;
    margin: 4rem 0;
  }
}
.about-card img {
  width: 100%;
  vertical-align: bottom;
}
.card-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.card-stat-label {
  font-size: 1.1rem;
  color: #555;
}
.card-num {
  font-size: clamp(2.2rem, 2.9vw, 3.5rem);
  font-weight: 700;
  line-height: 1;
}
.card-brand {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 0.6rem;
  color: #333;
}
.card-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-size: 1rem;
  flex-wrap: wrap;
  line-height: 1.4;
  margin-bottom: 0.6rem;
}
.card-arrow {
  color: #888;
}
.card-desc {
  font-size: 1rem;
  color: #555;
  line-height: 1.5;
  text-align: left;
}
/* about セクション展開トリガー「more / close」 */
.sec-toggle {
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  font-size: 1.6rem;
  letter-spacing: 0.12em;
  color: #000;
  cursor: pointer;
  font-family: "Roboto Condensed", sans-serif;
}
.toggle-open {
  display: block;
  position: relative;
  width: 100%;
  height: 30px;
}
.toggle-open::before {
  content: "";
  position: absolute;
  top: -14px;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 30px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}
.toggle-x {
  display: block;
  position: relative;
  width: 100%;
  height: 30px;
}
.toggle-x::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 1px;
  background: #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}
.toggle-x::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 1px;
  background: #000;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.sec-toggle:hover {
  color: #000;
}
/* 展開コンテンツ */
.sec-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.5s ease;
  max-width: 810px;
  margin: 0 auto;
  /* padding-top: 8rem; */
}
.sec-body::before{
  content:"";
  display:block;
  height: 6.5rem;
}

@media (max-width: 767px) {
  .sec-body {
    width: 81%;
  }
  .sec-body::before{
    height: 2.0rem;
  }
  
}
/* about 本文下段 */
.sec-body > p {
  font-size: 1.6rem;
  line-height: 1.9;
}
@media (max-width: 767px) {
.sec-body > p{
      font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
}
}
/* ========== Accordion ========== */
.accordion {
  margin-top: 2rem;
}
.accordion-trigger {
  width: 100%;
  background: none;
  border: none;
  border-top: 1px solid #bcd4e8;
  border-bottom: 1px solid #bcd4e8;
  padding: 1rem 1.5rem;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #000;
  transition: background-color 0.2s;
}
.accordion-trigger em {
  font-style: normal;
}
.accordion-trigger::after {
  content: "+";
  font-size: 1.9rem;
  font-weight: 400;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.accordion-trigger[aria-expanded="true"]::after {
  transform: rotate(45deg);
}
.accordion-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
}
.accordion-body-inner {
  padding: 1.5rem 1rem;
  font-size: 1.4rem;
  line-height: 1.9;
}
.accordion-body-inner p + p {
  margin-top: 1rem;
}
.about-text p.sec-footnote {
  font-size: 1.2rem;
  color: #000;
  margin-top: 1.5rem;
  line-height: 1.4;
  margin-top: 7.2rem;
}
@media (max-width: 767px) {
  .about-text p.sec-footnote {
    order: 10;
    margin-top: 4rem;
    font-size: 1.3rem;
  }
}
.accordion-close {
  display: block;
  margin: 1.5rem auto 0;
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #555;
  cursor: pointer;
  letter-spacing: 0.05em;
  text-decoration: underline;
}
/* ========== #product コンテンツ ========== */
.product-cols {
  display: flex;
  gap: 7%;
  align-items: flex-start;
  margin-bottom: 2.5rem;
}
@media (max-width: 767px) {
  .product-cols {
    padding: 0;
    flex-direction: column-reverse;
    gap: 10vw;
    margin-top: 0.5rem;
    margin-bottom: 3.5rem;
  }
}
.product-text {
  flex: 1;
  width: 45%;
}
@media (max-width: 767px) {
  .product-text {
    width: 100%;
  }
}
.product-image {
  flex-shrink: 0;
  width: 55%;
  border-radius: 10px;
  overflow: hidden;
}
@media (max-width: 767px) {
  .product-image {
    width: 100%;
  }
}
.product-image img {
  width: 100%;
  height: auto;
  display: block;
}
.product-spec-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin: 0 0 1rem;
}
@media (max-width: 767px) {
  .product-spec-title {
    font-size: 1.7rem;
  }
}
.product-specs {
  font-size: 1.6rem;
  line-height: 1.8;
}
@media (max-width: 767px) {
  .product-specs {
    font-size: 1.5rem;
    line-height: 1.8;
  }
}
.product-specs dl {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 4px 0;
  font-size: 15px;
  line-height: 1.7;
}
.product-specs dl dt {
  grid-column: 1;
  white-space: nowrap;
}
.product-specs dl dt.spacer {
  visibility: hidden;
}
.product-specs dl dd {
  grid-column: 2;
  margin: 0;
}
.product-specs dl dd::before {
  content: "：";
}
.product-app {
  margin-top: 2rem;
  margin-bottom: 2rem;
}
.product-app-title {
  margin: 0 0 0.8rem;
  font-size: 1.8rem;
  font-weight: 700;
}
@media (max-width: 767px) {
  .product-app-title {
    font-size: 1.7rem;
  }
}
.product-app-list {
}
.product-app-list li {
  text-indent: -0.7em;
  padding-left: 0.7em;
}
.product-desc {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 2.0rem;
}
@media (max-width: 767px) {
  .product-desc {
    font-size: 1.5rem;
    line-height: 1.8;
    margin-bottom: 2.0rem;
  }
}
.product-note {
  font-size: 1.5rem;
  line-height: 1.8;
  margin-bottom: 4.0rem;
  color: #000;
}
.product-btn-wrap {
  display: block;
  max-width: 32rem;
  margin: 2rem auto 2.5rem 0;
}
@media (max-width: 767px) {
  .product-btn-wrap {
    max-width: 38rem;
  }
}
.product-btn {
  display: inline-block;
  background: linear-gradient(45deg, #00609b, #0097d2);
  color: #fff;
  text-decoration: none;
  padding: 0.7rem 1.4rem 0.9rem;
  font-size: 1.6rem;
  transition: ease 0.2s;
  width: 100%;
  border-radius: calc(1px / 0);
  text-align: center;
}
@media (max-width: 767px) {
  .product-btn {
    font-size: 1.7rem;
  }
}
.product-btn:hover {
  opacity: 0.7
}
.sec-body > p.product-emphasis {
  margin-top: 1.2rem;
  font-size: clamp(2.2rem, 2.8vw, 2.7rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
@media (max-width: 767px) {
  .sec-body > p.product-emphasis {
    padding: 0.5rem 0 14vw 1.3em;
    text-indent: -1.3em;
    line-height: 1.5;
  }
}
/* ========== #future コンテンツ ========== */
.sec-body > p.future-intro {
  padding: 0 0 3rem;
}
@media (max-width: 767px) {
  .sec-body > p.future-intro {
    padding: 0 0 3rem;
  }
}
.future-phases {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0 2rem;
}
.future-phase {
  flex: 1;
  border-radius: 6px;
  padding: 1rem;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.future-phase--1 {
  background: #aaa;
}
.future-phase--2 {
  background: #555;
}
.future-phase--3 {
  background: #111;
}
.future-phase-label {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.future-phase-img {
  background: rgba(255, 255, 255, 0.85);
  border-radius: 4px;
  height: 80px;
  margin-bottom: 0.5rem;
}
.future-phase-sub {
  font-size: 1.2rem;
  line-height: 1.4;
  text-align: center;
}
.future-phase-name {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
}
.future-phase-desc {
  font-size: 1.2rem;
  line-height: 1.5;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 0.5rem;
  margin-top: 0.25rem;
}
.future-phase-value {
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 0.5rem;
  margin-top: 0.25rem;
}
.future-phase-arrow {
  font-size: clamp(1.6rem, 2vw, 2.4rem);
  color: #555;
  flex-shrink: 0;
}
.sec-body > p.future-emphasis {
  margin-top: 1.5rem;
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
@media (max-width: 767px) {
  .sec-body > p.future-emphasis {
    padding: 0.5rem 0 14vw 1.3em;
    text-indent: -1.3em;
    line-height: 1.5;
  }
}
/* ========== #implementation コンテンツ ========== */
.impl-card {
  margin: 0 0 2rem;
  border-radius: 10px;
  overflow: hidden;
}
@media (max-width: 767px) {
  .impl-card {
    margin: 0 0 1rem;
    margin-top: 0.5rem;
  }
}
.impl-sub {
  font-size: 1.4rem;
  line-height: 1.8;
  margin-bottom: 0.8rem;
}
.sec-body > p.impl-emphasis {
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
@media (max-width: 767px) {
  .sec-body > p.impl-emphasis {
    padding: 0.5rem 0 14vw 1.5em;
    text-indent: -1.5em;
    line-height: 1.5;
    margin-top: 2.5rem;
  }
}
/* ========== #application コンテンツ ========== */
.app-card {
  margin: 0 0 2rem;
  border-radius: 10px;
  overflow: hidden;
}
@media (max-width: 767px) {
  .app-card {
    margin: 0 0 1.5rem;
    margin-top: 0.5rem;
  }
}
.app-features {
  display: flex;
  gap: 0.5rem;
  justify-content: space-around;
}
.app-feature {
  flex: 1;
  text-align: center;
}
.app-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 0.6rem;
}
.app-icon svg {
  width: 100%;
  height: 100%;
}
.app-feature-name {
  font-size: 1.3rem;
  font-weight: 700;
}
.app-sub {
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
}
.sec-body > p.app-emphasis {
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .sec-body > p.app-emphasis {
    padding: 0.5rem 0 14vw 1.2em;
    text-indent: -1.2em;
    line-height: 1.5;
    margin-top: 2.5rem;
  }
}
/* ========== #foundation コンテンツ ========== */
.sec-body > p.foundation-body-text {
  /* padding-top: 8rem; */
  margin-bottom: 2.5rem;
}
@media (max-width: 767px) {
  .sec-body > p.foundation-body-text {
    padding-top: 0rem;
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
  }
}
.sec-body > p.foundation-emphasis {
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .sec-body > p.foundation-emphasis {
    padding: 0.5rem 0 14vw 1.2em;
    text-indent: -1.2em;
    line-height: 1.5;
  }
}
/* ========== #traceability コンテンツ ========== */
.trace-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 0 0 2.5rem;
  position: relative;
  justify-content: flex-end;
}
@media (max-width: 767px) {
  .trace-cols {
    flex-direction: column;
    justify-content: flex-start;
    padding: 0rem 0 2rem;
  }
}
.trace-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.9;
  position: absolute;
  left: 0;
  width: 47%;
}
@media (max-width: 767px) {
  .trace-text {
    display: block;
    width: 100%;
    position: relative;
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
  }
}
.trace-image {
  flex-shrink: 0;
  width: 94.5%;
  right: 0;
  aspect-ratio: 745/408;
}
@media (max-width: 767px) {
.trace-image {
  flex-shrink: 0;
  width: 100%;
  right: 0;
  aspect-ratio: 745/408;
  /* margin-left: -3%; */
}
}
.trace-image img {
  width: 100%;
  height: auto;
  display: block;
}
.sec-body > p.trace-emphasis {
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .sec-body > p.trace-emphasis {
    padding: 0.5rem 0 14vw 1.5em;
    text-indent: -1.5em;
    line-height: 1.5;
    margin-top: 0.5rem;
  }
}
/* ========== #technology コンテンツ ========== */
.sec-body > p.tech-intro {
  font-size: 1.6rem;
  line-height: 1.9;
  /* padding-top: 7.5rem; */
  margin-bottom: 3.2rem;
}
@media (max-width: 767px) {
  .sec-body > p.tech-intro {
    padding-top: 0;
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
  }
}
.tech-card {
  margin-bottom: 2.0rem;
  border-radius: 10px;
  overflow: hidden;
}
.tech-features {
  display: flex;
  gap: 1rem;
  justify-content: space-around;
}
.tech-feature {
  flex: 1;
  text-align: center;
}
.tech-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 0.8rem;
}
.tech-icon svg {
  width: 100%;
  height: 100%;
}
.tech-feature-name {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.tech-feature-desc {
  font-size: 1.2rem;
  color: #555;
  line-height: 1.6;
}
.sec-body > p.tech-emphasis {
  font-size: clamp(2.2rem, 2.8vw, 2.7rem);
  font-weight:500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .sec-body > p.tech-emphasis {
    padding: 0.5rem 0 14vw 1.3em;
    text-indent: -1.3em;
    line-height: 1.5;
    margin-top: 2.5rem;
  }
}
/* ========== #approach コンテンツ ========== */
.approach-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 0 0 0.5rem;
}
@media (max-width: 767px) {
  .approach-cols {
    padding: 0rem 0 0.5rem;
    flex-direction: column;
  }
}
.approach-text {
  flex: 1;
  font-size: 1.4rem;
  line-height: 1.9;
}
@media (max-width: 767px) {
  .approach-text {
    width: 100%;
  }
}
.approach-text > p {
  margin-bottom: 0.8rem;
  /* padding-top: 1.5rem; */
  font-size: 1.6rem;
}
@media (max-width: 767px) {
.approach-text > p {font-size: 1.5rem;letter-spacing: 0.03em;line-height: 1.8;}
}
.approach-text > p.approach-result-label {}
.approach-results {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 2.4rem;
}
.approach-results li {
  display: inline-block;
  background: #fff;
  padding: 0.45rem 1.0rem;
  font-size: clamp(1.9rem, 2vw, 2.3rem);
  font-weight: 500;
  align-self: flex-start;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.approach-card {
  flex-shrink: 0;
  width: 52%;
  border-radius: 9px;
  overflow: hidden;
  /* margin-top: 2.5rem; */
}
@media (max-width: 767px) {
  .approach-card {
    width: 100%;
    margin-top: 0;
  }
}
.compare-note {
  font-size: 1rem;
  color: #666;
  border-top: 1px solid #eee;
  padding-top: 0.5rem;
  margin-top: 0.3rem;
  line-height: 1.5;
}
.sec-body > p.approach-emphasis {
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  letter-spacing: 0.01em;
  margin-top: 2.5rem;
}
@media (max-width: 767px) {
  .sec-body > p.approach-emphasis {
    padding: 0.5rem 0 14vw 1.2em;
    text-indent: -1.2em;
    line-height: 1.5;
  }
}
.approach-emphasis em {
  font-style: normal;
}
/* ========== #why コンテンツ ========== */
.sec-body > p.why-intro {
  margin-bottom: 0;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  line-height: 1.8;
}
.why-risks {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 1.5rem;
  margin-bottom: 1.4rem;
}
.why-risks li {
  display: inline-block;
  background: #fff;
  padding: 0.45rem 1.0rem;
  font-size: clamp(1.9rem, 2vw, 2.3rem);
  font-weight: 500;
  align-self: flex-start;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.sec-body > p.why-conclusion {
  font-size: clamp(1.7rem, 1.5vw, 1.8rem);
  margin-bottom: 2.4rem;
  font-weight: 700;
}
.why-chart {
  border-radius: 4px;
  margin-bottom: 1.5rem;
  border-radius: 10px;
  overflow: hidden;
}
.why-chart-title {
  font-size: 1.2rem;
  color: #555;
  margin-bottom: 0.6rem;
}
.why-chart-svg {
  width: 100%;
  height: auto;
  display: block;
  font-family: "Noto Sans JP", sans-serif;
}
.sec-body > p.why-emphasis {
  font-size: clamp(2.2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 0;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 10rem;
  text-indent: -1.4em;
  padding-left: 1.5em;
  letter-spacing: 0.01em;
}
@media (max-width: 767px) {
  .sec-body > p.why-emphasis {
    margin-bottom: 14vw;
    line-height: 1.6;
    margin-top: 2.5rem;
  }
}
/* ========== #message コンテンツ ========== */
.sec-body#message-body:before{
  display:none;
}
.message-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 10rem;
  padding-top: 5rem;
}
@media (max-width: 767px) {
  .message-cols {
    flex-direction: column;
    gap: 12vw;
    padding-top: 0;
  }
}
.message-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.6;
  width: 54%;
  font-weight: 400;
}
@media (max-width: 767px) {
  .message-text {
    width: 100%;
    font-size: 1.5rem;
    letter-spacing: 0.03em;
    line-height: 1.8;
  }
}
.message-text p + p {
  margin-top: 0.8rem;
}
.message-images {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex-shrink: 0;
  width: 47%;
  border-radius: 4px;
  font-size: 1.2rem;
  text-align: center;
}
@media (max-width: 767px) {
  .message-images {
    width: 100%
  }
}
.message-images img {
  width: 100%;
  object-fit: cover;
  display: block;
}
/* ========== #news ========== */
.news-container {
  max-width: 820px;
  margin: 0 auto;
}
.news-list {
  list-style: none;
  margin-bottom: 2rem;
}
@media (max-width: 767px) {
  #news .news-list {
    width: 81.86%;
    margin: 0 auto 32px;
  }
}
.news-item {
  padding: 1.1rem 0px;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .news-item {
    padding: 1.8rem 0 1.1rem;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
  }
}
.news-item:not(:last-child) {
  border-bottom: 1px solid #fff;
}
.news-info {
  display: flex;
  align-items: center;
}
.news-date {
  white-space: nowrap;
  font-size: 1.1rem;
  flex-shrink: 0;
  padding-top: 0.2rem;
  font-weight: 500;
  font-family: "Roboto Condensed", sans-serif;
  
}
@media (max-width: 767px) {
.news-date {
  white-space: nowrap;
  font-size: 1.4rem;
}
}
.news-cat {
  white-space: nowrap;
  background: #fff;
  border-radius: 4px;
  flex-shrink: 0;
  width: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0.1rem 2rem 0 1.5rem;
  font-family: "Roboto", sans-serif;
  font-size: 1.1rem;
}
.news-cat a {
  color: #000;
  font-size: 1.1rem;
  text-decoration: none;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding: 0.3rem 0.5rem 0.2rem;
}
.news-title {
  flex: 1;
  line-height: 1.5;
  font-size: 1.6rem;
}
@media (max-width: 767px) {
  .news-title {
    width: 100%;
    flex: 0;
    line-height: 1.5;
    font-size: 1.5rem;
  }
}
.news-title a {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0.85rem 0;
  text-decoration: none;
  color: #000;
  font-size: 1.6rem;
  transition: opacity 0.15s;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .news-title a {
    font-size: 1.5rem;
  }
}
.news-title a:hover {
  opacity: 0.65;
}
@media (min-width: 767px) {
  .news-btn {
    text-align: right;
  }
  .news-more {
    display: inline-block;
    text-align: right;
    margin: 0;
    font-size: 1.6rem;
    color: #000;
    text-decoration: none;
    letter-spacing: 0.05em;
    padding-right: 25px;
    position: relative;
    transition: 0.2s ease;
  }
  .arw {
    display: block;
    position: absolute;
    width: 17px;
    height: 13px;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }
  .arw::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 2px;
    margin: auto;
    width: 12px;
    height: 11px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .arw::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 9px;
    margin: auto;
    width: 12px;
    height: 11px;
    border-top: 1px solid #000;
    border-right: 1px solid #000;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .news-more:hover {
    opacity: 0.7;
  }
}
@media (max-width: 767px) {
  .news-btn {
    text-align: center;
  }
  .news-more {
    color: #000;
    display: inline-block;
    background: #fff;
    text-decoration: none;
    padding: 0.8rem 1.4rem 0.9rem;
    font-size: 1.6rem;
    transition: ease 0.2s;
    width: 87%;
    border-radius: calc(1px / 0);
    text-align: center;
  }
}
/* ========== #contact ========== */
.contact-container {
  max-width: 810px;
  margin: 0 auto;
  text-align: center;
}
.contact-message {
  font-size: clamp(2rem, 2.3vw, 2.8rem);
  line-height: 1.7;
  margin-bottom: 3rem;
  font-family: "Noto Serif JP", serif;
  text-align: left;
  
  
  
  
/* Smooth scroll / Base font size: 10px = 1rem */
  html {
  scroll-behavior: smooth;
  font-size: 62.5%;
}
/* Reset */
*, *::
  before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
/* Base */
  body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  line-height: 1.7;
  color: #000;
  background-color: #daebf2;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-feature-settings: "palt";
}
  img {
  width: 100%;
  vertical-align: top;
}
  @media (min-width: 768px) {
  .br-sp {
    display: none;
  }
}
  @media (max-width: 767px) {
  .br-pc {
    display: none;
  }
}

/* ========== スクロール表示アニメーション ========== */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
/* ========== Header ========== */
/* KV表示中: absolute で透過（ページと一緒にスクロール） */
  header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background-color: transparent;
  border-bottom: 1px solid transparent;
  height: 100px;
}
  @media (max-width: 768px) {
  header {
    height: 60px;
  }
}
/* KVが見えなくなったら: fixed・白背景 */
  header.is-scrolled {
  position: fixed;
  background-color: #fff;
  border-bottom-color: #e8e8e8;
  transition: transform 0.3s ease, background-color 0.4s ease, border-color 0.4s ease;
  height: 60px;
}

/* 下層ページ: ロード直後は背景なし */
  header.is-scrolled.is-transparent {
  background-color: transparent;
  border-bottom-color: transparent;
}
  header.is-scrolled.is-hidden {
  transform: translateY(-100%);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3.5rem;
  height: 100px;
}
  @media (max-width: 768px) {
  .header-inner {
    height: 60px;
  padding: 0 1.5rem;
  }
}
  header.is-scrolled .header-inner {
  height: 60px;
}
.header-logo {
  width: 158px;
  display: flex;
  align-items: center;
}
  @media (max-width: 768px) {
  .header-logo {
    width: 37.8vw;
  height: 100%;
  }
}
  header.is-scrolled .header-logo {
  width: 97px;
}
  @media (max-width: 768px) {
  header.is-scrolled .header-logo {
    width: 37.8vw;
  }
}
/* ロゴ: デフォルトはライト（KV透過ヘッダー用） */
.logo-dark {
  display: none;
}
.logo-light {
  display: block;
}
  @media (max-width: 768px) {
  .logo-light {
    display: flex;
  }
}
/* スクロール後はダークロゴ */
  header.is-scrolled .logo-dark {
  display: block;
}
  @media (max-width: 768px) {
  header.is-scrolled .logo-dark {
    display: flex;
  }
}
  header.is-scrolled .logo-light {
  display: none;
}
.header-actions {
  display: flex;
  align-items: center;
  gap: 5rem;
}
  @media (max-width: 768px) {
  .header-actions {
    gap: 1rem;
  }
}
/* CONTACT ボタン: デフォルトは白（KV用） */
.btn-contact {
  display: inline-block;
  padding: 0.2rem 4rem;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 2rem;
  letter-spacing: 0.1em;
  border-radius: 6px;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
  font-family: "Roboto Condensed", sans-serif;
}
  @media (max-width: 768px) {
  .btn-contact {
    font-size: 1.2rem;
  padding: 0.2rem 1rem;
  }
}
.btn-contact:
  hover {
  background-color: #fff;
  color: #000;
}
/* スクロール後はダーク */
  header.is-scrolled .btn-contact {
  border-color: #000;
  color: #000;
}
  header.is-scrolled .btn-contact:hover {
  background-color: #000;
  color: #fff;
}
/* ハンバーガーボタン */
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 11px;
  width: 50px;
  height: 36px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
  @media (max-width: 768px) {
  .hamburger {
    width: 25px;
  height: 36px;
  gap: 6px;
  padding: 0;
  }
}
/* バー: デフォルトは白（KV用） */
.hamburger
  span {
  display: block;
  width: 100%;
  height: 3px;
  background-color: #fff;
  transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
  transform-origin: center;
}
/* スクロール後はダーク */
  header.is-scrolled .hamburger span {
  background-color: #000;
}
/* 開いた状態 → × */
.hamburger.is-open
  span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hamburger.is-open
  span:nth-child(2) {
  transform: translateY(-7px) rotate(-45deg);
}
  @media (max-width: 768px) {
  .hamburger.is-open span:nth-child(1) {
    transform: translateY(4px) rotate(45deg);
  }
  .hamburger.is-open span:nth-child(2) {
  transform: translateY(-5px) rotate(-45deg);
  }
}
/* ========== Drawer ========== */
.nav-drawer {
  position: fixed;
  top: 80px;
  right: 5%;
  width: 320px;
  max-width: 85vw;
  height: auto;
  max-height: calc(100vh - 60px);
  max-height: calc(100vh - 60px);
  background-color: #fff;
  z-index: 300;
  overflow-y: auto;
  transform: translateX(150%);
  transition: transform 0.35s ease;
}
  @media (max-width: 768px) {
  .nav-drawer {
    width: 100%;
  max-width: 100vw;
  right: 0;
  top: 60px;
  }
}
.nav-drawer.is-open {
  transform: translateX(0);
}
.drawer-close {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 1.5rem;
  width: 100%;
  height: 60px;
  background: none;
  border: none;
  border-bottom: 1px solid #e8e8e8;
  font-size: 2.9rem;
  color: #555;
  cursor: pointer;
  flex-shrink: 0;
}
.drawer-close:
  hover {
  color: #000;
  background-color: #f5f5f5;
}
/* ナビリスト */
.nav-list {
  list-style: none;
}
.nav-list
  li {
  border-bottom: 1px solid #e8e8e8;
}
.nav-list
  a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1.5rem;
  text-decoration: none;
  color: #333;
  gap: 1rem;
  transition: background-color 0.15s;
}
.nav-list
  a .nav-ja::after {
  content: "";
  width: 8px;
  height: 8px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.nav-list
  a:hover {
  background-color: #ebebeb;
}
.nav-en {
  font-weight: 400;
  letter-spacing: 0;
  color: #555;
  white-space: nowrap;
  min-width: 9rem;
  font-family: "Roboto Condensed", sans-serif;
  flex: 1;
}
.nav-ja {
  font-size: 1.3rem;
  color: #333;
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 500;
}
/* ========== Main ========== */
  main {
  width: 100%;
  height: 100%;
}
/* ========== Sections ========== */
  main > section {
  min-height: 100px;
  scroll-margin-top: 60px;
  position: relative;
}
  main > section:not(#kv) {
  padding: 120px 0 138px;
  max-width: 1212px;
  margin: 0 auto;
  width: 90%;
}
  @media (max-width: 767px) {
  main > section:not(#kv) {
    width: 100%;
  padding: 16.8vw 0 10.6vw;
  }
}
  main > section:not(#kv, #company, #news, #contact)::before {
  content: "";
  position: absolute;
  background: #fff;
  width: 73%;
  height: 1px;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
  @media (max-width: 767px) {
  main > section:not(#kv, #company, #contact)::before {
    width: 90%;
  }
}
/* ========== #kv ========== */
#kv {
  position: relative;
  display: flex;
  overflow: hidden;
}
.kv-inner {
  position: relative;
  z-index: 2;
  padding: 4rem 2.5rem;
  max-width: 960px;
  margin: 0 auto;
  width: 100%;
}
.kv-logo {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 52%;
  aspect-ratio: 1492/589;
}
  @media (max-width: 767px) {
  .kv-logo {
    width: 81.33%;
  }
}
.kv-bg {
  width: 100%;
}
/* セクション共通ラベル（ABOUT / AccuVoltLink とは など） */
.section-label {
  display: flex;
  align-items: baseline;
  gap: 1.5rem;
  padding: 0 0 3rem;
  /* background-color: #fff; */
  max-width: 883px;
  margin: 0 auto;
}
  @media (max-width: 767px) {
  .section-label {
    width: 84%;
  gap: 1rem;
  }
}
.label-en {
  font-size: clamp(2.1rem, 3.1vw, 3.8rem);
  font-weight: 300;
  letter-spacing: 0;
  color: #000;
  font-family: "Roboto Condensed", sans-serif;
}
.label-ja {
  font-size: 1.6rem;
  color: #000;
  font-weight: 300;
  letter-spacing: 0.05em;
}
  @media (max-width: 767px) {
.label-en {
  font-family: "Roboto Condensed", sans-serif;
}
.label-ja {
  font-size: 1.3rem;
}
}
/* ========== #about ========== */
.sec-container {
  max-width: 1212px;
  margin: 0 auto;
}
.sec-heading {
  text-align: center;
  font-size: clamp(2.3rem, 2.8vw, 3.7rem);
  font-weight: 500;
  letter-spacing: 0.12em;
  /* line-height: 0; */
  margin: 0 0 3rem;
  font-family: "Noto Serif JP", serif;
  background: url(img/sec-ttl-bg.png);
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 1212/103;
  display: flex;
  align-items: center;
  justify-content: center;
}
  @media (max-width: 767px) {
  .sec-heading {
    background: url(img/sec-ttl-bg-sp.png);
  aspect-ratio: 749/162;
  background-size: contain;
  background-repeat: no-repeat;
  /* font-size: 2.5rem; */
  }
}
.sec-lead {
  font-size: clamp(1.8rem, 2.5vw, 2.8rem);
  text-align: center;
  margin-bottom: 4rem;
  font-family: "Noto Serif JP", serif;
  letter-spacing: 0.18em;
}
  @media (max-width: 767px) {
  .sec-lead {}
}
.sec-lead
  em {
  font-style: normal;
  font-weight: 700;
}
/* 本文 + カード の2カラム */
.about-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  max-width: 810px;
  margin: 0 auto 0;
  padding: 45px 0 106px;
}
  @media (max-width: 767px) {
  .about-cols {
    padding: 0 0 14vw;
  flex-direction: column;
  }
}
.about-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.7;
  width: 54%;
  font-weight: 300;
}
  @media (max-width: 767px) {
  .about-text {
    width: 100%;
  display: contents;
  }
}
.about-text
  p + p {
  margin-top: 1.2rem;
}
  @media (max-width: 767px) {
  .about-text p:nth-child(2) {
    order: 2;
  margin-top: 0;
  }
}
/* 情報カード */
.about-card {
  flex-shrink: 0;
  width: 44%;
  background-color: #fff;
  border-radius: 4px;
  padding: 1rem;
  font-size: 1.2rem;
  text-align: center;
  margin-top: 193px;
}
  @media (max-width: 767px) {
  .about-card {
    width: 100%;
  order: 1;
  margin-top: 0;
  }
}
.about-card
  img {
  width: 100%;
  vertical-align: bottom;
}
.card-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.card-stat-label {
  font-size: 1.1rem;
  color: #555;
}
.card-num {
  font-size: clamp(2.2rem, 2.9vw, 3.5rem);
  font-weight: 700;
  line-height: 1;
}
.card-brand {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 0.6rem;
  color: #333;
}
.card-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-size: 1rem;
  flex-wrap: wrap;
  line-height: 1.4;
  margin-bottom: 0.6rem;
}
.card-arrow {
  color: #888;
}
.card-desc {
  font-size: 1rem;
  color: #555;
  line-height: 1.5;
  text-align: left;
}
/* about セクション展開トリガー「more / close」 */
.sec-toggle {
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  font-size: 1.6rem;
  letter-spacing: 0.12em;
  color: #000;
  cursor: pointer;
  font-family: "Roboto Condensed", sans-serif;
}
.toggle-open {
  display: block;
  position: relative;
  width: 100%;
  height: 30px;
}
.toggle-open::
  before {
  content: "";
  position: absolute;
  top: -14px;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 30px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}
.toggle-x {
  display: block;
  position: relative;
  width: 100%;
  height: 30px;
}
.toggle-x::
  before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 1px;
  background: #000;
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
}
.toggle-x::
  after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 30px;
  height: 1px;
  background: #000;
  -webkit-transform: rotate(-135deg);
  transform: rotate(-135deg);
}
.sec-toggle:
  hover {
  color: #000;
}
/* 展開コンテンツ */
.sec-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.5s ease;
  max-width: 810px;
  margin: 0 auto;
  /* padding-top: 8rem; */
}
  @media (max-width: 767px) {
  .sec-body {
    width: 81%;
  }
}
/* about 本文下段 */
.sec-body >
  p {
  font-size: 1.6rem;
  line-height: 1.9;
}
/* ========== Accordion ========== */
.accordion {
  margin-top: 2rem;
}
.accordion-trigger {
  width: 100%;
  background: none;
  border: none;
  border-top: 1px solid #bcd4e8;
  border-bottom: 1px solid #bcd4e8;
  padding: 1rem 1.5rem;
  font-size: 1.4rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #000;
  transition: background-color 0.2s;
}
.accordion-trigger
  em {
  font-style: normal;
}
.accordion-trigger::
  after {
  content: "+";
  font-size: 1.9rem;
  font-weight: 400;
  flex-shrink: 0;
  transition: transform 0.3s ease;
}
.accordion-trigger[
  aria-expanded="true"]::after {
  transform: rotate(45deg);
}
.accordion-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease;
}
.accordion-body-inner {
  padding: 1.5rem 1rem;
  font-size: 1.4rem;
  line-height: 1.9;
}
.accordion-body-inner
  p + p {
  margin-top: 1rem;
}
.about-text
  p.sec-footnote {
  font-size: 1.2rem;
  color: #000;
  margin-top: 1.5rem;
  line-height: 1.4;
  margin-top: 7.2rem;
}
  @media (max-width: 767px) {
  .about-text p.sec-footnote {
    order: 3;
  margin-top: 0rem;
  }
}
.accordion-close {
  display: block;
  margin: 1.5rem auto 0;
  background: none;
  border: none;
  font-size: 1.2rem;
  color: #555;
  cursor: pointer;
  letter-spacing: 0.05em;
  text-decoration: underline;
}
/* ========== #product コンテンツ ========== */
.product-cols {
  display: flex;
  gap: 7%;
  align-items: flex-start;
  padding: 8.5rem 0 2.5rem;
}
  @media (max-width: 767px) {
  .product-cols {
    padding: 0rem 0 2.5rem;
  flex-direction: column-reverse;
  gap: 10vw;
  }
}
.product-text {
  flex: 1;
  width: 37%;
}
.product-btn {
  display: inline-block;
  background: linear-gradient(45deg, #00609b, #0097d2);
  color: #fff;
  text-decoration: none;
  padding: 0.7rem 1.4rem 0.9rem;
  font-size: 1.6rem;
  transition: ease 0.2s;
  width: 100%;
  border-radius: calc(1px / 0);
  text-align: center;
}
.product-btn:
  hover {
  opacity: 0.7}
.product-image {
  flex-shrink: 0;
  width: 56%;
  border-radius: 10px;
  overflow: hidden;
}
  @media (max-width: 767px) {
  .product-image {
    width: 100%;
  }
}
.product-image
  img {
  width: 100%;
  height: auto;
  display: block;
}
.sec-body >
  p.product-emphasis {
  font-size: clamp(2rem, 2.4vw, 2.9rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.product-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #future コンテンツ ========== */
.sec-body >
  p.future-intro {
  padding: 7.5rem 0 3rem;
}
  @media (max-width: 767px) {
  .sec-body > p.future-intro {
    padding: 0rem 0 3rem;
  }
}
.future-phases {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0 1rem;
}
.future-phase {
  flex: 1;
  border-radius: 6px;
  padding: 1rem;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.future-phase--1 {
  background: #aaa;
}
.future-phase--2 {
  background: #555;
}
.future-phase--3 {
  background: #111;
}
.future-phase-label {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.25rem;
}
.future-phase-img {
  background: rgba(255, 255, 255, 0.85);
  border-radius: 4px;
  height: 80px;
  margin-bottom: 0.5rem;
}
.future-phase-sub {
  font-size: 1.2rem;
  line-height: 1.4;
  text-align: center;
}
.future-phase-name {
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
}
.future-phase-desc {
  font-size: 1.2rem;
  line-height: 1.5;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 0.5rem;
  margin-top: 0.25rem;
}
.future-phase-value {
  font-size: 1.4rem;
  font-weight: 700;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  padding-top: 0.5rem;
  margin-top: 0.25rem;
}
.future-phase-arrow {
  font-size: clamp(1.6rem, 2vw, 2.4rem);
  color: #555;
  flex-shrink: 0;
}
.sec-body >
  p.future-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.future-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #implementation コンテンツ ========== */
.impl-card {
  margin: 9rem 0 1rem;
  border-radius: 10px;
  overflow: hidden;
}
  @media (max-width: 767px) {
  .impl-card {
    margin: 0rem 0 1rem;
  }
}
.impl-sub {
  font-size: 1.4rem;
  line-height: 1.8;
  margin-bottom: 0.8rem;
}
.sec-body >
  p.impl-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.impl-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #application コンテンツ ========== */
.app-card {
  margin: 9rem 0 1rem;
  border-radius: 10px;
  overflow: hidden;
}
  @media (max-width: 767px) {
  .app-card {
    margin: 0 0 1rem;
  }
}
.app-features {
  display: flex;
  gap: 0.5rem;
  justify-content: space-around;
}
.app-feature {
  flex: 1;
  text-align: center;
}
.app-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 0.6rem;
}
.app-icon
  svg {
  width: 100%;
  height: 100%;
}
.app-feature-name {
  font-size: 1.3rem;
  font-weight: 700;
}
.app-sub {
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
}
.sec-body >
  p.app-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.app-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #foundation コンテンツ ========== */
.sec-body >
  p.foundation-body-text {
  padding-top: 8rem;
  margin-bottom: 2.5rem;
}
  @media (max-width: 767px) {
  .sec-body > p.foundation-body-text {
    padding-top: 0rem;
  }
}
.sec-body >
  p.foundation-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.foundation-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #traceability コンテンツ ========== */
.trace-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 8.5rem 0 2rem;
  position: relative;
  justify-content: flex-end;
}
  @media (max-width: 767px) {
  .trace-cols {
    flex-direction: column;
  justify-content: flex-start;
  padding: 0rem 0 2rem;
  }
}
.trace-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.9;
  position: absolute;
  left: 0;
  width: 47%;
}
  @media (max-width: 767px) {
  .trace-text {
    display: block;
  width: 100%;
  position: relative;
  }
}
.trace-image {
  flex-shrink: 0;
  width: 92%;
  right: 0;
  aspect-ratio: 745/408;
}
.trace-image
  img {
  width: 100%;
  height: auto;
  display: block;
}
.sec-body >
  p.trace-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.trace-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #technology コンテンツ ========== */
.sec-body >
  p.tech-intro {
  font-size: 1.6rem;
  line-height: 1.9;
  padding-top: 7.5rem;
  margin-bottom: 2.5rem;
}
  @media (max-width: 767px) {
  .sec-body > p.tech-intro {
    padding-top: 0;
  }
}
.tech-card {
  margin-bottom: 1.5rem;
  border-radius: 10px;
  overflow: hidden;
}
.tech-features {
  display: flex;
  gap: 1rem;
  justify-content: space-around;
}
.tech-feature {
  flex: 1;
  text-align: center;
}
.tech-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 0.8rem;
}
.tech-icon
  svg {
  width: 100%;
  height: 100%;
}
.tech-feature-name {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.tech-feature-desc {
  font-size: 1.2rem;
  color: #555;
  line-height: 1.6;
}
.sec-body >
  p.tech-emphasis {
  font-size: clamp(1.8rem, 2.3vw, 2.8rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
}
  @media (max-width: 767px) {
  .sec-body > p.tech-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
/* ========== #approach コンテンツ ========== */
.approach-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  padding: 5rem 0 0.5rem;
}
  @media (max-width: 767px) {
  .approach-cols {
    padding: 0rem 0 0.5rem;
  flex-direction: column;
  }
}
.approach-text {
  flex: 1;
  font-size: 1.4rem;
  line-height: 1.9;
}
  @media (max-width: 767px) {
  .approach-text {
    width: 100%;
  }
}
.approach-text >
  p {
  margin-bottom: 0.8rem;
  padding-top: 1.5rem;
  font-size: 1.6rem;
}
.approach-text >
  p.approach-result-label {}
.approach-results {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 2.4rem;
}
.approach-results
  li {
  display: inline-block;
  background: #fff;
  padding: 0.35rem 0.9rem;
  font-size: clamp(1.6rem, 2vw, 2.4rem);
  font-weight: 500;
  align-self: flex-start;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.approach-card {
  flex-shrink: 0;
  width: 52%;
  border-radius: 9px;
  overflow: hidden;
  margin-top: 2.5rem;
}
  @media (max-width: 767px) {
  .approach-card {
    width: 100%;
  }
}
.compare-note {
  font-size: 1rem;
  color: #666;
  border-top: 1px solid #eee;
  padding-top: 0.5rem;
  margin-top: 0.3rem;
  line-height: 1.5;
}
.sec-body >
  p.approach-emphasis {
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 10rem;
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 2.5vw, 3rem);
}
  @media (max-width: 767px) {
  .sec-body > p.approach-emphasis {
    padding: 0.5rem 0 14vw;
  }
}
.approach-emphasis
  em {
  font-style: normal;
}
/* ========== #why コンテンツ ========== */
.sec-body >
  p.why-intro {
  margin-bottom: 0;
}
.why-risks {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: 1.5rem;
  margin-bottom: 1.4rem;
}
.why-risks
  li {
  display: inline-block;
  background: #fff;
  padding: 0.35rem 0.9rem;
  font-size: clamp(1.9rem, 2vw, 2.4rem);
  font-weight: 500;
  align-self: flex-start;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.sec-body >
  p.why-conclusion {
  font-size: clamp(1.6rem, 1.5vw, 1.8rem);
  margin-bottom: 2.4rem;
}
.why-chart {
  border-radius: 4px;
  margin-bottom: 1.5rem;
  border-radius: 10px;
  overflow: hidden;
}
.why-chart-title {
  font-size: 1.2rem;
  color: #555;
  margin-bottom: 0.6rem;
}
.why-chart-svg {
  width: 100%;
  height: auto;
  display: block;
  font-family: "Noto Sans JP", sans-serif;
}
.sec-body >
  p.why-emphasis {
  font-size: clamp(2rem, 2.5vw, 3rem);
  font-weight: 500;
  color: #cb1618;
  padding: 0.5rem 0 0;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 10rem;
  text-indent: -1em;
  padding-left: 1em;
}
  @media (max-width: 767px) {
  .sec-body > p.why-emphasis {
    margin-bottom: 14vw;
  }
}
/* ========== #message コンテンツ ========== */
.message-cols {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 10rem;
  padding-top: 45px;
}
  @media (max-width: 767px) {
  .message-cols {
    flex-direction: column;
  gap: 18vw;
  padding-top: 0;
  }
}
.message-text {
  flex: 1;
  font-size: 1.6rem;
  line-height: 1.6;
  width: 54%;
  font-weight: 400;
}
  @media (max-width: 767px) {
  .message-text {
    width: 100%}
}
.message-text
  p + p {
  margin-top: 0.8rem;
}
.message-images {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex-shrink: 0;
  width: 47%;
  border-radius: 4px;
  font-size: 1.2rem;
  text-align: center;
}
  @media (max-width: 767px) {
  .message-images {
    width: 100%}
}
.message-images
  img {
  width: 100%;
  object-fit: cover;
  display: block;
}
/* ========== #news ========== */
.news-container {
  max-width: 820px;
  margin: 0 auto;
}
.news-list {
  list-style: none;
  margin-bottom: 2rem;
}
  @media (max-width: 767px) {
  .news-list {
    width: 81.86%;
  margin: 0 auto 32px;
  }
}
.news-item {
  padding: 1.1rem 0px;
  display: flex;
  align-items: center;
}
  @media (max-width: 767px) {
  .news-item {
    padding: 1.1rem 0px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  }
}
.news-item:not(:
  last-child) {
  border-bottom: 1px solid #fff;
}
.news-info {
  display: flex;
  align-items: center;
}
.news-date {
  white-space: nowrap;
  font-size: 1.2rem;
  flex-shrink: 0;
  padding-top: 0.2rem;
}
.news-cat {
  white-space: nowrap;
  font-size: 1.1rem;
  background: #fff;
  border-radius: 4px;
  flex-shrink: 0;
  width: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0.1rem 1rem 0;
}
.news-cat
  a {
  color: #000;
  font-size: 1.4rem;
  text-decoration: none;
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  padding: 0.1rem 0.5rem 0.2rem;
}
.news-title {
  flex: 1;
  line-height: 1.5;
  font-size: 1.6rem;
}
  @media (max-width: 767px) {
  .news-title {
    width: 100%;
  flex: 0;
  }
}
.news-title
  a {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 0.85rem 0;
  text-decoration: none;
  color: #000;
  font-size: 1.4rem;
  transition: opacity 0.15s;
}
  @media (max-width: 767px) {
  .news-title a {
    flex-wrap: wrap;
  }
}
.news-title
  a:hover {
  opacity: 0.65;
}
  @media (min-width: 767px) {
  .news-btn {
    text-align: right;
  }
  .news-more {
  display: inline-block;
  text-align: right;
  margin: 0;
  font-size: 1.6rem;
  color: #000;
  text-decoration: none;
  letter-spacing: 0.05em;
  padding-right: 25px;
  position: relative;
  transition: 0.2s ease;
  }
  .arw {
  display: block;
  position: absolute;
  width: 17px;
  height: 13px;
  right: 0;
  top: 0;
  bottom: 0;
  margin: auto;
  }
  .arw::
  before {
    content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 2px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  }
  .arw::
  after {
    content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 9px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  }
  .news-more:
  hover {
    opacity: 0.7;
  }
}
  @media (max-width: 767px) {
  .news-btn {
    text-align: center;
  }
  .news-more {
  color: #000;
  display: inline-block;
  background: #fff;
  text-decoration: none;
  padding: 0.8rem 1.4rem;
  font-size: 1.6rem;
  transition: ease 0.2s;
  width: 72.5%;
  border-radius: calc(1px / 0);
  text-align: center;
  }
}
/* ========== #contact ========== */
.contact-container {
  max-width: 810px;
  margin: 0 auto;
  text-align: center;
}
.contact-message {
  font-size: clamp(2rem, 2.3vw, 2.8rem);
  line-height: 1.9;
  margin-bottom: 2rem;
  font-family: "Noto Serif JP", serif;
  text-align: left;
}
  @media (max-width: 767px) {
  .contact-message {
    text-align: center;
  }
}
.contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
  text-decoration: none;
  padding: 0.9rem 2rem;
  font-size: clamp(1.6rem, 1.7vw, 2rem);
  letter-spacing: 0.05em;
  transition: background-color 0.2s, color 0.2s;
  width: 100%;
  background: #fff;
  border-radius: 10px;
  height: 111px;
  position: relative;
}
  @media (max-width: 767px) {
  .contact-btn {
    width: 90%;
  margin: 0 auto;
  }
}
.contact-btn .arw {
  position: relative;
  margin: 3px 0 0 16px;
}
.contact-btn .arw::
  before {}
.contact-btn .arw::
  after {}
.contact-btn:
  hover {
  background-color: #000;
  color: #fff;
}
.contact-btn:
  hover .arw::before {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.contact-btn:
  hover .arw::after {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
/* ========== #company ========== */
.company-info {
  max-width: 810px;
  margin: 0 auto;
}
  @media (max-width: 767px) {
  .company-info {
    width: 84%;
  }
}
.info-list {
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
}
  @media (max-width: 767px) {
  .info-list {
    align-items: flex-start;
  }
}
.company-info
  dt {
  font-size: 1.4rem;
  color: #555;
  width: 80px;
  text-align: justify;
  text-align-last: justify;
  margin-right: 30px;
  line-height: 1.6;
}
  @media (max-width: 767px) {
  .company-info dt {
    font-size: 1.2rem;
  width: 27%;
  }
}
.company-info
  dt:first-child {}
.company-info
  dd {
  line-height: 1.6;
}
  @media (max-width: 767px) {
  .company-info dd {
    font-size: 1.3rem;
  width: 73%;
  }
}
/* ========== #privacy コンテンツ ========== */
.pp-body {
  max-width: 810px;
  margin: 0 auto;
}
  @media (max-width: 767px) {
.pp-body  {
        width: 84%;
    }
}
.pp-intro {
  font-size: 1.5rem;
  line-height: 1.9;
  margin-bottom: 4rem;
}
  @media (max-width: 767px) {
.pp-intro {
  font-size: 1.3rem;
    }
}
.pp-list {
  list-style: none;
  counter-reset: pp-counter;
}
.pp-list >
  li {
  counter-increment: pp-counter;
  margin-bottom: 3rem;
  padding-left: 2.8rem;
  position: relative;
}
  @media (max-width: 767px) {
.pp-list > li {padding-left: 1.5em;}
}
.pp-list >
  li::before {
  content: counter(pp-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.6;
}
  @media (max-width: 767px) {
.pp-list > li::before {
font-size: 1.3rem;
    }
}
.pp-item-title {
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 0.6rem;
  line-height: 1.6;
}
  @media (max-width: 767px) {
.pp-item-title {
  font-size: 1.3rem;
    }
}
.pp-list >
  li p {
  font-size: 1.5rem;
  line-height: 1.9;
}
  @media (max-width: 767px) {
.pp-list > li p {
  font-size: 1.3rem;
}
}
.pp-list >
  li p + p {
  margin-top: 1rem;
}
.pp-bullets {
  list-style: none;
  margin-top: 0.8rem;
  margin-bottom: 0.5rem;
}
.pp-bullets
  li {
  font-size: 1.5rem;
  line-height: 1.8;
  padding-left: 1.2em;
  position: relative;
}
  @media (max-width: 767px) {
.pp-bullets li {
  font-size: 1.3rem;
}
}
.pp-bullets
  li::before {
  content: "・";
  position: absolute;
  left: 0;
}
.pp-contact {
  margin-top: 1rem;
  font-size: 1.5rem;
  line-height: 1.9;
}
.pp-contact
  a {
  color: #000;
  text-decoration: underline;
}
.pp-contact
  a:hover {
  opacity: 0.65;
}
.news-cnts {
  padding: 0;
  max-width: 810px;
  margin: 0 auto;
  width: 84%;
}
.news-cnts .date-box {
  display: flex;
  margin-bottom: 50px;
}
.news-cnts .date {
  font-family: "Roboto Condensed", sans-serif;
  font-size: 1.2rem;
}
.news-cnts .tag {
  margin-left: 1em;
}
.news-cnts .category-name {
  list-style: none;
  font-size: 1.2rem;
  background: #fff;
  padding: 0 30px;
  border-radius: 5px;
}
.news-cnts .ttl {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 60px;
}
#news .news-btn {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
}
.category-tab {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
  display: flex;
  gap: 1rem;
}
.category-tab-detail {
  list-style: none;
  white-space: nowrap;
  font-size: 1.1rem;
  background: #b3c1c7;
  flex-shrink: 0;
  width: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0;
  border-radius: 4px;
}
.category-tab-detail.is-active {
  background: #fff;
}
.category-tab-detail
  a {
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.1rem 0.5rem 0.2rem;
}
.category-tab-detail.is-active
  a {
  color: #000;
  pointer-events: none;
}
#news .news-list {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
}
  ul.pagenation {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
  display: flex;
  gap: 1rem;
  justify-content: center;
}
  ul.pagenation li.prev {
  background: none;
  position: relative;
}
  ul.pagenation li.prev a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 2px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(225deg);
  transform: rotate(225deg);
}
  ul.pagenation li.prev a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 9px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(225deg);
  transform: rotate(225deg);
}
  ul.pagenation li.prev a {
  position: relative;
}
  ul.pagenation li {
  list-style: none;
  white-space: nowrap;
  font-size: 1.4rem;
  background: #b3c1c7;
  color: #fff;
  flex-shrink: 0;
  width: 30px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0;
  border-radius: 4px;
}
  ul.pagenation li a {
  font-size: 1.4rem;
  text-decoration: none;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.1rem 0.5rem 0.2rem;
  color: #fff;
}
  ul.pagenation li.current {
  color: #000;
  background: #fff;
}
  ul.pagenation li.next {
  background: none;
  position: relative;
}
  ul.pagenation li.next a {
  position: relative;
}
  ul.pagenation li.next a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0px;
  left: 0;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
  ul.pagenation li.next a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 12px;
  left: 0;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
/* ========== Footer ========== */
  footer {
  text-align: center;
  font-size: 1.4rem;
  color: #333;
  margin-top: 3rem;
  padding: 40px 2%;
  margin: auto 0 0;
  display: flex;
  justify-content: center;
  gap: 20px;
}
  footer a{
  text-decoration:none;
  color: #333;
};
}
@media (max-width: 767px) {
  .contact-message {
    text-align: center;
    margin-bottom: 1.5rem;
  }
}
.contact-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
  text-decoration: none;
  padding: 0.9rem 2rem 1.1rem;
  font-size: clamp(1.6rem, 1.7vw, 2rem);
  letter-spacing: 0.05em;
  transition: background-color 0.2s, color 0.2s;
  width: 100%;
  background: #fff;
  border-radius: 10px;
  height: 111px;
  position: relative;
}
@media (max-width: 767px) {
  .contact-btn {
    width: 81%;
    margin: 0 auto;
    padding: 0rem 1rem 0rem;
    height: 86px;
  }
}
.contact-btn .arw {
  position: relative;
  margin: 3px 0 0 16px;
}
.contact-btn .arw::before {}
.contact-btn .arw::after {}
.contact-btn:hover {
  background-color: #000;
  color: #fff;
}
.contact-btn:hover .arw::before {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
.contact-btn:hover .arw::after {
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
}
@media (max-width: 767px) {
.contact-btn .arw {
  display: none;
}
}

/* ========== #company ========== */
.company-info {
  max-width: 810px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .company-info {
    width: 84%;
  }
}
.info-list {
  display: flex;
  align-items: center;
  padding: 0.5rem 0;
}
@media (max-width: 767px) {
  .info-list {
    align-items: flex-start;
  }
}
.company-info dt {
  font-size: 1.4rem;
  color: #000;
  width: 80px;
  text-align: justify;
  text-align-last: justify;
  margin-right: 30px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .company-info dt {
    font-size: 1.2rem;
    width: 23%;
    margin-right: 4%;
  }
}
.company-info dt:first-child {}
.company-info dd {
  line-height: 1.6;
  font-size: 1.7rem;
  letter-spacing: 0.12em;
}
@media (max-width: 767px) {
  .company-info dd {
    font-size: 1.3rem;
    width: 73%;
  }
}
/* ========== #privacy コンテンツ ========== */
.pp-body {
  max-width: 810px;
  margin: 0 auto;
}
@media (max-width: 767px) {
.pp-body  {
        width: 84%;
    }
}
.pp-intro {
  font-size: 1.5rem;
  line-height: 1.9;
  margin-bottom: 4rem;
}
@media (max-width: 767px) {
.pp-intro {
  font-size: 1.3rem;
    }
}
.pp-list {
  list-style: none;
  counter-reset: pp-counter;
}
.pp-list > li {
  counter-increment: pp-counter;
  margin-bottom: 3rem;
  padding-left: 2.8rem;
  position: relative;
}
@media (max-width: 767px) {
.pp-list > li {padding-left: 1.5em;}
}
.pp-list > li::before {
  content: counter(pp-counter) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.6;
}
@media (max-width: 767px) {
.pp-list > li::before {
font-size: 1.3rem;
    }
}
.pp-item-title {
  font-size: 1.5rem;
  font-weight: 500;
  margin-bottom: 0.6rem;
  line-height: 1.6;
}
@media (max-width: 767px) {
.pp-item-title {
  font-size: 1.3rem;
    }
}
.pp-list > li p {
  font-size: 1.5rem;
  line-height: 1.9;
}
@media (max-width: 767px) {
.pp-list > li p {
  font-size: 1.3rem;
}
}
.pp-list > li p + p {
  margin-top: 1rem;
}
.pp-bullets {
  list-style: none;
  margin-top: 0.8rem;
  margin-bottom: 0.5rem;
}
.pp-bullets li {
  font-size: 1.5rem;
  line-height: 1.8;
  padding-left: 1.2em;
  position: relative;
}
@media (max-width: 767px) {
.pp-bullets li {
  font-size: 1.3rem;
}
}
.pp-bullets li::before {
  content: "・";
  position: absolute;
  left: 0;
}
.pp-contact {
  margin-top: 1rem;
  font-size: 1.5rem;
  line-height: 1.9;
}
.pp-contact a {
  color: #000;
  text-decoration: underline;
}
.pp-contact a:hover {
  opacity: 0.65;
}
.news-cnts {
  padding: 0;
  max-width: 810px;
  margin: 0 auto;
  width: 84%;
}
.news-cnts .date-box {
  display: flex;
  margin-bottom: 50px;
}
.news-cnts .date {
  font-family: "Roboto Condensed", sans-serif;
  font-size: 1.2rem;
}
.news-cnts .tag {
  margin-left: 1em;
}
.news-cnts .category-name {
  list-style: none;
  font-size: 1.2rem;
  background: #fff;
  padding: 0 30px;
  border-radius: 5px;
}
.news-cnts .category-name a{
  color:#000;
  text-decoration:none;
}
.news-cnts .ttl {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 60px;
}
.news #news .news-btn {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
}
.category-tab {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.category-tab-detail {
  list-style: none;
  white-space: nowrap;
  font-size: 1.1rem;
  background: #b3c1c7;
  flex-shrink: 0;
  width: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0;
  border-radius: 4px;
}
@media (max-width: 767px) {
.category-tab-detail {
  width: 31%;
  gap:3%;
  font-size: 1rem;
}
}
.category-tab-detail.is-active {
  background: #fff;
}
.category-tab-detail a {
  color: #fff;
  font-size: 1.4rem;
  text-decoration: none;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.1rem 0.5rem 0.2rem;
}
@media (max-width: 767px) {
.category-tab-detail a {
  font-size: 1.2rem;
  padding: 0.5rem 0.5rem 0.6rem;
}
}
.category-tab-detail.is-active a {
  color: #000;
  pointer-events: none;
}
.news #news .news-list {
  padding: 0;
  margin: 50px auto 0;
}
.news #news .news-list{
    max-width: 810px;
    width: 84%;
}
ul.pagenation {
  padding: 0;
  max-width: 810px;
  margin: 50px auto 0;
  width: 84%;
  display: flex;
  gap: 1rem;
  justify-content: center;
}
ul.pagenation li.prev {
  background: none;
  position: relative;
}
ul.pagenation li.prev a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 2px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(225deg);
  transform: rotate(225deg);
}
ul.pagenation li.prev a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 9px;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(225deg);
  transform: rotate(225deg);
}
ul.pagenation li.prev a {
  position: relative;
}
ul.pagenation li {
  list-style: none;
  white-space: nowrap;
  font-size: 1.4rem;
  background: #b3c1c7;
  color: #fff;
  flex-shrink: 0;
  width: 30px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.5;
  margin: 0;
  border-radius: 4px;
}
ul.pagenation li a {
  font-size: 1.4rem;
  text-decoration: none;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.1rem 0.5rem 0.2rem;
  color: #fff;
}
ul.pagenation li.current {
  color: #000;
  background: #fff;
}
ul.pagenation li.next {
  background: none;
  position: relative;
}
ul.pagenation li.next a {
  position: relative;
}
ul.pagenation li.next a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0px;
  left: 0;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
ul.pagenation li.next a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 12px;
  left: 0;
  margin: auto;
  width: 12px;
  height: 11px;
  border-top: 1px solid #000;
  border-right: 1px solid #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
/* ========== Footer ========== */
footer {
  text-align: center;
  font-size: 1.4rem;
  color: #333;
  margin-top: 3rem;
  padding: 40px 2%;
  margin: auto 0 0;
  display: flex;
  justify-content: center;
  gap: 20px;
}
@media (max-width: 767px) {
  footer{
    font-size:1.2rem;
    flex-direction:column-reverse;
    gap: 5px;
    padding: 40px 2% 20px;
  }
}
footer a{
  text-decoration:none;
  color: #333;
}