@media only screen and (max-width: 768px) {
  .home_page .key {
    --height: calc(100vh - 60px);
    --max-height: 156vw;
    --min-height: 320px;
    font-size: 8px;
  }
  .home_page .key .key_text {
    flex-direction: column-reverse;
    padding: 20px 20px 75px;
  }
  .home_page .key .key-slider {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin: 0 -20px;
  }
  .home_page .key .key-bg {
    width: 61.3333333333vw;
    height: auto;
    padding-bottom: 50px;
    overflow: hidden;
  }
  .home_page .key .key-bg::before {
    width: 100%;
    height: auto;
    aspect-ratio: 516/650;
    bottom: 20px;
    right: -30px;
  }
  .home_page .key .key-sm {
    width: 33.3333333333vw;
    height: auto;
    position: static;
  }
  .home_page .key .key_cnt {
    padding-left: 40px;
    margin-top: 30px;
  }
  .home_page .key p {
    font-size: 2.5em;
  }
  .home_page .key h2 {
    font-size: 4.6em;
  }
  .home_page .key .ikey-scroll {
    left: 20px;
  }
  .home_page .key .ik-scr-tt {
    font-size: 12px;
  }
  .home_page .key .ik-scr-line {
    height: 60px;
  }
  .home_page .key .ik-scr-line::before {
    height: 30px;
  }
}
@media only screen and (max-width: 640px) {
  .home_page .key {
    font-size: 1.4vmin;
  }
}
@media only screen and (max-width: 768px) and (orientation: landscape) {
  .home_page .key {
    font-size: 1.4vmin;
  }
}
@media only screen and (max-width: 768px) {
  .ibtn a {
    width: 270px;
    min-height: 54px;
    font-size: 16px;
    margin: 0 auto;
    line-height: 1.4;
  }
  .ibtn a::before {
    right: 12px;
  }
  .ijp {
    font-size: 24px;
  }
  .itreatment {
    padding: 30px 0 50px;
  }
  .itreatment::before {
    width: min(406.25vw, 2700px);
  }
  .itreatment .ijp {
    margin-bottom: 20px;
  }
  .itreatment .itreat-banner {
    flex-direction: column;
    gap: 2px;
    max-width: 385px;
    margin: 0 auto;
  }
  .itreatment .itreat-item {
    width: 100%;
    font-size: min(3.2vw, 12px);
  }
  .itreatment .itreat-head {
    top: 1.6666666667em;
    left: 1.6666666667em;
    text-shadow: 0 0 3px rgb(0 0 0 / 50%);
  }
  .itreatment .itreat-item picture::before {
    opacity: 0;
  }
  .itreatment .itreat-arr {
    top: 2.2em;
    right: 1.6em;
    background-color: #fff;
  }
  .itreatment .itreat-arr::before {
    filter: none;
  }
  .iproblem {
    padding: 50px 0;
  }
  .iproblem .ihead {
    margin-bottom: 30px;
  }
  .iproblem .ijp {
    font-size: 26px;
  }
  .iproblem .ien {
    font-size: min(15.625vw, 70px);
    top: -10px;
    left: 0;
    white-space: nowrap;
  }
  .iproblem .iproblem-txt {
    flex-wrap: wrap;
  }
  .iproblem .iproblem-img {
    position: relative;
    inset: 0;
    width: 100%;
  }
  .iproblem .iproblem-img img {
    width: 150px;
    margin: 0 auto;
  }
  .iproblem .iproblem-list {
    font-size: min(3.75vw, 14px);
    width: calc((100% - 1.25em) / 2);
    font-size: min(2.4vw, 14px);
  }
  .iproblem .iproblem-list li::before {
    right: 0.875em;
    width: 4px;
    height: 4px;
  }
  .iproblem .iproblem-list .iproblem-tt {
    padding-right: 1.2em;
    font-size: max(1.1em, 12px);
  }
  .iproblem .iproblem-left {
    margin-top: 0;
  }
  .iproblem .iproblem-left li:nth-child(1) {
    transform: none;
  }
  .iproblem .iproblem-left li:last-child {
    transform: none;
  }
  .iproblem .iproblem-right li:nth-child(1) {
    transform: none;
  }
  .iproblem .iproblem-right li:last-child {
    transform: none;
  }
  .iproblem .iproblem-2row {
    height: auto;
  }
  .iconcept::before {
    width: 60px;
    height: 53px;
    transform: none;
    bottom: 0;
  }
  .iconcept .iconcept-wrapper {
    padding: 50px 0;
  }
  .iconcept .iconcept-txt {
    width: 100%;
  }
  .iconcept picture {
    position: static;
    margin: 0 auto;
    width: 100%;
  }
  .iconcept .ihead {
    padding-bottom: 12px;
    margin-bottom: 15px;
  }
  .iconcept .ihead::before {
    right: 0;
    margin: 0 auto;
  }
  .iconcept .ien {
    text-align: center;
    font-size: 42px;
    margin-bottom: 10px;
  }
  .iconcept .ijp {
    text-align: center;
    font-size: 24px;
  }
  .iconcept .iconcept-desc {
    margin-bottom: 20px;
  }
  .implant {
    padding-top: 50px;
  }
  .implant .ihead {
    margin-bottom: 30px;
  }
  .implant .ijp {
    text-align: center;
    font-size: 26px;
    margin-bottom: 10px;
  }
  .implant .ien {
    text-align: center;
    font-size: 20px;
    margin-left: 0;
  }
  .implant .implant-txt {
    margin-left: 0;
    width: 100%;
    padding-top: 0;
  }
  .implant .implant-img {
    position: static;
    margin-bottom: 15px;
  }
  .implant .implant-img img {
    margin: 0 auto;
    width: min(100%, 500px);
  }
  .implant .implant-desc {
    margin-bottom: 20px;
  }
  .implant .implant-list {
    grid-template-columns: repeat(2, 1fr);
    margin: 30px auto 0;
    --gapY: 10px;
    --gapX: 10px;
    max-width: 575px;
    font-size: min(2.6666666667vw, 18px);
  }
  .implant .implant-list li {
    min-height: 12.6em;
    padding: 12px 10px 10px;
  }
  .implant .implant-list li::after {
    inset: 4px;
  }
  .implant .implant-list li::before {
    bottom: 4px;
    right: 4px;
  }
  .implant .implant-tt {
    margin-bottom: 0.4761904762em;
    padding-bottom: 0.4761904762em;
    font-size: max(1.05em, 12px);
    letter-spacing: 0.04em;
  }
  .implant .implant-tt::before {
    width: 70px;
  }
  .implant .implant-dsc {
    font-size: max(0.85em, 10px);
  }
  .iceramic {
    padding-bottom: 20px;
  }
  .iceramic .implant-wrapper::before {
    top: 220px;
    height: 740px;
  }
  .iceramic .implant-list {
    max-width: 100%;
  }
  .iceramic .implant-list li {
    min-height: 22.9333333333vw;
  }
  .iceramic .implant-dsc {
    font-size: max(0.89em, 10px);
    letter-spacing: 0.05em;
  }
  .iceramic .implant-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .iother {
    padding: 50px 0 0;
  }
  .iother .ihead {
    margin-bottom: 30px;
    padding: 0;
  }
  .iother .ijp {
    text-align: center;
    font-size: 22px;
    margin-bottom: 10px;
    letter-spacing: 0.05em;
  }
  .iother .ien {
    text-align: center;
    font-size: 16px;
  }
  .iother .iother-txt {
    width: 100%;
  }
  .iother .iother-img {
    position: static;
    justify-content: center;
    width: min(100%, 500px);
    margin: 0 auto 15px;
  }
  .iother .iother-desc {
    padding-right: 0;
    margin-bottom: 20px;
  }
  .ipatient .ipatient-wrapper {
    padding: 50px 0 50px;
  }
  .ipatient .ipatient-wrapper::before {
    width: 31.25vw;
    height: auto;
    aspect-ratio: 447/561;
    top: 0;
    left: -20.3125vw;
  }
  .ipatient .ipatient-wrapper::after {
    aspect-ratio: 644/648;
    height: auto;
    width: 43.75vw;
    right: -22.1875vw;
    bottom: -5.9375vw;
  }
  .ipatient .ihead {
    margin-bottom: 30px;
  }
  .ipatient .ijp {
    font-size: 26px;
  }
  .ipatient .ien {
    font-size: min(10vw, 60px);
    top: 5px;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .ipatient .ipatient-box {
    flex-direction: column;
    gap: 15px;
  }
  .ipatient .ipatient-bx {
    padding: 35px 20px 20px;
    min-height: auto;
  }
  .ipatient .ipatient-hd {
    padding-top: 0;
  }
  .ipatient .ipatient-hd::before {
    font-size: 120px;
  }
  .ipatient .ipatient-tt {
    font-size: 22px;
    letter-spacing: 0.05em;
  }
  .ipatient .ipatient-step {
    margin-top: 40px;
  }
  .ipatient .ipatient-st-ttl {
    font-size: 24px;
    margin-bottom: 30px;
  }
  .ipatient .ipatient-st-ttl span {
    padding: 0 10px;
  }
  .ipatient .ipatient-st-ttl span::before,
  .ipatient .ipatient-st-ttl span::after {
    width: 21.875vw;
    background-position: left -30px center;
    background-size: auto 100%;
  }
  .ipatient .ipatient-list {
    font-size: min(2.5vw, 12px);
    gap: 0 1.375em;
    max-width: 500px;
    margin: 0 auto 30px;
  }
  .ipatient .ipatient-list li:nth-child(2) .ipatient-item::before {
    display: none;
  }
  .ipatient .ipatient-num {
    font-size: 1.1em;
    left: 1em;
  }
  .ifeature {
    padding: 50px 0;
  }
  .ifeature::before {
    width: 37.5vw;
    height: auto;
    aspect-ratio: 506/480;
  }
  .ifeature::after {
    right: 0;
    bottom: -28.125vw;
    width: 43.75vw;
    height: auto;
    aspect-ratio: 368/779;
  }
  .ifeature .ihead {
    padding-bottom: 16px;
    margin-bottom: 20px;
  }
  .ifeature .ien {
    font-size: 40px;
    margin-bottom: 5px;
  }
  .ifeature .ijp {
    font-size: 24px;
  }
  .ifeature .ifeature-cnt dl {
    flex-direction: column-reverse !important;
    margin-bottom: 50px;
  }
  .ifeature .ifeature-cnt dl:nth-child(even) picture::after {
    right: calc(100% - 159px);
  }
  .ifeature .ifeature-cnt dt {
    width: 100%;
  }
  .ifeature .ifeature-cnt dd {
    display: none;
  }
  .ifeature picture {
    width: fit-content;
    margin: 0 auto;
    margin-bottom: 30px;
  }
  .ifeature picture::before {
    right: 10px;
    font-size: min(21.875vw, 100px);
  }
  .ifeature picture::after {
    top: -15px;
    bottom: -15px;
    left: calc(100% - 159px);
  }
  .ifeature .ifeat-tt {
    text-align: center;
    margin-bottom: 10px;
    font-size: 20px;
  }
  .ifeature .ifeat-en {
    text-align: center;
    margin-bottom: 30px;
  }
  .ifeature .ibtn {
    margin-top: 30px;
  }
  .imessage::before {
    top: -21.875vw;
    width: 40.625vw;
    right: -20px;
    height: auto;
    aspect-ratio: 563/779;
  }
  .imessage::after {
    left: -3.125vw;
    bottom: 1.5625vw;
    width: min(37.5vw, 200px);
    height: auto;
    aspect-ratio: 381/370;
  }
  .imessage .imess-wrapper {
    padding: 50px 0;
  }
  .imessage .ihead {
    margin-bottom: 20px;
  }
  .imessage .ijp {
    text-align: center;
    font-size: 26px;
  }
  .imessage .ien {
    text-align: center;
    font-size: min(15vw, 60px);
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .imessage .imess-txt {
    width: 100%;
  }
  .imessage .imess-img {
    position: relative;
    inset: 0;
    max-width: 400px;
    margin: 0 auto 30px;
  }
  .imessage .imess-head {
    top: 20px;
    right: 0;
  }
  .imessage .imess-lb {
    font-size: 14px;
    padding: 20px 12px;
  }
  .imessage .imess-name {
    margin-top: 20px;
    padding: 20px 12px;
  }
  .imessage .imess-name-jp {
    font-size: 20px;
  }
  .imessage .imess-wtxt {
    padding: 0;
  }
  .imessage .imess-desc {
    margin-bottom: 25px;
  }
  .ifeature2 {
    padding-top: 50px;
  }
  .ifeature2 .ien {
    font-size: 40px;
    margin-bottom: 6px;
  }
  .ifeature2 .ijp {
    font-size: 24px;
  }
  .ifeature2 .ihead {
    padding-bottom: 15px;
    margin-bottom: 30px;
  }
  .ifeature2 .ifeat2-cnt {
    flex-direction: column;
    align-items: center;
  }
  .ifeature2 .time_sheet {
    font-size: min(2.28125vw, 12px);
    width: 500px;
    order: 2;
  }
  .ifeature2 .time_sheet .note {
    margin-top: 1.5em;
    font-size: 12px;
  }
  .ifeature2 .ifeat2-info {
    width: min(100%, 290px);
    margin: 0 auto 35px;
    font-size: min(3.75vw, 14px);
    order: 1;
  }
  .ifeature2 .ifeat2-logo {
    margin-bottom: 16px;
  }
  .ifeature2 .ifeat2-address {
    margin-bottom: 20px;
  }
  .ifeature2 .ifeat2-btn {
    margin-top: 30px;
    order: 3;
  }
  .ifeature2 .ifeat2-map {
    order: 4;
    margin: 35px 0 max(-37.5vw, -175px);
    width: 100%;
    height: min(75vw, 350px);
  }
  .ipost .ipost-wrapper {
    padding: min(37.5vw + 30px, 205px) 0 50px;
    flex-direction: column;
  }
  .ipost .ipost-wrapper::before {
    width: 37.5vw;
    height: auto;
    left: -20px;
  }
  .ipost .ihead {
    margin-bottom: 0;
  }
  .ipost .ijp {
    font-size: 26px;
    margin-bottom: 10px;
  }
  .ipost .ien {
    font-size: 16px;
  }
  .ipost .ipost-hd {
    width: 100%;
    margin: 0 auto 20px;
    padding: 0;
  }
  .ipost .ipost-item {
    width: 100%;
  }
  .ipost .ipost-item li a {
    padding: 12px 20px 12px 10px;
  }
  .ipost .ipost-item li a::before {
    right: 10px;
  }
  .ipost .ipost-item li a .date {
    margin-right: 10px;
  }
  .ipost .ipost-item li a .title {
    padding-right: 0;
  }
  .ipost .ibtn {
    margin-top: 30px;
  }
}
@media screen and (max-width: 639px) {
  .iceramic {
    padding-bottom: 20px;
  }
}
@media screen and (max-width: 524px) {
  .iother .iother-wrapper::before {
    top: 297px;
  }
}
@media screen and (max-width: 374px) {
  .iproblem .iproblem-list {
    width: 100%;
    font-size: 11px;
  }
  .iproblem .iproblem-list .iproblem-tt {
    font-size: 1.2em;
  }
  .iproblem .iproblem-left {
    margin-bottom: 1.25em;
  }
  .iproblem .iproblem-tt .sp425 {
    display: none;
  }
  .implant .implant-list {
    grid-template-columns: repeat(1, 1fr);
    font-size: 16px;
  }
  .implant .implant-list li {
    min-height: 71.9251336898vw;
  }
  .iceramic {
    padding-bottom: 5px;
  }
  .iceramic .implant-list li {
    min-height: 42.7807486631vw;
  }
  .iceramic .implant-dsc .sp375 {
    display: none;
  }
}

/*# sourceMappingURL=index_sp.css.map */
