/* =====================================================
    #reset
   ================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:where([hidden]:not([hidden=until-found])) {
  display: none !important;
}

:where(html) {
  -moz-tab-size: 2;
    -o-tab-size: 2;
  line-height: 1.5;
       tab-size: 2;
}

:where(html:has(dialog:modal[open])) {
  overflow: clip;
}
:where(body) {
  line-height: inherit;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

:where(button) {
  all: unset;
}

:where(input, button, textarea, select) {
  color: inherit;
  font: inherit;
  font-variation-settings: inherit;
  font-feature-settings: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
}

:where(textarea) {
  resize: vertical;
  resize: block;
}

:where(button, label, select, summary, [role=button], [role=option]) {
  cursor: pointer;
}

:where(:disabled, label:has(> :disabled, + disabled)) {
  cursor: not-allowed;
}

:where(a) {
  color: inherit;
  text-underline-offset: 0.2ex;
}

:where(ul, ol) {
  list-style: none;
}

:where(img, svg, video, canvas, audio, iframe, embed, object) {
  display: block;
}

:where(img, picture, svg, video) {
  max-inline-size: 100%;
  block-size: auto;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}

:where(hr) {
  border: none;
  -webkit-border-before: 1px solid;
  block-size: 0;
  overflow: visible;
          border-block-start: 1px solid;
  color: inherit;
}

:where(dialog, [popover]) {
  max-width: unset;
  max-height: unset;
  inset: unset;
  overflow: unset;
  border: none;
  background: none;
  color: inherit;
}

:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  display: none !important;
}

:where(:focus-visible, :target) {
  scroll-margin-block: 8vh;
}

:where(.visually-hidden:not(:focus-within, :active)) {
  -webkit-clip-path: inset(50%) !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  border: 0 !important;
  white-space: nowrap !important;
          clip-path: inset(50%) !important;
  -webkit-user-select: none !important;
     -moz-user-select: none !important;
          user-select: none !important;
}

/* =====================================================
    #base
   ================================================== */
html {
  font-size: min(0.2666666667vw, 1px);
}

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

body {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100svh;
  color: #000000;
  font-weight: 400;
  font-size: 13rem;
  line-height: 2;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
}
body.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  overflow-y: scroll;
}

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

a {
  color: inherit;
  text-decoration: none;
  -webkit-backface-visibility: hidden;
}

button {
  background: none;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  box-shadow: none;
}

button, input, textarea {
  background: none;
  font-family: inherit;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  box-shadow: none;
}

.js-animation-text__line {
  display: block;
  overflow: hidden;
  line-height: 1.1;
}
.js-animation-text__inner {
  display: block;
  transform: translateY(clamp(12px, 0.9em, 24px));
  opacity: 0;
  -webkit-clip-path: inset(0 0 100% 0);
          clip-path: inset(0 0 100% 0);
  transition: opacity 1s ease, transform 1s ease, -webkit-clip-path 1s ease;
  transition: opacity 1s ease, transform 1s ease, clip-path 1s ease;
  transition: opacity 1s ease, transform 1s ease, clip-path 1s ease, -webkit-clip-path 1s ease;
}
.js-animation-text__inner.is-show {
  transform: translateY(0);
  opacity: 1;
  -webkit-clip-path: inset(0 0 0 0);
          clip-path: inset(0 0 0 0);
}

.js-animation-group .line {
  display: block;
  overflow: hidden;
  line-height: 1.1;
}
.js-animation-group .line__inner {
  display: block;
  transform: translateY(clamp(12px, 0.9em, 24px));
  opacity: 0;
  -webkit-clip-path: inset(0 0 100% 0);
          clip-path: inset(0 0 100% 0);
  transition: opacity 1s ease, transform 1s ease, -webkit-clip-path 1s ease;
  transition: opacity 1s ease, transform 1s ease, clip-path 1s ease;
  transition: opacity 1s ease, transform 1s ease, clip-path 1s ease, -webkit-clip-path 1s ease;
}
.js-animation-group .line__inner.is-show {
  transform: translateY(0);
  opacity: 1;
  -webkit-clip-path: inset(0 0 0 0);
          clip-path: inset(0 0 0 0);
}

/* =====================================================
    #layout
   ================================================== */
.l-container {
  margin-inline: auto;
  padding-right: 4vw;
  padding-left: 4vw;
}

.l-footer {
  margin-top: 80rem;
}

.l-header {
  z-index: 100;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
  height: 83rem;
  background: #fff;
}

.l-main {
  position: relative;
  overflow: hidden;
}
.l-main.-page {
  background: url(../images/bg_crowd-sp.jpg) repeat-y top left 33%/1081px;
}

/* =====================================================
    #component
   ================================================== */
.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 309rem;
  min-height: 59rem;
  gap: 0.5em;
  border-radius: 10rem;
  background-color: #1EC828;
  box-shadow: 0 12rem 18rem rgba(0, 0, 0, 0.16);
  color: #fff;
  font-weight: 700;
  font-size: 17rem;
  transition: opacity 0.3s;
}
.c-button:has(img) {
  padding-right: 0.5em;
}
.c-button img {
  width: 26rem;
}
.c-button.-apply {
  background-color: #1F9026;
}
.c-button.-apply:has(img) {
  padding-right: 1em;
}
.c-button.-apply img {
  width: 50.25rem;
}

.c-card {
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  overflow: hidden;
  border-radius: 12rem;
  background: #fff;
  box-shadow: 0 12rem 25rem rgba(0, 0, 0, 0.16);
}
.c-card__img {
  aspect-ratio: 344/196;
}
.c-card__img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card__body {
  display: flex;
  flex-direction: column;
  padding: 25rem 25rem 40rem;
}
.c-card__heading {
  margin-bottom: 0.5em;
  color: #3E7E1F;
  font-size: 18rem;
  text-align: center;
}
.c-card__text {
  margin-bottom: 1.5em;
  font-size: 13rem;
}
.c-card__button {
  width: 100%;
  margin-top: auto;
}

.c-gnav {
  display: flex;
  flex-direction: column;
  max-width: 800rem;
  margin-inline: auto;
  gap: 10rem;
  font-size: 18rem;
}
.c-gnav__item > a {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  width: 100%;
  height: 88rem;
  padding: 0 30rem;
  gap: 0.5em;
  border-radius: 30rem;
  background: #fff;
  box-shadow: 0 18rem 18rem rgba(0, 0, 0, 0.16);
  font-weight: 700;
}
.c-gnav__item > a img {
  width: 40rem;
}
.c-gnav__item > a span br {
  display: none;
}
.c-gnav__item.is-active > a {
  background-color: #FFF387;
  color: #3E7E1F;
}

.c-hamburger {
  display: grid;
  align-items: center;
  width: 32rem;
  height: 32rem;
  text-align: center;
  cursor: pointer;
}
.c-hamburger__line {
  position: relative;
  align-items: center;
  width: 32rem;
  height: 2rem;
  background-color: #3E7E1F;
}
.c-hamburger__line::before, .c-hamburger__line::after {
  position: absolute;
  left: 0;
  height: 2rem;
  background-color: #3E7E1F;
  content: "";
}
.c-hamburger__line::before {
  bottom: 7rem;
  width: 32rem;
}
.c-hamburger__line::after {
  top: 7rem;
  width: 32rem;
}
.c-hamburger[aria-expanded=true] .c-hamburger__line {
  visibility: hidden;
}
.c-hamburger[aria-expanded=true] .c-hamburger__line::before {
  visibility: visible;
  bottom: 0;
  rotate: 45deg;
}
.c-hamburger[aria-expanded=true] .c-hamburger__line::after {
  visibility: visible;
  top: 0;
  rotate: -45deg;
}

.c-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 1em;
}
.c-heading::after {
  display: block;
  width: 255.56rem;
  height: 14.46rem;
  margin-top: 1em;
  background: url(../images/bg_heading-line.png) no-repeat center/contain;
  content: "";
}
.c-heading__en {
  margin-bottom: 1.5em;
  color: #73B2E9;
  font-weight: 500;
  font-size: 14rem;
}
.c-heading__ja {
  font-size: 26rem;
}

.c-logo {
  display: grid;
  grid-template-rows: auto 1fr;
  grid-template-columns: auto 1fr;
  -moz-column-gap: 10rem;
       column-gap: 10rem;
  align-items: center;
}
.c-logo__mark {
  grid-row: span 2;
  width: 40rem;
}
.c-logo__tagline {
  font-size: 9rem;
  line-height: 1.5;
}
.c-logo__type {
  display: block;
  place-self: start;
  font-weight: 900;
  font-size: 8rem;
}
.c-logo__type img {
  width: 180rem;
}

.c-backtop {
  display: flex;
  z-index: 100;
  position: -webkit-sticky;
  position: sticky;
  bottom: 20rem;
  flex-direction: column;
  align-items: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-right: 20rem;
  margin-bottom: 20rem;
  margin-left: auto;
  color: #3E7E1F;
  font-size: 12rem;
}
.c-backtop img {
  width: 26rem;
}

.c-section {
  padding: 50rem 4vw;
}
.c-section__inner {
  max-width: 1115rem;
  margin-inline: auto;
}

.c-team {
  position: relative;
  max-width: 925px;
  margin-inline: auto;
  padding: 50rem 20rem 20rem 20rem;
  border-radius: 30rem;
  background: #FFFFCF;
  box-shadow: 0 3rem 6rem rgba(0, 0, 0, 0.16);
  font-size: 16rem;
  text-align: center;
}
.c-team__head {
  display: grid;
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% -60%;
  font-weight: 700;
  font-size: 15rem;
}
.c-team__name {
  display: grid;
  place-content: center;
  width: 161rem;
  height: 37rem;
  background: #1D55AA;
  color: #fff;
}
.c-team__target {
  display: grid;
  place-content: center;
  width: 161rem;
  height: 37rem;
  background: #46A84D;
  color: #fff;
}
.c-team + .c-team {
  margin-top: 96rem;
}

/* =====================================================
    #project
   ================================================== */
.p-about {
  background: url(../images/bg_stripe.jpg) repeat-y center;
  background-size: max(100%, 1798rem);
}
.p-about__body {
  position: relative;
  max-width: 710rem;
  margin-inline: auto;
}
.p-about__spblock {
  padding: 40rem 20rem 50rem;
  border-radius: 25rem;
  background-color: #fff;
  box-shadow: 0 3rem 6rem rgba(0, 0, 0, 0.16);
  text-align: center;
}
.p-about__block dt {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-bottom: 0.2em;
  margin-inline: auto;
  color: #39A23F;
  font-weight: 700;
  font-size: 21rem;
}
.p-about__block dt:not(:first-child) {
  margin-top: 1.5em;
}
.p-about__block dt::before {
  position: absolute;
  top: 50%;
  right: calc(100% + 8rem);
  width: 26rem;
  height: 26rem;
  translate: 0 -50%;
  background: url(../images/ico_ball.png) no-repeat center/contain;
  content: "";
}
.p-about__block dd {
  margin-bottom: 1em;
  font-size: 16rem;
}
.p-about__gallery {
  margin-top: 28rem;
  -moz-column-count: 2;
       column-count: 2;
  -moz-column-gap: 8rem;
       column-gap: 8rem;
}
.p-about__gallery__img {
  display: block;
  width: 100%;
  margin-bottom: 8rem;
  -moz-column-break-inside: avoid;
  overflow: hidden;
  border-radius: 20rem;
       break-inside: avoid;
}
.p-about__button {
  margin-top: 30rem;
  text-align: center;
}

.p-article {
  max-width: calc(1000rem + 8vw);
  margin-top: 50rem;
  margin-bottom: 200rem;
  margin-inline: auto;
  padding-right: 4vw;
  padding-left: 4vw;
}
.p-article__title {
  display: flex;
  position: relative;
  flex-direction: column;
  align-items: center;
  margin-bottom: 2.5em;
  font-size: 26rem;
}
.p-article__title img {
  width: 235.51rem;
}
.p-article__title::after {
  position: absolute;
  bottom: -1.3em;
  width: 255.56rem;
  height: 14.46rem;
  background: url(../images/bg_heading-line.png) no-repeat center/contain;
  content: "";
}
.p-article > * {
  margin-top: 1em;
}
.p-article > h2 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1.5em;
  gap: 0.5em;
  color: #3E7E1F;
  text-shadow: 2px 2px 0 #FFF, -2px -2px 0 #FFF, -2px 2px 0 #FFF, 2px -2px 0 #FFF, 0px 2px 0 #FFF, 0 -2px 0 #FFF, -2px 0 0 #FFF, 2px 0 0 #FFF;
}
.p-article > h2 img {
  width: 26rem;
}
.p-article > p {
  font-size: 17rem;
}
.p-article > table {
  width: 100%;
  margin-inline: auto;
  border-collapse: collapse;
  line-height: 1.25;
  table-layout: fixed;
}
.p-article > table td, .p-article > table th {
  padding: 0.75em 0.5em;
}
.p-article > table thead td {
  background-color: #E3E1E1;
}
.p-article > table thead th {
  border: 1px solid #fff;
  background-color: #507AB8;
  color: #fff;
  font-weight: 700;
}
.p-article > table thead th small {
  display: block;
}
.p-article > table tbody th {
  border: 1px solid #fff;
  background-color: #E3E1E1;
  text-align: left;
}
.p-article > table tbody td {
  border: 1px solid #E2E2E2;
  background-color: #fff;
  text-align: center;
}
.p-article hr {
  margin-top: 60rem;
  margin-bottom: 70rem;
  border: 0;
}
.p-article hr::after {
  display: block;
  width: 255.56rem;
  height: 14.46rem;
  margin-inline: auto;
  background: url(../images/bg_heading-line.png) no-repeat center/contain;
  content: "";
}
.p-article > .p-form {
  margin-top: 2.5em;
}

.p-contact {
  padding-top: 100rem;
  padding-bottom: 200rem;
  background-color: #FFF;
}
.p-contact .c-section__inner {
  max-width: 1148rem;
}
.p-contact__list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 38rem;
}

.p-feature {
  position: relative;
  background: url(../images/bg_crowd-sp.jpg) repeat-y top left 33%/1081px;
}
.p-feature::after {
  z-index: 1;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 77rem;
  background: linear-gradient(transparent, #000);
  content: "";
  opacity: 0.09;
  pointer-events: none;
}
.p-feature .c-section__inner {
  z-index: 2;
  position: relative;
}
.p-feature__heading {
  margin-bottom: 2em;
}
.p-feature__list {
  display: grid;
  gap: 64rem;
}
.p-feature__item {
  display: flex;
  flex-direction: column;
  gap: 40rem;
}
.p-feature__img {
  overflow: hidden;
  border-radius: 60rem;
}
.p-feature__body__heading {
  margin-bottom: 0.5em;
  color: #39A23F;
  font-size: 21rem;
}
.p-feature__button {
  margin-top: 30rem;
  text-align: center;
}

.p-footer {
  position: relative;
  position: relative;
  padding: 54rem 4vw 100rem;
  background: url(../images/bg_footer.jpg) repeat;
  color: #fff;
  text-align: center;
}
.p-footer::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  width: 100%;
  height: 20rem;
  background: url(../images/bg_footer-line.jpg) repeat-x top/586rem;
  content: "";
}
.p-footer::after {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  width: 100%;
  height: 130rem;
  background: url(../images/bg_footer-glass-sp.png) no-repeat top/769rem;
  content: "";
}
.p-footer__inner {
  max-width: 1115px;
  margin-inline: auto;
}
.p-footer__nav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1em;
  color: #fff;
  font-weight: 700;
  font-size: 15rem;
}
.p-footer__related {
  margin-top: 2em;
  font-weight: 700;
  font-size: 15rem;
}
.p-footer__related a {
  color: #73B2E9;
}
.p-footer__logo {
  display: block;
  z-index: 2;
  width: 238rem;
  max-width: 100%;
  margin-top: 34rem;
  margin-inline: auto;
}
.p-footer__copy {
  margin-top: 3em;
  font-size: 13rem;
  text-align: center;
}

.p-form h1 {
  display: none;
}
.p-form table {
  width: 100%;
  max-width: 1000rem;
  margin-inline: auto;
  overflow: hidden;
  border-radius: 6rem;
  border-collapse: collapse;
  line-height: 1.5;
}
.p-form table tr:last-child td {
  border-bottom: 0;
}
.p-form table td {
  display: block;
  border-bottom: 1px solid #E2E2E2;
}
.p-form table td:has(> p) > p {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: center;
  min-height: 50rem;
  padding: 16rem 20rem;
  gap: 0.5em;
  border-right: 1px solid #E2E2E2;
  background-color: #3F7A3C;
  color: #fff;
  font-weight: 700;
  font-size: 17rem;
}
.p-form table td:has(> p) > p span {
  display: block;
  display: grid;
  place-content: center;
  width: 47rem;
  min-width: 47rem;
  height: 25rem;
  margin-top: 0.15em;
  border-radius: 4rem;
  background-color: #FFEA34;
  color: #000;
  font-weight: 400;
  font-size: 13rem;
}
.p-form table td:has(> p) > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 15rem 18rem;
  gap: 10rem;
  background-color: #fff;
}
.p-form table td > div > p {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  justify-content: center;
  min-height: 50rem;
  padding: 11rem 20rem;
  gap: 0.5em;
  border-right: 1px solid #E2E2E2;
  background-color: #3F7A3C;
  color: #fff;
  font-weight: 700;
  font-size: 17rem;
}
.p-form table td > div > p span {
  display: block;
  display: grid;
  place-content: center;
  width: 47rem;
  min-width: 47rem;
  height: 25rem;
  margin-top: 0.15em;
  border-radius: 4rem;
  background-color: #FFEA34;
  color: #000;
  font-weight: 400;
  font-size: 13rem;
}
.p-form table td > div > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  padding: 15rem 18rem;
  gap: 10rem;
  background-color: #fff;
}
.p-form table td input[type=text], .p-form table td textarea, .p-form table td select {
  padding: 0.56em;
  border: 1px solid #CCCCCC;
  border-radius: 3rem;
  font-size: 14rem;
}
.p-form table td input[type=text] {
  width: 100%;
}
.p-form table td input[type=text].p-street-address {
  width: 100%;
}
.p-form table td input[type=text][name=single_tel], .p-form table td input[type=text][name=single_fax], .p-form table td input[type=text][name=free4] {
  max-width: 212rem;
}
.p-form table td input[type=text][name=seimei1], .p-form table td input[type=text][name=seimei2], .p-form table td input[type=text][name=_seimei1], .p-form table td input[type=text][name=_seimei2] {
  max-width: calc(50% - 8rem);
}
.p-form table td input[type=text][name=mail] {
  width: 100%;
}
.p-form table td input[type=text][name=zip1] {
  width: 90rem;
}
.p-form table td input[type=text][name=zip2] {
  width: 120rem;
}
.p-form table td textarea {
  width: 100%;
  height: 100%;
}
.p-form table td label:has(> input[type=radio]) {
  display: inline-flex;
  position: relative;
  align-items: center;
  margin-right: 10rem;
  padding-left: calc(18rem + 10rem);
  font-size: 16px;
  cursor: pointer;
}
.p-form table td label:has(> input[type=radio])::before {
  box-sizing: border-box;
  position: absolute;
  top: 50%;
  left: 0;
  width: 18rem;
  height: 18rem;
  transform: translateY(-50%);
  border: 1rem solid #ccc;
  border-radius: 50%;
  content: "";
  transition: border-color 0.2s ease;
}
.p-form table td label:has(> input[type=radio]):hover::before {
  border-color: #aaa;
}
.p-form table td label > input[type=radio] {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  inset: 0;
  cursor: pointer;
  opacity: 0;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
.p-form table td label:has(> input[type=radio]:focus-visible)::before {
  outline: 2px solid rgba(0, 0, 0, 0.4);
  outline-offset: 2px;
}
.p-form table td label:has(> input[type=radio]:checked)::before {
  border-color: #3E7E1F;
}
.p-form table td label:has(> input[type=radio]:checked)::after {
  position: absolute;
  top: 50%;
  left: calc((18rem - 10rem) / 2);
  width: 10rem;
  height: 10rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background-color: #3E7E1F;
  content: "";
}
.p-form button[type=submit] {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 309rem;
  min-height: 59rem;
  margin-top: 30rem;
  margin-inline: auto;
  padding-right: 1em;
  gap: 1em;
  border-radius: 10rem;
  background: url(../images/bg_button.jpg);
  box-shadow: 0 12rem 18rem rgba(0, 0, 0, 0.16);
  color: #fff;
  font-weight: 700;
  font-size: 17rem;
  transition: opacity 0.3s;
}
.p-form button[type=submit]::before {
  width: 26rem;
  height: 26rem;
  background: url(../images/ico_ball.png) no-repeat center/contain;
  content: "";
}
.p-form footer {
  margin-top: 1.5em;
  color: #666;
  font-size: 12rem;
  text-align: center;
}

.p-header {
  z-index: 101;
  border-top: 8rem solid #3E7E1F;
}
.p-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding-right: 10rem;
  padding-left: 10rem;
  border-top: 8rem solid #FFEA34;
}
.p-header__logo {
  display: flex;
  align-items: center;
  max-width: 100%;
}
.p-header__gnav {
  visibility: hidden;
  position: fixed;
  inset: 0;
  padding: 96rem 40rem 40rem;
  overflow-y: auto;
  background-color: #D5EF9D;
  opacity: 0;
  transition: opacity 0.3s;
}
.p-header__gnav.is-visible {
  visibility: visible;
  opacity: 1;
}
.p-header__hamburger {
  width: 32rem;
  height: 23rem;
}

.p-lead {
  position: relative;
  padding-bottom: 120rem;
  background: #219229;
  color: #fff;
  text-align: center;
}
.p-lead__inner {
  z-index: 1;
  position: relative;
  max-width: 668rem;
}
.p-lead__inner::before {
  z-index: 0;
  position: absolute;
  top: -191.6rem;
  right: -128.8rem;
  width: 230.34rem;
  height: 215.98rem;
  background: url(../images/img_lead01.png) no-repeat center/contain;
  content: "";
}
.p-lead__inner::after {
  z-index: 0;
  position: absolute;
  bottom: -175rem;
  left: -36rem;
  width: 170.66rem;
  height: 160.35rem;
  background: url(../images/img_lead02.png) no-repeat center/contain;
  content: "";
}
.p-lead__heading {
  margin-bottom: 1.5em;
}
.p-lead__heading span {
  font-weight: 400;
  font-size: 12rem;
}
.p-lead__heading__main {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10rem;
  gap: 10rem;
  font-weight: 700;
  font-size: 18rem;
}
.p-lead__heading__logomark {
  width: 36.33rem;
}
.p-lead__heading__logotype {
  width: 208.36rem;
}
.p-lead__button {
  margin-top: 30rem;
}

.p-mainvisual {
  display: grid;
  position: relative;
  place-content: center;
  height: 124.2105263158vw;
  padding-top: 21.0526315789vw;
}
.p-mainvisual__bg {
  z-index: -1;
  position: fixed;
  top: 83rem;
  right: 0;
  left: 0;
  width: 100%;
  height: 132.6315789474vw;
}
.p-mainvisual__bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-mainvisual__copy {
  z-index: 2;
  color: #fff;
  font-weight: 700;
  font-size: 5.2631578947vw;
  line-height: 1.8;
  text-align: center;
  text-shadow: 0 3px 6px rgba(0, 0, 0, 0.72);
}
.p-mainvisual__copy {
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}
.p-mainvisual__copy span {
  display: block;
}
.p-mainvisual::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 68.6315789474vw;
  height: 53.8947368421vw;
  background: url(../images/img_mv-deco.png) no-repeat center/contain;
  content: "";
}

.p-practice {
  position: relative;
  padding-bottom: 25rem;
  background-color: #DDF3D1;
}
.p-practice::after {
  position: absolute;
  top: calc(100% - 1px);
  left: 0;
  width: 100%;
  height: 111.2rem;
  background: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1852.163'%20height='107.908'%20viewBox='0%200%201852.163%20107.908'%3e%3cpath%20id='bg_wave'%20d='M5815.254-2255.792c-51.372,7.208-124.394,32.567-209.492,26.646s-181.936-38.488-281.708-50.33-164.328-11.843-267.034,0-152.591,44.409-267.035,50.33-220.084-8.882-284.642-26.646-102.706-20.724-158.459-23.685-120.313,26.645-193.674,23.685-146.722-23.685-146.722-23.685v-56.252H5858.125v79.936S5866.625-2263,5815.254-2255.792Z'%20transform='translate(-4006.488%202335.729)'%20fill='%23ddf3d1'/%3e%3c/svg%3e") no-repeat top left 20%/876.55px;
  content: "";
}
.p-practice__lead {
  margin-bottom: 5em;
  font-size: 13rem;
  text-align: center;
}
.p-practice__button {
  margin-top: 30rem;
  text-align: center;
}

.p-related {
  margin-top: 4.5em;
  text-align: center;
}
.p-related__heading {
  margin-bottom: 1.25em;
  font-size: 26rem;
}
.p-related__list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12rem;
}
.p-related__item {
  width: 100%;
}

.p-trial {
  margin-top: 56rem;
}
.p-trial__heading {
  margin-bottom: 1.5em;
  font-size: 26rem;
  text-align: center;
}
.p-trial__block {
  display: grid;
  max-width: 1100rem;
  margin-inline: auto;
  gap: 47rem;
}
.p-trial__img {
  overflow: hidden;
  border-radius: 30rem;
}
.p-trial__body {
  font-size: 16rem;
}
.p-trial__sub-heading {
  margin-top: 1.5em;
  margin-bottom: 1em;
  color: #3E7E1F;
  text-align: center;
}
.p-trial__notes {
  display: grid;
  gap: 0.5em;
}
.p-trial__notes li {
  position: relative;
  padding-left: 1.25em;
}
.p-trial__notes li::before {
  position: absolute;
  top: 0.65em;
  left: 0;
  width: 12rem;
  height: 12rem;
  border-radius: 50%;
  background: #3680C1;
  content: "";
}
.p-trial__button {
  margin-top: 30rem;
  text-align: center;
}

/* =====================================================
    #utility
   ================================================== */
.u-display-ib {
  display: inline-block;
}
.u-display-block {
  display: block;
}
.u-display-sp {
  display: block;
}
.u-display-pc {
  display: none;
}

.u-mt-0 {
  margin-top: 0 !important;
}

.u-mb-0 {
  margin-bottom: 0 !important;
}

.u-mt-10 {
  margin-top: 10rem !important;
}

.u-mb-10 {
  margin-bottom: 10rem !important;
}

.u-mt-20 {
  margin-top: 20rem !important;
}

.u-mb-20 {
  margin-bottom: 20rem !important;
}

.u-mt-30 {
  margin-top: 30rem !important;
}

.u-mb-30 {
  margin-bottom: 30rem !important;
}

.u-mt-40 {
  margin-top: 40rem !important;
}

.u-mb-40 {
  margin-bottom: 40rem !important;
}

.u-mt-50 {
  margin-top: 50rem !important;
}

.u-mb-50 {
  margin-bottom: 50rem !important;
}

.u-mt-60 {
  margin-top: 60rem !important;
}

.u-mb-60 {
  margin-bottom: 60rem !important;
}

.u-mt-70 {
  margin-top: 70rem !important;
}

.u-mb-70 {
  margin-bottom: 70rem !important;
}

.u-mt-80 {
  margin-top: 80rem !important;
}

.u-mb-80 {
  margin-bottom: 80rem !important;
}

.u-mt-90 {
  margin-top: 90rem !important;
}

.u-mb-90 {
  margin-bottom: 90rem !important;
}

.u-mt-100 {
  margin-top: 100rem !important;
}

.u-mb-100 {
  margin-bottom: 100rem !important;
}

.u-mt-110 {
  margin-top: 110rem !important;
}

.u-mb-110 {
  margin-bottom: 110rem !important;
}

.u-mt-120 {
  margin-top: 120rem !important;
}

.u-mb-120 {
  margin-bottom: 120rem !important;
}

.u-mt-130 {
  margin-top: 130rem !important;
}

.u-mb-130 {
  margin-bottom: 130rem !important;
}

.u-mt-140 {
  margin-top: 140rem !important;
}

.u-mb-140 {
  margin-bottom: 140rem !important;
}

.u-mt-150 {
  margin-top: 150rem !important;
}

.u-mb-150 {
  margin-bottom: 150rem !important;
}

.u-mt-160 {
  margin-top: 160rem !important;
}

.u-mb-160 {
  margin-bottom: 160rem !important;
}

.u-mt-170 {
  margin-top: 170rem !important;
}

.u-mb-170 {
  margin-bottom: 170rem !important;
}

.u-mt-180 {
  margin-top: 180rem !important;
}

.u-mb-180 {
  margin-bottom: 180rem !important;
}

.u-mt-190 {
  margin-top: 190rem !important;
}

.u-mb-190 {
  margin-bottom: 190rem !important;
}

.u-mt-200 {
  margin-top: 200rem !important;
}

.u-mb-200 {
  margin-bottom: 200rem !important;
}

.u-mt-auto {
  margin-top: auto;
}

.u-m-auto {
  margin-inline: auto;
}

.u-text-left {
  text-align: left;
}
.u-text-center {
  text-align: center;
}
.u-text-right {
  text-align: right;
}
.u-text-uppercase {
  text-transform: uppercase;
}

.u-weight-normal {
  font-weight: 400;
}
.u-weight-medium {
  font-weight: 500;
}
.u-weight-bold {
  font-weight: 700;
}
@media (min-width: 768px) {
  html {
    font-size: min(0.09765625vw, 1px);
  }
  body {
    font-size: 16rem;
  }
  .l-header {
    height: 126rem;
  }
  .l-main.-page {
    background: url(../images/bg_crowd.jpg) repeat-y top center/100%;
  }
  .c-card__heading {
    font-size: 20rem;
  }
  .c-logo__mark {
    width: 63rem;
  }
  .c-logo__tagline {
    font-size: 17rem;
  }
  .c-logo__type {
    font-size: 23rem;
  }
  .c-logo__type img {
    width: 260rem;
  }
  .c-backtop {
    bottom: 40rem;
    margin-bottom: 40rem;
    font-size: 19rem;
  }
  .c-backtop img {
    width: 32rem;
  }
  .c-section {
    padding: 100rem 4vw;
  }
  .c-team {
    padding: 60rem 40rem 40rem 40rem;
  }
  .c-team__head {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    translate: -50% -50%;
    font-size: 17rem;
  }
  .c-team__name {
    width: 200rem;
    height: 47rem;
  }
  .c-team__target {
    width: 200rem;
    height: 47rem;
  }
  .p-about__spblock {
    display: contents;
  }
  .p-about__block {
    margin-inline: auto;
    padding: 40rem 20rem 50rem;
    border-radius: 25rem;
    background-color: #fff;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
    text-align: center;
  }
  .p-about__gallery__img {
    position: absolute;
  }
  .p-about__gallery__img.-img01 {
    top: -112rem;
    left: -141rem;
    width: 208rem;
    height: 167rem;
  }
  .p-about__gallery__img.-img02 {
    top: -131rem;
    right: -206rem;
    width: 275rem;
    height: 247rem;
  }
  .p-about__gallery__img.-img03 {
    bottom: 94rem;
    left: -216rem;
    width: 275rem;
    height: 247rem;
  }
  .p-about__gallery__img.-img04 {
    top: 88rem;
    left: -233rem;
    width: 184rem;
    height: 130rem;
  }
  .p-about__gallery__img.-img05 {
    right: -225rem;
    bottom: 242rem;
    width: 238rem;
    height: 167rem;
  }
  .p-about__gallery__img.-img06 {
    right: -82rem;
    bottom: 94rem;
    width: 184rem;
    height: 130rem;
  }
  .p-about__button {
    margin-top: 60rem;
  }
  .p-article {
    margin-top: 100rem;
    margin-bottom: calc(30rem + max(187rem, 9.67vw));
  }
  .p-article__title {
    flex-direction: row;
    justify-content: center;
    gap: 0.5em;
    font-size: 29rem;
  }
  .p-article__title img {
    width: 294.03rem;
  }
  .p-article > p {
    max-width: 770rem;
    margin-inline: auto;
    font-size: 16rem;
  }
  .p-article > table {
    max-width: 850rem;
  }
  .p-article > table thead td {
    width: 25%;
  }
  .p-article > table thead th small {
    display: inline;
  }
  .p-article hr {
    margin-top: 80rem;
    margin-bottom: 100rem;
  }
  .p-contact {
    padding-top: calc(80rem + 6.1847vw);
    padding-bottom: calc(30rem + max(187rem, 9.67vw));
  }
  .p-contact__list {
    flex-direction: row;
    margin-top: 53rem;
    gap: 5%;
  }
  .p-feature {
    background: url(../images/bg_crowd.jpg) repeat-y center/100%;
  }
  .p-feature__list {
    gap: 105rem;
  }
  .p-feature__item {
    flex-direction: row;
    align-items: flex-start;
    gap: 70rem;
  }
  .p-feature__item:nth-child(2n) {
    flex-direction: row-reverse;
  }
  .p-feature__body {
    width: 50%;
    min-width: 50%;
  }
  .p-feature__body__heading {
    font-size: 25rem;
  }
  .p-feature__button {
    margin-top: 60rem;
  }
  .p-footer::after {
    height: max(187rem, 9.67vw);
    background: url(../images/bg_footer-glass.png) no-repeat top/max(100%, 1935rem);
  }
  .p-footer__nav {
    flex-direction: row;
    gap: 50rem;
  }
  .p-footer__logo {
    width: 310rem;
    margin-top: 56rem;
  }
  .p-form table td:has(> p) {
    display: grid;
    grid-template-columns: 292rem 1fr;
  }
  .p-form table td:has(> p) > p {
    justify-content: flex-end;
    min-height: 60rem;
  }
  .p-form table td:has(> p) > div {
    justify-content: flex-start;
    padding: 0.7em 1em;
  }
  .p-form table td > div {
    display: grid;
    grid-template-columns: 292rem 1fr;
  }
  .p-form table td > div > p {
    justify-content: flex-end;
    min-height: 60rem;
    padding: 16rem 20rem;
  }
  .p-form table td > div > div {
    justify-content: flex-start;
    padding: 0.7em 1em;
  }
  .p-form table td input[type=text], .p-form table td textarea, .p-form table td select {
    padding: 0.3125em 0.5em;
    font-size: 16rem;
  }
  .p-form table td input[type=text] {
    width: 70%;
  }
  .p-form table td input[type=text][name=seimei1], .p-form table td input[type=text][name=seimei2], .p-form table td input[type=text][name=_seimei1], .p-form table td input[type=text][name=_seimei2] {
    max-width: 212rem;
  }
  .p-form button[type=submit] {
    margin-top: 60rem;
  }
  .p-header__inner {
    padding-right: 32rem;
    padding-left: 32rem;
  }
  .p-header__gnav {
    padding: 140rem 40rem 40rem;
  }
  .p-lead__inner::before {
    top: -233.6rem;
    right: auto;
    left: calc(100% + clamp(-60rem, -1905rem + 112.5vw, 120rem));
    width: 600.22rem;
    height: 562.8rem;
  }
  .p-lead__inner::after {
    right: calc(100% + clamp(-60rem, -1905rem + 112.5vw, 120rem));
    bottom: -40rem;
    left: auto;
    width: 553.79rem;
    height: 520.35rem;
  }
  .p-lead__heading span {
    font-size: 17rem;
  }
  .p-lead__heading__main {
    font-size: 36rem;
  }
  .p-lead__heading__logomark {
    width: 68.33rem;
  }
  .p-lead__heading__logotype {
    width: 391.89rem;
  }
  .p-lead__button {
    margin-top: 60rem;
  }
  .p-mainvisual {
    height: 43.6vw;
    max-height: 784rem;
    padding-top: 0;
  }
  .p-mainvisual__bg {
    top: 126rem;
    height: 55.17vw;
    max-height: 992rem;
  }
  .p-mainvisual__copy {
    font-size: 45rem;
  }
  .p-mainvisual::before {
    width: min(45vw, 811rem);
    height: min(33vw, 596rem);
  }
  .p-practice {
    padding-bottom: 40rem;
  }
  .p-practice::after {
    height: 6.1847vw;
    background-position: top center;
    background-size: 100%;
  }
  .p-practice__lead {
    margin-bottom: 3em;
    font-size: 17rem;
  }
  .p-practice__button {
    margin-top: 60rem;
  }
  .p-related__heading {
    margin-bottom: 1.4em;
  }
  .p-related__list {
    flex-direction: row;
    gap: 58rem;
  }
  .p-related__item {
    width: 358rem;
  }
  .p-trial__block {
    grid-template-columns: 292rem 1fr;
    align-items: start;
  }
  .p-trial__sub-heading {
    text-align: left;
  }
  .p-trial__button {
    margin-top: 60rem;
  }
  .u-display-sp {
    display: none;
  }
  .u-display-pc {
    display: block;
  }
}
@media (min-width: 1024px) {
  .c-logo__type {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    -moz-column-gap: 0.5em;
         column-gap: 0.5em;
  }
}
@media (min-width: 1200px) {
  .c-gnav {
    flex-direction: row;
    align-items: center;
    max-width: unset;
    height: 100%;
    margin: 0;
    gap: 22rem;
    font-size: 15rem;
  }
  .c-gnav__item > a {
    display: grid;
    grid-template-rows: 40rem auto;
    grid-template-columns: 1fr;
    place-content: center;
    place-items: center;
    width: 120rem;
    height: 120rem;
    border-radius: 50%;
    box-shadow: 0 18rem 18rem rgba(0, 0, 0, 0.16);
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
  }
  .c-gnav__item > a span {
    display: grid;
    place-content: center;
    height: 2.7em;
  }
  .c-gnav__item > a span br {
    display: block;
  }
  .p-header__gnav {
    visibility: visible;
    position: static;
    margin-top: 23rem;
    padding: 0;
    overflow: visible;
    background-color: transparent;
    opacity: 1;
  }
  .p-header__hamburger {
    display: none;
  }
}
@media (min-width: 1200px) and (hover: hover) {
  .c-gnav__item > a:hover {
    background-color: #FFF387;
    color: #3E7E1F;
  }
}
@media (hover: hover) {
  .c-button:hover {
    opacity: 0.7;
  }
  .p-footer a {
    transition: opacity 0.3s;
  }
  .p-footer a:hover {
    opacity: 0.7;
  }
  .p-form button[type=submit]:hover {
    opacity: 0.7;
  }
}
@media (prefers-reduced-motion: no-preference) {
  :where(html:focus-within) {
    scroll-behavior: smooth;
  }
}