@media(max-width:767px) {
    /*HEADER (mobile)*/
    .header-inner {
        padding: 10px 0 0 12px;
    }

    .header-main .logo-left .logo {
        width: 172px;
    }

    /* reset the PC overlay box so the drawer menu keeps its own style */
    .header-overlay .header-inner {
        padding-right: 0;
    }

    .header-overlay .header-main #logo {
        padding-top: 0;
    }

    .header-overlay .header-main .main-menu {
        flex: none;
        margin-left: 0;
        padding: 80px 0 0;
        border-radius: 0;
    }

    a.menu-btn {
        width: 55px;
        min-height: 55px;
        height: 55px;
        background-color: #9E005D;
    }

    a.menu-btn span {
        top: 15px;
        left: 13px;
        width: 29px;
        background-color: #fff;
    }

    a.menu-btn span:nth-child(2) {
        top: 22px;
    }

    a.menu-btn span:nth-child(3) {
        top: 29px;
    }

    /* CLOSE: X centered in the 55px button (2 bars of 23px crossed) */
    a.menu-btn.open span {
        top: 19px;
        left: 16px;
        width: 23px;
    }

    a.menu-btn::after {
        top: 36px;
        color: #fff;
        font-family: "Syncopate", sans-serif;
        font-size: 0.8rem;
        font-weight: 700;
    }

    /*COMPONENT: BLOCK TITLE (mobile)*/
    .block-title-ja {
        gap: 6px;
        margin-top: 10px;
        font-size: 1.4rem;
    }

    .block-title-ja::before {
        width: 14px;
        height: 15px;
    }

    /*COMPONENT: SUB VISUAL (mobile)*/
    .sub-visual {
        height: 190px;
    }

    .sub-visual-bg {
        top: auto;
        bottom: 0;
        left: -45px;
        width: 425px;
    }

    .sub-visual-title {
        top: 90px;
        right: 26px;
    }

    .sub-visual-title .block-title-en {
        font-size: 3.8rem;
    }

    .sub-visual-title .block-title-ja {
        color: #333;
    }

    /*COMPONENT: PAGE BREADCRUMB / ANCHOR LIST (mobile)*/
    .page-breadcrumb {
        display: none;
    }

    .anchor-list {
        flex-direction: column;
        gap: 22px;
        margin: 0;
        padding: 20px 0 28px;
    }

    .anchor-list-item {
        gap: 10px;
        color: #333;
        font-size: 1.4rem;
    }

    .anchor-list-item::before {
        width: 15px;
        height: 15px;
    }

    /*COMPONENT: TITLE BAR (mobile)*/
    .title-bar-inner {
        padding: 0 0 12px 25px;
    }

    .title-bar-inner::before {
        width: 12px;
        height: 38px;
    }

    .title-bar-en {
        font-size: 1.1rem;
    }

    .title-bar-ja {
        margin-top: 6px;
        font-size: 1.6rem;
    }

    /*COMPONENT: SECTION LINE (mobile)*/
    .section-line-right,
    .section-line-left {
        width: 50%;
    }

    /*COMPONENT: BUTTON VIEW MORE (mobile)*/
    .btn-view-more {
        width: 228px;
        height: 50px;
        padding: 0 15px 0 20px;
        font-size: 1.3rem;
    }

    .btn-view-more .icon-arrow {
        width: 40px;
        height: 20px;
        background-size: 18px auto;
    }

    /*COMPONENT: BIZ BLOCK (mobile: centered heading, 1 column cards)*/
    .biz-block {
        padding: 34px 0 38px;
    }

    .biz-block-en {
        top: -14px;
        right: 0;
        left: 0;
        font-size: 2.9rem;
        text-align: center;
    }

    .biz-block-semi .biz-block-bg {
        top: 224px;
        bottom: auto;
        left: 0;
        width: 304px;
    }

    .biz-block-sustain .biz-block-bg {
        top: 235px;
        bottom: auto;
        left: auto;
        right: 0;
        width: 280px;
    }

    .biz-block-head {
        flex-direction: column;
    }

    /* let label / title / button join the column order with the right side */
    .biz-block-head-left {
        display: contents;
    }

    .biz-block-label {
        order: 1;
        width: 100%;
        font-size: 1.3rem;
        font-weight: 500;
        text-align: center;
    }

    .biz-block-title {
        order: 2;
        width: 100%;
        margin-top: 4px;
        font-size: 2rem;
        text-align: center;
    }

    .biz-block-head-right {
        order: 3;
        margin-top: 20px;
    }

    .biz-block-lead {
        font-size: 1.6rem;
        line-height: 1.6;
    }

    .biz-block-text {
        margin-top: 14px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    .biz-block-head .btn-view-more {
        order: 4;
        margin: 22px auto 0;
    }

    .biz-block-cards {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 43px;
    }

    /*COMPONENT: CARD BIZ (mobile)*/
    .card-biz {
        gap: 12px;
        min-height: 84px;
        padding: 14px 15px 14px 10px;
        box-shadow: 3px 3px 0 #C7CCD1;
    }

    .card-biz-icon {
        width: 60px;
    }

    .card-biz-icon img {
        max-width: 52px;
        max-height: 44px;
    }

    .card-biz-title {
        font-size: 1.4rem;
    }

    .card-biz-text {
        margin-top: 5px;
        color: #333;
        font-size: 1.35rem;
        line-height: 18px;
    }

    /*COMPONENT: DATA GRID (mobile: 1 column, 250px wide)*/
    .data-grid {
        gap: 13px;
    }

    .data-grid-row {
        flex-direction: column;
        align-items: center;
        gap: 13px;
    }

    .data-grid-item {
        width: 250px;
        height: auto;
    }

    /*COMPONENT: BOX WELFARE (mobile)*/
    .box-welfare {
        padding: 30px 22px;
        border-width: 1px;
    }

    .box-welfare-heart {
        top: -15px;
        width: 40px;
    }

    .box-welfare-title {
        font-size: 1.5rem;
    }

    .box-welfare-sub {
        margin-top: 12px;
        font-size: 1.35rem;
        line-height: 1.4;
        text-align: left;
    }

    .box-welfare-list {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 18px;
    }

    .box-welfare-item {
        gap: 13px;
        min-height: 85px;
        padding: 14px 17px 14px 15px;
        border-radius: 6px;
        box-shadow: 3px 3px 0 #C9BFC5;
    }

    .box-welfare-icon {
        width: 55px;
    }

    .box-welfare-icon img {
        max-width: 42px;
        max-height: 38px;
    }

    .box-welfare-item-title {
        font-size: 1.4rem;
    }

    .box-welfare-item-text {
        margin-top: 5px;
        font-size: 1.35rem;
        line-height: 18px;
    }

    /*COMPONENT: ADVANTAGE ITEM (mobile: photo left + number/heading right, text full width below; no reverse)*/
    .advantage-item,
    .advantage-item-reverse {
        display: grid;
        grid-template-columns: 135px 1fr;
        grid-template-areas:
            "img head"
            "text text";
        column-gap: 20px;
        height: auto;
        padding-top: 13px;
        border-top: 1px solid #222;
    }

    .advantage-item::before {
        display: none;
    }

    /* line below photo / heading row */
    .advantage-item::after,
    .advantage-item-reverse::after {
        top: 183px;
        left: 0;
        right: 0;
        background-color: #222;
    }

    .advantage-item-img,
    .advantage-item-reverse .advantage-item-img {
        position: static;
        grid-area: img;
        width: 135px;
    }

    .advantage-item-label,
    .advantage-item-no,
    .advantage-item-title,
    .advantage-item-reverse .advantage-item-label,
    .advantage-item-reverse .advantage-item-no,
    .advantage-item-reverse .advantage-item-title {
        position: static;
        grid-area: head;
        width: auto;
        padding: 0;
        border: 0;
        text-align: left;
    }

    .advantage-item-label,
    .advantage-item-reverse .advantage-item-label {
        align-self: start;
        margin-top: 5px;
        font-size: 1rem;
    }

    .advantage-item-no,
    .advantage-item-reverse .advantage-item-no {
        align-self: start;
        margin-top: 20px;
        font-size: 4rem;
        line-height: 1;
    }

    /* short line under the number */
    .advantage-item-no::after {
        content: "";
        display: block;
        width: 70px;
        height: 1px;
        margin-top: 10px;
        background-color: #333;
    }

    .advantage-item-title,
    .advantage-item-reverse .advantage-item-title {
        align-self: start;
        margin-top: 85px;
        font-size: 1.5rem;
        line-height: 20px;
    }

    .advantage-item-text,
    .advantage-item-reverse .advantage-item-text {
        position: static;
        grid-area: text;
        width: auto;
        margin-top: 37px;
    }

    .advantage-item-text p {
        font-size: 1.35rem;
        line-height: 25px;
    }

    /*SUB PAGES (mobile): 25px side gutter, underline below the anchor list*/
    .page-about .container,
    .page-semiconductor .container,
    .page-sustainable .container,
    .page-work .container,
    .page-interview .container,
    .page-interview-detail .container,
    .page-highschool .container,
    .page-environment .container,
    .page-recruit .container,
    .page-recruit-detail .container,
    .page-entry .container,
    .page-contact .container {
        padding-left: 25px;
        padding-right: 25px;
    }

    .anchor-list-wrap {
        border-bottom: 1px solid #1D4482;
    }

    /*PAGE ABOUT (mobile)*/

    .page-about .about-01 {
        padding-top: 60px;
        padding-bottom: 56px;
    }

    .page-about .about-01-text {
        margin-top: 28px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    .page-about .about-01-img {
        width: 406px;
        margin: 30px 0 0 calc(50% - 203px);
    }

    .page-about .biz-block-semi {
        margin-top: 68px;
    }

    .page-about .biz-block-sustain {
        margin-top: 58px;
    }

    .page-about .about-02 {
        padding-top: 24px;
        padding-bottom: 58px;
    }

    .page-about .about-02 .data-grid {
        margin-top: 24px;
    }

    .page-about .about-02 .box-welfare {
        margin-top: 50px;
    }

    .page-about .about-03 {
        padding-top: 46px;
        padding-bottom: 95px;
    }

    .page-about .about-03 .advantage-item {
        margin-top: 31px;
    }

    .page-about .about-03 .advantage-item-reverse {
        margin-top: 53px;
    }

    /* mobile design uses no letter-spacing on Japanese text */
    .anchor-list-item,
    .title-bar-ja,
    .biz-block-label,
    .biz-block-title,
    .biz-block-lead,
    .biz-block-text,
    .card-biz-title,
    .card-biz-text,
    .box-welfare-title,
    .box-welfare-sub,
    .box-welfare-item-title,
    .box-welfare-item-text,
    .advantage-item-title,
    .advantage-item-text p,
    .page-about .about-01-text {
        letter-spacing: 0;
    }

    /*COMPONENT: TITLE LEAF (mobile)*/
    .title-leaf {
        gap: 8px;
        padding-bottom: 8px;
        font-size: 1.7rem;
        letter-spacing: 0;
    }

    .title-leaf::before {
        width: 17px;
        height: 18px;
    }

    /*COMPONENT: BOX BALLOON (mobile: image on top)*/
    .box-balloon {
        flex-direction: column;
        gap: 0;
        padding: 20px 19px 25px;
    }

    .box-balloon::after {
        left: calc(50% - 8px);
        border-top-width: 24px;
        border-left-width: 8px;
        border-right-width: 8px;
    }

    .box-balloon-img {
        width: 200px;
        margin: 0 auto;
    }

    .box-balloon-title {
        margin-top: 16px;
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 23px;
    }

    .box-balloon-text {
        margin-top: 13px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    /*COMPONENT: TABLE COMPARE (mobile: fixed width inside .js-scrollable)*/
    .table-compare {
        width: 460px;
        margin: -5px;
        border-spacing: 5px;
    }

    .table-compare thead th {
        height: 35px;
        border-radius: 8px 8px 0 0;
        font-size: 1.4rem;
    }

    .table-compare thead th:first-child {
        width: 120px;
    }

    .table-compare tbody th {
        height: 70px;
        padding: 8px 0;
        font-size: 1.25rem;
        letter-spacing: 0;
        text-align: center;
    }

    .table-compare tbody th img {
        display: block;
        width: 28px;
        height: 28px;
        margin: 0 auto 4px;
    }

    .table-compare td {
        padding: 13px 10px 10px 16px;
        font-size: 1.25rem;
        letter-spacing: 0;
        line-height: 17px;
    }

    /*COMPONENT: TITLE CENTER LINE (mobile)*/
    .title-center-line {
        font-size: 1.5rem;
    }

    .title-center-line::after {
        width: 75px;
        margin-top: 13px;
    }

    /*COMPONENT: PILLAR ITEM (mobile: photo on top, box below overlapping)*/
    .pillar-item {
        min-height: 0;
    }

    .pillar-item-img {
        position: relative;
        top: 0;
        left: 0;
        width: 265px;
        margin-left: 25px;
        box-shadow: none;
    }

    .pillar-item-box {
        width: auto;
        min-height: 0;
        margin: -64px -25px 0 0;
        padding: 78px 28px 30px 25px;
    }

    .pillar-item-reverse .pillar-item-img {
        left: 0;
        margin-left: 0;
    }

    .pillar-item-reverse .pillar-item-box {
        margin: -64px 0 0 -25px;
        padding: 78px 25px 30px;
    }

    .pillar-item-no {
        padding-right: 23px;
        font-size: 3.4rem;
        line-height: 28px;
    }

    .pillar-item-title {
        margin-left: 16px;
        font-size: 1.6rem;
    }

    .pillar-item-lead {
        margin-top: 22px;
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 22px;
        font-feature-settings: "palt";
    }

    .pillar-item-text {
        margin-top: 18px;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 25px;
        font-feature-settings: normal;
    }

    /*COMPONENT: CIRCLE LIST (mobile: stacked arcs, full width)*/
    .circle-list {
        flex-direction: column;
    }

    .circle-item,
    .circle-item:nth-child(4) {
        width: auto;
        height: auto;
        margin: 0 -25px;
        padding: 30px 35px 18px;
        border-radius: 50% 50% 0 0 / 45px 45px 0 0;
        background: linear-gradient(to bottom, #DCEBF5 0%, rgba(255, 255, 255, 0) 100%);
    }

    .circle-item + .circle-item {
        margin-top: 35px;
    }

    .circle-item-no {
        top: -24px;
        font-size: 4.2rem;
    }

    .circle-item-title {
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 22px;
    }

    .circle-item-text {
        margin-top: 15px;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    /*COMPONENT: BIZ INTRO (mobile)*/
    .biz-intro {
        padding-top: 40px;
    }

    .biz-intro-title {
        font-size: 2rem;
        text-align: center;
    }

    .biz-intro-band {
        height: auto;
        margin-top: 15px;
        padding-bottom: 145px;
    }

    .biz-intro-bg {
        top: auto;
        bottom: 0;
        left: auto;
        right: 0;
        width: 270px;
    }

    .biz-intro-en {
        top: auto;
        bottom: -6px;
        left: 15px;
        font-size: 2.95rem;
    }

    .biz-intro-body {
        width: auto;
        padding-top: 39px;
    }

    .biz-intro-lead {
        font-size: 1.5rem;
        letter-spacing: 0;
        font-feature-settings: "palt";
    }

    .biz-intro-text {
        margin-top: 7px;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    /*PAGE SEMICONDUCTOR (mobile)*/
    .page-semiconductor .sub-visual-title {
        top: 95px;
    }

    .page-semiconductor .sub-visual-title .block-title-en {
        font-size: 2.75rem;
    }

    .page-semiconductor .semi-01 {
        padding: 68px 0 60px;
    }

    .page-semiconductor .semi-01 .title-leaf {
        margin-top: 23px;
    }

    .page-semiconductor .semi-01-what {
        margin-top: 27px;
    }

    /* no SP photo: blue band above the PC photo scaled to full width */
    .page-semiconductor .semi-01-what::before {
        content: "";
        position: absolute;
        top: 427px;
        left: 0;
        right: 0;
        bottom: 150px;
        z-index: -1;
        background-color: #1482BE;
    }

    .page-semiconductor .semi-01-things {
        height: auto;
        padding-top: 42px;
    }

    .page-semiconductor .semi-01-things-bg {
        position: relative;
        left: 0;
        width: 100%;
    }

    .page-semiconductor .semi-01-things-title {
        padding: 0 0 12px;
        font-size: 1.5rem;
        letter-spacing: 0.1em;
    }

    .page-semiconductor .semi-01-what + .container .title-leaf {
        margin-top: 38px;
        font-size: 1.45rem;
    }

    .page-semiconductor .semi-01-text {
        margin-top: 22px;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    .page-semiconductor .semi-01 .js-scrollable {
        margin-top: 25px;
    }

    .page-semiconductor .semi-01-role {
        margin-top: 60px;
        padding: 46px 0 35px;
    }

    .page-semiconductor .semi-01-role-text {
        margin: 24px 0 0;
        font-size: 1.35rem;
        line-height: 25px;
    }

    .page-semiconductor .semi-01-role-img {
        margin-top: 23px;
        padding: 15px 0 25px 25px;
        background-color: #fff;
    }

    .page-semiconductor .semi-01-role-img img {
        width: 550px;
        max-width: none;
    }

    .page-semiconductor .semi-02 {
        padding: 37px 0 65px;
    }

    .page-semiconductor .semi-02-text {
        margin-top: 22px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    .page-semiconductor .semi-02 .pillar-item {
        margin-top: 26px;
    }

    .page-semiconductor .semi-02 .pillar-item-reverse,
    .page-semiconductor .semi-02 .pillar-item-reverse + .pillar-item {
        margin-top: 37px;
    }

    .page-semiconductor .semi-03 {
        padding: 41px 0 50px;
    }

    .page-semiconductor .semi-03-lead {
        margin-top: 24px;
        font-size: 1.6rem;
        letter-spacing: 0;
        line-height: 25px;
        text-align: left;
        font-feature-settings: "palt";
    }

    .page-semiconductor .semi-03-text {
        margin-top: 15px;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    .page-semiconductor .semi-03-map {
        height: 143px;
        margin-top: 12px;
    }

    .page-semiconductor .semi-03-map img {
        left: calc(50% - 343px);
        width: 601px;
    }

    .page-semiconductor .semi-03-sub {
        margin-top: 15px;
        font-size: 1.5rem;
    }

    .page-semiconductor .semi-03 .circle-list {
        margin-top: 40px;
    }

    /*COMPONENT: CARD THEME (mobile: 1 column, horizontal dividers only)*/
    .card-theme-list {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .card-theme,
    .card-theme:nth-child(even) {
        --theme-pad: 0px;
        min-height: 0;
        padding: 143px 0 20px;
        border-bottom: 1px solid #B8B8B8;
    }

    .card-theme:nth-child(even)::before {
        display: none;
    }

    .card-theme:nth-child(n+3) {
        border-bottom: 1px solid #B8B8B8;
    }

    .card-theme:last-child {
        border-bottom: 0;
    }

    .card-theme-label {
        left: 20px;
        width: 65px;
        height: 65px;
        font-size: 1.4rem;
    }

    .card-theme-img {
        top: 0;
        right: 0;
        width: 215px;
        height: 119px;
        clip-path: polygon(40px 0, 100% 0, 100% 100%, 0 100%);
    }

    .card-theme-title {
        top: 78px;
        left: 52px;
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 17px;
    }

    .card-theme-text {
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 22px;
    }

    /*COMPONENT: NOTE TEXT / PHOTO PAIR (mobile)*/
    .note-text {
        font-size: 1.25rem;
        line-height: 20px;
    }

    .photo-pair {
        flex-direction: column;
        gap: 20px;
    }

    .photo-pair-item img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    .photo-pair-item figcaption {
        margin-top: 6px;
        font-size: 1.2rem;
    }

    /*PAGE SUSTAINABLE (mobile)*/
    .page-sustainable .sub-visual-title {
        top: 95px;
    }

    .page-sustainable .sub-visual-title .block-title-en {
        font-size: 3.25rem;
    }

    .page-sustainable .biz-intro-lead {
        font-size: 1.55rem;
        white-space: nowrap;
    }

    .page-sustainable .biz-intro-band {
        height: auto;
        padding-bottom: 125px;
    }

    .page-sustainable .biz-intro-bg {
        left: auto;
        width: 300px;
    }

    .page-sustainable .biz-intro-en {
        top: auto;
        left: 25px;
        font-size: 3.25rem;
    }

    .page-sustainable .sustain-01 {
        padding: 48px 0 63px;
    }

    .page-sustainable .sustain-01-lead {
        margin-top: 21px;
        font-size: 1.5rem;
        letter-spacing: 0;
        line-height: 22px;
    }

    .page-sustainable .sustain-01-text {
        margin-top: 20px;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    .page-sustainable .card-theme-list {
        margin-top: 25px;
    }

    .page-sustainable .sustain-01-closing {
        margin-top: 45px;
        font-size: 1.5rem;
        line-height: 22px;
        text-align: left;
    }

    .page-sustainable .sustain-02 {
        padding: 31px 0 60px;
    }

    .page-sustainable .sustain-02-main {
        margin-top: 26px;
    }

    .page-sustainable .sustain-02-main img {
        height: auto;
    }

    .page-sustainable .sustain-02-text {
        margin-top: 23px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    .page-sustainable .sustain-02 .note-text {
        margin-top: 20px;
    }

    .page-sustainable .sustain-02 .photo-pair {
        margin-top: 22px;
    }

    .page-sustainable .sustain-02-text-last {
        margin-top: 30px;
    }

    /*COMPONENT: CHART BOX (mobile: chart scrolls horizontally)*/
    .chart-box-title {
        font-size: 1.6rem;
    }

    .chart-box {
        margin: 12px -8px 0;
        border-radius: 8px;
    }

    .chart-box-inner {
        padding: 0 0 18px;
    }

    .chart-box-inner img {
        width: 600px;
        max-width: none;
    }

    /*COMPONENT: JOB ACC (mobile)*/
    .job-acc + .job-acc {
        margin-top: 19px;
    }

    .job-acc-hd {
        gap: 34px;
        min-height: 60px;
        padding: 8px 50px 8px 17px;
    }

    .job-acc-thumb {
        width: 62px;
    }

    .job-acc-title {
        font-size: 1.65rem;
        letter-spacing: 0.03em;
    }

    .job-acc-en {
        margin-top: 5px;
        font-size: 0.75rem;
    }

    .job-acc-btn {
        right: 18px;
        width: 18px;
        height: 18px;
    }

    .job-acc-body {
        flex-direction: column;
        align-items: center;
        gap: 0;
        padding: 19px 0 6px;
    }

    .job-acc-img {
        width: 195px;
    }

    .job-acc-text {
        margin: 22px 0 0;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    /*PAGE WORK (mobile)*/
    .page-work .sub-visual-title {
        top: 95px;
    }

    .page-work .sub-visual-title .block-title-en {
        font-size: 3.4rem;
    }

    .page-work .work-text,
    .page-work .work-text-bold {
        margin-top: 22px;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    .page-work .chart-box-title {
        margin-top: 45px;
    }

    .page-work .work-01 {
        padding: 60px 0 48px;
    }

    .page-work .work-02 {
        padding: 55px 0 60px;
    }

    .page-work .work-03 {
        padding: 50px 0 60px;
    }

    .page-work .job-acc-list {
        margin-top: 30px;
    }

    /*COMPONENT: FILTER BOX (mobile: stacked selects, centered chips)*/
    .filter-box {
        border-radius: 10px;
    }

    .filter-box-top {
        flex-direction: column;
        gap: 11px;
        padding: 25px 25px 23px;
    }

    .filter-select {
        gap: 18px;
    }

    .filter-select-label {
        flex-shrink: 0;
        font-size: 1.5rem;
        white-space: nowrap;
    }

    .filter-select select {
        width: 100%;
        height: 43px;
        padding-left: 20px;
        font-size: 1.5rem;
        background-size: 13px auto;
        background-position: right 15px center;
    }

    .filter-box-bottom {
        flex-direction: column;
        gap: 12px;
        padding: 22px 25px 28px;
    }

    .filter-box-label {
        font-size: 1.5rem;
    }

    .filter-chip-list {
        justify-content: center;
        gap: 8px;
    }

    .filter-chip {
        height: 30px;
        padding: 0 14px;
        font-size: 1.3rem;
    }

    /*COMPONENT: INTERVIEW GRID (mobile: 2 columns)*/
    .interview-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px 34px;
        padding-left: 16px;
    }

    .interview-grid .card-interview-img .label-vertical {
        top: -9px;
        right: 4px;
        padding: 5px 3px;
        font-size: 1rem;
    }

    .interview-grid .card-interview-catch {
        top: 0;
        left: -16px;
        gap: 4px;
    }

    .interview-grid .card-interview-catch span {
        padding: 3px 1px;
        font-size: 0.88rem;
        line-height: 1.15;
    }

    .interview-grid .card-interview-info {
        margin-top: 16px;
        padding: 0 0 10px 0;
    }

    .interview-grid .card-interview-name {
        font-size: 2rem;
    }

    .interview-grid .card-interview-name small {
        margin-left: 2px;
        font-size: 1.2rem;
    }

    .interview-grid .card-interview-office {
        margin-top: 5px;
        font-size: 1.2rem;
    }

    .interview-grid .card-interview-info .icon-arrow {
        top: 0;
        right: 0;
        bottom: auto;
        width: 42px;
        height: 20px;
        background-size: 18px auto;
    }

    /*COMPONENT: PAGER (mobile)*/
    .pager {
        gap: 26px;
    }

    .pager-arrow {
        width: 50px;
        height: 25px;
        margin: 0;
        background-size: 18px auto;
    }

    .pager-num {
        min-width: 14px;
        font-size: 1.5rem;
    }

    .pager-num.is-current::before {
        width: 34px;
        height: 25px;
    }

    /*COMPONENT: TITLE OFFICE / OFFICE LINK LIST (mobile)*/
    .title-office-en {
        font-size: 3.2rem;
    }

    .title-office-ja {
        margin-top: 8px;
        font-size: 1.5rem;
    }

    .office-link-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .office-link {
        height: 40px;
        font-size: 1.3rem;
    }

    /*COMPONENT: OFFICE ACC (mobile: JA over EN, stacked body)*/
    .office-acc + .office-acc {
        margin-top: 15px;
    }

    .office-acc-hd {
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        height: 65px;
        padding: 0 60px 0 20px;
    }

    .office-acc-title {
        width: auto;
        font-size: 1.7rem;
    }

    .office-acc-en {
        margin-top: 5px;
        font-size: 1rem;
    }

    .office-acc-btn {
        right: 20px;
        width: 25px;
        height: 25px;
    }

    .office-acc-btn::before {
        top: 6px;
        left: 8px;
        width: 8px;
        height: 8px;
    }

    .office-acc.toggle-open .office-acc-btn::before {
        top: 10px;
    }

    .office-acc-body {
        margin-top: 16px;
        padding: 32px 18px 28px;
    }

    .office-acc-top {
        flex-direction: column;
        gap: 25px;
    }

    .office-acc-img {
        width: 205px;
        margin: 0 auto;
    }

    .office-acc-feature {
        width: 100%;
    }

    .office-acc-text {
        margin-top: 13px;
        font-size: 1.35rem;
        letter-spacing: 0.08em;
        line-height: 23px;
    }

    .office-acc-body > .title-square {
        margin: 33px 0 0;
    }

    .title-square {
        gap: 10px;
        padding-bottom: 9px;
        font-size: 1.5rem;
    }

    .title-square::before {
        width: 10px;
        height: 10px;
    }

    .num-box-list {
        grid-template-columns: 1fr;
        gap: 32px;
        margin-left: 0;
        padding-top: 34px;
    }

    .num-box {
        min-height: 0;
        padding: 30px 18px 20px;
        border-radius: 5px;
    }

    .num-box-no {
        top: -17px;
        left: 18px;
        width: 60px;
        padding-bottom: 4px;
        font-size: 3rem;
    }

    .num-box-text {
        font-size: 1.35rem;
        letter-spacing: 0.05em;
        line-height: 22px;
    }

    .access-box {
        flex-direction: column;
        align-items: stretch;
        margin: 32px 0 0;
        padding: 10px 17px 18px;
    }

    .access-box-label {
        align-self: flex-start;
        margin: 0;
        padding-right: 12px;
        font-size: 1.6rem;
        line-height: 18px;
    }

    .access-box-address {
        margin-top: 8px;
        font-size: 1.3rem;
        line-height: 20px;
    }

    .btn-map {
        width: 225px;
        height: 45px;
        margin: 15px auto 0;
        font-size: 1.3rem;
    }

    /*PAGE INTERVIEW (mobile)*/
    .page-interview .interview-01 {
        padding: 25px 0 50px;
    }

    .page-interview .interview-01-band {
        top: 120px;
        height: 760px;
        border-radius: 50% 50% 50% 50% / 25px 25px 40px 40px;
    }

    .page-interview .interview-grid {
        margin-top: 30px;
    }

    .page-interview .pager {
        margin-top: 45px;
    }

    .page-interview .interview-02 {
        padding: 40px 0 60px;
    }

    .page-interview .office-link-list {
        margin-top: 22px;
    }

    .page-interview .office-acc-list {
        margin-top: 28px;
    }

    /*COMPONENT: PROFILE BAR (mobile: stacked)*/
    .label-tag {
        min-width: 52px;
        height: 25px;
        font-size: 1.2rem;
    }

    .profile-bar-inner {
        display: block;
        min-height: 0;
        padding: 12px 0 22px;
    }

    .profile-bar-office {
        display: flex;
        align-items: center;
        gap: 12px;
        width: 50%;
        padding-bottom: 12px;
        border-bottom: 1px solid #C9C9C9;
        text-align: left;
    }

    .profile-bar-office-name {
        margin: 0;
        font-size: 1.3rem;
    }

    .profile-bar-person {
        margin: 0;
        padding: 18px 0 0;
        border-left: 0;
    }

    .profile-bar-dept {
        font-size: 1.3rem;
    }

    .profile-bar-name {
        margin: 2px 0 4px;
        font-size: 2.9rem;
    }

    .profile-bar-name small {
        margin-left: 10px;
        font-size: 1.3rem;
    }

    .profile-bar-join {
        margin-left: 50px;
        font-size: 1.1rem;
    }

    .profile-bar-origin {
        font-size: 1.1rem;
    }

    /*COMPONENT: QA ITEM (mobile: A no + quote in a row, photo below text)*/
    .qa-item,
    .qa-item-wide {
        min-height: 0;
    }

    .qa-item-body,
    .qa-item-reverse .qa-item-body,
    .qa-item-wide .qa-item-body {
        width: auto;
        margin: 0;
    }

    .qa-item-q {
        height: 60px;
        padding-left: 0;
        border-top-width: 1px;
        border-bottom-width: 1px;
    }

    .qa-item-q-no {
        padding-right: 22px;
        font-size: 2.7rem;
        line-height: 30px;
    }

    .qa-item-q-title {
        margin-left: 16px;
        font-size: 1.3rem;
    }

    .qa-item-a {
        display: grid;
        grid-template-columns: 62px 1fr;
        padding: 20px 0 0;
    }

    .qa-item-a-no {
        font-size: 2.7rem;
    }

    .qa-item-quote {
        margin: 0;
        padding: 0 22px 0 31px;
        font-size: 1.4rem;
        letter-spacing: 0.1em;
        line-height: 20px;
    }

    .qa-item-quote::before,
    .qa-item-quote::after {
        font-size: 4rem;
    }

    .qa-item-quote::before {
        top: -2px;
    }

    .qa-item-quote::after {
        bottom: -28px;
    }

    .qa-item-text {
        grid-column: 1 / -1;
        margin-top: 25px;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    .qa-item-img {
        position: static;
        width: auto;
        margin: 18px -25px 0 25px;
    }

    .qa-item-reverse .qa-item-img {
        margin: 18px 25px 0 -25px;
    }

    /*COMPONENT: SCHEDULE LIST (mobile: 1 column)*/
    .schedule-list {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .schedule-col {
        gap: 8px;
    }

    .schedule-col::before {
        top: 20px;
        bottom: 20px;
        left: 32px;
        border-left-width: 1px;
    }

    .schedule-col:first-child::before {
        bottom: -8px;
    }

    .schedule-item {
        gap: 13px;
    }

    .schedule-item-time {
        width: 64px;
        font-size: 1.5rem;
    }

    .schedule-item-text {
        min-height: 42px;
        padding: 6px 15px;
        font-size: 1.2rem;
        line-height: 15px;
    }

    /*COMPONENT: MESSAGE BOX (mobile: title, photo half over the blue band, text)*/
    .message-box {
        display: flex;
        flex-direction: column;
    }

    .message-box-title {
        order: -1;
    }

    .message-box-img {
        position: relative;
        width: 160px;
        margin: 22px auto -105px;
    }

    .message-box-title {
        height: auto;
        margin: 0;
    }

    .message-box-title .title-office-ja {
        font-size: 1.5rem;
    }

    .message-box-body {
        margin: 0 -25px;
        padding: 125px 25px 40px;
    }

    .message-box-body p {
        font-size: 1.35rem;
        line-height: 25px;
    }

    /*COMPONENT: BOX LIFE (mobile)*/
    .box-life {
        flex-direction: column;
        gap: 0;
        padding: 28px 22px 25px;
        border-radius: 25px;
    }

    .box-life::after {
        top: 3px;
        left: 3px;
        right: -4px;
        bottom: -4px;
        border-radius: 25px;
    }

    .box-life-body {
        display: contents;
    }

    .box-life-body .title-office-ja {
        margin-top: 8px;
        font-size: 1.5rem;
    }

    .box-life-body .title-office::after {
        width: 92px;
        height: 2px;
        margin-top: 16px;
        background: repeating-linear-gradient(90deg, #9E005D 0 4px, transparent 4px 7px);
    }

    .box-life-img {
        order: 1;
        width: 160px;
        margin: 18px auto 0;
    }

    .box-life-text {
        order: 2;
        margin-top: 18px;
        font-size: 1.35rem;
        line-height: 25px;
    }

    /*COMPONENT: SLIDER CENTER (mobile)*/
    .slider-center-item {
        width: 205px;
    }

    .slider-center-item .card-interview {
        width: 165px;
    }

    .slider-center .card-interview-img .label-vertical {
        top: -9px;
        right: 4px;
        padding: 5px 3px;
        font-size: 1rem;
    }

    /*PAGE INTERVIEW DETAIL (mobile)*/
    .page-interview-detail .ivd-top {
        margin-top: 40px;
        padding-bottom: 0;
    }

    .page-interview-detail .ivd-top::before {
        display: none;
    }

    .page-interview-detail .ivd-head {
        padding: 0 0 20px;
    }

    .page-interview-detail .ivd-head-en {
        font-size: 1.3rem;
    }

    .page-interview-detail .ivd-head-title {
        margin-top: 10px;
        font-size: 2.4rem;
        letter-spacing: 0;
        line-height: 31px;
    }

    .page-interview-detail .ivd-hero img {
        height: 137px;
    }

    .page-interview-detail .profile-bar {
        border-top: 1px solid #C9C9C9;
    }

    .page-interview-detail .ivd-01 {
        padding: 38px 0 48px;
    }

    .page-interview-detail .qa-item + .qa-item,
    .page-interview-detail .qa-item-wide + .qa-item {
        margin-top: 22px;
    }

    .page-interview-detail .ivd-02 {
        padding: 28px 0 30px;
    }

    .page-interview-detail .ivd-02-bg {
        bottom: 150px;
    }

    .page-interview-detail .ivd-02 .title-office-en,
    .page-interview-detail .ivd-03 .title-office-en,
    .page-interview-detail .ivd-04 .title-office-en {
        font-size: 3.4rem;
    }

    .page-interview-detail .schedule-list {
        margin-top: 22px;
    }

    .page-interview-detail .ivd-03 {
        padding-top: 50px;
    }

    .page-interview-detail .ivd-04 {
        padding-top: 38px;
    }

    .page-interview-detail .ivd-05 {
        margin-top: 85px;
        padding-bottom: 47px;
        background: linear-gradient(to bottom, #fff 0, #fff 175px, #F4F4F4 175px);
    }

    .page-interview-detail .ivd-05 .title-office-en {
        font-size: 3.1rem;
    }

    .page-interview-detail .slider-center {
        margin-top: 25px;
    }

    .page-interview-detail .ivd-05 .slider-progress {
        margin-top: 28px;
    }

    .page-interview-detail .ivd-05 .btn-view-more {
        margin-top: 40px;
    }

    /*COMPONENT: ANCHOR LIST (mobile: keep 1 column with wrap)*/
    .anchor-list {
        gap: 22px;
    }

    /*COMPONENT: TITLE LEAF SM (mobile)*/
    .title-leaf-sm {
        gap: 10px;
        padding-bottom: 10px;
        font-size: 1.6rem;
    }

    /*COMPONENT: ACC BOX (mobile)*/
    .acc-box + .acc-box {
        margin-top: 30px;
    }

    .acc-box-hd {
        gap: 18px;
        height: 60px;
        padding: 0 50px 0 18px;
        border-width: 1px;
        border-radius: 5px;
    }

    .acc-box-icon {
        width: 36px;
    }

    .acc-box-title {
        font-size: 1.5rem;
    }

    .acc-box-btn {
        right: 18px;
        width: 20px;
        height: 20px;
    }

    .acc-box-body {
        padding-top: 20px;
    }

    .acc-box-body > .title-leaf {
        margin-top: 25px;
    }

    /*COMPONENT: JOB INTRO (mobile: stacked)*/
    .job-intro {
        flex-direction: column;
        gap: 0;
    }

    .job-intro-img {
        width: 100%;
    }

    .job-intro-lead {
        margin-top: 16px;
        font-size: 1.5rem;
        letter-spacing: 0;
    }

    .job-intro-text {
        margin-top: 15px;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    /*COMPONENT: POINT LIST (mobile)*/
    .point-list {
        margin-top: 17px;
    }

    .point-list-item + .point-list-item {
        margin-top: 22px;
    }

    .point-list-title {
        gap: 10px;
        height: 40px;
        padding: 0 12px;
        border-radius: 7px;
        font-size: 1.4rem;
    }

    .point-list-title::before {
        width: 11px;
        height: 11px;
    }

    .point-list-text {
        margin: 10px 0 0 12px;
        font-size: 1.3rem;
    }

    /*COMPONENT: BOX SENPAI (mobile: photo on top)*/
    .box-senpai {
        margin-top: 30px;
        padding: 18px 17px 25px;
        border-width: 1px;
    }

    .box-senpai .title-leaf {
        margin-left: 0;
    }

    .box-senpai-main {
        flex-direction: column;
        gap: 0;
        margin-top: 17px;
    }

    .box-senpai-img {
        width: 143px;
        margin: 0 auto;
    }

    .box-senpai-title {
        margin-top: 15px;
        font-size: 1.5rem;
    }

    .box-senpai-name {
        font-size: 1.3rem;
    }

    .box-senpai-text {
        margin-top: 15px;
        font-size: 1.3rem;
        font-weight: 500;
        line-height: 24px;
    }

    /*COMPONENT: FLOW LIST (mobile: stacked cards pointing down, ground below)*/
    .flow-area {
        padding-bottom: 0;
    }

    .flow-list {
        flex-direction: column;
        gap: 8px;
        margin: 0;
    }

    .flow-card {
        position: relative;
        z-index: 1;
        width: auto;
        height: auto;
        padding: 16px 18px 50px;
        border-radius: 8px 8px 0 0;
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 45px), 50% 100%, 0 calc(100% - 45px));
    }

    .flow-card-label {
        width: 132px;
        height: 30px;
        margin: 0 auto;
        font-size: 1.3rem;
    }

    .flow-card-text {
        max-width: none;
        margin: 10px 0 0;
        letter-spacing: 0;
        font-size: 1.25rem;
        font-weight: 400;
        line-height: 20px;
    }

    .flow-ground {
        position: relative;
        top: 0;
        display: block;
        width: auto;
        margin: -55px -25px 0;
    }

    /*COMPONENT: ENV BOX (mobile: 2 columns)*/
    .env-box + .env-box {
        margin-top: 21px;
    }

    .env-box-title {
        padding: 6px 0;
        font-size: 1.5rem;
    }

    .env-box-list {
        grid-template-columns: repeat(2, 115px);
        gap: 20px 40px;
        padding: 16px 0 15px;
    }

    .env-box-icon {
        height: 76px;
        border-radius: 5px;
    }

    .env-box-icon img {
        width: 100px;
    }

    .env-box-label {
        margin-top: 8px;
        font-size: 1.1rem;
        letter-spacing: 0;
    }

    /*PAGE HIGHSCHOOL (mobile)*/
    .page-highschool .sub-visual-title {
        top: 95px;
    }

    .page-highschool .sub-visual-title .block-title-en {
        font-size: 3rem;
    }

    .page-highschool .hs-text {
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    .page-highschool .hs-01 {
        padding-top: 50px;
    }

    .page-highschool .hs-01-main {
        min-height: 0;
        margin-top: 22px;
    }

    .page-highschool .hs-01-body {
        width: auto;
        padding: 0;
    }

    .page-highschool .hs-01-lead {
        margin-bottom: 10px;
        font-size: 1.6rem;
        letter-spacing: 0;
    }

    .page-highschool .hs-01-body .hs-text {
        line-height: 25px;
    }

    .page-highschool .hs-01-img {
        position: static;
        width: auto;
        margin: 20px -25px 0;
    }

    .page-highschool .hs-02 {
        padding-top: 55px;
    }

    .page-highschool .hs-02 .acc-box:first-child {
        margin-top: 22px;
    }

    .page-highschool .hs-03 {
        padding-top: 55px;
    }

    .page-highschool .flow-area {
        margin-top: 25px;
        padding-bottom: 0;
    }

    .page-highschool .hs-04 {
        padding-top: 50px;
    }

    .page-highschool .hs-04 .hs-text {
        margin: 22px 0 25px;
    }

    .page-highschool .hs-05 {
        padding: 55px 0 60px;
    }

    .page-highschool .hs-05-main {
        flex-direction: column;
        gap: 18px;
        margin-top: 22px;
    }

    .page-highschool .hs-05-img {
        width: 100%;
    }

    /*COMPONENT: CARD ICON TEXT (mobile: 1 column)*/
    .card-icon-text-list {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .card-icon-text {
        gap: 16px;
        padding: 12px 20px 14px 12px;
        border-radius: 5px;
    }

    .card-icon-text-icon {
        width: 50px;
    }

    .card-icon-text-title {
        margin-top: 0;
        font-size: 1.4rem;
    }

    .card-icon-text-text {
        margin-top: 4px;
        font-size: 1.3rem;
        letter-spacing: 0.02em;
        line-height: 18px;
    }

    /*COMPONENT: BOX COMMENT / BALLOON (mobile: stacked balloons)*/
    .box-comment {
        padding: 22px 17px 10px;
        border-radius: 5px;
    }

    .box-comment-title {
        font-size: 1.5rem;
    }

    .box-comment-list {
        grid-template-columns: 1fr;
        margin-top: 25px;
    }

    .balloon {
        min-height: 0;
        margin-bottom: 92px;
        padding: 20px 18px 22px;
    }

    .balloon-label {
        top: -8px;
        left: 10px;
        padding: 0 6px;
        font-size: 1.15rem;
        line-height: 14px;
    }

    .balloon::after {
        left: 136px;
        height: 25px;
    }

    .balloon-lead {
        font-size: 1.35rem;
        line-height: 20px;
    }

    .balloon-text {
        margin-top: 10px;
        font-size: 1.3rem;
        letter-spacing: 0;
        line-height: 20px;
    }

    .balloon-avatar {
        top: calc(100% - 15px);
        left: auto;
        right: 15px;
        width: 92px;
    }

    /*PAGE ENVIRONMENT (mobile)*/
    .page-environment .sub-visual-title {
        top: 95px;
    }

    .page-environment .sub-visual-title .block-title-en {
        font-size: 3.4rem;
    }

    .page-environment .env-text {
        margin: 25px 0 20px;
        font-size: 1.35rem;
        font-weight: 500;
        line-height: 25px;
    }

    .page-environment .box-comment {
        margin-top: 45px;
    }

    .page-environment .env-01 {
        padding: 38px 0 60px;
    }

    .page-environment .env-02 {
        padding: 48px 0 60px;
    }

    .page-environment .env-02 .section-line {
        right: 0;
        width: 50%;
    }

    /*COMPONENT: RECRUIT BOX (mobile)*/
    .recruit-box {
        padding: 18px 18px 20px;
        border-radius: 8px;
    }

    .recruit-box + .recruit-box {
        margin-top: 20px;
    }

    .recruit-box-head {
        gap: 10px;
    }

    .recruit-box-title {
        flex-shrink: 0;
        gap: 8px;
        font-size: 1.6rem;
        line-height: 24px;
    }

    .recruit-box-title::before {
        width: 15px;
        height: 16px;
    }

    .recruit-box-en {
        font-size: 0.8rem;
        letter-spacing: 0;
        white-space: nowrap;
    }

    .recruit-box-body {
        margin-top: 18px;
        padding: 14px 18px 16px;
        border-radius: 5px;
    }

    .recruit-box-body .news-row {
        min-height: 0;
    }

    /*COMPONENT: NEWS ROW (mobile: date + tag on top, text below)*/
    .news-row {
        flex-wrap: wrap;
    }

    .news-list .news-row,
    .news-list > li:first-child .news-row {
        min-height: 0;
        padding: 18px 15px 17px;
    }

    .news-row-date {
        width: 103px;
        font-size: 1.2rem;
    }

    .news-row-tag {
        width: 93px;
        height: 21px;
        font-size: 1.1rem;
    }

    .news-row-text {
        display: -webkit-box;
        width: 100%;
        margin: 10px 0 0;
        font-size: 1.3rem;
        line-height: 17px;
        white-space: normal;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    /*COMPONENT: TITLE GRAD (mobile)*/
    .title-grad {
        padding: 0 20px;
        font-size: 1.4rem;
        line-height: 36px;
    }

    /*PAGE RECRUIT (mobile)*/
    /* opaque banner: scale to the full 190px height so no gradient seam shows */
    .page-recruit .sub-visual-bg {
        left: -128px;
        width: 573px;
    }

    .page-recruit .sub-visual-title {
        top: 68px;
    }

    .page-recruit .sub-visual-title .block-title-en {
        font-size: 3.4rem;
    }

    .page-recruit .rec-01 {
        padding: 50px 0 65px;
    }

    .page-recruit .rec-01 .recruit-box:first-child {
        margin-top: 25px;
    }

    .page-recruit .rec-02 {
        padding: 37px 0 55px;
    }

    .page-recruit .rec-02 .section-line {
        width: 50%;
    }

    .page-recruit .rec-news {
        margin-top: 30px;
    }

    .page-recruit .rec-news + .rec-news {
        margin-top: 38px;
    }

    .page-recruit .rec-news .news-list {
        margin: 0;
    }

    .page-recruit .rec-more {
        margin: 25px 0 0;
        text-align: center;
    }

    /*COMPONENT: BUTTON VIEW MORE JA (mobile)*/
    .btn-view-more-ja {
        font-size: 1.4rem;
    }

    /*COMPONENT: POST META (mobile)*/
    .post-meta {
        gap: 14px;
    }

    .post-meta-date {
        font-size: 1.2rem;
    }

    .post-meta-tag {
        width: 90px;
        height: 20px;
        font-size: 1.1rem;
    }

    /*COMPONENT: BOX FRAME (mobile: wider than the 25px gutter)*/
    .box-frame {
        margin-right: -13px;
        margin-left: -13px;
        padding: 15px 13px 25px;
        border-radius: 8px;
    }

    .box-frame .title-leaf {
        font-size: 1.6rem;
        letter-spacing: 0.05em;
    }

    .box-frame-note {
        margin-left: 6px;
        font-size: 1rem;
    }

    /*COMPONENT: REQ TABLE (mobile: label bar on top, text below)*/
    .req-table {
        margin-top: 16px;
    }

    .req-table-row {
        flex-direction: column;
        gap: 0;
    }

    .req-table-row + .req-table-row {
        margin-top: 0;
    }

    .req-table-th {
        width: auto;
        padding: 0 18px;
        font-size: 1.5rem;
        letter-spacing: 0.05em;
        line-height: 35px;
    }

    .req-table-td {
        min-height: 0;
        padding: 10px 5px 12px 18px;
        border-bottom: 0;
        font-size: 1.35rem;
        letter-spacing: 0;
        line-height: 22px;
    }

    .req-table-td p + p {
        margin-top: 12px;
    }

    .req-table-small {
        font-size: 1.1rem;
        line-height: 18px;
    }

    .req-table-pay {
        grid-template-columns: 80px auto;
    }

    /*COMPONENT: RESULT LIST (mobile: 1 column, year on the left)*/
    .result-list {
        grid-template-columns: 1fr;
        gap: 10px;
        margin: 17px 10px 0;
    }

    .result-card {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 70px;
        padding: 0 22px 0 20px;
    }

    .result-card-year {
        font-size: 1.4rem;
    }

    .result-card-data {
        gap: 10px;
        margin: 0;
    }

    .result-card-data div {
        width: 65px;
    }

    .result-card-data dt {
        height: 26px;
        font-size: 1.2rem;
        line-height: 26px;
    }

    .result-card-data dd {
        margin-top: 2px;
        font-size: 1.2rem;
        line-height: 18px;
    }

    /*COMPONENT: SCHOOL ACC (mobile)*/
    .school-acc {
        margin-top: 28px;
    }

    .school-acc-hd {
        padding: 0 50px 0 20px;
        font-size: 1.4rem;
        line-height: 44px;
    }

    .school-acc-hd::before,
    .school-acc-hd::after {
        right: 15px;
        width: 21px;
    }

    .school-acc-cont {
        padding: 12px 10px 0;
        font-size: 1.25rem;
        letter-spacing: 0;
        line-height: 22.5px;
    }

    /*COMPONENT: STEP LIST (mobile: horizontal bars stacked, arrows down)*/
    .step-list {
        flex-direction: column;
        gap: 30px;
        margin: 20px 10px 0;
    }

    .step-list-item {
        align-items: center;
        width: auto;
        justify-content: center;
        height: 40px;
        padding: 0;
        font-size: 1.3rem;
        writing-mode: horizontal-tb;
    }

    .step-list-item br {
        display: none;
    }

    .step-list-item + .step-list-item::before {
        top: -24px;
        left: calc(50% - 8px);
        width: 16px;
        height: 18px;
        transform: rotate(90deg);
    }

    /*COMPONENT: BANNER ENTRY (mobile)*/
    .banner-entry {
        padding: 15px 20px 23px;
        border-radius: 8px;
    }

    .banner-entry-en {
        font-size: 4.6rem;
        line-height: 50px;
    }

    .banner-entry-title {
        margin-top: -20px;
        font-size: 1.6rem;
        line-height: 24px;
    }

    .banner-entry .btn-view-more {
        width: 235px;
        margin-top: 17px;
    }

    /*COMPONENT: FORM ENTRY (mobile: label above the field)*/
    .form-intro {
        margin: 18px 4px 0;
        font-size: 1.3rem;
        line-height: 22px;
    }

    .form-list {
        margin-top: 15px;
        padding: 0 4px;
    }

    .form-row {
        flex-direction: column;
    }

    .form-row + .form-row {
        margin-top: 38px;
    }

    .form-row-noted + .form-row {
        margin-top: 62px;
    }

    .form-label {
        gap: 9px;
        width: auto;
        padding: 0 0 10px;
        font-size: 1.5rem;
        font-weight: 500;
    }

    .form-badge {
        width: 39px;
        height: 22px;
        font-size: 1.3rem;
    }

    .form-field {
        width: 100%;
    }

    .form-input,
    .form-select {
        height: 40px;
        font-size: 1.4rem;
    }

    .form-input-short {
        width: 100%;
    }

    .form-select {
        padding: 0 45px 0 12px;
        background-position: right 15px center;
        background-size: 16px 11px;
        font-weight: 700;
    }

    .form-textarea {
        height: 140px;
        font-size: 1.4rem;
    }

    .form-note {
        top: calc(100% + 4px);
        font-size: 1.2rem;
    }

    .form-check {
        gap: 10px;
        height: 46px;
        padding: 0 8px;
        font-size: 1.4rem;
        font-weight: 700;
    }

    .form-check input {
        width: 20px;
        height: 20px;
    }

    .form-check input:checked {
        background: radial-gradient(circle, #1D4482 0 4px, #fff 5px);
    }

    .form-alert {
        margin-top: 25px;
        padding: 0 4px;
        font-size: 1.4rem;
        letter-spacing: 0;
        line-height: 23px;
        text-align: left;
    }

    .form-submit {
        margin-top: 20px;
    }

    .form-submit .btn-view-more {
        width: 220px;
    }

    /*COMPONENT: BOX POLICY (mobile)*/
    .box-policy-title {
        padding-bottom: 12px;
        font-size: 1.5rem;
        font-weight: 500;
    }

    .box-policy-text {
        margin-top: 12px;
        font-size: 1.25rem;
        letter-spacing: 0;
        line-height: 22px;
    }

    /*PAGE RECRUIT DETAIL (mobile)*/
    .page-recruit-detail .sub-visual-bg,
    .page-entry .sub-visual-bg {
        left: -128px;
        width: 573px;
    }

    .page-recruit-detail .sub-visual-title,
    .page-entry .sub-visual-title {
        top: 68px;
    }

    .page-recruit-detail .sub-visual-title .block-title-en,
    .page-entry .sub-visual-title .block-title-en {
        font-size: 3.4rem;
    }

    .page-recruit-detail .rd-01 {
        padding: 63px 0 60px;
    }

    .page-recruit-detail .rd-01 .title-bar {
        margin-top: 15px;
    }

    .page-recruit-detail .rd-01 .title-bar-inner {
        padding: 9px 0 9px 25px;
    }

    .page-recruit-detail .rd-01 .title-bar-ja {
        font-size: 1.6rem;
    }

    .page-recruit-detail .rd-text {
        margin-top: 25px;
        padding-right: 10px;
        font-size: 1.4rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    .page-recruit-detail .box-frame {
        margin-top: 28px;
    }

    .page-recruit-detail .rd-01 .box-frame:first-of-type {
        margin-top: 38px;
    }

    .page-recruit-detail .box-frame-blue {
        padding-bottom: 60px;
    }

    .page-recruit-detail .banner-entry {
        margin-top: 25px;
    }

    .page-recruit-detail .rd-back {
        margin-top: 21px;
        padding-top: 33px;
    }

    .page-recruit-detail .rd-back .btn-view-more {
        width: 220px;
    }

    .page-entry .entry-01 {
        padding: 40px 0 60px;
    }

    .page-entry .box-frame {
        padding: 15px 13px 25px;
    }

    .page-entry .box-frame .title-leaf {
        font-size: 1.5rem;
        letter-spacing: 0.1em;
    }

    .page-entry .box-policy {
        margin: 45px 0 0;
    }

    /*COMPONENT: TEL BOX (mobile: cards stacked)*/
    .tel-box {
        padding: 33px 22px 30px;
        border-radius: 8px;
    }

    .tel-box::before {
        top: -16px;
        left: calc(50% - 18px);
        width: 38px;
        height: 37px;
    }

    .tel-box-title {
        font-size: 1.5rem;
    }

    .tel-box-list {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-top: 16px;
    }

    .tel-card-head {
        font-size: 1.5rem;
        font-weight: 500;
        line-height: 32px;
    }

    .tel-card-body {
        margin-top: 8px;
        padding: 12px 5px 14px;
    }

    .tel-card-num {
        gap: 7px;
        font-size: 2.3rem;
        line-height: 28px;
    }

    .tel-card-num::before {
        width: 22px;
        height: 24px;
    }

    .tel-card-note {
        font-size: 1.2rem;
        font-weight: 500;
        letter-spacing: 0;
    }

    .tel-card-time {
        margin-top: 6px;
        font-size: 1.3rem;
        line-height: 18px;
    }

    .tel-card-fax {
        margin-top: 8px;
        font-size: 1.4rem;
    }

    /*COMPONENT: POLICY (mobile)*/
    .policy-title {
        padding-bottom: 12px;
        font-size: 1.6rem;
    }

    .policy-text,
    .policy-list li {
        font-size: 1.4rem;
        letter-spacing: 0;
        line-height: 25px;
    }

    .policy-title + .policy-text {
        margin-top: 17px;
    }

    .policy-head {
        gap: 8px;
        margin-top: 38px;
        padding-bottom: 8px;
        font-size: 1.5rem;
    }

    .policy-head-num {
        font-size: 1.9rem;
    }

    .policy-head + .policy-text {
        margin-top: 17px;
    }

    .policy-list {
        margin-top: 17px;
        padding: 0;
    }

    .policy-list-kana {
        width: 34px;
    }

    /*PAGE CONTACT (mobile)*/
    .page-contact .sub-visual-bg {
        left: -128px;
        width: 573px;
    }

    .page-contact .sub-visual-title {
        top: 85px;
    }

    .page-contact .sub-visual-title .block-title-en {
        font-size: 3.6rem;
    }

    .page-contact .ct-01 {
        padding: 50px 0 55px;
    }

    .page-contact .tel-box {
        margin-top: 38px;
    }

    .page-contact .ct-02 {
        padding: 37px 0 60px;
    }

    .page-contact .ct-02 .section-line {
        width: 50%;
    }

    .page-contact .policy-title {
        margin-top: 30px;
    }

    /*MOBILE MENU (drawer: light blue gradient + faint A mark)*/
    .home a.menu-btn,
    a.menu-btn.open {
        background-color: #1D4482;
    }

    body.menu-open .header-main .logo img {
        filter: none;
    }

    .header-main .main-menu,
    .header-overlay .header-main .main-menu {
        padding: 80px 0 0;
        background: linear-gradient(to bottom, #DCE7F1 0%, #fff 60%);
    }

    .header-main .main-menu::after {
        top: auto;
        right: -60px;
        bottom: -20px;
        left: auto;
        width: 420px;
        height: 340px;
        background: url(../img/index/icon-header.svg) no-repeat right bottom / contain;
        opacity: 0.12;
        transform: none;
    }

    nav.navbar.nav-main {
        padding: 10px 20px 80px 25px;
    }

    .header-wrapper .header-main .main-menu .nav>li {
        padding: 0;
        text-align: left;
    }

    .header-wrapper .header-main .main-menu .nav>li.nav-home {
        display: none;
    }

    .header-wrapper .header-main .main-menu .nav>li>a,
    .header-wrapper .header-main .main-menu .toggle-hd {
        min-height: 62px;
        padding: 0 40px 0 10px;
        border-bottom: 1px solid #8FA1C0;
        color: #1D4482;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-size: 1.6rem;
        font-weight: 700;
        letter-spacing: 0.03em;
        cursor: pointer;
    }

    /* chevron > on plain items */
    .header-wrapper .header-main .main-menu .nav>li>a::after {
        right: 14px;
        left: auto;
        bottom: auto;
        width: 9px;
        height: 9px;
        border-top: 1px solid #1D4482;
        border-right: 1px solid #1D4482;
        background: none;
        transform: translateY(-50%) rotate(45deg);
    }

    /* magenta box with v / ^ on the accordion item */
    .header-wrapper .header-main .main-menu .toggle-hd::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 10px;
        width: 20px;
        height: 20px;
        margin-top: -10px;
        background: #9E005D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 10px 6px;
        transition: transform .3s;
    }

    .header-wrapper .header-main .main-menu .toggle-hd.active::after {
        transform: rotate(180deg);
    }

    .header-main .main-menu .mega-menu {
        position: static;
        width: 100%;
        min-width: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: none;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        z-index: auto;
    }

    .nav-sub-list {
        padding: 13px 0 25px;
    }

    .nav-sub-list li a {
        position: relative;
        padding: 0 50px 0 10px;
        color: #333;
        font-size: 1.4rem;
        font-weight: 500;
        line-height: 50px;
    }

    .nav-sub-list li a::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 10px;
        width: 17px;
        height: 8px;
        margin-top: -4px;
        background: url(../img/index/arrow-right-blue.svg) no-repeat center / contain;
    }

    .nav-sub-bar {
        display: flex;
        flex-direction: column;
        width: 215px;
        margin-top: 43px;
    }

    .nav-sub-link {
        display: flex;
        align-items: center;
        gap: 12px;
        height: 62px;
        padding: 0 10px;
        border-bottom: 1px solid #8FA1C0;
        color: #1D4482;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-size: 1.6rem;
        font-weight: 700;
        letter-spacing: 0.03em;
    }

    .nav-sub-link-icon {
        flex-shrink: 0;
        width: 21px;
        height: 16px;
    }

    .nav-sub-link-corporate {
        justify-content: space-between;
    }

    .nav-sub-link-corporate .nav-sub-link-icon {
        width: 20px;
        height: 20px;
        color: #9E005D;
    }

    /*LOADING (mobile)*/
    .loading-title {
        font-size: 2rem;
        line-height: 44px;
    }

    .loading-title-lg {
        font-size: 3rem;
    }

    .loading-logo {
        width: 200px;
        margin-top: 55px;
    }

    /*FOOTER (mobile: navy block with white logo, offices, corporate button)*/
    .footer-wrap {
        display: none;
    }

    .footer-bottom {
        padding: 26px 0 28px;
        background-color: #1D4482;
    }

    .footer-bottom .container {
        padding: 0 42px;
    }

    .footer-main {
        flex-direction: column;
        align-items: stretch;
    }

    .footer-logo img {
        width: 278px;
        margin: 0 auto;
        filter: brightness(0) invert(1);
    }

    .footer-office-list {
        flex-direction: column;
        gap: 23px;
        margin-top: 37px;
    }

    .footer-office-label {
        width: 57px;
        margin: 0 15px 0 5px;
        color: #fff;
        font-size: 1.3rem;
        line-height: 17.5px;
    }

    .footer-office-body {
        padding-left: 17px;
        border-left: 1px solid rgba(255, 255, 255, 0.6);
    }

    .footer-office-body p {
        color: #fff;
        font-weight: 400;
        font-size: 1.3rem;
        letter-spacing: 0.06em;
        line-height: 17.5px;
    }

    .footer-office-key {
        width: 38px;
    }

    .btn-footer-corporate {
        width: 100%;
        height: 50px;
        margin-top: 26px;
        padding: 0 17px 0 18px;
        border: 1px solid rgba(255, 255, 255, 0.6);
        background: none;
        font-size: 1.5rem;
        font-weight: 500;
    }

    .btn-footer-corporate-icon {
        width: 23px;
        height: 23px;
    }

    .footer-copyright {
        margin-top: 47px;
        text-align: center;
    }

    .footer-copyright p {
        color: #fff;
        font-family: "Syncopate", sans-serif;
        font-size: 0.85rem;
        font-weight: 400;
        letter-spacing: 0.06em;
    }

    #go-top {
        right: 16px;
    }

    #go-top.show {
        right: 16px;
        bottom: 16px;
        border-radius: 4px;
    }

    #go-top a.btn-go-top {
        gap: 7px;
        width: 38px;
        height: 55px;
        font-size: 0.75rem;
        font-weight: 400;
    }

    #go-top .btn-go-top-icon {
        width: 9px;
        height: 17px;
    }

    /*INDEX (mobile)*/
    .home .container {
        padding-right: 25px;
        padding-left: 25px;
    }

    .home .block-title-en {
        font-size: 4.4rem;
    }

    .home .block-title-ja {
        font-size: 1.6rem;
    }

    .home .box-lead {
        padding: 0;
        background: none;
    }

    .home .box-lead::before {
        display: none;
    }

    .home .box-lead p {
        font-size: 1.4rem;
        letter-spacing: 0.02em;
        line-height: 22.5px;
    }

    /*MAIN VISUAL (mobile: vertical catch copy, pick up box under the photo)*/
    .main-visual {
        padding-bottom: 150px;
        background: #F9F9F9 url(../img/index/bg-header.png) no-repeat center 545px / 720px auto;
    }

    .main-visual-inner {
        height: 550px;
    }

    .main-visual-slide img {
        height: 550px;
        object-position: 62% center;
    }

    .main-visual-slider .slick-dots {
        display: none !important;
    }

    .main-visual-icon {
        top: 300px;
        right: -50px;
        width: 330px;
    }

    .main-visual-text {
        top: 80px;
        left: 25px;
    }

    .main-visual-title {
        font-size: 3.1rem;
        letter-spacing: 0.02em;
        line-height: 52px;
        writing-mode: vertical-rl;
    }

    .main-visual-title-lg {
        font-size: 4.4rem;
    }

    .main-visual-en {
        top: 534px;
        left: 30px;
        font-size: 3.4rem;
    }

    .main-visual-pickup {
        top: 611px;
        right: 17px;
        left: 17px;
        width: auto;
        height: 68px;
        padding: 23px 15px 0 21px;
        box-shadow: 0 5px 12px rgba(9, 42, 94, 0.08);
    }

    .main-visual-pickup-label {
        top: -8px;
        left: 13px;
        padding: 0 12px;
        font-family: "Syncopate", sans-serif;
        font-size: 1.1rem;
        line-height: 18px;
    }

    .main-visual-pickup-date {
        width: 96px;
        font-family: "Syncopate", sans-serif;
        font-size: 1rem;
        letter-spacing: 0;
        line-height: 17px;
    }

    .main-visual-pickup-text {
        font-size: 1.2rem;
        line-height: 17px;
    }

    .main-visual-pickup-nav {
        left: 21px;
        bottom: 12px;
        gap: 13px;
    }

    .main-visual-pickup-arrow {
        width: 32px;
        height: 16px;
        background-size: 13px auto;
    }

    /*INDEX 01 (mobile: title + toggle button, story opens below)*/
    .index-01-bg-line {
        display: none;
    }

    /* SP bg images (exported @2x): blocks behind the title, and behind the 2nd photo */
    .index-01-bg-mb {
        top: 33px;
        left: calc(50% - 112px);
        width: 223px;
    }

    .index-01-img-01,
    .index-01-img-02 {
        position: relative;
    }

    /* blue blocks at the right of the 1st photo (PC right bg, scaled down) */
    .index-01-img-01::before {
        content: "";
        position: absolute;
        top: -20px;
        left: 148px;
        z-index: -1;
        width: 151px;
        height: 354px;
        background: url(../img/index/bg-index-01-right.png) no-repeat 0 0 / contain;
        pointer-events: none;
    }

    .index-01-img-02::before {
        content: "";
        position: absolute;
        top: -159px;
        left: -81px;
        z-index: -1;
        width: 234px;
        height: 309px;
        background: url(../img/index/bg-index-01-mb-right.png) no-repeat 0 0 / contain;
        pointer-events: none;
    }

    .index-01-inner {
        padding: 66px 25px 120px;
    }

    .index-01-title {
        margin: 0;
        font-size: 1.6rem;
        letter-spacing: 0.1em;
        line-height: 28px;
        text-align: center;
        background: linear-gradient(110deg, #9E005D 0%, #9E005D 45%, #1D4482 70%, #9E005D 100%);
        -webkit-background-clip: text;
        background-clip: text;
    }

    .index-01-btn {
        position: relative;
        display: flex;
        align-items: center;
        width: 275px;
        height: 47px;
        margin: 17px auto 0;
        padding: 0 40px 0 30px;
        border: 0;
        border-radius: 6px;
        background-color: #fff;
        box-shadow: 0 5px 14px rgba(9, 42, 94, 0.12);
        color: #333;
        font-family: "Noto Sans JP", sans-serif;
        font-size: 1.4rem;
        font-weight: 500;
        letter-spacing: 0.02em;
        white-space: nowrap;
        cursor: pointer;
    }

    .index-01-btn::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 15px;
        width: 15px;
        height: 15px;
        margin-top: -7px;
        background: #9E005D url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/svg%3E") no-repeat center / 8px 5px;
        transition: transform .3s;
    }

    .index-01-btn.active::after {
        transform: rotate(180deg);
    }

    .index-01-cont {
        display: block;
        margin-top: 0;
        margin-right: 0;
        padding-top: 18px;
    }

    .index-01-text p {
        white-space: normal;
        font-size: 1.3rem;
        letter-spacing: 0.035em;
        line-height: 25px;
    }

    .index-01-img-01 {
        width: 240px;
        margin: 32px 0 0 35px;
    }

    .index-01-img-02 {
        width: 240px;
        margin: 22px 0 0 35px;
    }

    .index-01-text-left {
        margin-top: 24px;
    }

    .index-01-text-right {
        margin-top: 59px;
    }

    /*INDEX 02 (mobile)*/
    .index-02.pt-65 {
        padding: 38px 0 38px;
    }

    .index-02-head,
    .index-02-body {
        display: block;
    }

    .index-02-head .box-lead {
        width: auto;
        margin-top: 30px;
    }

    .index-02-body {
        margin-top: 15px;
    }

    .index-02-body .card-feature {
        width: calc(100% + 40px);
        margin-left: -20px;
    }

    .card-feature-text {
        gap: 13px;
    }

    .card-feature-title {
        font-size: 1.6rem;
    }

    .card-feature .icon-arrow {
        width: 40px;
        height: 21px;
        background-size: 16px auto;
    }

    .index-02-cards {
        gap: 10px;
        width: auto;
        margin-top: 8px;
    }

    .card-link {
        gap: 18px;
        padding: 7px 10px;
        border-radius: 4px;
    }

    .card-link-img {
        width: 79px;
        border-radius: 3px;
    }

    .card-link-title {
        padding-right: 50px;
        font-size: 1.35rem;
        letter-spacing: 0.02em;
        line-height: 1.45;
    }

    .card-link .icon-arrow {
        top: 50%;
        right: 16px;
        bottom: auto;
        width: 35px;
        height: 18px;
        margin-top: -9px;
        background-size: 14px auto;
    }

    .index-02 .mt-55 {
        margin-top: 28px;
    }

    /*INDEX 03 (mobile)*/
    .index-03 .slider-loop-item {
        width: 115px;
        margin-right: 7px;
    }

    .index-03-main.pt-90 {
        padding: 48px 0 22px;
        background-size: auto 100%;
    }

    .index-03 .block-title-en {
        font-size: 5rem;
    }

    .index-03-lead {
        margin: 33px 25px 0;
        font-size: 1.3rem;
        letter-spacing: 0.04em;
        line-height: 22.5px;
        text-align: left;
    }

    .index-03-lead br {
        display: none;
    }

    .index-03-list {
        gap: 18px;
        margin-top: 30px;
    }

    .index-03-row-01,
    .index-03-row-03 {
        margin-left: 0;
    }

    .media-row {
        position: relative;
        gap: 0;
    }

    .card-num {
        width: 210px;
        min-height: 95px;
        padding: 14px 15px 10px 20px;
    }

    .card-num-head {
        display: block;
        padding-bottom: 0;
        border-bottom: 0;
    }

    .card-num-no {
        display: inline-block;
        padding-right: 15px;
        border-right-color: #1D4482;
        font-size: 2.3rem;
        line-height: 1;
    }

    .card-num-title {
        display: block;
        margin-top: 8px;
        padding: 0 0 5px;
        border-bottom: 1px solid #1D4482;
        font-size: 1.35rem;
        letter-spacing: 0.02em;
        line-height: 1.3;
    }

    .card-num-text {
        display: none;
    }

    .card-num .icon-arrow {
        top: 52px;
        right: auto;
        left: 138px;
        z-index: 2;
        width: 40px;
        height: 20px;
        background-size: 16px auto;
    }

    .media-row-img {
        position: absolute;
        top: 10px;
        right: 0;
        left: auto;
        width: 163px;
        margin: 0;
    }

    .media-row-reverse .card-num {
        margin-left: auto;
        padding: 14px 15px 10px 80px;
    }

    .media-row-reverse .card-num-title {
        margin-right: -10px;
    }

    .media-row-reverse .media-row-img {
        top: 10px;
        right: auto;
        left: 0;
    }

    .media-row-reverse .card-num .icon-arrow {
        left: 32px;
        right: auto;
    }

    .index-03-row-02 .media-row-img {
        margin-top: 0;
    }

    .index-03 .mt-60 {
        margin-top: 28px;
    }

    .index-03 .btn-view-more {
        border-color: #fff;
        box-shadow: 0 5px 14px rgba(9, 42, 94, 0.15);
    }

    /*INDEX 04 (mobile)*/
    .index-04.pt-165 {
        padding: 75px 0 50px;
    }

    .index-04-bg-left {
        top: 520px;
        left: -60px;
        width: 200px;
    }

    .index-04-bg-right {
        top: 250px;
        left: auto;
        right: -150px;
        width: 260px;
    }

    .index-04 .slider-interview {
        margin-top: 30px;
    }

    .slider-interview .slick-list {
        height: 323px;
    }

    .slider-interview-item {
        width: 220px;
    }

    .slider-interview-item .card-interview {
        width: 140px;
    }

    .slider-interview-item.is-pos-0 .card-interview {
        width: 204px;
    }

    .slider-interview-item.is-pos-1 {
        transform: translateY(56px);
    }

    .slider-interview-item.is-pos-2 {
        transform: translateY(80px);
    }

    .card-interview-img .label-vertical {
        top: -10px;
        right: 7px;
        padding: 6px 4px;
        font-size: 1.2rem;
    }

    .card-interview-catch {
        top: -10px;
        left: -18px;
        gap: 4px;
    }

    .card-interview-catch span {
        padding: 4px 2px;
        font-size: 1.25rem;
        letter-spacing: 0;
    }

    .card-interview-info {
        margin-top: 15px;
        padding-bottom: 10px;
    }

    .card-interview-name {
        font-size: 1.6rem;
    }

    .card-interview-name small {
        margin-left: 6px;
        font-size: 1rem;
    }

    .card-interview-office {
        margin-top: 6px;
        font-size: 1.1rem;
    }

    .card-interview-info .icon-arrow {
        right: 2px;
        bottom: 15px;
        width: 40px;
        height: 20px;
        background-size: 16px auto;
    }

    .index-04 .slider-progress {
        margin-top: 25px;
    }

    .index-04 .mt-45 {
        margin-top: 30px;
    }

    /*INDEX 05 (mobile)*/
    .index-05.pt-65 {
        padding: 38px 0 37px;
    }

    .index-05-head {
        display: block;
    }

    .index-05-head .block-title-en {
        font-size: 4.6rem;
    }

    .index-05-head-left .mt-35 {
        display: none;
    }

    .index-05-head .box-lead {
        width: auto;
        margin-top: 30px;
        padding: 0;
    }

    .index-05-body {
        height: auto;
        margin-top: 25px;
    }

    .index-05-img {
        position: static;
        width: auto;
        margin: 0 18px 0 -25px;
        border-radius: 0 6px 6px 0;
    }

    .index-05-img img {
        height: 200px;
        object-fit: cover;
    }

    .index-05-body .btn-circle {
        top: 16px;
        left: auto;
        right: -8px;
        width: 125px;
        height: 125px;
    }

    .btn-circle-icon {
        width: 35px;
    }

    .btn-circle-text {
        margin-top: 4px;
        font-size: 1.3rem;
        line-height: 1.35;
    }

    .btn-circle .icon-arrow {
        margin-top: 7px;
        width: 30px;
        height: 15px;
        background-size: 12px auto;
    }

    .index-05-body .link-grid {
        position: static;
        flex-wrap: wrap;
        width: auto;
        margin-top: 25px;
    }

    .link-grid-item {
        flex: 0 0 50%;
        min-height: 66px;
        padding: 15px 12px 22px 13px;
    }

    .link-grid-item + .link-grid-item {
        border-left: 0;
    }

    .link-grid-item:nth-child(even) {
        border-left: 1px solid #0071BC;
    }

    .link-grid-item:nth-child(n+3) {
        border-top: 1px solid #0071BC;
    }

    .link-grid-title {
        font-size: 1.25rem;
        letter-spacing: 0.06em;
        line-height: 1.35;
    }

    .link-grid-item .icon-arrow {
        right: 0;
        bottom: 0;
        width: 36px;
        height: 18px;
        background-size: 14px auto;
    }

    .link-grid-item.is-active {
        background-color: #fff;
        color: #0071BC;
    }

    .link-grid-item.is-active .icon-arrow-white {
        background-color: #0071BC;
        background-image: url(../img/index/arrow-right.svg);
    }

    /*INDEX 06 (mobile)*/
    .index-06.pt-105 {
        padding-top: 45px;
    }

    .index-06-bg-right {
        top: -70px;
        left: auto;
        right: -40px;
        width: 140px;
    }

    .index-06-bg-left {
        top: auto;
        bottom: -100px;
        left: 0;
        width: 180px;
    }

    .index-06 .block-title-en {
        font-size: 3.6rem;
    }

    .index-06-head {
        display: flex;
        flex-direction: column;
    }

    .index-06-head > div:first-child {
        display: contents;
    }

    .index-06-head .block-title {
        order: 1;
    }

    .index-06-head .box-lead {
        order: 2;
        width: auto;
        margin-top: 30px;
        padding: 0;
    }

    .index-06-head .mt-35 {
        order: 3;
        margin-top: 25px;
        text-align: center;
    }

    .index-06-links {
        gap: 10px;
        margin: 30px 0 -16px;
    }

    .card-icon-link {
        flex: 1;
        flex-direction: column;
        justify-content: center;
        gap: 7px;
        width: auto;
        height: 130px;
        padding: 0 5px;
    }

    .card-icon-link-icon {
        width: 45px;
    }

    .card-icon-link-title {
        flex: none;
        font-size: 1.35rem;
        letter-spacing: 0.02em;
    }

    .card-icon-link .icon-arrow {
        width: 36px;
        height: 18px;
        background-size: 14px auto;
    }

    .index-06-img img {
        height: 200px;
    }

    /*INDEX 07 (mobile)*/
    .index-07 {
        padding: 90px 0 85px;
        background: linear-gradient(to bottom, #F6F6F6 0, #EBEBEB 100px, #fff 101px) #fff;
    }

    .index-07 .block-title-en {
        font-size: 3.6rem;
    }

    .index-07-bg {
        top: auto;
        bottom: 160px;
        left: auto;
        right: -60px;
        width: 180px;
    }

    .index-07-news {
        flex-direction: column;
        gap: 24px;
        margin-top: 30px;
    }

    .index-07-news .news-tab-card {
        width: auto;
    }

    .news-tab-card-label {
        min-width: 105px;
        padding: 3px 21px 2px;
        border-radius: 4px 4px 0 0;
        font-size: 1.4rem;
        font-weight: 500;
    }

    .news-tab-card-body {
        min-height: 75px;
        padding: 11px 17px;
        border-radius: 0 6px 6px 6px;
    }

    .news-tab-card-meta {
        gap: 11px;
    }

    .news-tab-card-date {
        font-size: 1.2rem;
    }

    .news-tab-card-tag {
        min-width: 90px;
        height: 22px;
        font-size: 1.1rem;
        font-weight: 500;
    }

    .news-tab-card-text {
        margin-top: 7px;
        color: #333;
        font-size: 1.3rem;
    }

    .index-07-more {
        margin-top: 27px;
        text-align: center;
    }

    .index-07 .slider-loop-sm {
        margin-top: 40px;
    }

    .slider-loop-sm .slider-loop-item {
        width: 130px;
        margin-right: 6px;
    }

    .index-07 .banner-insta {
        margin-top: 47px;
    }

    .banner-insta {
        position: relative;
        flex-direction: column;
        height: 120px;
    }

    .banner-insta-body {
        position: relative;
        z-index: 1;
        padding: 12px 0 0 17px;
    }

    .banner-insta-head {
        gap: 9px;
    }

    .banner-insta-logo {
        width: 28px;
    }

    .banner-insta-title {
        font-size: 2.5rem;
    }

    .banner-insta-head .icon-arrow {
        margin-left: 4px;
        width: 30px;
        height: 15px;
        background-size: 12px auto;
    }

    .banner-insta-text {
        width: 100px;
        margin: 8px 0 0;
        color: #333;
        font-size: 1.1rem;
        letter-spacing: 0.04em;
        line-height: 15px;
    }

    .banner-insta-img {
        position: absolute;
        right: 0;
        bottom: 0;
        width: 195px;
        height: 63px;
    }
}
