.p-hero {
    background: #000;
    width: 100%;
    height: 110vh;
    position: relative
}

@media (width<=768px) {
    .p-hero {
        height: auto;
        min-height: 0;
        max-height: none
    }
}

.p-hero .p-hero__bg {
    z-index: 0;
    pointer-events: none;
    position: absolute;
    inset: 0
}

@media (width<=768px) {
    .p-hero .p-hero__bg {
        height: 520px;
        bottom: auto
    }
}

.p-hero .p-hero__bg .p-hero__bg-sky {
    object-fit: cover;
    object-position: center top;
    z-index: 1;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0
}

.p-hero .p-hero__bg .p-hero__red {
    object-fit: fill;
    object-position: left top;
    z-index: 2;
    width: 46.875%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0
}

@media (width<=768px) {
    .p-hero .p-hero__bg .p-hero__red {
        object-fit: fill;
        object-position: left top;
        width: 92%;
        height: 58%;
        left: -60px
    }
}

.p-hero .p-hero__bg .p-hero__bg-truck {
    object-fit: cover;
    object-position: right bottom;
    z-index: 3;
    width: 100%;
    position: absolute;
    bottom: -80px;
    left: 0
}

@media (width<=768px) {
    .p-hero .p-hero__bg .p-hero__bg-truck {
        object-fit: cover;
        object-position: 72% 12%;
        width: 100%;
        height: 100%;
        inset: 0
    }
}

.p-hero .p-hero__bg .p-hero__layer {
    object-fit: cover;
    z-index: 4;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0
}

@media (width<=768px) {
    .p-hero .p-hero__bg .p-hero__layer {
        display: none
    }
}

.p-hero .p-hero__bg .p-hero__shade {
    display: none
}

@media (width<=768px) {
    .p-hero .p-hero__bg .p-hero__shade {
        z-index: 5;
        background: linear-gradient(#0000 0%, #000000e6 30%, #000000c7 52%, #000 82% 100%);
        height: 62%;
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0
    }
}

.p-hero .p-hero__inner {
    z-index: 6;
    flex-direction: column;
    height: 100%;
    padding: 80px 40px 0 10%;
    display: flex;
    position: relative
}

@media (width<=768px) {
    .p-hero .p-hero__inner {
        height: auto;
        min-height: 0;
        padding: 0 0 40px
    }
}

.p-hero .p-hero__copy {
    max-width: 560px;
    padding: 0;
    position: relative
}

@media (width<=768px) {
    .p-hero .p-hero__copy {
        background: 0 0;
        width: 100%;
        max-width: none;
        min-height: 0;
        padding: 28px 20px 0
    }
}

.p-hero .p-hero__title {
    margin-bottom: 24px
}

.p-hero .p-hero__title img {
    width: 100%;
    max-width: 440px;
    height: auto
}

@media (width<=768px) {
    .p-hero .p-hero__title {
        margin-bottom: 16px
    }

    .p-hero .p-hero__title img {
        max-width: 75%
    }
}

.p-hero .p-hero__text {
    color: #fff;
    margin-bottom: 22px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.95
}

.p-hero .p-hero__text p+p {
    margin-top: 16px
}

@media (width<=768px) {
    .p-hero .p-hero__text {
        text-shadow: 0 1px 3px #00000073;
        flex-direction: column;
        margin-bottom: 0;
        font-size: 12px;
        font-weight: 500;
        line-height: 1.8;
        display: flex
    }

    .p-hero .p-hero__text p+p {
        margin-top: 0
    }

    .p-hero .p-hero__text .p-hero__text-lead {
        order: 1;
        margin-bottom: 16px;
        font-weight: 600
    }

    .p-hero .p-hero__text .p-hero__text-origin {
        order: 2;
        font-weight: 800
    }
}

.p-hero .p-hero__banner {
    max-width: 560px
}

.p-hero .p-hero__banner img {
    width: 100%;
    max-width: 551px;
    height: auto
}

@media (width<=768px) {
    .p-hero .p-hero__banner {
        z-index: 1;
        justify-content: flex-start;
        width: 100%;
        max-width: none;
        margin-top: 12px;
        padding: 0 16px 12px;
        display: flex;
        position: relative
    }

    .p-hero .p-hero__banner img {
        max-width: 94%
    }
}

.p-hero .p-hero__tiles {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    width: 38%;
    max-width: 720px;
    margin-top: 20px;
    display: grid;
    position: relative
}

@media (width<=768px) {
    .p-hero .p-hero__tiles {
        grid-template-columns: 1fr;
        gap: 8px;
        width: 100%;
        max-width: none;
        margin-top: 8px;
        padding: 0 20px
    }
}

.p-hero .p-hero__tile a {
    background: #414141;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    height: 88px;
    padding: 0 0 0 16px;
    transition: background .2s;
    display: flex
}

.p-hero .p-hero__tile a:hover {
    background: #2b2b2b
}

@media (width<=768px) {
    .p-hero .p-hero__tile a {
        background: #2b2b2b;
        border-radius: 6px;
        gap: 6px;
        height: 72px;
        padding-left: 14px;
        overflow: hidden
    }
}

.p-hero .p-hero__tile .p-hero__tile-text {
    color: #fff;
    flex: 1;
    min-width: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45
}

@media (width<=768px) {
    .p-hero .p-hero__tile .p-hero__tile-text {
        align-items: center;
        gap: 6px;
        font-size: 12px;
        display: flex
    }

    .p-hero .p-hero__tile .p-hero__tile-label {
        flex: 1;
        min-width: 0
    }
}

.p-hero .p-hero__tile .p-hero__tile-brand {
    font-family: Cinzel, serif;
    font-weight: 700
}

@media (width<=768px) {
    .p-hero .p-hero__tile .p-hero__tile-arrow-wrap {
        flex-shrink: 0;
        align-items: center;
        display: flex
    }
}

.p-hero .p-hero__tile .p-hero__tile-arrow {
    vertical-align: middle;
    width: 22px;
    height: 22px;
    margin-left: 8px;
    display: inline-block
}

@media (width<=768px) {
    .p-hero .p-hero__tile .p-hero__tile-arrow {
        width: 18px;
        height: 18px;
        margin-left: 0;
        display: block
    }
}

.p-hero .p-hero__tile .p-hero__tile-icon {
    flex-shrink: 0;
    width: 88px;
    height: 88px;
    display: block
}

.p-hero .p-hero__tile .p-hero__tile-icon img {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block
}

@media (width<=768px) {
    .p-hero .p-hero__tile .p-hero__tile-icon {
        width: 100px;
        height: 72px
    }
}

.c-section-head .c-section-head__label {
    color: #ff383c;
    margin-bottom: 8px;
    font-size: 18px;
    font-weight: 700
}

@media (width<=768px) {
    .c-section-head .c-section-head__label {
        margin-bottom: 4px;
        font-size: 12px
    }
}

.c-section-head .c-section-head__en,
.c-section-head .c-section-head__label--en {
    letter-spacing: .08em;
    font-family: Cinzel, serif
}

.c-section-head .c-section-head__label--bordered {
    color: #d63232;
    text-align: center;
    border: 1px solid #d63232;
    width: 130px;
    padding: 1px 12px;
    font-size: 16px;
    display: inline-block
}

.c-section-head .c-section-head__label--bordered+.c-section-head__title {
    font-size: 30px
}

.c-section-head .c-section-head__title {
    color: #242424;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.4
}

@media (width<=768px) {
    .c-section-head .c-section-head__title {
        font-size: 28px
    }
}

.c-section-head .c-section-head__accent {
    margin-top: 4px;
    font-family: Cinzel, serif;
    font-size: 48px;
    font-weight: 700;
    display: block
}

@media (width<=768px) {
    .c-section-head .c-section-head__accent {
        font-size: 24px
    }
}

.c-section-head.c-section-head--left {
    text-align: left
}

.c-section-head.c-section-head--center {
    text-align: center;
    margin-bottom: 40px
}

@media (width<=768px) {
    .c-section-head.c-section-head--center {
        margin-bottom: 28px
    }
}

.c-section-head.c-section-head--mid .c-section-head__label {
    color: #d63232
}

.c-section-head.c-section-head--inverse .c-section-head__label,
.c-section-head.c-section-head--inverse .c-section-head__title {
    color: #fff
}

.p-business {
    z-index: 1;
    padding: 200px 0 80px;
    position: relative
}

@media (width<=768px) {
    .p-business {
        padding: 48px 0
    }
}

.p-business .p-business__inner {
    grid-template-columns: 280px 1fr;
    align-items: start;
    gap: 48px 56px;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid
}

@media (width<=768px) {
    .p-business .p-business__inner {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 0 20px
    }
}

.p-business .p-business__list {
    flex-direction: column;
    gap: 16px;
    display: flex
}

@media (width<=768px) {
    .p-business .p-business__list {
        gap: 12px
    }
}

.p-business .p-business__card {
    border-radius: 6px;
    min-height: 280px;
    transition: opacity .2s;
    display: block;
    position: relative;
    overflow: hidden
}

.p-business .p-business__card:hover {
    opacity: .92
}

@media (width<=768px) {
    .p-business .p-business__card {
        border-radius: 8px;
        min-height: 0
    }
}

.p-business .p-business__card>picture {
    z-index: 0;
    position: absolute;
    inset: 0
}

.p-business .p-business__photo {
    object-fit: cover;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0
}

.p-business .p-business__content {
    z-index: 2;
    padding: 36px 96px 36px 36px;
    position: relative
}

@media (width<=768px) {
    .p-business .p-business__content {
        max-width: none;
        padding: 28px 24px 56px
    }
}

.p-business .p-business__card-title {
    color: #fff;
    margin-bottom: 12px;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.4
}

@media (width<=768px) {
    .p-business .p-business__card-title {
        margin-bottom: 10px;
        font-size: 22px;
        line-height: 1.35
    }
}

.p-business .p-business__tag {
    color: #fff;
    margin-bottom: 16px;
    padding: 6px 14px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    display: inline-block
}

@media (width<=768px) {
    .p-business .p-business__tag {
        margin-bottom: 14px;
        padding: 5px 10px;
        font-size: 12px
    }
}

.p-business .p-business__tag--green {
    background: #028b6c
}

.p-business .p-business__tag--blue {
    background: #0846b1
}

.p-business .p-business__tag--red {
    background: #a00
}

.p-business .p-business__tag--teal {
    background: #00c1ca
}

.p-business .p-business__text {
    color: #fff;
    font-size: 16px;
    line-height: 1.9
}

@media (width<=768px) {
    .p-business .p-business__text {
        margin-bottom: 20px;
        font-size: 13px;
        line-height: 1.75
    }
}

.p-business .p-business__arrow {
    z-index: 2;
    color: #fff;
    border: 1px solid #ffffffd9;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 44px;
    height: 44px;
    font-size: 18px;
    display: flex;
    position: absolute;
    top: 50%;
    bottom: auto;
    right: 28px;
    transform: translateY(-50%)
}

@media (width<=768px) {
    .p-business .p-business__arrow {
        width: 40px;
        height: 40px;
        font-size: 16px;
        top: auto;
        bottom: 20px;
        right: 16px;
        transform: none
    }
}

.p-character {
    z-index: 1;
    padding: 80px 0 120px;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-character {
        padding: 40px 0 64px
    }
}

.p-character .p-character__skyline {
    opacity: .6;
    pointer-events: none;
    z-index: 0;
    width: 100%;
    position: absolute;
    bottom: 0;
    left: 0
}

.p-character .p-character__skyline img {
    width: 100%;
    height: auto;
    display: block
}

@media (width<=768px) {
    .p-character .p-character__skyline {
        display: none
    }
}

.p-character .p-character__inner {
    z-index: 1;
    position: relative
}

@media (width<=768px) {
    .p-character .p-character__heading {
        text-align: left
    }
}

.p-character .p-character__body {
    grid-template-columns: 1fr 480px;
    grid-template-areas: "intro illust" "cards illust" "note illust";
    align-items: start;
    gap: 24px 40px;
    display: grid
}

@media (width<=768px) {
    .p-character .p-character__body {
        grid-template-columns: 1fr;
        grid-template-areas: "intro" "illust" "cards" "note";
        gap: 20px
    }
}

.p-character .p-character__intro {
    grid-area: intro
}

@media (width<=768px) {
    .p-character .p-character__intro {
        text-align: left
    }
}

.p-character .p-character__badge {
    color: #d63232;
    border: 1px solid #d63232;
    border-radius: 3px;
    margin-bottom: 14px;
    padding: 4px 14px;
    font-size: 16px;
    font-weight: 700;
    display: inline-block
}

@media (width<=768px) {
    .p-character .p-character__badge {
        margin-bottom: 10px;
        padding: 3px 10px;
        font-size: 12px
    }
}

.p-character .p-character__subtitle {
    color: #242424;
    margin-bottom: 12px;
    font-size: 30px;
    font-weight: 900;
    line-height: 1.4
}

@media (width<=768px) {
    .p-character .p-character__subtitle {
        margin-bottom: 10px;
        font-size: 22px
    }
}

.p-character .p-character__lead {
    color: #242424;
    margin-bottom: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.8
}

@media (width<=768px) {
    .p-character .p-character__lead {
        font-size: 13px;
        line-height: 1.75
    }
}

.p-character .p-character__lead .p-character__lead-highlight {
    font-family: Cinzel, serif;
    font-weight: 700
}

.p-character .p-character__cards {
    flex-direction: column;
    grid-area: cards;
    gap: 16px;
    margin: 0;
    display: flex
}

@media (width<=768px) {
    .p-character .p-character__cards {
        gap: 12px
    }
}

.p-character .p-character__card {
    background: #a00;
    border-radius: 6px;
    align-items: flex-start;
    gap: 16px;
    padding: 20px;
    display: flex
}

@media (width<=768px) {
    .p-character .p-character__card {
        border-radius: 8px;
        align-items: center;
        gap: 12px;
        padding: 16px
    }
}

.p-character .p-character__card>picture {
    flex-shrink: 0
}

.p-character .p-character__avatar {
    object-fit: cover;
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
    width: 110px;
    height: 110px;
    display: block
}

@media (width<=768px) {
    .p-character .p-character__avatar {
        width: 72px;
        height: 72px
    }
}

.p-character .p-character__card-body {
    min-width: 0
}

.p-character .p-character__name {
    color: #fff;
    margin-bottom: 6px;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4
}

@media (width<=768px) {
    .p-character .p-character__name {
        margin-bottom: 4px;
        font-size: 16px
    }
}

.p-character .p-character__desc {
    color: #fff;
    font-size: 16px;
    line-height: 1.8
}

@media (width<=768px) {
    .p-character .p-character__desc {
        font-size: 12px;
        line-height: 1.7
    }
}

.p-character .p-character__note {
    color: #242424;
    grid-area: note;
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.9
}

@media (width<=768px) {
    .p-character .p-character__note {
        font-size: 13px;
        line-height: 1.8
    }
}

.p-character .p-character__illust-col {
    grid-area: illust;
    justify-content: center;
    align-self: center;
    align-items: flex-end;
    min-height: 380px;
    display: flex;
    position: relative
}

@media (width<=768px) {
    .p-character .p-character__illust-col {
        min-height: 280px;
        margin: 8px 0 4px
    }
}

.p-character .p-character__illust-col>picture:not(.p-character__brush) {
    z-index: 1;
    align-items: flex-end;
    display: flex;
    position: relative
}

.p-character .p-character__brush {
    z-index: 0;
    pointer-events: none;
    width: 100%;
    max-width: 480px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

.p-character .p-character__brush img {
    width: 100%;
    height: auto;
    display: block
}

@media (width<=768px) {
    .p-character .p-character__brush {
        max-width: 340px
    }
}

.p-character .p-character__illust {
    z-index: 1;
    width: auto;
    height: 360px;
    position: relative
}

@media (width<=768px) {
    .p-character .p-character__illust {
        height: 220px
    }
}

.p-character .p-character__illust--kazedono {
    margin-right: -20px
}

@media (width<=768px) {
    .p-character .p-character__illust--kazedono {
        margin-right: -12px
    }
}

.p-character .p-character__illust--nia {
    height: 300px;
    margin-left: -20px
}

@media (width<=768px) {
    .p-character .p-character__illust--nia {
        height: 180px;
        margin-left: -12px
    }
}

.p-songs {
    background: linear-gradient(#00000008, #0000004d);
    padding: 60px 0 80px
}

@media (width<=768px) {
    .p-songs {
        background: linear-gradient(#0000, #0000004d);
        padding: 40px 0
    }
}

.p-songs .p-songs__grid {
    grid-template-columns: 1fr 1.8fr;
    align-items: flex-start;
    gap: 32px;
    display: grid
}

@media (width<=768px) {
    .p-songs .p-songs__grid {
        grid-template-columns: 1fr;
        gap: 24px
    }
}

.p-songs .p-songs__intro .c-section-head {
    margin-bottom: 16px
}

.p-songs .p-songs__text {
    color: #242424;
    font-size: 16px;
    line-height: 1.5
}

@media (width<=768px) {
    .p-songs .p-songs__text {
        font-size: 13px;
        line-height: 1.75
    }
}

.p-songs .p-songs__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    display: grid
}

@media (width<=768px) {
    .p-songs .p-songs__list {
        grid-template-columns: 1fr;
        gap: 8px
    }
}

.p-songs .p-songs__card {
    aspect-ratio: 2/3;
    border-radius: 6px;
    display: block;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-songs .p-songs__card {
        aspect-ratio: 686/200;
        border-radius: 8px;
        align-items: center;
        gap: 14px;
        padding: 0 16px;
        display: flex
    }
}

.p-songs .p-songs__card>picture {
    z-index: 0;
    position: absolute;
    inset: 0
}

@media (width<=768px) {
    .p-songs .p-songs__card>picture:after {
        content: "";
        pointer-events: none;
        background: #00000059;
        position: absolute;
        inset: 0
    }
}

.p-songs .p-songs__photo {
    object-fit: cover;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    inset: 0
}

.p-songs .p-songs__play {
    z-index: 1;
    color: #a00;
    background: #ffffffe6;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    padding-left: 3px;
    font-size: 16px;
    display: flex;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%)
}

@media (width<=768px) {
    .p-songs .p-songs__play {
        color: #000;
        background: #fff;
        flex-shrink: 0;
        width: 52px;
        height: 52px;
        padding-left: 4px;
        font-size: 18px;
        position: relative;
        top: auto;
        left: auto;
        transform: none
    }
}

.p-songs .p-songs__caption {
    z-index: 1;

    flex-direction: column;
    gap: 2px;
    padding: 16px 12px;
    display: flex;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0
}

@media (width<=768px) {
    .p-songs .p-songs__caption {
        background: 0 0;
        gap: 2px;
        min-width: 0;
        padding: 0;
        position: relative;
        bottom: auto;
        left: auto;
        right: auto
    }
}

.p-songs .p-songs__caption .p-songs__caption-title {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
}

@media (width<=768px) {
    .p-songs .p-songs__caption .p-songs__caption-title {
        font-size: 16px
    }
}

.p-songs .p-songs__caption .p-songs__caption-sub {
    color: #fff;
    font-weight: 700;
    font-size: 18px;
    line-height: 1.4;
    text-align: center;
}

.p-songs .p-songs__caption .p-songs__caption-sub.sub-sm {
    font-size: 10px;
}

@media (width<=768px) {
    .p-songs .p-songs__caption .p-songs__caption-sub {
        opacity: 1;
        font-size: 12px
    }
}

.p-data {
    background: #fff;
    padding: 80px 0
}

@media (width<=768px) {
    .p-data {
        padding: 48px 0
    }

    .p-data .p-data__head {
        text-align: left;
        margin-bottom: 24px
    }
}

.p-data .p-data__dot {
    vertical-align: middle;
    background: #d63232;
    border-radius: 50%;
    width: 6px;
    height: 6px;
    margin-right: 8px;
    display: inline-block
}

@media (width<=768px) {
    .p-data .p-data__dot {
        width: 5px;
        height: 5px;
        margin-right: 6px
    }
}

.p-data .p-data__stats {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 20px;
    display: grid
}

@media (width<=768px) {
    .p-data .p-data__stats {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-bottom: 10px
    }
}

.p-data .p-data__stat {
    background: #f8f8f8;
    border-radius: 0;
    padding: 24px
}

@media (width<=768px) {
    .p-data .p-data__stat {
        padding: 18px 16px
    }
}

.p-data .p-data__stat .p-data__stat-label {
    color: #242424;
    margin-bottom: 16px;
    font-size: 18px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__stat .p-data__stat-label {
        margin-bottom: 8px;
        font-size: 13px
    }
}

.p-data .p-data__stat .p-data__stat-row {
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    display: flex
}

.p-data .p-data__stat .p-data__stat-row>picture {
    flex-shrink: 0
}

.p-data .p-data__stat .p-data__stat-value {
    color: #d63232;
    font-family: Poppins, sans-serif;
    font-size: 100px;
    font-weight: 600;
    line-height: 1
}

@media (width<=768px) {
    .p-data .p-data__stat .p-data__stat-value {
        font-size: 72px
    }
}

.p-data .p-data__stat .p-data__stat-value>span:not(.p-data__stat-kanji) {
    color: #242424;
    margin-left: 4px;
    font-family: Noto Sans JP, sans-serif;
    font-size: 36px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__stat .p-data__stat-value>span:not(.p-data__stat-kanji) {
        margin-left: 2px;
        font-size: 22px
    }
}

.p-data .p-data__stat .p-data__stat-value .p-data__stat-kanji {
    font-family: Noto Sans JP, sans-serif;
    font-size: inherit;
    color: inherit;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__stat .p-data__stat-value .p-data__stat-kanji {
        font-size: 58px;
        display: inline-block;
        transform: translateY(-5px)
    }
}

.p-data .p-data__stat .p-data__stat-icon {
    flex-shrink: 0;
    width: 120px;
    height: 120px;
    display: block
}

@media (width<=768px) {
    .p-data .p-data__stat .p-data__stat-icon {
        width: 72px;
        height: 72px
    }
}

.p-data .p-data__grid {
    grid-template-columns: 1.1fr 1fr;
    gap: 20px;
    display: grid
}

@media (width<=768px) {
    .p-data .p-data__grid {
        grid-template-columns: 1fr;
        gap: 10px
    }
}

.p-data .p-data__area {
    background: #f8f8f8;
    border-radius: 0;
    padding: 28px;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-data .p-data__area {
        align-items: flex-start;
        gap: 8px;
        padding: 18px 16px;
        display: flex
    }
}

.p-data .p-data__area-body {
    z-index: 1;
    min-width: 0;
    position: relative
}

@media (width<=768px) {
    .p-data .p-data__area-body {
        flex: 1
    }
}

.p-data .p-data__area-label {
    color: #242424;
    margin-bottom: 12px;
    font-size: 18px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__area-label {
        margin-bottom: 8px;
        font-size: 13px
    }
}

.p-data .p-data__area-heading {
    color: #d63232;
    margin-bottom: 0;
    font-size: 42px;
    font-weight: 900;
    line-height: 1.3
}

@media (width<=768px) {
    .p-data .p-data__area-heading {
        font-size: 26px
    }
}

.p-data .p-data__area-tags {
    flex-wrap: wrap;
    gap: 4px;
    margin-bottom: 8px;
    display: flex
}

@media (width<=768px) {
    .p-data .p-data__area-tags {
        flex-wrap: nowrap;
        gap: 4px;
        width: 100%;
        margin-bottom: 4px
    }
}

.p-data .p-data__area-tags li {
    color: #fff;
    background: #242424;
    border-radius: 0;
    padding: 1px 12px;
    font-size: 14px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__area-tags li {
        text-align: center;
        box-sizing: border-box;
        border: 1px solid #ffffff59;
        flex: 1 1 0;
        min-width: 0;
        padding: 5px 2px;
        font-size: 10px;
        line-height: 1.3
    }

    .p-data .p-data__area-tags li+li {
        border-left: none
    }

    .p-data .p-data__area-tags+.p-data__area-tags li {
        border-top: none
    }
}

.p-data .p-data__area-plus {
    color: #242424;
    text-align: center;
    width: 200px;
    margin: 0;
    font-size: 26px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__area-plus {
        width: auto;
        max-width: 160px;
        margin: 2px 0;
        font-size: 18px
    }
}

.p-data .p-data__area-network {
    color: #242424;
    margin-bottom: 8px;
    font-size: 13px
}

@media (width<=768px) {
    .p-data .p-data__area-network {
        margin-bottom: 4px;
        font-size: 11px;
        line-height: 1.6
    }
}

.p-data .p-data__area-network .p-data__area-network-tag {
    color: #fff;
    background: #242424;
    border-radius: 0;
    margin-right: 4px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 700;
    display: inline-block
}

@media (width<=768px) {
    .p-data .p-data__area-network .p-data__area-network-tag {
        padding: 3px 8px;
        font-size: 10px
    }
}

.p-data .p-data__map {
    opacity: .9;
    z-index: 0;
    pointer-events: none;
    width: 55%;
    max-width: 320px;
    position: absolute;
    top: 50%;
    right: 4%;
    transform: translateY(-50%)
}

.p-data .p-data__map img {
    width: 100%;
    height: auto;
    display: block
}

@media (width<=768px) {
    .p-data .p-data__map {
        opacity: 1;
        flex-shrink: 0;
        align-self: center;
        width: 38%;
        max-width: 140px;
        position: relative;
        top: auto;
        right: auto;
        transform: none
    }
}

.p-data .p-data__side {
    flex-direction: column;
    gap: 20px;
    height: 100%;
    display: flex
}

@media (width<=768px) {
    .p-data .p-data__side {
        gap: 10px
    }
}

.p-data .p-data__side .p-data__card {
    flex: 1
}

.p-data .p-data__card {
    background: #f8f8f8;
    border-radius: 0;
    padding: 28px;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-data .p-data__card {
        padding: 18px 16px
    }
}

.p-data .p-data__card-icon {
    pointer-events: none;
    width: 120px;
    height: 120px;
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%)
}

.p-data .p-data__card-icon img {
    object-fit: contain;
    width: 100%;
    height: 100%;
    display: block
}

@media (width<=768px) {
    .p-data .p-data__card-icon {
        width: 64px;
        height: 64px;
        right: 12px
    }
}

.p-data .p-data__address {
    color: #242424;
    align-items: center;
    gap: 12px;
    max-width: 75%;
    margin-bottom: 10px;
    font-size: 18px;
    line-height: 1.5;
    display: flex
}

@media (width<=768px) {
    .p-data .p-data__address {
        flex-wrap: wrap;
        gap: 6px 8px;
        max-width: calc(100% - 72px);
        margin-bottom: 8px;
        font-size: 12px
    }
}

.p-data .p-data__address .p-data__address-tag {
    background: #2b2b2b26;
    border: 1px solid #000;
    flex-shrink: 0;
    padding: 1px 8px;
    font-size: 12px;
    font-weight: 700
}

@media (width<=768px) {
    .p-data .p-data__address .p-data__address-tag {
        background: #fff;
        padding: 1px 6px;
        font-size: 10px
    }
}

.p-data .p-data__business-tags {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    max-width: 350px;
    display: grid
}

@media (width<=768px) {
    .p-data .p-data__business-tags {
        width: 100%;
        max-width: calc(100% - 72px)
    }
}

.p-data .p-data__business-tags .p-data__business-tag {
    color: #fff;
    text-align: center;
    background: #2b2b2b;
    justify-content: center;
    align-items: center;
    padding: 2px 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    display: flex
}

@media (width<=768px) {
    .p-data .p-data__business-tags .p-data__business-tag {
        box-sizing: border-box;
        border: 1px solid #ffffff59;
        margin-bottom: -1px;
        margin-right: -1px;
        padding: 6px 4px;
        font-size: 10px
    }
}

.p-data .p-data__business-tags .p-data__business-tag--wide {
    grid-column: span 2
}

.p-data .p-data__business-tags .p-data__business-tag--narrow {
    grid-column: span 1
}

.p-works {
    background: url(../../img/top/pc/img_movie_bg.png) 50% no-repeat;
    padding: 80px 0
}

@media (width<=768px) {
    .p-works {
        background: url(../../img/top/sp/img_movie_bg.png) 50% no-repeat;
        padding: 48px 0
    }
}

.p-works .p-works__grid {
    grid-template-columns: .85fr 1.15fr;
    align-items: center;
    gap: 40px;
    display: grid
}

@media (width<=768px) {
    .p-works .p-works__grid {
        grid-template-columns: 1fr;
        gap: 24px
    }
}

.p-works .p-works__text-col .c-section-head {
    margin-bottom: 24px
}

@media (width<=768px) {
    .p-works .p-works__text-col .c-section-head {
        margin-bottom: 18px
    }
}

.p-works .p-works__movie {
    color: #242424;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    font-size: 24px;
    font-weight: 700;
    display: flex
}

@media (width<=768px) {
    .p-works .p-works__movie {
        font-size: 18px
    }
}

.p-works .p-works__play {
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    width: 64px;
    height: auto;
    display: flex
}

@media (width<=768px) {
    .p-works .p-works__play {
        width: 46px
    }
}

.p-works .p-works__meta {
    color: #242424;
    margin-bottom: 20px;
    font-size: 18px
}

@media (width<=768px) {
    .p-works .p-works__meta {
        font-size: 14px
    }
}

.p-works .p-works__divider {
    border: none;
    border-top: 1px solid #e2e2e2;
    margin-bottom: 20px
}

.p-works .p-works__desc {
    color: #666;
    margin-bottom: 28px;
    font-size: 16px;
    line-height: 1.9
}

@media (width<=768px) {
    .p-works .p-works__desc {
        font-size: 15px
    }
}

.p-works .p-works__btn {
    color: #fff;
    background: #d63232;
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: 235px;
    padding: 16px 28px;
    font-size: 16px;
    font-weight: 700;
    transition: opacity .2s;
    display: inline-flex;
    position: relative
}

.p-works .p-works__btn:hover {
    opacity: .85
}

.p-works .p-works__btn img {
    width: 20px;
    height: auto;
    position: absolute;
    top: 50%;
    right: 24px;
    transform: translateY(-50%)
}

.p-works .p-works__main {
    border-radius: 6px;
    width: 100%;
    margin-bottom: 12px
}

.p-works .p-works__sub-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    display: grid
}

.p-works .p-works__sub-list img {
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 4px;
    width: 100%
}

.p-message {
    min-height: 560px;
    display: flex;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-message {
        min-height: 0;
        display: block;
        overflow: visible
    }
}

.p-message .p-message__photo {
    z-index: 0;
    width: 54%;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0
}

.p-message .p-message__photo picture {
    width: 100%;
    height: 100%;
    display: block
}

.p-message .p-message__photo img {
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 100%;
    display: block
}

@media (width<=768px) {
    .p-message .p-message__photo {
        aspect-ratio: 750/648;
        width: 100%;
        position: relative
    }
}

.p-message .p-message__body {
    z-index: 1;
    clip-path: polygon(13% 0, 100% 0, 100% 100%, 0 100%);
    background: linear-gradient(to bottom right, #c43131, #8e1a1a);
    align-items: center;
    width: 57%;
    min-height: 560px;
    margin-left: auto;
    display: flex;
    position: relative
}

@media (width<=768px) {
    .p-message .p-message__body {
        clip-path: polygon(0 0, 100% 19vw, 100% 100%, 0 100%);
        background: linear-gradient(#c43131 0%, #8e1a1a 100%);
        align-items: flex-start;
        width: 100%;
        min-height: 0;
        margin-top: -19vw;
        padding-top: 20px
    }
}

.p-message .p-message__inner {
    width: 100%;
    padding: 64px 10% 64px 22%
}

@media (width<=768px) {
    .p-message .p-message__inner {
        padding: 28px 24px 56px
    }
}

.p-message .p-message__inner .c-section-head {
    margin-bottom: 40px
}

@media (width<=768px) {
    .p-message .p-message__inner .c-section-head {
        margin-bottom: 20px
    }

    .p-message .p-message__inner .c-section-head__label {
        margin-bottom: 6px;
        font-size: 14px
    }

    .p-message .p-message__inner .c-section-head__title {
        font-size: 28px
    }
}

.p-message .p-message__text {
    color: #fff;
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 2
}

.p-message .p-message__text p+p {
    margin-top: 28px
}

@media (width<=768px) {
    .p-message .p-message__text {
        margin-bottom: 32px;
        font-size: 14px;
        line-height: 1.9
    }

    .p-message .p-message__text p+p {
        margin-top: 24px
    }
}

.p-message .p-message__signature {
    color: #fff;
    align-items: baseline;
    gap: 16px;
    font-family: Noto Serif JP, serif;
    font-size: 14px;
    display: flex
}

.p-message .p-message__signature span {
    font-size: 22px;
    font-weight: 700
}

@media (width<=768px) {
    .p-message .p-message__signature {
        gap: 12px;
        font-size: 13px
    }

    .p-message .p-message__signature span {
        font-size: 18px
    }
}

.p-news {
    background: #fafafa;
    padding: 80px 0
}

@media (width<=768px) {
    .p-news {
        padding: 48px 0
    }
}

.p-news .p-news__intro {
    grid-template-columns: 1fr auto;
    grid-template-areas: "heading more" "lead lead";
    align-items: end;
    gap: 24px;
    margin-bottom: 32px;
    display: grid
}

@media (width<=768px) {
    .p-news .p-news__intro {
        grid-template-columns: 1fr;
        grid-template-areas: "heading" "lead" "more";
        align-items: start;
        row-gap: 16px;
        margin-bottom: 20px
    }
}

.p-news .p-news__heading {
    grid-area: heading
}

.p-news .p-news__lead {
    color: #242424;
    grid-area: lead;
    margin: 0;
    font-size: 16px;
    line-height: 1.7
}

@media (width<=768px) {
    .p-news .p-news__lead {
        font-size: 13px;
        line-height: 1.75
    }
}

.p-news .p-news__lead .p-news__lead-highlight {
    font-family: Cinzel, serif;
    font-size: inherit;
    font-weight: 700
}

.p-news .p-news__more {
    color: #fff;
    background: #d63232;
    flex-shrink: 0;
    grid-area: more;
    justify-content: center;
    align-items: center;
    width: 235px;
    height: 64px;
    font-size: 16px;
    font-weight: 700;
    transition: opacity .2s;
    display: inline-flex;
    position: relative
}

.p-news .p-news__more:hover {
    opacity: .85
}

@media (width<=768px) {
    .p-news .p-news__more {
        width: 200px;
        height: 52px;
        margin-bottom: 16px;
        font-size: 14px
    }
}

.p-news .p-news__more-icon {
    border-top: 1.5px solid #fff;
    border-right: 1.5px solid #fff;
    width: 8px;
    height: 8px;
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%)rotate(45deg)
}

@media (width<=768px) {
    .p-news .p-news__more-icon {
        right: 18px
    }
}

.p-news .p-news__list {
    flex-direction: column;
    gap: 12px;
    display: flex
}

@media (width<=768px) {
    .p-news .p-news__list {
        gap: 10px
    }
}

.p-news .p-news__item a {
    background: #fff;
    border: 1px solid #c6c6c6;
    border-radius: 8px;
    grid-template-columns: 70px auto 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 24px;
    transition: border-color .2s;
    display: grid
}

.p-news .p-news__item a:hover {
    border-color: #a00
}

@media (width<=768px) {
    .p-news .p-news__item a {
        border-radius: 4px;
        grid-template-rows: auto auto;
        grid-template-columns: auto auto 1fr auto;
        align-items: start;
        gap: 8px 10px;
        padding: 16px 14px
    }
}

.p-news .p-news__date {
    color: #242424;
    white-space: nowrap;
    font-size: 14px
}

@media (width<=768px) {
    .p-news .p-news__date {
        grid-area: 1/1;
        align-self: center;
        font-size: 12px
    }
}

.p-news .p-news__tag {
    color: #fff;
    white-space: nowrap;
    background: #d63232;
    border-radius: 2px;
    justify-content: center;
    align-items: center;
    min-width: 96px;
    height: 28px;
    padding: 0 12px;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex
}

@media (width<=768px) {
    .p-news .p-news__tag {
        border-radius: 3px;
        grid-area: 1/2;
        place-self: center start;
        min-width: 0;
        height: 22px;
        padding: 0 10px;
        font-size: 11px
    }
}

.p-news .p-news__item-title {
    color: #242424;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5
}

@media (width<=768px) {
    .p-news .p-news__item-title {
        grid-area: 2/1/auto/4;
        padding-right: 4px;
        font-size: 13px;
        line-height: 1.6
    }
}

.p-news .p-news__chevron {
    color: #242424;
    font-size: 20px;
    line-height: 1
}

@media (width<=768px) {
    .p-news .p-news__chevron {
        grid-area: 1/4/3;
        align-self: center;
        font-size: 22px
    }
}

.p-manga {
    background: #fff;
    padding: 80px 0
}

@media (width<=768px) {
    .p-manga {
        padding: 48px 0
    }
}

.p-manga .p-manga__intro {
    grid-template-columns: 1fr auto;
    grid-template-areas: "heading more" "text text";
    align-items: end;
    gap: 20px 24px;
    margin-bottom: 32px;
    display: grid
}

@media (width<=768px) {
    .p-manga .p-manga__intro {
        grid-template-columns: 1fr;
        grid-template-areas: "heading" "text" "more";
        align-items: start;
        row-gap: 16px;
        margin-bottom: 24px
    }
}

.p-manga .p-manga__heading {
    grid-area: heading
}

@media (width<=768px) {
    .p-manga .p-manga__heading .c-section-head__title {
        font-size: 28px;
        line-height: 1.35
    }
}

.p-manga .p-manga__text {
    color: #242424;
    grid-area: text;
    margin: 0;
    font-size: 16px;
    line-height: 1.9
}

@media (width<=768px) {
    .p-manga .p-manga__text {
        font-size: 13px;
        line-height: 1.75
    }
}

.p-manga .p-manga__text .p-manga__text-highlight {
    font-family: Cinzel, serif;
    font-size: inherit;
    font-weight: 700
}

.p-manga .p-manga__more {
    color: #fff;
    background: #d63232;
    flex-shrink: 0;
    grid-area: more;
    justify-content: center;
    align-items: center;
    width: 235px;
    height: 64px;
    font-size: 16px;
    font-weight: 700;
    transition: opacity .2s;
    display: inline-flex;
    position: relative
}

.p-manga .p-manga__more:hover {
    opacity: .85
}

@media (width<=768px) {
    .p-manga .p-manga__more {
        width: 200px;
        height: 52px;
        font-size: 14px
    }
}

.p-manga .p-manga__more-icon {
    border-top: 1.5px solid #fff;
    border-right: 1.5px solid #fff;
    width: 8px;
    height: 8px;
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%)rotate(45deg)
}

@media (width<=768px) {
    .p-manga .p-manga__more-icon {
        right: 18px
    }
}

.p-manga .p-manga__list {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    display: grid
}

@media (width<=768px) {
    .p-manga .p-manga__list {
        grid-template-columns: 1fr;
        gap: 16px
    }
}

.p-manga .p-manga__item a {
    transition: transform .2s;
    display: block
}

.p-manga .p-manga__item a:hover {
    transform: translateY(-4px)
}

@media (width<=768px) {
    .p-manga .p-manga__item a {
        background: #fff;
        border: 1px solid #e2e2e2;
        overflow: hidden;
        box-shadow: 0 2px 8px #0000000f
    }

    .p-manga .p-manga__item a:hover {
        transform: none
    }
}

.p-manga .p-manga__item img {
    width: 100%;
    display: block
}

.p-manga .p-manga__no {
    color: #fff;
    text-align: center;
    background: #d63232;
    padding: 8px 0;
    font-size: 13px;
    font-weight: 700;
    display: block
}

@media (width<=768px) {
    .p-manga .p-manga__no {
        padding: 6px 18px;
        font-size: 12px;
        display: inline-block
    }
}

.p-overview {
    padding: 80px 0;
    position: relative;
    overflow: hidden
}

@media (width<=768px) {
    .p-overview {
        padding: 40px 0
    }
}

.p-overview .p-overview__bg {
    z-index: 0;
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    inset: 0
}

.p-overview .p-overview__bg img {
    object-fit: cover;
    object-position: center;
    width: 100%;
    height: 100%
}

@media (width<=768px) {
    .p-overview .p-overview__bg:after {
        content: "";
        pointer-events: none;
        background: #00000047;
        position: absolute;
        inset: 0
    }
}

.p-overview .p-overview__inner {
    z-index: 1;
    position: relative
}

.p-overview .p-overview__card {
    background: #fffffff2;
    border-radius: 8px;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 32px;
    padding: 60px;
    display: flex
}

@media (width<=768px) {
    .p-overview .p-overview__card {
        background: #ffffffeb;
        border-radius: 20px;
        padding: 32px 24px 28px;
        display: block
    }
}

.p-overview .p-overview__head {
    flex-shrink: 0;
    width: 320px
}

@media (width<=768px) {
    .p-overview .p-overview__head {
        border-bottom: 1px solid #e2e2e2;
        width: 100%;
        margin-bottom: 4px;
        padding-bottom: 20px
    }

    .p-overview .p-overview__head .c-section-head__label {
        margin-bottom: 6px;
        font-size: 14px
    }

    .p-overview .p-overview__head .c-section-head__title {
        font-size: 28px
    }
}

.p-overview .p-overview__table {
    border-collapse: collapse;
    flex: 1;
    width: 100%
}

.p-overview .p-overview__table tr {
    border-bottom: 1px solid #e2e2e2
}

.p-overview .p-overview__table tr:first-child {
    border-top: 1px solid #e2e2e2
}

@media (width<=768px) {
    .p-overview .p-overview__table tr:first-child {
        border-top: none
    }
}

.p-overview .p-overview__table th,
.p-overview .p-overview__table td {
    text-align: left;
    color: #242424;
    padding: 18px 12px;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6
}

.p-overview .p-overview__table th {
    vertical-align: top;
    width: 160px;
    font-weight: 700
}

@media (width<=768px) {

    .p-overview .p-overview__table,
    .p-overview .p-overview__table tbody {
        display: block
    }

    .p-overview .p-overview__table tr {
        border-bottom: 1px solid #e2e2e2;
        padding: 18px 0;
        display: block
    }

    .p-overview .p-overview__table th,
    .p-overview .p-overview__table td {
        width: 100%;
        padding: 0;
        font-size: 14px;
        display: block
    }

    .p-overview .p-overview__table th {
        margin-bottom: 6px;
        font-weight: 700
    }

    .p-overview .p-overview__table td {
        font-weight: 400;
        line-height: 1.7
    }
}

.p-brand {
    position: relative
}

.p-brand .p-brand__bg {
    object-fit: cover;
    object-position: center top;
    z-index: -1;
    pointer-events: none;
    width: 100%;
    position: absolute;
    top: -1200px;
    left: 0
}

@media (width<=768px) {
    .p-brand .p-brand__bg {
        top: -100px
    }
}