@charset "utf-8";
.page_title {
  background: url(../img/page_title.png) no-repeat center center;
  background-size: cover;
}
.anchor_link {
  width: 90%;
  max-width: 920px;
  flex-wrap: wrap;
  gap: 20px 40px;
  margin: 0 auto 64px;
  a {
    width: calc(33.3% - 26.7px);
  }
  @media screen and (max-width: 767px) {
    flex-direction: row;
    align-items: initial;
    gap: 10px;
    a {
      width: calc(50% - 5px);
      padding-left: 10px;
    }
    a:nth-of-type(6) {
      font-size: min(1.5rem, 2.8vw);
      display: flex;
      align-items: center;
    }
    a::before {
      right: 10px;
    }
  }
}
main .container {
  max-width: 1120px;
}

.greeting_sec {
  padding-bottom: 120px;
  h2 {
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 48px;
  }
  @media screen and (max-width: 767px) {
    padding-bottom: 88px;
    h2 {
      margin-bottom: 32px;
    }
  }
}
.greeting_flex {
  position: relative;
  width: 100%;
  max-width: 1016px;
  margin: 0 auto;
  p.greeting_txt {
    width: 100%;
    max-width: 770px;
  }
  @media screen and (max-width: 767px) {
    
  }
}
.greeting_name {
  position: absolute;
  right: 0;
  bottom: -80px;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 20px 40px;
  p {
    display: flex;
    gap: 10px;
  }
  @media screen and (max-width: 767px) {
    position: relative;
    right: auto;
    bottom: auto;
    flex-direction: column;
    align-items: center;
    margin-top: 20px;
    p {
      width: 100%;
      flex-wrap: wrap;
      justify-content: flex-end;
    }
  }
}

.company_sec {
  padding: 88px 0;
  background: url(../img/company_bg.png)no-repeat center;
  background-size: cover;
  h2 {
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 48px;
  }
  @media screen and (max-width: 767px) {
    h2 {
      margin-bottom: 32px;
    }
  }
}
.company_inner {
  width: 100%;
  max-width: 1016px;
  margin: 0 auto;
}
.company_map {
  &:nth-of-type(1) {
    margin-top: 40px;
  }
  &:nth-of-type(2) {
    margin-top: 48px;
  }
  h3 {
    font-size: 2.2rem;
    letter-spacing: 0.88px;
    margin-bottom: 12px;
  }
}
.company_map--list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
  figure, iframe {
    width: calc(50% - 8px);
    max-width: 500px;
  }
  @media screen and (max-width: 767px) {
    flex-direction: column;
    figure, iframe {
      width: 100%;
    }
  }
}

.table_outer {
  table {
    width: 100%;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
  }
  tr {
    border-bottom: 1px solid #ccc;
  }
  tr:last-child {
    border-bottom: none;
  }
  th {
    width: 210px;
    color: #fff;
    text-align: center;
    padding: 16px 8px;
    font-weight: 400;
  }
  td {
    width: calc(100% - 210px);
    background: #fff;
    color: #222;
    text-align: left;
    padding: 16px 8px;
    padding-left: 64px;
    p {font-weight: 400;}
  }
  td span.address_span {
    display: inline-block;
    min-width: 125px;
  }
  @media screen and (max-width: 767px) {
    tr {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    th, td {
      width: 100%;
      padding: 10px 15px;
    }
  }
}
.table_outer.blue_dark {
  th {
    background: var(--blue-dark);
  }
}
.table_outer.blue_normal {
  th {
    background: var(--blue-normal);
  }
}


.owned_sec {
  padding: 88px 0;
  background: #F8F8F8;
  h2 {
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 32px;
  }
  @media screen and (max-width: 767px) {
    padding-bottom: 56px;
  }
}
.owned_flex {
  width: 100%;
  /* max-width: 769px; */
  /* margin: 0 auto 40px; */
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 40px 15px;
  figure {
    width: calc(33.3% - 10px);
    max-width: 329px;
  }
  figure:nth-of-type(8) {
    width: calc(66.7% - 5px);
    max-width: 674px;
  }
  figcaption {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 1.4rem;
    letter-spacing: 0.56px;
    margin-top: 28px;
  }
  .font_serif {
    font-size: 2.2rem;
    letter-spacing: 0.88px;
  }
  figure:nth-of-type(5) .font_serif {
    font-size: 2rem;
  }
  @media screen and (max-width: 767px) {
    justify-content: flex-start;
    align-items: initial;
    gap: 25px 10px;
    /* margin-bottom: 32px; */
    figure {
      width: calc(50% - 5px);
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    figure:nth-of-type(8) {
      width: 100%;
    }

    figcaption {
      margin-top: 6px;
    }
    .font_serif,
    figure:nth-of-type(5) .font_serif {
      font-size: min(2.2rem, 4vw);
    }
  }
}
.owned_flex + figure.w100 {
  width: 100%;
  max-width: 769px;
  margin: 0 auto;
  figcaption {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    font-size: 1.4rem;
    letter-spacing: 0.56px;
    margin-top: 28px;
  }
  .font_serif {
    font-size: 2.2rem;
    letter-spacing: 0.88px;
  }
  @media screen and (max-width: 767px) {
    
  }
}

.history_sec {
  padding: 80px 0 120px;
  background: url(../img/history_bg.png)no-repeat center;
  background-size: cover;
  h2 {
    color: #fff;
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 56px;
  }
  .table_outer {
    width: 100%;
    max-width: 1016px;
    margin: 0 auto;
  }
  @media screen and (max-width: 767px) {
    padding: 72px 0 96px;
    h2 {
      margin-bottom: 40px;
    }
  }
}

.recruit_sec {
  position: relative;
  background: url(../img/rec_bg.png)no-repeat center;
  background-size: cover;
  padding: 104px 0 72px;
  overflow: hidden;
  &::before {
    content: '';
    position: absolute;
    background: url(../img/rec_before.png)no-repeat center;
    background-size: contain;
    width: 1136px;
    height: 618px;
    top: 0;
    right: -10em;
  }
  @media screen and (max-width: 1366px) {
    &::before {
      right: -20em;
    }
  }
  @media screen and (max-width: 767px) {
    padding: 88px 0 64px;
    &::before {
      display: none;
    }
  }
}

.recruit_art:nth-child(1) {
  position: relative;
  top: 84px;
  /* margin-bottom: 340px; */
  margin-bottom: 390px;
  h3 {
    font-size: 3.2rem;
    letter-spacing: 1.28px;
    margin: 28px 0;

    font-size: 2.8rem;
    font-weight: normal;
  }
  h3 + p {
    width: 100%;
    max-width: 453px;
  }
  @media screen and (max-width: 767px) {
    top: auto;
    margin-bottom: 64px;
    padding-bottom: 70%;

    margin-bottom: 0px;
    h3 {
      font-size: 2.8rem;
      letter-spacing: 0.64px;

      font-size: 2.2rem;
    }
    figure.sp_block {
      position: absolute;
      bottom: 0;
      right: 0;
      left: -10%;
      margin: auto;
      width: 120%;
    }
  }
}
.recruit_art:nth-child(2) {
  h2 {
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 56px;
  }
  .table_outer {
    width: 100%;
    max-width: 1016px;
    margin: 0 auto;
  }
  @media screen and (max-width: 767px) {
    
  }
}
.recruit_art--not {
  font-size: 2.4rem;
  letter-spacing: 2.4px;
  @media screen and (max-width: 767px) {
    font-size: 1.8rem;
    letter-spacing: 1.8px;
  }
}


.sdgs_sec {
  background: url(../img/sdgs_bg.png)no-repeat center;
  background-size: cover;
  padding: 104px 0 72px;
  h2 {
    border-bottom: 1px solid #CCC;
    padding-bottom: 20px;
    margin-bottom: 48px;
  }
  @media screen and (max-width: 767px) {
    h2 {
      margin-bottom: 32px;
    }
  }
}
.sdgs_intro {
  width: 100%;
  max-width: 1016px;
  margin: 0 auto 48px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 40px;
  figure {
    width: 100%;
    max-width: 210px;
  }
  @media screen and (max-width: 767px) {
    flex-direction: column;
    align-items: center;
    gap: 28px;
  }
}
.sdgs_art:has(.sdgs_art--tt){
  align-items: center;
}
.sdgs_art {
  width: 100%;
  max-width: 1024px;
  margin: 0 auto 28px;
  background: #fff;
  padding: 56px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  &:last-of-type {
    margin-bottom: 0;
  }
  @media screen and (max-width: 767px) {
    padding: 40px 5%;
    flex-direction: column;
    align-items: center;
    gap: 28px;
  }

  .under_link{
    text-decoration: underline;
    text-underline-offset: 0.2em;
    display: inline-block;
    margin-top: 2rem;

    &:hover{
      text-decoration: none;
    }
  }
}

.sdgs_art--figure {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 12px;
  min-width: 160px;
  figure {
    width: 74px;
    height: 74px;
  }
  @media screen and (max-width: 767px) {
    width: 160px;
  }
}
.sdgs_art--txt {
  width: 100%;
  h3 {
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 2.2rem;
    letter-spacing: 0.88px;
    margin-bottom: 28px;
  }
  & + figure {
    width: 336px;
    min-width: 336px;
  }
  @media screen and (max-width: 767px) {
    & + figure {
      width: 100%;
      min-width: initial;
      display: flex;
      justify-content: center;
    }
  }

  .cmn_btn{
    display: block;
    margin: 20px auto 0;
    max-width: 310px;
  }
}
.sdgs_art--txt h4{
  font-family: var(--font-serif);
  font-size: 2.2rem;
  margin-bottom: 3rem;
  text-align: center;
  font-weight: 400;
}
.sdgs_art:nth-of-type(1) .sdgs_art--txt h3 {
  @media screen and (max-width: 767px) {
    display: none;
  }
}


@media print {
  .recruit_sec::before {width: 960px;}
}