@charset "UTF-8";
#sustainability .layout .box {
  display: block;
}

#message h1 {
  font-size: clamp(2.6rem, 2.2307692308rem + 0.4807692308vw, 3rem);
}
@media screen and (max-width: 767px) {
  #message h1 {
    font-size: 3rem;
  }
}
#message h1 {
  font-weight: 500;
  padding-top: 5vw;
  margin-bottom: 5vw;
  text-align: center;
  color: #4191D1;
}
#message .layout {
  display: flex;
  gap: 5%;
  align-items: flex-end;
  flex-wrap: nowrap;
  margin-bottom: 50px;
}
#message .image {
  max-width: 500px;
  margin: 0 auto 30px;
}
#message h2 {
  font-size: clamp(1.9rem, 1.6230769231rem + 0.3605769231vw, 2.2rem);
}
@media screen and (max-width: 767px) {
  #message h2 {
    font-size: 2.2rem;
  }
}
#message h2 {
  font-weight: 500;
  color: #4191D1;
  text-align: center;
  margin-bottom: 50px;
}
#message p {
  margin-bottom: 50px;
}
#message .name {
  text-align: right;
  font-size: clamp(1.9rem, 1.6230769231rem + 0.3605769231vw, 2.2rem);
}
@media screen and (max-width: 767px) {
  #message .name {
    font-size: 2.2rem;
  }
}
#message .name small {
  font-size: clamp(1.3rem, 1.1153846154rem + 0.2403846154vw, 1.5rem);
}
@media screen and (max-width: 767px) {
  #message .name small {
    font-size: 1.5rem;
  }
}

#tpt #pagenav {
  width: 100%;
  background-color: #4191D1;
  padding: 15px 0 30px;
  margin: 0 auto 80px;
  z-index: 10;
}
#tpt #pagenav.fixed {
  position: fixed;
  padding: 0;
  height: 54px;
}
@media screen and (max-width: 767px) {
  #tpt #pagenav.fixed {
    height: auto;
  }
}
#tpt #pagenav ul {
  display: flex;
  justify-content: center;
  gap: 6%;
}
@media screen and (max-width: 767px) {
  #tpt #pagenav ul {
    flex-wrap: wrap;
    gap: 0;
  }
}
#tpt #pagenav ul li {
  width: 29.33%;
  text-align: center;
}
#tpt #pagenav ul li.wide {
  width: 35%;
}
@media screen and (max-width: 767px) {
  #tpt #pagenav ul li {
    width: 47%;
  }
  #tpt #pagenav ul li:nth-child(even) {
    width: 60%;
  }
  #tpt #pagenav ul li:nth-child(odd) {
    width: 40%;
  }
}
#tpt #pagenav ul li a {
  position: relative;
  padding-bottom: 15px;
  width: 100%;
  color: #fff;
}
#tpt #pagenav ul li a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0px;
  margin-left: -5px;
  width: 10px;
  height: 10px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: rotate(135deg);
}
@media screen and (max-width: 767px) {
  #tpt #pagenav ul li a {
    display: block;
    padding: 10px;
    text-align: left;
  }
  #tpt #pagenav ul li a::after {
    left: auto;
    right: 15px;
    top: 50%;
    transform: translateY(-50%) rotate(135deg);
  }
}
#tpt #sec1 .first {
  align-items: center;
  margin: 0 auto 30px;
  padding: 35px 5%;
  border: 1px solid #4191D1;
  border-radius: 10px;
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first {
    flex-direction: column;
  }
}
#tpt #sec1 .first .layout {
  display: flex;
  align-items: center;
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first .layout {
    flex-direction: column;
  }
}
#tpt #sec1 .first h2 {
  text-align: center;
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first h2 {
    font-size: 2.4rem;
  }
}
#tpt #sec1 .first h2 {
  font-weight: 500;
  color: #4191D1;
}
#tpt #sec1 .first .text {
  width: 50%;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first .text {
    width: 100%;
  }
}
#tpt #sec1 .first .text .logo {
  margin-bottom: 15px;
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first .text .logo {
    width: 80%;
    margin: 0 auto 15px;
  }
}
#tpt #sec1 .first .text p {
  text-align: center;
}
#tpt #sec1 .first .image {
  width: 50%;
  text-align: center;
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .first .image {
    margin-top: 20px;
  }
}
#tpt #sec1 .sec1-2 {
  margin-bottom: 25px;
}
#tpt #sec1 .sec1-2 .box {
  background-color: #FAFAFA;
  padding: 3%;
  margin-bottom: 0;
}
#tpt #sec1 .sec1-2 h3 {
  margin-bottom: 1rem;
}
#tpt #sec1 .vision {
  margin-bottom: 80px;
  background-color: #FAFAFA;
  padding: 3%;
}
#tpt #sec1 .vision h2 {
  text-align: center;
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .vision h2 {
    font-size: 2.4rem;
  }
}
#tpt #sec1 .vision h2 {
  font-weight: 500;
  color: #4191D1;
  margin-bottom: 30px;
}
#tpt #sec1 .image-center {
  max-width: 618px;
  margin: 0 auto 80px;
}
#tpt #sec1 .policy {
  margin-bottom: 80px;
}
#tpt #sec1 .policy h2 {
  text-align: center;
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #tpt #sec1 .policy h2 {
    font-size: 2.4rem;
  }
}
#tpt #sec1 .policy h2 {
  font-weight: 500;
  margin-bottom: 30px;
}
#tpt #sec1 .policy p {
  margin-bottom: 2rem;
}
#tpt #sec1 .policy ol {
  list-style: numeric;
  padding-left: 25px;
}
#tpt .content-block .copy {
  text-align: center;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
}
@media screen and (max-width: 767px) {
  #tpt .content-block .copy {
    font-size: 1.8rem;
  }
}
#tpt .content-block .copy {
  font-weight: 500;
  color: #4191D1;
  margin-bottom: 30px;
}
#tpt .content-block .subtitle {
  text-align: center;
  font-size: clamp(1.5rem, 1.2230769231rem + 0.3605769231vw, 1.8rem);
}
@media screen and (max-width: 767px) {
  #tpt .content-block .subtitle {
    font-size: 1.8rem;
  }
}
#tpt .content-block .subtitle {
  font-weight: 500;
  margin-bottom: 1rem;
}
#tpt .content-block .lead {
  text-align: center;
  margin-bottom: 40px;
}
#tpt .content-block .subtitle {
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #tpt .content-block .subtitle {
    font-size: 2.4rem;
  }
}
#tpt #sec2 .subtitle,
#tpt #sec2 .lead {
  text-align: left;
}
#tpt #sec2 .layout .box {
  background-color: #fafafa;
  border-radius: 4px;
  padding: 3%;
  margin-bottom: 40px;
  justify-content: flex-start;
}
#tpt #sec2 .layout .box.blank {
  background-color: transparent;
  padding: 0;
}
#tpt #sec2 .layout .box .title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
}
#tpt #sec2 .layout .box .title h4 {
  font-weight: 500;
  color: #193E71;
  line-height: 1.5;
}
#tpt #sec2 .layout .box .title .sdgs {
  display: flex;
}
#tpt #sec2 .layout .box .title .sdgs img {
  width: 60px;
}
@media screen and (max-width: 767px) {
  #tpt #sec2 .layout .box .title .sdgs img {
    width: 45px;
  }
}
#tpt #sec2 .layout .box .image {
  margin-block: 2rem;
}
#tpt #sec2 .layout .box ul {
  list-style: "● ";
  padding-left: 2ex;
}
@media screen and (max-width: 767px) {
  #tpt #sec3 {
    margin-bottom: 4rem;
  }
}
#tpt #sec3 .lead {
  text-align: left;
}
@media screen and (max-width: 767px) {
  #tpt #sec3 .box {
    margin-bottom: 0;
  }
  #tpt #sec3 .box ul {
    margin-bottom: 2rem;
  }
}
#tpt #sec3 ul {
  list-style: disc;
  padding-left: 2ex;
}
#tpt #sec4 .note {
  text-align: left;
  margin-bottom: 50px;
}
#tpt #sec4 .lead {
  text-align: left;
}
#tpt #sec4 h3 {
  color: #193E71;
}
#tpt #sec4 .image-layout {
  display: flex;
  gap: 15px;
}
#tpt #sec4 .row2 .image-layout {
  width: 50%;
}
@media screen and (max-width: 767px) {
  #tpt #sec4 .row2 .image-layout {
    width: 100%;
  }
}
#tpt #sec4 .row2 .image-layout figure {
  width: 50%;
}
@media screen and (max-width: 767px) {
  #tpt #sec4 .row2 .image-layout figure {
    width: 100%;
  }
}
@media screen and (max-width: 767px) {
  #tpt #sec4 .row2.mb0 {
    margin-bottom: 0;
  }
}
#tpt #sec4 .row3 .text {
  width: 67.5%;
}
@media screen and (max-width: 767px) {
  #tpt #sec4 .row3 .text {
    width: 100%;
  }
}
#tpt #sec4 .row3 .image {
  width: 32.5%;
}
@media screen and (max-width: 767px) {
  #tpt #sec4 .row3 .image {
    width: 100%;
  }
}

#policy .content-block p {
  font-weight: 500;
  margin-bottom: 30px;
}
#policy ol {
  list-style: numeric;
  padding-left: 25px;
  margin-top: 50px;
}
#policy .date {
  text-align: right;
  margin-top: 1rem;
}
#policy .logo {
  text-align: center;
  max-width: 360px;
  margin: 0 auto 2rem;
}
#policy .links {
  display: flex;
  justify-content: center;
  gap: 3%;
  margin-top: 3rem;
}
@media screen and (max-width: 767px) {
  #policy .links {
    flex-direction: column;
    align-items: center;
  }
}
#policy .links a {
  width: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  border: 1px solid #4191D1;
  border-radius: 25px;
  padding: 15px 40px 15px 15px;
  color: #4191D1;
  position: relative;
  line-height: 1.5;
}
#policy .links a:hover {
  background-color: #e5f3ff;
}
@media screen and (max-width: 767px) {
  #policy .links a {
    width: 100%;
    margin-bottom: 1rem;
  }
}
#policy .links a .icon-pdf {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}

#environment .content-block {
  margin-bottom: 80px;
}
#environment .content-block p {
  margin-bottom: 30px;
}
#environment #sec2 .lead {
  margin-bottom: 80px;
}
#environment #sec2 .datas .box {
  margin-bottom: 0;
  display: flex;
  border-bottom: 2px solid #4191D1;
  padding-block: 70px;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  #environment #sec2 .datas .box {
    flex-direction: column;
    align-items: center;
    padding-block: 30px;
  }
}
#environment #sec2 .datas .box:first-child {
  border-top: 2px solid #4191D1;
}
#environment #sec2 .datas .box .text {
  width: 65%;
}
@media screen and (max-width: 767px) {
  #environment #sec2 .datas .box .text {
    width: 100%;
  }
}
#environment #sec2 .datas .box h3 {
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #environment #sec2 .datas .box h3 {
    font-size: 2.4rem;
  }
}
#environment #sec2 .datas .box h3 {
  font-weight: 500;
  margin-bottom: 15px;
}
@media screen and (max-width: 767px) {
  #environment #sec2 .datas .box h3 {
    font-size: 2rem;
  }
}
#environment #sec2 .datas .box p {
  margin-bottom: 0;
}
#environment #sec2 .datas .box .image {
  width: 30%;
  text-align: right;
  display: flex;
  flex-direction: column;
  justify-content: right;
  align-items: center;
  margin-bottom: 15px;
}
@media screen and (max-width: 767px) {
  #environment #sec2 .datas .box .image {
    width: 100%;
    justify-content: center;
    margin-top: 20px;
  }
}
#environment #sec2 .datas .box .image p {
  margin-top: 1rem;
}
#environment #sec2 .datas .box .image span {
  display: block;
  margin-top: 10px;
}
#environment #sec3 .layout .box {
  width: 25%;
  padding: 3%;
  background-color: #EBF4FB;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  #environment #sec3 .layout .box {
    width: 100%;
  }
}
#environment #sec3 .layout .box:nth-child(even) {
  background-color: #F5F9FD;
}
#environment #sec3 .layout .box h3 {
  text-align: center;
  margin-bottom: 15px;
}
#environment #sec3 .layout .box .image {
  width: 160px;
  margin: 0 auto;
  text-align: center;
  line-height: 0;
}
#environment #sec3 .layout .box .image span {
  display: block;
  margin-top: 10px;
}
#environment #sec3 .layout .box p {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  #environment #sec4 {
    margin-bottom: 0;
  }
}
#environment #sec4 .box {
  margin-bottom: 0;
  display: flex;
  border-bottom: 2px solid #4191D1;
  padding-block: 70px;
  justify-content: space-between;
}
@media screen and (max-width: 767px) {
  #environment #sec4 .box {
    flex-direction: column;
    align-items: center;
    padding-block: 30px;
  }
}
#environment #sec4 .box.first {
  border-top: 2px solid #4191D1;
}
#environment #sec4 .box h3 {
  width: 40%;
  margin-bottom: 15px;
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #environment #sec4 .box h3 {
    font-size: 2.4rem;
  }
}
#environment #sec4 .box h3 {
  font-weight: 500;
}
@media screen and (max-width: 767px) {
  #environment #sec4 .box h3 {
    width: 100%;
    font-size: 2rem;
  }
}
#environment #sec4 .box p {
  width: 60%;
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  #environment #sec4 .box p {
    width: 100%;
  }
}

#workplace #first .contents-title {
  color: #4191d1;
}
#workplace .lead {
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  #workplace .lead {
    margin-bottom: 30px;
  }
}
#workplace .layout .box {
  background-color: #fff;
  border-radius: 4px;
  padding: 3%;
}
#workplace .layout .box h3 {
  text-align: center;
  margin-bottom: 15px;
}
#workplace .layout .box p {
  margin-bottom: 0;
}
#workplace #sec3 .layout .box {
  background-color: #F8F8F8;
}
#workplace #sec5 {
  text-align: center;
  padding-block: 5% 0;
}
#workplace #sec5 p {
  text-align: center;
  margin-bottom: 1rem;
}
#workplace #sec5 a p {
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  #workplace #sec5 a p {
    font-size: 2.4rem;
  }
}
#workplace #sec5 a p {
  font-weight: 500;
  color: #193E71;
}

#modal-overlay {
  display: none;
  position: fixed;
  z-index: 10000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}

.modal {
  display: none;
  position: fixed;
  z-index: 10000;
  top: 5%;
  left: 5%;
  width: 90%;
  height: 90%;
  max-width: 1175px;
  margin: auto;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 10px;
  padding: 5px 0;
}
.modal .scroll-area {
  overflow-y: scroll;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.modal .scroll-area::-webkit-scrollbar {
  width: 2px;
}
.modal .scroll-area::-webkit-scrollbar-thumb {
  background-color: #ccc;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.3);
}
.modal .scroll-area::-webkit-scrollbar-track {
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
}
.modal .modal-close {
  position: absolute;
  cursor: pointer;
  z-index: 1;
  width: 30px;
  height: 30px;
  right: 15px;
  top: 15px;
  transform: rotate(45deg);
}
.modal .modal-close::before, .modal .modal-close::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 2px;
  background-color: #001B5C;
  top: 50%;
  left: 0;
}
.modal .modal-close::before {
  transform: rotate(90deg);
}
.modal .modal-content {
  position: relative;
  background-color: #fff;
  padding: 40px;
  border-radius: 25px;
}
@media screen and (max-width: 767px) {
  .modal .modal-content {
    padding: 40px 5%;
  }
}
.modal .modal-content h3 {
  font-size: 20px;
  color: #001B5C;
}

main#kenko_keiei .contents-block .copy {
  color: #4191D1;
  font-size: clamp(2.6rem, 2.2307692308rem + 0.4807692308vw, 3rem);
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .contents-block .copy {
    font-size: 3rem;
  }
}
main#kenko_keiei .contents-block .copy {
  margin-bottom: 5rem;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .contents-block .copy {
    font-size: 2.4rem;
  }
}
main#kenko_keiei .contents-block h2 {
  font-size: clamp(2.6rem, 2.2307692308rem + 0.4807692308vw, 3rem);
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .contents-block h2 {
    font-size: 3rem;
  }
}
main#kenko_keiei .contents-block h2 {
  color: #000;
  margin-bottom: 3rem;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .contents-block h2 {
    font-size: 3rem;
  }
}
main#kenko_keiei #first .sign {
  text-align: right;
  margin-top: 2rem;
}
main#kenko_keiei .layout {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 5%;
  margin-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .layout {
    display: block;
  }
  main#kenko_keiei .layout .image {
    margin-top: 2rem;
  }
}
main#kenko_keiei .block h3 {
  color: #4191D1;
  margin-bottom: 1rem;
  font-size: clamp(2rem, 1.6307692308rem + 0.4807692308vw, 2.4rem);
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .block h3 {
    font-size: 2.4rem;
  }
}
main#kenko_keiei .block .mb {
  margin-bottom: 2rem;
}
main#kenko_keiei .block h4 {
  color: #193E71;
  margin-bottom: 1rem;
}
main#kenko_keiei .js-scrollable {
  margin-block: 3rem;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .js-scrollable img {
    width: 600px;
    max-width: none;
  }
}
main#kenko_keiei .text-layout {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 5%;
  margin-bottom: 4rem;
  align-items: flex-start;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .text-layout {
    display: block;
  }
}
main#kenko_keiei .text-layout dl {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 0;
}
@media screen and (max-width: 767px) {
  main#kenko_keiei .text-layout dl {
    margin-top: 2rem;
  }
}
main#kenko_keiei .text-layout dl dt {
  width: 80px;
}
main#kenko_keiei .text-layout dl dd {
  width: calc(100% - 80px);
}
main#kenko_keiei .strategy h3 {
  color: #000;
}