/**
 * スマホ用設定
 */
@media ( width < 768px ) {

    #mv {
        margin: calc( 100vw * 152 / 780 ) 0 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 780 / 1400;
        background: #fff;
    }
    #mv .mv-pic {
        position: absolute;
        top: 0;
        right: 0;
        width: calc( 100% * 658 / 780 );
        height: auto;
    }
    #mv .mv-txt {
        position: absolute;
        top: 47%;
        left: 0;
        translate: 0 -50%;
        margin: 0;
        padding: 4.0vw 2.0vw;
        width: calc( 100% * 689 / 780 );
        height: auto;
        color: #fff;
        background: var(--color-theme);
    }
    #mv .mv-txt .txt1 {
        margin: 0;
        font-size: 8.0vw;
        font-weight: 700;
        font-family: var(--font-mincho);
        line-height: 1.4;
    }
    #mv .mv-txt .txt2 {
        margin: 0;
        font-size: 5.2vw;
        font-weight: 700;
        font-family: var(--font-mincho);
        line-height: 1.8;
    }
    #mv .mv-txt .txt3 {
        margin: 0;
        font-size: 4.0vw;
        font-weight: 500;
        line-height: 1.8;
    }

    #mv .mv-links {
        position: absolute;
        bottom: 0;
        left: 0;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        border-top: 1px solid #dedede;
        border-left: 1px solid #dedede;
        background: #fff;

        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0;
    }
    #mv .mv-links a {
        margin: 0;
        padding: 2.0vw 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 0.5vw 0;
        border-right: 1px solid #dedede;
        border-bottom: 1px solid #dedede;
    }
    #mv .mv-links a img {
        display: block;
        width: 12.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #mv .mv-links a span {
        display: block;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
    }

    #introduction {
        margin: 0 auto;
        padding: 12.0vw 0;
        width: 100%;
        background: #fafafa;
    }
    #introduction .subtitle {
        margin: 0 auto;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #introduction h2 {
        margin: 0.5em auto 1.5em;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
    }
    #introduction .intro-box {
        margin: 0 auto;
        padding: 5.0vw;
        width: 100%;
        background: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;;
        gap: 4.0vw 0;
    }
    #introduction .intro-box .intro-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 712 / 411;
    }
    #introduction .intro-box .intro-pic img {
        margin: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 8px;
    }
    #introduction .intro-box .intro-info {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #introduction .intro-box .intro-info h3 {
        margin: 0;
        padding: 0 0 0.2em;
        width: 100%;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        border-bottom: 1px solid #dedede;
    }
    #introduction .intro-box .intro-info .name {
        margin: 4.0vw 0 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 4.0vw;
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 5.2vw;
        font-weight: 700;
        font-family: var(--font-mincho);
        letter-spacing: 0.1em;
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(1):first-letter {
        color: var(--color-theme);
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        font-size: 2.8vw;
        font-weight: 500;
    }
    #introduction .intro-box .intro-info .history {
        margin: 4.0vw 0 0;
        padding: 0;
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
    }
    #introduction .intro-box .intro-info .history::before {
        display: block;
        content: "経歴";
        margin: 0 0 0.5em;
        font-size: 3.6vw;
        line-height: calc( 25 / 16 );
    }
    #introduction .intro-box .intro-info .history > dt {
        margin: 0;
        padding: 0;
        color: #dedede;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
    }
    #introduction .intro-box .intro-info .history > dd {
        margin: 0 0 1.0em;
        padding: 0;
        font-size: 3.6vw;
        line-height: calc( 25 / 16 );
    }
    #introduction .intro-box .intro-info p {
        margin: 1.5em 0 0;
        padding: 0;
        color: #383838;
        font-size: 3.6vw;
        line-height: calc( 32 / 16 );
    }

    #tvcm {
        margin: 0 auto;
        padding: 8.0vw 0;
    }
    #tvcm .tvcm-box {
        position: relative;
        display: block;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        height: auto;
        border-radius: 1.0vw;
        overflow: hidden;
    }
    #tvcm .tvcm-box .tvcm-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #tvcm .tvcm-box .tvcm-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #tvcm .tvcm-box .tvcm-info {
        margin: 0;
        padding: 5.0vw 5.0vw;
        width: 100%;
        height: auto;
        background: var(--color-theme);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    #tvcm .tvcm-box .tvcm-info h2 {
        margin: 0;
        padding: 0 0 0.2em;
        color: #fff;
        font-size: 5.2vw;
        font-weight: 700;
        font-family: var(--font-mincho);
        text-align: center;
        border-bottom: 1px solid #fff;
    }
    #tvcm .tvcm-box .tvcm-info p {
        margin: 0.8em 0 0;
        padding: 0;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 500;
        text-align: center;
        line-height: calc( 24 / 19 );
    }

    #message {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
        background: #f0f8f8;
        overflow: hidden;
    }
    #message .msg-info {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        order: 2;
    }
    #message .msg-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #message .msg-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #message .msg-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #message .msg-info .btn-common {
        display: grid;
        place-items: center;
        margin: 4.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }
    #message .msg-pic {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        height: auto;
        aspect-ratio: 712 / 353;
        order: 1;
    }
    #message .msg-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-position: left center;
        object-fit: cover;
    }

    .top-btns {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 90%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-conetnt: center;
        gap: 2.0vw 0;
    }
    .top-btns .top-btn {
        display: block;
        margin: 0;
        padding: 2.0vw;
        width: 100%;
        display: flex;
        align-items: center;
        justify-conetnt: space-between;
        gap: 0 6.0vw;
        border: 1px solid #d5d5d5;
        border-radius: 2.0vw;
    }
    .top-btns .top-btn .pic {
        margin: 0;
        padding: 0;
        width: 45%;
        height: auto;
        aspect-ratio: 512 / 288;
    }
    .top-btns .top-btn .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 1.0vw;
    }
    .top-btns .top-btn p {
        margin: 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: left;
        line-height: calc( 46 / 36 );
    }

    #concerns {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
        background: #00837c;
    }
    #concerns .subtitle {
        margin: 0 auto;
        padding: 0 2.0em;
        width: max-content;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #concerns h2 {
        margin: 0.5em auto 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
    }
    #concerns .concern-grid {
        margin: 32px auto 0;
        padding: 0;
        width: 90%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 0;
    }
    #concerns .concern-grid .concern-item {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 253;
        background: #fff;
        border-radius: 2.0vw;
        overflow: hidden;
    }
    #concerns .concern-grid .concern-item::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 12.0vw;
        height: 12.0vw;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 0.15em;
        background: #000;
        border-radius: 0 0 2.0vw 0;
        display: grid;
        place-items: center;
    }
    #concerns .concern-grid .concern-item:nth-child(1)::before {
        content: "01";
    }
    #concerns .concern-grid .concern-item:nth-child(2)::before {
        content: "02";
    }
    #concerns .concern-grid .concern-item:nth-child(3)::before {
        content: "03";
    }
    #concerns .concern-grid .concern-item .icon {
        position: absolute;
        bottom: 40%;
        left: calc( 50% - 16.0vw );
        width: 32.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #concerns .concern-grid .concern-item .icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    #concerns .concern-grid .concern-item p {
        position: absolute;
        top: 65%;
        left: 5%;
        width: 90%;
        font-size: 5.2vw;
        font-weight: 400;
        text-align: center;
        line-height: calc( 27 / 23 );
    }
    #concerns > p {
        margin: 1.5em auto 0;
        width: 90%;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 400;
        text-align: center;
        line-height: calc( 35 / 23 );
    }

    #information {
        margin: 0 auto;
        padding: 8.0vw 0;
        width: 100%;
    }
    #information .info-wrap {
        margin: 0 auto;
        padding: 0;
        width: 90%;
    }
    #information h2 {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4.0vw 0;
    }
    #information h2 span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        order: 2;
    }
    #information h2 span:nth-of-type(2) {
        margin: 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
        translate: 0 15%;
        order: 1;
    }
    #information p {
        margin: 1.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #information .info-grid {
        margin: 8.0vw 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 2, 1fr );
        gap: 2.0vw;
    }
    #information .info-grid .info-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 248;
        border-radius: 2.0vw;
        overflow: hidden;
    }
    #information .info-grid .info-item h3 {
        position: absolute;
        top: 0;
        left: 0;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 66;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        line-height: calc( 44 / 23 );
        background: var(--color-theme);
    }
    #information .info-grid .info-item .pic {
        position: absolute;
        bottom: 0;
        left: 0;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 182;
    }
    #information .info-grid .info-item .pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #training {
        margin: 0 auto;
        padding: 8.0vw 5%;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
        background: #f0f8f8;
        overflow: hidden;
    }
    #training .training-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #training .training-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 560 / 348;
        border-radius: 1.0vw;
    }
    #training .training-info {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #training .training-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #training .training-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #training .training-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #training .training-info .btn-common {
        display: grid;
        place-items: center;
        margin: 8.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }

    #recruit {
        margin: 0 auto;
        padding: 8.0vw 0 4.0vw;
        width: 100%;
    }
    #recruit .recruit-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        height: auto;
        aspect-ratio: 3 / 4;
        border-radius: 2.0vw;
        overflow: hidden;
        background: var(--color-theme);
    }
    #recruit .recruit-box .recruit-pic {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 712 / 256;
        opacity: 0.7;
    }
    #recruit .recruit-box .recruit-pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #recruit .recruit-box .recruit-info {
        position: absolute;
        top: 0;
        left: 0;
        margin: 0;
        padding: 8.0vw 6.0vw;
        width: 100%;
    }
    #recruit .recruit-box .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid #fff;
        border-right: 1px solid #fff;
    }
    #recruit .recruit-box h2 {
        margin: 0.5em auto 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #recruit .recruit-box p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight:400;
        text-align: left;
        line-height: calc( 57 / 32 );
    }
    #recruit .recruit-box .btn-recruit {
        position: absolute;
        top: 53%;
        left: 10%;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border-radius: 4.0em;
    }
    #recruit .recruit-box .btn-staff {
        position: absolute;
        top: 68%;
        left: 10%;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border-radius: 4.0em;
    }

    #staff {
        margin: 0 auto;
        padding: 4.0vw 0 8.0vw;
        width: 100%;
    }
    #staff .staff-wrap {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    #staff .staff-info {
        margin: 0 auto;
        padding: 0;
        width: 90%;
    }
    #staff .staff-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #staff .staff-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #staff .staff-info h3 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 5.2vw;
        font-weight: 400;
        text-align: left;
    }
    #staff .staff-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #staff .staff-info .btn-common {
        display: none;
    }
    #staff .btn-common {
        display: grid;
        place-items: center;
        margin: 8.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }
    #staff #staff-slider {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        overflow: hidden;
    }
    #staff #staff-slider .swiper-slide figure img {
        border-radius: 8px;
    }
    #staff #staff-slider .swiper-button-prev svg,
    #staff #staff-slider .swiper-button-next svg {
        display: none;
    }
    #staff #staff-slider .swiper-button-prev {
        margin: 0;
        padding: 0;
        width: 10.0vw;
        height: 10.0vw;
        top: calc( 50% - 5.0vw );
        background: var(--color-theme);
        border-radius: 100%;
    }
    #staff #staff-slider .swiper-button-prev::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        left: 38%;
        bottom: auto;
        right: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-left: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: 45deg;
    }
    #staff #staff-slider .swiper-button-next {
        margin: 0;
        padding: 0;
        width: 10.0vw;
        height: 10.0vw;
        top: calc( 50% - 5.0vw );
        background: var(--color-theme);
        border-radius: 100%;
    }
    #staff #staff-slider .swiper-button-next::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        right: 38%;
        bottom: auto;
        left: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }
    #staff #staff-slider .swiper-button-prev.swiper-button-disabled,
    #staff #staff-slider .swiper-button-next.swiper-button-disabled {
        background: #ccc;
    }

    #blog {
        margin: 0 auto;
        padding: 8.0vw 5.0vw 12.0vw;
        width: 100%;
        background: linear-gradient( to bottom, #fcfcfc 40%, transparent 40% );
    }
    #blog .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 3.6vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #blog h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #blog h3 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 5.2vw;
        font-weight: 400;
        text-align: left;
    }
    #blog p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #blog .blog-tab {
        margin: 4.0vw 0 0;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 4.0vw;
    }
    #blog .blog-tab > label {
        position: relative;
        display: block;
        margin: 0;
        padding: 0.4em 0;
        width: 50%;
        color: #cadcda;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        border-bottom: 1px solid #cadcda;
    }
    #blog .blog-tab > label:has(:checked) {
        color: var(--color-theme);
        border-bottom: 1px solid var(--color-theme);
    }
    #blog .blog-tab > label input[type="radio"] {
        position: absolute;
        top: 0;
        right: 0;
        width: 1px;
        height: 1px;
        opacity: 0;
    }
    #blog .blog-tab:has(#news:not(:checked)) ~ #target-news {
        display: none;
    }
    #blog .blog-tab:has(#news:checked) ~ #target-news {
        display: none;
    }
    #blog .blog-tab:has(#news:not(:checked)) ~ #news-slider {
        display: none;
    }
    #blog .blog-tab:has(#news:checked) ~ #news-slider {
        display: block;
    }
    #blog .blog-tab:has(#blog:not(:checked)) ~ #target-blog {
        display: none;
    }
    #blog .blog-tab:has(#blog:checked) ~ #target-blog {
        display: none;
    }
    #blog .blog-tab:has(#blog:not(:checked)) ~ #blog-slider {
        display: none;
    }
    #blog .blog-tab:has(#blog:checked) ~ #blog-slider {
        display: block;
    }
    #blog .blog-grid {
        margin: 8.0vw 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 0;

        display: none;
    }
    #blog .blog-grid .blog-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 4.0vw;
        width: 100%;
        border-radius: 2.0vw;
        border: 1px solid #e2e2e2;
        container-type: inline-size;
    }
    #blog .blog-grid .blog-item .pic {
        position: absolute;
        top: -15cqw;
        left: 4.0vw;
        width: calc( 100% - 8.0vw );
        height: auto;
        aspect-ratio: 320 / 180;
    }
    #blog .blog-grid .blog-item .pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 1.0vw;
    }
    #blog .blog-grid .blog-item .attr {
        margin-top: 40.0cqw;
    }
    #blog .blog-grid .blog-item .date {
        display: inline-block;
        margin: 0;
        padding: 0 1.0em 0 0;
        font-size: 2.8vw;
        font-weight: 400;
        letter-spacing: 0.1em;
    }
    #blog .blog-grid .blog-item .cat {
        display: inline-block;
        margin: 0;
        padding: 0 0 0 1.0em;
        font-size: 3.6vw;
        font-weight: 400;
        letter-spacing: 0.1em;
        border-left: 1px solid #d3dbe6;
    }
    #blog .blog-grid .blog-item p {
        margin: 0.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 4.0vw;
        font-weight: 400;
        line-height: calc( 28 / 19 );
        letter-spacing: 0.1em;
    }
    #blog .blog-slider {
        position: relative;
        margin: 8.0vw 0 0;
        padding: 10.0vw 0 0;
        width: 100%;
        overflow: hidden;
    }

    #blog .blog-slider .swiper-slide {
        position: relative;
        display: block;
        margin: 0;
        padding: 4.0vw;
        width: 100%;
        border-radius: 2.0vw;
        border: 1px solid #e2e2e2;
        container-type: inline-size;
    }
    #blog .blog-slider .swiper-slide .pic {
        position: absolute;
        top: -15cqw;
        left: 4.0vw;
        width: calc( 100% - 8.0vw );
        height: auto;
        aspect-ratio: 320 / 180;
    }
    #blog .blog-slider .swiper-slide .pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 1.0vw;
    }
    #blog .blog-slider .swiper-slide .attr {
        margin-top: 40.0cqw;
    }
    #blog .blog-slider .swiper-slide .date {
        display: inline-block;
        margin: 0;
        padding: 0 1.0em 0 0;
        font-size: 2.8vw;
        font-weight: 400;
        letter-spacing: 0.1em;
    }
    #blog .blog-slider .swiper-slide .cat {
        display: inline-block;
        margin: 0;
        padding: 0 0 0 1.0em;
        font-size: 3.6vw;
        font-weight: 400;
        letter-spacing: 0.1em;
        border-left: 1px solid #d3dbe6;
    }
    #blog .blog-slider .swiper-slide p {
        margin: 0.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 4.0vw;
        font-weight: 400;
        line-height: calc( 28 / 19 );
        letter-spacing: 0.1em;
    }

    #blog .blog-slider .swiper-button-prev svg,
    #blog .blog-slider .swiper-button-next svg {
        display: none;
    }
    #blog .blog-slider .swiper-button-prev {
        margin: 0;
        padding: 0;
        width: 10.0vw;
        height: 10.0vw;
        top: calc( 50% - 5.0vw );
        background: var(--color-theme);
        border-radius: 100%;
    }
    #blog .blog-slider .swiper-button-prev::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        left: 38%;
        bottom: auto;
        right: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-left: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: 45deg;
    }
    #blog .blog-slider .swiper-button-next {
        margin: 0;
        padding: 0;
        width: 10.0vw;
        height: 10.0vw;
        top: calc( 50% - 5.0vw );
        background: var(--color-theme);
        border-radius: 100%;
    }
    #blog .blog-slider .swiper-button-next::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        right: 38%;
        bottom: auto;
        left: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }
    #blog .blog-slider .swiper-button-prev.swiper-button-disabled,
    #blog .blog-slider .swiper-button-next.swiper-button-disabled {
        background: #ccc;
    }
    #blog .btn-common {
        display: grid;
        place-items: center;
        margin: 8.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }

}


/**
 * PC用設定
 */
@media ( width >= 768px ) {

    #mv {
        margin: 160px 0 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1920 / 920;
        background: #fff;
    }
    #mv .mv-pic {
        position: absolute;
        top: 0;
        right: 0;
        width: calc( 100% * 1240 / 1920 );
        height: auto;
    }
    #mv .mv-txt {
        position: absolute;
        top: 30%;
        left: 0;
        translate: 0 -50%;
        margin: 0;
        padding: calc( 48 * 100vw / 1920 ) calc( 80 * 100vw / 1920 ) calc( 48 * 100vw / 1920 ) calc( 186 * 100vw / 1920 );
        width: calc( 100% * 760 / 1920 );
        height: auto;
        color: #fff;
        line-height: 1.2;
        white-space: nowrap;
        background: var(--color-theme);
    }
    #mv .mv-txt .txt1 {
        margin: 0;
        font-size: calc( 48 * 100vw / 1920 );
        font-weight: 700;
        font-family: var(--font-mincho);
        line-height: calc( 57 / 48 );
    }
    #mv .mv-txt .txt2 {
        margin: 0;
        font-size: calc( 33 * 100vw / 1920 );
        font-weight: 700;
        font-family: var(--font-mincho);
        line-height: calc( 65 / 33 );
    }
    #mv .mv-txt .txt3 {
        margin: calc( 24 * 100vw / 1920 ) 0 0;
        font-size: calc( 19 * 100vw / 1920 );
        font-weight: 500;
        line-height: calc( 27 / 19 );
    }

    #mv .mv-links {
        position: absolute;
        bottom: 0;
        left: calc( 50% - 50% * 1280 / 1920 );
        margin: 0;
        padding: 2.0vw 4.0vw;
        width: calc( 100% * 1280 / 1920 );
        height: auto;
        aspect-ratio: 1280 / 240;
        background: #fff;
        border-radius: 8px 8px 0 0;

        display: flex;
        align-items: stretch;
        justify-content: center;
        gap: 0;
    }
    #mv .mv-links a {
        margin: 0;
        width: 20%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 0.5vw 0;
        border-left: 1px solid #dedede;
    }
    #mv .mv-links a:last-child {
        border-right: 1px solid #dedede;
    }
    #mv .mv-links a img {
        display: block;
        width: 48px;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #mv .mv-links a span {
        display: block;
        font-size: clamp( 16px, calc( 19 * 100vw / 1920 ), 19px );
        font-weight: 500;
        text-align: center;
    }

    #introduction {
        margin: 0 auto;
        padding: 88px 0;
        width: 100%;
        background: #fafafa;
    }
    #introduction .subtitle {
        margin: 0 auto;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #introduction h2 {
        margin: 0.5em auto 1.5em;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
    }
    #introduction .intro-box {
        margin: 32px auto 0;
        padding: 48px;
        width: 90%;
        max-width: 1136px;
        background: #fff;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 48px;
    }
    #introduction .intro-box .intro-pic {
        margin: 0;
        padding: 0;
        width: 35%;
        height: auto;
    }
    #introduction .intro-box .intro-pic img {
        margin: 0;
        width: 100%;
        height: auto;
        border-radius: 8px;
    }
    #introduction .intro-box .intro-info {
        margin: 0;
        padding: 0;
        width: 65%;
    }
    #introduction .intro-box .intro-info h3 {
        margin: 0;
        padding: 0 0 0.2em;
        width: 100%;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        border-bottom: 1px solid #dedede;
    }
    #introduction .intro-box .intro-info .name {
        margin: 16px 0 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 28px;
        font-weight: 700;
        font-family: var(--font-mincho);
        letter-spacing: 0.1em;
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(1):first-letter {
        color: var(--color-theme);
    }
    #introduction .intro-box .intro-info .name span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        font-size: 13px;
        font-weight: 500;
    }
    #introduction .intro-box .intro-info .history {
        margin: 16px 0 0;
        padding: 0;
        display: grid;
        grid-template-columns: 120px 1fr;
        gap: 8px 0;
    }
    #introduction .intro-box .intro-info .history::before {
        display: block;
        content: "経歴";
        margin: 0 0 0.2em;
        grid-column: span 2;
        font-size: 16px;
        line-height: calc( 25 / 16 );
    }
    #introduction .intro-box .intro-info .history > dt {
        margin: 0;
        padding: 0;
        color: #dedede;
        font-size: 24px;
        font-weight: 600;
        font-family: var(--font-alphabet);
    }
    #introduction .intro-box .intro-info .history > dd {
        margin: 0;
        padding: 4px 0 0;
        font-size: 16px;
        line-height: calc( 25 / 16 );
    }
    #introduction .intro-box .intro-info p {
        margin: 1.5em 0 0;
        padding: 0;
        color: #383838;
        font-size: 16px;
        line-height: calc( 32 / 16 );
    }

    #tvcm {
        margin: 0 auto;
        padding: 64px 0;
    }
    #tvcm .tvcm-box {
        position: relative;
        display: block;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 944px;
        height: auto;
        aspect-ratio: 944 / 201;
        border-radius: 8px;
        overflow: hidden;
    }
    #tvcm .tvcm-box .tvcm-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
    }
    #tvcm .tvcm-box .tvcm-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #tvcm .tvcm-box .tvcm-info {
        position: absolute;
        top: 0;
        left: 0;
        margin: 0;
        padding: 0 4.5%;
        width: calc( 100% * 419 / 944 );
        height: 100%;
        background: var(--color-theme);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    #tvcm .tvcm-box .tvcm-info h2 {
        margin: 0;
        padding: 0 0 0.2em;
        color: #fff;
        font-size: calc( 28 * min( 90vw, 944px ) / 944 );
        font-weight: 700;
        font-family: var(--font-mincho);
        text-align: center;
        border-bottom: 1px solid #fff;
    }
    #tvcm .tvcm-box .tvcm-info p {
        margin: 0.8em 0 0;
        padding: 0;
        color: #fff;
        font-size: calc( 19 * min( 90vw, 944px ) / 944 );
        font-weight: 500;
        text-align: left;
        line-height: calc( 24 / 19 );
    }

    #message {
        margin: 0 auto;
        padding: 72px 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        background: #f0f8f8;
        overflow: hidden;
    }
    #message .msg-info {
        margin: 0;
        padding: 0 0 0 max( 5%, calc( 50vw - 568px) );
        width: calc( 100% * 739 / 1920 );
        width: 50%;
    }
    #message .msg-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #message .msg-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #message .msg-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #message .msg-info .btn-common {
        display: grid;
        place-items: center;
        margin: 24px 0 0;
        padding: 0;
        width: 328px;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }
    #message .msg-pic {
        margin: 0;
        padding: 0;
        width: calc( 100% * 1181 / 1920 );
        width: 50%;
        height: auto;
    }
    #message .msg-pic img {
        margin: 0;
        padding: 0;
        width: calc( 100vw * 1181 / 1920 );
        height: auto;
        aspect-ratio: 2362 / 696;
        transform-origin: left center;
        transform: scale( 1.25, 1.25 );
    }

    .top-btns {
        margin: 0 auto;
        padding: 64px 0;
        width: 90%;
        max-width: 1136px;
        display: flex;
        align-items: stretch;
        justify-conetnt: space-between;
        gap: 0 16px;
    }
    .top-btns .top-btn {
        display: block;
        margin: 0;
        padding: 16px;
        width: 50%;
        display: flex;
        align-items: center;
        justify-conetnt: space-between;
        gap: 0 40px;
        border: 1px solid #d5d5d5;
        border-radius: 8px;
    }
    .top-btns .top-btn .pic {
        margin: 0;
        padding: 0;
        width: 50%;
        height: auto;
        aspect-ratio: 512 / 288;
    }
    .top-btns .top-btn .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 4px;
    }
    .top-btns .top-btn p {
        margin: 0;
        padding: 0;
        font-size: 19px;
        font-weight: 500;
        text-align: left;
        line-height: calc( 44 / 19 );
    }

    #concerns {
        margin: 0 auto;
        padding: 80px 0;
        width: 100%;
        background: #00837c;
    }
    #concerns .subtitle {
        margin: 0 auto;
        padding: 0 2.0em;
        width: max-content;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #concerns h2 {
        margin: 0.5em auto 0;
        padding: 0;
        color: #fff;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
    }
    #concerns .concern-grid {
        margin: 32px auto 0;
        padding: 0;
        width: 90%;
        max-width: 1136px;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0 15px;
    }
    #concerns .concern-grid .concern-item {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 253;
        background: #fff;
        border-radius: 16px;
        overflow: hidden;
    }
    #concerns .concern-grid .concern-item::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 40px;
        height: 40px;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 0.15em;
        background: #000;
        border-radius: 0 0 16px 0;
        display: grid;
        place-items: center;
    }
    #concerns .concern-grid .concern-item:nth-child(1)::before {
        content: "01";
    }
    #concerns .concern-grid .concern-item:nth-child(2)::before {
        content: "02";
    }
    #concerns .concern-grid .concern-item:nth-child(3)::before {
        content: "03";
    }
    #concerns .concern-grid .concern-item .icon {
        position: absolute;
        bottom: 40%;
        left: calc( 50% - 52px );
        width: 104px;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #concerns .concern-grid .concern-item .icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    #concerns .concern-grid .concern-item p {
        position: absolute;
        top: 65%;
        left: 5%;
        width: 90%;
        font-size: 23px;
        font-weight: 400;
        text-align: center;
        line-height: calc( 27 / 23 );
    }
    #concerns > p {
        margin: 1.5em 0 0;
        color: #fff;
        font-size: 23px;
        font-weight: 400;
        text-align: center;
        line-height: calc( 35 / 23 );
    }

    #information {
        margin: 0 auto;
        padding: 80px 0;
        width: 100%;
    }
    #information .info-wrap {
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1136px;
    }
    #information h2 {
        margin: 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: flex-start; 
        gap: 0 40px;
    }
    #information h2 span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
    }
    #information h2 span:nth-of-type(2) {
        margin: 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
        translate: 0 15%;
    }
    #information p {
        margin: 1.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #information .info-grid {
        margin: 40px 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 24px 16px;
    }
    #information .info-grid .info-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 248;
        border-radius: 16px;
        overflow: hidden;
    }
    #information .info-grid .info-item h3 {
        position: absolute;
        top: 0;
        left: 0;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 66;
        color: #fff;
        font-size: 23px;
        font-weight: 500;
        line-height: calc( 44 / 23 );
        background: var(--color-theme);
    }
    #information .info-grid .info-item .pic {
        position: absolute;
        bottom: 0;
        left: 0;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 368 / 182;
    }
    #information .info-grid .info-item .pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    #training {
        margin: 0 auto;
        padding: 72px max( 5%, calc( 50vw - 568px) );
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 48px;
        background: #f0f8f8;
        overflow: hidden;
    }
    #training .training-pic {
        margin: 0;
        padding: 0;
        width: 50%;
        height: auto;
    }
    #training .training-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 560 / 348;
        border-radius: 8px;
    }
    #training .training-info {
        margin: 0;
        padding: 0;
        width: 50%;
    }
    #training .training-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #training .training-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #training .training-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #training .training-info .btn-common {
        display: grid;
        place-items: center;
        margin: 55px 0 0;
        padding: 0;
        width: 328px;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }

    #recruit {
        margin: 0 auto;
        padding: 96px 0 48px;
        width: 100%;
    }
    #recruit .recruit-box {
        position: relative;
        margin: 0 auto;
        padding: 0;
        width: 90%;
        max-width: 1136px;
        height: auto;
        aspect-ratio: 1136 / 337;
        border-radius: 16px;
        overflow: hidden;
        background: var(--color-theme);
    }
    #recruit .recruit-box .recruit-pic {
        position: absolute;
        top: 0;
        right: 0;
        width: calc( 100% * 480 / 1136 );
        height: auto;
        aspect-ratio: 480 / 337;
        opacity: 0.7;
    }
    #recruit .recruit-box .recruit-pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #recruit .recruit-box .recruit-info {
        position: absolute;
        top: 50%;
        left: 5%;
        width: 90%;
        translate: 0 -50%;
    }
    #recruit .recruit-box .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: #fff;
        font-size: calc( 16 * min( 90vw, 1136px ) / 1136 );
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid #fff;
        border-right: 1px solid #fff;
    }
    #recruit .recruit-box h2 {
        margin: 0.5em auto 0;
        padding: 0;
        color: #fff;
        font-size: calc( 33 * min( 90vw, 1136px ) / 1136 );
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #recruit .recruit-box p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: calc( 16 * min( 90vw, 1136px ) / 1136 );
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #recruit .recruit-box .btn-recruit {
        position: absolute;
        bottom: 55%;
        left: 47%;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: calc( 100% * 328 / 1136 );
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: calc( 19 * min( 90vw, 1136px ) / 1136 );
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border-radius: 4.0em;
    }
    #recruit .recruit-box .btn-staff {
        position: absolute;
        top: 55%;
        left: 47%;
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: calc( 100% * 328 / 1136 );
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: calc( 19 * min( 90vw, 1136px ) / 1136 );
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border-radius: 4.0em;
    }

    #staff {
        margin: 0 auto;
        padding: 48px 0 96px;
        width: 100%;
    }
    #staff .staff-wrap {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 80px;
    }
    #staff .staff-info {
        margin: 0;
        padding: 0 0 0 max( 5%, calc( 50vw - 568px ) );
        width: 45%;
    }
    #staff .staff-info .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #staff .staff-info h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #staff .staff-info h3 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 23px;
        font-weight: 400;
        text-align: left;
    }
    #staff .staff-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #staff .btn-common {
        display: grid;
        place-items: center;
        margin: 35px auto 0;
        padding: 0;
        width: 328px;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }
    #staff .staff-info .btn-common {
        margin: 35px 0 0;
    }
    #staff > .btn-common {
        display: none;
    }
    #staff #staff-slider {
        position: relative;
        margin: 0;
        padding: 0 0 0 16px;
        width: 55%;
        overflow: hidden;
    }
    #staff #staff-slider .swiper-slide figure img {
        border-radius: 8px;
    }
    #staff #staff-slider .swiper-button-prev svg,
    #staff #staff-slider .swiper-button-next svg {
        display: none;
    }
    #staff #staff-slider .swiper-button-prev {
        margin: 0;
        padding: 0;
        width: 32px;
        height: 32px;
        top: calc( 50% - 16px );
        background: var(--color-theme);
        border-radius: 100%;
    }
    #staff #staff-slider .swiper-button-prev::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        left: 38%;
        bottom: auto;
        right: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-left: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: 45deg;
    }
    #staff #staff-slider .swiper-button-next {
        margin: 0;
        padding: 0;
        width: 32px;
        height: 32px;
        top: calc( 50% - 16px );
        right: 41%;
        background: var(--color-theme);
        border-radius: 100%;
    }
    #staff #staff-slider .swiper-button-next::before {
        position: absolute;
        content: "";
        top: calc( 35% - 1px );
        right: 38%;
        bottom: auto;
        left: auto;
        width: 30%;
        height: auto;
        aspect-ratio: 1 / 1;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        rotate: -45deg;
    }
    #staff #staff-slider .swiper-button-prev.swiper-button-disabled,
    #staff #staff-slider .swiper-button-next.swiper-button-disabled {
        background: #ccc;
    }

    #blog {
        margin: 0 auto;
        padding: 80px max( 5%, calc( 50vw - 568px ) ) 104px;
        width: 100%;
        background: linear-gradient( to bottom, #fcfcfc 40%, transparent 40% );
    }
    #blog .subtitle {
        margin: 0 auto 0 0;
        padding: 0 2.0em;
        width: max-content;
        color: var(--color-theme);
        font-size: 16px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        letter-spacing: 0.15em;
        border-left: 1px solid var(--color-theme);
        border-right: 1px solid var(--color-theme);
    }
    #blog h2 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 33px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
    }
    #blog h3 {
        margin: 0.5em auto 0;
        padding: 0;
        font-size: 23px;
        font-weight: 400;
        text-align: left;
    }
    #blog p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 16px;
        font-weight:400;
        text-align: left;
        line-height: calc( 35 / 16 );
    }
    #blog .blog-tab {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 0 16px;
    }
    #blog .blog-tab > label {
        position: relative;
        display: block;
        margin: 0;
        padding: 0.4em 0;
        width: 180px;
        color: #cadcda;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        border-bottom: 1px solid #cadcda;
    }
    #blog .blog-tab > label:has(:checked) {
        color: var(--color-theme);
        border-bottom: 1px solid var(--color-theme);
    }
    #blog .blog-tab > label input[type="radio"] {
        position: absolute;
        top: 0;
        right: 0;
        width: 1px;
        height: 1px;
        opacity: 0;
    }
    #blog .blog-tab:has(#news:not(:checked)) ~ #target-news {
        display: none;
    }
    #blog .blog-tab:has(#news:checked) ~ #target-news {
        display: grid;
    }
    #blog .blog-tab:has(#blog:not(:checked)) ~ #target-blog {
        display: none;
    }
    #blog .blog-tab:has(#blog:checked) ~ #target-blog {
        display: grid;
    }
    #blog .blog-grid {
        margin: calc( 40px + 40 * min( 90vw, 1136px ) / 1136 ) 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 0 16px;
    }
    #blog .blog-grid .blog-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 24px;
        width: 100%;
        border-radius: 16px;
        border: 1px solid #e2e2e2;
        container-type: inline-size;
    }
    #blog .blog-grid .blog-item .pic {
        position: absolute;
        top: -15cqw;
        left: 24px;
        width: calc( 100% - 48px );
        height: auto;
        aspect-ratio: 320 / 180;
    }
    #blog .blog-grid .blog-item .pic img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 8px;
    }
    #blog .blog-grid .blog-item .attr {
        margin-top: 40.0cqw;
    }
    #blog .blog-grid .blog-item .date {
        display: inline-block;
        margin: 0;
        padding: 0 1.0em 0 0;
        font-size: 13px;
        font-weight: 400;
        letter-spacing: 0.1em;
    }
    #blog .blog-grid .blog-item .cat {
        display: inline-block;
        margin: 0;
        padding: 0 0 0 1.0em;
        font-size: 16px;
        font-weight: 400;
        letter-spacing: 0.1em;
        border-left: 1px solid #d3dbe6;
    }
    #blog .blog-grid .blog-item p {
        margin: 0.5em 0 0;
        padding: 0;
        width: 100%;
        font-size: 19px;
        font-weight: 400;
        line-height: calc( 28 / 19 );
        letter-spacing: 0.1em;
    }
    #blog .blog-slider {
        display: none;
    }
    #blog .btn-common {
        display: grid;
        place-items: center;
        margin: 40px auto 0;
        padding: 0;
        width: 328px;
        height: auto;
        aspect-ratio: 328 / 60;
        color: var(--color-theme);
        font-size: 19px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: #fff;
        border: 1px solid var(--color-theme);
        border-radius: 4.0em;
    }

}
