@charset "UTF-8";
/* ==========================================================================
   繝輔か繝ｳ繝医?蝓ｺ譛ｬ險ｭ螳?
   ========================================================================== */ /* ============================================================================
   Variables
   ========================================================================= */ :root {
  --color-black: #191e2e;
  --color-white: #ffffff;
  --color-blue: #003894;
  --color-blue-light: #136cfa;
  --color-gray-bg: #f3f6fa;
  --color-gray-text: #7a8192;
}
/* ==========================================================================
   1. 繝?じ繧､繝ｳ繧ｷ繧ｹ繝?Β (螟画焚)
   ========================================================================== */ :root {
  --font-jp: "Noto Sans JP", sans-serif;
  --font-en: "Montserrat", sans-serif;
  --color-navy: #003894;
  --color-black: #191E2E;
  --color-gray: #7A8192;
  --color-border: #d1d8e2;
  --bg-blue: #f3f6fa;
  --container-width: 1160px;
  --sidebar-width: 180px;
}
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-jp);
  color: var(--text-color);
  -webkit-font-smoothing: antialiased;
}
/* 繝?く繧ｹ繝育畑縺ｮ繧ｳ繝ｳ繝?リ (1100px) */
.sub-container {
  width: clamp(331px, 88.26vw, 1160px);
  margin: 0 auto;
  padding: 0;
}
/* ==========================================================================
   荳句ｱ､繝壹?繧ｸMV繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ
   ========================================================================== */
.sub-page-mv {
  width: 100%;
  padding-bottom: 120px;
}
.sub-page-mv.mb80 {
  margin-bottom: 80px;
  padding-bottom: 0;
}
@media screen and (max-width: 768px) {
  .sub-page-mv {
    padding-bottom: 30px;
  }
  .sub-page-mv.mb80 {
    margin-bottom: 30px;
  }
}
/* --- 荳企Κ繝?く繧ｹ繝医お繝ｪ繧｢ --- */
.sub-page-header__top {
  background-color: #fff;
  padding: 165px 0 30px;
}
@media screen and (max-width: 768px) {
  .sub-page-header__top {
    padding-top: 100px;
    padding-bottom: 20px;
  }
}
.sub-page-header__top-inner {
  /*  display: flex;
  justify-content: space-between;
  align-items: flex-end; */
}
@media screen and (max-width: 768px) {
  .sub-page-header__top-inner {
    flex-direction: column;
  }
}
.sub-page-header__breadcrumb {
  justify-content: flex-end;
  display: flex;
}
/* 繧ｿ繧､繝医Ν繧ｨ繝ｪ繧｢ */
.sub-page-header__subtitle {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 10px 0;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .sub-page-header__subtitle {
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: 0.54px;
  }
}
.sub-page-header__title {
  line-height: 1;
  margin: 0;
  font-family: "Montserrat", sans-serif;
  font-size: 85px;
  font-style: normal;
  font-weight: 600;
  color: #191E2E;
}
@media screen and (max-width: 768px) {
  .sub-page-header__title {
    font-size: 48px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 48px */
    margin-bottom: 10px;
  }
}
/* --- 繝代Φ縺上★繝ｪ繧ｹ繝? --- */
.breadcrumb-list {
  display: flex;
  list-style: none;
  padding: 0;
  /*  margin: 0 0 10px 0;*/
  margin: 0;
  font-size: 13px;
  font-family: var(--font-jp);
  color: #191E2E;
}
@media screen and (max-width: 768px) {
  .breadcrumb-list {
    flex-wrap: wrap;
    margin-bottom: 0;
    justify-content: flex-end;
  }
}
.breadcrumb-list__item a {
  color: #7A8192;
  text-decoration: none;
  transition: opacity 0.3s;
}
.breadcrumb-list__item a:hover {
  opacity: 0.7;
}
.breadcrumb-list__item:not(:last-child)::after {
  content: "";
  display: inline-block;
  margin: 0 10px;
  font-size: 10px;
  width: 8px;
  height: 1px;
  background-color: #7A8192;
  vertical-align: middle;
}
.breadcrumb-list__item[aria-current="page"] {
  font-weight: 700;
}
/* --- 繝｡繧､繝ｳ逕ｻ蜒上お繝ｪ繧｢??igma謖?ｮ?: 1160px?? --- */
.sub-page-header__image {
  width: 100%;
  max-width: 1160px; /* Figma縺ｮ繝?じ繧､繝ｳ謨ｰ蛟､繧貞渚譏  */
  margin: 0 auto; /* 荳ｭ螟ｮ蟇?○ */
  overflow: hidden;
  height: 418px;
}
@media screen and (max-width: 768px) {
  .sub-page-header__image {
    height: 200px;
    width: clamp(331px, 88.26vw, 920px);
  }
}
.sub-page-header__image img {
  width: 100%;
  display: block;
  height: auto;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .sub-page-header__image img {
    height: 100%;
  }
}
@media screen and (max-width: 768px) {
  .sub-page-header__titles {
    width: 100%;
  }
}
/* ==========================================================================
   莨夂､ｾ讎りｦ√さ繝ｳ繝?Φ繝?Κ蛻?
 */
/* 譬ｹ譛ｬ逧?↑讓ｪ繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ繝舌?蟇ｾ遲? */
body {
  overflow-x: hidden;
}
/* ==========================================================================
   2. 繝ｬ繧､繧｢繧ｦ繝茨ｼ医し繧､繝峨ヰ繝ｼ + 繝｡繧､繝ｳ??
   ========================================================================== */
.l-container {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0;
}
.company-flex-layout {
  display: flex;
  gap: 100px; /* 繧ｵ繧､繝峨ヰ繝ｼ縺ｨ繧ｳ繝ｳ繝?Φ繝??髢馴囈 */
  position: relative;
}
@media screen and (max-width: 768px) {
  .company-flex-layout {
    flex-direction: column;
    gap: 60px;
  }
}
.company-sidebar {
  width: 195px; /* Figma縺ｮ謖?ｮ壹し繧､繧ｺ */
  flex-shrink: 0; /* 繧ｳ繝ｳ繝?Φ繝?′蠅励∴縺ｦ繧ゅし繧､繝峨ヰ繝ｼ縺梧ｽｰ繧後↑縺?ｈ縺?↓蝗ｺ螳? */
}
@media screen and (max-width: 768px) {
  .company-sidebar {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto;
  }
}
.company-main {
  flex-grow: 1;
  /* width: 865px;*/
  width: 823px;
}
@media screen and (max-width: 768px) {
  .company-main {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto;
  }
}
@media screen and (max-width: 768px) {
  .company-flex-layout.flexwrap {
    flex-wrap: wrap;
    gap: 50px;
  }
}
/* ==========================================================================
   3. 蟾ｦ蛛ｴ?售ticky繝翫ン繧ｲ繝ｼ繧ｷ繝ｧ繝ｳ?域律譛ｬ隱槭?縺ｿ??
   ========================================================================== */
.sticky-nav {
  position: sticky;
  top: 100px; /* 繧ｹ繧ｯ繝ｭ繝ｼ繝ｫ譎ゅ↓豁｢縺ｾ繧倶ｽ咲ｽｮ */
  z-index: 20; /* 莉悶?隕∫ｴ 縺ｮ荳九↓貎懊ｊ霎ｼ縺ｾ縺ｪ縺?ｈ縺?↓險ｭ螳? */
}
.nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px 20px;
  }
}
.nav-list li {
  margin-bottom: 14px;
}
@media screen and (max-width: 768px) {
  .nav-list li {
    margin-bottom: 0;
  }
}
.nav-item {
  text-decoration: none;
  font-family: var(--font-jp);
  font-weight: 500;
  color: var(--color-gray);
  display: flex;
  align-items: center;
  position: relative;
  transition: color 0.3s ease;
  font-size: 18px;
  letter-spacing: 0.54px;
  line-height: 150%; /* 27px */
}
@media screen and (max-width: 768px) {
  .nav-item {
    color: #7A8192;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 24px */
    letter-spacing: 0.48px;
    padding-left: 22px;
  }
}
/* 繧｢繧ｯ繝?ぅ繝也憾諷? (邏ｺ繝峨ャ繝? + 鮟偵ユ繧ｭ繧ｹ繝?) */
.nav-item.is-active {
  padding-left: 22px;
  color: #191E2E;
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 27px */
  letter-spacing: 0.54px;
	white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .nav-item.is-active {
    color: #191E2E;
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 24px */
    letter-spacing: 0.48px;
    text-transform: lowercase;
  }
}
.nav-item.is-active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 7px;
  height: 7px;
  background-color: var(--color-navy);
  border-radius: 50%;
  width: 12px;
  height: 12px;
  aspect-ratio: 1/1;
}
/* ==========================================================================
   4. 蜷?そ繧ｯ繧ｷ繝ｧ繝ｳ蜈ｱ騾夊ｦ句?縺暦ｼ医ち繧､繝医Ν + 邏ｺ濶ｲ縺ｮ邱夲ｼ?
   ========================================================================== */
.section-header {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .section-header {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto;
  }
}
.section-header.sdgs {
  margin-bottom: 0;
}
.section-header__jp {
  font-family: var(--font-jp);
  font-size: 36px;
  font-weight: 700;
  color: var(--color-black);
  margin: 0;
}
@media screen and (max-width: 768px) {
  .section-header__jp {
    color: #191E2E;
    font-family: "Noto Sans JP";
    font-size: 25px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 37.5px */
  }
}
.section-header__en-wrap {
  display: flex;
  align-items: center;
  margin-top: 12px;
  color: #003894;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 21px */
  letter-spacing: 0.42px;
}
@media screen and (max-width: 768px) {
  .section-header__en-wrap {
    color: #003894;
    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 21px */
    letter-spacing: 0.42px;
    margin-top: 10px;
  }
}
.section-header__line {
  display: block;
  width: 30px;
  height: 2px;
  background-color: var(--color-navy);
  margin-right: 15px;
}
.section-header__en {
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-navy);
  letter-spacing: 0.05em;
}
/* ==========================================================================
   5. 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ?壻ｻ｣陦ｨ謖ｨ諡ｶ??essage?俄?ｻ逋ｽ閭梧勹
   ========================================================================== */
.message-section {
  padding: 0 0 120px;
}
@media (max-width: 768px) {
  .message-section {
    padding: 0 0 80px;
  }
}
.message-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 60px;
  align-items: flex-start;
}
@media (max-width: 768px) {
  .message-grid {
    grid-template-columns: 1fr; /* 1蛻暦ｼ育ｸｦ荳ｦ縺ｳ?峨↓縺吶ｋ */
    gap: 30px;
    width: 100%;
    margin-top: 50px;
  }
}
.message-photo {
  background-color: #eee;
  width: 374px;
  height: 491px;
}
@media (max-width: 768px) {
  .message-photo {
    width: 100%;
    height: 340px;
  }
  .message-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.message-body {
  font-size: 15px;
  line-height: 2.2;
  color: #191e2e;
  width: 389px;
}
.message-body p {
  margin: 0 0 30px 0;
  font-feature-settings: 'palt'on;
  color: #191E2E;
  font-family: "Noto Sans JP";
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 27px */
  /*letter-spacing: 0.45px;*/
  letter-spacing: 1.2px;
}
@media (max-width: 768px) {
  .message-body {
    width: auto;
  }
  .message-body p {
    font-size: 15px;
    line-height: 180%; /* 27px */
    letter-spacing: 0.45px;
  }
}
.signature {
  text-align: right;
  margin-top: 40px;
}
@media (max-width: 768px) {
  .signature {
    text-align: right;
    margin-top: 20px;
  }
}
.signature p {
  color: #191E2E;
  text-align: right;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
  margin-bottom: 0;
}
@media (max-width: 768px) {
  .signature p {
    margin-bottom: 0;
  }
}
/* ==========================================================================
   6. 繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ?壻ｼ∵･ｭ縺ｨ縺励※縺ｮ蜿悶ｊ邨?∩?郁レ譎ｯ蜈ｨ蟷?ｼ俄?ｻ菫ｮ豁｣迚?
   ========================================================================== */
.approach-wrapper {
  position: relative;
  padding: 120px 0; /* 荳贋ｸ?120px繝代ョ繧｣繝ｳ繧ｰ */
  z-index: 1; /* 繧ｳ繝ｳ繝?Φ繝??菴薙ｒz-index縺ｮ邂｡逅?ｸ九↓鄂ｮ縺? */
  max-width: 823px;
}
@media (max-width: 768px) {
  .approach-wrapper {
    padding: 60px 0;
  }
}
.approach-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  /* left: 50%;*/
  transform: translateX(-33%);
  width: 120vw;
  height: 100%;
  background-color: var(--bg-blue);
  z-index: -1;
  left: 0;
}
/* 邨悟霧逅?ｿｵ */
.concept-block {
  margin-bottom: 70px;
}
@media (max-width: 768px) {
  .concept-block {
    margin-top: 40px;
    margin-bottom: 30px;
  }
}
.concept-block__title {
  /*  font-size: 24px;*/
  font-family: "Noto Sans JP";
  color: #003894;
  margin-bottom: 26px;
  font-size: 36px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 54px */
}
@media (max-width: 768px) {
  .concept-block__title {
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 36px */
    margin-bottom: 15px;
  }
}
.concept-block__catchphrase {
  color: #191E2E;
  margin: 0;
  font-family: "Noto Sans JP";
  font-size: 36px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 54px */
  letter-spacing: 2.88px;
}
@media (max-width: 768px) {
  .concept-block__catchphrase {
    font-size: 22px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 33px */
    letter-spacing: 0.66px;
  }
}
/* 3縺､縺ｮ螳牙ｿ?Μ繧ｹ繝? */
.initiative-list {
  margin-bottom: 80px;
}
@media (max-width: 768px) {
  .initiative-list {
    margin-bottom: 50px;
  }
}
.initiative-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 60px 0;
  border-bottom: 1px solid #BEBEBE;
}
@media (max-width: 768px) {
  .initiative-item {
    flex-direction: column;
    padding: 30px 0;
    align-items: flex-start;
  }
}
.initiative-list .initiative-item:first-child {
  border-top: 1px solid #BEBEBE;
}
.initiative-item__title {
  flex-shrink: 0;
  font-size: 25px;
  color: var(--color-navy);
  font-weight: 600;
  line-height: 150%;
  letter-spacing: 0.75px;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .initiative-item__title {
    color: #003894;
    font-family: "Noto Sans JP";
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 30px */
    letter-spacing: 0.6px;
    text-transform: lowercase;
    margin-bottom: 20px;
    text-align: left;
  }
}
.initiative-item__text {
  font-size: 15px;
  color: #191e2e;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 27px */
  letter-spacing: 0.45px;
  width: 494px;
}
@media (max-width: 768px) {
  .initiative-item__text {
    font-family: "Noto Sans JP";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 180%; /* 27px */
    letter-spacing: 0.45px;
    width: 100%;
  }
}
/* ISO9001繝悶Ο繝?け?育區閭梧勹繝懊ャ繧ｯ繧ｹ?? */
.iso-block {
  background-color: #fff;
  padding: 40px;
  border-radius: 4px;
  margin-top: 40px;
}
@media (max-width: 768px) {
  .iso-block {
    background-color: #fff;
    padding: 30px 24px;
    margin-top: 0;
  }
}
.iso-block__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 20px;
}
@media (max-width: 768px) {
  .iso-block__header {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 20px;
  }
}
.iso-block__title {
  font-size: 25px;
  color: #003894;
  font-weight: 700;
}
@media (max-width: 768px) {
  .iso-block__title {
    color: #003894;
    font-family: "Noto Sans JP";
    font-size: 17px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 25.5px */
    letter-spacing: 0.51px;
    text-transform: lowercase;
  }
}
.iso-block__note {
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%;
  letter-spacing: 0.54px;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .iso-block__note {
    color: #003894;
    font-family: "Noto Sans JP";
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 21px */
    letter-spacing: 0.42px;
    text-transform: lowercase;
  }
}
.iso-block__text {
  color: #191E2E;
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%;
  /* letter-spacing: 0.45px;*/
  letter-spacing: 1.2px;
}
@media (max-width: 768px) {
  .iso-block__text {
    color: #191E2E;
    font-family: "Noto Sans JP";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 180%; /* 27px */
    letter-spacing: 0.45px;
  }
}
.iso-block__policy-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 15px;
}
.iso-block__policy-text {
  font-size: 15px;
  line-height: 1.8;
  color: #191e2e;
}
/* ==========================================================================
   SDGs繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ
   ========================================================================== */
/* ==========================================================================
   SDGs繧ｻ繧ｯ繧ｷ繝ｧ繝ｳ (逋ｽ閭梧勹)
   ========================================================================== */
.sdgs-section {
  padding: 120px 0;
  background-color: #ffffff;
}
@media (max-width: 768px) {
  .sdgs-section {
    padding: 60px 0;
  }
}
.sdgs-tagline {
  font-family: var(--font-jp);
  margin-bottom: 60px;
  color: #191E2E;
  font-size: 32px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .sdgs-tagline {
    color: #191E2E;
    font-family: "Noto Sans JP";
    font-size: 22px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 33px */
    letter-spacing: 0.66px;
    margin-bottom: 30px;
  }
}
.section-header__jp.aboutsdgs {
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 36px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 54px */
  margin-bottom: 25px;
}
@media (max-width: 768px) {
  .section-header__jp.aboutsdgs {
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 36px */
    margin-bottom: 15px;
  }
}
.sdgs-declaration__title {
  margin-bottom: 20px;
  color: #003894;
  font-size: 20px;
  font-weight: 600;
  line-height: 150%; /* 30px */
  letter-spacing: 0.6px;
  text-transform: lowercase;
}
.sdgs-declaration__text {
  color: #191e2e;
  font-size: 16px;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
}
.sdgs-all-goals {
  margin-bottom: 85px;
}
@media (max-width: 768px) {
  .sdgs-all-goals {
    margin-bottom: 60px;
  }
}
.sdgs-all-goals img {
  width: 100%;
  height: auto;
}
/* 蜿悶ｊ邨?∩繧ｫ繝ｼ繝? */
.sdgs-card-list {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 30px;
}
.sdgs-card {
  background: #ffffff;
  padding: 60px;
  border-radius: 4px;
  /* 逕ｻ蜒上?豺｡縺?ラ繝ｭ繝??繧ｷ繝｣繝峨え繧貞?迴ｾ */
  box-shadow: 0 4px 20px 2px rgba(0, 0, 0, 0.12);
	max-width: 823px;
}
@media (max-width: 768px) {
  .sdgs-card {
    padding: 50px 30px;
  }
}
.sdgs-card__title {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 28px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 42px */
  letter-spacing: 0.84px;
  text-transform: lowercase;
  margin-bottom: 30px;
}
@media (max-width: 768px) {
  .sdgs-card__title {
    text-align: center;
    font-family: "Noto Sans JP";
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 36px */
    letter-spacing: 0.72px;
    margin-bottom: 24px;
  }
}
.sdgs-card__icons {
  display: flex;
  margin-bottom: 30px;
  justify-content: flex-start;
  gap: 30px 0;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .sdgs-card__icons {
    flex-direction: column;
    gap: 24px 0;
  }
}
.sdgs-card__icons img {
  height: 60px; /* 繧｢繧､繧ｳ繝ｳ縺ｮ鬮倥＆繧堤ｵｱ荳? */
  width: auto;
}
.sdgs-card__text {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 27px */
  letter-spacing: 0.45px;
}
@media (max-width: 768px) {
  .sdgs-card__text {
    font-family: "Noto Sans JP";
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 160%; /* 24px */
    letter-spacing: 0.45px;
  }
}
.sdgscontents {
  gap: 20px;
  width: 50%;
  justify-content: flex-start;
}
@media (max-width: 768px) {
  .sdgscontents {
    gap: 20px;
    width: 100%;
  }
}
.sdgs-card__icons {
  display: flex;
  margin-bottom: 30px;
  justify-content: flex-start;
  gap: 30px 0;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .sdgs-card__icons {
    margin-bottom: 24px;
  }
}
.sdgscontents img {
  width: 100px;
  height: 100px;
  aspect-ratio: 1/1;
}
.sdgscontents p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 27px */
  letter-spacing: 0.54px;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .sdgscontents p {
    letter-spacing: 0.2px;
  }
}
.sdgs-section {
  position: relative;
  padding-bottom: 0;
}
.sdgs-marquee {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  position: relative;
  margin-bottom: -50px;
  pointer-events: none;
}
/* --- スマホ時の設定 --- */
@media (max-width: 768px) {
  .sdgs-section {
    /* ① スライダーを囲む大元のセクションからはみ出た分を非表示にする */
    width: 100%;
  }
  .sdgs-marquee {
    /* ② スマホでもPCと同じように画面の横幅いっぱいに領域を広げます */
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-bottom: -20px;
    overflow: hidden;
  }
}
.sdgs-marquee__inner {
  display: flex;
  white-space: nowrap;
  width: max-content;
  animation: marquee-scroll 40s linear infinite;
}
.marquee-text {
  display: block;
  padding-right: 80px;
  color: #f3f6fa;
  font-family: "Montserrat", sans-serif;
  font-size: 128px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .marquee-text {
    font-family: Montserrat;
    font-size: 48px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%; /* 72px */
  }
}
@keyframes marquee-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    /* 3縺､荳ｦ縺ｹ縺溘≧縺｡縺ｮ1縺､蛻?ｼ?33.33%?臥ｧｻ蜍? */
    transform: translateX(-33.3333%);
  }
}
/* ==========================================================================
   莨夂､ｾ讎りｦ? (Profile) & 豐ｿ髱ｩ (History) 蟆ら畑CSS
   ========================================================================== */
.section-header__line {
  display: block;
  width: 30px; /* 菫ｮ豁｣貂医∩繧ｵ繧､繧ｺ */
  height: 2px;
  background-color: var(--color-navy); /* #00307d */
  margin-right: 15px;
}
/* --- 閭梧勹蜈ｨ蟷?Λ繝?ヱ繝ｼ --- */
.profile-history-wrapper {
  position: relative;
  padding: 100px 0 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .profile-history-wrapper {
    padding: 60px 0 0;
  }
}
.profile-history-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-33%);
  width: 120vw;
  height: 100%;
  background-color: #f3f6fa; /* 阮?＞髱? */
  z-index: -1;
}
.profile-history-content {
  flex-grow: 1;
}
/* --- 莨夂､ｾ讎りｦ? (Table) --- */
.profile-section {
  margin-bottom: 120px;
}
@media (max-width: 768px) {
  .profile-section {
    margin-bottom: 60px;
  }
}
.profile-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 40px;
  border-top: 1px solid #BEBEBE;
  position: relative;
}

.profile-table tr:first-child th,
.profile-table tr:first-child td {
  border-top: 1px solid #BEBEBE;
}
.profile-table tr:first-child th{
	position: relative;
}
.profile-table tr:first-child th:after {
  content: "";
  display: inline-block;
  width: 63.853px;
  height: 1px;
  background-color: #003894;
 /* top: 0;*/
  left: 0;
  position: absolute;
	    top: -1px;
}
/*.profile-table tr {
  border-bottom: 1px solid #BEBEBE; 
  position: relative;
}
.profile-table tr:before {
  content: "";
  display: inline-block;
  width: 63.853px;
  height: 1px;
  background-color: #003894;
  bottom: -2px;
  left: 0;
  position: absolute;
}*/
/* 1列目のセル（th または td）を基準位置にする */
.profile-table tr th:first-child,
.profile-table tr td {
  position: relative;
	border-bottom: 1px solid #BEBEBE; 
}

/* 1列目のセルの前に青い線を配置する */
.profile-table tr th:first-child::before,
.profile-table tr td:first-child::before {
  content: "";
  display: inline-block;
  width: 63.853px;
  height: 1px;
  background-color: #003894;
  bottom: -1px; /* border-bottom の真上に重ねるため -1px に調整 */
  left: 0;
  position: absolute;
  z-index: 1;   /* グレーの線より確実に上に来るように設定 */
}
.profile-table tr:last-child th:first-child::before{
	display: none;
}
@media (max-width: 768px) {
  .profile-table tr {
    display: flex;
    flex-direction: column;
  }
}
.profile-table th {
  width: 200px; /* 鬆?岼蜷阪?蟷? */
  padding: 28px 0;
  text-align: left;
  vertical-align: top;
  color: #191e2e;
  font-feature-settings: "palt"on;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 200%; /* 36px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .profile-table th {
    padding: 20px 0 0;
    color: #191E2E;
    font-feature-settings: 'palt'on;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 200%; /* 32px */
    letter-spacing: 0.48px;
  }
}
.profile-table td {
  padding: 28px 0;
  color: #191e2e;
  font-feature-settings: "palt"on;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 200%; /* 36px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .profile-table td {
    padding: 0 0 21px 0;
    color: #191E2E;
    font-feature-settings: 'palt'on;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 200%; /* 32px */
    letter-spacing: 0.48px;
  }
}
/* ==========================================================================
   莨夂､ｾ讎りｦ√→豐ｿ髱ｩ縺ｮ髢薙?逕ｻ蜒上そ繧ｯ繧ｷ繝ｧ繝ｳ?亥?蟷?ｼ?
   ========================================================================== */
.profile-history-visual {
  /* 隕ｪ縺ｮ繧ｳ繝ｳ繝?リ繧堤┌隕悶＠縺ｦ逕ｻ髱｢蟷?＞縺｣縺ｱ縺?↓蠎?£繧? */
  width: 100vw;
  /* margin-left: calc(-50vw + 50%); */
  display: flex;
  flex-direction: column; /* 邵ｦ縺ｫ2譫壻ｸｦ縺ｹ繧句 ｴ蜷医?よｨｪ縺ｪ繧? row 縺ｫ螟画峩 */
  gap: 0; /* 逕ｻ蜒上?髢薙↓髫咎俣繧貞?繧後↑縺?ｨｭ螳夲ｼ亥ｿ?ｦ√↓蠢懊§縺ｦ隱ｿ謨ｴ?? */
  margin-top: 100px; /* 莨夂､ｾ讎りｦ√°繧峨?菴咏區 */
  margin-bottom: 100px; /* 豐ｿ髱ｩ縺ｸ縺ｮ菴咏區 */
  margin-left: calc(-60vw + 50%);
}
.visual-item {
  width: 100%;
  line-height: 0; /* 逕ｻ蜒丈ｸ九?隰弱?髫咎俣繧呈賜髯､ */
}
.visual-item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover; /* 豈皮紫繧剃ｿ昴■縺､縺､繧ｨ繝ｪ繧｢繧呈ｺ?縺溘☆ */
}
/* 繧ゅ＠2譫壹ｒ讓ｪ荳ｦ縺ｳ縺ｫ縺吶ｋ蝣ｴ蜷医?縺薙■繧峨ｒ驕ｩ逕ｨ縺励※縺上□縺輔＞ */
.profile-history-visual {
  flex-direction: row;
  gap: 81px;
  justify-content: center;
}
.visual-item {
  width: 50%;
}
.visual-item.image01 {
  width: 50%;
  max-width: 610px;
  max-height: 360px;
  margin-top: 225px;
}
.visual-item.image02 {
  width: 50%;
  max-width: 675px;
  max-height: 455px;
}
/* ==========================================================================
   スマートフォン用のレイアウト（画面幅767px以下で適用）
   ========================================================================== */
@media screen and (max-width: 767px) {
  .profile-history-visual {
    /* 親のコンテナを無視して画面幅いっぱいに広げるマジック */
    width: 100vw;
    margin-left: calc(-50vw + 50%);
    display: flex;
    flex-direction: row; /* 横並び */
    align-items: flex-end; /* 下揃え */
    justify-content: space-between; /* 両端（画面の本当の端）にピタッと寄せる */
    gap: 0;
    margin-top: 50px; /* 上下の余白（お好みで調整してください） */
    margin-bottom: 50px;
  }
  /* スマホでの各画像アイテムの共通設定 */
  .visual-item {
    line-height: 0;
  }
  .visual-item img {
    width: 100%;
    height: auto;
    display: block;
  }
  /* Figmaの375pxデザインに基づくサイズ指定 */
  .visual-item.image01 {
    width: 44%; /* 165px / 375px ≒ 44% */
    max-width: 165px;
    margin-top: 0; /* PC用の余白をリセット */
    max-height: none;
  }
  .visual-item.image02 {
    width: 52.2%; /* 196px / 375px ≒ 52.2% */
    max-width: 196px;
    max-height: none;
    margin-bottom: 48px;
  }
}
/* ==========================================================================
   豐ｿ髱ｩ (History) 蟆ら畑CSS?育ｸｦ邱壹→繝峨ャ繝医ｒ螳溯｣?ｼ?
   ========================================================================== */
.history-list {
  margin-top: 60px; /* 隕句?縺励→縺ｮ髢馴囈繧定ｪｿ謨ｴ */
  list-style: none; /* 繝?ヵ繧ｩ繝ｫ繝医?繝ｪ繧ｹ繝井ｸｸ繧貞炎髯､ */
  padding: 0;
  position: relative; /* 謫ｬ莨ｼ隕∫ｴ ?医ラ繝?ヨ縲∫ｸｦ邱夲ｼ峨?驟咲ｽｮ蝓ｺ貅? */
}
.history-item {
  display: flex;
  padding: 30px 0; /* 荳贋ｸ倶ｽ咏區 */
  position: relative;
  /* 譛?蠕後?繧｢繧､繝?Β縺ｮ邱壼?逅??縺溘ａ縲√い繧､繝?Β蜊倅ｽ阪〒邵ｦ邱壹ｒ蠑輔￥謇区ｳ輔ｒ縺ｨ繧翫∪縺? */
}
/* --------------------------------------------------
   髱偵＞繝峨ャ繝医→邵ｦ邱壹?螳溯｣?ｼ域闘莨ｼ隕∫ｴ ??
   -------------------------------------------------- */
/* --------------------------------------------------
   繧ｳ繝ｳ繝?Φ繝?ｼ亥ｹｴ繝ｻ蜃ｺ譚･莠具ｼ峨?蟷?ｪｿ謨ｴ
   -------------------------------------------------- */
.history-item dt {
  /* 蟷ｴ縺ｮ繝?く繧ｹ繝医お繝ｪ繧｢縺ｮ蟷?ｼ壹ラ繝?ヨ縺ｮ謇句燕縺ｾ縺ｧ */
  width: 150px;
  color: #191e2e;
  font-feature-settings: "palt"on;
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 200%; /* 40px */
  letter-spacing: 0.6px;
  width: 142px;
  white-space: nowrap;
}
.history-item dd {
  flex-grow: 1;
  /* 蜃ｺ譚･莠九?繝?く繧ｹ繝医お繝ｪ繧｢縺ｮ蟾ｦ菴咏區?壹ラ繝?ヨ縺九ｉ邯ｺ鮗励↓髮｢縺? */
  padding-left: 70px;
  margin: 0;
  font-size: 15px;
  line-height: 1.6;
  color: #191e2e;
  font-feature-settings: "palt"on;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 200%; /* 36px */
  letter-spacing: 0.54px;
}
/* --- 豐ｿ髱ｩ繧ｿ繧､繝 繝ｩ繧､繝ｳ縺ｮ繝?じ繧､繝ｳ --- */
.history-list {
  position: relative;
  margin-top: 50px;
}
@media (max-width: 768px) {
  .history-list {
    margin-top: 40px;
  }
}
/* 邵ｦ邱壹ｒ1譛ｬ騾壹☆ */
.history-list::before {
  content: "";
  position: absolute;
  left: 164px; /* 蟷ｴ縺ｮ繝?く繧ｹ繝医→蜀?ｮｹ縺ｮ髢薙↓驟咲ｽｮ */
  top: 40px;
  bottom: 25px; /* 譛?蠕後?繝峨ャ繝医〒豁｢繧√ｋ縺溘ａ隱ｿ謨ｴ */
  width: 1px;
  background-color: #d1d8e2;
  z-index: 1;
  height: calc(100% - 80px);
}
.history-item {
  display: flex;
  align-items: flex-start;
  padding: 18px 0; /* 陦碁俣繧堤判蜒上↓霑代▼縺代ｋ */
  position: relative;
  border-bottom: 1px solid #bebebe;
}
.history-list .history-item:first-child {
  border-top: 1px solid #bebebe;
}
/* 蟾ｦ蛛ｴ縺ｮ縲悟ｹｴ縲埼Κ蛻? */
.history-date {
  width: 120px;
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 700;
  color: #191e2e;
  margin: 0;
}
/* 髱偵＞繝峨ャ繝? */
.history-item::after {
  content: "";
  position: absolute;
  left: 165px; /* 邵ｦ邱壹?菴咲ｽｮ縺ｫ驥阪?繧? */
  top: 34px; /* 繝?く繧ｹ繝医?1陦檎岼縺ｮ鬮倥＆縺ｫ蜷医ｏ縺帙ｋ */
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  background-color: var(--color-navy);
  border-radius: 50%;
  z-index: 2;
  width: 12px;
  height: 12px;
  aspect-ratio: 1/1;
}
.history-content {
  flex-grow: 1;
  padding-left: 50px;
  font-size: 14px;
  line-height: 1.8;
  color: #191e2e;
  margin: 0;
}
@media (max-width: 768px) {
  .history-list .history-item:first-child {
    border-top: none;
    /* 上側1pxだけにグレーの背景色（線）を敷く */
    background-image: linear-gradient(#bebebe, #bebebe);
    background-repeat: no-repeat;
    /* 下線と同じように、左から22px空けた位置の一番上（top）に配置 */
    background-position: 22px top;
    /* 横幅は全体(100%)から22pxを引いた長さ、縦幅は1px */
    background-size: calc(100% - 22px) 1px;
  }
  .history-list::before {
    left: 5px;
    top: 30px;
    /*height: calc(100% - 60px); */
    height: calc(100% - 108px);
    background-color: var(--color-navy);
    top: 39px;
  }
  .history-item {
    display: block;
    padding: 24px 0 24px 22px;
    position: relative;
    border-bottom: none;
  }
  .history-item::before {
    content: "";
    position: absolute;
    bottom: 0; /* 一番下に配置（これで文字とくっつかない） */
    left: 22px; /* 左側の丸のエリア（22px）を避ける */
    right: 0; /* 右端ぴったりまで伸ばす */
    border-bottom: 1px solid #bebebe; /* グレーの線 */
  }
  .history-list .history-item::after {
    left: 6px;
    top: 37px;
    width: 12px;
    height: 12px;
    aspect-ratio: 1/1;
  }
  /* 縲悟ｹｴ縲埼Κ蛻??隱ｿ謨ｴ */
  .history-item dt, .history-date {
    width: 100% !important; /* 讓ｪ蟷?＞縺｣縺ｱ縺?↓蠎?£繧? */
    margin-bottom: 12px; /* 縲悟?譚･莠九?阪→縺ｮ髢薙?菴咏區 */
    color: #191E2E;
    font-feature-settings: 'palt'on;
    font-family: "Noto Sans JP";
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 200%; /* 36px */
    letter-spacing: 0.54px;
    margin-bottom: 0;
  }
  /* 縲悟?譚･莠九?埼Κ蛻??隱ｿ謨ｴ */
  .history-item dd, .history-content {
    padding-left: 0 !important; /* PC逕ｨ縺ｮ蟾ｦ菴咏區??50px縲?70px?峨ｒ繝ｪ繧ｻ繝?ヨ */
    font-size: 16px; /* 隱ｭ縺ｿ繧?☆縺?枚蟄励し繧､繧ｺ縺ｫ蠕ｮ隱ｿ謨ｴ */
    line-height: 1.6;
  }
}
.access-wrapper {
  position: relative;
  padding: 120px 0 120px;
  z-index: 1;
}
@media (max-width: 768px) {
  .access-wrapper {
    position: relative;
    padding: 80px 0 80px;
    z-index: 1;
  }
}
.access-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-33%);
  width: 120vw;
  height: 100%;
  background-color: #f3f6fa; /* 阮?＞髱? */
  z-index: -1;
}
.access-content {
  flex-grow: 1;
}
/* 菴乗園縺ｨ蜀咏悄縺ｮ繝ｬ繧､繧｢繧ｦ繝? */
.access-grid {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  /*gap: 40px;*/
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .access-grid {
    flex-direction: column;
    margin-bottom: 24px;
    margin-top: 40px;
  }
}
.access-info {
  /* width: 40%;*/
}
@media (max-width: 768px) {
  .access-info {
    width: 100%;
  }
}
.access-address {
  margin: 0;
  color: #191e2e;
  font-feature-settings: "palt"on;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 200%; /* 36px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .access-address {
    color: #191E2E;
    font-feature-settings: 'palt'on;
    font-family: "Noto Sans JP";
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 200%; /* 36px */
    letter-spacing: 0.54px;
  }
}
.access-photo {
  /*  width: 60%;*/
  width: 530px;
  height: 310px;
}
@media (max-width: 768px) {
  .access-photo {
    width: 100%;
  }
}
.access-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.access-map-area {
  width: 100%;
  margin-top: 20px;
  transition: filter 0.3s ease;
}
.access-map-area iframe {
  display: block;
  border-radius: 4px;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .access-map-area iframe {
    height: 250px;
  }
}
/* ==========================================================================
   髢｢騾｣莨夂､ｾ諠? ｱ (Affiliated Companies)
   ========================================================================== */
.affiliates-section {
  padding: 100px 0;
  background-color: #ffffff;
}
@media (max-width: 768px) {
  .affiliates-section {
    padding: 80px 0;
  }
}
/* 繧ｳ繝ｳ繝?Φ繝??菴薙ｒ繧ｵ繧､繝峨ヰ繝ｼ蛻?承縺ｫ蟇?○繧玖ｨｭ螳夲ｼ亥燕蝗槭∪縺ｧ縺ｮ邯呎価?? */
/* .profile-history-content 蜀?↓縺ゅｋ蝣ｴ蜷医?荳崎ｦ√〒縺吶′縲∫峡遶九＆縺帙ｋ蝣ｴ蜷医?莉･荳九ｒ菴ｿ逕ｨ */
.affiliates-list {
  margin-top: 60px;
}
@media (max-width: 768px) {
  .affiliates-list {
    margin-top: 40px;
  }
}
.affiliates-item {
  padding: 50px 0 50px;
  border-bottom: 1px solid #003894; /* 蛹ｺ蛻?ｊ邱? */
}
@media (max-width: 768px) {
  .affiliates-item {
    padding: 30px 0;
  }
}
.affiliates-item:first-child {
  padding-top: 0;
}
.affiliates-item:last-child {
  border-bottom: none;
}
/* 繝槭ャ繝励′縺ゅｋ蝣ｴ蜷医?讓ｪ荳ｦ縺ｳ險ｭ螳? */
.affiliates-item.has-map {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 50px;
}
@media (max-width: 768px) {
  .affiliates-item.has-map {
    flex-wrap: wrap;
    gap: 20px;
  }
}
.affiliates-item__info {
  flex: 1;
}
.affiliates-item__name {
  color: var(--color-navy);
  font-family: "Montserrat", sans-serif;
  font-size: 25px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 37.5px */
  letter-spacing: 0.75px;
  text-transform: lowercase;
  margin-bottom: 25px;
}
@media (max-width: 768px) {
  .affiliates-item__name {
    color: #003894;
    font-size: 20px;
    letter-spacing: 0.6px;
    margin-bottom: 15px;
  }
}
/* 繧ｰ繝ｫ繝ｼ繝嶺ｺ区･ｭ蜀?ｮｹ縺ｮ繧ｹ繧ｿ繧､繝ｫ */
.affiliates-item__group .group-label {
  margin-bottom: 10px;
  color: #191e2e;
  font-family: "Montserrat", sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 27px */
  letter-spacing: 0.54px;
  text-transform: lowercase;
}
@media (max-width: 768px) {
  .affiliates-item__group .group-label {
    font-feature-settings: 'palt'on;
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 24px */
    letter-spacing: 0.48px;
  }
}
.affiliates-item__group .group-text {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 32.4px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .affiliates-item__group .group-text {
    font-family: "Noto Sans JP";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 160%; /* 25.6px */
    letter-spacing: 0.48px;
  }
}
/* 隧ｳ邏ｰ諠? ｱ縺ｮ繝??繝悶Ν */
.info-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 25px;
}
@media (max-width: 768px) {
  .info-table {
    margin-bottom: 0;
  }
  .info-table tr {
    display: flex;
    flex-direction: column;
    gap: 5px;
  }
}
.info-table th {
  width: 160px;
  text-align: left;
  color: #191e2e;
  vertical-align: top;
  font-feature-settings: "palt"on;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 27px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .info-table th {
    color: #191E2E;
    font-size: 16px;
    letter-spacing: 0.48px;
  }
}
.info-table td {
  color: #191e2e;
  padding-bottom: 15px;
  font-feature-settings: "palt"on;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 150%; /* 27px */
  letter-spacing: 0.54px;
}
@media (max-width: 768px) {
  .info-table td {
    font-size: 16px;
    letter-spacing: 0.48px;
    margin-bottom: 20px;
  }
}
/* 隧ｳ縺励￥隕九ｋ 繝ｪ繝ｳ繧ｯ */
.link-more {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: opacity 0.3s;
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
}
.link-more:after {
  width: 19px;
  height: 19px;
  content: "";
  display: inline-block;
  background-image: url(../image/company/link.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 10px;
}
.link-more:hover {
  opacity: 0.7;
}
/* 繝槭ャ繝礼判蜒上お繝ｪ繧｢ */
.affiliates-item__map {
  width: 325px;
  height: 250px;
  flex-shrink: 0;
}
.affiliates-item__map img {
  width: 100%;
  height: auto;
  border: 1px solid #eee; /* 蝨ｰ蝗ｳ縺ｮ蠅?阜繧呈?遒ｺ縺ｫ縺吶ｋ */
}
.affiliates-item__map iframe {
  width: 100%;
  height: 100%;
  border-radius: 4px;
}
.approach-wrapper::before, .profile-history-wrapper::before, .access-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 140vw;
  height: 100%;
  background-color: var(--bg-blue);
  z-index: -1;
}
@media screen and (max-width: 767px) {
  .approach-wrapper::before, .profile-history-wrapper::before, .access-wrapper::before {
    left: 50%;
    transform: translateX(-50%);
    width: 100vw; /* 140vwから100vwに変更 */
    margin-left: 0;
    margin-right: 0;
  }
}
/* ========================================================================== */
/* 繝励Λ繧､繝舌す繝ｼ繝昴Μ繧ｷ繝ｼ繝壹?繧ｸ蜈ｨ菴? */
/* ========================================================================== */
.ppwrap {
  padding-bottom: 120px;
  color: #191e2e;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 200%; /* 32px */
  letter-spacing: 0.48px;
  /* width: 920px;*/
  margin: 0 auto;
  width: clamp(331px, 88.26vw, 920px);
}
@media screen and (max-width: 768px) {
  .ppwrap {
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 170%; /* 23.8px */
    letter-spacing: 0.42px;
    padding-bottom: 80px;
  }
}
.ppwrap h2 {
  color: #191e2e;
  font-size: 24px;
  font-style: normal;
  font-weight: 600;
  line-height: 160%; /* 38.4px */
  letter-spacing: 0.72px;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .ppwrap h2 {
    font-size: 16px;
    line-height: 160%; /* 25.6px */
    letter-spacing: 0.48px;
    margin-bottom: 10px;
  }
}
.ppwrap h3 {
  color: #191e2e;
  font-size: 20px;
  font-style: normal;
  font-weight: 600;
  line-height: 160%; /* 32px */
  letter-spacing: 0.6px;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .ppwrap h3 {
    font-size: 15px;
    line-height: 160%; /* 24px */
    letter-spacing: 0.45px;
    margin-bottom: 10px;
  }
}
.pppb80 {
  padding-bottom: 80px;
}
.pppb60 {
  padding-bottom: 60px;
}
.pppb40 {
  padding-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .pppb80 {
    padding-bottom: 50px;
  }
  .pppb60 {
    padding-bottom: 30px;
  }
  .pppb40 {
    padding-bottom: 30px;
  }
}
/* ========================================================================== */
/* 蜍慕判縺ｧ隕ｳ繧区擲莠? */
/* ========================================================================== */
.movie-list {
  border-radius: 30px 30px 0 0;
  background: #f3f6fa;
  padding-top: 150px;
}
@media screen and (max-width: 768px) {
  .movie-list {
    padding: 60px 22px 80px;
    margin-bottom: 90px;
  }
  .movie-list.movielast {
    margin-bottom: 0;
  }
}
.movie-list.white {
  background-color: #fff;
}
@media screen and (max-width: 768px) {
  .movie-list.white {
    background-color: #F3F6FA;
  }
}
.movie-list.mtup {
  margin-top: -30px;
}
.moviet-firsttxt {
  color: var(--color-black);
  text-align: center;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 210%; /* 37.8px */
  letter-spacing: 0.54px;
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .moviet-firsttxt {
    color: #191E2E;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 180%; /* 32.4px */
    letter-spacing: 0.54px;
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto 50px;
  }
}
/* --- 繧ｳ繝ｳ繝?Φ繝?お繝ｪ繧｢蜈ｨ菴薙?隱ｿ謨ｴ --- */
.video-content-area {
  padding-bottom: 180px;
}
@media screen and (max-width: 768px) {
  .video-content-area {
    padding-bottom: 0;
  }
}
/* --- 隕句?縺暦ｼ?30px繝ｩ繧､繝ｳ + 繝阪う繝薙??? --- */
.video-section-header {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .video-section-header {
    gap: 10px;
    margin-bottom: 40px;
  }
}
.header-line {
  width: 50px;
  height: 1px;
  background-color: #003894;
}
@media screen and (max-width: 768px) {
  .header-line {
    width: 30px;
    height: 1px;
  }
}
.header-title {
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
}
@media screen and (max-width: 768px) {
  .header-title {
    color: #003894;
    font-size: 24px;
    letter-spacing: 0.72px;
    text-transform: lowercase;
  }
}
/* --- 3蛻励げ繝ｪ繝?ラ --- */
.video-list-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 39px;
}
@media screen and (max-width: 768px) {
  .video-list-grid {
    grid-template-columns: repeat(1, 1fr);
    gap: 40px;
  }
}
.video-list-grid .video-card {
  cursor: pointer;
  width: 100%;
  margin: 0;
}
.video-list-grid .video-thumb {
  position: relative;
  width: 100%;
  padding: 42px 0;
  background-color: #191E2E;
  overflow: hidden;
  margin-bottom: 15px;
  border-radius: 0;
}
@media screen and (max-width: 768px) {
  .video-thumb {
    padding: 38px 0;
  }
}
.video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.3s ease;
  aspect-ratio: 16 / 9;
}
.video-card:hover .video-thumb img {
  opacity: 0.8;
}
/* YouTube蜀咲函繝懊ち繝ｳ縺ｮ驟咲ｽｮ */
.play-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50px; /* 繧ｵ繧､繧ｺ縺ｯ驕ｩ螳懆ｪｿ謨ｴ */
  z-index: 2;
  transition: transform 0.2s ease;
}
.video-card:hover .play-icon {
  transform: translate(-50%, -50%) scale(1.1);
}
.video-card-title {
  color: #191e2e;
  font-size: 15px;
  font-weight: 500;
  line-height: 150%; /* 22.5px */
  letter-spacing: 0.45px;
}
/* --- 繝｢繝ｼ繝?繝ｫ?医?繝??繧｢繝???? --- */
.video-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
}
.video-modal.is-active {
  display: flex;
}
.video-modal-overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
}
.video-modal-content {
  position: relative;
  width: 90%;
  max-width: 900px;
  z-index: 10;
}
.video-modal-close {
  position: absolute;
  top: -50px;
  right: 0;
  font-size: 50px;
  color: #fff;
  cursor: pointer;
  line-height: 1;
}
.video-iframe-wrapper {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9豈皮紫 */
}
.video-iframe-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* ========================================================================== */
/* 莠区･ｭ蜀?ｮｹ */
/* ========================================================================== */
.business-up__inner {
  padding-bottom: 84px;
}
@media screen and (max-width: 768px) {
  .business-up__inner {
    padding-bottom: 50px;
  }
  .business_container.spmb {
    padding-bottom: 80px;
  }
}
.business-up__inner h2 {
  color: #191e2e;
  text-align: center;
  font-size: 42px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 63px */
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .business-up__inner h2 {
    font-size: 24px;
    font-style: normal;
    margin: 0 auto;
    margin-bottom: 30px;
    width: clamp(331px, 88.26vw, 1160px);
    font-feature-settings: "palt";
  }
}
.business-up__inner p {
  color: #191e2e;
  text-align: center;
  font-size: 18px;
  font-style: normal;
  font-weight: 600;
  line-height: 210%; /* 37.8px */
  letter-spacing: 0.54px;
}
@media screen and (max-width: 768px) {
  .business-up__inner p {
    font-size: 16px;
    letter-spacing: 0.48px;
    text-align: left;
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto;
  }
}
.business_container {
  padding-top: 150px;
  padding-bottom: 180px;
  border-radius: 30px 30px 0 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .business_container {
    padding: 80px 22px 110px;
  }
}
.business_container.blue {
  background: #f3f6fa;
}
.business_container.white {
  background: #ffffff;
}
.flex.business-flex {
  display: flex;
  justify-content: space-between;
}
.flex.business-flex {
  /* gap: 75px;*/
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .flex.business-flex {
    flex-wrap: wrap;
    flex-direction: column;
  }
}
.flex.business-flex > * {
  /* gap: 75px 縺ｮ莉｣繧上ｊ */
  margin-right: 75px;
}
.flex.business-flex > *:last-child {
  margin-right: 0;
}
/* 繝悶Λ繧ｦ繧ｶ縺携ap蟇ｾ蠢懊↑繧曳ap繧貞━蜈? */
@supports (gap: 75px) {
  .flex.business-flex {
    gap: 75px;
  }
  .flex.business-flex > * {
    margin-right: 0;
  }
}
@media screen and (max-width: 768px) {
  .flex.business-flex {
    gap: 30px;
  }
}
.flex.business-flex .txt {
  color: #191e2e;
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
  flex: 1;
}
@media screen and (max-width: 768px) {
  .flex.business-flex .txt {
    width: 100%;
    font-size: 16px;
  }
}
.flex.business-flex .txt .box {
  background-color: #fff;
}
.flex.business-flex .txt .box {
  padding-top: 34px;
  padding-bottom: 30px;
  margin-top: 30px;
}
.flex.business-flex .txt .box .title {
  color: #003894;
  font-size: 20px;
  font-weight: 700;
  line-height: 150%; /* 30px */
  letter-spacing: 0.6px;
  text-transform: lowercase;
  margin-bottom: 20px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .flex.business-flex .txt .box .title {
    font-size: 18px;
    font-style: normal;
    letter-spacing: 0.54px;
    text-transform: lowercase;
  }
}
.flex.business-flex .txt .box .list {
  margin: 0 auto;
  width: 280px;
}
.flex.business-flex .txt .box .list p {
  display: flex;
  gap: 15px;
  justify-content: space-between;
}
.business_image {
  width: 521px;
  height: 400px;
  flex: 1;
}
@media screen and (max-width: 768px) {
  .business_image {
    width: 100%;
    height: 250px;
    flex: 1;
  }
}
.business_container h2 {
  color: #191e2e;
  font-size: 38px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 57px */
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .business_container h2 {
    font-size: 22px;
    margin-bottom: 30px;
  }
}
.business_container h3 {
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
  margin-bottom: 25px;
  position: relative;
  padding-left: 80px;
}
@media screen and (max-width: 768px) {
  .business_container h3 {
    font-size: 20px;
    letter-spacing: 0.6px;
    text-transform: lowercase;
    padding-left: 40px;
  }
}
.business_container h3::before {
  content: "";
  width: 50px;
  height: 1px;
  background-color: var(--color-blue);
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .business_container h3::before {
    width: 30px;
    height: 1px;
  }
}
.business_container.mt {
  margin-top: -30px;
}
/* ==========================================================================
   蜈ｨ蟷? 辟｡髯舌Ν繝ｼ繝礼判蜒上せ繝ｩ繧､繝?繝ｼ CSS
   ========================================================================== */
/* --- 繧ｹ繝ｩ繧､繝?繝ｼ蜈ｨ菴薙?繧ｳ繝ｳ繝?リ (隕ｪ) --- */
.infinite-slider-container {
  /* 豎ｺ螳壽遠?夊ｦｪ隕∫ｴ (l-container遲?)繧堤┌隕悶＠縺ｦ逕ｻ髱｢蟷?＞縺｣縺ｱ縺?↓蠎?£繧九ワ繝?け */
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  /* 縺ｯ縺ｿ蜃ｺ縺励◆逕ｻ蜒上ｒ髫 縺? */
  overflow: hidden;
  /* 荳贋ｸ九?繝ｼ繧ｸ繝ｳ?亥ｿ?ｦ√↓蠢懊§縺ｦ隱ｿ謨ｴ縺励※縺上□縺輔＞?? */
  margin-top: 90px;
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .infinite-slider-container {
    margin-top: 20px;
  }
}
/* --- 蜍輔￥驛ｨ蛻??蝨溷床 (蟄?) --- */
.infinite-slider-inner {
  display: flex;
  /* 蟾ｦ蜿ｳ縺ｮ繝槭?繧ｸ繝ｳ15px繧偵?∫判蜒城俣縺ｮ髫咎俣(gap)縺ｨ縺励※螳溯｣? */
  gap: 15px;
  /* 荳ｭ霄ｫ縺ｮ蜷郁ｨ亥ｹ?↓蜷医ｏ縺帙※蟷?ｒ遒ｺ菫昴?よ釜繧願ｿ斐＆縺帙↑縺? */
  width: max-content;
  /* 繧｢繝九Γ繝ｼ繧ｷ繝ｧ繝ｳ?夂ｭ蛾??(linear)縺ｧ辟｡髯?(infinite)繝ｫ繝ｼ繝? */
  /* 騾溷ｺｦ(30s)縺ｯ驕ｩ螳懆ｪｿ謨ｴ縺励※縺上□縺輔＞ */
  animation: slide-loop 30s linear infinite;
}
/* --- 蜷?判蜒上い繧､繝?Β --- */
.infinite-slider-inner .slider-item {
  /* 縺疲欠螳壹?繧ｵ繧､繧ｺ繧呈ｭ｣遒ｺ縺ｫ蜿肴丐 */
  width: 355px !important;
  height: 240px;
  /* 逕ｻ髱｢蟷?′迢ｭ縺ｾ縺｣縺ｦ繧らｸｮ縺ｾ縺帙↑縺? */
  flex-shrink: 0;
}
/* --- 逕ｻ蜒剰?菴薙?險ｭ螳? --- */
.infinite-slider-inner .slider-item img {
  width: 100%;
  height: 100%;
  /* 豈皮紫繧剃ｿ昴■縺､縺､繧ｨ繝ｪ繧｢繧呈ｺ?縺溘☆(繝医Μ繝溘Φ繧ｰ)險ｭ螳? */
  object-fit: cover;
  display: block;
}
/* ==========================================================================
   辟｡髯舌Ν繝ｼ繝励?繧｢繝九Γ繝ｼ繧ｷ繝ｧ繝ｳ螳夂ｾｩ (@keyframes)
   蜴溽炊??1邨?岼(6譫?)縺ｮ蜈ｨ逕ｻ蜒丞ｹ?ｼ句?gap蛻?□縺大ｷｦ縺ｫ遘ｻ蜍輔＠縺溽椪髢薙↓菴咲ｽｮ繧?0縺ｫ謌ｻ縺吶??
   遘ｻ蜍戊ｷ晞屬縺ｮ險育ｮ暦ｼ?(逕ｻ蜒丞ｹ?355px + gap15px) * 6譫? = 2220px
   ========================================================================== */
@keyframes slide-loop {
  0% {
    transform: translateX(0);
  }
  100% {
    /* 險育ｮ励＠縺溘??1邨??縲阪?霍晞屬縺 縺大ｷｦ(雋 縺ｮ譁ｹ蜷?)縺ｸ遘ｻ蜍? */
    transform: translateX(-2220px);
  }
}
/* --- 辟｡髯舌Ν繝ｼ繝励せ繝ｩ繧､繝?繝ｼ縺ｮ菫ｮ豁｣萓? --- */
.infinite-slider-inner {
  display: flex;
  gap: 15px;
  width: max-content;
  /* Safari蟇ｾ遲?: 3D螟牙ｽ｢繧呈?遉ｺ縺励※GPU繧貞虚縺九☆ */
  will-change: transform;
  transform: translate3d(0, 0, 0);
  animation: slide-loop 30s linear infinite;
}
@keyframes slide-loop {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-2220px, 0, 0);
  } /* translateX縺九ｉ螟画峩 */
}
/* --- SDGs繝槭?繧ｭ繝ｼ繧ょ酔讒倥↓菫ｮ豁｣ --- */
.sdgs-marquee__inner {
  will-change: transform;
  animation: marquee-scroll 40s linear infinite;
}
@keyframes marquee-scroll {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-33.3333%, 0, 0);
  }
}
.products-facilities {
  width: 100%;
  background-image: url(../image/business/bottombackimage.png);
  position: relative;
  padding-bottom: 150px;
  background-size: cover;
  background-position: center;
}
@media screen and (max-width: 768px) {
  .products-facilities {
    padding-top: 20px;
    padding-bottom: 80px;
  }
}
.products-facilities::before {
  content: "";
  width: 100%;
  height: 100%;
  background-color: var(--color-blue);
  opacity: 0.8;
  position: absolute;
  top: 0;
  left: 0;
}
.responsive-title-xl {
  position: relative;
  width: 100%;
  /*max-width: 1369px;*/
  margin: 0 auto 36px;
}
.responsive-title-xl img {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .responsive-title-xl {
    margin-bottom: 24px;
  }
}
h2.products-facilities-h2 {
  color: #fff;
  font-size: 32px;
  font-style: normal;
  font-weight: 600;
  line-height: 160%; /* 51.2px */
  letter-spacing: 0.96px;
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  h2.products-facilities-h2 {
    margin-bottom: 40px;
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 160%; /* 38.4px */
    letter-spacing: 0.72px;
  }
}
@media screen and (max-width: 768px) {
  ul.products-facilities-list {
    flex-wrap: wrap;
    gap: 40px;
  }
}
/* 1. 逕ｻ蜒上?隕ｪ隕∫ｴ ?域棧?峨?險ｭ螳? */
ul.products-facilities-list li a div.img {
  width: 100%;
  max-height: 230px;
  flex-shrink: 0;
  margin-bottom: 18px;
  /* 縲宣㍾隕√?代?縺ｿ蜃ｺ縺溽判蜒上ｒ髫 縺? */
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  ul.products-facilities-list li a div.img {
    margin-bottom: 15px;
    max-height: 210px;
  }
}
/* 2. 荳ｭ縺ｮ逕ｻ蜒剰?菴薙?險ｭ螳? */
ul.products-facilities-list li a div.img img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 豈皮紫繧剃ｿ昴▲縺ｦ譫 繧呈ｺ?縺溘☆ */
  display: block;
  /* 縲宣㍾隕√?代い繝九Γ繝ｼ繧ｷ繝ｧ繝ｳ縺ｮ騾溷ｺｦ??0.5遘偵°縺代※螟牙喧?? */
  transition: transform 0.5s ease;
}
/* 3. li繧檀over縺励◆譎ゅ?蜍穂ｽ? */
ul.products-facilities-list li:hover a div.img img {
  /* 縲宣㍾隕√??1.1蛟阪↓諡｡螟ｧ?域焚蛟､縺ｯ縺雁･ｽ縺ｿ縺ｧ隱ｿ謨ｴ縺励※縺上□縺輔＞?? */
  transform: scale(1.08);
}
ul.products-facilities-list li {
  max-width: 360px;
}
.txtarea {
  color: #fff;
  font-family: "Noto Sans JP";
  font-size: 22px;
  font-style: normal;
  font-weight: 700;
  line-height: 160%; /* 35.2px */
  letter-spacing: 0.66px;
}
ul.products-facilities-list li .line {
  position: absolute;
  width: 1px;
  height: 23px;
  background-color: #fff;
  right: 41px;
  bottom: 6px;
}
ul.products-facilities-list li .arrow {
  width: 21px;
  height: 18px;
  right: 5px;
  bottom: 8px;
  position: absolute;
  background-image: url(../image/business/arrow.svg);
  transition: right 0.5s ease;
}
ul.products-facilities-list li:hover .arrow {
  right: 0;
}
.products-btn-list ul {
  width: 836px;
  margin: 0 auto;
  padding-bottom: 81px;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul {
    width: clamp(331px, 88.26vw, 1160px);
    flex-direction: column;
    padding-bottom: 50px;
  }
}
.products-btn-list ul li a {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-direction: column;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li {
    width: 100%;
  }
  .products-btn-list ul li a {
    display: block;
    height: auto;
    padding-bottom: 18px;
    padding-top: 18px;
  }
  .products-btn-list ul li:first-child a {
    padding-top: 0;
  }
}
.products-btn-list ul li a .title {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 24px */
  letter-spacing: 0.48px;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li a .title {
    display: inline-block;
    font-size: 13px;
  }
}
.products-btn-list ul li:nth-child(1) a .title {
  color: #148582;
}
.products-btn-list ul li:nth-child(3) a .title {
  color: #af8d00;
}
.products-btn-list ul li:nth-child(5) a .title {
  color: #c53d4b;
}
.products-btn-list ul li a .number {
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: uppercase;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li a .number {
    font-size: 20px;
    letter-spacing: 0.6px;
    margin-left: 5px;
  }
}
.products-btn-list ul li:nth-child(1) a .number {
  color: #148582;
}
.products-btn-list ul li:nth-child(3) a .number {
  color: #af8d00;
}
.products-btn-list ul li:nth-child(5) a .number {
  color: #c53d4b;
}
.products-btn-list ul li a .name {
  color: #191e2e;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 30px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 45px */
  letter-spacing: 0.9px;
  text-transform: lowercase;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li a .name {
    display: block;
    text-align: left;
    font-size: 16px;
    letter-spacing: 0.48px;
    margin-top: 6px;
  }
}
.products-btn-list ul li.line {
  width: 1px;
  height: 99px;
  background: #bebebe;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li.line {
    width: 100%;
    height: 1px;
  }
}
.products-btn-list ul li.arrowmark:nth-child(1) a .arrow {
  height: 12px;
  width: 19.637px;
  background-image: url(../image/productfacility/arrow1.svg);
  position: absolute;
  top: 140px;
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  transition: top 0.5s ease;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li.arrowmark:nth-child(1) a .arrow {
    left: auto;
    right: 0;
    top: 43px;
    width: 11px;
    height: 7px;
  }
}
.products-btn-list ul li.arrowmark:nth-child(3) a .arrow {
  height: 12px;
  width: 19.637px;
  background-image: url(../image/productfacility/arrow2.svg);
  position: absolute;
  top: 140px;
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  transition: top 0.5s ease;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li.arrowmark:nth-child(3) a .arrow {
    left: auto;
    right: 0;
    top: 43px;
    width: 11px;
    height: 7px;
  }
}
.products-btn-list ul li.arrowmark:nth-child(5) a .arrow {
  height: 12px;
  width: 19.637px;
  background-image: url(../image/productfacility/arrow3.svg);
  position: absolute;
  top: 140px;
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
  transition: top 0.5s ease;
}
@media screen and (max-width: 768px) {
  .products-btn-list ul li.arrowmark:nth-child(5) a .arrow {
    left: auto;
    right: 0;
    top: 25px;
    width: 11px;
    height: 7px;
  }
}
.products-btn-list ul li:hover.arrowmark:nth-child(1) a .arrow {
  top: 145px;
}
.products-btn-list ul li:hover.arrowmark:nth-child(3) a .arrow {
  top: 145px;
}
.products-btn-list ul li:hover.arrowmark:nth-child(5) a .arrow {
  top: 145px;
}
.products-btn-list ul li:hover:nth-child(1) a .name {
  color: #148582;
}
.products-btn-list ul li:hover:nth-child(3) a .name {
  color: #af8d00;
}
.products-btn-list ul li:hover:nth-child(5) a .name {
  color: #c53d4b;
}
.productnumber {
  margin-bottom: 40px;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 21px */
  letter-spacing: 0.42px;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .productnumber {
    margin-bottom: 20px;
  }
}
.productnumber span {
  color: #fff;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 22.5px */
  letter-spacing: 0.45px;
  text-transform: uppercase;
  /*padding: 0 9px;*/
  /* border-radius: 11.5px;*/
  margin-left: 10px;
  padding: 0 9px;
  border-radius: 100vh;
}
@media screen and (max-width: 768px) {
  .productnumber span {
    padding: 6px 8px;
    border-radius: 100vh;
  }
}
.productnumber.green {
  color: #148582;
}
.productnumber.green span {
  background-color: #148582;
}
.productnumber.gold {
  color: #af8d00;
}
.productnumber.gold span {
  background-color: #af8d00;
}
.productnumber.red {
  color: #c53d4b;
}
.productnumber.red span {
  background-color: #c53d4b;
}
.producttitle {
  align-items: flex-start;
  gap: 100px;
  justify-content: flex-start;
}
@media screen and (max-width: 768px) {
  .producttitle {
    flex-direction: column;
    gap: 20px;
  }
}
.producttitle p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 32.4px */
  letter-spacing: 0.54px;
  padding-top: 4px;
}
@media screen and (max-width: 768px) {
  .producttitle p {
    font-size: 16px;
    letter-spacing: 0.48px;
    padding-top: 0;
  }
}
.producttitle h2 {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 40px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 60px */
  display: flex;
  flex-direction: column;
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .producttitle h2 {
    font-size: 27px;
  }
}
.producttitle h2 span {
  display: block;
  color: #148582;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 21px */
  letter-spacing: 0.42px;
  text-transform: capitalize;
  position: relative;
  padding-left: 38px;
  margin-top: 5px;
}
@media screen and (max-width: 768px) {
  .producttitle h2 span {
    font-size: 14px;
  }
}
.producttitle h2 span::before {
  content: "";
  background-color: #148582;
  position: absolute;
  width: 30px;
  height: 2px;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}
.producttitle.gold h2 span {
  color: #af8d00;
}
.producttitle.gold h2 span::before {
  background-color: #af8d00;
}
.producttitle.red h2 span {
  color: #c53d4b;
}
.producttitle.red h2 span::before {
  background-color: #c53d4b;
}
.producttitle {
  margin-bottom: 60px;
}
@media screen and (max-width: 768px) {
  .producttitle {
    margin-bottom: 30px;
  }
}
.brand-box-wrap .brand-box {
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .brand-box-wrap .brand-box {
    flex-direction: column;
    padding: 40px 30px;
    gap: 30px;
  }
}
.brand-box-wrap .brand-box:last-of-type {
  margin-bottom: 0;
}
.brand-box {
  background-color: #fff;
  padding: 60px;
  gap: 60px;
}
.business_container.white .brand-box {
  background: #f3f6fa;
}
.brand-left {
  flex: 1;
}
.brand-left h3 {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 28px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 42px */
  letter-spacing: 0.84px;
  text-transform: lowercase;
  padding-bottom: 20px;
  margin-bottom: 30px;
  position: relative;
  padding-left: 0;
}
@media screen and (max-width: 768px) {
  .brand-left h3 {
    font-size: 22px;
    letter-spacing: 0.66px;
  }
}
.brand-left h3:before {
  display: none;
}
.brand-left h3:after {
  width: 30px;
  height: 2px;
  content: "";
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
}
.brand-left h3.green:after {
  background: #148582;
}
.brand-left h3.gold:after {
  background: #af8d00;
}
.brand-slide {
  width: 470px;
  height: 320px;
  flex: 1;
}
@media screen and (max-width: 768px) {
  .brand-slide {
    width: 100%;
    height: 320px;
    flex: 1;
    order: 2;
  }
}
.brand-left p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
}
@media screen and (max-width: 768px) {
  .brand-left p {
    font-size: 15px;
    font-style: normal;
    font-weight: 500;
    line-height: 160%; /* 24px */
    letter-spacing: 0.45px;
  }
}
/* --- 繧ｹ繝ｩ繧､繝?繝ｼ螟門?縺ｮ譫  (470px繧呈ｭｻ螳?) --- */
.product-slider-wrap {
  width: 470px;
  max-width: 100%; /* 隕ｪ隕∫ｴ 繧医ｊ螟ｧ縺阪￥縺ｪ繧峨↑縺? */
  height: 320px; /* 隱ｭ縺ｿ霎ｼ縺ｿ蜑阪?邵ｦ荳ｦ縺ｳ髦ｲ豁｢ */
  position: relative;
  margin-bottom: 50px;
  flex-shrink: 0; /* Flexbox蜀?〒邵ｮ縺ｾ縺ｪ縺?ｈ縺?↓縺吶ｋ */
  min-width: 0; /* slick縺ｮ險育ｮ励ヰ繧ｰ髦ｲ豁｢ */
  overflow: visible;
}
@media screen and (max-width: 768px) {
  .product-slider-wrap {
    width: 100%;
    height: auto;
    margin-bottom: 0;
  }
}
/* 隱ｭ縺ｿ霎ｼ縺ｿ螳御ｺ?燕縺ｯ1譫夂岼莉･螟悶ｒ髫 縺? (繧ｬ繧ｿ縺､縺埼亟豁｢) */
.product-slider-wrap.is-loading {
  overflow: hidden;
}
.product-slider-wrap.is-loading .slider-item:not(:first-child) {
  display: none;
}
/* --- 繧ｹ繝ｩ繧､繝峨い繧､繝?Β (繧ｵ繧､繧ｺ繧貞ｼｷ蛻ｶ蝗ｺ螳?) --- */
.slider-item {
  width: 470px !important;
  height: 320px;
  outline: none;
}
@media screen and (max-width: 768px) {
  .slider-item {
    width: 260px !important;
    height: 170px;
    outline: none;
  }
}
.slider-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* --- 遏｢蜊ｰ縺ｮ驟咲ｽｮ (逕ｻ蜒上?蜀??縺ｫ蜈･繧後※縲後?縺ｿ蜃ｺ縺励?阪ｒ迚ｩ逅?噪縺ｫ豸医☆) --- */
.product-slider .slick-prev, .product-slider .slick-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  background-color: #003894;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  font-size: 0;
}
@media screen and (max-width: 768px) {
  .product-slider .slick-prev, .product-slider .slick-next {
    width: 30px;
    height: 30px;
    aspect-ratio: 1/1;
  }
}
.product-slider .slick-prev {
  left: -22px;
}
.product-slider .slick-next {
  right: -22px;
}
/* 遏｢蜊ｰ繧｢繧､繧ｳ繝ｳ(逋ｽ) */
.product-slider .slick-prev::before, .product-slider .slick-next::before {
  content: "";
  display: block;
  width: 16px;
  height: 14px;
  position: absolute;
  top: 50%;
  left: 50%;
  /* 莉･荳九?1陦後ｒ霑ｽ蜉 ?夊?霄ｫ縺ｮ繧ｵ繧､繧ｺ縺ｮ蜊雁?縺 縺第綾縺励※荳ｭ螟ｮ縺ｫ驟咲ｽｮ */
  transform: translate(-50%, -50%);
  background-image: url(../image/productfacility/arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 1;
}
.product-slider .slick-prev::before {
  transform: translate(-50%, -50%) rotate(180deg);
}
/* --- 繝峨ャ繝? --- */
.product-slider .slick-dots {
  position: absolute;
  bottom: -40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex !important;
  list-style: none;
  padding: 0;
}
.product-slider .slick-dots li {
  margin: 0 5px;
}
.product-slider .slick-dots li button {
  font-size: 0;
  width: 10px;
  height: 10px;
  background: #d1d1d1;
  border-radius: 50%;
  border: none;
  cursor: pointer;
}
.product-slider .slick-dots li.slick-active button {
  background: #00307d;
}
.setsubi-box {
  background-color: #fff;
  padding: 60px;
}
.setsubi-box .flex {
  gap: 60px;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex {
    flex-direction: column;
    gap: 50px;
  }
}
.setsubi-box .flex div.setsubi-contents {
  width: 490px;
  cursor: pointer;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents {
    width: 100%;
    cursor: pointer;
  }
}
.setsubi-box .flex div.setsubi-contents .img {
  width: 490px;
  height: 320px;
  overflow: hidden;
  margin-bottom: 30px;
}
.setsubi-box .flex div.setsubi-contents .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents .img {
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin-bottom: 20px;
  }
  .setsubi-box .flex div.setsubi-contents .img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
.setsubi-box .flex div.setsubi-contents .img img {
  transition: transform 0.3s ease-in-out;
}
.setsubi-box .flex div.setsubi-contents .txtarea {
  padding-left: 80px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents .txtarea {
    padding-left: 39px;
    position: relative;
  }
}
.setsubi-box .flex div.setsubi-contents .txtarea:before {
  width: 2px;
  height: 210px;
  content: "";
  display: inline-block;
  background: #c53d4b;
  position: absolute;
  bottom: 0;
  left: 40px;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents .txtarea:before {
    left: 9px;
  }
  .setsubi-box .flex div.setsubi-contents:nth-child(2) .txtarea:before {
    left: 9px;
    height: 120%;
  }
}
.setsubi-box .flex div.setsubi-contents .txtarea h3 {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
  padding: 0;
  margin-bottom: 11px;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents .txtarea h3 {
    font-size: 25px;
  }
}
.setsubi-box .flex div.setsubi-contents .txtarea h3:before {
  display: none;
}
.setsubi-box .flex div.setsubi-contents .txtarea p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 36px */
  letter-spacing: 0.6px;
  margin-bottom: 26px;
}
@media screen and (max-width: 768px) {
  .setsubi-box .flex div.setsubi-contents .txtarea p {
    font-size: 18px;
    line-height: 160%; /* 28.8px */
    letter-spacing: 0.54px;
    margin-bottom: 20px;
  }
}
.setsubi-btn {
  color: #003894;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 600;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
}
.setsubi-btn:after {
  content: "";
  display: inline-block;
  width: 40px;
  height: 40px;
  background-color: #003894;
  border-radius: 50%;
  background-image: url(../image/productfacility/arrow.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 14px; /* 騾壼ｸｸ譎? */
  transition: background-color 0.3s, transform 0.3s, background-size 0.3s;
  vertical-align: middle;
  margin-left: 8px;
}
/* 繝槭え繧ｹ繧ｪ繝ｳ譎ゅ?謾ｹ菫ｮ */
.setsubi-btn:hover:after {
  /* 蜀?ｒ0.95蛟阪↓邵ｮ蟆? */
  transform: scale(0.95);
  /* 遏｢蜊ｰ縺ｮ繧ｵ繧､繧ｺ繧堤ｶｭ謖√☆繧九◆繧√?險育ｮ?:
     蟷?: 16px / 0.95 竕? 16.8px
     鬮倥＆: 14px / 0.95 竕? 14.7px
  */
  background-size: 16.8px 14.7px;
}
/* 笘??繝舌?譎ゑｼ医?繧ｦ繧ｹ繧ｪ繝ｳ譎ゑｼ峨?蜍輔″ */
/* 縲茎etsubi-contents縲阪↓繝帙ヰ繝ｼ縺励◆繧峨?√◎縺ｮ荳ｭ縺ｮ縲景mg繧ｿ繧ｰ縲阪ｒ螟ｧ縺阪￥縺吶ｋ */
.setsubi-contents:hover .img img {
  transform: scale(1.1); /* 1.1蛟阪↓諡｡螟ｧ */
  transition: transform 0.3s ease-in-out;
}
.flex.producttitle.red {
  gap: 180px;
}
@media screen and (max-width: 768px) {
  .flex.producttitle.red {
    gap: 17px;
  }
}
/* --- 荳ｻ隕∬ｨｭ蛯? --- */
.major-facility {
  width: 100%;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .major-facility {
    padding-bottom: 60px;
  }
}
.major-facility-container {
  max-width: 800px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .major-facility-container {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto;
  }
}
.major-facility-title {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 40px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 60px */
  letter-spacing: 1.2px;
  text-transform: lowercase;
  position: relative;
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .major-facility-title {
    font-size: 30px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 45px */
    letter-spacing: 0.9px;
    margin: 0 auto 30px;
    width: clamp(331px, 88.26vw, 1160px);
    padding-left: 55px;
  }
}
.major-facility-title:before {
  width: 120px;
  height: 2px;
  content: "";
  display: inline-block;
  background: #c53d4b;
  position: absolute;
  left: -160px;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .major-facility-title:before {
    width: 40px;
    height: 2px;
    left: 0;
  }
}
.major-facility-image {
  margin-bottom: 50px;
}
@media screen and (max-width: 768px) {
  .major-facility-image {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto 40px;
  }
}
.major-facility-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.major-facility-subtitle {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .major-facility-subtitle {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto 20px;
    font-size: 28px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 42px */
    letter-spacing: 0.84px;
    text-transform: lowercase;
  }
}
.major-facility-text {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
  margin-bottom: 80px;
}
@media screen and (max-width: 768px) {
  .major-facility-text {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto 30px;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 180%; /* 28.8px */
    letter-spacing: 0.48px;
  }
}
.major-facility-container.border {
  position: relative;
  padding-top: 33px;
  border-top: 2px solid #bebebe;
  padding-bottom: 100px;
}
@media screen and (max-width: 768px) {
  .major-facility-container.border {
    padding-bottom: 20px;
  }
}
.major-facility-container.border:before {
  content: "";
  display: inline-block;
  width: 80px;
  height: 2px;
  background-color: #c53d4b;
  top: -2px;
  left: 0;
  position: absolute;
}
.tokuchotitle {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 36px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 54px */
  letter-spacing: 1.08px;
  text-transform: lowercase;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .tokuchotitle {
    font-size: 28px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 42px */
    letter-spacing: 0.84px;
    margin-bottom: 30px;
  }
}
.tokuchotitle span {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 150%; /* 36px */
  letter-spacing: 0.72px;
  text-transform: lowercase;
}
.tokuchobox {
  background: #f3f6fa;
  padding: 30px;
  margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
  .tokuchobox {
    padding: 40px 30px;
  }
}
.tokuchobox h4 {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 24px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 36px */
  letter-spacing: 0.72px;
  text-transform: lowercase;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 15px;
}
@media screen and (max-width: 768px) {
  .tokuchobox h4 {
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    font-size: 22px;
    letter-spacing: 0.66px;
    gap: 20px;
  }
}
.tokuchobox h4 span {
  color: #fff;
  text-align: center;
  font-family: "Montserrat", sans-serif;
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 22.5px */
  letter-spacing: 0.45px;
  text-transform: uppercase;
  display: inline-block;
  padding: 0 9px;
  background-color: #c53d4b;
  border-radius: 11.5px;
}
.tokuchobox p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
}
@media screen and (max-width: 768px) {
  .tokuchobox p {
    font-size: 16px;
    line-height: 160%; /* 25.6px */
    letter-spacing: 0.48px;
    margin-bottom: 0;
  }
}
.setsubi-box {
  background: #f3f6fa;
  padding: 30px;
}
@media screen and (max-width: 768px) {
  .setsubi-box {
    /* background: #fff;*/
    /* padding: 50px 30px;*/
    padding: 40px 20px;
  }
}
.setsubi-box p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 200%; /* 32px */
  letter-spacing: 0.48px;
}
@media screen and (max-width: 768px) {
  .setsubi-box p {
    font-size: 16px;
    letter-spacing: 0.48px;
  }
}
.yoto-box {
  width: 100%;
}
.yoto-box h5 {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 24px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 36px */
  letter-spacing: 0.72px;
  text-transform: lowercase;
  padding: 11px 20px 9px;
  background-color: #f3f6fa;
  margin-bottom: 20px;
}
@media screen and (max-width: 768px) {
  .yoto-box h5 {
    font-size: 22px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 33px */
    letter-spacing: 0.66px;
    text-transform: lowercase;
  }
}
.yoto-box p {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 28.8px */
  letter-spacing: 0.48px;
  margin-bottom: 30px;
}
.yoto-box p:last-child {
  margin-bottom: 0;
}
.facility-bottom {
  margin-top: 50px;
}
.major-facility-container.border:last-of-type {
  padding-bottom: 150px;
}
@media screen and (max-width: 768px) {
  .major-facility-container.border:last-of-type {
    padding-bottom: 80px;
  }
}
.othermain {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 40px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 60px */
  text-align: center;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .othermain {
    font-size: 30px;
    letter-spacing: 0.9px;
    text-transform: lowercase;
    text-align: left;
  }
}
.othermain-en {
  color: #c53d4b;
  font-family: "Montserrat", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%;
  letter-spacing: 0.42px;
  text-transform: capitalize;
  text-align: center;
  width: 127px;
  margin: 0 auto 60px;
  white-space: nowrap;
  position: relative;
}
@media screen and (max-width: 768px) {
  .othermain-en {
    width: clamp(331px, 88.26vw, 1160px);
    margin: 0 auto 30px auto;
    text-align: left;
  }
}
.othermain-en:before {
  width: 30px;
  height: 2px;
  content: "";
  display: inline-block;
  background-color: #c53d4b;
  margin-right: 8px;
  vertical-align: middle;
  position: absolute;
  left: -38px;
  top: 50%;
  transform: translateY(-50%);
}
@media screen and (max-width: 768px) {
  .othermain-en:before {
    position: static;
    width: 30px;
    height: 2px;
  }
}
.other-box {
  background-color: #fff;
  padding: 80px 106px 80px 120px;
  gap: 50px;
  align-items: flex-start;
}
@media screen and (max-width: 768px) {
  .other-box {
    background: none;
    background-color: transparent;
    padding: 0;
  }
}
.other-box a {
  gap: 50px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .other-box a {
    gap: 30px;
    flex-direction: column;
    width: clamp(331px, 88.26vw, 1160px);
  }
}
.other-box .image {
  width: 490px;
  height: 320px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .other-box .image {
    width: 100%;
    height: 200px;
  }
}
.other-box .image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease-in-out;
}
.other-box a:hover .image img {
  transform: scale(1.05);
}
.other-box .txtarea {
  padding-top: 90px;
  width: 394px;
}
@media screen and (max-width: 768px) {
  .other-box .txtarea {
    padding-top: 0;
    width: 100%;
  }
}
.other-box .txtarea p.othertitle {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 32px;
  font-style: normal;
  font-weight: 600;
  line-height: 150%; /* 48px */
  letter-spacing: 0.96px;
  text-transform: lowercase;
  border-bottom: 2px solid #c53d4b;
  padding-bottom: 22px;
  margin-bottom: 34px;
}
@media screen and (max-width: 768px) {
  .other-box .txtarea p.othertitle {
    font-size: 28px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 42px */
    letter-spacing: 0.84px;
    padding-bottom: 20px;
    margin-bottom: 20px;
  }
}
.otherdisctiption {
  color: #191e2e;
  font-family: "Noto Sans JP";
  font-size: 20px;
  font-style: normal;
  font-weight: 500;
  line-height: 180%; /* 36px */
  letter-spacing: 0.6px;
  margin-bottom: 26px;
}
@media screen and (max-width: 768px) {
  .otherdisctiption {
    font-size: 18px;
    line-height: 180%; /* 32.4px */
    letter-spacing: 0.54px;
  }
}