@charset "UTF-8";
/* ==========================================================
0～768px
========================================================== */
@media screen and (max-width: 768px) {
  body {
    font-size: 1.5rem;
  }
  #wrapper::before {
    right: -8px;
  }
  #wrapper::after {
    left: -8px;
  }
  .pc {
    display: none;
  }
  th,
  td {
    width: 100%;
    display: block;
  }
  th {
    border-bottom: none;
  }
  /* header
  ----------------------------------------------------------- */
  .head__wrap::before {
    height: 5px;
  }
  .head__inner {
    display: block;
    padding: 0 0 0 7%;
  }
  .head__logo {
    padding-right: 0;
    padding-top: 18px;
    /*fix分*/
  }
  .head__logo .logo {
    width: 100%;
    height: auto;
    z-index: 10000;
  }
  .head__logo .logo img {
    width: 150px;
  }
  .head__logo .head__logo--sub {
    font-size: 0.9rem;
  }
  /* gnav
  ----------------------------------------------------------- */
  .hamburger {
    background: url("../images/common/bg_water.jpg") no-repeat top right;
    display: block;
    border-radius: 50% 10% 50% 50%;
    width: 60px;
    height: 60px;
    padding: 30px 20px;
    position: fixed;
    top: 8px;
    right: 8px;
    z-index: 9999;
    touch-action: manipulation;
  }
  .hamburger__icon {
    position: relative;
  }
  .hamburger__icon,
  .hamburger__icon:before,
  .hamburger__icon:after {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: calc(infinity * 1px);
    background-color: #fff !important;
    transition-property: background-color, transform;
    transition-duration: 0.4s;
  }
  .hamburger__icon:before,
  .hamburger__icon:after {
    position: absolute;
    content: "";
  }
  .hamburger__icon:before {
    top: -7px;
  }
  .hamburger__icon:after {
    top: 7px;
  }
  .hamburger.active .hamburger__icon {
    background-color: transparent;
  }
  .hamburger.active .hamburger__icon:before,
  .hamburger.active .hamburger__icon:after {
    background-color: #fff;
  }
  .hamburger.active .hamburger__icon:before {
    transform: translateY(7px) rotate(45deg);
  }
  .hamburger.active .hamburger__icon:after {
    transform: translateY(-7px) rotate(-45deg);
  }
  .hamburger.active .hamburger__icon {
    width: 0;
  }
  .fat-nav {
    width: 100%;
    height: 100dvh;
    min-height: 100svh;
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    background: url("../images/common/bg_baige.jpg");
    transition-property: transform;
    transition-duration: 0.4s;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: env(safe-area-inset-bottom);
    z-index: 9999;
  }
  .fat-nav__wrapper {
    width: 100%;
    min-height: 100%;
    height: auto;
  }
  .fat-nav.active {
    transform: scale(1);
  }
  #global-nav {
    padding: 0 4%;
    height: auto;
  }
  #global-nav .head__logo {
    padding-left: 3.2%;
  }
  #global-nav .menu {
    width: 100%;
    margin-top: 40px;
    padding-top: 0;
    height: auto;
    display: block;
    position: relative;
  }
  #global-nav .menu:not(.menu--sub)::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-image: repeating-linear-gradient(90deg, #968a6b, #968a6b 4px, transparent 4px, transparent 9px);
    background-repeat: repeat-x;
    background-position: left top;
    background-size: 100% 2px;
  }
  #global-nav .menu > li {
    position: relative;
    text-align: left;
  }
  #global-nav .menu > li a {
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-direction: row;
    gap: 12px;
    padding: 1em 0 1em 0.8em;
    text-align: left;
    line-height: 1.8;
  }
  #global-nav .menu > li a::before {
    content: "";
    width: 20px;
    height: 20px;
    display: block;
    position: static;
    transform: none;
    margin: 0;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  #global-nav .menu > li.m--uni a {
    padding-top: 1em;
  }
  #global-nav .menu > li.m--uni a::before {
    margin-bottom: 0;
  }
  #global-nav .menu .small {
    padding-left: 2px;
  }
  #global-nav .menu:not(.menu--sub) > li {
    background-image: repeating-linear-gradient(90deg, #968a6b, #968a6b 4px, transparent 4px, transparent 9px);
    background-position: left bottom;
    background-repeat: no-repeat;
    background-size: 100% 2px;
  }
  #global-nav .menu.menu--sub {
    content: none;
  }
  #global-nav .menu.menu--sub > li {
    background-image: none;
  }
  #global-nav .menu.menu--sub {
    display: block;
    margin-right: 0;
    margin-top: 24px;
  }
  #global-nav .menu.menu--sub > li {
    margin: 0;
    padding: 0;
  }
  #global-nav .menu.menu--sub > li a {
    padding: 0.4em 0.2em;
  }
  #global-nav .menu.menu--sub > li a::before {
    margin-right: 0;
  }
  .fat-nav__wrapper {
    display: block;
  }
  .head__right {
    margin-left: 0 !important;
    padding: 0 !important;
    display: block;
  }
  .head__cta {
    width: 80vw;
    margin: 0 auto;
    padding-top: 48px;
  }
  .head__cta img {
    width: 100%;
  }
  .head__sns--sp {
    margin: 15vw auto 0;
  }
  .head__sns--sp ul {
    display: flex;
    justify-content: center;
    gap: 8px;
  }
  .head__sns--sp ul li a {
    display: block;
    transition: opacity 0.3s;
  }
  .head__sns--sp ul li a:hover {
    opacity: 0.7;
  }
  .head__sns--sp ul li a img {
    width: 40px;
    height: auto;
  }
  /* visual
  ----------------------------------------------------------- */
  .tp__visual {
    height: clamp(150vw, 100svh - 60px, 160vw);
  }
  .visual__img01 {
    width: 86.6666666667vw;
    top: 0;
    left: 6vw;
  }
  .visual__img02 {
    width: 66.6666666667vw;
    top: 92vw;
    right: auto;
    left: -10vw;
  }
  .visual__img03 {
    width: 50.6666666667vw;
    top: 86vw;
    right: -3vw;
  }
  .visual__img--bird01 {
    width: 18vw;
    top: 28vw;
    left: 1vw;
  }
  .visual__img--bird02 {
    width: 12vw;
    top: auto;
    top: 133vw;
    left: 5vw;
    z-index: 1;
  }
  .visual__img--bird03 {
    width: 15vw;
    top: 48vw;
    right: 4vw;
  }
  .tp__visual__copy {
    width: 85vw;
    bottom: auto;
    top: 61vw;
    left: 50%;
    transform: translateX(-50%);
  }
  .tp__visual__subcopy {
    background-size: 320px;
    width: 320px;
    height: 160px;
    padding: 1.5em 1em 0 2.4em;
    right: 1vw;
    top: 120vw;
    bottom: auto;
  }
  .tp__visual__subcopy p {
    font-size: 1.2rem;
    line-height: 1.8;
  }
  /* #tp__intro
  ----------------------------------------------------------- */
  #tp__intro {
    padding-top: 20vw;
  }
  #tp__intro::after {
    height: 80px;
  }
  .tp__intro__inner {
    padding-bottom: 220px;
  }
  .tp__intro__detail {
    width: 90%;
    margin: 0 auto;
  }
  .tp__intro__copy {
    font-size: 5.3vw;
    text-align: center;
    padding-top: 14vw;
    padding-left: 0;
    line-height: 1.8;
  }
  .tp__intro__copy::before {
    background-size: 10vw;
    left: 50%;
    transform: translateX(-50%);
  }
  .tp__intro__txt {
    margin-top: 2em;
    text-align: left;
    padding: 0 1.4em;
  }
  .tp__intro__txt p {
    font-size: 1.5rem;
    line-height: 2.2;
  }
  .tp__intro__drop--pink {
    top: 8vw;
    left: 12vw;
    width: 14px;
  }
  .tp__intro__drop--or {
    top: 70vw;
    left: auto;
    right: 2vw;
    width: 12px;
  }
  .tp__intro__drop--bl {
    top: 55vw;
    left: 1vw;
    right: auto;
    width: 13px;
  }
  .tp__intro__drop--yl {
    top: 12vw;
    right: 8vw;
    width: 16px;
  }
  .tp__intro__drop--rbl {
    top: auto;
    bottom: 100vw;
    left: 3vw;
    width: 12px;
  }
  .tp__intro__drop--pl {
    top: auto;
    bottom: 70vw;
    right: 3vw;
    width: 15px;
  }
  .tp__intro__drop--gr {
    top: auto;
    bottom: 50vw;
    right: 16vw;
    width: 14px;
  }
  .tp__intro__tree--l {
    width: 42vw;
    bottom: -4vw;
    left: -3vw;
  }
  .tp__intro__tree--r {
    width: 38vw;
    bottom: -6vw;
    right: -1vw;
  }
  .tp__intro__bird {
    width: 12vw;
    bottom: 33vw;
    left: 40vw;
  }
  /* #tp__project
  ----------------------------------------------------------- */
  #tp__project {
    padding: 15vw 0 22vw 0;
  }
  .tp__project__ttl {
    padding-bottom: 3em;
    margin-bottom: 0;
  }
  .tp__project__ttl::after {
    content: "";
    position: absolute;
    background-size: contain;
    width: 90px;
  }
  .tp__ttl--en {
    width: 70px;
    margin: 0 auto;
    line-height: 1.2;
  }
  .tp__project__ttl .tp__ttl--ja {
    font-size: 3rem;
  }
  .tp__project__ttl .tp__ttl--ja span {
    font-size: 3.6rem;
  }
  .tp__project__box {
    flex-direction: column;
    padding: 0;
  }
  .tp__project__box__img {
    width: 100%;
    max-width: none;
  }
  .tp__project__box__txt {
    padding-right: 0;
    padding: 0 5%;
    margin-top: 12vw;
  }
  .tp__project__scl {
    text-align: center;
  }
  .tp__project__scl .ttl--sub {
    font-size: 1.2rem;
    padding: 1em 1.4em;
  }
  .tp__project__scl .ttl__logo {
    margin-bottom: 1.5em;
    padding-top: 0.8em;
    padding-bottom: 0.4em;
  }
  .tp__project__scl .ttl__logo--mark {
    margin-left: -10px;
    width: 18vw;
  }
  .tp__project__scl .ttl__logo--mark img {
    width: 100%;
  }
  .tp__project__scl .ttl__logo--type img {
    width: 68vw;
  }
  .tp__project__body {
    font-size: 1.8rem;
    line-height: 1.8;
    margin-top: 2em;
    margin-bottom: 2em;
    padding: 0 5%;
  }
  .tp__project__body--txt {
    padding: 0 5%;
  }
  .tp__project__detail {
    padding: 0.5em 1.2em;
    margin-top: 5em;
  }
  .tp__project__info {
    grid-template-columns: 6em 1fr;
  }
  .tp__project__info dt,
  .tp__project__info dd {
    padding: 1em 0.6em;
    line-height: 1.8;
  }
  .tp__project__info dt {
    border-bottom: none;
    font-size: 1.4rem;
  }
  .tp__project__info dd {
    font-size: 1.4rem;
  }
  .tp__labo {
    width: 90%;
    flex-direction: column;
    margin-top: 30vw;
    padding-bottom: 24px;
  }
  .tp__labo__ttl {
    width: 100%;
  }
  .tp__labo__ttl::after {
    width: 221px;
    height: 159px;
    top: 120px;
    left: 32px;
  }
  .tp__labo__ttl .tate {
    width: 7vw;
    margin: 1.6em auto 0;
  }
  .torikumi {
    width: 140px;
    height: 52px;
    font-size: 1.2rem;
    margin-bottom: 0;
    margin-top: -16px;
  }
  .tp__labo__detail {
    flex-direction: column;
    padding: 32px 5% 0;
  }
  .tp__labo__txt {
    padding: 16px 5% 0;
  }
  .tp__labo__img {
    width: 100%;
    margin-top: 16px;
  }
  .tp__labo__img img {
    width: 100%;
    height: auto;
  }
  .labo__sns ul {
    justify-content: flex-start;
  }
  /* #tp__unique
  ----------------------------------------------------------- */
  #tp__unique::after {
    width: 100%;
  }
  .tp__unique__top {
    padding: 48px 5%;
  }
  .tp__unique__top::after {
    height: 30px;
    bottom: -2vw;
  }
  .tp__unique__top .unique__top_ttl {
    width: 60vw;
    margin: 0 auto;
  }
  .tp__unique__top .unique__top_ttl img {
    width: 100%;
    height: auto;
  }
  .tp__unique__top .unique__top_subttl {
    font-size: 3.5vw;
    margin-top: 16px;
    padding-bottom: 0.8em;
  }
  .tp__unique__top .unique__top_subttl::after {
    height: 4px;
    width: 90%;
  }
  .tp__unique__top .unique__top_socks {
    width: 12vw;
    top: 100px;
    right: 4vw;
  }
  .tp__unique__point {
    padding: 64px 0 120px;
  }
  .tp__unique__point::before, .tp__unique__point::after {
    width: 10px;
  }
  .tp__unique__point__list {
    width: 90%;
    flex-direction: column;
    gap: 80px;
  }
  .point__list__box {
    width: 100%;
    max-width: none;
  }
  .point__list__box .point__img {
    width: 70%;
    margin: 0 auto;
  }
  .point__list__box .point__num {
    margin-top: -8vw;
  }
  .point__list__box .point__num img {
    width: 15vw;
  }
  .point__list__box .point__copy {
    font-size: 1.4rem;
  }
  .point__list__box .point__ttl {
    font-size: 1.9rem;
    margin: 0.8em 0 1em;
  }
  .point__list__box .point__txt {
    padding: 0 1em;
  }
  .point02,
  .point03,
  .point04,
  .point05,
  .point06 {
    margin-top: 0;
  }
  /* #tp__curriculum
  ----------------------------------------------------------- */
  #tp__curriculum::before {
    width: 100%;
    height: 12vw;
  }
  .tp__curriculum__inner {
    width: 90%;
  }
  .tp__curriculum__top {
    flex-direction: column;
  }
  .tp__curriculum__ttl {
    width: 100%;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    inline-size: fit-content;
    margin-inline: auto;
    gap: 16px;
    padding-right: 24vw;
  }
  .tp__curriculum__ttl .ttl-sub {
    width: 20vw;
    height: auto;
    padding-right: 8vw;
    padding-top: 7vw;
    padding-bottom: 6vw;
    margin-top: -20px;
  }
  .tp__curriculum__ttl .ttl-sub p {
    font-size: 3vw;
    font-weight: 700;
  }
  .tp__curriculum__ttl .ttl-img {
    position: static;
    width: 6vw;
    margin-top: 18vw;
  }
  .tp__curriculum__ttl::after {
    width: 160px;
    height: 120px;
    top: 45vw;
    left: 16vw;
  }
  .tp__curriculum__detail {
    padding: 16vw 5% 0;
    flex-direction: column;
  }
  .tp__curriculum__detail .curriculum__txt {
    padding-right: 0;
  }
  .tp__curriculum__detail .curriculum__btn {
    width: auto;
    margin-top: 3em;
  }
  .tp__curriculum__contents {
    padding: 20vw 0;
  }
  .curriculum__list {
    grid-template-columns: 1fr;
    gap: 60px;
  }
  .curriculum__list::after {
    width: 100%;
    height: auto;
  }
  .curriculum__list__item {
    padding: 24px;
  }
  .curriculum__badge img {
    width: 110px;
  }
  .curriculum__content {
    padding: 1em 1.6em 1.6em;
  }
  .curriculum__detail dt {
    font-size: 1.7rem;
    margin-top: 1.4em;
  }
  .curriculum__detail dd {
    font-size: 1.5rem;
    margin-top: 0.8em;
    line-height: 2;
  }
  .item01 {
    order: 1;
  }
  .item01::before {
    width: 50px;
    height: 42px;
    top: auto;
    bottom: -50px;
    right: auto;
    left: 50%;
    transform: translateX(-50%) rotate(90deg);
  }
  .item02 {
    order: 2;
  }
  .item02::before {
    width: 42px;
    height: 50px;
    bottom: -50px;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
  }
  .item03 {
    order: 3;
  }
  .item03::before {
    width: 50px;
    height: 42px;
    top: auto;
    bottom: -50px;
    left: 50%;
    right: auto;
    transform: translateX(-50%) rotate(-90deg);
  }
  .item04 {
    order: 4;
  }
  .item04::before {
    display: none;
  }
  /* .tp__schedule
  ----------------------------------------------------------- */
  .tp__schedule {
    flex-direction: column;
  }
  .tp__schedule__day,
  .tp__schedule__year {
    width: 100%;
    padding: 60px 4vw;
  }
  .tp__schedule__day::after,
  .tp__schedule__year::after {
    width: 60px;
    height: 52px;
    bottom: 2vw;
    top: auto;
  }
  .tp__schedule__box {
    width: 100%;
    padding: 2em 1em 2em;
  }
  .tp__schedule__box .ttl__box .ttl {
    font-size: 1.8rem;
    padding: 0.8em 1.6em 1em;
  }
  .tp__schedule__box .txt {
    font-size: 1.4rem;
    line-height: 1.8;
  }
  /* .tp__sns
  ----------------------------------------------------------- */
  .tp__sns {
    padding: 64px 5% 100px;
  }
  .tp__sns::after {
    height: 80px;
  }
  .tp__sns__inner .ttl {
    font-size: 1.6rem;
    text-align: center;
  }
  .tp__sns__inner .ttl::before {
    width: 18px;
    top: -0.8em;
    left: -2.4em;
  }
  .tp__sns__inner .ttl::after {
    width: 18px;
    top: -0.8em;
    right: -2.4em;
  }
  .tp__sns__bnr {
    margin-top: 32px;
    flex-direction: row;
    justify-content: center;
    gap: 8px;
  }
  .tp__sns__bnr li {
    width: 48%;
  }
  .tp__sns__bnr li a img {
    width: 100%;
    height: auto;
  }
  /* #tp__feature
  ----------------------------------------------------------- */
  #tp__feature {
    padding: 0 5% 60px;
  }
  .tp__feature__ttl {
    padding-top: 6vw;
    padding-bottom: 2.4em;
  }
  .tp__feature__ttl .tp__ttl--ja {
    font-size: 3.2rem;
    padding-top: 0.2em;
  }
  .tp__feature__ttl::after {
    width: 120px;
    background-size: contain;
  }
  .tp__feature__inner {
    flex-direction: column;
    padding: 7vw 0 0;
  }
  .tp__feature__img {
    width: 100%;
    padding: 0;
  }
  .tp__feature__img::before {
    width: 280px;
    height: 286px;
    top: 0;
    right: -2vw;
  }
  .tp__feature__img img {
    width: 100%;
    height: auto;
  }
  .tp__feature__message {
    width: 100%;
    margin-top: 48px;
    padding: 0 5%;
  }
  .tp__feature__message::before {
    width: 220px;
    height: 224px;
    top: -16vw;
    left: -12vw;
  }
  .tp__feature__message .copy {
    font-size: 2rem;
    margin-bottom: 1.5em;
  }
  .tp__feature__message .tp__feature__txt {
    padding: 0 0 0 10%;
  }
  .tp__feature__message .tp__feature__txt p {
    font-size: 1.4rem;
    line-height: 2;
    margin-bottom: 1.5em;
  }
  .tp__feature__message .name {
    margin-top: 2em;
  }
  .tp__feature__message .name h4 {
    font-size: 2rem;
  }
  .tp__feature__bnr {
    width: 100%;
    margin-top: 40px;
    right: 0;
  }
  .tp__feature__bnr a img {
    width: 100%;
    height: auto;
  }
  /* .tp__guide
  ----------------------------------------------------------- */
  #tp__guide {
    padding: 20vw 0 24vw;
  }
  #tp__guide::before {
    height: 80px;
  }
  #tp__guide .tree-l {
    width: 24vw;
    height: auto;
    top: 6vw;
  }
  #tp__guide .tree-r {
    width: 24vw;
    height: auto;
    top: 36vw;
  }
  .tp__guide__ttl .en img {
    width: 80px;
  }
  .tp__guide__ttl .ja {
    font-size: 2.4rem;
  }
  .tp__guide__detail {
    padding: 2.6em 2em;
    margin-top: 2em;
    flex-direction: column;
  }
  .tp__guide__detail dt {
    width: 100%;
    font-size: 1.8rem;
    margin-bottom: 1em;
    padding-top: 0;
    text-align: center;
  }
  .tp__guide__detail dd {
    width: 100%;
  }
  .tp__guide__check {
    margin-top: 0;
  }
  .tp__guide__check li {
    padding-top: 1.2em;
    padding-bottom: 1.2em;
    padding-left: 32px;
  }
  .tp__guide__check li::before {
    width: 24px;
    height: 22px;
    top: 1.5em;
  }
  .tp__guide__check p {
    font-size: 1.5rem;
    line-height: 2;
  }
  .tp__guide__check .note {
    font-size: 1.3rem;
    line-height: 1.9;
  }
  .note__box {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.5em;
  }
  .note__box h3 {
    font-size: 1.5rem;
    margin-bottom: 0.5em;
  }
  .note__box p {
    font-size: 1.3rem;
    line-height: 1.9;
  }
  .tp__guide__price li {
    font-size: 1.5rem;
  }
  .tp__guide__attent {
    font-size: 1.3rem;
    line-height: 1.9;
  }
  /* .tp__flow
  ----------------------------------------------------------- */
  #tp__flow {
    padding: 12px 0 60px;
  }
  #tp__flow::before {
    height: 60px;
    top: -60px;
  }
  .tp__flow__ttl .en img {
    width: 80px;
  }
  .tp__flow__ttl .ja {
    font-size: 2.8rem;
  }
  .tp__flow__step {
    flex-direction: column;
    align-items: center;
    gap: 32px;
    margin-top: 32px;
  }
  .tp__flow__step::after {
    width: 40px;
    height: 100%;
    left: calc(50% - 20px);
    top: 0;
  }
  .tp__flow__step li {
    width: 100%;
    max-width: 340px;
    padding: 1.5em 0 2em;
    border-radius: 40px;
  }
  .tp__flow__step .num img {
    width: 30px;
  }
  .tp__flow__step .img img {
    width: 80px;
  }
  .tp__flow__step .ttl {
    font-size: 2rem;
    line-height: 1.8;
    padding: 0;
    margin: 0;
  }
  .tp__flow__step .txt {
    margin-top: 1em;
    font-size: 1.5rem;
    line-height: 1.9;
    padding: 0 2em;
  }
  .tp__flow__step::after {
    transform: scaleY(0);
    transform-origin: center top;
  }
  .tp__flow__step.is-show::after {
    animation-name: flowLineInSp;
  }
  .tp__flow__step li {
    transform: translateY(-24px);
  }
  .tp__flow__step.is-show li {
    animation-name: flowStepInSp;
  }
  @keyframes flowStepInSp {
    0% {
      opacity: 0;
      transform: translateY(-24px);
      filter: blur(3px);
    }
    100% {
      opacity: 1;
      transform: translateY(0);
      filter: blur(0);
    }
  }
  @keyframes flowLineInSp {
    0% {
      transform: scaleY(0);
    }
    100% {
      transform: scaleY(1);
    }
  }
  /* .tp__faq
  ----------------------------------------------------------- */
  #tp__faq {
    padding: 0;
  }
  .tp__faq__inner {
    width: 95%;
    margin: 0 auto;
    border-radius: 80px 8px 80px 80px;
    padding: 40px 5%;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    row-gap: 32px;
  }
  .tp__faq__top {
    padding: 0;
  }
  .tp__faq__ttl {
    padding-top: 0;
  }
  .tp__faq__ttl .en {
    margin-bottom: 4px;
  }
  .tp__faq__ttl .en img {
    width: 60px;
  }
  .tp__faq__ttl .ja {
    font-size: 2.8rem;
    -webkit-writing-mode: horizontal-tb;
    -ms-writing-mode: lr-td;
    writing-mode: horizontal-tb;
    /* 横書きに変更 */
    padding-top: 0;
  }
  .tp__faq__btn.sp {
    text-align: center;
    align-self: center;
    order: 3;
    inline-size: fit-content;
    margin-inline: auto;
  }
  .tp__faq__btn.sp img {
    width: 110px;
    height: auto;
    text-align: center;
  }
  .tp__faq__list {
    width: 100%;
    margin-top: 0;
    order: 2;
  }
  .tp__faq__question {
    padding: 1.2em 1em;
    gap: 12px;
  }
  .questionText {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  .icon {
    width: 24px;
    height: 24px;
  }
  .qMark img,
  .aMark img {
    width: 20px;
    height: auto;
  }
  .tp__faq__answer {
    margin: 0 16px;
    padding: 1.5em 0;
    gap: 12px;
  }
  .answerText p {
    font-size: 1.5rem;
    line-height: 1.8;
  }
  /* #tp__access
  ----------------------------------------------------------- */
  #tp__access {
    padding: 10vw 0 30vw;
  }
  .tp__access__inner {
    flex-direction: column;
    width: 100%;
  }
  .tp__access__top {
    padding: 40px 5% 0;
  }
  .tp__access__ttl {
    padding-top: 0;
  }
  .tp__access__ttl .en {
    margin-bottom: 4px;
  }
  .tp__access__ttl .en img {
    width: 80px;
  }
  .tp__access__ttl .ja {
    font-size: 2.8rem;
    -webkit-writing-mode: horizontal-tb;
    -ms-writing-mode: lr-td;
    writing-mode: horizontal-tb;
    /* 横書き化 */
    padding-top: 0;
  }
  .tp__access__detail {
    margin-left: 0;
    padding-top: 32px;
    flex-direction: column;
  }
  .tp__access__detail .txt {
    width: 100%;
    padding: 0 8%;
    margin-bottom: 40px;
  }
  .tp__access__detail .txt .address {
    font-size: 1.5rem;
    margin-bottom: 2em;
    text-align: center;
  }
  .tp__access__detail .txt .way {
    font-size: 1.5rem;
    text-align: center;
    margin-bottom: 1em;
  }
  .tp__access__detail .txt .way__list {
    display: block;
  }
  .tp__access__detail .txt .way__list dt,
  .tp__access__detail .txt .way__list dd {
    margin: 0;
    padding: 0.4em 0;
  }
  .tp__access__detail .txt .way__list dt {
    padding-top: 1.6em;
  }
  .tp__access__detail .txt .way__list dd {
    font-size: 1.4rem;
    line-height: 2;
    padding-bottom: 1.6em;
  }
  .tp__access__detail .txt {
    /* 2行目以降の区切り線 */
  }
  .tp__access__detail .txt .way__list dd:not(:first-of-type) {
    border-top: none;
  }
  .gmap__area {
    width: 100%;
  }
  .gmap__btn {
    margin-top: 24px;
    text-align: center;
  }
  /* ft__cta
  ----------------------------------------------------------- */
  .ft__cta {
    padding: 20vw 0 0;
  }
  .ft__cta_ttl::before {
    width: 10vw;
    top: -6vw;
  }
  .ft__cta_ttl .en img {
    width: 12vw;
    margin-top: 8vw;
  }
  .ft__cta_ttl .ja {
    font-size: 7vw;
    line-height: 1.2;
  }
  .ft__cta_copy {
    font-size: 1.4rem;
    line-height: 1.8;
    text-align: center;
    margin-top: 2.4em;
    z-index: 1;
  }
  .ft__cta_copy::before, .ft__cta_copy::after {
    width: 16px;
    height: 50px;
  }
  .ft__cta_copy::before {
    width: 36px;
    top: 0em;
    left: -2em;
  }
  .ft__cta_copy::after {
    width: 36px;
    top: 0em;
    right: -2em;
  }
  .ft__cta__btn {
    margin-top: 1.6em;
  }
  .ft__cta__btn .btn--cta {
    width: 100%;
  }
  .ft__cta__btn .btn--cta img {
    width: 100%;
    height: auto;
  }
  .cta__img--bird01 {
    width: 12vw;
    top: 0;
    left: 8vw;
  }
  .cta__img--bird01 img {
    width: 100%;
    height: auto;
  }
  .cta__img--bird02 {
    width: 16vw;
    top: 16vw;
    right: 12vw;
  }
  .cta__img--bird02 img {
    width: 100%;
    height: auto;
  }
  /* footer
  ----------------------------------------------------------- */
  .ft__wrap {
    background: url("../images/common/bg_baige.jpg");
    padding: 8vw 0 12vw;
    margin-top: 16vw;
  }
  .ft__inner {
    flex-direction: column;
    padding-bottom: 0;
  }
  .ft__info {
    text-align: center;
    padding: 0;
  }
  .ft__info__logo {
    margin-bottom: 0.5em;
  }
  .ft__info__logo a {
    font-size: 1.4rem;
  }
  .ft__info__logo a span {
    font-size: 1.5rem;
  }
  .ft__info__ads {
    font-size: 1.2rem;
  }
  .ft__sns {
    width: 80%;
    margin: 32px auto 0;
    flex-direction: column;
    border-radius: 12px;
    gap: 18px;
    padding: 24px;
  }
  .ft__sns__group {
    width: 100%;
    flex-direction: column;
    justify-content: center;
    gap: 10px;
  }
  .ft__sns__name {
    font-size: 1.3rem;
  }
  .ft__sns__divider {
    width: 90%;
    height: 1px;
    border-bottom: 2px dotted #8a6a3c;
    border-left: none;
  }
  .ft__copyright {
    padding: 16vw 0 0;
  }
  .ft__copyright p {
    text-align: center;
  }
  /* sub_common
  ----------------------------------------------------------- */
  #sub .head__wrap {
    background: url("../images/tp_visual_bg.webp") left top no-repeat #fff;
    background-size: 200%;
  }
  .sub__visual {
    padding: 10vw 0 18vw;
  }
  .sub__visual::after {
    height: 80px;
  }
  .sub__visual .sub__visual__inner {
    width: 100%;
    padding-top: 10vw 0 0;
  }
  .sub__visual__ttl {
    font-size: 5vw;
  }
  .sub__visual__ttl::before {
    top: -8vw;
    width: 8vw;
    height: 80px;
  }
  /* contact
  ----------------------------------------------------------- */
  .contents__wrapper {
    padding-top: 0;
    padding-bottom: 240px;
  }
  .contents__wrapper .inner {
    width: 90%;
    margin: 0 auto;
    position: relative;
  }
  .contents__wrapper .contact__intro {
    text-align: left;
    margin-bottom: 40px;
    padding: 0 5%;
  }
  .contents__wrapper .contact__form {
    padding: 2em 1em 0;
  }
  .contents__wrapper.confirm .contact__form {
    padding: 0 1.8em 0;
  }
  .contact__attention {
    padding: 0 2vw;
    margin-bottom: 2em;
  }
  .contact__attention dt {
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .contact__attention dd li {
    font-size: 1.4rem;
  }
  .contact__attention dd li .ttl {
    font-size: 1.6rem;
  }
  .contact__attent__check {
    margin: 5em 0 0;
    padding-bottom: 4em;
  }
  .contact__attent__check input[type=checkbox] {
    width: 20px;
    height: 20px;
    margin-right: 0.5em;
  }
  .contact__attent__check .privacy__chk {
    font-size: 1.6rem;
    line-height: 1.8;
  }
  .contact__wrap table th,
  .contact__wrap table td {
    width: 100%;
    padding: 1em 0;
  }
  .contact__wrap table th {
    font-size: 1.7rem;
    padding-top: 1.6em;
    font-weight: 700;
  }
  .contact__wrap table th::after {
    background: none;
    padding: 0;
    display: none;
  }
  .contact__wrap table td {
    padding: 0 0 1.2em 0;
    font-size: 1.6rem;
  }
  .contact__wrap .add {
    font-size: 1.4rem;
    font-weight: normal;
  }
  .contact__privacy {
    margin-top: 2em;
    padding: 2.4em;
  }
  .contact__privacy dt {
    font-size: 1.7rem;
  }
  .contact__privacy .privacy__scroll {
    height: 100px;
    font-size: 1.2rem;
  }
  .contact__privacy__check {
    margin-top: 2em;
  }
  .contact__privacy__check input[type=checkbox] {
    margin-right: 0.5em;
  }
  .contact__privacy__check .privacy__chk {
    font-size: 1.7rem;
    line-height: 1.8;
  }
  .submit .submit__btn {
    width: 90%;
    padding: 20px;
    font-size: 2rem;
    letter-spacing: 0;
  }
  .submit .inback {
    font-size: 1.2rem;
    top: 160px;
    left: 5%;
  }
  /* 送信完了 */
  .contents__wrapper.finish {
    padding-bottom: 200px;
  }
  .thanks__ttl {
    font-size: 1.8rem;
    margin-bottom: 2em;
  }
  .finish-info {
    margin: 1em auto 0;
    padding: 1em;
  }
  .finish-info p {
    font-size: 1.8rem;
  }
  .finish-back {
    margin-top: 4em;
    display: flex;
    column-gap: 8px;
  }
  .finish-back .btn {
    width: auto;
    inline-size: fit-content;
    margin: 0;
  }
  .finish-back .btn a {
    font-size: 1.3rem;
    padding: 0 1em;
  }
}
/* -----@media screen and (max-width:768px) ------ */