@media (max-width: 767px) {
    
    html {
        font-size: 16px;
    }
    
    /* Components Styles */
    
    .cta-button {
        padding: 0 .5rem;
        font-size: 1rem;
        border-radius: 10rem;
    }
    
    .cta-button span {
        font-size: 18px;
    }
    
    .subhead {
        left: -8.1vw;
        margin-bottom: 6.7vw;
    }
    
    .subhead.right {
        left: auto;
        right: -8.1vw;
    }
    
    .subhead span {
        font-size: 5.1vw;
        padding: 2.7vw 5.4vw 2.7vw 10.8vw;
    }
    
    .subhead.right span {
        padding: 2.7vw 10.8vw 2.7vw 5.4vw;
    }
    
    .subhead::after {
        top: 6px;
        left: 6px;
        border-radius: 10rem;
        border: 2px solid rgba(113, 76, 161, 0.8);
    }
    
    .subhead.right::after {
        right: 8px;
    }
    
    .subhead2 {
        padding: 1rem;
        margin-bottom: 2rem;
    }
    
    .subhead2 span {
        font-size: 1.3rem;
    }
    
    .subhead2::before {
        width: calc( 100% - 6px );
        height: calc( 100% - 6px );
    }
    
    .subhead2::after {
        border: 2px solid rgba(113, 76, 161, 0.6);
        width: calc( 100% - 6px );
        height: calc( 100% - 6px );
    }

    .pc-only {
        display: none;
    }

    .sp-only {
        display: block;
    }

    /* Header Styles */
    
    header > div {
        padding: 13px 20px;
    }
    
    header .logo {
        padding-top: 0;
    }
    
    header .logo img {
        height: 20px;
    }
    
    header .instagram-icon {
        height: 22px;
    }
    
    header .cta-button {
        padding: 0 16px;
    }
    
    header .cta-button span {
        font-size: 15px;
    }
    
    /* Main Visual */
    
    .mainvisual {
        height: auto;
        max-height: inherit;
        background-size: 100% auto;
        background-position: top center;
        padding-top: 48px;
        background-image: url("../images/sp/mainvisual_bg.jpg");
    }
    
    .mainvisual .mainvisual-content {
        padding-top: 80vw;
    }
    
    .mainvisual .badges {
        top: auto;
        left: auto;
        position: relative;
        flex-wrap: wrap;
        justify-content: space-between;
        padding: 0 5.3vw;
        width: 100%;
        gap: 28px 22px;
        margin-bottom: 5.6vw;
    }
    
    .mainvisual .badges .badge-tokyo {
        width: 100%;
        height: 16vw;
        margin-right: 30vw;
    }
    
    .mainvisual .badges .badge-patent {
        width: 62.4vw;
        height: 19.7vw;
        margin-right: 10px;
        margin: 0 auto;
    }
    
    .mainvisual .badges .badge-doctor {
        width: 20vw;
        height: 18.6vw;
    }
    
    .mainvisual .product-image {
        width: 40vw;
        height: 44.5vw;
        top: 48vw;
        right: 0;
        bottom: auto;
    }
    
    .mainvisual .cta-button {
        width: calc( 100% - 10.6vw );
        height: auto;
        left: auto;
        transform: inherit;
        bottom: auto;
        margin: 0 auto;
        padding: 1rem 0;
        position: relative;
    }
    
    .mainvisual .cta-button span {
        font-size: 5.3vw;
    }
    
    /* Section Styles */

    .bg1 {
        background-image: url("../images/sp/bg.jpg");
        padding-top: 80vw;
        margin-top: -70vw;
    }
    
    .bg2 {
        padding-top: 10.1vw;
    }
    
    .bg2::after {
        background-image: url("../images/sp/bg.jpg");
        padding-top: 10.1vw;
    }
    
    section {
        padding-top: 16.8vw;
    }
    
    /* Section 1 */
    
    .section1 {
        margin-bottom: 10.1vw;
    }
    
    .section1 ul {
        flex-direction: column;
        gap: 8.5vw;
        padding: 0 5.3vw;
    }
    
    .section1 ul li {
        width: 100%;
    }
    
    .section1 ul li h4 {
        height: 16vw;
        left: -4vw;
    }

    .section1 ul li .photo img {
        border-top-right-radius: 9vw;
    }

    /* Section 2 */
    
    .section2 {
        padding-top: 7.4vw;
        margin-bottom: 10.1vw;
    }
    
    .section2 ul {
        width: 100%;
        height: auto;
        margin: 0 auto;
        padding: 8vw 3.7vw;
        border-radius: 0;
        background-image: url("../images/sp/s2_bg.jpg");
        background-size: cover;
        margin-bottom: 3rem;
    }
    
    .section2 ul li {
        height: 23.4vw;
        margin-bottom: 0;
    }
    
    .section2 ul li:nth-of-type(even) {
        margin-left: 21.3vw;
    }
    
    .section2 .badges {
        gap: 2.7vw 3.7vw;
        padding: 0 8vw;
        margin-bottom: 6vw;
    }
    
    .section2 .badges .badge-patent {
        width: 90.4vw;
        height: 28.5vw;
        order: 2;
    }
    
    .section2 .badges .badge-doctor {
        width: 30.6vw;
        height: 28.8vw;
        order: 3;
    }
    
    .section2 .badges .badge-tokyo {
        width: 89.3vw;
        height: 28.8vw;
        order: 1;
    }
    
    .section2 .misc {
        gap: 3rem;
        width: 100%;
        padding: 0 2rem;
        flex-direction: column;
    }
    
    .section2 .misc > div {
        gap: 2rem;
        width: 100%;
    }
    
    .section2 .misc > div h5 {
        font-size: 18px;
        padding: .7rem 2rem;
        border-radius: 10rem;
    }

    .section2 .misc .misc-movie a {
        width: 100%;
    }

    .section2 .misc .misc-movie a picture img {
        border-radius: 1rem;
    }

    /* Section 3 */

    .section3 {
        padding: 0 0 4rem;
        background-image: url("../images/sp/s3_bg.jpg");
        background-size: cover;
    }

    .section3 h3 {
        height: 21.8vw;
        margin-bottom: 2rem;
        background-image: url("../images/sp/s3_subhead_bg.png");
    }

    .section3 h3 span {
        font-size: 5.3vw;
        padding-bottom: 3.2vw;
    }

    .section3 > div {
        gap: 2rem;
        width: 100%;
        padding: 0 2rem;
    }
    
    .section3 > div .s3-lead {
        font-size: 16px;
        text-align: left;
    }
    
    .section3 > div .s3-list {
        border-radius: 1rem;
    }
    
    .section3 > div .s3-list h4 {
        font-size: 18px;
        padding: 1rem;
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem;
    }
    
    .section3 > div .s3-list ul {
        padding: 2rem 4rem;
        gap: 1rem;
        flex-direction: column;
        flex-wrap: nowrap;
    }
    
    .section3 > div .s3-list ul li {
        width: auto;
        font-size: 20px;
        gap: .5rem;
        align-items: center;
    }
    
    .section3 > div .s3-list ul li::before {
        width: 6vw;
        height: 6vw;
    }
    
    .section3 > div .s3-caption {
        font-size: 14px;
    }
    
    /* Section 4 */
    
    .section4 ul {
        gap: 1.5rem;
        width: 100%;
        margin: 0 auto 3rem;
        padding: 0 2rem;
    }
    
    .section4 ul li {
        width: calc( calc( 100% - 1.5rem ) / 2 );
    }
    
    .section4 ul li picture img {
        border-top-left-radius: 4.2vw;
    }
    
    .section4 ul li p {
        padding: 0.7rem;
        border-bottom-right-radius: 1.5rem;
        font-size: 0.9rem;
    }
    
    .section4 > div {
        width: 100%;
        margin: 0 auto 4rem;
        padding: 0 2rem;
    }

    .section4 .round-btn-set {
        display: flex; 
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px 10px;
        margin-bottom: 20px;
    }

    .section4 .round-btn-set .round-btn {
        width: 150px;
        font-size: 18px;
        letter-spacing: 0;
    }

    .section4 .s4-market h4 {
        margin-bottom: 2rem;
    }
    
    .section4 .s4-market > div {
        gap: 2rem;
        flex-direction: column;
    }
    
    .section4 .s4-market > div picture {
        width: 100%;
        height: auto;
    }
    
    /* Section 5 */
    
    .section5 {
        padding-top: 15vw;
        padding-bottom: 4rem;
    }
    
    .section5 a {
        width: 92vw;
    }
    
    /* Section 6 */
    
    .section6 h3 {
        font-size: 24px;
        letter-spacing: .3rem;
        padding: 1.5rem;
    }
    
    .section6 dl {
        padding: 3rem 2rem;
        gap: 1.5rem;
    }
    
    .section6 dl div {
        max-width: inherit;
    }
    
    .section6 dl div dt,
    .section6 dl div dd {
        padding: 1rem;
    }
    
    .section6 dl div dt {
        border-top-left-radius: 1rem;
        border-top-right-radius: 1rem;
    }
    
    .section6 dl div dd {
        border-bottom-left-radius: 1rem;
        border-bottom-right-radius: 1rem;
    }
    
    /* Section 7 */
    
    .section7 {
        padding-top: 6.7vw;
    }
    
    .section7 > div {
        padding: 15vw 0;
    }
    
    .section7 > div > div {
        padding: 1.5rem 2rem 65vw 2rem;
    }
    
    .section7 > div > div::after {
        border: 2px solid rgba(113, 76, 161, 0.6);
        right: -10px;
        bottom: -10px;
    }
    
    .section7 > div > div dl {
        margin-bottom: 1rem;
    }
    
    .section7 > div > div dl div dt,
    .section7 > div > div dl div dd {
        font-size: 1rem;
    }
    
    .section7 > div > div p {
        font-size: 14px;
    }
    
    .section7 > div > div > picture {
        width: 66.9vw;
        height: 74.1vw;
        right: 2rem;
        bottom: -11.8vw;
    }
    
    /* Section 8 */
    
    .section8 {
        padding: 2rem;
    }
    
    .section8 h4 {
        margin-bottom: 2rem;
    }
    
    .section8 .content > div {
        padding: 0.25rem;
        border-radius: 1rem;
    }
    .section8 dl dt {
        padding: 0;
        font-size: 16px;
    }
    .section8 dl dd input[type="text"], .section8 dl dd input[type="email"], .section8 dl dd input[type="tel"], .section8 dl dd select, .section8 dl dd textarea {
        font-size: 16px;
        padding: 10px;
        line-height: 1.8;
        margin-bottom: 20px;
    }
    .section8 #form_submit {
        margin-top: 0;
    }
    .section8 #form_submit input, button {
        font-size: 24px;
    }
    
    /* Footer */
    
    .footer {
        padding: 4rem 0 2rem;
        gap: 4rem;
    }
    
    .footer-logo {
        flex-direction: column;
        gap: 2rem;
    }
    
    .footer-logo .logo {
        height: 8.5vw;
    }
    
    .footer-logo .instagram-icon {
        height: 7.4vw;
    }
    
    .footer-links {
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }
    
    .footer-links a {
        font-size: 16px;
    }
    
    .footer .copyright {
        font-size: 14px;
        text-align: center;
    }
    
    /* Back to Top Button */
    
    .back-to-top {
        width: auto;
        bottom: 2rem;
        right: 1rem;
        padding: 0;
    }
    
    .back-to-top picture {
        width: 10.6vw;
        height: 10.6vw;
    }
    
}
