@charset "UTF-8";

*, *::before, *::after {
  box-sizing: border-box;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, main, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  background: transparent;
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

main, article, aside, details, figcaption, figure, img, video, footer, header, hgroup, menu, nav, section {
  display: block;
}

:root {
  --main-color: #0a7463;
}

body {
  background: #fff;
  color: #000;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 17px;
  line-height: 1.7;
}

ul, ol, li {
  list-style: none;
}

img {
  height: auto;
  max-width: 100%;
}

a {
  color: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  transition: opacity 3s;
}

a:hover {
  opacity: .8;
}

h2 {
  color: var(--main-color);
  font-size: clamp(18px, calc(.75vw + 15.6px), 21.25px);
  line-height: 1.5;
  margin-bottom: 10px;
  text-align: center;
}

#note_text {
  color: #999;
  font-size: 11px;
  margin-top: 20px;
  padding-bottom: 45px;
}

.wrapper {
  overflow: hidden;
}

.section__main-visual {
  background: url(main.png) no-repeat center / cover;
}

.main-visual__container {
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  max-width: 100%;
  padding: 30px 0 180px;
  width: min(900%, 96%);
}

.photos {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
  margin-top: 18px;
}

.photo {
  box-shadow: 0 4px 10px rgba(0, 0, 0, .8);
}

.info-box {
  align-items: center;
  background-color: var(--main-color);
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-top: 10px;
  min-height: clamp(50px, calc(4.2857vw + 36.2857px), 68px);
  padding: 5px;
}

.info-box p {
  color: #fff;
  line-height: 1.4;
  text-align: center;
}

.info-box .name {
  font-size: clamp(12px, calc(1.9048vw + 5.9048px), 20px);
}

.info-box .name span, .info-box .company {
  font-size: clamp(12px, calc(.9524vw + 9.9524px), 16px);
}

.section-container {
  background-color: #fff;
  margin: 0 auto;
  position: relative;
  width: min(900px, 92%);
}

.section {
  position: relative;
}

.section-container .section__background-image {
  position: relative;
}

.section-container .section__background-image::before {
  background: url(back.png) no-repeat top center / 100% auto;
  content: "";
  display: block;
  height: calc(100vw * .737);
  left: 50%;
  position: absolute;
  top: 140px;
  transform: translateX(-50%);
  width: 100vw;
  z-index: -1;
}


.section-container .section {
  padding: 0 clamp(15px, calc(14.2857vw - 30.7143px), 100px);
}

.section-container .section:first-child {
  margin-top: -140px;
}

.section__header {
  margin-bottom: 45px;
  padding-top: 45px;
}

.text {
  font-size: clamp(16px, calc(.375vw + 14.8px), 17.7px);
  margin-bottom: 45px;
  text-indent: 1em;
}

.text--padding-bottom-45 {
  padding-bottom: 45px;
}

.text--padding-bottom-90 {
  padding-bottom: 90px;
}

.text:last-child {
  margin-bottom: 0;
}

.next {
  align-items: center;
  display: flex;
  font-size: clamp(16px, calc(1.1628vw + 12.2790px), 21px);
  gap: 5px;
  margin-top: 45px;
}

.aside {
  background-color: var(--main-color);
  padding: 50px 0 60px;
}

.aside .aside__container {
  background-color: #fff;
  margin: 0 auto;
  text-align: center;
  width: min(700px, 92%);
}

.aside .aside__container .link {
  display: block;
  padding: 50px 15px;
  word-break: break-all;
}

.aside .aside__container .link img {
  margin: 0 auto;
}

.aside .aside__container .link p {
  color: var(--main-color);
  font-size: clamp(16px, calc(1.1628vw + 12.2790px), 21px);
  margin-top: 21px;
  text-decoration: underline;
}

.footer {
  background-color: #fff;
  padding-top: 50px;
}

@media screen and (max-width: 940.9px) {
  .section-container .section__background-image::before {
    background: url(back.png) no-repeat top center / cover;
    content: "";
    display: block;
    height: 922px;
    left: 50%;
    position: absolute;
    top: 140px;
    transform: translateX(-50%);
    width: 1250px;
    z-index: -1;
  }
}

@media screen and (max-width: 550.9px) {
  .photos li {
    width: 29%;
  }
}