.circlearrow {
  display: flex;
  width: 2.2rem;
  aspect-ratio: 1/1;
  background: #00a291;
  border-radius: 50%;
  border: 1px solid #00a291;
  overflow: hidden;
  position: relative;
  transition: 0.2s ease-in-out;
}
.circlearrow::before {
  content: "";
  display: block;
  position: absolute;
  width: 83%;
  height: 100%;
  background: url(../images/arrow_right.svg) left calc(50% - 0px)/contain no-repeat;
  left: 0;
  top: 0;
  transition: 0.2s ease-in-out;
}
.arrow_wrapper:hover .circlearrow {
  background: #00a291;
}
.arrow_wrapper:hover .circlearrow::before {
  -webkit-animation: arrowmove 0.4s ease-in-out;
          animation: arrowmove 0.4s ease-in-out;
  filter: brightness(1000%);
}
.circlearrow.reverse {
  background: #00a291;
}
.circlearrow.reverse::before {
  filter: brightness(1000%);
}

@-webkit-keyframes arrowmove {
  0% {
    left: 0;
  }
  50% {
    left: 100%;
  }
  50.00001% {
    left: -100%;
  }
  100% {
    left: 0;
  }
}

@keyframes arrowmove {
  0% {
    left: 0;
  }
  50% {
    left: 100%;
  }
  50.00001% {
    left: -100%;
  }
  100% {
    left: 0;
  }
}
.arrow_wrapper .figarrow + .heading {
  font-weight: bold;
  font-size: 2rem;
  margin-top: 0.2em;
}
.arrow_wrapper:hover figure {
  background: #006f3f;
}
.arrow_wrapper:hover figure img {
  opacity: 0.8;
  transform: scale(1.1);
}
.arrow_wrapper:hover .bottomleft {
  color: #006f3f;
}
.arrow_wrapper:hover .figarrow + .heading {
  color: #006f3f;
}
@media (max-width: 767px) {
  .arrow_wrapper .figarrow + .heading {
    font-size: 1.8rem;
    margin-top: 0.2em;
  }
}

.s_hg {
  text-align: center;
}
.s_hg h2 {
  font-family: "Poppins", sans-serif;
  font-size: 10rem;
  font-weight: 200;
  letter-spacing: 0.1em;
  line-height: 1;
}
.s_hg p {
  margin-top: 1rem;
  font-size: 3rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 200;
}
@media only screen and (max-width: 767px) {
  .s_hg h2 {
    font-size: 3rem;
  }
  .s_hg p {
    margin-top: 1rem;
    font-size: 2rem;
  }
}

main {
  overflow: hidden;
}

/*--------------------------------------------------------------
mv
--------------------------------------------------------------*/
#mv {
  position: relative;
  min-height: 70rem;
  height: 100vh;
}
#mv figure {
  position: absolute;
  width: 100%;
  height: 100%;
}
#mv figure img {
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
#mv .txt {
  position: relative;
  width: 100%;
  height: 100%;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 6.5rem 5rem 6rem;
}
#mv .txt .catch {
  writing-mode: vertical-rl;
  font-size: 2.8rem;
  line-height: 1.75;
  letter-spacing: 0.1em;
}
#mv .txt .catch .num {
  display: inline-block;
  position: relative;
  right: -0.1em;
}
#mv .txt .catch strong {
  font-weight: bold;
  color: #00a291;
}
#mv .txt .lead {
  width: 108rem;
  margin: 0 auto;
  border: 1px solid #fff;
  border-radius: 4.7rem 1.5rem;
  color: #fff;
  text-align: center;
}
#mv .txt .lead .heading {
  font-size: 2.4rem;
  line-height: 6rem;
  border-bottom: 1px solid #fff;
}
#mv .txt .lead p {
  padding: 1.5rem;
  font-size: 1.8rem;
  line-height: 170%;
}
#mv .scrolldown {
  position: absolute;
  z-index: 5;
  right: 2.5rem;
  bottom: 4rem;
  color: #000;
  font-size: 1rem;
  font-weight: 500;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transform-origin: right top;
  transform: rotate(90deg);
  white-space: nowrap;
  flex-wrap: nowrap;
  gap: 0.9rem;
}
#mv .scrolldown .en {
  display: block;
  padding-top: 0.2em;
}
#mv .scrolldown .circlearrow {
  border: none;
}
#mv .scrolldown .en {
  transition: color 0.3s ease-in-out;
}
#mv .scrolldown:hover .txt {
  color: #006f3f;
}
@media only screen and (max-width: 767px) {
  #mv {
    position: relative;
    min-height: unset;
    height: 100svh;
  }
}
@media only screen and (max-width: 767px) and (max-aspect-ratio: 1/2) {
  #mv {
    height: 200vw;
  }
}
@media only screen and (max-width: 767px) {
  #mv figure img {
    -o-object-fit: cover;
       object-fit: cover;
  }
}
@media only screen and (max-width: 767px) {
  #mv .txt {
    position: relative;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 6.5rem 5rem 6rem;
    padding: 8rem min(10vw, 4.5rem) 2.5rem 2.5rem;
  }
  #mv .txt .catch {
    writing-mode: unset;
    font-size: min(2.4rem, 6vw);
    font-size: min(3.4rem, 6vw);
    letter-spacing: 0.1em;
    line-height: 1.7;
    margin-right: -1em;
  }
  #mv .txt .catch .num {
    right: 0;
  }
  #mv .txt .catch strong {
    font-weight: bold;
  }
  #mv .txt .lead {
    border-radius: 2.35rem 0.75rem;
    width: auto;
  }
  #mv .txt .lead .heading {
    font-size: min(4.5vw, 2.4rem);
    line-height: 1.5;
    padding: 2vw 5vw;
  }
  #mv .txt .lead p {
    padding: 1.5rem;
    line-height: 170%;
    font-size: 1.6rem;
    text-align: left;
  }
}
@media only screen and (max-width: 767px) {
  #mv .scrolldown {
    position: absolute;
    z-index: 5;
    right: 2.5rem;
    bottom: 0rem;
    color: #000;
    font-size: 1rem;
    font-weight: 500;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transform-origin: right top;
    transform: rotate(90deg);
    white-space: nowrap;
    flex-wrap: nowrap;
    gap: 0.9rem;
  }
  #mv .scrolldown .en {
    display: block;
    padding-top: 0.2em;
  }
  #mv .scrolldown .circlearrow {
    border: none;
  }
  #mv .scrolldown .en {
    transition: color 0.3s ease-in-out;
  }
  #mv .scrolldown:hover .txt {
    color: #006f3f;
  }
}
@media only screen and (max-width: 767px) and (max-width: 767px) {
  #mv .scrolldown {
    right: 1rem;
  }
}

/*--------------------------------------------------------------
first
--------------------------------------------------------------*/
#first {
  margin-top: 8rem;
}
#first .inner {
  border-radius: 4.7rem 1.5rem;
  background: linear-gradient(180deg, #86bab4, #ebf5e7);
  text-align: center;
  padding: 4.5rem 5rem 5rem;
}
#first .inner .s_hg {
  color: #fff;
}
#first .inner .list {
  margin-top: 4rem;
  display: flex;
  justify-content: space-between;
  gap: 4rem;
}
#first .inner .list .block {
  width: 50%;
  background: #fff;
  border-radius: 1.5rem;
  padding: 1.5rem 2rem 3rem;
}
#first .inner .list .block h3 {
  font-size: 2.8rem;
  padding-bottom: 1.5rem;
  line-height: 1.5;
  border-bottom: 1px solid #000;
  letter-spacing: 0.1em;
  font-weight: bold;
}
#first .inner .list .block .main {
  display: flex;
  gap: 2rem;
  margin-top: 2rem;
}
#first .inner .list .block .main figure {
  width: 12rem;
  flex-grow: 0;
  flex-shrink: 0;
  text-align: center;
}
#first .inner .list .block .main p {
  letter-spacing: 0.15em;
  font-size: 2rem;
  line-height: 1.75;
  text-align: left;
}
@media only screen and (max-width: 767px) {
  #first {
    margin-top: 5rem;
    padding: 0 5vw;
  }
  #first .inner {
    border-radius: 2.4rem 0.8rem;
    padding: 2.5rem 2rem 2rem;
  }
  #first .inner .list {
    margin-top: 4rem;
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    flex-direction: column;
  }
  #first .inner .list .block {
    width: auto;
    border-radius: 1rem;
    padding: 1.5rem 5vw 3rem;
  }
  #first .inner .list .block h3 {
    font-size: 2.1rem;
    padding-bottom: 1.2rem;
  }
  #first .inner .list .block .main {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
  }
  #first .inner .list .block .main figure {
    width: 7rem;
    flex-grow: 0;
    flex-shrink: 0;
    text-align: center;
  }
  #first .inner .list .block .main figure img {
    width: 5rem;
  }
  #first .inner .list .block .main p {
    letter-spacing: 0.1em;
    font-size: 1.6rem;
  }
}

/*--------------------------------------------------------------
sysetem
--------------------------------------------------------------*/
#system {
  margin-top: 8rem;
}
#system .lead {
  margin-top: 5rem;
}
#system .lead .catch {
  text-align: center;
  font-size: 4.2rem;
  line-height: 1.7619047619;
  color: #00a291;
  margin-bottom: 5rem;
  font-weight: 500;
}
#system .factory {
  margin-top: 3rem;
}
#system .factory ul {
  display: flex;
  gap: 1.5rem;
}
#system .factory ul li {
  margin: 0;
  border-radius: 1.6rem;
  overflow: hidden;
  width: 33.3%;
}
#system .factory ul li figure {
  width: 100%;
  height: 25.3rem;
  margin-bottom: 0.3rem;
}
#system .factory ul li figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#system .factory ul li .txt {
  height: calc(100% - 25.6rem);
  color: #fff;
  background: linear-gradient(130deg, #64a69c, #9fd3dc);
}
#system .factory ul li .txt.txt2 {
  background: linear-gradient(130deg, #7dba77, #b3d2ac);
}
#system .factory ul li .txt.txt3 {
  background: linear-gradient(130deg, #57abcb, #9cd2db);
}
#system .factory ul li .txt h3 {
  font-size: 1.8rem;
  line-height: 1.5;
  text-align: center;
  border-bottom: 0.3rem solid #fff;
  padding: 0.8rem 1rem;
}
#system .factory ul li .txt dl {
  padding: 1rem 2rem;
  width: 100%;
}
#system .factory ul li .txt dl div {
  display: flex;
}
#system .factory ul li .txt dl div + div {
  border-top: 2px dotted #fff;
}
#system .factory ul li .txt dl div dt,
#system .factory ul li .txt dl div dd {
  padding: 1.2rem 0;
}
#system .factory ul li .txt dl div dt {
  font-size: 1.4rem;
  font-weight: bold;
  width: 10rem;
  flex-grow: 0;
  flex-shrink: 0;
  margin: 0;
  letter-spacing: 0.1em;
}
#system .factory ul li .txt dl div dd {
  position: relative;
  top: -0.2em;
  font-size: 1.6rem;
  line-height: 1.75;
  margin: 0;
}
#system .gmp {
  margin-top: 5rem;
  margin-bottom: -11rem;
}
#system .gmp p.lead {
  border: 2px solid #89bcb5;
  padding: 4rem;
  border-radius: 4.7rem 1.5rem;
  font-size: 2.8rem;
  line-height: 1.75;
  text-align: center;
  letter-spacing: 0.1em;
  position: relative;
  z-index: 2;
}
#system .gmp .point {
  margin-top: -3.5rem;
  position: relative;
}
#system .gmp .point hgroup {
  position: absolute;
  z-index: 3;
  left: 0;
  top: 22rem;
  width: 44rem;
}
#system .gmp .point hgroup h2 {
  background: #22b573;
  width: 14rem;
  aspect-ratio: 1/1;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  margin: auto;
  color: #fff;
  font-size: 3rem;
  padding-bottom: 1rem;
}
#system .gmp .point hgroup h2 strong {
  display: inline-block;
  font-size: 120%;
  font-weight: 700;
  margin-left: 0.1em;
}
#system .gmp .point hgroup p {
  font-size: 2.7rem;
  line-height: 1.6666666667;
  color: #22b573;
  margin-top: 1em;
  font-weight: bold;
}
#system .gmp .point .map {
  text-align: right;
}
@media only screen and (max-width: 767px) {
  #system {
    margin-top: 5rem;
  }
  #system .lead {
    margin-top: 4rem;
  }
  #system .lead .catch {
    font-size: 2.1rem;
    margin-bottom: 3rem;
  }
  #system .factory {
    margin-top: 3rem;
  }
  #system .factory ul {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
  }
  #system .factory ul li {
    margin: 0;
    border-radius: 1.6rem;
    overflow: hidden;
    width: auto;
  }
  #system .factory ul li figure {
    width: 100%;
    height: 25.3rem;
    margin-bottom: 0.3rem;
  }
  #system .factory ul li figure img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  #system .factory ul li .txt {
    height: auto;
  }
  #system .factory ul li .txt h3 {
    font-size: 1.6rem;
    border-bottom: 0.3rem solid #fff;
    padding: 0.8rem 1rem;
  }
  #system .factory ul li .txt dl {
    padding: 1rem 1.5rem;
  }
  #system .factory ul li .txt dl div {
    display: flex;
  }
  #system .factory ul li .txt dl div + div {
    border-top: 2px dotted #fff;
  }
  #system .factory ul li .txt dl div dt,
#system .factory ul li .txt dl div dd {
    padding: 1.2rem 0;
  }
  #system .factory ul li .txt dl div dt {
    font-size: 1.2rem;
    width: 9rem;
    flex-grow: 0;
    flex-shrink: 0;
    margin: 0;
    letter-spacing: 0.1em;
  }
  #system .factory ul li .txt dl div dd {
    font-size: 1.6rem;
    line-height: 1.75;
    margin: 0;
  }
  #system .gmp {
    margin-top: 4rem;
    margin-bottom: 0;
    padding-bottom: 5rem;
  }
  #system .gmp p.lead {
    padding: 2rem;
    border-radius: 2.35rem 0.75rem;
    font-size: 1.8rem;
    letter-spacing: 0.1em;
    text-align: left;
  }
  #system .gmp .point {
    margin-top: -3.5rem;
    position: relative;
  }
  #system .gmp .point hgroup {
    position: static;
    margin-top: -14vw;
    width: auto;
  }
  #system .gmp .point hgroup h2 {
    width: 12rem;
    font-size: 2.4rem;
    padding-bottom: 0.8rem;
  }
  #system .gmp .point hgroup h2 strong {
    font-size: 120%;
  }
  #system .gmp .point hgroup p {
    font-size: 2.1rem;
    margin-top: 1em;
  }
  #system .gmp .point .map {
    text-align: right;
  }
}

/*--------------------------------------------------------------
technology
--------------------------------------------------------------*/
#technology .upper {
  padding-top: 12rem;
  background: linear-gradient(180deg, #86bab4 0%, #8abcb6 15%, #ebf5e7 55%);
}
#technology .s_hg {
  color: #fff;
}
@media screen and (max-width: 768px) {
  #technology .upper {
    background: linear-gradient(180deg, #86bab4 0%, #8abcb6 15%, #ebf5e7 40%);
    padding-top: 8rem;
  }
}

section.tech {
  padding-top: 9rem;
  padding-bottom: 13rem;
}
section.tech .hg_tech {
  color: #fff;
}
section.tech .hg_tech .tech {
  font-size: 4rem;
  font-weight: 400;
  text-align: center;
  font-family: "Poppins", sans-serif;
  margin-bottom: 2rem;
  letter-spacing: 0.2em;
}
section.tech .hg_tech .num {
  text-align: center;
  font-size: 10rem;
  font-family: "Poppins", sans-serif;
  font-weight: 200;
  margin-bottom: 1rem;
  line-height: 1;
}
section.tech .hg_tech .heading {
  text-align: center;
  margin-top: 0.7em;
  font-size: 4.6rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  font-weight: 500;
}
section.tech .hg_tech .lead {
  margin-top: 2em;
}
@media screen and (max-width: 768px) {
  section.tech {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  section.tech .hg_tech .tech {
    font-size: 3rem;
  }
  section.tech .hg_tech .num {
    font-size: 8rem;
  }
  section.tech .hg_tech .heading {
    font-size: 2.8rem;
  }
}
section.tech .bottletable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 3px;
  width: 100%;
  border-radius: 1.5rem;
  overflow: hidden;
  margin-top: 3rem;
}
section.tech .bottletable thead th {
  background: #00a98d;
  text-align: center;
  color: #fff;
  font-size: 1.8rem;
  height: 2.5em;
  vertical-align: middle;
}
section.tech .bottletable tbody {
  background: #fff;
}
section.tech .bottletable tbody th {
  font-size: 1.8rem;
  vertical-align: middle;
  text-align: center;
  width: 20%;
}
section.tech .bottletable tbody td {
  font-size: 1.6rem;
  line-height: 1.75;
  text-align: center;
  vertical-align: middle;
  padding: 1em;
}
section.tech .bottletable tbody tr:first-child th,
section.tech .bottletable tbody tr:first-child td {
  position: relative;
}
section.tech .bottletable tbody tr:first-child th::before,
section.tech .bottletable tbody tr:first-child td::before {
  content: "";
  display: block;
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 1px;
  border-bottom: 4px solid #fff;
}
section.tech .bottletable tbody tr:first-child th::after,
section.tech .bottletable tbody tr:first-child td::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 1px;
  border-bottom: 1px dashed #000;
}
section.tech .bottletable tbody tr:last-child th,
section.tech .bottletable tbody tr:last-child td:last-child {
  position: relative;
}
section.tech .bottletable tbody tr:last-child th::before,
section.tech .bottletable tbody tr:last-child td:last-child::before {
  content: "";
  display: block;
  position: absolute;
  top: -2px;
  left: 0;
  width: 1.5rem;
  height: 4px;
  background: #fff;
}
section.tech .bottletable tbody tr:last-child td:last-child::before {
  left: unset;
  right: 0;
}
@media screen and (max-width: 768px) {
  section.tech .table_wrapper {
    margin-right: -5vw;
    margin-left: -5vw;
    overflow: scroll;
  }
  section.tech .bottletable {
    width: auto;
    margin: 3rem 5vw auto;
    border-spacing: 2px;
    border-radius: 1.2rem;
  }
  section.tech .bottletable thead th {
    font-size: 1.5rem;
    height: 2.5em;
  }
  section.tech .bottletable tbody th {
    font-size: 1.5rem;
    width: 3em;
    padding: 0 1em;
    line-height: 1.2;
  }
  section.tech .bottletable tbody td {
    font-size: 1.4rem;
  }
  section.tech .bottletable tbody tr:last-child th::before,
section.tech .bottletable tbody tr:last-child td:last-child::before {
    width: 0.8rem;
  }
  section.tech .bottletable tbody tr:last-child td:last-child::before {
    left: unset;
    right: 0;
  }
}
section.tech .bottlephoto {
  margin-top: 3rem;
}
section.tech .bottlephoto img {
  border-radius: 1.5rem;
}
@media screen and (max-width: 768px) {
  section.tech .bottlephoto {
    margin-top: 3rem;
    overflow: scroll;
    margin-left: -5vw;
    margin-right: -5vw;
  }
  section.tech .bottlephoto img {
    border-radius: 1.5rem;
    min-width: 800px;
    margin-left: 5vw;
    margin-right: 5vw;
  }
}
section.tech .case {
  margin-top: 12rem;
}
section.tech .case .block {
  margin-top: 10rem;
}
section.tech .case .block hgroup {
  text-align: center;
  margin-bottom: 6rem;
}
section.tech .case .block hgroup .en {
  font-size: 3.4rem;
  font-weight: 600;
}
section.tech .case .block hgroup .heading {
  font-size: 4.2rem;
  color: #00a291;
}
section.tech .case .block hgroup .heading span {
  border-bottom: 1px solid #00a291;
}
section.tech .case .block dl {
  display: flex;
  flex-direction: column;
  gap: 6rem;
}
section.tech .case .block dl div {
  border-radius: 4.7rem 1.5rem;
  background: #81cac1;
  display: grid;
  grid-template-columns: 18rem auto;
  position: relative;
  padding: 0;
  display: flex;
}
section.tech .case .block dl div::after {
  content: "";
  display: block;
  width: 6.5rem;
  height: 6.4rem;
  background: url(../images/case_arrow.svg) center top/contain no-repeat;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, calc(100% - 1px));
}
section.tech .case .block dl div dt {
  width: 18rem;
  flex-grow: 0;
  flex-shrink: 0;
  display: grid;
  place-content: center;
  color: #fff;
  font-size: 6rem;
  font-family: "Poppins", sans-serif;
  padding: 0 0.7em;
  line-height: 1;
}
section.tech .case .block dl div dd {
  width: 100%;
  border-left: 1px solid #fff;
  padding: 3rem 5rem;
  font-size: 2.2rem;
  line-height: 1.75;
  color: #fff;
  letter-spacing: 0.15em;
  min-height: 16rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
section.tech .case .block dl div + div {
  background: #fff;
  border: 0.8rem solid #81cac1;
}
section.tech .case .block dl div + div::after {
  display: none;
}
section.tech .case .block dl div + div dt {
  color: #81cac1;
  width: 17.2rem;
}
section.tech .case .block dl div + div dd {
  border-left-color: #81cac1;
  color: #4d4d4d;
  font-size: 1.8rem;
  line-height: 1.7777777778;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 768px) {
  section.tech .case {
    margin-top: 8rem;
  }
  section.tech .case .block {
    margin-top: 6rem;
  }
  section.tech .case .block hgroup {
    margin-bottom: 4rem;
  }
  section.tech .case .block hgroup .en {
    font-size: 1.8rem;
  }
  section.tech .case .block hgroup .heading {
    font-size: 2.4rem;
  }
  section.tech .case .block dl {
    gap: 4rem;
  }
  section.tech .case .block dl div {
    border-radius: 2.4rem 0.8rem;
    grid-template-columns: 5rem auto;
  }
  section.tech .case .block dl div::after {
    width: 4.5rem;
    height: 4.4rem;
  }
  section.tech .case .block dl div dt {
    margin: 0;
    width: 5rem;
    font-size: 3rem;
    padding: 0em;
    text-align: left;
  }
  section.tech .case .block dl div dd {
    min-height: 10rem;
    margin: 0;
    padding: 2rem 2rem;
    font-size: 1.8rem;
  }
  section.tech .case .block dl div + div {
    border: 0.6rem solid #88d3b8;
  }
  section.tech .case .block dl div + div dt {
    width: 4.4rem;
  }
  section.tech .case .block dl div + div dd {
    font-size: 1.6rem;
  }
}

#tech2 {
  background: linear-gradient(180deg, #86bab4 0%, #8abcb6 10%, #ebf5e7 50%);
}
@media screen and (max-width: 768px) {
  #tech2 {
    background: linear-gradient(180deg, #86bab4 0%, #8abcb6 15%, #ebf5e7 40%);
  }
}
#tech2 .equipment {
  margin-top: 5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#tech2 .equipment li {
  width: 32%;
}
#tech2 .equipment li .heading {
  border-top-left-radius: 1.5rem;
  border-top-right-radius: 1.5rem;
  background: #fff;
  text-align: center;
  font-size: 2rem;
  line-height: 2;
  margin-bottom: 4px;
  font-weight: bold;
  letter-spacing: 0.1em;
}
#tech2 .equipment li .large {
  width: 100%;
  height: auto;
  aspect-ratio: 347/253;
  border-bottom-left-radius: 1.5rem;
  border-bottom-right-radius: 1.5rem;
  overflow: hidden;
}
#tech2 .equipment li .large img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#tech2 .equipment li .small {
  border: 4px solid #b5dbb6;
  border-radius: 1rem;
  width: 22rem;
  aspect-ratio: 222/162;
  margin-left: 10rem;
  margin-top: -6rem;
  position: relative;
}
#tech2 .equipment li .small img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#tech2 .equipment li p {
  margin: 3rem 2rem 6rem;
}
@media screen and (max-width: 768px) {
  #tech2 .equipment {
    margin-top: 3rem;
  }
  #tech2 .equipment li {
    width: 100%;
  }
  #tech2 .equipment li .heading {
    border-top-left-radius: 1.5rem;
    border-top-right-radius: 1.5rem;
    font-size: 1.8rem;
    line-height: 2;
  }
  #tech2 .equipment li .small {
    width: 50%;
    margin-left: 40%;
    margin-top: -15vw;
  }
  #tech2 .equipment li p {
    margin: 2rem 0 5rem;
  }
}
#tech2 .point .point_h {
  font-size: 3rem;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  width: 24rem;
  line-height: 2;
  background: #81cac1;
  border-top-right-radius: 1.5rem;
  color: #fff;
  text-align: center;
}
#tech2 .point .frame {
  border: 0.8rem solid #81cac1;
  border-radius: 0 1.4rem 4.5rem 1.4rem;
  background: #fff;
  padding: 5rem 6rem 8rem;
}
#tech2 .point .frame .lead {
  font-size: 3rem;
  font-weight: bold;
  letter-spacing: 0.05em;
}
#tech2 .point .frame .list {
  margin-top: 6rem;
}
#tech2 .point .frame .list li {
  margin-top: 5rem;
}
#tech2 .point .frame .list li hgroup {
  display: flex;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 3rem;
  margin-bottom: 4rem;
}
#tech2 .point .frame .list li hgroup .en {
  font-size: 2.6rem;
  font-weight: 500;
  font-family: "Poppins", sans-serif;
  letter-spacing: 0.2em;
  line-height: 1.3;
}
#tech2 .point .frame .list li hgroup h5 {
  font-size: 3.4rem;
  font-weight: 400;
  color: #00a291;
  border-bottom: 1px solid #00a291;
  line-height: 1.2;
}
#tech2 .point .frame .list li .body {
  display: flex;
  gap: 3rem;
  align-items: center;
}
#tech2 .point .frame .list li .body figure {
  width: 29rem;
  aspect-ratio: 29/21;
  flex-grow: 0;
  flex-shrink: 0;
  border-radius: 1.5rem;
  overflow: hidden;
}
#tech2 .point .frame .list li .body figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 768px) {
  #tech2 .point .point_h {
    font-size: 2.4rem;
    width: 18rem;
    line-height: 2;
  }
  #tech2 .point .frame {
    border: 0.6rem solid #88d3b8;
    border-radius: 0 1.4rem 4.5rem 1.4rem;
    padding: 3rem 3rem 4rem;
  }
  #tech2 .point .frame .lead {
    font-size: 2rem;
  }
  #tech2 .point .frame .list {
    margin-top: 4rem;
  }
  #tech2 .point .frame .list li {
    margin-top: 5rem;
  }
  #tech2 .point .frame .list li hgroup {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 3rem;
  }
  #tech2 .point .frame .list li hgroup .en {
    font-size: 2.1rem;
  }
  #tech2 .point .frame .list li hgroup h5 {
    font-size: 2.8rem;
  }
  #tech2 .point .frame .list li .body {
    flex-direction: column;
    gap: 2rem;
  }
  #tech2 .point .frame .list li .body figure {
    width: auto;
  }
  #tech2 .point .frame .list li .body p {
    margin: auto;
  }
}

/*--------------------------------------------------------------
closing
--------------------------------------------------------------*/
#closing {
  background: url(../images/closing_bg.jpg) center center/cover;
  padding: 24rem 0;
}
#closing p {
  text-align: center;
  font-size: 2.7rem;
  line-height: 1.7407407407;
  color: #4d4d4d;
  letter-spacing: 0.15em;
}
@media screen and (max-width: 768px) {
  #closing {
    padding: 10rem 0;
  }
  #closing p {
    font-size: 1.7rem;
    line-height: 1.7407407407;
  }
}

/*--------------------------------------------------------------
footer
--------------------------------------------------------------*/
footer {
  padding: 0;
}
footer .upper {
  padding: 7rem 0;
}
footer .inner {
  width: 120rem;
  margin: auto;
  padding: 0 5rem;
  position: relative;
  z-index: 5;
  display: flex;
  justify-content: space-between;
}
footer .name {
  font-size: 2.2rem;
}
footer .address {
  font-size: 1.8rem;
  margin-top: 0.3rem;
}
footer .tel {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1rem;
}
footer .tel .en {
  display: inline-block;
  background: #00a98d;
  color: #fff;
  font-size: 2.6rem;
  padding: 0 1em;
  line-height: 1.5384615385;
  border-radius: 1.5rem;
}
footer .tel .num {
  font-family: "Poppins", sans-serif;
  font-size: 3.3rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.1em;
}
footer .right a {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 1.5rem;
  color: #fff;
  font-size: 2.2rem;
  width: 60rem;
  height: 12rem;
  background: #00a98d;
  position: relative;
  transition: background-color 0.2s ease-in-out;
}
footer .right a::after {
  content: "";
  display: block;
  width: 3.2rem;
  height: 1px;
  position: absolute;
  top: 50%;
  right: 0;
  background: #fff;
  transition: right 0.2s ease-in-out;
}
footer .right a:hover {
  background: #88d3b8;
}
footer .right a:hover::after {
  right: -1rem;
}
footer .lower {
  padding: 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(90deg, #8abcb6, #ebf5e7);
}
footer .lower .corporate {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 1.4rem;
  gap: 1rem;
  line-height: 1;
}
footer .lower .corporate .arrow {
  display: flex;
}
footer .lower .copyright {
  font-size: 1.4rem;
}
@media screen and (max-width: 767px) {
  footer .upper {
    padding: 7rem 0;
  }
  footer .inner {
    width: 100%;
    padding: 0 5vw;
    flex-direction: column;
    gap: 4rem;
  }
  footer .name {
    font-size: 1.8rem;
  }
  footer .address {
    font-size: 1.6rem;
  }
  footer .tel .en {
    font-size: 2.1rem;
    border-radius: 1rem;
  }
  footer .tel .num {
    font-size: 2.4rem;
    letter-spacing: 0.1em;
  }
  footer .right a {
    font-size: 1.8rem;
    width: 100%;
    height: 8rem;
  }
  footer .right a::after {
    width: 2.2rem;
  }
  footer .lower {
    padding: 5vw;
    display: block;
  }
  footer .lower .corporate {
    justify-content: flex-end;
    font-size: 1.2rem;
  }
  footer .lower .copyright {
    margin-top: 2rem;
    text-align: right;
    font-size: 1.2rem;
  }
}
/*# sourceMappingURL=top.css.map */