@charset "UTF-8";
/* ------------------------------------------------------------
// BUSINESS
------------------------------------------------------------ */
.business-box-1 {
  display: flex;
  align-items: stretch;
  gap: 40px;
  min-height: 520px;
  margin-bottom: 120px;
  background: #fafafa;
}
.business-box-1::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 50%;
  background: url("../images/business/img-1.jpg") no-repeat center center/cover;
}
.business-box-1 .box {
  width: 50%;
  padding: 120px 40px 120px 0;
}
.business-box-1 .box .ttl {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 20px;
}
.business-box-1 .box .ttl .txt-jp {
  font-size: 30px;
  font-weight: 500;
  color: #003462;
  line-height: 1.3;
}
.business-box-1 .box .ttl .txt-en {
  font-size: 15px;
  color: #cccccc;
}
.business-box-1 .box .txt-1 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 1em;
  padding-bottom: 0.2em;
  border-bottom: 2px solid #005bad;
}
@media screen and (max-width: 1349px) {
  .business-box-1::before {
    background: url("../images/business/img-1-notext.jpg") no-repeat center center/cover;
  }
}
@media screen and (max-width: 767px) {
  .business-box-1 {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 60px;
  }
  .business-box-1::before {
    width: 100%;
    height: 200px;
  }
  .business-box-1 .box {
    width: 100%;
    padding: 0 20px 30px;
  }
}
@media print, screen and (max-width: 575px) {
  .business-box-1 .box .ttl {
    gap: 2px;
    margin-bottom: 10px;
  }
  .business-box-1 .box .ttl .txt-jp {
    font-size: 20px;
  }
  .business-box-1 .box .ttl .txt-en {
    font-size: 12px;
  }
  .business-box-1 .box .txt-1 {
    font-size: 18px;
  }
}

.business-box-2 {
  display: flex;
  align-items: stretch;
  gap: 40px;
  min-height: 520px;
  margin-bottom: 120px;
  background: #fafafa;
}
.business-box-2::before {
  order: 2;
  content: "";
  flex-shrink: 0;
  display: block;
  width: 50%;
  background: url("../images/business/img-2.jpg") no-repeat center center/cover;
}
.business-box-2 .box {
  order: 1;
  width: 50%;
  padding: 120px 0 120px 40px;
}
.business-box-2 .box .ttl {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 20px;
}
.business-box-2 .box .ttl .txt-jp {
  font-size: 30px;
  font-weight: 500;
  color: #003462;
  line-height: 1.3;
}
.business-box-2 .box .ttl .txt-en {
  font-size: 15px;
  color: #cccccc;
}
@media screen and (max-width: 1349px) {
  .business-box-2::before {
    background: url("../images/business/img-2-notext.jpg") no-repeat center center/cover;
  }
}
@media screen and (max-width: 767px) {
  .business-box-2 {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 100px;
  }
  .business-box-2::before {
    order: 1;
    width: 100%;
    height: 200px;
  }
  .business-box-2 .box {
    order: 2;
    width: 100%;
    padding: 0 20px 30px;
  }
}
@media print, screen and (max-width: 575px) {
  .business-box-2 .box .ttl {
    gap: 2px;
    margin-bottom: 10px;
  }
  .business-box-2 .box .ttl .txt-jp {
    font-size: 20px;
  }
  .business-box-2 .box .ttl .txt-en {
    font-size: 12px;
  }
}

.business-box-3 {
  display: flex;
  align-items: stretch;
  gap: 40px;
  min-height: 520px;
  margin-bottom: 120px;
  background: #fafafa;
}
.business-box-3::before {
  content: "";
  flex-shrink: 0;
  display: block;
  width: 50%;
  background: url("../images/business/img-3.jpg") no-repeat center center/cover;
}
.business-box-3 .box {
  width: 50%;
  padding: 120px 40px 120px 0;
}
.business-box-3 .box .ttl {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 20px;
}
.business-box-3 .box .ttl .txt-jp {
  font-size: 30px;
  font-weight: 500;
  color: #003462;
  line-height: 1.3;
}
.business-box-3 .box .ttl .txt-en {
  font-size: 15px;
  color: #cccccc;
}
@media screen and (max-width: 1349px) {
  .business-box-3::before {
    background: url("../images/business/img-3-notext.jpg") no-repeat center center/cover;
  }
}
@media screen and (max-width: 767px) {
  .business-box-3 {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 60px;
  }
  .business-box-3::before {
    width: 100%;
    height: 200px;
  }
  .business-box-3 .box {
    width: 100%;
    padding: 0 20px 30px;
  }
}
@media print, screen and (max-width: 575px) {
  .business-box-3 .box .ttl {
    gap: 2px;
    margin-bottom: 10px;
  }
  .business-box-3 .box .ttl .txt-jp {
    font-size: 20px;
  }
  .business-box-3 .box .ttl .txt-en {
    font-size: 12px;
  }
}

.business-item-ttl {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  font-weight: 500;
  margin-bottom: 10px;
}
.business-item-ttl i {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  width: 30px;
  height: 30px;
  background: #003462;
  border-radius: 50%;
}
@media print, screen and (max-width: 575px) {
  .business-item-ttl {
    font-size: 18px;
    gap: 5px;
  }
  .business-item-ttl i {
    font-size: 12px;
    width: 26px;
    height: 26px;
  }
}

.mb30 {
  margin-bottom: 30px;
}

.business-table-box {
  position: relative; /* ←これが必要！ */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.business-table-box table {
  width: 100%;
  min-width: 700px;
  border-collapse: collapse;
}
.business-table-box table th {
  background-color: #003462;
  color: #ffffff;
  padding: 10px;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  border: 1px solid #ffffff;
}
.business-table-box table td {
  padding: 10px;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  border: 1px solid #ffffff;
}
.business-table-box table td img {
  margin: 0 auto;
}
@media print, screen and (max-width: 575px) {
  .business-table-box table th,
  .business-table-box table td {
    font-size: 14px;
  }
}

.business-table-box tr:nth-child(even) td {
  background-color: #e6f1f9;
}

.business-table-box tr:nth-child(odd) td {
  background-color: #f5fafe;
}

.scroll-hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 10;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 30px;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.3s;
}

/* 表示時にフェードイン＋ゆらゆら */
.scroll-hint.show {
  opacity: 1;
  animation: hintMove 1s ease-in-out infinite, fadeOut 2s ease-out 2s forwards;
}

/* 左右に揺れる */
@keyframes hintMove {
  0%, 100% {
    transform: translate(-50%, -50%);
  }
  50% {
    transform: translate(-55%, -50%);
  }
}
/* 一定時間でフェードアウト */
@keyframes fadeOut {
  to {
    opacity: 0;
    visibility: hidden;
  }
}
.business-txt-box {
  padding: 40px;
  background: #f5f5f5;
}
.business-txt-box .qfcs-list {
  margin: 20px 0 20px 2em;
}
.business-txt-box .qfcs-list li {
  list-style-type: disc;
  color: #005bad;
}
.business-txt-box .qfcs-list li:not(:last-child) {
  margin-bottom: 2px;
}

.business-box-1-item-list {
  display: flex;
  justify-content: center;
  gap: 20px;
  width: 100%;
  max-width: 800px;
  margin: 0 auto 50px;
}
.business-box-1-item-list li .img {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  padding: 0 20px;
}
.business-box-1-item-list li .img img {
  max-width: 300px;
  border-radius: 50%;
}
.business-box-1-item-list li .txt {
  color: #ffffff;
  text-align: center;
  padding: 20px 15px;
  background: #4a90e2;
}
.business-box-1-item-list li .txt span {
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 10px;
  padding: 0 0.5em;
  border-bottom: 2px solid #ffffff;
}
@media screen and (max-width: 767px) {
  .business-box-1-item-list {
    flex-direction: column;
    gap: 40px;
  }
  .business-box-1-item-list li .img {
    padding: 0 65px;
  }
  .business-box-1-item-list li .img img {
    max-width: 200px;
  }
  .business-box-1-item-list li .txt {
    padding: 15px;
  }
}

.sdgs {
  display: flex;
  margin-bottom: 120px;
}
.sdgs .sdgs-number {
  width: 25%;
  padding: 0 20px;
}
.sdgs .sdgs-number img {
  margin: 0 auto;
}
.sdgs .sdgs-txt {
  flex: 1;
  padding: 40px 30px;
  border: 2px solid #4a90e2;
}
.sdgs .sdgs-txt .sdgs-ttl {
  font-size: 20px;
  font-weight: 700;
  color: #003462;
  margin-bottom: 1em;
}
@media screen and (max-width: 767px) {
  .sdgs {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 60px;
  }
  .sdgs .sdgs-number {
    width: 100%;
    padding: 0 60px;
  }
  .sdgs .sdgs-txt {
    padding: 30px 20px;
  }
}

.hex-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin: 30px 0;
}
.hex-container .hex {
  width: 160px;
  height: 160px;
  background: #4a90e2;
  color: #fff;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.hex-container .hex .img {
  margin-bottom: 6px;
}
.hex-container .hex .img img {
  max-width: 74px;
}
.hex-container .hex .txt {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
}
@media print, screen and (max-width: 575px) {
  .hex-container {
    gap: 10px;
  }
}

.business-scroll-img {
  position: relative; /* ←これが必要！ */
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 40px 0 30px;
  padding-bottom: 10px;
}
.business-scroll-img img {
  width: 100%;
  min-width: 767px;
}

.item-list {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}
.item-list li {
  width: calc((100% - 40px) / 2);
}
.item-list li .img {
  margin-bottom: 20px;
}
.item-list li .img img {
  width: 100%;
  max-width: 120px;
  margin: 0 auto;
}
.item-list li table {
  width: 100%;
}
.item-list li table th,
.item-list li table td {
  padding: 15px;
  border: 1px solid #003462;
}
.item-list li table th {
  color: #ffffff;
  width: 160px;
  background: #4a90e2;
}
@media print, screen and (max-width: 767px) {
  .item-list {
    flex-direction: column;
  }
  .item-list li {
    width: 100%;
  }
  .item-list li .img img {
    max-width: 80px;
  }
  .item-list li table th,
  .item-list li table td {
    font-size: 14px;
  }
  .item-list li table th {
    width: 135px;
    padding: 10px 5px 10px 15px;
  }
  .item-list li table td {
    padding: 10px 15px;
  }
}

.business-base-table {
  width: 100%;
  margin-top: 30px;
}
.business-base-table th,
.business-base-table td {
  padding: 15px;
  border: 1px solid #ffffff;
}
.business-base-table th {
  color: #ffffff;
  text-align: center;
  width: 160px;
  background: #003462;
}
@media print, screen and (max-width: 767px) {
  .business-base-table th {
    width: 140px;
    padding: 10px 5px;
  }
}

.business-base-table tr:nth-child(even) td {
  background-color: #e6f1f9;
}

.business-base-table tr:nth-child(odd) td {
  background-color: #f5fafe;
}

.pctfe-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.pctfe-list li {
  display: flex;
  align-items: center;
  gap: 40px;
}
.pctfe-list li .hex {
  width: 160px;
  height: 160px;
  background: #4a90e2;
  color: #fff;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.pctfe-list li .hex .img {
  margin-bottom: 6px;
}
.pctfe-list li .hex .img img {
  width: 100%;
  max-width: 74px;
  margin: 0 auto;
}
.pctfe-list li .hex .txt {
  font-size: 16px;
  font-weight: bold;
  line-height: 1.4;
}
.pctfe-list li .txt-box {
  flex: 1;
  padding: 15px 5px;
  border-top: 1px solid #4a90e2;
  border-bottom: 1px solid #4a90e2;
}
@media print, screen and (max-width: 767px) {
  .pctfe-list li {
    gap: 20px;
  }
  .pctfe-list li .hex {
    width: 110px;
    height: 110px;
  }
  .pctfe-list li .hex .img {
    margin-bottom: 3px;
  }
  .pctfe-list li .hex .img img {
    max-width: 38px;
  }
  .pctfe-list li .hex .txt {
    font-size: 15px;
  }
  .pctfe-list li .txt-box {
    padding: 10px 0;
  }
}

.qfcs {
  display: flex;
  align-items: center;
  margin-bottom: 120px;
}
.qfcs .qfcs-number {
  width: 20%;
  padding: 0 20px;
}
.qfcs .qfcs-number img {
  margin: 0 auto;
}
.qfcs .qfcs-txt {
  flex: 1;
  padding: 40px 30px;
  border: 2px solid #4a90e2;
}
.qfcs .qfcs-txt .qfcs-ttl {
  font-size: 20px;
  font-weight: 700;
  color: #003462;
  margin-bottom: 1em;
}
.qfcs .qfcs-txt ul {
  margin-left: 2em;
}
.qfcs .qfcs-txt ul li {
  list-style-type: decimal;
}
.qfcs .qfcs-txt ul li:not(:last-child) {
  margin-bottom: 2px;
}
@media screen and (max-width: 767px) {
  .qfcs {
    flex-direction: column;
    gap: 20px;
    margin-bottom: 60px;
  }
  .qfcs .qfcs-number {
    width: 100%;
    padding: 0 60px;
  }
  .qfcs .qfcs-txt {
    padding: 30px 20px;
  }
}