h1 {
  color: white;
  font-size: min(3.65vw, 60px);
  font-weight: bold;
  border-bottom: 2px solid white;
  width: fit-content;
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}

.max-1350 {
  display: none;
}

@media screen and (min-width: 1000px) and (max-width: 1349px) {
  .max-1350 {
    display: unset;
  }
}

.mobile-only {
  display: none;
}

@media screen and (max-width: 600px) {
  .mobile-only {
    display: unset;
  }
}

a[href^=tel] {
  color: inherit;
  text-decoration: none;
}

.f-bold {
  font-weight: bold;
}

.message-landing {
  width: 100%;
  justify-content: flex-start;
  position: relative;
}

.message-landing .landing-img {
  width: 100%;
}

.message-landing .landing-img img {
  width: 100%;
}

.message-video {
  align-items: center;
  text-align: center;
}

.message-video .video-container {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 56.25%;
  margin-bottom: clamp(25px, 15vw, 60px);
}

.message-video .video-container .title-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.message-video h3 {
  font-size: 24px;
  font-weight: bold;
  margin-bottom: 15px;
}

.message-video p {
  width: 600px;
  max-width: 80%;
}

.message-greetings {
  margin: min(7.81vw, 180px) 0 0 0;
}

.message-greetings .content-area {
  background-color: #E3F4ED;
  max-width: 87%;
  z-index: 1;
}

.message-greetings .content-area .inner-container {
  align-items: center;
  margin: 8vw 4vw 8vw 31vw;
}

.h2-aligned-title {
  gap: min(5.33vw, 20px);
}

.message-greetings .content-area .inner-container .headline {
  font-size: 24px;
  margin: 2rem 0 1rem 0;
}

.message-greetings .content-area .inner-container p {
  font-size: 16px;
  line-height: 2em;
  margin-bottom: 90px;
}

.message-greetings .l-t-img {
  display: unset;
  position: absolute;
  left: 0;
  margin-top: -8vw;
  width: 28vw;
  z-index: 2;
}

.message-greetings .r-b-img {
  display: unset;
  position: absolute;
  margin-top: 41vw;
  right: 0;
  width: 23vw;
  z-index: 2;
}

@media screen and (max-width: 1200px) {
  .message-greetings .content-area .inner-container p {
    font-size: 16px;
  }
}

@media screen and (max-width: 1000px) {

  .message-greetings .l-t-img,
  .message-greetings .r-b-img {
    display: none;
  }
}

@media screen and (max-width: 1000px) {
  .message-greetings .content-area {
    max-width: 90%;
    padding-top: 1rem;
    margin: 0 auto;
  }

  .message-greetings .content-area .inner-container {
    margin: unset;
  }

  .message-greetings .content-area .inner-container .headline {
    font-size: min(4.27vw, 16px);
  }

  .message-greetings .content-area .inner-container p {
    font-size: min(3.73vw, 14px);
    margin: 0 2em 2em;
    text-align: justify;
  }
}

.mission-vision {
  padding: 10vw 0;
  width: 100%;
  background: url(../img/message/mission-vision-bg.svg) no-repeat;
  background-size: cover;
}

.mission-vision .mission-container {
  align-items: center;
  justify-content: center;
}

.mission-vision .mission-container .h2-aligned-title {
  justify-self: unset;
}

.mission-vision .mission-container .two-col .left-col {
  width: 74%;
  background-color: #f5f5f5;
  padding: 2rem 18.6vw 60px 0;
}

.mission-vision .mission-container .two-col .left-col .headline {
  margin: 0 0 2rem 96px;
  font-size: min(5.33vw, 20px);
}

.mission-vision .mission-container .two-col .left-col p {
  width: clamp(300px, 26vw, 700px);
  margin: 0 0 0 5vw;
}

.mission-vision .mission-container .two-col .right-col {
  min-width: 30vw;
  object-fit: cover;
  margin: 0 14.5vw 0 -14.5vw;
}

.mission-vision .mission-container .two-col .right-col img {
  width: 600px;
  margin-top: 30px;
}

.mission-area {
  width: 100%;
  margin-top: 40px;
}

.mission-area .mission-content-wrap {
  position: relative;
  padding: 50px 0;
}

.mission-area .mission-content-wrap:not(:first-of-type) {
  margin-top: 120px;
}

.mission-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 56%;
  height: 100%;
}

.mission-img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  object-position: 30% 50%;
}

.mission-content-inner {
  background: #E3F4ED;
  padding: min(4.17vw, 80px) min(5.73vw, 110px);
  position: relative;
  width: 50%;
  max-width: 680px;
  margin-left: 45%;
  box-sizing: border-box;
}

.mission-area .mission-content-wrap:nth-of-type(2n) .mission-img {
  left: auto;
  right: 0;
}

.mission-area .mission-content-wrap:nth-of-type(2n) .mission-content-inner {
  left: auto;
  right: 0;
  margin-left: auto;
  margin-right: 46%;
}

.mission-area .mission-content-wrap:nth-of-type(2n) .mission-img img {
  object-position: 14% 50%;
}

.mission-content-inner h3 {
  font-size: 24px;
  margin-bottom: 1em;
  font-family: YuGothic, "Yu Gothic Medium", "Yu Gothic", "Noto Sans JP", Meiryo, sans-serif;
}

.mission-content-inner p {
  min-height: 18em;
  text-align: justify;
}

@media screen and (max-width: 1600px) {
  .mission-vision {
    background: url(../img/message/mission-vision-bg.svg) no-repeat;
    background-size: cover;
  }

  .mission-vision .mission-container {
    margin-left: 5vw;
  }

  .mission-vision .mission-container .two-col .left-col p {
    width: unset;
  }
}

@media screen and (max-width: 1000px) {
  .mission-vision {
    padding-top: 60px;
  }

  .mission-vision .mission-container {
    margin: 0 auto;
    justify-content: center;
    align-items: center;
  }

  .mission-vision .mission-container .h2-aligned-title {
    align-self: center;
  }

  .mission-vision .mission-container .two-col {
    flex-direction: column-reverse;
    width: 90%;
  }

  .mission-vision .mission-container .two-col .left-col {
    width: 100%;
    padding: 1rem 0 0 0;
  }

  .mission-vision .mission-container .two-col .left-col .headline {
    margin: 0 0 0 10%;
    font-size: 18px;
  }

  .mission-vision .mission-container .two-col .left-col p {
    width: 90%;
  }

  .mission-vision .mission-container .two-col .right-col {
    margin: unset;
    min-width: unset;
    width: 100%;
  }

  .mission-vision .mission-container .two-col .right-col img {
    width: 100%;
  }
}

.mission-vision .vision-container {
  background: url(../img/message/vision-banner-clean.jpg) top 80% left no-repeat;
  background-size: 100%;
  margin: 11.5vw 0 0 0;
}

.mission-vision .vision-container .vision-image {
  width: clamp(275px, 35vw, 750px);
  position: absolute;
  left: 0;
  z-index: 1;
}

.mission-vision .vision-container .h2-aligned-title {
  align-self: center;
  z-index: 2;
}

.mission-vision .vision-container .content-container {
  background-color: white;
  margin: 2rem auto 0 auto;
  width: clamp(320px, 67vw, 800px);
  z-index: 2;
  align-items: center;
}

.mission-vision .vision-container .content-container .headline {
  font-size: min(6.4vw, 24px);
  margin-top: 2rem;
}

.mission-vision .vision-container .content-container p {
  margin: 1rem 7.8vw 7.8vw 7.8vw;
  text-align: justify;
}

@media screen and (max-width: 1200px) {
  .mission-vision .vision-container .vision-image {
    display: none;
  }
}

@media screen and (max-width: 1000px) {
  .mission-vision .vision-container .content-container {
    width: 90%;
    margin-top: 14px;
  }

  .mission-vision .vision-container .content-container .headline {
    padding: inherit 1rem;
    text-align: center;
    font-size: min(5.33vw, 20px);
  }
}

@media screen and (max-width: 800px) {
  .mission-vision .vision-container {
    background: unset;
    margin-top: 60px;
  }
}

.company-landing {
  position: relative;
}

.company-member {
  width: 100%;
  background-color: white;
}

.company-member .center-col {
  width: 58%;
  max-width: 1114px;
  margin: 0 auto 0 auto;
}

@media screen and (max-width: 1000px) {
  .company-member .center-col {
    width: 82%;
  }
}

.company-member .company-member-col {
  padding: 80px 0 40px 0;
}

.company-member .company-member-col .h2-aligned-title {
  width: fit-content;
  margin: 0 auto 8vw auto;
  gap: min(5.33vw, 20px);
}

.company-member .company-member-col .content-card {
  width: 100%;
  margin: 50px 0 100px 0;
}

.company-member .company-member-col .content-card img {
  width: 45%;
  max-width: 500px;
  max-height: 500px;
  object-fit: cover;
}

.company-member .company-member-col .content-card .text-block {
  justify-content: center;
  margin: 0 auto 0 3vw;
  width: 500px;
}

.company-member .company-member-col .content-card .text-block .title-group {
  justify-content: center;
}

.company-member .company-member-col .content-card .text-block .title-group .subtitle {
  font-size: min(5.33vw, 20px);
}

.company-member .company-member-col .content-card .text-block .title-group h3 {
  font-size: min(5.33vw, 20px);
  margin-bottom: 1rem;
  font-weight: 400;
}

.company-member .company-member-col .content-card .text-block .title-group h3 .h3-highlight {
  font-size: 30px;
}

.company-member .company-member-col .content-card .text-block p {
  font-weight: 700;
  line-height: 35px;
  text-align: justify;
}

.company-member .company-member-col .content-card.fx-row-rev .text-block {
  margin: 0 3vw 0 auto;
}

@media screen and (max-width: 1200px) {
  .company-member .company-member-col .content-card {
    margin: 0 0 28px 0;
    flex-direction: column;
  }

  .company-member .company-member-col .content-card img {
    align-self: center;
    width: 100%;
    max-height: unset;
  }

  .company-member .company-member-col .content-card .text-block {
    width: 100%;
    margin: 5vw auto;
  }

  .company-member .company-member-col .content-card .text-block .title-group {
    letter-spacing: 3px;
  }

  .company-member .company-member-col .content-card .text-block .title-group .subtitle {
    font-size: min(4.27vw, 16px);
    margin-bottom: 5px;
  }

  .company-member .company-member-col .content-card .text-block .title-group h3 {
    font-size: min(4.8vw, 18px);
    margin-bottom: 10px;
  }

  .company-member .company-member-col .content-card .text-block .title-group h3 .h3-highlight {
    font-size: min(6.4vw, 24px);
  }

  .company-member .company-member-col .content-card.fx-row-rev .text-block {
    margin: 5vw auto;
  }
}

.company-about {
  background-color: unset;
  width: 100%;
  padding: 8.6vw 0 74px 0;
}

.company-about .section-content {
  text-align: center;
}

.company-about .section-content .h2-aligned-title {
  margin: 0 auto 3em auto;
  width: fit-content;
  gap: min(5.33vw, 20px);
}

.company-about .two-col-table {
  align-items: center;
  border-collapse: collapse;
  color: #2F2F2F;
  display: flex;
  font-size: min(5.33vw, 20px);
  font-weight: 400;
  justify-content: center;
  table-layout: auto;
  width: 100%;
}

.company-about .two-col-table th,
.company-about .two-col-table td {
  border-top: 1px solid #2F2F2F;
  padding: 1rem 0;
}

.company-about .two-col-table th:last-of-type,
.company-about .two-col-table td:last-of-type {
  border-bottom: 1px solid #2F2F2F;
}

@media screen and (max-width: 800px) {

  .company-about .two-col-table th,
  .company-about .two-col-table td {
    font-size: 14px;
  }
}

.company-about .two-col-table th {
  width: clamp(200px, 33vw, 400px);
  text-align: center;
  font-weight: 400;
}

.company-about .two-col-table td {
  text-align: start;
  width: clamp(300px, 40vw, 600px);
  padding-left: 2rem;
}

@media screen and (max-width: 850px) {
  .company-about .two-col-table {
    font-size: 16px;
  }
}

.company-access {
  display: flex;
  background-color: white;
  flex-direction: column;
  justify-content: center;
  align-content: center;
  font-weight: 700;
  padding: 0;
  width: 100%;
}

.company-access .section-content {
  align-self: center;
  width: 100%;
  margin-top: 75px;
  margin-bottom: 80px;
  max-width: 1000px;
}

.company-access .section-content>* {
  align-self: flex-start;
  margin: 0 0 2rem 0;
}

.company-access .section-content iframe {
  width: 100%;
  aspect-ratio: 2 / 1;
}

.company-access .section-content .h2-aligned-title {
  align-self: center;
  gap: min(5.33vw, 20px);
}

.company-access .section-content .two-col-group {
  font-size: min(5.33vw, 20px);
}

.company-access .section-content .two-col-group .right-col {
  align-self: flex-end;
  margin-left: 6vw;
}

.company-access .g-maps {
  align-self: center;
  height: clamp(300px, 60vh, 600px);
  margin: 0 0 7.5vw 0;
  width: 100%;
}

@media screen and (max-width: 1200px) {
  .company-access .section-content {
    width: 80%;
  }
}

@media screen and (max-width: 900px) {
  .company-access .section-content {
    width: 80%;
  }

  .company-access .section-content .two-col-group {
    font-size: 14px;
  }
}

@media screen and (max-width: 600px) {
  .company-access .section-content .two-col-group {
    flex-direction: column;
  }

  .company-access .section-content .two-col-group .right-col {
    margin-left: 0;
    align-self: unset;
  }
}

.privacy-landing {
  position: relative;
}

.page-privacy {
  margin-bottom: 100px;
}

.page-privacy h2 {
  font-size: min(5.33vw, 20px);
}

.page-privacy h2.komidashi {
  font-size: min(6.4vw, 24px);
}

.page-privacy ol {
  padding-left: 40px;
  margin-top: 1rem;
}

.page-privacy .komidashi {
  text-align: center;
  margin-bottom: 60px;
}

.page-privacy p,
.page-privacy li {
  text-align: justify;
}

.regulation-landing h1.regulation-gbh {
  font-size: 14px;
}

@media screen and (min-width: 801px) {
  .regulation-landing h1.regulation-gbh {
    font-size: clamp(16px, 3vw, 50px);
  }
}

.table-container {
  width: 960px;
  max-width: 92%;
  margin: clamp(20px, 5vw, 60px) auto clamp(60px, 15vw, 250px) auto;
}

.table-container .reg-table {
  width: 100%;
}

.table-container .reg-table .border-row {
  width: 100%;
  border-bottom: 1px solid #47b389;
}

.table-container .reg-table .border-row.first-line {
  border-top: 1px solid #47b389;
}

.table-container .reg-table .border-row .table-block {
  box-sizing: border-box;
  display: block;
  padding: 24px 0;
  line-height: 160%;
}

.table-container .reg-table .border-row .table-block a {
  color: #47b389;
}

.table-container .reg-table .border-row .table-block p {
  margin-bottom: 1em;
}

.table-container .reg-table .border-row .table-block:first-child {
  width: 38.5%;
  min-width: 100px;
  font-weight: 700;
  padding: 1.5em 1em 1.5em 0;
}

.table-container .reg-table .border-row .table-block:last-child {
  width: 61.5%;
  font-weight: 400;
  padding: 1.5em 0 1.5em 0;
}

.table-container .reg-table .border-row .table-block:last-child ul {
  list-style-type: none;
  text-align: start;
  margin-right: 1em;
}

@media screen and (max-width: 600px) {
  .table-container .reg-table .border-row {
    flex-direction: column;
  }

  .table-container .reg-table .border-row .table-block:first-child,
  .table-container .reg-table .border-row .table-block:last-child {
    width: 100%;
  }

  .table-container .reg-table .border-row .table-block:first-child {
    padding: 1.5em 0 0.5em 0;
  }

  .table-container .reg-table .border-row .table-block:last-child {
    padding: 0em 0 1.5em 0;
  }
}


@media screen and (max-width:768px) {
  h1 {
    font-size: min(5.33vw, 28px);
    translate: -50% -20%;
  }

  .message-landing {
    background: url(../img/message/landing-cover-sp.png) no-repeat;
    background-size: contain;
    height: auto;
  }

  .message-greetings {
    margin-top: 50px;
  }

  .message-greetings .content-area .inner-container .headline {
    margin: 1em 0;
  }

  .mission-area {
    margin-top: 14px;
  }

  .mission-area .mission-content-wrap {
    width: 90%;
    margin: 0 auto;
    padding: 0;
  }

  .mission-area .mission-content-wrap:not(:first-of-type) {
    margin-top: 30px;
  }

  .mission-img {
    position: relative;
    width: 100%;
  }

  .mission-content-inner {
    width: 100%;
    margin-left: 0;
    padding: 1em;
    box-sizing: border-box;
  }

  .mission-content-inner h3 {
    font-size: min(5.33vw, 20px);
    margin-bottom: 0.5em;
  }

  .mission-area .mission-content-wrap:nth-of-type(2n) .mission-content-inner {
    margin-right: 0;
  }

  .mission-content-inner p {
    min-height: 0;
  }

  .privacy-landing .green-bar-h1 {
    font-size: min(4.33vw, 28px);
  }

  .page-privacy .komidashi {
    margin-bottom: 40px;
  }

  .page-privacy h2 {
    margin-top: 30px;
  }

  .page-privacy li {
    font-size: min(3.73vw, 14px);
  }

  .company-access .section-content {
    margin-top: 50px;
    margin-bottom: 50px;
  }
}