/* Desktop text heroes; original pre-SEO mobile composition below. */
@media(min-width:1201px) {

    /* Text hero replacement. Loaded after existing page styles. */
    body .company-hero-art,
    body .business-hero-art,
    body .history-hero-art,
    body .access-hero-art,
    body .recruit-hero-art,
    body .rental-hero-art,
    body .first-forms-hero-art,
    body .works-hero-art {
        display: none !important;
    }

    body .company-hero,
    body .business-hero,
    body .history-hero,
    body .access-hero,
    body .recruit-hero,
    body .rental-hero,
    body .first-forms-hero,
    body .works-hero {
        position: relative;
        min-height: 0;
        height: auto;
        aspect-ratio: 2048/806;
        overflow: hidden;
        background: linear-gradient(105deg, #12345b, #020715 72%);
        color: white;
        isolation: isolate;
    }

    body .company-hero-copy,
    body .business-hero-copy,
    body .history-hero-copy,
    body .access-hero-copy,
    body .recruit-hero-copy,
    body .rental-hero-copy,
    body .first-forms-hero-copy,
    body .works-hero-copy {
        position: relative !important;
        inset: auto !important;
        clip: auto !important;
        clip-path: none !important;
        width: auto !important;
        height: auto !important;
        overflow: visible !important;
        white-space: normal !important;
        margin: 0 !important;
        padding: 13.5% 5.8% 6% !important;
        z-index: 2;
        box-sizing: border-box;
    }

    body .company-hero-copy h1,
    body .business-hero-copy h1,
    body .history-hero-copy h1,
    body .access-hero-copy h1,
    body .recruit-hero-copy h1,
    body .rental-hero-copy h1,
    body .first-forms-hero-copy h1,
    body .works-hero-copy h1 {
        font-family: Arial, sans-serif;
        font-size: clamp(66px, 9vw, 184px);
        font-style: italic;
        font-weight: 700;
        line-height: 1.08;
        letter-spacing: -.025em;
        margin: 28px 0 0;
    }

    body .company-hero-copy h1 span,
    body .business-hero-copy h1 span,
    body .history-hero-copy h1 span,
    body .access-hero-copy h1 span,
    body .recruit-hero-copy h1 span,
    body .rental-hero-copy h1 span,
    body .first-forms-hero-copy h1 span,
    body .works-hero-copy h1 span {
        display: block;
        font-family: Arial, "Noto Sans JP", sans-serif;
        font-size: clamp(25px, 2.7vw, 55px);
        font-style: normal;
        letter-spacing: .06em;
        line-height: 1.4;
        margin-top: 32px;
    }

    body .company-hero-copy>p,
    body .business-hero-copy>p,
    body .history-hero-copy>p,
    body .access-hero-copy>p,
    body .recruit-hero-copy>p,
    body .rental-hero-copy>p,
    body .first-forms-hero-copy>p,
    body .works-hero-copy>p {
        font-size: clamp(15px, 1.3vw, 27px);
        line-height: 1.55;
        letter-spacing: .06em;
        margin: 0;
        max-width: 90%;
    }

    body .company-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        background: url("images/hero-text/stage.png") center/100% 100% no-repeat;
        z-index: 0;
    }

    body .business-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        background: url("images/hero-text/lights.png") center/100% 100% no-repeat;
        z-index: 0;
    }

    body .recruit-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        background: url("images/hero-text/lights.png") center/100% 100% no-repeat;
        z-index: 0;
    }

    body .rental-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        background: url("images/hero-text/stage.png") center/100% 100% no-repeat;
        z-index: 0;
    }

    body .works-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        border-top-left-radius: 35% 65%;
        background: url("images/hero-text/entry.png") center/cover no-repeat;
        z-index: 0;
    }

    body .history-hero {
        background: linear-gradient(90deg, #081b39aa, transparent), url("images/hero-text/history.png") center/cover no-repeat;
    }

    body .access-hero {
        background: linear-gradient(90deg, #081b39aa, transparent), url("images/hero-text/access.png") center/cover no-repeat;
    }

    body .first-forms-page--contact .first-forms-hero {
        background: linear-gradient(90deg, #071832aa, transparent), url("images/hero-text/contact.webp") center/cover no-repeat;
    }

    body .first-forms-page--entry .first-forms-hero::before {
        content: "";
        position: absolute;
        inset: 16% 0 0 27%;
        border-top-left-radius: 35% 65%;
        background: url("images/hero-text/entry.png") center/cover no-repeat;
    }

    body .first-forms-hero-copy {
        padding-top: 11% !important;
    }

    body .first-forms-hero-copy>p {
        margin-top: 32px;
    }

    body.home .hero {
        height: auto;
        min-height: 680px;
        aspect-ratio: 2048/1100;
        background: linear-gradient(90deg, #000b, #0002), url("images/hero-text/top.jpg") center/cover no-repeat;
    }

    body.home .hero-art {
        display: none !important;
    }

    body.home .hero:before {
        display: none;
    }

    body.home .hero-copy {
        position: relative;
        inset: auto;
        width: auto;
        height: auto;
        clip: auto;
        clip-path: none;
        overflow: visible;
        white-space: normal;
        margin: 0;
        padding: 10% 8% 18%;
        color: #fff;
        z-index: 1;
    }

    body.home .hero-copy>p {
        font-size: clamp(17px, 2.5vw, 29px);
        line-height: 1.8;
        letter-spacing: 1px;
    }

    body.home .hero-copy h1 {
        font-size: clamp(48px, 5.8vw, 112px);
        line-height: 1.4;
        margin: 26px 0;
        font-weight: 700;
        letter-spacing: .05em;
    }

    body.home .hero-copy>.cyan {
        max-width: none;
        color: #4b94d6;
        font-size: 34px;
    }

    @media(max-width:767px) {

        body .company-hero,
        body .business-hero,
        body .history-hero,
        body .access-hero,
        body .recruit-hero,
        body .rental-hero,
        body .first-forms-hero,
        body .works-hero {
            aspect-ratio: auto;
            min-height: 460px;
        }

        body .company-hero-copy,
        body .business-hero-copy,
        body .history-hero-copy,
        body .access-hero-copy,
        body .recruit-hero-copy,
        body .rental-hero-copy,
        body .first-forms-hero-copy,
        body .works-hero-copy {
            padding: 100px 6% 55px !important;
        }

        body .company-hero-copy h1,
        body .business-hero-copy h1,
        body .history-hero-copy h1,
        body .access-hero-copy h1,
        body .recruit-hero-copy h1,
        body .rental-hero-copy h1,
        body .first-forms-hero-copy h1,
        body .works-hero-copy h1 {
            font-size: clamp(54px, 13vw, 90px);
            margin-top: 24px;
        }

        body .company-hero-copy h1 span,
        body .business-hero-copy h1 span,
        body .history-hero-copy h1 span,
        body .access-hero-copy h1 span,
        body .recruit-hero-copy h1 span,
        body .rental-hero-copy h1 span,
        body .first-forms-hero-copy h1 span,
        body .works-hero-copy h1 span {
            font-size: clamp(23px, 5.5vw, 34px);
            margin-top: 23px;
            letter-spacing: .02em;
        }

        body .company-hero-copy>p,
        body .business-hero-copy>p,
        body .history-hero-copy>p,
        body .access-hero-copy>p,
        body .recruit-hero-copy>p,
        body .rental-hero-copy>p,
        body .first-forms-hero-copy>p,
        body .works-hero-copy>p {
            font-size: 15px;
            max-width: 100%;
        }

        body .company-hero::before,
        body .business-hero::before,
        body .recruit-hero::before,
        body .rental-hero::before,
        body .first-forms-page--entry .first-forms-hero::before {
            inset: 15% 0 0 12%;
            opacity: .5;
            background-size: cover;
        }

        body.home .hero {
            aspect-ratio: auto;
            min-height: 720px;
        }

        body.home .hero-copy {
            padding: 130px 6% 230px;
        }

        body.home .hero-copy h1 {
            font-size: clamp(42px, 9vw, 64px);
        }

        body.home .hero-copy>p {
            font-size: 15px;
        }
    }

    body .works-hero-title {
        font: italic 700 clamp(66px, 9vw, 184px)/1.08 Arial, sans-serif;
        margin: 28px 0 0;
    }

    body .works-hero-title span {
        display: block;
        font: normal 700 clamp(25px, 2.7vw, 55px)/1.4 Arial, sans-serif;
        margin-top: 32px;
    }

    @media(max-width:767px) {
        body .works-hero-title {
            font-size: clamp(54px, 13vw, 90px);
        }

        body .works-hero-title span {
            font-size: 25px;
        }
    }

}

@media(max-width:1200px) {
    body .hero {
        min-height: 760px;
        height: 100svh;
        max-height: 940px;
        background: #000 url('images/top/top4.webp') right top/auto 100% no-repeat
    }

    body .hero:before {
        content: "";
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, #000e, #0003), linear-gradient(0deg, #000 0%, transparent 45%)
    }

    body .hero-art {
        display: none
    }

    body .hero-copy {
        position: relative;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip: auto;
        white-space: normal;
        border: 0
    }

    body .hero-copy {
        padding: 180px 6% 240px;
        z-index: 1
    }

    body .hero-copy>p:first-child {
        font-size: 14px;
        line-height: 2;
        letter-spacing: .02em
    }

    body .hero-copy h1 {
        font-size: clamp(40px, 10vw, 64px);
        line-height: 1.4;
        letter-spacing: .03em;
        margin: 26px 0 20px
    }

    body .hero-copy>.cyan {
        font-size: 16px;
        font-weight: bold;
        max-width: 290px;
        line-height: 1.8
    }

    body .hero-case {
        width: 190px;
        right: 6%;
        bottom: 35px;
        z-index: 1
    }

    body .hero-case>span {
        font-size: 10px
    }

    body .hero-case b {
        font-size: 28px
    }

    body .hero-copy {
        padding-top: 145px
    }

    body .company-hero {
        min-height: 445px;
        background: linear-gradient(90deg, #06142af2, #06142a66), url('images/company/hero.webp') right center / auto 100% no-repeat;
    }

    body .company-hero-art {
        display: none;
    }

    body .company-hero-copy {
        position: relative;
        width: auto;
        height: auto;
        margin: 0;
        clip: auto;
        white-space: normal;
        padding: 150px 7% 60px;
    }

    body .company-hero-copy>p {
        font-size: 14px;
        line-height: 1.9;
    }

    body .company-hero-copy h1 {
        font-size: clamp(48px, 12vw, 72px);
        font-style: italic;
        line-height: 1.2;
        margin-top: 24px;
    }

    body .company-hero-copy h1 span {
        display: block;
        font-size: 25px;
        font-style: normal;
        font-weight: 500;
        margin-top: 14px;
    }

    body .business-hero {
        min-height: 445px;
        background: linear-gradient(90deg, #06142af2, #06142a66), url('images/business/hero.webp') right center / auto 100% no-repeat;
    }

    body .business-hero-art {
        display: none;
    }

    body .business-hero-copy {
        position: relative;
        width: auto;
        height: auto;
        margin: 0;
        clip: auto;
        white-space: normal;
        padding: 150px 6% 65px;
    }

    body .business-hero-copy>p {
        font-size: 14px;
        line-height: 1.8;
    }

    body .business-hero-copy h1 {
        font-size: clamp(48px, 11.5vw, 72px);
        font-style: italic;
        line-height: 1.2;
        margin-top: 25px;
    }

    body .business-hero-copy h1 span {
        display: block;
        font-size: 25px;
        font-style: normal;
        font-weight: 500;
        margin-top: 14px;
    }

    body .history-hero {
        min-height: 440px;
        background: #07172d;
        overflow: hidden
    }

    body .history-hero-art {
        position: absolute;
        height: 100%;
        width: 100%;
        object-fit: cover;
        object-position: 100% center;
        opacity: .48
    }

    body .history-hero-copy {
        position: relative;
        clip-path: none;
        white-space: normal;
        overflow: visible;
        width: auto;
        height: auto;
        margin: 0;
        padding: 150px 7% 55px;
        text-shadow: 0 2px 14px #001025
    }

    body .history-hero-copy p {
        font-size: 16px;
        line-height: 1.8;
        margin: 0 0 24px
    }

    body .history-hero-copy h1 {
        font-size: clamp(56px, 13vw, 94px);
        font-style: italic;
        line-height: 1.1;
        margin: 0
    }

    body .history-hero-copy h1 span {
        display: block;
        font-size: 28px;
        font-style: normal;
        margin-top: 25px
    }

    body .access-hero {
        min-height: 390px;
        overflow: hidden;
        background: #071a37
    }

    body .access-hero-art {
        position: absolute;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
        opacity: .45
    }

    body .access-hero-copy {
        position: relative;
        width: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        clip-path: none;
        white-space: normal;
        padding: 145px 6% 65px;
        text-shadow: 0 2px 16px #001025
    }

    body .access-hero-copy p {
        font-size: 14px;
        line-height: 1.8;
        margin: 0 0 25px
    }

    body .access-hero-copy h1 {
        font-size: clamp(62px, 16vw, 94px);
        font-style: italic;
        line-height: 1.05;
        margin: 0
    }

    body .access-hero-copy h1 span {
        display: block;
        font-size: 28px;
        font-style: normal;
        margin-top: 24px
    }

    body .recruit-hero {
        min-height: 445px;
        overflow: hidden;
        background: #05132c
    }

    body .recruit-hero-art {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
        opacity: .4
    }

    body .recruit-hero-copy {
        position: relative;
        clip-path: none;
        overflow: visible;
        white-space: normal;
        width: auto;
        height: auto;
        margin: 0;
        padding: 145px 6% 65px
    }

    body .recruit-hero-copy p {
        font-size: 16px;
        line-height: 1.8;
        margin: 0 0 25px
    }

    body .recruit-hero-copy h1 {
        font-size: clamp(60px, 15vw, 95px);
        line-height: 1.05;
        font-style: italic;
        margin: 0
    }

    body .recruit-hero-copy h1 span {
        display: block;
        font-size: 28px;
        font-style: normal;
        margin-top: 26px
    }

    body .rental-hero {
        min-height: 440px;
        overflow: hidden
    }

    body .rental-hero-art {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
        opacity: .4
    }

    body .rental-hero-copy {
        position: relative;
        clip-path: none;
        width: auto;
        height: auto;
        margin: 0;
        white-space: normal;
        overflow: visible;
        padding: 150px 6% 60px
    }

    body .rental-hero-copy p {
        font-size: 15px;
        line-height: 1.8
    }

    body .rental-hero-copy h1 {
        font-size: 64px;
        font-style: italic;
        line-height: 1.1;
        margin: 25px 0 0
    }

    body .rental-hero-copy h1 span {
        display: block;
        font-size: 25px;
        font-style: normal;
        margin-top: 25px
    }

    body .first-forms-hero {
        min-height: 420px;
        overflow: hidden
    }

    body .first-forms-hero-art {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: right center;
        opacity: .38
    }

    body .first-forms-hero-copy {
        position: relative;
        clip-path: none;
        width: auto;
        height: auto;
        overflow: visible;
        white-space: normal;
        padding: 135px 6% 50px
    }

    body .first-forms-hero-copy h1 {
        font-size: 62px;
        line-height: 1.1;
        font-style: italic;
        margin: 0 0 25px
    }

    body .first-forms-hero-copy h1 span {
        font-size: 28px;
        display: block;
        font-style: normal;
        margin-top: 25px
    }

    body .first-forms-hero-copy p {
        font-size: 14px;
        line-height: 1.7;
        margin: 0
    }

    body .works-hero {
        min-height: 440px;
        background: #07152c url('images/works/hero.webp') right bottom / auto 100% no-repeat;
    }

    body .works-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(90deg, #041027f5, #03102488 70%, #02082033);
    }

    body .works-hero-art {
        display: none;
    }

    body .works-hero-copy {
        position: relative;
        width: auto;
        height: auto;
        margin: 0;
        clip: auto;
        white-space: normal;
        padding: 160px 6% 70px;
    }

    body .works-hero-copy h1,
    body .works-hero-title {
        font-size: 64px;
        font-style: italic;
        font-weight: bold;
        line-height: 1.2;
    }

    body .works-hero-copy span {
        display: block;
        font-size: 24px;
        font-style: normal;
        font-weight: 500;
        margin: 16px 0;
    }

    body .works-hero-copy>p:last-child {
        font-size: 15px;
    }

    body .service1-hero {
        min-height: 540px
    }

    body .service1-hero-copy {
        padding: 190px 0 80px 6%;
        width: 95%
    }

    body .service1-hero-copy h1 {
        font-size: 100px
    }

    body .service1-hero-copy h1 span {
        font-size: 34px
    }

    body .service1-hero-photo {
        height: 75%;
        width: 90%;
        opacity: .7
    }

    body .service1-hero {
        min-height: 420px
    }

    body .service1-hero-copy {
        padding: 150px 0 55px 6%
    }

    body .service1-hero-copy h1 {
        font-size: 72px
    }

    body .service1-hero-copy h1 span {
        font-size: 26px;
        margin-top: 25px
    }

    body .service1-hero-photo {
        height: 80%;
        width: 100%;
        object-fit: cover;
        object-position: right
    }

    /* Keep the original visual composition while allowing larger text to fit. */
    body .hero,
    body .company-hero,
    body .business-hero,
    body .history-hero,
    body .access-hero,
    body .recruit-hero,
    body .rental-hero,
    body .first-forms-hero,
    body .works-hero,
    body .service1-hero {
        height: auto;
        max-height: none;
        aspect-ratio: auto;
    }

    body .hero-copy,
    body .company-hero-copy,
    body .business-hero-copy,
    body .history-hero-copy,
    body .access-hero-copy,
    body .recruit-hero-copy,
    body .rental-hero-copy,
    body .first-forms-hero-copy,
    body .works-hero-copy,
    body .service1-hero-copy {
        box-sizing: border-box;
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}

/* Text-free background assets; retain approved mobile layout. */
@media(max-width:1200px) {
    body .hero {
        background-image: url('images/hero-text/top.jpg');
    }

    body .company-hero {
        background-image: linear-gradient(90deg, #06142af2, #06142a66), url('images/hero-text/stage.png');
    }

    body .business-hero {
        background-image: linear-gradient(90deg, #06142af2, #06142a66), url('images/hero-text/lights.png');
    }

    body .works-hero {
        background-image: url('images/hero-text/entry.png');
    }

    body .history-hero-art {
        display: none;
    }

    body .history-hero {
        isolation: isolate;
    }

    body .history-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url('images/hero-text/history.png') right center/cover no-repeat;
        opacity: .48;
        pointer-events: none;
        z-index: 0;
    }

    body .history-hero-copy {
        z-index: 1;
    }

    body .access-hero-art {
        display: none;
    }

    body .access-hero {
        isolation: isolate;
    }

    body .access-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url('images/hero-text/access.png') right center/cover no-repeat;
        opacity: .45;
        pointer-events: none;
        z-index: 0;
    }

    body .access-hero-copy {
        z-index: 1;
    }

    body .recruit-hero-art {
        display: none;
    }

    body .recruit-hero {
        isolation: isolate;
    }

    body .recruit-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url('images/hero-text/lights.png') right center/cover no-repeat;
        opacity: .4;
        pointer-events: none;
        z-index: 0;
    }

    body .recruit-hero-copy {
        z-index: 1;
    }

    body .rental-hero-art {
        display: none;
    }

    body .rental-hero {
        isolation: isolate;
    }

    body .rental-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: url('images/hero-text/stage.png') right center/cover no-repeat;
        opacity: .4;
        pointer-events: none;
        z-index: 0;
    }

    body .rental-hero-copy {
        z-index: 1;
    }

    body .first-forms-hero-art {
        display: none;
    }

    body .first-forms-hero {
        isolation: isolate;
    }

    body .first-forms-hero::before {
        content: '';
        position: absolute;
        inset: 0;
        opacity: .38;
        pointer-events: none;
        z-index: 0;
        background-position: right center;
        background-size: cover;
        background-repeat: no-repeat;
    }

    body .first-forms-page--contact .first-forms-hero::before {
        background-image: url('images/hero-text/contact.webp');
    }

    body .first-forms-page--entry .first-forms-hero::before {
        background-image: url('images/hero-text/entry.png');
    }

    body .first-forms-hero-copy {
        z-index: 1;
    }
}