@charset "UTF-8";
/* -----------------------------------
  global
----------------------------------- */
/* global > color
----------------------------------- */
:root {
  --color-base: #fff;
  --color-main: #004f43;
  --color-sub: #037942;
  --color-accent: #e6a85c;
  --color-text: #333;
  --color-alert: #cd3939;
  --color-bg-beige: #fffef0;
  --color-bg-light-green: #f7fafa;
  --color-bg-linear-gradient: linear-gradient(90deg, rgba(0, 79, 67, 1), rgba(3, 121, 66, 1) 50%, rgba(0, 79, 67, 1));
}

/* global > font
----------------------------------- */
:root {
  /* Base font family for the entire document */
  --font-family-base: "Montserrat",
  -apple-system,
  BlinkMacSystemFont,
  "Noto Sans JP",
  "Hiragino Kaku Gothic ProN",
  "Hiragino Sans",
  Meiryo,
  sans-serif;
  /* Japanese font family for the entire document */
  --font-family-ja: "Noto Sans JP",
  "Hiragino Kaku Gothic ProN",
  "Hiragino Sans",
  Meiryo,
  sans-serif;
}

/* global > content-width
----------------------------------- */
:root {
  --width-content: 1120px;
  --width-content-md: 800px;
  --width-content-s: 720px;
}

/* global > view-width
----------------------------------- */
:root {
  --width-sp: 390;
  --width-pc: 1440;
}

/* -----------------------------------
  foundation
----------------------------------- */
/* foundation > base
----------------------------------- */
html {
  font-size: 100%;
  scroll-padding-top: 60px;
}
@media screen and (min-width: 768px) {
  html {
    scroll-padding-top: 80px;
  }
}

body {
  background-color: var(--color-base);
  color: var(--color-text);
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
body.no-scroll {
  overflow: hidden;
  height: 100vh;
  position: fixed;
  width: 100%;
}

main {
  -webkit-margin-before: 60px;
          margin-block-start: 60px;
}
@media screen and (min-width: 768px) {
  main {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

ol,
ul {
  list-style: none;
}

a {
  text-decoration: none;
  color: inherit;
}

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

/* -----------------------------------
  utilities
----------------------------------- */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
}

.u-center {
  text-align: center;
}

.u-no-sp {
  display: none;
}

@media screen and (min-width: 768px) {
  .u-no-sp {
    display: block;
  }
}
@media screen and (min-width: 768px) {
  .u-no-pc {
    display: none;
  }
}
/* -----------------------------------
  component
----------------------------------- */
/* component > c-button
----------------------------------- */
.c-button {
  display: inline-block;
  padding-block: 12px;
  padding-inline: 40px;
  border-radius: 100px;
  border: 2px solid;
  color: var(--color-main);
  background-color: var(--color-base);
  font-weight: 700;
  line-height: 1.5;
}

@media (any-hover: hover) {
  .c-button {
    -webkit-transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
    transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
  }
  .c-button:hover {
    border-color: var(--color-main);
    background-color: var(--color-main);
    color: var(--color-base);
  }
}
/* component > c-cta-button
----------------------------------- */
.c-cta-button {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 20px;
  padding-block: 12px;
  padding-inline: 30px 22px;
  border-radius: 100px;
  border: 2px solid var(--color-main);
  color: var(--color-base);
  background-color: var(--color-main);
  font-weight: 700;
  line-height: 1.5;
}
.c-cta-button::after {
  content: "";
  width: 8px;
  height: 12px;
  background-color: currentColor;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.c-cta-button--header {
  padding-block: 10px;
  padding-inline: 24px;
}
.c-cta-button--header::after {
  display: none;
}
.c-cta-button--ctaSection {
  padding-block: 14px;
  padding-inline: 38px 30px;
  border: 2px solid var(--color-accent);
  color: var(--color-main);
  background-color: var(--color-accent);
}

@media (any-hover: hover) {
  .c-cta-button {
    -webkit-transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
    transition: border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease;
  }
  .c-cta-button:hover {
    background-color: var(--color-base);
    color: var(--color-main);
  }
  .c-cta-button--ctaSection:hover {
    border-color: var(--color-main);
  }
}
@media screen and (max-width: 1023px) {
  .c-cta-button--header {
    display: block;
    padding-block: 16px;
    padding-inline: 0;
    border: none;
    background-color: transparent;
    font-weight: 400;
    line-height: 1.8;
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
}
@media screen and (max-width: 1023px) and (any-hover: hover) {
  .c-cta-button--header:hover {
    background-color: transparent;
    color: var(--color-base);
    opacity: 0.75;
  }
}
/* component > c-title
----------------------------------- */
.c-title {
  line-height: 1.5;
}

.c-title__en {
  color: var(--color-main);
  font-size: 18px;
  letter-spacing: 0.03em;
}

.c-title__ja {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.c-title--white .c-title__en {
  color: var(--color-accent);
}
.c-title--white .c-title__ja {
  color: var(--color-base);
}

@media screen and (min-width: 768px) {
  .c-title__en {
    font-size: 24px;
  }
  .c-title__ja {
    font-size: 32px;
  }
}
/* component > c-report-card
----------------------------------- */
.c-report-card {
  display: grid;
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.c-report-card a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
      -ms-flex-direction: column-reverse;
          flex-direction: column-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.c-report-card__content {
  padding-block: 24px;
  padding-inline: 24px;
}

.c-report-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 20px;
  font-size: 12px;
  line-height: 1;
}

.c-report-card__category {
  padding-block: 6px;
  padding-inline: 10px;
  background-color: var(--color-main);
  color: var(--color-base);
}

.c-report-card__date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
}

.c-report-card__title {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.c-report-card__thumbnail {
  overflow: hidden;
}
.c-report-card__thumbnail img {
  width: 100%;
  aspect-ratio: 694/462;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (any-hover: hover) {
  .c-report-card a img {
    -webkit-transition: scale 0.3s ease;
    transition: scale 0.3s ease;
  }
  .c-report-card a:hover img {
    scale: 1.04;
  }
}
/* component > c-faq-item
----------------------------------- */
.c-faq-item:not(:last-child) {
  -webkit-padding-after: 32px;
          padding-block-end: 32px;
  border-bottom: 1px solid #ddd;
}
.c-faq-item dt,
.c-faq-item dd {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 16px;
}
.c-faq-item dd {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.c-faq-item__q-icon,
.c-faq-item__a-icon {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  -webkit-padding-after: 3px;
          padding-block-end: 3px;
  border-radius: 50%;
  border: 1px solid var(--color-main);
  font-family: var(--font-family-ja);
  font-weight: 700;
  line-height: 1;
}

.c-faq-item__q-icon {
  background-color: var(--color-main);
  color: var(--color-base);
}

.c-faq-item__a-icon {
  color: var(--color-main);
}

.c-faq-item__q-description,
.c-faq-item__a-description {
  -webkit-padding-before: 3px;
          padding-block-start: 3px;
}

.c-faq-item__a-description p + p,
.c-faq-item__a-description ul + p {
  -webkit-margin-before: 1em;
          margin-block-start: 1em;
}
.c-faq-item__a-description ul li {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.c-faq-item__a-description ul li::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}
.c-faq-item__a-description a {
  text-decoration: underline;
  text-underline-offset: 2px;
  -webkit-text-decoration-skip-ink: none;
          text-decoration-skip-ink: none;
}
.c-faq-item__a-description a img {
  display: inline-block;
  -webkit-margin-start: 6px;
          margin-inline-start: 6px;
  vertical-align: middle;
}

@media screen and (min-width: 768px) {
  .c-faq-item dt,
  .c-faq-item dd {
    gap: 20px;
  }
  .c-faq-item__q-description,
  .c-faq-item__a-description {
    max-width: 720px;
  }
}
/* component > c-page-kv
----------------------------------- */
.c-page-kv {
  padding-block: 64px 100px;
  text-align: center;
}

.c-page-kv__title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.c-page-kv__title span {
  display: inline-block;
}

@media screen and (min-width: 768px) {
  .c-page-kv {
    padding-block: 100px 140px;
  }
  .c-page-kv__title {
    font-size: 40px;
  }
}
/* component > c-breadcrumb
----------------------------------- */
.c-breadcrumb {
  margin-block: 116px 12px;
  font-size: 12px;
}
.c-breadcrumb a {
  display: inline-block;
  padding-block: 4px;
}
.c-breadcrumb .current-item {
  color: var(--color-accent);
  font-weight: 700;
}

@media screen and (min-width: 768px) {
  .c-breadcrumb {
    margin-block: 156px 12px;
    font-size: 14px;
  }
}
/* component > c-pagination
----------------------------------- */
.c-pagination .nav-links {
  font-family: var(--font-family-ja);
}
.c-pagination .nav-links ul {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 16px;
}
.c-pagination .nav-links li > * {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 14px;
  font-weight: 700;
}
.c-pagination .nav-links li > *:not(.dots) {
  width: 32px;
  height: 32px;
  border: 1px solid var(--color-main);
}
.c-pagination .nav-links li > .current {
  background-color: var(--color-main);
  color: var(--color-base);
}
.c-pagination .nav-links li > .prev::before,
.c-pagination .nav-links li > .next::before {
  content: "";
  width: 10px;
  height: 10px;
  border-bottom: 2px solid;
  border-left: 2px solid;
  margin-inline: 4px 0;
  rotate: 45deg;
}
.c-pagination .nav-links li > .next::before {
  rotate: 225deg;
  margin-inline: 0 4px;
}

@media screen and (min-width: 768px) {
  .c-pagination .nav-links ul {
    gap: 20px;
  }
  .c-pagination .nav-links li > * {
    font-size: 16px;
  }
  .c-pagination .nav-links li > *:not(.dots) {
    width: 40px;
    height: 40px;
  }
  .c-pagination .nav-links li > .prev::before,
  .c-pagination .nav-links li > .next::before {
    width: 12px;
    height: 12px;
    margin-inline: 6px 0;
  }
  .c-pagination .nav-links li > .next::before {
    margin-inline: 0 6px;
  }
}
@media (any-hover: hover) {
  .c-pagination .nav-links li > a {
    -webkit-transition: background-color 0.3s ease, color 0.3s ease;
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  .c-pagination .nav-links li > a:hover {
    background-color: var(--color-main);
    color: var(--color-base);
  }
}
/* component > c-cta
----------------------------------- */
.c-cta {
  display: grid;
  color: var(--color-base);
  text-align: center;
}

.c-cta__image {
  grid-row: 1/2;
  grid-column: 1/2;
}
.c-cta__image img {
  height: 452px;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-cta__content {
  grid-row: 1/2;
  grid-column: 1/2;
  padding-block: 80px;
}

.c-cta__titleLv2 {
  font-size: min(24px, 6.4vw);
  font-weight: 700;
  line-height: 1.5;
  text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.c-cta__text {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
  font-size: min(16px, 4.2666666667vw);
  text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
}

.c-cta__btn {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}

@media screen and (min-width: 768px) {
  .c-cta__image img {
    width: 100%;
    max-width: none;
    height: 479px;
  }
  .c-cta__content {
    padding-block: 100px;
  }
  .c-cta__titleLv2 {
    font-size: 32px;
    letter-spacing: 0.05em;
  }
  .c-cta__text {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
  .c-cta__btn {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
}
/* component > c-form
----------------------------------- */
.c-form {
  display: grid;
  position: relative;
}

.c-form__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
  font-weight: 700;
  line-height: 1.7;
}

.c-form__required {
  padding-block: 6px;
  padding-inline: 12px;
  background-color: var(--color-alert);
  color: var(--color-base);
  font-size: 12px;
  line-height: 1;
}

.c-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

input[type=text],
input[type=email],
textarea {
  width: 100%;
  padding-block: 8px;
  padding-inline: 16px;
  margin-top: 8px;
  border: none;
  -webkit-box-shadow: 0 0 0 1px #999 inset;
          box-shadow: 0 0 0 1px #999 inset;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #fff;
}
input[type=text]:focus,
input[type=email]:focus,
textarea:focus {
  outline: 0;
  -webkit-box-shadow: 0 0 0 2px rgb(33, 150, 243) inset;
          box-shadow: 0 0 0 2px rgb(33, 150, 243) inset;
}
input[type=text]::-webkit-input-placeholder, input[type=email]::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  color: #999;
  font-size: 15px;
}
input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, textarea::-moz-placeholder {
  color: #999;
  font-size: 15px;
}
input[type=text]:-ms-input-placeholder, input[type=email]:-ms-input-placeholder, textarea:-ms-input-placeholder {
  color: #999;
  font-size: 15px;
}
input[type=text]::-ms-input-placeholder, input[type=email]::-ms-input-placeholder, textarea::-ms-input-placeholder {
  color: #999;
  font-size: 15px;
}
input[type=text]::placeholder,
input[type=email]::placeholder,
textarea::placeholder {
  color: #999;
  font-size: 15px;
}
input[type=text][aria-invalid=true],
input[type=email][aria-invalid=true],
textarea[aria-invalid=true] {
  -webkit-box-shadow: 0 0 0 2px var(--color-alert) inset;
          box-shadow: 0 0 0 2px var(--color-alert) inset;
}

textarea {
  height: 220px;
  resize: vertical;
  overflow: auto;
}

.c-form__error {
  margin-block: 4px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--color-alert);
  min-height: 24px;
  text-align: justify;
}
.c-form__error--privacy {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.c-form__privacy-policy {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}
@media screen and (min-width: 768px) {
  .c-form__privacy-policy {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
}
.c-form__privacy-policy .c-form__checkbox {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
}

.c-form__privacy-policy-text {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  line-height: 2;
}
.c-form__privacy-policy-text a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2px;
  -webkit-margin-end: 8px;
          margin-inline-end: 8px;
  position: relative;
}
.c-form__privacy-policy-text a::before {
  content: "";
  width: 100%;
  height: 1px;
  background-color: currentColor;
  position: absolute;
  bottom: 4px;
  left: 0;
}
.c-form__privacy-policy-text a::after {
  content: "";
  width: 16px;
  height: 16px;
  background-image: url("../images/global/icon-external-link.svg' ) ); ?>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

.c-form__radio {
  padding: 0;
  margin: 0;
  border: 0;
}

.c-form__radio-list {
  display: grid;
  gap: 12px;
  -webkit-margin-before: 8px;
          margin-block-start: 8px;
}

.c-form__radio-label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
}

.c-form__radio-label input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.c-form__radio-text {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
}
.c-form__radio-text::before {
  content: "";
  width: 18px;
  height: 18px;
  -webkit-margin-before: 3px;
          margin-block-start: 3px;
  border: 1px solid #999;
  border-radius: 50%;
  background-color: #fff;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.c-form__radio-label input:checked + .c-form__radio-text::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 5px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--color-main);
}

.c-form__radio-label input:focus-visible + .c-form__radio-text {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(90%, transparent), color-stop(90%, rgba(33, 150, 243, 0.3)));
  background: linear-gradient(transparent 90%, rgba(33, 150, 243, 0.3) 90%);
}

.c-form__radio-label input[aria-invalid=true] + .c-form__radio-text::before {
  border-color: var(--color-alert);
}

.c-form__checkbox {
  position: relative;
}

.c-form__checkbox-label {
  gap: 0;
  font-weight: 400;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.c-form__checkbox input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.c-form__checkbox-text {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  cursor: pointer;
}
.c-form__checkbox-text::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 3px;
  border: 1px solid #999;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  background-color: #fff;
  -webkit-margin-before: 3px;
          margin-block-start: 3px;
}

.c-form__checkbox input:checked + .c-form__checkbox-text::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 0.315em;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  width: 0.5em;
  height: 0.8em;
  border: solid var(--color-main);
  border-width: 0 2px 2px 0;
}

.c-form__checkbox input:focus-visible + .c-form__checkbox-text {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(90%, transparent), color-stop(90%, rgba(33, 150, 243, 0.3)));
  background: linear-gradient(transparent 90%, rgba(33, 150, 243, 0.3) 90%);
}

.c-form__checkbox input[aria-invalid=true] + .c-form__checkbox-text::before {
  border-color: var(--color-alert);
}

.c-form__turnstile {
  margin-block: 8px 16px;
  text-align: center;
}

.c-form__submit {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
  text-align: center;
}

.c-form__submit-btn {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  gap: 24px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-block: 18px;
  padding-inline: 56px;
  border-radius: 100px;
  border: 2px solid var(--color-main);
  background-color: var(--color-main);
  color: var(--color-base);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
@media (any-hover: hover) {
  .c-form__submit-btn {
    -webkit-transition: background-color 0.3s ease, color 0.3s ease;
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  .c-form__submit-btn:hover {
    background-color: var(--color-base);
    color: var(--color-main);
  }
}

/* -----------------------------------
  layout
----------------------------------- */
/* layout > container
----------------------------------- */
.l-container,
.l-container-md,
.l-container-s {
  width: 100%;
  padding-inline: calc(24 / var(--width-sp) * 100vw);
}

@media screen and (min-width: 768px) {
  .l-container,
  .l-container-md,
  .l-container-s {
    max-width: calc(var(--width-content) + 80px);
    padding-inline: 40px;
    margin-inline: auto;
  }
  .l-container-md {
    max-width: calc(var(--width-content-md) + 80px);
  }
  .l-container-s {
    max-width: calc(var(--width-content-s) + 80px);
  }
}
/* layout > section
----------------------------------- */
.l-section {
  padding-block: 96px;
}

@media screen and (min-width: 768px) {
  .l-section {
    padding-block: 120px;
  }
}
/* layout > section-body
----------------------------------- */
.l-section-body {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
}

@media screen and (min-width: 768px) {
  .l-section-body {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
}
/* layout > header
----------------------------------- */
.header {
  display: grid;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  height: 80px;
  background-color: var(--color-bg-beige);
  color: var(--color-main);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 20;
  -webkit-box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.15);
          box-shadow: 0 1px 8px 0 rgba(0, 0, 0, 0.15);
}
@media screen and (max-width: 1100px) {
  .header {
    font-size: 15px;
  }
}

.header__container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.header__logo a {
  display: block;
  padding-block: 10px;
}

.header__hamburger-logo {
  display: none;
}

.header__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 40px;
}
@media screen and (max-width: 1100px) {
  .header__nav-list {
    gap: min(32px, 2.9090909091vw);
  }
}

.header__nav-item:not(:last-child) a {
  display: block;
  padding-block: 10px;
  position: relative;
}
.header__nav-item:not(:last-child) a::after {
  content: "";
  width: 0;
  height: 2px;
  background-color: currentColor;
  position: absolute;
  bottom: 6px;
  left: 0;
  opacity: 0;
  -webkit-transition: width 0.3s ease, opacity 0.3s ease;
  transition: width 0.3s ease, opacity 0.3s ease;
}
@media (any-hover: hover) {
  .header__nav-item:not(:last-child) a:hover::after {
    width: 100%;
    opacity: 1;
  }
}

.header__registration-sp {
  display: none;
}

@media screen and (max-width: 1023px) {
  .header {
    font-size: 16px;
  }
  .header__container {
    width: 100%;
    position: relative;
  }
  .header__hamburger {
    width: 24px;
    height: 48px;
    margin-inline: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 40px;
    z-index: 30;
  }
  .header__hamburger-icon {
    display: inline-block;
    width: 26px;
    height: 2px;
    background-color: var(--color-main);
    position: absolute;
    left: 0;
    -webkit-transition: rotate 0.3s ease, opacity 0.5s ease;
    transition: rotate 0.3s ease, opacity 0.5s ease;
  }
  .header__hamburger.active .header__hamburger-icon:nth-of-type(1) {
    top: 23px;
    rotate: 135deg;
  }
  .header__hamburger.active .header__hamburger-icon:nth-of-type(2) {
    opacity: 0;
  }
  .header__hamburger.active .header__hamburger-icon:nth-of-type(3) {
    top: 23px;
    rotate: -135deg;
  }
  .header__hamburger-icon:nth-of-type(1) {
    top: 13px;
  }
  .header__hamburger-icon:nth-of-type(2) {
    top: 23px;
  }
  .header__hamburger-icon:nth-of-type(3) {
    top: 33px;
  }
  .header__link {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 0;
    width: 100%;
    height: calc(100vh - 80px);
    padding-block: 56px;
    padding-inline: 40px;
    background-color: var(--color-main);
    color: var(--color-base);
    position: fixed;
    top: 80px;
    right: -100%;
    z-index: 20;
    overflow: hidden;
    -webkit-transition: all 0.6s ease;
    transition: all 0.6s ease;
  }
  .header__link.active {
    right: 0;
  }
  .header__nav {
    width: 100%;
    -webkit-padding-start: 8px;
            padding-inline-start: 8px;
  }
  .header__nav-list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 8px;
  }
  .header__nav-item {
    width: 100%;
  }
  .header__nav-item:not(:last-child) a {
    padding-block: 16px;
  }
}
@media screen and (max-width: 1023px) and (any-hover: hover) {
  .header__nav-item:not(:last-child) a {
    -webkit-transition: opacity 0.3s ease;
    transition: opacity 0.3s ease;
  }
  .header__nav-item:not(:last-child) a:hover {
    opacity: 0.75;
  }
  .header__nav-item:not(:last-child) a:hover::after {
    opacity: 0;
  }
}
@media screen and (max-width: 1023px) {
  .header__registration-sp {
    display: block;
    -webkit-margin-end: 44px;
            margin-inline-end: 44px;
  }
  .header__registration-sp a {
    display: grid;
    padding-block: 8px;
    padding-inline: 8px;
    border-radius: 2px;
    background-color: var(--color-main);
    color: var(--color-base);
    font-size: 10px;
    line-height: 1.4;
  }
}
@media screen and (max-width: 767px) {
  .header {
    height: 60px;
  }
  .header__container {
    height: 48px;
  }
  .header__logo {
    max-width: clamp(175px, 175 / var(--width-sp) * 100vw, 262px);
  }
  .header__hamburger {
    right: calc(24 / var(--width-sp) * 100vw);
  }
  .header__link {
    height: calc(100vh - 60px);
    top: 60px;
  }
  .header__registration-sp {
    display: block;
    -webkit-margin-end: 40px;
            margin-inline-end: 40px;
  }
}
@media screen and (max-width: 374px) {
  .header__logo {
    max-width: 40.625vw;
  }
}
/* layout > footer
----------------------------------- */
.footer {
  padding-block: 64px 32px;
  background-color: var(--color-main);
  color: var(--color-base);
  font-size: 14px;
  text-align: center;
}

.footer__logo {
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.footer__logo a {
  display: inline-block;
  padding-block: 8px;
}

.footer__nav {
  -webkit-margin-before: 56px;
          margin-block-start: 56px;
}

.footer__nav-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px 24px;
}

.footer__nav-item a {
  display: inline-block;
  padding-block: 8px;
}

.footer__link {
  -webkit-margin-before: 56px;
          margin-block-start: 56px;
}

.footer__privacy a {
  display: inline-block;
  padding-block: 8px;
}

.footer__sns {
  display: grid;
  grid-template-columns: repeat(2, 40px);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  -webkit-margin-before: 8px;
          margin-block-start: 8px;
}

.footer__sns-item {
  display: grid;
}
.footer__sns-item a {
  display: inline-block;
  padding-block: 8px;
  padding-inline: 8px;
}

.footer__copyright {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
.footer__copyright small {
  display: inline-block;
  font-size: 12px;
}

@media screen and (min-width: 768px) {
  .footer {
    padding-block: 72px 32px;
    font-size: 16px;
    text-align: left;
  }
  .footer__logo {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
  }
  .footer__nav {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
  .footer__nav-list {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
  .footer__link {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
  .footer__sns {
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: start;
  }
}
@media (any-hover: hover) {
  .footer a {
    -webkit-transition: -webkit-filter 0.3s ease;
    transition: -webkit-filter 0.3s ease;
    transition: filter 0.3s ease;
    transition: filter 0.3s ease, -webkit-filter 0.3s ease;
  }
  .footer a:hover {
    -webkit-filter: brightness(75%);
            filter: brightness(75%);
  }
}
/* -----------------------------------
  page > top
----------------------------------- */
/* page > top > top-kv
----------------------------------- */
.top-kv {
  font-weight: 700;
  letter-spacing: 0.05em;
}

.top-kv__organizationName {
  -webkit-padding-before: calc(56 / var(--width-sp) * 100vw);
          padding-block-start: calc(56 / var(--width-sp) * 100vw);
  padding-inline: calc(24 / var(--width-sp) * 100vw);
  font-family: var(--font-family-ja);
  font-size: calc(24 / var(--width-sp) * 100vw);
  line-height: 1;
}

.top-kv__hero {
  display: grid;
  -webkit-margin-before: calc(8 / var(--width-sp) * 100vw);
          margin-block-start: calc(8 / var(--width-sp) * 100vw);
}

.top-kv__image {
  grid-row: 1/2;
  grid-column: 1/2;
}
.top-kv__image--sp img {
  border-top-left-radius: 30px;
  border-top-right-radius: 30px;
}
.top-kv__image--pc {
  display: none;
}

.top-kv__copy {
  grid-row: 1/2;
  grid-column: 1/2;
  padding-inline: calc(24 / var(--width-sp) * 100vw);
  -webkit-margin-before: calc(120 / var(--width-sp) * 100vw);
          margin-block-start: calc(120 / var(--width-sp) * 100vw);
  color: var(--color-base);
  font-size: calc(18 / var(--width-sp) * 100vw);
  line-height: 1.65;
  text-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  z-index: 10;
}

@media screen and (min-width: 768px) {
  .top-kv {
    max-width: calc(var(--width-content) + 80px);
    padding-inline: 40px;
    margin-inline: auto;
  }
  .top-kv__organizationName {
    -webkit-padding-before: min(72px, 6vw);
            padding-block-start: min(72px, 6vw);
    padding-inline: min(40px, 3.3333333333vw);
    font-size: min(40px, 3.3333333333vw);
  }
  .top-kv__hero {
    -webkit-margin-before: min(12px, 1vw);
            margin-block-start: min(12px, 1vw);
  }
  .top-kv__image--sp {
    display: none;
  }
  .top-kv__image--pc {
    display: block;
  }
  .top-kv__image--pc img {
    width: 100%;
    border-top-left-radius: 40px;
    border-top-right-radius: 40px;
  }
  .top-kv__copy {
    padding-inline: min(40px, 3.3333333333vw);
    -webkit-margin-before: min(120px, 10vw);
            margin-block-start: min(120px, 10vw);
    font-size: min(32px, 2.6666666667vw);
    line-height: 1.5;
  }
}
/* page > top > top-lead
----------------------------------- */
.top-lead {
  padding-block: 64px 96px;
}

.top-lead__text {
  line-height: 2;
  letter-spacing: 0.05em;
}
.top-lead__text + .top-lead__text {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
}

.top-lead__btn {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .top-lead {
    padding-block: 80px 120px;
  }
  .top-lead__text {
    font-size: 20px;
    line-height: 2.2;
  }
  .top-lead__text + .top-lead__text {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
  .top-lead__btn {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
}
/* page > top > top-mission
----------------------------------- */
.top-mission {
  background-image: var(--color-bg-linear-gradient);
}

.top-mission__description {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.top-mission__text {
  color: var(--color-base);
  letter-spacing: 0.05em;
  line-height: 2;
}
.top-mission__text + .top-mission__text {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
}

@media screen and (min-width: 768px) {
  .top-mission__text {
    line-height: 2.2;
  }
  .top-mission__text + .top-mission__text {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
}
/* page > top > top-value
----------------------------------- */
.top-value__list {
  display: grid;
  gap: 32px;
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
}

.top-value__item {
  padding-block: 24px;
  padding-inline: 24px;
  border-radius: 16px;
  border: 2px solid var(--color-main);
}

.top-value__titleLv3-en {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 12px;
}
.top-value__titleLv3-en span {
  color: var(--color-accent);
  font-size: 24px;
  line-height: 1;
}
.top-value__titleLv3-en span + .top-value__titleLv3-en span {
  letter-spacing: 0.03em;
}

.top-value__titleLv3-ja {
  -webkit-margin-before: 4px;
          margin-block-start: 4px;
  color: var(--color-main);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.top-value__text {
  -webkit-margin-before: 20px;
          margin-block-start: 20px;
}

@media screen and (min-width: 768px) {
  .top-value__list {
    grid-template-columns: repeat(2, 1fr);
    gap: min(48px, 4vw);
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
  .top-value__item {
    padding-block: clamp(24px, 3.3333333333vw, 40px);
    padding-inline: clamp(24px, 3.3333333333vw, 40px);
  }
  .top-value__titleLv3-en {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 14px;
  }
  .top-value__titleLv3-en span {
    font-size: 28px;
  }
  .top-value__titleLv3-ja {
    -webkit-margin-before: 8px;
            margin-block-start: 8px;
    font-size: 24px;
  }
  .top-value__text {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
}
/* page > top > top-target
----------------------------------- */
.top-target {
  background-color: var(--color-bg-beige);
}

.top-target__list {
  display: grid;
  gap: 16px;
}

.top-target__item {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
}
.top-target__item::before {
  content: "";
  width: 20px;
  height: 16px;
  -webkit-margin-before: 5px;
          margin-block-start: 5px;
  background-image: url("../images/top/icon-contribution-green.svg");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
}

.top-target__note {
  display: grid;
  grid-template-columns: 1em 1fr;
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}
.top-target__note::before {
  content: "※";
}
@media screen and (min-width: 768px) {
  .top-target__note {
    max-width: 720px;
  }
}

/* page > top > top-activity
----------------------------------- */
.top-activity__list {
  display: grid;
  gap: 24px;
}

.top-activity__item {
  padding-block: 24px;
  padding-inline: 24px;
  border-radius: 16px;
  border: 2px solid var(--color-main);
}

.top-activity__titleLv3 {
  display: grid;
  grid-template-columns: 20px 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 12px;
}
.top-activity__titleLv3 img {
  width: 20px;
}

.top-activity__titleLv3-text {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.top-activity__text {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}

@media screen and (min-width: 768px) {
  .top-activity__list {
    grid-template-columns: repeat(2, 1fr);
    gap: min(48px, 4vw);
  }
  .top-activity__item {
    padding-block: clamp(24px, 3.3333333333vw, 40px);
    padding-inline: clamp(24px, 3.3333333333vw, 40px);
  }
  .top-activity__titleLv3 {
    grid-template-columns: 24px 1fr;
    gap: 14px;
  }
  .top-activity__titleLv3 img {
    width: 24px;
  }
  .top-activity__titleLv3-text {
    font-size: 24px;
  }
  .top-activity__text {
    -webkit-margin-before: 20px;
            margin-block-start: 20px;
  }
}
/* page > top > top-flow
----------------------------------- */
.top-flow {
  background-color: var(--color-bg-beige);
}

.top-flow__list {
  display: grid;
  gap: 64px;
}

.top-flow__item {
  display: grid;
  gap: 10px;
  text-align: center;
}
.top-flow__item:not(:last-child) .top-flow__content {
  position: relative;
}
.top-flow__item:not(:last-child) .top-flow__content::after {
  content: "";
  width: 8px;
  height: 18px;
  margin-inline: auto;
  background-image: url("../../../images/top/icon-triangle-accent.svg' ) ); ?>");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center center;
  rotate: 90deg;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -45px;
}

.top-flow__step {
  color: var(--color-accent);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}

.top-flow__content {
  padding-block: 32px;
  background-image: var(--color-bg-linear-gradient);
  color: var(--color-base);
}

.top-flow__image img {
  margin-inline: auto;
}

.top-flow__description {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

@media screen and (min-width: 768px) {
  .top-flow__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
  }
  .top-flow__item:not(:last-child) .top-flow__content::after {
    margin-block: auto;
    margin-inline: 0;
    rotate: 0deg;
    left: auto;
    right: -20px;
    top: 0;
    bottom: 0;
  }
  .top-flow__image img {
    margin-inline: auto;
  }
  .top-flow__description {
    font-size: 24px;
    font-size: clamp(20px, 2.34375vw, 24px);
  }
}
/* page > top > top-events
----------------------------------- */
.top-events__cards {
  display: grid;
  gap: 32px;
}

.top-events__card {
  padding-block: 24px;
  padding-inline: 24px;
  border-radius: 16px;
  border: 2px solid var(--color-main);
  background-color: var(--color-bg-light-green);
}

.top-events__category {
  display: inline-block;
  padding-block: 8px;
  padding-inline: 20px;
  background-color: var(--color-main);
  color: var(--color-base);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1;
}

.top-events__thumbnail {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}
.top-events__thumbnail img {
  aspect-ratio: 912/608;
  -o-object-fit: cover;
     object-fit: cover;
}

.top-events__titleLv3 {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.top-events__list {
  display: grid;
  gap: 16px;
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.top-events__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 16px;
}
.top-events__item dt img {
  -webkit-margin-before: 3px;
          margin-block-start: 3px;
}
.top-events__item dd span {
  display: inline-block;
}
.top-events__item:last-child {
  display: block;
}
.top-events__item:last-child dt {
  font-size: 18px;
}
.top-events__item:last-child dd li {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.top-events__item:last-child dd li::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}

.top-events__note {
  display: grid;
  grid-template-columns: 1em 1fr;
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}
.top-events__note + .top-events__note {
  -webkit-margin-before: 0;
          margin-block-start: 0;
}
.top-events__note::before {
  content: "※";
}

.top-events__btn {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
  text-align: center;
}

.top-events__contact-link {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
.top-events__contact-link a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media screen and (min-width: 768px) {
  .top-events__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: min(48px, 4vw);
  }
  .top-events__card {
    padding-block: clamp(24px, 3.3333333333vw, 40px);
    padding-inline: clamp(24px, 3.3333333333vw, 40px);
  }
  .top-events__category {
    font-size: 16px;
  }
  .top-events__thumbnail {
    -webkit-margin-before: 24px;
            margin-block-start: 24px;
  }
  .top-events__titleLv3 {
    font-size: 24px;
  }
  .top-events__note {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-inline: auto;
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
  .top-events__btn {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
  .top-events__contact-link {
    text-align: center;
  }
}
/* page > top > top-voice
----------------------------------- */
.top-voice {
  background-color: var(--color-bg-beige);
}

.top-voice__cards {
  display: grid;
  gap: 24px;
}

.top-voice__card {
  padding-block: 24px;
  padding-inline: 24px;
  border-radius: 16px;
  border: 2px solid var(--color-main);
}

.top-voice__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 24px;
}

.top-voice__name {
  line-height: 1.5;
}

.top-voice__titleLv3 {
  font-weight: 700;
}

.top-voice__occupation {
  font-size: 14px;
}

.top-voice__image {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 120px;
          flex: 0 0 120px;
}
.top-voice__image img {
  border-radius: 50%;
}

.top-voice__text {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

@media screen and (min-width: 768px) {
  .top-voice__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}
@media screen and (min-width: 1024px) {
  .top-voice__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: min(40px, 3.3333333333vw);
  }
}
/* page > top > top-report
----------------------------------- */
.top-report__cards {
  display: grid;
  gap: 32px;
}

.top-report__btn {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .top-report__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
  .top-report__btn {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}
@media screen and (min-width: 1024px) {
  .top-report__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: min(40px, 3.3333333333vw);
  }
}
/* page > top > top-about
----------------------------------- */
.top-about__wrapper {
  background-image: var(--color-bg-linear-gradient);
  color: var(--color-base);
}

.top-about__title {
  text-align: center;
}

.top-about__message {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}

.top-about__titleLv3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}

.top-about__image {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}
.top-about__image img {
  margin-inline: auto;
  border-radius: 50%;
}

.top-about__titleLv4 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}
.top-about__titleLv4:first-of-type {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
}
.top-about__titleLv4:not(:first-of-type) {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
}

.top-about__description {
  display: grid;
  gap: 16px;
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
  line-height: 2;
}

.top-about__signature {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
  text-align: right;
}

@media screen and (min-width: 768px) {
  .top-about__message {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
  .top-about__titleLv3 {
    font-size: 24px;
  }
  .top-about__image {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
  .top-about__description {
    -webkit-margin-before: 18px;
            margin-block-start: 18px;
  }
}
/* page > top > top-about > top-members
----------------------------------- */
.top-members {
  padding-block: 64px 96px;
}

.top-members__titleLv3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}

.top-members__cards {
  display: grid;
  gap: 24px;
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.top-members__crd {
  padding-block: 24px;
  padding-inline: 24px;
  border-radius: 16px;
  border: 2px solid var(--color-main);
}

.top-members__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 24px;
}

.top-members__info {
  line-height: 1.5;
}

.top-members__titleLv4 {
  font-weight: 700;
}

.top-members__occupation {
  -webkit-margin-before: 4px;
          margin-block-start: 4px;
  font-size: 14px;
}

.top-members__image {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 120px;
          flex: 0 0 120px;
}
.top-members__image img {
  border-radius: 50%;
}

.top-members__text {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

@media screen and (min-width: 768px) {
  .top-members {
    padding-block: 80px 120px;
  }
  .top-members__titleLv3 {
    font-size: 24px;
    text-align: left;
  }
  .top-members__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
}
@media screen and (min-width: 1024px) {
  .top-members__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: min(40px, 3.3333333333vw);
  }
}
/* page > top > top-faq
----------------------------------- */
.top-faq {
  background-color: var(--color-bg-beige);
}

.top-faq__list {
  display: grid;
  gap: 32px;
}

.top-faq__btn {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .top-faq__btn {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}
/* page > top > top-registration
----------------------------------- */
.top-registration__title {
  text-align: center;
}

.top-registration__form {
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
}

.top-registration__note {
  -webkit-padding-start: 1em;
          padding-inline-start: 1em;
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
  position: relative;
}
.top-registration__note::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
.top-registration__note p + p {
  -webkit-margin-before: 1em;
          margin-block-start: 1em;
}
.top-registration__note p a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media screen and (min-width: 768px) {
  .top-registration__form {
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
  .top-registration__note {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}
/* page > top > top-contact
----------------------------------- */
.top-contact__title {
  text-align: center;
}

.top-contact__text,
.top-contact__list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.top-contact__list {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.top-contact__item {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.top-contact__item::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}

.top-contact__btn {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
  text-align: center;
}

/* page > top > top-data
----------------------------------- */
.top-data {
  margin-block: 120px 48px;
}

.top-data__title {
  font-size: 20px;
  font-weight: 700;
}

.top-data__list {
  display: grid;
  gap: 10px;
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}

.top-data__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.top-data__item dt {
  font-weight: 400;
}
.top-data__item dt::after {
  content: "：";
}

.top-data__note {
  display: grid;
  grid-template-columns: 1em 1fr;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  font-size: 14px;
}
.top-data__note::before {
  content: "※";
}

/* -----------------------------------
  page > faq
----------------------------------- */
/* page > faq > faq-section
----------------------------------- */
.faq-section {
  padding-block: 64px;
}
.faq-section:last-child {
  -webkit-padding-after: 0;
          padding-block-end: 0;
}
.faq-section:nth-child(odd) {
  background-color: var(--color-bg-beige);
}

.faq-titleLv2 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}

.faq-list {
  display: grid;
  gap: 32px;
}

@media screen and (min-width: 768px) {
  .faq-section {
    padding-block: 80px;
  }
  .faq-titleLv2 {
    font-size: 32px;
  }
}
/* -----------------------------------
  page > archive
----------------------------------- */
/* page > archive > archive-content
----------------------------------- */
.archive-content__cards {
  display: grid;
  gap: 32px;
}

.archive-content__pagination {
  overflow: hidden;
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .archive-content__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
  }
}
@media screen and (min-width: 1024px) {
  .archive-content__cards {
    grid-template-columns: repeat(3, 1fr);
    gap: min(40px, 3.3333333333vw);
  }
}
/* -----------------------------------
  page > privacy
----------------------------------- */
/* page > privacy > privacy-content
----------------------------------- */
.privacy-content__wrapper {
  display: grid;
  gap: 24px;
  -webkit-margin-before: 32px;
          margin-block-start: 32px;
}

.privacy-content__titleLv2,
.privacy-content__titleLv3 {
  font-weight: 700;
}

.privacy-content__titleLv2 {
  -webkit-padding-after: 8px;
          padding-block-end: 8px;
}

.privacy-content__titleLv3 {
  -webkit-padding-before: 8px;
          padding-block-start: 8px;
}

.privacy-content__text a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.privacy-content__item {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.privacy-content__item::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}

.privacy-content__establishment-date {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
}

.privacy-content__description-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.privacy-content__description-list dt {
  font-weight: 400;
}
.privacy-content__description-list dt::after {
  content: "：";
}

@media screen and (min-width: 768px) {
  .privacy-content__wrapper {
    gap: 32px;
    -webkit-margin-before: 40px;
            margin-block-start: 40px;
  }
  .privacy-content__establishment-date {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
}
/* -----------------------------------
  page > thanks
----------------------------------- */
/* page > thanks > thanks-content
----------------------------------- */
.thanks-content {
  -webkit-padding-after: 120px;
          padding-block-end: 120px;
}

.thanks-content__description {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}

.thanks-content__text + .thanks-content__text {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.thanks-content__btn {
  -webkit-margin-before: 80px;
          margin-block-start: 80px;
  text-align: center;
}

/* -----------------------------------
  page > notFound
----------------------------------- */
/* page > notFound > notFound-content
----------------------------------- */
.notFound-content {
  -webkit-padding-after: 120px;
          padding-block-end: 120px;
}

.notFound-content__description {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .notFound-content__description {
    text-align: center;
  }
}

.notFound-content__text + .notFound-content__text {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.notFound-content__btn {
  -webkit-margin-before: 80px;
          margin-block-start: 80px;
  text-align: center;
}

.notFound-content__links {
  display: grid;
  gap: 32px;
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
  text-align: center;
}

.notFound-content__link a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* -----------------------------------
  page > single
----------------------------------- */
/* page > single > single-head
----------------------------------- */
.single-head {
  -webkit-padding-before: 64px;
          padding-block-start: 64px;
  -webkit-margin-after: 48px;
          margin-block-end: 48px;
}

.single-head__titleLv1 {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.single-head__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 24px;
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
  font-size: 14px;
  line-height: 1;
}

.single-head__category a {
  display: inline-block;
  padding-block: 6px;
  padding-inline: 12px;
  background-color: var(--color-main);
  color: var(--color-base);
  font-weight: 700;
}

.single-head__date {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
}

.single-head__thumbnail {
  -webkit-margin-before: 48px;
          margin-block-start: 48px;
}
.single-head__thumbnail img {
  width: 100%;
}

@media screen and (min-width: 768px) {
  .single-head {
    -webkit-padding-before: 100px;
            padding-block-start: 100px;
    -webkit-margin-after: 64px;
            margin-block-end: 64px;
  }
  .single-head__titleLv1 {
    font-size: 32px;
  }
  .single-head__meta {
    gap: 32px;
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
  .single-head__thumbnail {
    -webkit-margin-before: 64px;
            margin-block-start: 64px;
  }
}
/* page > single > single-content
----------------------------------- */
.single-content {
  line-height: 2;
}
.single-content h2, .single-content h3, .single-content p, .single-content ul, .single-content ol {
  -webkit-margin-before: 1.5em;
          margin-block-start: 1.5em;
}
.single-content h2, .single-content h3 {
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.single-content h2 {
  font-size: 24px;
}
.single-content h3 {
  display: grid;
  grid-template-columns: 4px 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75em;
  font-size: 20px;
}
.single-content h3::before {
  content: "";
  width: 4px;
  height: 100%;
  background-color: var(--color-main);
}
.single-content ul li {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.single-content ul li::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}
.single-content ol {
  counter-reset: custom-counter;
}
.single-content ol li {
  display: grid;
  grid-template-columns: 14px 1fr;
  gap: 0.25em;
  -webkit-padding-start: 2px;
          padding-inline-start: 2px;
  counter-increment: custom-counter;
}
.single-content ol li::before {
  content: counter(custom-counter) ". ";
}
.single-content a {
  color: #0075ff;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.single-content img {
  margin-block: 32px;
}

@media screen and (min-width: 768px) {
  .single-content h2 {
    font-size: 32px;
  }
  .single-content h3 {
    font-size: 24px;
  }
  .single-content img {
    margin-block: 40px;
  }
}
/* page > single > single-links
----------------------------------- */
.single-links {
  -webkit-margin-before: 64px;
          margin-block-start: 64px;
}
@media screen and (min-width: 768px) {
  .single-links {
    -webkit-margin-before: 80px;
            margin-block-start: 80px;
  }
}

.single-links__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.single-links__item a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4px;
  text-decoration: underline;
  text-underline-offset: 2px;
  line-height: 2;
}
.single-links__item--prev a::before, .single-links__item--next a::after {
  content: "";
  width: 10px;
  height: 10px;
  rotate: 45deg;
}
.single-links__item--prev a::before {
  border-bottom: 2px solid var(--color-main);
  border-left: 2px solid var(--color-main);
}
.single-links__item--next a::after {
  border-top: 2px solid var(--color-main);
  border-right: 2px solid var(--color-main);
}

.single-links__btn {
  -webkit-margin-before: 80px;
          margin-block-start: 80px;
  text-align: center;
  -webkit-margin-before: 100px;
          margin-block-start: 100px;
}

/* -----------------------------------
  page > contact
----------------------------------- */
/* page > contact > contact-content
----------------------------------- */
.contact-content__titleLv2 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.contact-content__lead + .contact-content__lead {
  -webkit-margin-before: 16px;
          margin-block-start: 16px;
}

.contact-content__titleLv3 {
  -webkit-margin-before: 56px;
          margin-block-start: 56px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.contact-content__list {
  -webkit-margin-before: 24px;
          margin-block-start: 24px;
}

.contact-content__item {
  display: grid;
  grid-template-columns: 5px 1fr;
  gap: 0.5em;
  -webkit-padding-start: 5px;
          padding-inline-start: 5px;
}
.contact-content__item::before {
  content: "";
  width: 5px;
  height: 5px;
  -webkit-margin-before: 10px;
          margin-block-start: 10px;
  border-radius: 50%;
  background-color: currentColor;
}

.contact-content__form {
  -webkit-margin-before: 40px;
          margin-block-start: 40px;
}

@media screen and (min-width: 768px) {
  .contact-content__titleLv2 {
    font-size: 32px;
  }
  .contact-content__titleLv3 {
    -webkit-margin-before: 72px;
            margin-block-start: 72px;
    font-size: 24px;
  }
  .contact-content__list {
    -webkit-margin-before: 32px;
            margin-block-start: 32px;
  }
  .contact-content__form {
    -webkit-margin-before: 48px;
            margin-block-start: 48px;
  }
}/*# sourceMappingURL=style.css.map */