@charset "UTF-8";
@font-face {
  font-family: "armed";
  src: url("../font/ArmedLemon.woff2") format("woff2"), url("../font/ArmedLemon.woff") format("woff");
}
:root {
  --font-min: "Zen Old Mincho", serif;
  --font-en: "Poppins", sans-serif;
  --font-hand: "armed", sans-serif;
  --color-txt: #222;
  --color-green: #278432;
  --color-bg: #FFF3E3;
  --color-border: #FFDFB4;
}

* {
  margin: 0;
  padding: 0;
}

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

*:where(:not(fieldset, progress, meter)) {
  border-width: 0;
  border-style: solid;
  background-origin: border-box;
  background-repeat: no-repeat;
}

html {
  block-size: 100%;
  -webkit-text-size-adjust: none;
  font-size: 62.5%;
  font-size: 2.6666666667vw;
  scroll-behavior: smooth;
  scroll-padding-top: 8rem;
}

@media (min-width: 768px) {
  html {
    font-size: 1vw;
    scroll-padding-top: 10rem;
  }
}
@media (min-width: 1000px) {
  html {
    font-size: min(0.78125vw, 62.5%);
  }
}
@media (prefers-reduced-motion: no-preference) {
  html:focus-within {
    scroll-behavior: smooth;
  }
}
body {
  text-rendering: optimizeSpeed;
  min-block-size: 100%;
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic Pro", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", sans-serif;
  font-size: 1.6rem;
  color: #222;
}

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

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

:where(svg):where(:not([width])) {
  inline-size: 5rem;
}

:where(input, button, textarea, select),
:where(input[type=file])::-webkit-file-upload-button {
  color: inherit;
  font: inherit;
  font-size: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
}

:where(button) {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

:where(textarea) {
  resize: vertical;
  font-size: 1.4rem;
  padding: 1.5rem;
  border: 1px solid #D5D5D5;
  border-radius: 0.5rem;
}
@media (min-width: 768px) {
  :where(textarea) {
    padding: 2.5rem;
  }
}

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

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

:where(a) {
  text-decoration: none;
  color: currentColor;
}

a:not([class]) {
  text-decoration-skip-ink: auto;
}

:where(a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*="-"])) {
  cursor: pointer;
  touch-action: manipulation;
  font-family: inherit;
}

:where(input[type=text]),
:where(input[type=tel]),
:where(input[type=email]) {
  border-radius: 0.5rem;
  height: 4rem;
  font-size: 1.4rem;
  padding: 1.5rem;
  border: 1px solid #D5D5D5;
}
@media (min-width: 768px) {
  :where(input[type=text]),
  :where(input[type=tel]),
  :where(input[type=email]) {
    height: 5rem;
    padding: 1.5rem 2.5rem;
  }
}

:where(input[type=file]) {
  cursor: auto;
}

:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  cursor: pointer;
}

@media (prefers-reduced-motion: no-preference) {
  :focus-visible {
    transition: outline-offset 145ms cubic-bezier(0.25, 0, 0.4, 1);
  }
  :where(:not(:active)):focus-visible {
    transition-duration: 0.25s;
  }
}
:where(:not(:active)):focus-visible {
  outline-offset: 5px;
}

:where(button, button[type], input[type=button], input[type=submit], input[type=reset]),
:where(input[type=file])::-webkit-file-upload-button,
:where(input[type=file])::file-selector-button {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  user-select: none;
  text-align: center;
}

:where(button, button[type], input[type=button], input[type=submit], input[type=reset])[disabled] {
  cursor: not-allowed;
}

.opening {
  position: relative;
  background-color: #C9EEF9;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  margin-top: -7rem;
}
@media screen and (min-width: 768px) {
  .opening {
    margin-top: -10rem;
  }
}
.opening_logo {
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 10.8rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  opacity: 0;
  transition: 0.5s cubic-bezier(0.61, 1, 0.88, 1) 1.2s;
}
@media screen and (min-width: 768px) {
  .opening_logo {
    top: 2.5rem;
    left: 3rem;
    width: 17rem;
  }
}
.opening_logo span {
  font-size: 0.7rem;
  white-space: nowrap;
  padding-top: 0.8rem;
  letter-spacing: 0.15em;
}
@media screen and (min-width: 768px) {
  .opening_logo span {
    font-size: 1.1rem;
    padding-top: 1rem;
  }
}
.opening h2 {
  position: absolute;
  top: 12.8rem;
  left: 0;
  width: 100%;
  text-align: center;
  pointer-events: none;
  opacity: 0;
  transform: translateY(1rem);
  transition: 0.5s cubic-bezier(0.61, 1, 0.88, 1) 0.5s;
}
@media screen and (min-width: 768px) {
  .opening h2 {
    top: 18.6rem;
  }
}
.opening h2 img {
  width: 22.3rem;
}
@media screen and (min-width: 768px) {
  .opening h2 img {
    width: 56.1rem;
  }
}
.opening_bird {
  position: absolute;
  top: 4.1rem;
  left: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateY(1rem);
  transition: 0.5s cubic-bezier(0, 0.55, 0.45, 1) 0.8s;
}
@media screen and (min-width: 768px) {
  .opening_bird {
    top: 7.4rem;
    width: 100%;
    text-align: center;
  }
}
.opening_bird img {
  width: 35rem;
}
@media screen and (min-width: 768px) {
  .opening_bird img {
    width: 101.1rem;
  }
}
.opening_btn {
  position: absolute;
  bottom: 6.8rem;
  left: 0;
  width: 100%;
  text-align: center;
  opacity: 0;
  transform: translateY(-1rem);
  transition: 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 1.5s;
}
@media screen and (min-width: 768px) {
  .opening_btn {
    bottom: 3.8rem;
  }
}
.opening_btn img {
  width: 8.5rem;
}
@media screen and (min-width: 768px) {
  .opening_btn img {
    width: 11.6rem;
  }
}
.opening_main {
  opacity: 0;
  transition: 0.5s cubic-bezier(0.34, 1.2, 0.64, 1);
  width: 100%;
  height: 100vh;
  height: 100dvh;
}
.opening_main img {
  transform-origin: 50% 58vh !important;
  transition: 0.2s;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .opening_main img {
    transform-origin: 50% 65vh !important;
  }
}
.opening.readyOn .opening_logo {
  opacity: 1;
}
.opening.readyOn h2 {
  opacity: 1;
  transform: translateY(0);
}
.opening.readyOn .opening_bird {
  opacity: 1;
  transform: translateY(0);
}
.opening.readyOn .opening_btn {
  opacity: 1;
  transform: translateY(0);
}
.opening.readyOn .opening_main {
  opacity: 1;
}

/*-------------------
header
---------------------*/
.nav_btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 1.2rem;
  font-family: var(--font-min);
  text-align: center;
  font-size: 1.4rem;
  width: 5.8rem;
  letter-spacing: 0.05em;
  line-height: 1;
  z-index: 1000;
}
.nav_btn span {
  background-color: currentColor;
  height: 2px;
  width: 100%;
  transform-origin: center left;
  transition: 0.3s ease;
}
.nav_btn span:first-child {
  margin-bottom: 0.4rem;
}

header {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 999;
}
header.open .nav_btn span:nth-child(1) {
  transform: rotate(10.5deg);
}
header.open .nav_btn span:nth-child(2) {
  transform: rotate(-10.5deg);
}
header.open .drawer {
  opacity: 1;
  visibility: visible;
  pointer-events: visible;
}

.header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem;
  height: 7rem;
}
@media screen and (min-width: 768px) {
  .header {
    height: 10rem;
    padding: 0 2rem 0 3rem;
  }
}
.header_logo {
  z-index: 1000;
}
.header_logo a {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.header_logo img {
  width: 10.8rem;
}
@media screen and (min-width: 768px) {
  .header_logo img {
    width: 17rem;
  }
}
.header_logo span {
  font-size: 0.7rem;
  text-align: center;
  padding-top: 0.7rem;
  line-height: 1;
  letter-spacing: 0.12em;
}
@media screen and (min-width: 768px) {
  .header_logo span {
    font-size: 1.1rem;
    padding-top: 1.2rem;
  }
}

.pc_nav {
  display: none;
}
@media screen and (min-width: 768px) {
  .pc_nav {
    display: flex;
    margin-left: auto;
    padding-right: 1rem;
    opacity: 1;
    visibility: visible;
    pointer-events: visible;
    transition: 0.3s;
  }
  .pc_nav a {
    font-size: 1.4rem;
    padding: 1rem;
    transition: color 0.3s;
  }
}
@media screen and (min-width: 768px) and (hover) {
  .pc_nav a:hover {
    color: var(--color-green);
  }
}
@media screen and (min-width: 768px) {
  .pc_nav.hide {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

.drawer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  background-color: var(--color-bg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: 0.3s ease-in;
  overflow: auto;
}
.drawer::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../img/texture.webp) center top/auto 128rem;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  pointer-events: none;
}
.drawer_wrap {
  min-height: 100%;
  background: url(../img/drawer_bg_sp.webp) no-repeat center bottom/100% auto;
  padding: 9.4rem 3rem 13.7rem;
}
@media screen and (min-width: 768px) {
  .drawer_wrap {
    background-image: url(../img/drawer_bg.webp);
    padding: 15.7rem 0 23rem;
  }
}
@media screen and (min-width: 768px) {
  .drawer_inner {
    max-width: 104rem;
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 1fr;
    align-items: flex-start;
    padding-inline: 2rem;
  }
}
.drawer_logo {
  text-align: center;
  margin-bottom: 2.6rem;
}
@media screen and (min-width: 768px) {
  .drawer_logo {
    margin-bottom: 7rem;
    grid-area: 1/2/2/3;
    width: 31.8rem;
    margin-left: auto;
  }
}
.drawer_logo a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.drawer_logo a img {
  width: 15.4rem;
}
@media screen and (min-width: 768px) {
  .drawer_logo a img {
    width: 100%;
  }
}
.drawer_logo a span {
  font-size: 0.9rem;
  line-height: 1;
  letter-spacing: 0.25em;
  padding-top: 1.2rem;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .drawer_logo a span {
    font-size: 1.7rem;
    padding-top: 3rem;
    letter-spacing: 0.3em;
  }
}
@media screen and (min-width: 768px) {
  .drawer nav {
    grid-area: 1/1/3/2;
  }
}
.drawer_nav {
  display: grid;
  grid-template-columns: 1fr auto;
}
@media screen and (min-width: 768px) {
  .drawer_nav {
    column-gap: 10rem;
    margin-top: -2rem;
  }
}
.drawer_nav li a {
  display: flex;
  flex-direction: column;
  padding-block: 1rem;
  width: fit-content;
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  font-weight: 400;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .drawer_nav li a {
    font-size: 1.9rem;
    padding-block: 3.8rem;
  }
}
.drawer_nav li a span {
  font-size: 1.3rem;
  font-family: var(--font-en);
  letter-spacing: 0.05em;
  color: #7e7e7e;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .drawer_nav li a span {
    font-size: 1.6rem;
  }
}
.drawer_nav li a:active {
  color: var(--color-green);
}
@media (hover) {
  .drawer_nav li a:hover {
    color: var(--color-green);
  }
  .drawer_nav li a:hover span {
    color: var(--color-green);
  }
}
.drawer_btn {
  margin-top: 2rem;
  display: grid;
  row-gap: 0.6rem;
}
@media screen and (min-width: 768px) {
  .drawer_btn {
    grid-area: 2/2/3/3;
    width: 31.8rem;
    margin-left: auto;
    row-gap: 1rem;
    margin-top: 0;
  }
}

/*-------------------
footer
---------------------*/
footer {
  position: relative;
}

.footer_contact {
  position: relative;
  background: #BFE2AE;
  background: linear-gradient(0deg, rgb(191, 226, 174) 0%, rgb(146, 202, 119) 100%);
  min-height: 4.5rem;
  text-align: center;
  color: #fff;
}
@media screen and (min-width: 768px) {
  .footer_contact {
    min-height: 7rem;
  }
}
.footer_contact::before {
  content: "";
  width: 100%;
  aspect-ratio: 375/92;
  background: url(../img/footer_city_sp.webp) no-repeat center top/cover;
  position: absolute;
  bottom: calc(100% - 1px);
  left: 0;
}
@media screen and (min-width: 768px) {
  .footer_contact::before {
    aspect-ratio: 128/18;
    background-image: url(../img/footer_city.webp);
  }
}
.footer_contact .tree {
  position: absolute;
  top: -1.5rem;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 99;
}
@media screen and (min-width: 768px) {
  .footer_contact .tree {
    top: -3rem;
  }
}
.footer_contact .tree img {
  width: 14rem;
}
@media screen and (min-width: 768px) {
  .footer_contact .tree img {
    width: 27.3rem;
  }
}
.footer_contact .sec_inner {
  padding-top: 4.5rem;
}
@media screen and (min-width: 768px) {
  .footer_contact .sec_inner {
    padding-top: 8rem;
  }
}
.footer_contact h2 {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .footer_contact h2 {
    margin-bottom: 3rem;
  }
}
.footer_contact h2 span {
  display: flex;
  align-items: center;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  font-family: var(--font-en);
  font-weight: 400;
}
.footer_contact h2 span:before {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url(../img/icon_heart.svg) no-repeat center/100% auto;
  margin-right: 0.3rem;
  filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(112deg) brightness(104%) contrast(103%);
}
.footer_contact h2 strong {
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-top: 2rem;
}
.footer_contact p {
  font-weight: 500;
}
.footer_contact_link {
  margin-top: 4.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 3.5rem;
}
@media screen and (min-width: 768px) {
  .footer_contact_link {
    position: relative;
    margin-top: -6rem;
    display: flex;
    justify-content: space-between;
    column-gap: 0;
  }
}
@media screen and (min-width: 768px) {
  .footer_contact_link li {
    width: 20rem;
  }
}
.footer_contact_link li.tel {
  background: url(../img/baloon_tel_sp.webp) no-repeat center/cover;
}
.footer_contact_link li.form {
  background: url(../img/baloon_form_sp.webp) no-repeat center/cover;
}
.footer_contact_link li a {
  display: block;
  aspect-ratio: 1;
  position: relative;
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  line-height: 1.6;
  padding-top: 5.6rem;
  color: #222;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .footer_contact_link li a {
    font-size: 1.6rem;
    padding-top: 8rem;
  }
}
.footer_contact_link li a:after {
  content: "";
  width: 1rem;
  aspect-ratio: 10/6;
  background: url(../img/arrow_black.svg) no-repeat center/100% auto;
  position: absolute;
  bottom: 2.7rem;
  left: calc(50% - 0.5rem);
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .footer_contact_link li a:after {
    width: 1.5rem;
    bottom: 3.85rem;
    left: calc(50% - 0.75rem);
  }
}
.footer_contact_link li a:active {
  color: var(--color-green);
}
.footer_contact_link li a:active:after {
  filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
  transform: translateX(1rem);
}
@media (hover) {
  .footer_contact_link li a:hover {
    color: var(--color-green);
  }
  .footer_contact_link li a:hover:after {
    filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
    transform: translateX(1rem);
  }
}
.footer_contact figure {
  margin-top: 2rem;
  text-align: center;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .footer_contact figure {
    margin-top: -10.2rem;
  }
}
.footer_contact figure img {
  width: 32rem;
}
@media screen and (min-width: 768px) {
  .footer_contact figure img {
    width: 39.1rem;
  }
}
.footer_col {
  background-color: #fff;
  padding: 3rem;
}
@media screen and (min-width: 768px) {
  .footer_col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: 116rem;
    margin-inline: auto;
    padding: 7.5rem 2rem 7rem;
  }
}
@media screen and (min-width: 768px) {
  .footer_detail {
    display: flex;
    flex-direction: column;
  }
}
.footer_logo {
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .footer_logo {
    margin-bottom: 0;
    width: 32.4rem;
  }
}
.footer_logo a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.footer_logo a img {
  width: 100%;
}
.footer_logo a span {
  margin-top: 2rem;
  font-size: 1.7rem;
  letter-spacing: 0.35em;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .footer_logo a span {
    width: 1.8rem;
    letter-spacing: 0.39em;
  }
}
.footer_add {
  font-size: 1.3rem;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .footer_add {
    margin-top: auto;
  }
}
.footer_menu {
  margin-top: 4rem;
}
@media screen and (min-width: 768px) {
  .footer_menu {
    margin-top: 0;
    display: grid;
    grid-template-columns: auto 26rem;
    column-gap: 3.5rem;
    width: fit-content;
    margin-left: auto;
  }
}
.footer_menu_btn {
  display: grid;
  row-gap: 0.7rem;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .footer_menu_btn {
    margin-bottom: 0;
    grid-area: 1/2/2/3;
  }
}
.footer_menu_btn a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--color-bg);
  border-radius: 0.2rem;
  padding: 0.5rem 2rem;
  transition: opacity 0.3s;
}
.footer_menu_btn a p {
  display: flex;
  flex-direction: column;
}
.footer_menu_btn a p span {
  font-size: 1.3rem;
  color: #7E7E7E;
  font-family: var(--font-en);
  line-height: 1;
  letter-spacing: 0.05em;
}
.footer_menu_btn a p strong {
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-top: 0.4rem;
}
.footer_menu_btn a img {
  width: 5.6rem;
}
.footer_menu_btn a:active {
  opacity: 0.5;
}
@media (hover) {
  .footer_menu_btn a:hover {
    opacity: 0.5;
  }
}
@media screen and (min-width: 768px) {
  .footer_menu_link {
    grid-area: 1/1/2/2;
    margin-top: -1.8rem;
  }
}
.footer_menu_link a {
  display: flex;
  flex-direction: column;
  padding-block: 1rem;
}
@media screen and (min-width: 768px) {
  .footer_menu_link a {
    padding-block: 1.8rem;
  }
}
.footer_menu_link a span {
  font-size: 1.3rem;
  color: #7E7E7E;
  font-family: var(--font-en);
  line-height: 1;
  letter-spacing: 0.05em;
  transition: color 0.3s;
}
.footer_menu_link a strong {
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  margin-top: 0.4rem;
  transition: color 0.3s;
}
.footer_menu_link a:active span, .footer_menu_link a:active strong {
  color: var(--color-green);
}
@media (hover) {
  .footer_menu_link a:hover span, .footer_menu_link a:hover strong {
    color: var(--color-green);
  }
}
.footer_copyright {
  margin-top: 1.5rem;
  font-size: 1.2rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media screen and (min-width: 768px) {
  .footer_copyright {
    grid-area: 2/1/3/3;
    margin-top: 2.8rem;
    text-align: right;
  }
}

/*-------------------
common
---------------------*/
.min {
  font-family: var(--font-min);
}

.en {
  font-family: var(--font-en);
}

.hand {
  font-family: var(--font-hand);
}

.green {
  color: var(--color-green);
}

.bg-green {
  background-color: var(--color-green);
}

.bg-baige {
  background-color: var(--color-bg);
}

.bg-white {
  background-color: #fff;
}

@media screen and (min-width: 768px) {
  .show_sp {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .show_tabpc {
    display: none !important;
  }
}

.show_pc {
  display: none !important;
}
@media screen and (min-width: 1000px) {
  .show_pc {
    display: block !important;
  }
}

.btn-arrow {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 0.9rem;
  padding: 1.4rem;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .btn-arrow {
    padding: 1.8rem 2.5rem;
  }
}
.btn-arrow:after {
  content: "";
  width: 100%;
  aspect-ratio: 10/6;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  transition: 0.3s;
}
.btn-white {
  background-color: #fff;
  color: #222;
}
.btn-white:after {
  background-image: url(../img/arrow_black.svg);
}
.btn-white:active {
  color: #fff;
  background-color: var(--color-green);
}
.btn-white:active:after {
  filter: brightness(0) saturate(100%) invert(100%) sepia(99%) saturate(0%) hue-rotate(295deg) brightness(103%) contrast(102%);
  transform: translateX(1rem);
}
@media (hover) {
  .btn-white:hover {
    color: #fff;
    background-color: var(--color-green);
  }
  .btn-white:hover:after {
    filter: brightness(0) saturate(100%) invert(100%) sepia(99%) saturate(0%) hue-rotate(295deg) brightness(103%) contrast(102%);
    transform: translateX(1rem);
  }
}
.btn-green {
  background-color: var(--color-green);
  color: #fff;
}
.btn-green:after {
  background-image: url(../img/arrow_white.svg);
}
.btn-green:active {
  opacity: 0.75;
}
.btn-green:active:after {
  transform: translateX(1rem);
}
@media (hover) {
  .btn-green:hover {
    opacity: 0.75;
  }
  .btn-green:hover:after {
    transform: translateX(1rem);
  }
}
.btn-anchor:after {
  transform: rotate(90deg);
}
.btn-anchor:active:after {
  transform: rotate(90deg) translateX(0.5rem);
}
@media (hover) {
  .btn-anchor:hover:after {
    transform: rotate(90deg) translateX(0.5rem);
  }
}
.btn-center {
  margin-inline: auto;
}

.link-arrow {
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 0.9rem;
  column-gap: 4rem;
  width: fit-content;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  line-height: 1.28;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #222;
  transition: 0.3s;
}
.link-arrow:after {
  content: "";
  width: 100%;
  aspect-ratio: 10/6;
  background: url(../img/arrow_black.svg) no-repeat center/100% auto;
  transition: 0.3s;
}
.link-arrow:active {
  color: var(--color-green);
  border-bottom-color: var(--color-green);
}
.link-arrow:active:after {
  filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
  transform: translateX(1rem);
}
@media (hover) {
  .link-arrow:hover {
    color: var(--color-green);
    border-bottom-color: var(--color-green);
  }
  .link-arrow:hover:after {
    filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
    transform: translateX(1rem);
  }
}
.link-center {
  margin-inline: auto;
}

a:active .link-arrow {
  color: var(--color-green);
  border-bottom-color: var(--color-green);
}
a:active .link-arrow:after {
  filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
  transform: translateX(1rem);
}
@media (hover) {
  a:hover .link-arrow {
    color: var(--color-green);
    border-bottom-color: var(--color-green);
  }
  a:hover .link-arrow:after {
    filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
    transform: translateX(1rem);
  }
}

.btn_submit {
  position: relative;
  max-width: 30rem;
  height: 5rem;
  margin: 3rem auto 0;
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .btn_submit {
    margin-top: 5rem;
  }
}
.btn_submit:after {
  content: "";
  width: 1rem;
  height: 0.6rem;
  background: url(../img/arrow_white.svg) no-repeat center/100% auto;
  position: absolute;
  top: calc(50% - 0.3rem);
  right: 2rem;
  pointer-events: none;
}
.btn_submit input[type=submit] {
  width: 100%;
  background-color: var(--color-green);
  color: #fff;
  height: 5rem;
  font-family: var(--font-min);
  font-size: 1.4rem;
  padding: 0 2rem;
  text-align: left;
  letter-spacing: 0.1em;
  font-weight: 500;
}
.btn_submit:hover {
  opacity: 0.5;
}

main {
  position: relative;
  z-index: 0;
  transition: 0.6s linear;
  overflow: clip;
}
main:before {
  content: "";
  width: 100%;
  height: 50%;
  background-color: #C9EEF9;
  position: absolute;
  top: 0;
  left: 0;
}
main::after {
  content: "";
  width: 100%;
  height: 100%;
  background: url(../img/texture.webp) center top/auto 128rem;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  pointer-events: none;
}
main.show {
  opacity: 1;
}

.contents {
  padding-top: 4.5rem;
  position: relative;
}

.opening + .contents {
  padding-top: 7.5rem;
}
@media screen and (min-width: 768px) {
  .opening + .contents {
    padding-top: 14.5rem;
  }
}

.sec_inner {
  margin-inline: 3rem;
}
@media screen and (min-width: 768px) {
  .sec_inner {
    margin-inline: auto;
    padding-inline: 2rem;
    max-width: 104rem;
  }
}

.sec_ttl {
  display: flex;
  flex-direction: column;
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .sec_ttl {
    margin-bottom: 5rem;
  }
}
.sec_ttl p {
  display: flex;
  align-items: center;
  font-size: 1.3rem;
  letter-spacing: 0.1em;
}
.sec_ttl p:before {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url(../img/icon_heart.svg) no-repeat center/100% auto;
  margin-right: 0.3rem;
}
.sec_ttl p + h2 {
  margin-top: 2rem;
}
.sec_ttl h2 {
  font-size: 4rem;
  line-height: 1.375;
  letter-spacing: 0.11em;
  font-weight: 400;
}
.sec_ttl h2.hand {
  transform: translateX(-0.25em);
}
.sec_ttl-center {
  align-items: center;
  text-align: center;
}
.sec_ttl-center h2.hand {
  transform: none;
}

.txt {
  font-size: 1.6rem;
  line-height: 1.85;
  font-weight: 400;
  letter-spacing: 0.02em;
}
.txt + .txt {
  margin-top: 3rem;
}
@media screen and (min-width: 768px) {
  .txt + .txt {
    margin-top: 2rem;
  }
}

.list {
  display: grid;
  grid-template-columns: auto 1fr;
}
.list::before {
  content: "・";
}

.note {
  display: grid;
  grid-template-columns: auto 1fr;
}
.note::before {
  content: "※";
}

.overhidden {
  overflow: hidden;
}

.anime.fade {
  opacity: 0;
  transition: 0.6s ease-in;
}
.anime.right-in {
  opacity: 0;
  transform: translate(1rem, 1rem);
  transition: 0.8s ease-in;
}
.anime.left-in {
  opacity: 0;
  transform: translate(-1rem, 1rem);
  transition: 0.6s ease-in;
}
.anime.bottom-in {
  transform: translateY(100%);
  transition: 0.6s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.anime .bottom-in {
  transform: translateY(100%);
  transition: 0.6s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.anime.delay1 {
  transition-delay: 0.2s;
}
.anime.delay2 {
  transition-delay: 0.4s;
}
.anime.show.fade {
  opacity: 1;
}
.anime.show.left-in {
  opacity: 1;
  transform: translate(0);
}
.anime.show.right-in {
  opacity: 1;
  transform: translate(0);
}
.anime.show.bottom-in {
  transform: translateY(0);
}
.anime.show .bottom-in {
  transform: translateY(0);
}

/*-------------------
TOP
---------------------*/
.message {
  position: relative;
  padding-bottom: 21rem;
}
@media screen and (min-width: 768px) {
  .message {
    padding-bottom: 10.3rem;
  }
}
.message .link-arrow {
  margin-top: 4rem;
}
.message_birds {
  position: absolute;
  bottom: 5.7rem;
  right: -0.6rem;
}
@media screen and (min-width: 768px) {
  .message_birds {
    bottom: 12.2rem;
    right: 0;
  }
}
.message_birds img {
  width: 9rem;
}
@media screen and (min-width: 768px) {
  .message_birds img {
    width: 17.5rem;
  }
}
.message_cloud {
  position: absolute;
  bottom: -2rem;
  left: -3rem;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .message_cloud {
    bottom: -13.4rem;
    left: 8rem;
  }
}
.message_cloud img {
  width: 15.5rem;
}
@media screen and (min-width: 768px) {
  .message_cloud img {
    width: 71.5rem;
  }
}

.service {
  background: url(../img/top/roof.svg) no-repeat center top/100% auto var(--color-bg);
  padding-top: 18rem;
  overflow: hidden;
  position: relative;
}
@media screen and (min-width: 768px) {
  .service {
    padding-top: 32.7rem;
  }
}
.service:after {
  content: "";
  width: 100%;
  aspect-ratio: 75/49;
  background: url(../img/top/garden_sp.webp) no-repeat center top/cover;
  display: block;
}
@media screen and (min-width: 768px) {
  .service:after {
    background-image: url(../img/top/garden.webp);
    aspect-ratio: 1280/607;
  }
}
@media screen and (max-width: 767px) {
  .service .sec_ttl h2 {
    font-size: 3.5rem;
    letter-spacing: 0.03em;
  }
}
.service_list {
  margin-inline: 3rem;
  display: grid;
  row-gap: 7rem;
  margin-bottom: 10rem;
}
@media screen and (min-width: 768px) {
  .service_list {
    display: flex;
    justify-content: center;
    margin-inline: auto;
    row-gap: 0;
    margin-bottom: 12rem;
  }
}
.service_list a {
  display: block;
}
.service_list a:active figure:after {
  background-image: url(../img/window_open.svg) !important;
}
@media (hover) {
  .service_list a:hover figure:after {
    background-image: url(../img/window_open.svg) !important;
  }
}
.service_list figure {
  position: relative;
  text-align: center;
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .service_list figure {
    margin-bottom: 5rem;
  }
}
.service_list figure img {
  width: 100%;
}
.service_list figure:after {
  content: "";
  width: 100%;
  aspect-ratio: 666/756;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  position: absolute;
  bottom: 0;
  left: 0;
}
.service_list h3 {
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .service_list h3 {
    margin-bottom: 2.5rem;
  }
}
.service_list h3 strong {
  font-size: 2.5rem;
  line-height: 1;
  font-weight: 400;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .service_list h3 strong {
    font-size: 2.8rem;
  }
}
.service_list h3 span {
  font-family: var(--font-en);
  font-weight: 500;
  font-size: 1.2rem;
  margin-top: 1.2rem;
  line-height: 1;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .service_list h3 span {
    font-size: 1.3rem;
    margin-top: 1.5rem;
  }
}
.service_list p {
  font-size: 1.6rem;
  line-height: 1.75;
  letter-spacing: 0.05em;
  margin-bottom: 3.5rem;
}
@media screen and (min-width: 768px) {
  .service_list p {
    width: 28rem;
    margin-inline: auto;
  }
}
@media screen and (min-width: 768px) {
  .service_list li {
    width: 33.3rem;
    margin-inline: 1.5rem;
  }
}
.service_list li:nth-child(1) figure:after {
  background-image: url(../img/window_adults_close.webp);
}
.service_list li:nth-child(2) figure:after {
  background-image: url(../img/window_children_close.webp);
}
.service_list li:nth-child(3) figure:after {
  background-image: url(../img/window_expert_close.webp);
}
.service_tree {
  position: absolute;
  bottom: 7rem;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .service_tree {
    bottom: 31.25vw;
  }
}
.service_tree img {
  width: 15.2rem;
}
@media screen and (min-width: 768px) {
  .service_tree img {
    width: 21.8rem;
  }
}
.service_tree-left {
  left: -6.6rem;
}
@media screen and (min-width: 768px) {
  .service_tree-left {
    left: 3.5rem;
  }
}
.service_tree-right {
  transform: scale(-1, 1);
  right: -6.6rem;
}
@media screen and (min-width: 768px) {
  .service_tree-right {
    right: 3.5rem;
  }
}

@media screen and (min-width: 768px) {
  .top_col {
    display: grid;
    grid-template-columns: 25rem 1fr;
    grid-template-rows: auto 1fr;
    column-gap: 3rem;
  }
}
@media screen and (min-width: 768px) {
  .top_col .sec_ttl {
    grid-area: 1/1/2/2;
  }
}
.top_col_main {
  position: relative;
}
@media screen and (min-width: 768px) {
  .top_col_main {
    grid-area: 1/2/3/3;
  }
}

#news {
  padding-top: 4rem;
  padding-bottom: 6rem;
}
@media screen and (min-width: 768px) {
  #news {
    padding-bottom: 0;
  }
}

.news_tab {
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  .news_tab {
    margin-bottom: 0;
    grid-area: 2/1/3/2;
  }
}
.news_tab h3 {
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  font-family: var(--font-en);
  line-height: 1;
  margin-bottom: 1rem;
}
.news_tab_item {
  display: flex;
  flex-wrap: wrap;
}
.news_tab_item li {
  cursor: pointer;
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1;
  display: flex;
  align-items: center;
  transition: 0.3s;
  color: #959595;
  padding-block: 1rem;
}
.news_tab_item li:before {
  content: "";
  width: 1rem;
  height: 1rem;
  background: url(../img/icon_heart.svg) no-repeat center/100% auto;
  transform: scale(1);
  transition: 0.3s;
  margin-right: 0.4rem;
  filter: brightness(0) saturate(100%) invert(61%) sepia(22%) saturate(0%) hue-rotate(314deg) brightness(91%) contrast(100%);
}
.news_tab_item li:not(:last-child) {
  margin-right: 1.5rem;
}
.news_tab_item li.active, .news_tab_item li:active {
  color: #222;
}
.news_tab_item li.active::before, .news_tab_item li:active::before {
  filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
  transform: scale(1.5);
}
@media (hover) {
  .news_tab_item li:hover {
    color: #222;
  }
  .news_tab_item li:hover::before {
    filter: brightness(0) saturate(100%) invert(37%) sepia(80%) saturate(417%) hue-rotate(77deg) brightness(94%) contrast(94%);
    transform: scale(1.5);
  }
}
.news_filter {
  transition: opacity 0.4s ease-in-out;
}
@media screen and (min-width: 768px) {
  .news_tab_item {
    display: block;
  }
  .news_tab_item li {
    font-size: 1.6rem;
    letter-spacing: 0.1em;
    padding-block: 1rem;
  }
  .news_tab_item li:not(:last-child) {
    margin-right: 2rem;
  }
  .news_filter {
    margin-top: -2rem;
  }
}
.news_filter li {
  padding-block: 2rem;
  border-bottom: 1px dashed #222;
}
.news_filter a {
  display: block;
  transition: 0.3s;
}
.news_filter a:active {
  opacity: 0.5;
}
@media (hover) {
  .news_filter a:hover {
    opacity: 0.5;
  }
}
.news_filter h3 {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.7;
}
.news_data {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.news_data time {
  font-family: var(--font-min);
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
.news_data span {
  font-size: 1.3rem;
  font-weight: 500;
  color: #fff;
  background-color: var(--color-green);
  line-height: 2rem;
  padding-inline: 1rem;
  border-radius: 0.2rem;
}

#access {
  background: linear-gradient(0deg, rgb(255, 243, 227) 5%, rgb(255, 255, 255) 100%);
}
@media screen and (min-width: 768px) {
  #access {
    background: linear-gradient(0deg, rgb(255, 243, 227) 0%, rgb(255, 255, 255) 100%);
  }
}

.access {
  position: relative;
  padding-top: 4rem;
  padding-bottom: 34.5rem;
  background: url(../img/top/cloud2_sp.webp) no-repeat center bottom/100% auto;
}
@media screen and (min-width: 768px) {
  .access {
    padding-top: 19rem;
    padding-bottom: 73.5rem;
    background-image: url(../img/top/cloud2.webp);
  }
}
.access .top_col_main {
  margin-top: -2rem;
}
.access_list {
  padding-block: 2rem;
}
@media screen and (min-width: 768px) {
  .access_list {
    display: grid;
    grid-template-columns: 13.5rem 1fr;
    column-gap: 2rem;
  }
}
.access_list dt {
  font-family: var(--font-min);
  font-size: 1.6rem;
  font-weight: 500;
  margin-bottom: 0.5rem;
}
.access_list dd {
  font-size: 1.6rem;
  line-height: 1.75;
}
.access_list + .access_list {
  border-top: 1px dashed #222;
}
.access_list dd p.tel {
  font-size: 2.3rem;
  line-height: 1.3;
  letter-spacing: 0.1em
}
.tel + .txt {
  margin-top: 0.5rem;
}
@media screen and (min-width: 768px) {
  .tel + .txt {
    margin-top: 0.2rem;
  }
}
.access_map {
  aspect-ratio: 315/220;
}
@media screen and (min-width: 768px) {
  .access_map {
    margin-top: 5rem;
  }
}
.access_map iframe {
  width: 100%;
  height: 100%;
}
.access_bird_left {
  position: absolute;
  bottom: 23.3rem;
  left: 6.7rem;
  transform: rotate(-17.27deg);
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .access_bird_left {
    bottom: 47.2rem;
    left: 29.9rem;
  }
}
.access_bird_left img {
  width: 4.6rem;
}
@media screen and (min-width: 768px) {
  .access_bird_left img {
    width: 9.1rem;
  }
}
.access_bird_right {
  position: absolute;
  bottom: 17.5rem;
  right: 2.5rem;
  transform: scale(-1, 1) rotate(-23.65deg);
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .access_bird_right {
    bottom: 26.4rem;
    right: 22.7rem;
  }
}
.access_bird_right img {
  width: 3.4rem;
}
@media screen and (min-width: 768px) {
  .access_bird_right img {
    width: 6.7rem;
  }
}

/*-------------------
ABOUT
---------------------*/
.about_top {
  position: relative;
  padding-top: 17.8rem;
}
@media screen and (min-width: 768px) {
  .about_top {
    padding-top: 0;
    margin-top: -7.7rem;
  }
}
.about_top .tree {
  position: absolute;
  left: 0;
  bottom: 9rem;
  width: 100%;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .about_top .tree {
    bottom: 19.0625vw;
    text-align: center;
  }
}
.about_top .tree img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .about_top .tree img {
    width: 103.4rem;
  }
}
.about_top .bird_left {
  display: none;
}
@media screen and (min-width: 768px) {
  .about_top .bird_left {
    display: block;
    position: absolute;
    transform: rotate(-17.27deg);
    pointer-events: none;
    top: 21.8rem;
    left: 10.2rem;
  }
}
@media screen and (min-width: 768px) {
  .about_top .bird_left img {
    width: 7.4rem;
  }
}
.about_top .bird_right {
  position: absolute;
  bottom: 37.4rem;
  right: 4.3rem;
  transform: scale(-1, 1) rotate(-23.65deg);
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .about_top .bird_right {
    bottom: auto;
    top: 1rem;
    right: 25.3rem;
  }
}
.about_top .bird_right img {
  width: 3.4rem;
}
@media screen and (min-width: 768px) {
  .about_top .bird_right img {
    width: 8.7rem;
  }
}
.about_top_bg {
  pointer-events: none;
}
.about_top_bg img {
  width: 100%;
}
.about_top_ttl {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
}
@media screen and (min-width: 768px) {
  .about_top_ttl {
    top: 7rem;
  }
}
.about_top_ttl .sec_ttl {
  margin-bottom: 0;
}
.about_contents {
  position: relative;
}
.about_contents:before {
  content: "";
  width: 100%;
  aspect-ratio: 375/150;
  background: url(../img/about/cloud_sp.webp) no-repeat center/100% auto;
  position: absolute;
  bottom: 12.5rem;
  left: 0;
  z-index: 1;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .about_contents:before {
    aspect-ratio: 128/76;
    background-image: url(../img/about/cloud_sp.webp);
    bottom: 28.5rem;
  }
}
.about_detail {
  position: relative;
  padding-bottom: 34rem;
}
@media screen and (min-width: 768px) {
  .about_detail {
    padding-bottom: 73.7rem;
  }
}
.about_detail:before {
  content: "";
  width: 100%;
  height: 147.7rem;
  background: linear-gradient(0deg, rgb(255, 243, 227) 0%, rgb(255, 255, 255) 100%);
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .about_detail:before {
    height: 92rem;
  }
}
.about_detail:after {
  content: "";
  width: 100%;
  height: calc(100% - 147.6rem);
  background-color: var(--color-bg);
  position: absolute;
  left: 0;
  bottom: 0;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  .about_detail:after {
    height: calc(100% - 91.9rem);
  }
}
.about_detail .sec_inner {
  position: relative;
  z-index: 1;
}
.about_detail .bird_left {
  position: absolute;
  bottom: 23.3rem;
  left: 6.7rem;
  transform: rotate(-17.27deg);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .about_detail .bird_left {
    bottom: 47.2rem;
    left: 29.9rem;
  }
}
.about_detail .bird_left img {
  width: 4.6rem;
}
@media screen and (min-width: 768px) {
  .about_detail .bird_left img {
    width: 9.1rem;
  }
}
.about_detail .bird_right {
  position: absolute;
  bottom: 17.5rem;
  right: 2.5rem;
  transform: scale(-1, 1) rotate(-23.65deg);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .about_detail .bird_right {
    bottom: 26.4rem;
    right: 22.7rem;
  }
}
.about_detail .bird_right img {
  width: 3.4rem;
}
@media screen and (min-width: 768px) {
  .about_detail .bird_right img {
    width: 6.7rem;
  }
}
.about_lead {
  padding-top: 4.5rem;
  padding-bottom: 6rem;
  margin-bottom: 6rem;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  .about_lead {
    padding-top: 0;
    padding-bottom: 9.5rem;
    margin-bottom: 7rem;
    position: relative;
  }
}
.about_lead h2 {
  text-align: center;
  font-size: 2.5rem;
  letter-spacing: 0.03em;
  line-height: 1.8;
  font-weight: 400;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .about_lead h2 {
    font-size: 3rem;
    margin-bottom: 0;
    position: absolute;
    top: -11rem;
    left: 0;
    width: 100%;
  }
}
@media screen and (min-width: 768px) {
  .about_lead_txt {
    padding-top: 14rem;
    text-align: center;
  }
}
.about_lead_txt p {
  font-size: 1.8rem;
  line-height: 2.78;
  letter-spacing: 0.03em;
  display: inline;
  padding-bottom: 1.2rem;
  background: linear-gradient(to right, rgba(34, 34, 34, 0.5) 0%, rgba(34, 34, 34, 0.5) 50%, rgba(34, 34, 34, 0) 51%, rgba(34, 34, 34, 0) 100%) repeat-x left bottom/10px 1px;
}
@media screen and (min-width: 768px) {
  .about_lead_txt p {
    line-height: 3.3;
    padding-bottom: 1rem;
  }
}
.about_anchor {
  margin-top: 6rem;
  display: grid;
  row-gap: 0.7rem;
}
@media screen and (min-width: 768px) {
  .about_anchor {
    grid-template-columns: repeat(3, 1fr);
    gap: 0 0.5rem;
  }
}
.about_anchor a {
  font-size: 1.4rem;
}
@media screen and (min-width: 768px) {
  .about_col {
    display: flex;
    align-items: flex-start;
  }
}
.about_col > dt {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .about_col > dt {
    position: sticky;
    left: 0;
    top: 11rem;
    width: 24rem;
  }
}
.about_col > dt span {
  font-size: 1.4rem;
  font-weight: 500;
  font-family: var(--font-en);
  letter-spacing: 0.1em;
}
.about_col > dt h3 {
  font-size: 2.8rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-top: 0.6rem;
}
@media screen and (min-width: 768px) {
  .about_col > dt h3 {
    font-size: 3.2rem;
  }
}
.about_col > dd {
  margin-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .about_col > dd {
    margin-top: 0;
    flex: 1;
  }
}

#department {
  padding-bottom: 6rem;
  margin-bottom: 6rem;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  #department {
    padding-bottom: 12rem;
    margin-bottom: 7rem;
  }
}

.department_lead {
  font-size: 1.8rem;
  line-height: 1.9;
  margin-bottom: 4.5rem;
}
@media screen and (min-width: 768px) {
  .department_lead {
    margin-bottom: 7.5rem;
  }
}
@media screen and (min-width: 768px) {
  .department_item {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
  }
}
.department_item + .department_item {
  margin-top: 6rem;
}
.department_item figure {
  margin-inline: -1rem;
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .department_item figure {
    margin-bottom: 0;
    width: 31rem;
    margin-inline: -2rem;
  }
}
.department_item figure img {
  width: 100%;
}
.department_item_detail {
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .department_item_detail {
    width: 36rem;
    align-items: flex-start;
  }
}
.department_item_detail span {
  font-family: var(--font-min);
  font-size: 3rem;
  line-height: 1;
  letter-spacing: 0.1em;
  position: relative;
  padding-bottom: 1.5rem;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .department_item_detail span {
    font-size: 4.5rem;
    margin-bottom: 4rem;
    padding-bottom: 2.5rem;
  }
}
.department_item_detail span:after {
  content: "";
  width: 1rem;
  height: 1px;
  background-color: #222;
  position: absolute;
  bottom: 0;
  left: calc(50% - 0.5rem);
}
@media screen and (min-width: 768px) {
  .department_item_detail span:after {
    left: 0;
  }
}
.department_item_detail h4 {
  font-size: 2.3rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .department_item_detail h4 {
    margin-bottom: 2.5rem;
  }
}
.department_item_detail p {
  font-size: 1.6rem;
  letter-spacing: 0.03em;
  line-height: 1.875;
  margin-bottom: 2rem;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .department_item_detail p {
    margin-bottom: 3.5rem;
  }
}

#therapist {
  padding-bottom: 6rem;
  margin-bottom: 6rem;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  #therapist {
    padding-bottom: 12rem;
    margin-bottom: 7rem;
  }
}

.therapist {
  background-color: #fff;
  border-radius: 0.5rem;
  padding: 2.5rem;
}
@media screen and (min-width: 768px) {
  .therapist {
    padding: 5rem;
  }
}
.therapist_main {
  margin-bottom: 3.5rem;
}
@media screen and (min-width: 768px) {
  .therapist_main {
    margin-bottom: 3rem;
  }
}
.therapist_main figure {
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .therapist_main figure {
    margin-bottom: 0;
    grid-area: 1/2/3/3;
  }
}
.therapist_main figure img {
  width: 100%;
}
.therapist_main p {
  font-size: 1.8rem;
  line-height: 1.66;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .therapist_main p {
    font-size: 2.2rem;
  }
}
.therapist_main h4 {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.03em;
}
.therapist_main h4 small {
  display: block;
  font-size: 1.2rem;
  font-weight: 500;
  padding-bottom: 0.3rem;
}
.therapist_profile {
  margin-top: 2rem;
  border-left: 2px solid #222;
  padding-left: 2rem;
}
@media screen and (min-width: 768px) {
  .therapist_profile {
    margin-top: 4rem;
  }
}
.therapist_profile span {
  line-height: 1;
  display: block;
  font-size: 2rem;
  font-weight: 500;
  margin-bottom: 2rem;
}
.therapist_profile em {
  font-size: 1.4rem;
  line-height: 1.64;
  letter-spacing: 0.03em;
  font-weight: 400;
  font-style: normal;
}
.therapist hr {
  border-top: 1px dashed #222;
  padding-top: 4rem;
  margin-top: 4rem;
}
@media screen and (min-width: 768px) {
  .therapist hr {
    padding-top: 5rem;
    margin-top: 5rem;
  }
}
.therapist_name {
  font-size: 1.8rem;
  font-weight: 500;
  padding-bottom: 1rem;
}
.therapist_name small {
  font-size: 1.2rem;
  display: block;
  padding-bottom: 0.3rem;
}

@media screen and (min-width: 768px) {
  #profile > dd {
    margin-top: -2rem;
  }
}
@media screen and (min-width: 768px) {
  #profile > dd .access_list {
    grid-template-columns: 17rem 1fr;
  }
}

/*-------------------
TARGET
---------------------*/
@media screen and (min-width: 768px) {
  .target {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    max-width: 128rem;
    margin-inline: auto;
    padding-top: 8rem;
    padding-left: 2rem;
  }
}
@media screen and (min-width: 1000px) {
  .target {
    padding-left: 13rem;
  }
}
@media screen and (min-width: 1280px) {
  .target {
    padding-left: 14rem;
  }
}
.target_block {
  position: relative;
  padding-bottom: 36.5rem;
  background: url(../img/target/cloud_sp.webp) no-repeat center bottom 13rem/100% auto #C9EEF9;
}
@media screen and (min-width: 768px) {
  .target_block {
    background: url(../img/target/cloud.webp) no-repeat center top/100% auto #C9EEF9;
    margin-top: -4.5rem;
    padding-top: 4.5rem;
    padding-bottom: 43rem;
  }
}
@media screen and (max-width: 767px) {
  .target_block:before {
    content: "";
    width: 4.8rem;
    aspect-ratio: 97/50;
    background: url(../img/target/top_cloud.webp) no-repeat center/100% auto;
    position: absolute;
    top: -6rem;
    left: 17.6rem;
  }
}
.target_block .bird_top {
  position: absolute;
  top: -3rem;
  right: 5.6rem;
  transform: scale(-1, 1) rotate(-23.65deg);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .target_block .bird_top {
    top: 0;
    right: calc(50% - 8rem);
  }
}
.target_block .bird_top img {
  width: 6.3rem;
}
@media screen and (min-width: 768px) {
  .target_block .bird_top img {
    width: 8.7rem;
  }
}
.target_block .bird_left {
  position: absolute;
  bottom: 23.3rem;
  left: 6.7rem;
  transform: rotate(-17.27deg);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .target_block .bird_left {
    bottom: 30rem;
    left: 19.6rem;
  }
}
.target_block .bird_left img {
  width: 4.6rem;
}
@media screen and (min-width: 768px) {
  .target_block .bird_left img {
    width: 9.1rem;
  }
}
.target_block .bird_right {
  position: absolute;
  bottom: 17.5rem;
  right: 2.5rem;
  transform: scale(-1, 1) rotate(-23.65deg);
  pointer-events: none;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .target_block .bird_right {
    bottom: 21rem;
    right: 19.2rem;
  }
}
.target_block .bird_right img {
  width: 3.4rem;
}
@media screen and (min-width: 768px) {
  .target_block .bird_right img {
    width: 6.7rem;
  }
}
.target_side {
  display: none;
}
@media screen and (min-width: 768px) {
  .target_side {
    display: block;
    position: sticky;
    top: 11rem;
    left: 0;
    width: 24.5rem;
  }
}
.target_side a {
  position: relative;
  display: block;
  width: fit-content;
  padding-left: 2rem;
  font-size: 1.4rem;
  letter-spacing: 0.03em;
  font-weight: 400;
  line-height: 1;
  padding-block: 0.7rem;
  transition: 0.3s;
}
.target_side a:before {
  content: "";
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background-color: var(--color-green);
  position: absolute;
  left: 0;
  top: calc(50% - 0.5rem);
  opacity: 0;
  transition: 0.3s;
}
@media (hover) {
  .target_side a:hover {
    font-weight: 600;
    font-size: 1.6rem;
  }
  .target_side a:hover:before {
    opacity: 1;
  }
}
.target_side a.active {
  font-weight: 600;
  font-size: 1.6rem;
}
.target_side a.active:before {
  opacity: 1;
}
.target_main {
  background: url(../img/target/roof.svg) no-repeat center top/100% auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .target_main {
    flex: 1;
    max-width: 89rem;
    margin-top: -22rem;
  }
}
.target_main:before {
  content: "";
  width: 100%;
  height: calc(100% - 30rem);
  background-color: var(--color-bg);
  position: absolute;
  bottom: 0;
  left: 0;
}
@media screen and (min-width: 768px) {
  .target_main:before {
    height: calc(100% - 50rem);
  }
}
.target_main_img {
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .target_main_img {
    margin-bottom: 5.6rem;
    text-align: center;
  }
}
.target_main_img img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .target_main_img img {
    width: 33rem;
  }
}
.target_inner {
  position: relative;
  padding-inline: 3rem;
  padding-top: 12rem;
}
@media screen and (min-width: 768px) {
  .target_inner {
    padding-top: 22.5rem;
    padding-inline: 0;
  }
}
.target_sp {
  margin-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .target_sp {
    display: none;
  }
}
.target_sp dt {
  background-color: #fff;
  height: 5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-inline: 2rem;
  font-size: 1.4rem;
  letter-spacing: 0.1em;
}
.target_sp dt:after {
  content: "";
  width: 1rem;
  aspect-ratio: 10/6;
  background: url(../img/arrow_black.svg) no-repeat center/100% auto;
  transform: rotate(90deg);
}
.target_sp dt.is-open:after {
  transform: rotate(-90deg);
}
.target_sp dd a {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  height: 5rem;
  padding-inline: 2rem;
  background-color: #fff;
  margin-top: 0.2rem;
}
.target_sp dd a.active {
  background-color: var(--color-green);
  color: #fff;
  font-weight: 600;
  font-size: 1.6rem;
}
.target_sp dd a.active::before {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  background-color: #fff;
  border-radius: 50%;
  margin-right: 0.5rem;
}
.target_sp.is-sticky dd {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
}
.target_about_heading {
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  font-family: var(--font-min);
  margin-bottom: 2rem;
  color: rgba(35, 35, 35, 0.3);
  transition: 0.3s;
}
@media screen and (min-width: 768px) {
  .target_about_heading {
    padding-left: 10rem;
    font-size: 1.8rem;
  }
}
.target_about_heading:before {
  content: "";
  width: 1rem;
  height: 1rem;
  background-color: var(--color-green);
  border-radius: 50%;
  margin-right: 1rem;
  opacity: 0;
  transition: 0.3s;
}
.target_about_heading.active {
  color: #222;
  font-weight: 600;
}
.target_about_heading.active:before {
  opacity: 1;
}
.target_about h2 {
  font-size: 2.5rem;
  line-height: 1.68;
  font-weight: 400;
  margin-bottom: 2rem;
}
@media screen and (min-width: 768px) {
  .target_about h2 {
    font-size: 3.2rem;
    margin-bottom: 4rem;
  }
}
.target_contents {
  margin-left: 2rem;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  .target_contents {
    margin-left: 12rem;
    margin-right: 3rem;
    padding-bottom: 7rem;
    margin-bottom: 7rem;
    max-width: 63rem;
  }
}
@media screen and (min-width: 1000px) {
  .target_contents {
    margin-right: 13.5rem;
  }
}
.target_contents .txt {
  letter-spacing: 0.03em;
}
.target_ttl {
  display: flex;
  flex-direction: column;
  margin-bottom: 3rem;
}
.target_ttl strong {
  font-size: 2.8rem;
  font-weight: 400;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 768px) {
  .target_ttl strong {
    font-size: 3rem;
  }
}
.target_ttl strong small {
  font-size: 1.3rem;
}
@media screen and (min-width: 768px) {
  .target_ttl strong small {
    font-size: 1.4rem;
  }
}
.target_img {
  margin-bottom: 2rem;
}
.target_img img {
  width: 100%;
}
.target_recommend {
  position: relative;
  background-color: #ECFFE3;
  padding: 0 2rem 2rem 1.6rem;
  border-bottom-left-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
  margin-top: 5rem;
}
@media screen and (min-width: 768px) {
  .target_recommend {
    margin-top: 7rem;
  }
}
.target_recommend:before {
  content: "";
  width: 19.2rem;
  aspect-ratio: 192/31;
  background: url(../img/target/tab.svg) no-repeat left top/100% auto;
  position: absolute;
  top: -2.3rem;
  left: 0;
}
@media screen and (min-width: 768px) {
  .target_recommend:before {
    width: 20.7rem;
  }
}
.target_recommend dt {
  font-size: 1.6rem;
  letter-spacing: 0.1em;
  color: var(--color-green);
  font-weight: 700;
  transform: translateY(-1rem);
}
.target_recommend dd {
  font-size: 1.4rem;
  line-height: 1.78;
  letter-spacing: 0.03em;
}
.target_price_list {
  width: 100%;
  border-collapse: collapse;
}
@media screen and (min-width: 768px) {
  .target_price_list:not(.w-free) {
    table-layout: fixed;
  }
}
@media screen and (min-width: 768px) {
  .target_price_list:not(.w-free) th {
    width: 18rem;
  }
}
.target_price_list th {
  background-color: var(--color-green);
  color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  .target_price_list th {
    font-size: 1.8rem;
    text-align: left;
  }
}
.target_price_list td {
  padding: 1.2rem 1.5rem;
  background-color: #fff;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--color-border);
}
@media screen and (min-width: 768px) {
  .target_price_list td {
    font-size: 1.8rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.target_price_list td small {
  font-size: 1.3rem;
}
@media screen and (min-width: 768px) {
  .target_price_list td small {
    font-size: 1.4rem;
  }
}
.target_flow .target_contents {
  border-bottom: none;
}
.target_flow_list {
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 5rem 2rem;
}
.target_flow_list dt {
  width: 5rem;
  aspect-ratio: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  border-radius: 50%;
  background-color: var(--color-green);
  color: #fff;
  text-align: center;
  font-size: 2rem;
  line-height: 1;
  font-weight: 400;
}
.target_flow_list dt span {
  font-size: 0.6rem;
  padding-bottom: 0.1em;
}
.target_flow_list dd {
  position: relative;
}
.target_flow_list dd:not(:last-of-type):before {
  content: "";
  width: 1px;
  height: calc(100% + 3rem);
  border-left: 1px dashed var(--color-green);
  position: absolute;
  left: -4.5rem;
  top: 4rem;
}
.target_flow_list dd h4 {
  font-size: 1.8rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0.03em;
  margin-bottom: 1.5rem;
}
@media screen and (min-width: 768px) {
  .target_flow_list dd h4 {
    font-size: 2rem;
  }
}
.target_flow_list dd p {
  font-size: 1.4rem;
  letter-spacing: 0.03em;
  line-height: 1.7;
}
.target_flow_list dd a.btn-arrow {
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .target_flow_list dd a.btn-arrow {
    max-width: 40rem;
  }
}
.target_seminar {
  margin-top: 4rem;
  display: grid;
  row-gap: 4rem;
}
@media screen and (min-width: 768px) {
  .target_seminar {
    margin-top: 5rem;
    row-gap: 5.5rem;
  }
}
.target_seminar li {
  padding-left: 2.2rem;
  border-left: 0.2rem solid var(--color-green);
  display: grid;
  row-gap: 2.5rem;
}
@media screen and (min-width: 768px) {
  .target_seminar li {
    gap: 2.5rem 2rem;
    padding-left: 3.2rem;
    grid-template-columns: 1fr 15.2rem;
    grid-template-rows: auto 1fr;
    align-items: flex-end;
  }
}
@media screen and (min-width: 768px) {
  .target_seminar li a {
    grid-area: 1/2/2/3;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}
@media screen and (min-width: 768px) {
  .target_seminar li .txt {
    grid-area: 2/1/3/3;
  }
}
@media screen and (min-width: 768px) {
  .target_seminar_ttl {
    grid-area: 1/1/2/2;
  }
}
.target_seminar_ttl > span {
  font-size: 1.4rem;
  letter-spacing: 0.05em;
  line-height: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 1rem;
  gap: 1rem;
}
.target_seminar_ttl h3 {
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
}
.target_seminar_ttl p {
  font-size: 1.4rem;
}
.target_seminar_tag {
  background-color: var(--color-green);
  color: #fff;
  font-size: 1.2rem;
  font-family: var(--font-min);
  font-weight: 700;
  padding: 0.2rem 0.8rem;
  letter-spacing: 0.02em;
}
.target_seminar_note {
  background-color: #fff;
  margin-top: 4rem;
  padding: 2rem;
}
.target_seminar_note p {
  display: grid;
  grid-template-columns: 6.4rem 1fr;
  font-size: 1.4rem;
}
.target_seminar_note p .target_seminar_tag {
  font-size: 1.2rem;
  padding: 0.2rem 0;
  display: block;
  text-align: center;
}
.target_seminar_note p strong {
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.4;
  display: grid;
  grid-template-columns: 2rem 1fr;
}
@media screen and (min-width: 768px) {
  .target_seminar_note p strong {
    grid-template-columns: 2.5rem 1fr;
  }
}
.target_seminar_note p strong:before {
  content: "‥";
  text-align: center;
}
.target_seminar_note p + p {
  margin-top: 0.8rem;
}

/*-------------------
CONTACT
---------------------*/
.contact {
  padding-bottom: 7rem;
  background: url(../img/contact/form_cloud_sp.webp) no-repeat center top/100% auto #C9EEF9;
  margin-top: -4rem;
  padding-top: 4rem;
}
@media screen and (min-width: 768px) {
  .contact {
    background-image: url(../img/contact/form_cloud.webp);
    margin-top: -2rem;
    padding-top: 2rem;
  }
}
.contact_ttl {
  font-size: 2.2rem;
  font-weight: 400;
  line-height: 1.9;
  margin-bottom: 4rem;
}
@media screen and (min-width: 768px) {
  .contact_ttl {
    font-size: 2.5rem;
  }
}
.contact_lead {
  font-size: 1.5rem;
  line-height: 1.86;
  margin-bottom: 5rem;
}
@media screen and (min-width: 768px) {
  .contact_lead {
    font-size: 1.6rem;
  }
}

.formBox {
  background-color: #fff;
  padding: 2.5rem;
  border-radius: 0.5rem;
}
@media screen and (min-width: 768px) {
  .formBox {
    padding: 7rem 8rem;
  }
}
.formBox_ttl {
  font-size: 1.8rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  text-decoration: underline;
  text-underline-offset: 0.8em;
  margin-bottom: 4rem;
  text-decoration-thickness: 1px;
}
@media screen and (min-width: 768px) {
  .formBox_ttl {
    font-size: 2.2rem;
  }
}

.contact_form fieldset,
.wpcf7-form fieldset {
  margin-bottom: 3rem;
  border: none;
}
@media screen and (min-width: 768px) {
  .contact_form fieldset,
  .wpcf7-form fieldset {
    margin-bottom: 2.5rem;
  }
}
.contact_form .w-full,
.wpcf7-form .w-full {
  width: 100%;
}

.form_title {
  display: flex;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}
.form_title legend {
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.05em;
}
@media screen and (min-width: 768px) {
  .form_title legend {
    font-size: 1.6rem;
  }
}
.form_title .req {
  font-size: 1rem;
  transform: translateY(-0.3em);
  padding-left: 0.2rem;
}
@media screen and (min-width: 768px) {
  .form_title .req {
    font-size: 1.4rem;
  }
}
.form_input {
  font-size: 1.4rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 0.5em;
  font-weight: 500;
}
.form_input input[type=text]:not(.w-full),
.form_input input[type=tel]:not(.w-full),
.form_input input[type=email]:not(.w-full) {
  width: 9.5rem;
}
@media screen and (min-width: 768px) {
  .form_input input[type=text]:not(.w-full),
  .form_input input[type=tel]:not(.w-full),
  .form_input input[type=email]:not(.w-full) {
    width: 13.3rem;
  }
}

.radioItem {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  width: fit-content;
  line-height: 1;
  font-size: 1.5rem;
  cursor: pointer;
}
@media screen and (min-width: 768px) {
  .radioItem {
    gap: 1rem;
    font-size: 1.6rem;
  }
}
.radioItem_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .radioItem_wrap {
    gap: 2rem;
  }
}

.radioButton {
  appearance: none;
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  border: none;
  border-radius: 50%;
  background-color: #fff;
  cursor: pointer;
  border: 1px solid #D5D5D5;
}
@media screen and (min-width: 768px) {
  .radioButton {
    width: 3rem;
    height: 3rem;
  }
}
.radioButton:checked::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 0.9rem;
  height: 0.9rem;
  margin: auto;
  border-radius: 50%;
  background-color: #222;
}
@media screen and (min-width: 768px) {
  .radioButton:checked::after {
    width: 1rem;
    height: 1rem;
  }
}

.result {
  background: url(../img/contact/result_cloud_sp.webp) no-repeat center top/100% auto #C9EEF9;
  position: relative;
  padding-bottom: 12.6rem;
  text-align: center;
  margin-top: -2rem;
}
@media screen and (min-width: 768px) {
  .result {
    padding-bottom: 31rem;
    background-image: url(../img/contact/result_cloud.webp);
    margin-top: -6rem;
  }
}
.result figure {
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  .result figure {
    margin-bottom: 3.5rem;
  }
}
.result figure img {
  width: 7rem;
}
@media screen and (min-width: 768px) {
  .result figure img {
    width: 9.7rem;
  }
}
.result h2 {
  font-size: 2.8rem;
  line-height: 1.87;
  display: inline;
  padding-bottom: 1.2rem;
  background: linear-gradient(to right, rgb(34, 34, 34) 0%, rgb(34, 34, 34) 50%, rgba(34, 34, 34, 0) 51%, rgba(34, 34, 34, 0) 100%) repeat-x left bottom/10px 1px;
  letter-spacing: 0.1em;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .result h2 {
    font-size: 3rem;
  }
}
.result p {
  font-size: 1.5rem;
  line-height: 1.86;
  margin-bottom: 3rem;
  margin-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .result p {
    margin-top: 3rem;
    margin-bottom: 6rem;
  }
}
.result a {
  text-align: left;
}
@media screen and (min-width: 768px) {
  .result a {
    max-width: 30rem;
  }
}/*# sourceMappingURL=style.css.map */