.contents-page {
    --ct-blue: #00277f;
    --ct-gold: #d99a00;
    --ct-light: #f2f6ff;
    --ct-line: #bdd0ec;
    background: #fff;
    color: var(--ct-blue);
    display: flex;
    flex-direction: column;
    gap: 5rem;
    letter-spacing: 0;
}

body:has(.contents-page),
.section.page:has(.contents-page) {
    background: #fff;
}

.contents-page * {
    letter-spacing: 0;
}

.contents-page li {
    font-size: .875rem;
    line-height: 1.85;
}

.contents-page p {
    color: #111;
    font-size: 1rem;
    line-height: 1.85;
}

.contents-hero {
    align-items: center;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1fr 1fr;
}

.contents-hero__text h3 {
    color: var(--ct-blue);
    font-size: 3.6rem;
    font-weight: 900;
    line-height: 1.25;
    position: relative;
    white-space: nowrap;
}

.contents-hero__text h3::after {
    background: var(--ct-gold);
    content: "";
    display: block;
    height: 4px;
    margin-top: 1rem;
    width: 5rem;
}

.contents-hero__text>p {
    font-size: 1.25rem;
    font-weight: 700;
    margin-top: 3rem;
}

.contents-hero__message {
    border: 3px solid var(--ct-blue);
    border-radius: 8px;
    margin-top: 2rem;
    padding: 1.5rem;
}

.contents-hero__message p {
    font-size: 1.2rem;
    font-weight: 800;
}

.contents-hero__message p+p {
    margin-top: .75rem;
}

.contents-hero__message strong,
.contents-band strong,
.contents-achievement strong,
.contents-heading--reasons strong {
    color: var(--ct-gold);
}

.contents-visual {
    /* min-height: 28rem; */
    position: relative;
}

.contents-visual img {
    width: 100%;
}

.contents-visual__pc {
    background: linear-gradient(#fff, #f4f8ff);
    border: .7rem solid #222;
    border-bottom-width: 1.4rem;
    border-radius: .9rem;
    box-shadow: 0 24px 35px #0002;
    height: 17rem;
    left: 3rem;
    padding: 2rem;
    position: absolute;
    top: 5rem;
    width: 24rem;
}

.contents-visual__pc span {
    color: #6c7b97;
    display: block;
    font-size: .75rem;
    font-weight: 900;
    margin-bottom: 1.5rem;
}

.contents-visual__pc strong {
    color: #111;
    display: block;
    font-size: 1.1rem;
    line-height: 1.45;
}

.contents-visual__pc p {
    font-size: .7rem;
    margin-top: .75rem;
}

.contents-visual__phone {
    background: linear-gradient(135deg, #fff, #e6efff);
    border: .45rem solid #111;
    border-radius: 1.2rem;
    bottom: 1.5rem;
    box-shadow: 0 12px 20px #0002;
    height: 13.5rem;
    left: 11rem;
    position: absolute;
    width: 6.5rem;
}

.contents-visual__phone::before {
    background: linear-gradient(90deg, #dda747 33%, #f5f7fb 33% 66%, #9cb6db 66%);
    content: "";
    display: block;
    height: 8rem;
    margin: 2rem .45rem 0;
}

.contents-visual__movie {
    background: linear-gradient(135deg, #eef4ff, #fff);
    border: 1px solid var(--ct-line);
    border-radius: .5rem;
    bottom: 2rem;
    box-shadow: 0 12px 20px #0002;
    height: 9.5rem;
    position: absolute;
    right: 0;
    width: 14rem;
}

.contents-visual__movie::before {
    align-items: center;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 4px 12px #0002;
    color: #111;
    content: "▶";
    display: flex;
    font-size: 1.8rem;
    height: 4rem;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 4rem;
}

.contents-visual__icon {
    align-items: center;
    background: #eff4ff;
    border-radius: .5rem;
    color: var(--ct-blue);
    display: flex;
    font-style: normal;
    font-weight: 900;
    justify-content: center;
    position: absolute;
}

.contents-visual__icon--text {
    font-size: 2rem;
    height: 5rem;
    right: 4rem;
    top: 0;
    width: 4rem;
}

.contents-visual__icon--heart {
    background: var(--ct-blue);
    color: #fff;
    font-size: 2rem;
    height: 4rem;
    right: 2rem;
    top: 12rem;
    width: 4rem;
}

.contents-visual__icon--play {
    border-radius: 50%;
    height: 4rem;
    right: 0;
    top: 18rem;
    width: 4rem;
}

.contents-band,
.contents-achievement {
    align-items: center;
    background: linear-gradient(90deg, var(--ct-blue), #00399f);
    color: #fff;
    display: grid;
    gap: 2rem;
    grid-template-columns: 7rem .9fr 1fr;
    padding: 2rem 2.5rem;
}

.contents-band__mark {
    color: var(--ct-gold);
    font-size: 5.5rem;
    font-weight: 900;
    line-height: 1;
}

.contents-band h3,
.contents-band p,
.contents-achievement h4,
.contents-achievement li {
    color: #fff;
}

.contents-band h3 {
    font-size: 1.625rem;
    font-weight: 900;
    line-height: 1.45;
}

.contents-band p {
    border-left: 1px solid #fff;
    font-size: 1.1rem;
    font-weight: 800;
    padding-left: 2rem;
}

.contents-section {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.contents-heading {
    text-align: center;
}

.contents-heading h3,
.contents-heading--large h3 {
    align-items: center;
    color: var(--ct-blue);
    display: flex;
    font-size: 2.4rem;
    font-weight: 900;
    gap: 2.5rem;
    justify-content: center;
    line-height: 1.3;
}

.contents-heading h3::before,
.contents-heading h3::after,
.contents-heading--sub h4::before,
.contents-heading--sub h4::after {
    background: var(--ct-gold);
    content: "";
    display: block;
    height: 3px;
    width: 8rem;
}

.contents-service-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contents-service-grid article {
    align-items: center;
    border: 1px solid var(--ct-line);
    border-radius: 8px;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 4rem 1fr 11rem;
    min-height: 13rem;
    padding: 1.5rem;
}

.contents-service-grid span {
    align-items: center;
    background: var(--ct-blue);
    border-radius: 50%;
    color: #fff;
    display: flex;
    font-size: 1.5rem;
    font-weight: 900;
    height: 3.5rem;
    justify-content: center;
    width: 3.5rem;
}

.contents-service-grid h4 {
    color: var(--ct-blue);
    font-size: 1.5rem;
    font-weight: 900;
}

.contents-service-grid p {
    font-weight: 700;
    margin-top: 1.5rem;
}

.contents-service-grid i {
    align-items: center;
    background: var(--ct-light);
    border-radius: 8px;
    color: var(--ct-blue);
    display: flex;
    font-size: 2.2rem;
    font-style: normal;
    font-weight: 900;
    height: 8rem;
    justify-content: center;
}

.contents-proposal {
    align-items: center;
    background: linear-gradient(90deg, var(--ct-light), #fff);
    border-radius: 8px;
    display: grid;
    gap: 2rem;
    grid-template-columns: 8rem 1fr 8rem;
    padding: 2rem 2.5rem;
}

.contents-proposal span {
    align-items: center;
    background: #fff;
    border-radius: 50%;
    color: var(--ct-blue);
    display: flex;
    font-size: 3rem;
    font-weight: 900;
    height: 7rem;
    justify-content: center;
    width: 7rem;
}

.contents-proposal h4 {
    color: var(--ct-blue);
    font-size: 1.9rem;
    font-weight: 900;
    line-height: 1.45;
}

.contents-proposal p {
    font-weight: 700;
}

.contents-results__inner {
    border: 1px solid var(--ct-line);
    padding: 3rem 2.5rem;
}

.contents-heading--large h3 {
    font-size: 4rem;
}

.contents-heading--large h3::before,
.contents-heading--large h3::after {
    background: var(--ct-blue);
}

.contents-heading--large p {
    font-size: 1.2rem;
    font-weight: 800;
    margin: 1.5rem auto 4rem;
    text-align: center;
}

.contents-heading--sub h4 {
    align-items: center;
    color: var(--ct-blue);
    display: flex;
    font-size: 2rem;
    font-weight: 900;
    gap: 2rem;
    justify-content: center;
}

.contents-heading--sub h4::before,
.contents-heading--sub h4::after {
    background: var(--ct-blue);
}

.contents-genre-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 2rem;
}

.contents-genre-grid article {
    align-items: center;
    border: 1px solid #d7e2f3;
    border-radius: 7px;
    display: grid;
    gap: .25rem 1.25rem;
    grid-template-columns: 4.5rem 1fr;
    /* min-height: 8rem; */
    padding: 1.25rem;
}

.contents-genre-grid span {
    align-items: center;
    background: linear-gradient(135deg, #edf3ff, #fff);
    border-radius: 50%;
    color: var(--ct-blue);
    display: flex;
    font-size: 1.7rem;
    font-weight: 900;
    grid-row: span 2;
    height: 4.5rem;
    justify-content: center;
    width: 4.5rem;
}

.contents-genre-grid img {
    align-items: center;
    display: flex;
    font-size: 1.7rem;
    font-weight: 900;
    grid-row: span 2;
    height: 4.5rem;
    justify-content: center;
    width: 4.5rem;
}

.contents-genre-grid h5 {
    color: var(--ct-blue);
    font-size: 1.3rem;
    font-weight: 900;
}

.contents-genre-grid p {
    font-size: .9rem;
    font-weight: 700;
}

.contents-auto {
    border: 2px solid var(--ct-blue);
    margin-top: 3.5rem;
    padding: 2.5rem 1.5rem 1.5rem;
    position: relative;
}

.contents-auto h4 {
    background: var(--ct-blue);
    color: #fff;
    font-size: 1.5rem;
    font-weight: 900;
    left: 50%;
    padding: .65rem 3rem;
    position: absolute;
    top: 0;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.contents-auto ul {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    list-style: none;
    padding: 0;
    text-align: center;
}

.contents-auto li:not(:last-child) {
    border-right: 1px solid var(--ct-line);
}

.contents-auto span {
    color: var(--ct-blue);
    display: block;
    font-size: 2.5rem;
    font-weight: 900;
}

.contents-auto img {
    margin: 0 auto;
}

.contents-auto strong {
    color: var(--ct-blue);
    display: block;
    font-size: 1.4rem;
}

.contents-auto p {
    font-weight: 700;
}

.contents-achievement {
    border-radius: 8px;
    grid-template-columns: auto 1fr 8rem;
}

.contents-achievement__count {
    color: #fff;
    text-align: center;
}

.contents-achievement__count span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    font-size: 1.4rem;
    font-weight: 900;
}

.contents-achievement__count strong {
    color: var(--ct-gold);
    display: block;
    font-size: 2.5rem;
    font-weight: 900;
    line-height: 1.1;

    white-space: nowrap;
    display: flex;
    align-items: center;
    margin-top: -1.5rem;
}

.contents-achievement__text {
    border-left: 1px solid #fff;
    padding-left: 2rem;
}

.contents-achievement h4 {
    font-size: 1.75rem;
    font-weight: 900;
}

.contents-achievement ul {
    margin-top: .75rem;
    padding-left: 1.25rem;
}

.contents-achievement li {
    font-weight: 800;
}

.contents-achievement__icon {
    color: #9fc6ff;
    font-size: 6rem;
    font-weight: 900;
    text-align: center;
}

.contents-achievement__count strong:before {
    content: url(../img/contents/leaf_left_clear.webp);
    margin-right: -0.75rem;
}

.contents-achievement__count strong:after {
    content: url(../img/contents/leaf_right_clear.webp);
    margin-left: -0.75rem;
}

@media screen and (max-width:1024px) {

    .contents-hero,
    .contents-service-grid,
    .contents-genre-grid {
        grid-template-columns: 1fr;
    }

    .contents-auto li:nth-child(2) {
        border-right: unset;
    }

    .contents-auto ul,
    .contents-achievement {
        grid-template-columns: repeat(2, auto);
    }

    .contents-auto ul {
        row-gap: 1rem;
    }

    .contents-achievement__icon {
        display: none;
    }
}

@media screen and (max-width:768px) {
    .contents-page {
        gap: 3.5rem;
    }

    .contents-page p,
    .contents-page li {
        font-size: .875rem;
        line-height: 1.75;
    }

    /* .contents-hero {
        gap: 1rem;
        grid-template-columns: 1fr 1fr;
    } */

    .contents-hero__text h3 {
        font-size: 2rem;
    }

    .contents-hero__text h3::after {
        height: 3px;
        margin-top: .6rem;
        width: 3.5rem;
    }

    .contents-hero__text>p {
        font-size: 1rem;
        margin-top: 1.25rem;
    }

    .contents-hero__message {
        border-width: 1px;
        margin-top: 1rem;
        padding: .75rem;
    }

    .contents-hero__message p {
        font-size: .875rem;
    }

    .contents-hero__message p+p {
        margin-top: .5rem;
    }

    /* .contents-visual {
        min-height: 18rem;
    } */

    .contents-visual__pc {
        border-width: .35rem;
        border-bottom-width: .8rem;
        height: 8.5rem;
        left: 0;
        padding: .9rem;
        top: 3.5rem;
        width: 11.5rem;
    }

    .contents-visual__pc span,
    .contents-visual__pc p {
        font-size: .45rem;
    }

    .contents-visual__pc strong {
        font-size: .6rem;
    }

    .contents-visual__phone {
        border-width: .25rem;
        border-radius: .7rem;
        bottom: 1.6rem;
        height: 8.5rem;
        left: 3.5rem;
        width: 4rem;
    }

    .contents-visual__phone::before {
        height: 5rem;
        margin-top: 1.4rem;
    }

    .contents-visual__movie {
        bottom: 2rem;
        height: 6rem;
        right: 0;
        width: 8rem;
    }

    .contents-visual__movie::before {
        font-size: 1rem;
        height: 2.5rem;
        width: 2.5rem;
    }

    .contents-visual__icon--text {
        font-size: 1rem;
        height: 3rem;
        right: 1.5rem;
        width: 2.5rem;
    }

    .contents-visual__icon--heart {
        font-size: 1rem;
        height: 2.6rem;
        right: .5rem;
        top: 7.2rem;
        width: 2.6rem;
    }

    .contents-visual__icon--play {
        height: 2.6rem;
        right: 0;
        top: 11rem;
        width: 2.6rem;
    }

    .contents-band {
        column-gap: 1rem;
        row-gap: .5rem;
        grid-template-columns: 4rem 1fr;
        padding: 1.25rem;
        width: 100%;
    }

    .contents-band__mark {
        font-size: 3.8rem;
        grid-row: span 2;
    }

    .contents-band h3 {
        font-size: 1.5rem;
    }

    .contents-band p {
        border-left: 0;
        font-size: 1rem;
        padding-left: 0;
    }

    .contents-heading h3,
    .contents-heading--large h3 {
        font-size: 1.125rem;
        gap: 1rem;
    }

    .contents-heading h3::before,
    .contents-heading h3::after,
    .contents-heading--sub h4::before,
    .contents-heading--sub h4::after {
        height: 2px;
        width: 2rem;
    }

    .contents-service-grid {
        gap: .55rem;
    }

    .contents-service-grid article {
        align-items: center;
        gap: .8rem;
        grid-template-columns: 2.5rem 1fr;
        min-height: 0;
        padding: .75rem;
    }

    .contents-service-grid span {
        font-size: .9rem;
        height: 2.2rem;
        width: 2.2rem;
    }

    .contents-service-grid h4 {
        font-size: .85rem;
        padding-left: .8rem;
        border-left: 1px solid var(--ct-line);
    }

    .contents-service-grid p {
        border-left: 1px solid var(--ct-line);
        font-size: .75rem;
        margin-top: 0;
        padding-left: .8rem;
    }

    .contents-service-grid i {
        display: none;
    }

    /* .contents-proposal {
        display: none;
    } */

    .contents-results__inner {
        padding: 2rem 1rem;
    }

    .contents-heading--large h3 {
        font-size: 2rem;
        letter-spacing: .2em;
    }

    .contents-heading--large p {
        font-size: 1rem;
        margin: 1rem auto 2rem;
        text-align: left;
    }

    .contents-heading--sub h4 {
        font-size: 1.1rem;
        gap: 1rem;
    }

    .contents-genre-grid {
        gap: .55rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contents-genre-grid article {
        display: block;
        /* min-height: 5.6rem; */
        padding: .55rem;
        text-align: center;
    }

    .contents-genre-grid span {
        display: none;
    }

    .contents-genre-grid h5 {
        font-size: 1rem;
    }

    .contents-genre-grid p {
        font-size: .75rem;
        line-height: 1.55;
        margin-top: .25rem;
    }

    .contents-auto {
        margin-top: 2.5rem;
        padding: 1.5rem .5rem .75rem;
    }

    .contents-auto h4 {
        font-size: .85rem;
        padding: .5rem 1.5rem;
    }

    /* .contents-auto ul {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    } */

    .contents-auto span {
        font-size: 1.3rem;
    }

    .contents-auto strong {
        font-size: 1rem;
    }

    .contents-auto p {
        font-size: .75rem;
    }

    .contents-achievement {
        gap: 1rem;
        grid-template-columns: 9rem 1fr;
        padding: 1.25rem;
    }

    .contents-achievement__count strong {
        font-size: 2.6rem;
    }

    .contents-achievement__count span {
        font-size: 1.125rem;
    }

    .contents-achievement__text {
        padding-left: 1rem;
    }

    .contents-achievement h4 {
        font-size: 1.125rem;
    }

    .contents-achievement li {
        font-size: .875rem;
    }

    .contents-genre-grid img {
        margin: 0 auto 0.5rem;
    }

    .contents-band p {
        grid-column: span 2;
    }
}

@media screen and (max-width:430px) {
    /* .contents-hero {
        grid-template-columns: .95fr 1.05fr;
    } */

    .contents-hero__text h3 {
        font-size: 1.5rem;
    }

    .contents-service-grid article {
        grid-template-columns: 2.4rem 1fr;
    }

    .contents-genre-grid h5 {
        font-size: .875rem;
    }

    .contents-auto h4 {
        font-size: .75rem;
    }

    .contents-proposal {
        display: flex;
        flex-direction: column;
        padding: 1.25rem 1.25rem;
        gap: 1rem;
    }

    .contents-proposal div {
        display: flex;
        flex-direction: column;
        gap: .5rem;
    }

    .contents-proposal h4 {
        font-size: 1rem;
    }

    .contents-proposal span {
        display: none;
    }

    .contents-achievement {
        display: flex;
        flex-direction: column;
    }

    .contents-achievement__text {
        padding-left: unset;
        border-left: unset;
        padding-top: 1rem;
        border-top: 1px solid #fff;
    }

    .contents-band h3 {
        font-size: 1rem;
    }

    .contents-band p {
        font-size: .75rem;
    }
}

.sp {
    display: none;
}

.pc {
    display: block;
}

@media screen and (max-width:1024px) {
    .tab {
        display: none;
    }
}


@media screen and (max-width:480px) {
    .sp {
        display: block;
    }

    .pc {
        display: none;
    }
}