@charset "utf-8";


/**
 * スマホ用設定
 */
@media ( width < 768px ) {

    #page-mv {
        margin: 60px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1 / 1;
        background: var(--color-black);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        z-index: 0;
    }
    #page-mv::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        right: 0;
        translate: 0 -50%;
        color: rgba( 255, 255, 255, 0.04 );
        font-size: 22.0vw;
        font-weight: 300;
        line-height: 1.0;
        letter-spacing: -9.6px;
        z-index: 0;
    }
    #page-mv > .mv-box {
        margin: 0;
        padding: 0 5%;
        width: 100%;
        z-index: 1;
    }
    #page-mv > .mv-box > #breadcrumbs {
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 2.0vw;
    }
    #page-mv > .mv-box > #breadcrumbs :is(a,span) {
        margin: 0;
        padding: 0;
        font-size: 2.8vw;
        line-height: 1.0;
        letter-spacing: 2.64px;
    }
    #page-mv > .mv-box > #breadcrumbs a {
        color: var(--color-red);
    }
    #page-mv > .mv-box > #breadcrumbs span {
        color: #c0c0c0;
    }
    #page-mv > .mv-box > .mv-attr {
        margin: 4.0vw 0 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 4.0vw;
    }
    #page-mv > .mv-box > .mv-attr > .mv-cat {
        margin: 0;
        padding: 0.8em 1.2em;;
        color: #fff;
        font-size: 2.8vw;
        font-weight: 400;
        line-height: 1.0;
        letter-spacing: 1px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #page-mv > .mv-box > .mv-attr > .mv-date {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 2.8vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 2.88px;
    }
    #page-mv > .mv-box > h1 {
        margin: 4.0vw 0 0;
        padding: 0;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 12.0vw;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 4.0vw;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1)  span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 12.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.686px;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1) span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.686px;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1):empty + div:nth-of-type(2) {
        margin-top: 0;
        font-family: var(--font-gothic);
    }
    #page-mv > .mv-box > h1 div:nth-of-type(2) {
        margin: 4.0vw 0 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }
    #page-mv > .mv-box > .subtitle {
        margin: 4.0vw 0 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.92px;
    }
    #page-mv > .mv-box > p {
        margin: 4.0vw 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }

    .h2-left {
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 2.0vw 4.0vw;
    }
    .h2-left span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 12.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-left span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }

    .h2-red {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }

    .h2-center {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4.0vw 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-center span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-center span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }

    .h3-center {
        margin: 4.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }
    .bg-black .h3-center {
        color: #fff;
    }
    .h3-left {
        margin: 4.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }
    .bg-black .h3-left {
        color: #fff;
    }
    h3 {
        margin: 4.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }

    .p-center {
        margin: 24px 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    .bg-black .p-center {
        color: #fff;
    }

    .common-page-first {
        margin: 0 auto;
        padding: 16.0vw 5%;
    }
    .common-page-first > .page-first-flex {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    .common-page-first > .page-first-flex .page-first-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        order: 1;
    }
    .common-page-first > .page-first-flex .page-first-pic:empty {
        background: #ccc;
        aspect-ratio: 686 / 549;
    }
    .common-page-first > .page-first-flex .page-first-info {
        margin: 0;
        padding: 0;
        width: 100%;
        order: 2;
    }
    .common-page-first > .page-first-flex .page-first-info p {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-page-first > .page-first-flex .page-first-info p + p {
        margin-top: 1.5em;
    }
    .common-page-first > .page-first-flex .page-first-info p span {
        color: var(--color-red);
        font-weight: 500;
    }
    .common-page-first > .page-first-flex .page-first-info p.signature {
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: right;
    }
    .common-page-first > .page-first-flex .page-first-info .btn-common {
        display: grid;
        place-items: center;
        margin: 6.0vw 0 0;
        padding: 0;
        width: 60%;
        height: auto;
        aspect-ratio: 233 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .common-black-msg {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
        background: var(--color-black);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 0;
    }
    .common-black-msg::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        left: 0;
        translate: 0 -50%;
        width: 100%;
        color: rgba( 255, 255, 255, 0.04 );
        font-size: 22.0vw;
        font-weight: 300;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -9.6px;
        z-index: 0;
    }
    .common-black-msg[data-bg="750"]::before {
        font-size: 60.0vw;
    }
    .common-black-msg > .msg-box {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        z-index: 1;
    }
    .common-black-msg > .msg-box .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-msg > .msg-box .title1 {
        margin: 4.0vw 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .title1 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-msg > .msg-box p span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box .title2 {
        margin: 4.0vw 0 0;
        padding: 0;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .list {
        margin: 4.0vw 0 0;
        padding: 0 0 0 1.0em;
        color: #fff;
        font-size: 4.8vw;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
        text-indent: -1.0em;
    }
    .common-black-msg > .msg-box .list + .list {
        margin-top: 0;
    }
    .common-black-msg > .msg-box .title3 {
        margin: 12.0vw 0 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52x;
    }
    .common-black-msg > .msg-box .title4 {
        margin: 4.0vw 0 0;
        padding: 0;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .title4 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box .no {
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        letter-spacing: 4px;
    }
    .common-black-msg > .msg-box .no span {
        color: var(--color-red);
        font-size: 36.0vw;
        font-family: var(--font-alphabet);
        letter-spacing: -3.6px;
    }
    .common-black-msg > .msg-flex {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
        z-index: 1;
    }
    .common-black-msg > .msg-flex .msg-info {
        margin: 0;
        padding: 0;
        width: 100%;
        order: 1;
    }
    .common-black-msg > .msg-flex .msg-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-msg > .msg-flex .msg-info .title1 {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-flex .msg-info .title1 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-flex .msg-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-msg > .msg-flex .msg-info p span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-flex .msg-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 566 / 708;
        order: 2;
    }
    .common-black-msg > .msg-flex .msg-pic:empty {
        background: #ccc;
    }
    .common-black-msg > .msg-flex .msg-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .common-page-sec {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    .common-page-sec.bg-beige {
        background: #f7f7f5;
    }
    .common-page-sec.bg-black {
        background: var(--color-black);
    }

    .common-page-flex {
        margin: 12.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4.0vw 0;
    }
    .common-page-flex .common-flex-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        background: #ccc;
        order: 1;
    }
    .common-page-flex .common-flex-pic:empty {
        background: #ccc;
        aspect-ratio: 594 / 445;
    }
    .common-page-flex .common-flex-pic figcaption {
        position: absolute;
        top: 5%;
        left: 5%;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: -0.84px;
    }
    .common-page-flex .common-flex-info {
        margin: 0;
        padding: 0;
        width: 100%;
        order: 2;
    }
    .common-page-flex .common-flex-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-page-flex .common-flex-info .title {
        margin: 2.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-page-flex .common-flex-info .title span {
        color: var(--color-red);
    }
    .common-page-flex .common-flex-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-page-flex .common-flex-info p span {
        color: var(--color-red);
    }
    .common-page-flex .common-flex-info .btn-common{
        display: grid;
        place-items: center;
        margin: 6.0vw 0 0;
        padding: 0;
        width: 60%;
        height: auto;
        aspect-ratio: 202 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .beige-box {
        margin: 8.0vw auto 0;
        padding: 8.0vw 6.0vw 6.0vw;
        width: 100%;
        background: #f7f7f5;
        border: 1px solid var(--color-border);
    }
    .beige-box > p {
        margin: 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    .beige-box > .btn-common {
        display: grid;
        place-items: center;
        margin: 4.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 282 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .common-grid-cols,
    .common-grid-2cols,
    .common-grid-3cols,
    .common-grid-4cols {
        margin: 8.0vw 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 4.0vw;
    }
    .common-grid-cols .common-grid-item,
    .common-grid-2cols .common-grid-item,
    .common-grid-3cols .common-grid-item,
    .common-grid-4cols .common-grid-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 6.0vw;
        width: 100%;
        background: #fff;
        border: 1px solid var(--color-border);
    }
    .common-grid-cols .common-grid-item > .no,
    .common-grid-2cols .common-grid-item > .no,
    .common-grid-3cols .common-grid-item > .no,
    .common-grid-4cols .common-grid-item > .no {
        position: absolute;
        top: 2.0vw;
        right: 2.0vw;
        color: rgba( 255, 255, 255, 0.08 );
        font-size: 16.0vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 0.8px;
    }
    .common-grid-cols .common-grid-item > .subtitle,
    .common-grid-2cols .common-grid-item > .subtitle,
    .common-grid-3cols .common-grid-item > .subtitle,
    .common-grid-4cols .common-grid-item > .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-grid-cols .common-grid-item > h3,
    .common-grid-2cols .common-grid-item > h3,
    .common-grid-3cols .common-grid-item > h3,
    .common-grid-4cols .common-grid-item > h3 {
        margin: 2.0vw 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.1px;
    }
    .common-grid-cols .common-grid-item > .pic,
    .common-grid-2cols .common-grid-item > .pic,
    .common-grid-3cols .common-grid-item > .pic,
    .common-grid-4cols .common-grid-item > .pic {
        margin: 2.0vw 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 552 / 319;
    }
    .common-grid-cols .common-grid-item > .pic img,
    .common-grid-2cols .common-grid-item > .pic img,
    .common-grid-3cols .common-grid-item > .pic img,
    .common-grid-4cols .common-grid-item > .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .common-grid-cols .common-grid-item > p,
    .common-grid-2cols .common-grid-item > p,
    .common-grid-3cols .common-grid-item > p,
    .common-grid-4cols .common-grid-item > p {
        margin: 2.0vw 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 28 / 15 );
        letter-spacing: 0.8px;
    }
    .common-grid-cols.cols-center .subtitle,
    .common-grid-2cols.cols-center .subtitle,
    .common-grid-3cols.cols-center .subtitle,
    .common-grid-4cols.cols-center .subtitle {
        text-align: center;
    }
    .common-grid-cols.cols-center h3,
    .common-grid-2cols.cols-center h3,
    .common-grid-3cols.cols-center h3,
    .common-grid-4cols.cols-center h3 {
        text-align: center;
    }
    .common-grid-cols.cols-center p,
    .common-grid-2cols.cols-center p,
    .common-grid-3cols.cols-center p,
    .common-grid-4cols.cols-center p {
        text-align: center;
    }
    .common-grid-cols.cols-center p a,
    .common-grid-2cols.cols-center p a,
    .common-grid-3cols.cols-center p a,
    .common-grid-4cols.cols-center p a {
        font-weight: 500;
        font-family: var(--font-alphabet);
        letter-spacing: 1.2px;
    }
    .common-grid-cols.cols-center p a.tel,
    .common-grid-2cols.cols-center p a.tel,
    .common-grid-3cols.cols-center p a.tel,
    .common-grid-4cols.cols-center p a.tel {
        font-size: 4.8vw;
    }
    .common-grid-cols .common-grid-item.black,
    .common-grid-2cols .common-grid-item.black,
    .common-grid-3cols .common-grid-item.black,
    .common-grid-4cols .common-grid-item.black {
        background: var(--color-black);
    }
    .common-grid-cols .common-grid-item.black > .subtitle,
    .common-grid-2cols .common-grid-item.black > .subtitle,
    .common-grid-3cols .common-grid-item.black > .subtitle,
    .common-grid-4cols .common-grid-item.black > .subtitle {
        color: var(--color-red);
    }
    .common-grid-cols .common-grid-item.black > h3,
    .common-grid-2cols .common-grid-item.black > h3,
    .common-grid-3cols .common-grid-item.black > h3,
    .common-grid-4cols .common-grid-item.black > h3 {
        color: #fff;
    }
    .common-grid-cols .common-grid-item.black > p,
    .common-grid-2cols .common-grid-item.black > p,
    .common-grid-3cols .common-grid-item.black > p,
    .common-grid-4cols .common-grid-item.black > p {
        color: #fff;
        color: #c0c0c0;
    }

    .info-table {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 30.0vw 1fr;
        gap: 0;
        border-top: 1px solid var(--color-border);
    }
    .info-table > dt {
        margin: 0;
        padding: 3.0vw 2.0vw;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        background: #fafafa;
        border-bottom: 1px solid var(--color-border);
    }
    .info-table > dd {
        margin: 0;
        padding: 3.0vw 2.0vw;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        border-bottom: 1px solid var(--color-border);
    }

    .map-flex {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    .map-flex > iframe {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 640 / 412;
        border: 0;
    }
    .map-flex > .info-table {
        margin: 0;
        padding: 0;
        width: 100%;
    }

    .history-info {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
    }
    .history-info > dt {
        position: relative;
        margin: 0;
        padding: 0 0 0 8.0vw;
        color: var(--color-red);
        font-size: 4.0vw;
        font-weight: 500;
        line-height: calc( 32 / 18 );
        letter-spacing: 1px;
        z-index: 0;
    }
    .history-info > dt::before {
        position: absolute;
        content: "";
        top: 2.5vw;
        left: -0.5vw;
        width: 2.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        background: var(--color-red);
        box-shadow:
            0 0 0 1.0vw #fff,
            0 0 0 1.5vw var(--color-border);
        border-radius: 100%;
        z-index: 2;
    }
    .history-info > dt::after {
        position: absolute;
        content: "";
        top: 0;
        left: 0.5vw;
        width: 1px;
        height: 100%;
        background: var(--color-border);
        z-index: 1;
    }
    .history-info > dd {
        position: relative;
        margin: 0;
        padding: 1.0vw 0 8.0vw 8.0vw;
        font-size: 3.6vw;
        font-weight: 400;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        z-index: 0;
    }
    .history-info > dd::after {
        position: absolute;
        content: "";
        top: 0;
        left: 0.5vw;
        width: 1px;
        height: 100%;
        background: var(--color-border);
        z-index: 1;
    }

    .common-half-list {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 2.0vw 2.0vw;
    }
    .common-half-list > .common-half-item {
        margin: 0;
        padding: 2.0vw 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid var(--color-border);
    }
    .common-half-list > .common-half-item span:nth-of-type(1) {
        font-size: 3.6vw;
        font-weight: 500;
        text-align: left;
        line-height: calc( 28 / 18 );
        letter-spacing: 0.8px;
        flex: 0 0 auto;
    }
    .common-half-list > .common-half-item span:nth-of-type(2) {
        flex: 1 0 auto;
        color: #888;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: right;
        line-height: calc( 24 / 18 );
        letter-spacing: 1.2px;
    }

    .common-check-list {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        list-style: none;
    }
    .common-check-list > li {
        position: relative;
        margin: 0;
        padding: 4.0vw 0 4.0vw 12.0vw;
        width: 100%;
        color: #444;
        font-size: 3.6vw;
        font-weight: 500;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
        border-bottom: 1px solid var(--color-border);
    }
    .common-check-list > li:first-child {
        border-top: 1px solid var(--color-border);
    }
    .common-check-list > li::before {
        position: absolute;
        content: "✓";
        top: 4.0vw;
        left: 0;
        color: var(--color-red);
    }        

    .common-check-list-2lines {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        list-style: none;
    }
    .common-check-list-2lines > li {
        margin: 0;
        padding: 4.0vw 0;
        border-bottom: 1px solid var(--color-border);
    }
    .common-check-list-2lines > li:first-child {
        border-top: 1px solid var(--color-border);
    }
    .common-check-list-2lines > li span:nth-of-type(1) {
        position: relative;
        display: block;
        margin: 0;
        padding: 0 0 0 12.0vw;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 500;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
    }
    .common-check-list-2lines > li span:nth-of-type(1)::before {
        position: absolute;
        content: "✓";
        top: 0;
        left: 0;
        color: var(--color-red);
    }        
    .common-check-list-2lines > li span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 6.0vw 0 0 12.0vw;
        width: 100%;
        color: #444;
        font-size: 3.6vw;
        font-weight: 400;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
    }

    .common-black-flex {
        margin: 0 auto;
        padding: 12.0vw 5%;
        width: 100%;
        background: var(--color-black);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    .common-black-flex::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        right: 0;
        translate: 0 -50%;
        width: 100%;
        color: rgba( 255, 255, 255, 0.035 );
        font-size: 22.0vw;
        font-weight: 300;
        text-align: center;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: -0.01em;
        z-index: 1;
    }
    .common-black-flex > .black-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 570 / 428;
        z-index: 2;
    }
    .common-black-flex > .black-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .common-black-flex > .black-info {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        z-index: 2;
    }
    .common-black-flex > .black-info > .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-flex > .black-info > .title {
        margin: 1.0vw 0;
        padding: 0;
        color: #fff;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-flex > .black-info > p {
        margin: 4.0vw 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-flex > .black-info > p span {
        color: var(--color-red);
    }
    .common-black-flex > .black-info > a {
        display: grid;
        place-items: center;
        margin: 8.0vw 0 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 298 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    #reason-list {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    #reason-list > .reason-box {
        margin: 0;
        padding: 8.0vw 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 6.0vw 0;
        border-bottom: 1px solid var(--color-border);
    }
    #reason-list > .reason-box:first-child {
        border-top: 1px solid var(--color-border);
    }
    #reason-list > .reason-box .reason-no {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        color: var(--color-red);
        font-size: 12.0vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.28px;
    }
    #reason-list > .reason-box .reason-no::after {
        position: absolute;
        content: "";
        top: 120%;
        left: 0;
        width: 8.0vw;
        height: 1px;
        background: var(--color-red);
    }
    #reason-list > .reason-box .reason-info {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #reason-list > .reason-box .reason-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    #reason-list > .reason-box .reason-info .title {
        margin: 4.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    #reason-list > .reason-box .reason-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    #reason-list > .reason-box .reason-info p span {
        color: var(--color-red);
    }
    #reason-list > .reason-box .reason-info .reason-last {
        margin: 4.0vw 0 0;
        padding: 0;
        font-size: 2.8vw;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.12px;
    }
    #reason-list > .reason-box .reason-info .reason-last span {
        color: var(--color-red);
        font-size: 6.0vw;
        font-family: var(--font-alphabet);
        letter-spacing: 0.8px;
    }
    #reason-list > .reason-box .reason-info .reason-check {
        margin: 4.0vw 0 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 2.0vw 2.0vw;
    }
    #reason-list > .reason-box .reason-info .reason-check > li {
        margin: 0;
        padding: 1.0em 1.5em;
        width: max-content;
        list-style: none;
        font-size: 2.8vw;
        font-weight: 400;
        line-height: 1.0;
        border: 1px solid var(--color-border);
        border-radius: 4.0em;
    }
    #reason-list > .reason-box .reason-info .reason-check > li::first-letter {
        color: var(--color-red);
    }

    #case-studies {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    #case-studies > h2 {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 0;
        padding: 0 0 0.5em;
        width: 100%;
        font-size: 4.8vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: 2.0;
        letter-spacing: 1.3px;
        border-bottom: 1px solid var(--color-border);
    }
    #case-studies > h2::after {
        content: attr(data-subtitle);
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 2.0;
        letter-spacing: 4.8px;
    }
    #case-studies > .case-studies-grid {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 4.0vw;
    }
    #case-studies > .case-studies-grid .case-studies-item {
        margin: 0;
        padding: 0;
        width: 100%;
        border: 1px solid var(--color-border);
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 419 / 262;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic:empty {
        background: #ccc;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info {
        margin: 0;
        padding: 4.0vw;
        width: 100%;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 1.0vw;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats .case-cat {
        margin: 0;
        padding: 1.0em 2.0em;
        color: #fff;
        font-size: 2.8vw;
        line-height: 1.0;
        letter-spacing: 2.4px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats .case-cat:nth-child(even) {
        color: var(--fg-color);
        background: #fff;
        border: 1px solid var(--color-border);
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-title {
        margin: 2.0vw 0 0;
        padding: 0;
        width: 100%;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.95px;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info p {  
        margin: 4.0vw 0 0;
        padding: 0;
        width: 100%;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
    }

    #job-list {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    #job-list > .job-box {
        margin: 0;
        padding: 6.0vw 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 4.0vw;
        border-bottom: 1px solid var(--color-border);
    }
    #job-list > h3 + .job-box {
        margin-top: 8.0vw;
        border-top: 1px solid var(--color-border);
    }
    #job-list > .job-box .job-no {
        position: relative;
        margin: 0;
        padding: 0;
        width: 12.0vw;
        color: var(--color-red);
        font-size: 4.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: -0.48px;
    }
    #job-list > .job-box .job-info {
        margin: 0;
        padding: 0;
        width: calc( 100% - 12.0vw - 4.0vw );
    }
    #job-list > .job-box .job-info .job-cats {
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 1.0vw 1.0vw;
    }
    #job-list > .job-box .job-info .job-cats .job-cat {
        margin: 0;
        padding: 0.8em 1.0em;
        color: #fff;
        font-size: 2.4vw;
        font-weight: 500;
        line-height: 1.0;
        letter-spacing: 1px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #job-list > .job-box .job-info .title {
        margin: 2.0vw 0;
        padding: 0;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 0.8px;
    }
    #job-list > .job-box .job-info p {
        margin: 2.0wv 0 0;
        padding: 0;
        color: #555;
        font-size: 2.8vw;
        font-weight: 600;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
    }

    .pamphlet-grid {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 4.0vw 0;
    }
    .pamphlet-grid > .pamphlet-item {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: stretch;
        justify-content: space-between;
        border: 1px solid var(--color-border);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic {
        margin: 0;
        padding: 0;
        width: 40%;
        height: 100%;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic:empty {
        background: #ccc;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info {
        margin: 0;
        padding: 4.0vw;
        width: 60%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .title {
        margin: 1.0vw 0;
        padding: 0;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .title span {
        color: var(--color-red);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info p {
        margin: 1.0vw 0 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info p span {
        color: var(--color-red);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .btn-download {
        display: grid;
        place-items: center;
        margin: 6.0vw 0 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 322 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    #contact-form {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
    }
    #contact-form .contact-flex {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: cener;
        justify-content: center;
        gap: 4.0vw 0;
    }
    #contact-form .contact-flex > .contact-item {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #contact-form .contact-box {
        margin: 4.0vw auto 0;
        padding: 0;
        width: 100%;
    }
    #contact-form .contact-flex > .contact-item > .required,
    #contact-form .contact-flex > .contact-item > .not-required,
    #contact-form .contact-box > .required ,
    #contact-form .contact-box > .not-required {
        margin: 0;
        padding: 0;
        width: max-content;
        font-size: 2.8vw;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.3px;
    }
    #contact-form .contact-flex > .contact-item > div,
    #contact-form .contact-box > div {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #contact-form.bg-black .contact-flex > .contact-item > div,
    #contact-form.bg-black .contact-box > div {
        color: #fff;
    }
    #contact-form .required::after {
        display: inline-block;
        content: "必須";
        margin: 0 0 0 2.0vw;
        padding: 0.8em 1.2em;
        width: max-content;
        color: #fff;
        font-size: 2.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.3px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #contact-form div > :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],select,textarea) {
        display: block;
        margin: 0;
        padding: 3.0vw;
        width: 100%;
        font-size: 16px;
        font-weight: 400;
        font-family: inherit;
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0;
        background: #fafafa;
        border: 1px solid var(--color-border);
    }
    #contact-form div > :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],select,textarea)::placeholder {
        color: #757575;
    }
    #contact-form div > textarea {
        height: 10.0em;
    }
    #contact-form .contact-privacy {
        margin: 4.0vw auto 0;
        padding: 4.0vw;
        width: 100%;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
        border: 1px solid var(--color-border);
    }
    #contact-form.bg-black .contact-privacy {
        color: #fff;
    }
    #contact-form .contact-privacy a {
        color: var(--color-red);
        text-decoration: underline;
    }
    #contact-form .ws-agree {
        margin: 4.0vw auto 0;
        padding: 0;
        text-align: center;
    }
    #contact-form .ws-agree label {
        font-size: 3.2vw;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #contact-form.bg-black .ws-agree label {
        color: #fff;
    }
    #contact-form .ws-submit {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 280 / 60;
    }
    #contact-form .ws-submit input[type="submit"] {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        color: #fff;
        font-size: 4.0vw;
        font-weight: 500;
        font-family: inherit;
        text-align: center;
        background: var(--color-red);
        border: 0;
        transition: opacity 0.3s ease-out, background 0.3s ease-out;
        cursor: pointer;
    }
    #contact-form .ws-submit input[type="submit"]:disabled {
        background: #ccc;
        cursor: auto;
    }
    @media ( hover: hover ) {
        #contact-form .ws-submit input[type="submit"]:hover {
            opacity: 0.5;
        }
    }

    #privacy-policy {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    #privacy-policy * {
        word-break: break-all;
    }
    #privacy-policy > h2 {
        margin: 8.0vw 0 2.0vw;
        padding: 0 0 0 0.5em;
        width: 100%;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: calc( 42 / 28 );
        letter-spacing: 1.4px;
        border-left: 4px solid var(--color-red);
    }
    #privacy-policy > h3 {
        margin: 6.0vw 0 2.0vw;
        padding: 0;
        width: 100%;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: calc( 38 / 19 );
        letter-spacing: 0.8px;
    }
    #privacy-policy > p {
        margin: 2.0vw 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > p.bg-beige {
        padding: 4.0vw;
        background: #f7f7f5;
    }
    #privacy-policy > p.created-date {
        margin-top: 8.0vw;
        color: var(--color-red);
        text-align: right;
    }
    #privacy-policy > ul {
        margin: 2.0vw 0 2.0vw 4.0vw;
        padding: 0;
        width: calc( 100% - 4.0vw );
    }
    #privacy-policy > ul li {
        font-size: 3.6vw;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > ol {
        margin: 2.0vw 0 2.0vw 4.0vw;
        padding: 0;
        width: calc( 100% - 4.0vw );
    }
    #privacy-policy > ol li {
        font-size: 3.6vw;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > ol.brace {
        margin-left: 0;
        list-style-type: none;
        counter-reset: step-counter;
        padding-left: 2.0em;
        width: 100%;
    }
    #privacy-policy > ol.brace li {
        counter-increment: step-counter;
        position: relative;
    }
    #privacy-policy > ol.brace li::before {
        content: "(" counter(step-counter) ")";
        position: absolute;
        left: -2.0em;
    }
    @counter-style circle-numbers {
        system: fixed;
        symbols: "①" "②" "③" "④" "⑤" "⑥" "⑦" "⑧" "⑨" "⑩";
        suffix: " ";
    }
    #privacy-policy > ol.circle {
        list-style-type: circle-numbers;
    }
    #privacy-policy > dl {
        margin: 4.0vw auto 0;
        padding: 4.0vw;
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
        gap: 1.0vw 0;
        border: 1px solid var(--color-border);
    }
    #privacy-policy > dl > dt {
        font-size: 3.6vw;
        font-weight: 700;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > dl > dd {
        padding-bottom: 1.0em;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }

    .categories {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 2.0vw 2.0vw;
    }
    .categories .btn-cat {
        margin: 0;
        padding: 0.8em 1.2em;
        font-size: 2.8vw;
        font-weight: 400;
        font-family: inherit;
        line-height: 1.0;
        letter-spacing: 1.0px;
        background: #fff;
        border: 1px solid var(--color-border);
        border-radius: 4.0em;
    }
    .categories .btn-cat.active {
        color: #fff;
        background: var(--color-red);
        border: 1px solid var(--color-red);
    }

    .news-list {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        border-top: 1px solid var(--color-border);
    }
    .news-list > .news-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: space-between;
        gap: 1.0vw 0;
        margin: 0 auto;
        padding: 4.0vw 0;
        width: 100%;
        border-bottom: 1px solid var(--color-border);
    }
    .news-list > .news-item .date {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        color: #555;
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        text-align: left;
        letter-spacing: 2.34px;
    }
    .news-list > .news-item .cat {
        display: block;
        margin: 2.0vw auto 0 0;
        padding: 0.8em 0;
        width: 50%;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 400;
        line-height: 1.0;
        text-align: center;
        letter-spacing: 1.0px;
        border: 1px solid var(--color-red);
        border-radius: 4.0em;
    }
    .news-list > .news-item .title {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        font-size: 3.6vw;
        font-weight: 500;
        line-height: calc( 25.5 / 15 );
        text-align: left;
        letter-spacing: 0.8px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .page-info {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        align-items: center;
        grid-template-columns: 1fr;
    }
    .page-info .page-pos {
    }
    .page-info .page-numbers {
        margin: 0;
        padding: 0;
        width: 100%;
        list-style: none;
        border: 0;
        display: flex;
        align-items: stretch;
        justify-content: center;
        gap: 0 1.0vw;
    }
    .page-info ul.page-numbers li {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 8.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 3.2vw;
        font-family: var(--font-alphabet);
        font-weight: 400;
        list-style: none;
    }
    .page-info ul.page-numbers li .page-numbers {
        position: relative;
        display: grid;
        place-items: center;
        margin: 0;
        width: 8.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 3.2vw;
        font-family: var(--font-alphabet);
        font-weight: 400;
        text-align: center;
        background: #fff;
        border: 1px solid var(--color-border);
        overflow: hidden;
    }
    .page-info ul.page-numbers li .page-numbers.current {
        color: #fff;
        background: var(--color-red);
        border-color: var(--color-red);
    }
    .page-info ul.page-numbers li .page-numbers.next {
    }
    .page-info ul.page-numbers li .page-numbers.next::after {
    }
    .page-info ul.page-numbers li .page-numbers.prev {
    }
    .page-info ul.page-numbers li .page-numbers.prev::after {
    }
    .page-info ul.page-numbers li .page-numbers.dots {
    }

    #products-faq {
        margin: 0 auto;
        padding: 16.0vw 5%;
        width: 100%;
    }
    #products-faq > h3 + .faq-box {
        margin-top: 8.0vw;
        border-top: 1px solid var(--color-border);
    }
    #products-faq > .faq-box {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        border-bottom: 1px solid var(--color-border);
    }
    #products-faq > .faq-box .faq-q {
        margin: 0;
        padding: 4.0vw 0 1.0vw;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: calc( 27 / 18 );
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-q::before {
        display: block;
        margin: 0;
        padding: 0;
        width: 8.0vw;
        flex: 0 0 8.0vw;
        content: "Q";
        color: var(--color-red);
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-a {
        margin: 0;
        padding: 1.0vw 0 4.0vw;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        color: #444;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-a::before {
        display: block;
        margin: 0;
        padding: 0;
        width: 8,0vw;
        flex: 0 0 8.0vw;
        content: "A";
        color: #000;
        font-size: 4.0vw;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0.8px;
    }

    #form-done {
        margin: 60px auto 0;
        padding: 12.0vw 5%;
        width: 100%;
    }
    #form-done > .done-icon {
        display: block;
        margin: 0 auto;
        padding: 0;
        width: 20.0vw;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #form-done > .done-icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    #form-done > h1 {
        margin: 2.0vw auto 0;
        padding: 0;
        font-size: 8.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 2.4px;
    }
    #form-done > p {
        margin: 4.0vw auto 0;
        padding: 0;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #form-done > .btn-back {
        display: grid;
        place-items: center;
        margin: 8.0vw auto 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 350 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-black);
    }

    #single-post-contents {
        margin: 0 auto;
        padding: 120px 0;
        width: 90%;
        max-width: 800px;
    }
    #single-post-contents h2 {
        margin: 48px 0 0;
        padding: 0;
        width: 100%;
        color: var(--color-red);
        font-size: 28px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: calc( 42 / 28 );
        letter-spacing: 1.4px;
    }
    #single-post-contents h3 {
        margin: 32px 0 0;
        padding: 0 0 0 20px;
        width: 100%;
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.4px;
        border-left: 4px solid var(--color-red);
    }
    #single-post-contents figure {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #single-post-contents figure:empty {
        background: #ccc;
    }
    #single-post-contents p {
        margin: 20px 0 0;
        padding: 0;
        width: 100%;
        font-size: 15px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 15 );
        letter-spacing: 0.8px;
    }
    #single-post-contents figure + p {
        margin-top: 48px;
    }
    #single-post-contents h3 + p {
        margin-top: 32px;
    }
    #single-post-contents .btn-back {
        display: grid;
        place-items: center;
        margin: 80px auto 0;
        padding: 0;
        width: 350px;
        height: auto;
        aspect-ratio: 350 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-black);
    }

    .spec-table-3cols {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 24% 38% 38%;
        gap: 0;
    }
    .spec-table-4cols {
        margin: 8.0vw auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 25% 25% 25% 25%;
        gap: 0;
    }
    .spec-table-3cols > div,
    .spec-table-4cols > div {
        margin: 0;
        padding: 2.0vw 0;
        width: 100%;
        word-break: break-all;
    }
    .spec-table-3cols > div:nth-of-type(n+1),
    .spec-table-4cols > div:nth-of-type(n+1) {
        border-right: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(1),
    .spec-table-4cols > div:nth-of-type(1) {
        color: var(--color-red);
        font-size: 4.0vw;
        font-weight: 500;
        line-height: 1.0;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(1) {
        grid-column: span 3;
    }
    .spec-table-4cols > div:nth-of-type(1) {
        grid-column: span 4;
    }
    .spec-table-3cols > div:nth-of-type(2),
    .spec-table-4cols > div:nth-of-type(2) {
        border-left: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(2),
    .spec-table-3cols > div:nth-of-type(3),
    .spec-table-3cols > div:nth-of-type(4),
    .spec-table-4cols > div:nth-of-type(2),
    .spec-table-4cols > div:nth-of-type(3),
    .spec-table-4cols > div:nth-of-type(4),
    .spec-table-4cols > div:nth-of-type(5) {
        padding-left: 2.0vw;
        padding-right: 2.0vw;
        color: #fff;
        font-size: 2.8vw;
        font-weight: 500;
        line-height: 2.0;
        letter-spacing: 0.7px;
        background: var(--color-black);
    }
    .spec-table-3cols > div:nth-of-type(n+5),
    .spec-table-4cols > div:nth-of-type(n+6) {
        padding-left: 2.0vw;
        padding-right: 2.0vw;
        font-size: 2.8vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 2.0;
        letter-spacing: 0.28px;
    }
    .spec-table-3cols > div:nth-of-type(3n+5),
    .spec-table-4cols > div:nth-of-type(4n+6) {
        font-weight: 600;
        border-left: 1px solid var(--color-border);
    }

    .lineup-table {
        margin: 8.0vw auto 0;
        padding: 0;
        display: grid;
        grid-template-columns: 20% 22% 22% 16% 20%;
        gap: 0;
        border-top: 1px solid var(--color-border);
        border-left: 1px solid var(--color-border);
    }
    .lineup-table > div {
        margin: 0;
        padding: 1.0vw 2.0vw;
        border-right: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        word-break: break-all;
    }
    .lineup-table > div:nth-of-type(1),
    .lineup-table > div:nth-of-type(2),
    .lineup-table > div:nth-of-type(3),
    .lineup-table > div:nth-of-type(4),
    .lineup-table > div:nth-of-type(5) {
        color: #fff;
        font-size: 2.8vw;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.7px;
        background: var(--color-black);
    }
    .lineup-table > div:nth-of-type(n+6) {
        font-size: 2.8vw;
        font-weight: 400;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.28px;
    }
    .lineup-table > div:nth-of-type(11),
    .lineup-table > div:nth-of-type(12),
    .lineup-table > div:nth-of-type(13),
    .lineup-table > div:nth-of-type(14),
    .lineup-table > div:nth-of-type(15) {
        background: #f7f7f5;
    }
    .lineup-memo {
        margin: 4.0vw 0 0;
        padding: 0;
        font-size: 3.2vw;
        font-weight: 400;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }

    #vent-society {
        margin: 0 auto;
        padding: 12.0vw 5%;
        width: 100%;
    }
    #vent-society > .society-box {
        margin: 0 auto;
        padding: 6.0vw;
        width: 100%;
        background: var(--color-black);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 8.0vw 0;
    }
    #vent-society > .society-box > .society-info {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #vent-society > .society-box > .society-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 2.8vw;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    #vent-society > .society-box > .society-info .title {
        margin: 8px 0;
        padding: 0;
        color: #fff;
        font-size: 6.0vw;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    #vent-society > .society-box > .society-info p {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    #vent-society > .society-box > a {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 80%;
        height: auto;
        aspect-ratio: 225 / 64;
        color: #fff;
        font-size: 3.6vw;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

}


/**
 * PC用設定
 */
@media ( width >= 768px ) {

    #page-mv {
        margin: 80px auto 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1512 / 524;
        background: var(--color-black);
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        z-index: 0;
    }
    #page-mv::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        right: 0;
        translate: 0 -50%;
        color: rgba( 255, 255, 255, 0.04 );
        font-size: 22.0vw;
        font-weight: 300;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: -9.6px;
        z-index: 0;
    }
    #page-mv > .mv-box {
        margin: 0;
        padding: 0 5%;
        width: 100%;
        z-index: 1;
    }
    #page-mv > .mv-box > #breadcrumbs {
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
    }
    #page-mv > .mv-box > #breadcrumbs :is(a,span) {
        margin: 0;
        padding: 0;
        font-size: 11px;
        line-height: 1.0;
        letter-spacing: 2.64px;
    }
    #page-mv > .mv-box > #breadcrumbs a {
        color: var(--color-red);
    }
    #page-mv > .mv-box > #breadcrumbs span {
        color: #c0c0c0;
    }
    #page-mv > .mv-box > .mv-attr {
        margin: 24px 0 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    #page-mv > .mv-box > .mv-attr > .mv-cat {
        margin: 0;
        padding: 0.8em 1.2em;;
        color: #fff;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.0;
        letter-spacing: 1px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #page-mv > .mv-box > .mv-attr > .mv-date {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 12px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 2.88px;
    }
    #page-mv > .mv-box > h1 {
        margin: 24px 0 0;
        padding: 0;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 84px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1)  span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        color: #fff;
        font-size: 84px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.686px;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1) span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 84px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.686px;
    }
    #page-mv > .mv-box > h1 div:nth-of-type(1):empty + div:nth-of-type(2) {
        margin-top: 0;
        font-family: var(--font-gothic);
    }
    #page-mv > .mv-box > h1 div:nth-of-type(2) {
        margin: 24px 0 0;
        padding: 0;
        color: #fff;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.92px;
    }
    #page-mv > .mv-box > .subtitle {
        margin: 24px 0 0;
        padding: 0;
        color: #fff;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.92px;
    }
    #page-mv > .mv-box > p {
        margin: 28px 0 0;
        padding: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }

    .h2-left {
        margin: 0;
        padding: 0;
        font-size: 76px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0 24px;
    }
    .h2-left span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        font-size: 76px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-left span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 76px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }

    .h2-red {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 76px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }

    .h2-center {
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 24px 0;
        color: var(--color-red);
        font-size: 76px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-center span:nth-of-type(1) {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 76px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52px;
    }
    .h2-center span:nth-of-type(2) {
        margin: 0;
        padding: 0;
        color: var(--fg-color);
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }

    .h3-center {
        margin: 24px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }
    .bg-black .h3-center {
        color: #fff;
    }
    .h3-left {
        margin: 24px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }
    .bg-black .h3-left {
        color: #fff;
    }
    h3 {
        margin: 24px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 1.92px;
    }

    .p-center {
        margin: 24px 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    .bg-black .p-center {
        color: #fff;
    }

    .common-page-first {
        margin: 0 auto;
        padding: 120px 5%;
    }
    .common-page-first > .page-first-flex {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 72px;
    }
    .common-page-first > .page-first-flex .page-first-pic {
        margin: 0;
        padding: 0;
        width: 50%;
        height: auto;
    }
    .common-page-first > .page-first-flex .page-first-pic:empty {
        background: #ccc;
        aspect-ratio: 686 / 549;
    }
    .common-page-first > .page-first-flex .page-first-info {
        margin: 0;
        padding: 0;
        width: calc( 50% - 72px );
    }
    .common-page-first > .page-first-flex .page-first-info p {
        margin: 0;
        padding: 0;
        font-size: 17px;
        font-weight: 400;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-page-first > .page-first-flex .page-first-info p + p {
        margin-top: 1.5em;
    }
    .common-page-first > .page-first-flex .page-first-info p span {
        color: var(--color-red);
        font-weight: 500;
    }
    .common-page-first > .page-first-flex .page-first-info p.signature {
        font-size: 20px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: right;
    }
    .common-page-first > .page-first-flex .page-first-info .btn-common {
        display: grid;
        place-items: center;
        margin: 48px 0 0;
        padding: 0;
        width: 233px;
        height: auto;
        aspect-ratio: 233 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .common-black-msg {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
        background: var(--color-black);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 0;
    }
    .common-black-msg::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        left: 0;
        translate: 0 -50%;
        width: 100%;
        color: rgba( 255, 255, 255, 0.04 );
        font-size: 22.0vw;
        font-weight: 300;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 1.0;
        letter-spacing: -9.6px;
        z-index: 0;
    }
    .common-black-msg[data-bg="750"]::before {
        font-size: 600px;
    }
    .common-black-msg > .msg-box {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        z-index: 1;
    }
    .common-black-msg > .msg-box .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-msg > .msg-box .title1 {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .title1 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-msg > .msg-box p span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box .title2 {
        margin: 20px 0 0;
        padding: 0;
        color: #fff;
        font-size: 40px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .list {
        margin: 20px 0 0;
        padding: 0;
        color: #fff;
        font-size: 24px;
        font-weight: 500;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    .common-black-msg > .msg-box .list + .list {
        margin-top: 0;
    }
    .common-black-msg > .msg-box .title3 {
        margin: 72px 0 0;
        padding: 0;
        color: var(--color-red);
        font-size: 76px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        font-style: italic;
        text-align: center;
        line-height: 1.0;
        letter-spacing: -1.52x;
    }
    .common-black-msg > .msg-box .title4 {
        margin: 20px 0 0;
        padding: 0;
        color: #fff;
        font-size: 48px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-box .title4 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-box .no {
        color: #fff;
        font-size: 20px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        letter-spacing: 4px;
    }
    .common-black-msg > .msg-box .no span {
        color: var(--color-red);
        font-size: 180px;
        font-family: var(--font-alphabet);
        letter-spacing: -3.6px;
    }
    .common-black-msg > .msg-flex {
        position: relative;
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 64px;
        z-index: 1;
    }
    .common-black-msg > .msg-flex .msg-info {
        margin: 0;
        padding: 0;
        width: calc( 50% - 32px );
    }
    .common-black-msg > .msg-flex .msg-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-msg > .msg-flex .msg-info .title1 {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-msg > .msg-flex .msg-info .title1 span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-flex .msg-info p {
        margin: 1.0em 0 0;
        padding: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 400;
        text-align: center;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-msg > .msg-flex .msg-info p span {
        color: var(--color-red);
    }
    .common-black-msg > .msg-flex .msg-pic {
        margin: 0;
        padding: 0;
        width: calc( 50% - 32px );
        height: auto;
        aspect-ratio: 566 / 708;
    }
    .common-black-msg > .msg-flex .msg-pic:empty {
        background: #ccc;
    }
    .common-black-msg > .msg-flex .msg-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .common-page-sec {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
    }
    .common-page-sec.bg-beige {
        background: #f7f7f5;
    }
    .common-page-sec.bg-black {
        background: var(--color-black);
    }

    .common-page-flex {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 72px;
    }
    .common-page-flex .common-flex-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: calc( 50% - 36px );
        height: auto;
        background: #ccc;
    }
    .common-page-flex .common-flex-pic:empty {
        background: #ccc;
        aspect-ratio: 594 / 445;
    }
    .common-page-flex .common-flex-pic figcaption {
        position: absolute;
        top: 5%;
        left: 5%;
        color: #fff;
        font-size: 42px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: -0.84px;
    }
    .common-page-flex .common-flex-info {
        margin: 0;
        padding: 0;
        width: calc( 50% - 36px );
    }
    .common-page-flex .common-flex-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-page-flex .common-flex-info .title {
        margin: 20px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-page-flex .common-flex-info .title span {
        color: var(--color-red);
    }
    .common-page-flex .common-flex-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-page-flex .common-flex-info p span {
        color: var(--color-red);
    }
    .common-page-flex .common-flex-info .btn-common {
        display: grid;
        place-items: center;
        margin: 32px 0 0;
        padding: 0;
        width: 202px;
        height: auto;
        aspect-ratio: 202 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .beige-box {
        margin: 40px auto 0;
        padding: 76px 56px 56px;
        width: 100%;
        background: #f7f7f5;
        border: 1px solid var(--color-border);
    }
    .beige-box > p {
        margin: 0;
        padding: 0;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    .beige-box > .btn-common {
        display: grid;
        place-items: center;
        margin: 28px auto 0;
        padding: 0;
        width: 282px;
        height: auto;
        aspect-ratio: 282 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    .common-grid-cols,
    .common-grid-2cols,
    .common-grid-3cols,
    .common-grid-4cols {
        margin: 64px 0 0;
        padding: 0;
        width: 100%;
        display: grid;
        gap: 24px 24px;
    }
    .common-grid-cols.two-cols,
    .common-grid-2cols {
        grid-template-columns: repeat( 2, 1fr );
    }
    .common-grid-cols.three-cols,
    .common-grid-3cols {
        grid-template-columns: repeat( 3, 1fr );
    }
    .common-grid-cols.four-cols,
    .common-grid-4cols {
        grid-template-columns: repeat( 4, 1fr );
        gap: 20px;
    }
    .common-grid-cols.five-cols {
        grid-template-columns: repeat( 3, 1fr );
        gap: 16px;
    }
    .common-grid-cols.six-cols {
        grid-template-columns: repeat( 3, 1fr );
        gap: 16px;
    }
    .common-grid-cols .common-grid-item,
    .common-grid-2cols .common-grid-item,
    .common-grid-3cols .common-grid-item,
    .common-grid-4cols .common-grid-item {
        position: relative;
        display: block;
        margin: 0;
        padding: 40px;
        width: 100%;
        background: #fff;
        border: 1px solid var(--color-border);
    }
    .common-grid-cols.five-cols .common-grid-item,
    .common-grid-cols.six-cols .common-grid-item {
        padding: 32px 24px;
    }
    .common-grid-cols .common-grid-item > .no,
    .common-grid-2cols .common-grid-item > .no,
    .common-grid-3cols .common-grid-item > .no,
    .common-grid-4cols .common-grid-item > .no {
        position: absolute;
        top: 20px;
        right: 20px;
        color: rgba( 255, 255, 255, 0.08 );
        font-size: 80px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: 0.8px;
    }
    .common-grid-cols .common-grid-item > .subtitle,
    .common-grid-2cols .common-grid-item > .subtitle,
    .common-grid-3cols .common-grid-item > .subtitle,
    .common-grid-4cols .common-grid-item > .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-grid-cols.five-cols .common-grid-item > .subtitle,
    .common-grid-cols.six-cols .common-grid-item > .subtitle {
        font-size: 24px;
    }
    .common-grid-cols .common-grid-item > h3,
    .common-grid-2cols .common-grid-item > h3,
    .common-grid-3cols .common-grid-item > h3,
    .common-grid-4cols .common-grid-item > h3 {
        margin: 12px 0;
        padding: 0;
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.1px;
    }
    .common-grid-cols.five-cols .common-grid-item > h3 {
        font-size: 16px;
    }
    .common-grid-cols.six-cols .common-grid-item > h3 {
        font-size: 18px;
    }
    .common-grid-cols .common-grid-item > .pic,
    .common-grid-2cols .common-grid-item > .pic,
    .common-grid-3cols .common-grid-item > .pic,
    .common-grid-4cols .common-grid-item > .pic {
        margin: 12px 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 552 / 319;
    }
    .common-grid-cols .common-grid-item > .pic img,
    .common-grid-2cols .common-grid-item > .pic img,
    .common-grid-3cols .common-grid-item > .pic img,
    .common-grid-4cols .common-grid-item > .pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .common-grid-cols .common-grid-item > p,
    .common-grid-2cols .common-grid-item > p,
    .common-grid-3cols .common-grid-item > p,
    .common-grid-4cols .common-grid-item > p {
        margin: 12px 0;
        padding: 0;
        font-size: 15px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 28 / 15 );
        letter-spacing: 0.8px;
    }
    .common-grid-cols.six-cols .common-grid-item > p {
        color: #555;
        font-size: 14px;
    }
    .common-grid-cols.cols-center .subtitle,
    .common-grid-2cols.cols-center .subtitle,
    .common-grid-3cols.cols-center .subtitle,
    .common-grid-4cols.cols-center .subtitle {
        text-align: center;
    }
    .common-grid-cols.cols-center h3,
    .common-grid-2cols.cols-center h3,
    .common-grid-3cols.cols-center h3,
    .common-grid-4cols.cols-center h3 {
        text-align: center;
    }
    .common-grid-cols.cols-center p,
    .common-grid-2cols.cols-center p,
    .common-grid-3cols.cols-center p,
    .common-grid-4cols.cols-center p {
        text-align: center;
    }
    .common-grid-cols.cols-center p a,
    .common-grid-2cols.cols-center p a,
    .common-grid-3cols.cols-center p a,
    .common-grid-4cols.cols-center p a {
        font-weight: 500;
        font-family: var(--font-alphabet);
        letter-spacing: 1.2px;
    }
    .common-grid-cols.cols-center p a.tel,
    .common-grid-2cols.cols-center p a.tel,
    .common-grid-3cols.cols-center p a.tel,
    .common-grid-4cols.cols-center p a.tel {
        font-size: 24px;
    }
    .common-grid-cols .common-grid-item.black,
    .common-grid-2cols .common-grid-item.black,
    .common-grid-3cols .common-grid-item.black,
    .common-grid-4cols .common-grid-item.black {
        background: var(--color-black);
    }
    .common-grid-cols.four-cols .common-grid-item.black,
    .common-grid-4cols .common-grid-item.black {
        padding: 32px 24px;
    }
    .common-grid-cols .common-grid-item.black > .subtitle,
    .common-grid-2cols .common-grid-item.black > .subtitle,
    .common-grid-3cols .common-grid-item.black > .subtitle,
    .common-grid-4cols .common-grid-item.black > .subtitle {
        color: var(--color-red);
        font-size: 12px;
    }
    .common-grid-cols.four-cols .common-grid-item.black > .subtitle,
    .common-grid-4cols .common-grid-item.black > .subtitle {
        font-size: 12px;
    }
    .common-grid-cols .common-grid-item.black > h3,
    .common-grid-2cols .common-grid-item.black > h3,
    .common-grid-3cols .common-grid-item.black > h3,
    .common-grid-4cols .common-grid-item.black > h3 {
        color: #fff;
    }
    .common-grid-cols.four-cols .common-grid-item.black > h3,
    .common-grid-4cols .common-grid-item.black > h3 {
        font-size: 20px;
    }
    .common-grid-cols .common-grid-item.black > p,
    .common-grid-2cols .common-grid-item.black > p,
    .common-grid-3cols .common-grid-item.black > p,
    .common-grid-4cols .common-grid-item.black > p {
        color: #fff;
        color: #c0c0c0;
    }
    .common-grid-cols.four-cols .common-grid-item.black > p,
    .common-grid-4cols .common-grid-item.black > p {
        font-size: 15px;
    }

    .info-table {
        margin: 64px auto 0;
        padding: 0;
        width: 90%;
        max-width: 900px;
        display: grid;
        grid-template-columns: 200px 1fr;
        gap: 0;
        border-top: 1px solid var(--color-border);
    }
    .info-table > dt {
        margin: 0;
        padding: 22px 24px;
        width: 100%;
        font-size: 16px;
        font-weight: 500;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        background: #fafafa;
        border-bottom: 1px solid var(--color-border);
    }
    .info-table > dd {
        margin: 0;
        padding: 22px 24px;
        width: 100%;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        border-bottom: 1px solid var(--color-border);
    }

    .map-flex {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 40px;
    }
    .map-flex > iframe {
        display: block;
        margin: 0;
        padding: 0;
        width: calc( 50% - 20px );
        height: auto;
        aspect-ratio: 640 / 412;
        border: 0;
    }
    .map-flex > .info-table {
        margin: 0;
        padding: 0;
        width: calc( 50% - 20px );
        max-width: calc( 50% - 20px );
    }

    .history-info {
        margin: 64px auto 0;
        padding: 0;
        width: 90%;
        max-width: 900px;
    }
    .history-info > dt {
        position: relative;
        margin: 0;
        padding: 0 0 0 40px;
        color: var(--color-red);
        font-size: 18px;
        font-weight: 500;
        line-height: calc( 32 / 18 );
        letter-spacing: 1px;
        z-index: 0;
    }
    .history-info > dt::before {
        position: absolute;
        content: "";
        top: 10px;
        left: 5px;
        width: 12px;
        height: auto;
        aspect-ratio: 1 / 1;
        /* background: radial-gradient( circle, var(--color-red) 50%, #fff 50% ); */
        background: var(--color-red);
        box-shadow:
            0 0 0 4px #fff,
            0 0 0 5px var(--color-border);
        border-radius: 100%;
        z-index: 2;
    }
    .history-info > dt::after {
        position: absolute;
        content: "";
        top: 0;
        left: 11px;
        width: 1px;
        height: 100%;
        background: var(--color-border);
        z-index: 1;
    }
    .history-info > dd {
        position: relative;
        margin: 0;
        padding: 8px 0 40px 40px;
        font-size: 16px;
        font-weight: 400;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
        z-index: 0;
    }
    .history-info > dd::after {
        position: absolute;
        content: "";
        top: 0;
        left: 11px;
        width: 1px;
        height: 100%;
        background: var(--color-border);
        z-index: 1;
    }

    .common-half-list {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 2, 1fr );
        gap: 12px 40px;
    }
    .common-half-list > .common-half-item {
        margin: 0;
        padding: 14px 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        border-bottom: 1px solid var(--color-border);
    }
    .common-half-list > .common-half-item span:nth-of-type(1) {
        font-size: 18px;
        font-weight: 500;
        text-align: left;
        line-height: calc( 28 / 18 );
        letter-spacing: 0.8px;
    }
    .common-half-list > .common-half-item span:nth-of-type(2) {
        color: #888;
        font-size: 18px;
        font-weight: 400;
        text-align: right;
        line-height: calc( 24 / 18 );
        letter-spacing: 1.2px;
    }

    .common-check-list {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        list-style: none;
    }
    .common-check-list > li {
        position: relative;
        margin: 0;
        padding: 22px 0 22px 60px;
        width: 100%;
        color: #444;
        font-size: 18px;
        font-weight: 500;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
        border-bottom: 1px solid var(--color-border);
    }
    .common-check-list > li:first-child {
        border-top: 1px solid var(--color-border);
    }
    .common-check-list > li::before {
        position: absolute;
        content: "✓";
        top: 22px;
        left: 0;
        color: var(--color-red);
    }        

    .common-check-list-2lines {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        list-style: none;
    }
    .common-check-list-2lines > li {
        margin: 0;
        padding: 22px 0;
        border-bottom: 1px solid var(--color-border);
    }
    .common-check-list-2lines > li:first-child {
        border-top: 1px solid var(--color-border);
    }
    .common-check-list-2lines > li span:nth-of-type(1) {
        position: relative;
        display: block;
        margin: 0;
        padding: 0 0 0 60px;
        width: 100%;
        font-size: 18px;
        font-weight: 500;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
    }
    .common-check-list-2lines > li span:nth-of-type(1)::before {
        position: absolute;
        content: "✓";
        top: 0;
        left: 0;
        color: var(--color-red);
    }        
    .common-check-list-2lines > li span:nth-of-type(2) {
        display: block;
        margin: 0;
        padding: 32px 0 0 60px;
        width: 100%;
        color: #444;
        font-size: 16px;
        font-weight: 400;
        line-height: calc( 28.5 / 18 );
        letter-spacing: 0.8px;
        list-style: none;
    }

    .common-black-flex {
        margin: 0 auto;
        padding: 120px max( 5%, calc( 50vw - 660px ) );
        width: 100%;
        background: var(--color-black);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 60px;
    }
    .common-black-flex::before {
        position: absolute;
        content: attr(data-bg);
        top: 50%;
        right: 0;
        translate: 0 -50%;
        color: rgba( 255, 255, 255, 0.035 );
        font-size: 22.0vw;
        font-weight: 300;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        letter-spacing: -0.01em;
        z-index: 1;
    }
    .common-black-flex > .black-pic {
        position: relative;
        margin: 0;
        padding: 0;
        width: calc( 50% - 30px );
        height: auto;
        aspect-ratio: 570 / 428;
        z-index: 2;
    }
    .common-black-flex > .black-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .common-black-flex > .black-info {
        position: relative;
        margin: 0;
        padding: 0;
        width: calc( 50% - 30px );
        z-index: 2;
    }
    .common-black-flex > .black-info > .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .common-black-flex > .black-info > .title {
        margin: 8px 0;
        padding: 0;
        color: #fff;
        font-size: 40px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .common-black-flex > .black-info > p {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    .common-black-flex > .black-info > p span {
        color: var(--color-red);
    }
    .common-black-flex > .black-info > a {
        display: grid;
        place-items: center;
        margin: 56px 0 0;
        padding: 0;
        width: 298px;
        height: auto;
        aspect-ratio: 298 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    #reason-list {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
    }
    #reason-list > .reason-box {
        margin: 0;
        padding: 60px 0;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 40px;
        border-bottom: 1px solid var(--color-border);
    }
    #reason-list > .reason-box:first-child {
        border-top: 1px solid var(--color-border);
    }
    #reason-list > .reason-box .reason-no {
        position: relative;
        margin: 0;
        padding: 0;
        width: 160px;
        color: var(--color-red);
        font-size: 64px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: -1.28px;
    }
    #reason-list > .reason-box .reason-no::after {
        position: absolute;
        content: "";
        top: 120%;
        left: 0;
        width: 40px;
        height: 1px;
        background: var(--color-red);
    }
    #reason-list > .reason-box .reason-info {
        margin: 0;
        padding: 0;
        width: calc( 100% - 160px - 40px );
    }
    #reason-list > .reason-box .reason-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    #reason-list > .reason-box .reason-info .title {
        margin: 20px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    #reason-list > .reason-box .reason-info p {
        margin: 1.0em 0 0;
        padding: 0;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    #reason-list > .reason-box .reason-info p span {
        color: var(--color-red);
    }
    #reason-list > .reason-box .reason-info .reason-last {
        margin: 28px 0 0;
        padding: 0;
        font-size: 14px;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.12px;
    }
    #reason-list > .reason-box .reason-info .reason-last span {
        color: var(--color-red);
        font-size: 36px;
        font-family: var(--font-alphabet);
        letter-spacing: 0.8px;
    }
    #reason-list > .reason-box .reason-info .reason-check {
        margin: 28px 0 0;
        padding: 0;
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 10px 10px;
    }
    #reason-list > .reason-box .reason-info .reason-check > li {
        margin: 0;
        padding: 1.0em 1.5em;
        width: max-content;
        list-style: none;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.0;
        border: 1px solid var(--color-border);
        border-radius: 4.0em;
    }
    #reason-list > .reason-box .reason-info .reason-check > li::first-letter {
        color: var(--color-red);
    }

    #case-studies {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
    }
    #case-studies > h2 {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 0;
        padding: 0 0 0.5em;
        width: 100%;
        font-size: 26px;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: 2.0;
        letter-spacing: 1.3px;
        border-bottom: 1px solid var(--color-border);
    }
    #case-studies > h2::after {
        content: attr(data-subtitle);
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 12px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 2.0;
        letter-spacing: 4.8px;
    }
    #case-studies > .case-studies-grid {
        margin: 40px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 3, 1fr );
        gap: 28px 28px;
    }
    #case-studies > .case-studies-grid .case-studies-item {
        margin: 0;
        padding: 0;
        width: 100%;
        border: 1px solid var(--color-border);
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic {
        margin: 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 419 / 262;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic:empty {
        background: #ccc;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info {
        margin: 0;
        padding: 28px;
        width: 100%;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats .case-cat {
        margin: 0;
        padding: 1.0em 2.0em;
        color: #fff;
        font-size: 10px;
        line-height: 1.0;
        letter-spacing: 2.4px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-cats .case-cat:nth-child(even) {
        color: var(--fg-color);
        background: #fff;
        border: 1px solid var(--color-border);
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info .case-title {
        margin: 15px 0 0;
        padding: 0;
        width: 100%;
        font-size: 19px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.95px;
    }
    #case-studies > .case-studies-grid .case-studies-item .case-info p {  
      margin: 32px 0 0;
        padding: 0;
        width: 100%;
        font-size: 13px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
    }

    #job-list {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
    }
    #job-list > h3 + .job-box {
        margin-top: 64px;
        border-top: 1px solid var(--color-border);
    }
    #job-list > .job-box {
        margin: 0;
        padding: 40px 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 40px;
        border-bottom: 1px solid var(--color-border);
    }
    #job-list > .job-box:first-child {
        border-top: 1px solid var(--color-border);
    }
    #job-list > .job-box .job-no {
        position: relative;
        margin: 0;
        padding: 0;
        width: 120px;
        color: var(--color-red);
        font-size: 24px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: -0.48px;
    }
    #job-list > .job-box .job-info {
        margin: 0;
        padding: 0;
        width: calc( 100% - 120px - 40px );
    }
    #job-list > .job-box .job-info .job-cats {
        margin: 0;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 10px 10px;
    }
    #job-list > .job-box .job-info .job-cats .job-cat {
        margin: 0;
        padding: 0.8em 1.0em;
        color: #fff;
        font-size: 10px;
        font-weight: 500;
        line-height: 1.0;
        letter-spacing: 1px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #job-list > .job-box .job-info .title {
        margin: 12px 0;
        padding: 0;
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 0.8px;
    }
    #job-list > .job-box .job-info p {
        margin: 12px 0 0;
        padding: 0;
        color: #555;
        font-size: 13px;
        font-weight: 600;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
    }

    .pamphlet-grid {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: repeat( 2, 1fr );
        gap: 32px 32px;
    }
    .pamphlet-grid > .pamphlet-item {
        margin: 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: stretch;
        justify-content: space-between;
        border: 1px solid var(--color-border);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic {
        margin: 0;
        padding: 0;
        width: 40%;
        height: 100%;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic:empty {
        background: #ccc;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-pic img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info {
        margin: 0;
        padding: 28px;
        width: 60%;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .title {
        margin: 8px 0;
        padding: 0;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .title span {
        color: var(--color-red);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info p {
        margin: 8px 0 0;
        padding: 0;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
        flex: 1 0 auto;
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info p span {
        color: var(--color-red);
    }
    .pamphlet-grid > .pamphlet-item .pamphlet-info .btn-download {
        display: grid;
        place-items: center;
        margin: 32px 0 0;
        padding: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 322 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

    #contact-form {
        margin: 64px auto 0;
        padding: 0;
        width: 90%;
        max-width: 720px;
    }
    #contact-form .contact-flex {
        margin: 28px auto 0;
        padding: 0;
        width: 100%;
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0 20px;
    }
    #contact-form .contact-flex > .contact-item {
        margin: 0;
        padding: 0;
        width: calc( 50% - 10px );
    }
    #contact-form .contact-box {
        margin: 28px auto 0;
        padding: 0;
        width: 100%;
    }
    #contact-form .contact-flex > .contact-item > .required,
    #contact-form .contact-flex > .contact-item > .not-required,
    #contact-form .contact-box > .required ,
    #contact-form .contact-box > .not-required {
        margin: 0;
        padding: 0;
        width: max-content;
        font-size: 13px;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 1.3px;
    }
    #contact-form .contact-flex > .contact-item > div,
    #contact-form .contact-box > div {
        margin: 0;
        padding: 0;
        width: 100%;
    }
    #contact-form.bg-black .contact-flex > .contact-item > div,
    #contact-form.bg-black .contact-box > div {
        color: #fff;
    }
    #contact-form .required::after {
        display: inline-block;
        content: "必須";
        margin: 0 0 0 16px;
        padding: 0.8em 1.2em;
        width: max-content;
        color: #fff;
        font-size: 10px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        letter-spacing: 1.3px;
        background: var(--color-red);
        border-radius: 4.0em;
    }
    #contact-form div :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],select,textarea) {
        display: block;
        margin: 0;
        padding: 20px;
        width: 100%;
        font-size: 16px;
        font-weight: 400;
        font-family: inherit;
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0;
        background: #fafafa;
        border: 1px solid var(--color-border);
    }
    #contact-form div :is(input[type="text"],input[type="email"],input[type="tel"],input[type="number"],input[type="date"],select,textarea)::placeholder {
        color: #757575;
    }
    #contact-form div textarea {
        height: 10.0em;
    }
    #contact-form .contact-privacy {
        margin: 28px auto 0;
        padding: 24px;
        width: 100%;
        font-size: 13px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 24.7 / 13 );
        letter-spacing: 0.8px;
        border: 1px solid var(--color-border);
    }
    #contact-form.bg-black .contact-privacy {
        color: #fff;
    }
    #contact-form .contact-privacy a {
        color: var(--color-red);
        text-decoration: underline;
    }
    #contact-form .ws-agree {
        margin: 28px auto 0;
        padding: 0;
        text-align: center;
    }
    #contact-form .ws-agree label {
        font-size: 14px;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #contact-form.bg-black .ws-agree label {
        color: #fff;
    }
    #contact-form .ws-submit {
        margin: 48px auto 0;
        padding: 0;
        width: 280px;
        height: auto;
        aspect-ratio: 280 / 76;
    }
    #contact-form .ws-submit input[type="submit"] {
        display: block;
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        color: #fff;
        font-size: 20px;
        font-weight: 500;
        font-family: inherit;
        text-align: center;
        background: var(--color-red);
        border: 0;
        transition: opacity 0.3s ease-out, background 0.3s ease-out;
        cursor: pointer;
    }
    #contact-form .ws-submit input[type="submit"]:disabled {
        background: #ccc;
        cursor: auto;
    }
    @media ( hover: hover ) {
        #contact-form .ws-submit input[type="submit"]:hover {
            opacity: 0.5;
        }
    }

    #privacy-policy {
        margin: 0 auto;
        padding: 120px 0;
        width: 90%;
        max-width: 880px;
    }
    #privacy-policy > h2 {
        margin: 60px 0 12px;
        padding: 0 0 0 0.5em;
        width: 100%;
        font-size: 28px;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: calc( 42 / 28 );
        letter-spacing: 1.4px;
        border-left: 4px solid var(--color-red);
    }
    #privacy-policy > h3 {
        margin: 28px 0 12px;
        padding: 0;
        width: 100%;
        font-size: 19px;
        font-weight: 600;
        font-family: var(--font-mincho);
        line-height: calc( 38 / 19 );
        letter-spacing: 0.8px;
    }
    #privacy-policy > p {
        margin: 12px 0;
        padding: 0;
        width: 100%;
        font-size: 15px;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > p.bg-beige {
        padding: 28px;
        background: #f7f7f5;
    }
    #privacy-policy > p.created-date {
        margin-top: 48px;
        color: var(--color-red);
        text-align: right;
    }
    #privacy-policy > ul {
        margin: 12px 0 12px 20px;
        padding: 0;
        width: calc( 100% - 20px );
    }
    #privacy-policy > ul li {
        font-size: 15px;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > ol {
        margin: 12px 0 12px 20px;
        padding: 0;
        width: calc( 100% - 20px );
    }
    #privacy-policy > ol li {
        font-size: 15px;
        font-weight: 400;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > ol.brace {
        margin-left: 0;
        list-style-type: none;
        counter-reset: step-counter;
        padding-left: 2.0em;
        width: 100%;
    }
    #privacy-policy > ol.brace li {
        counter-increment: step-counter;
        position: relative;
    }
    #privacy-policy > ol.brace li::before {
        content: "(" counter(step-counter) ")";
        position: absolute;
        left: -2.0em;
    }
    @counter-style circle-numbers {
        system: fixed;
        symbols: "①" "②" "③" "④" "⑤" "⑥" "⑦" "⑧" "⑨" "⑩";
        suffix: " ";
    }
    #privacy-policy > ol.circle {
        list-style-type: circle-numbers;
    }
    #privacy-policy > dl {
        margin: 24px auto 0;
        padding: 28px;
        width: 100%;
        display: grid;
        grid-template-columns: 310px 1fr;
        gap: 8px 20px;
        border: 1px solid var(--color-border);
    }
    #privacy-policy > dl > dt {
        font-size: 14px;
        font-weight: 700;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #privacy-policy > dl > dd {
        font-size: 14px;
        font-weight: 400;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }

    .categories {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 12px 12px;
    }
    .categories .btn-cat {
        margin: 0;
        padding: 0.8em 1.2em;
        font-size: 13px;
        font-weight: 400;
        font-family: inherit;
        line-height: 1.0;
        letter-spacing: 1.0px;
        background: #fff;
        border: 1px solid var(--color-border);
        border-radius: 4.0em;
    }
    .categories .btn-cat.active {
        color: #fff;
        background: var(--color-red);
        border: 1px solid var(--color-red);
    }

    .news-list {
        margin: 48px auto 0;
        padding: 0;
        width: 100%;
        border-top: 1px solid var(--color-border);
    }
    .news-list > .news-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 28px;
        margin: 0 auto;
        padding: 24px 0;
        width: 100%;
        border-bottom: 1px solid var(--color-border);
    }
    .news-list > .news-item .date {
        display: block;
        margin: 0;
        padding: 0;
        width: 140px;
        color: #555;
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        text-align: left;
        letter-spacing: 2.34px;
    }
    .news-list > .news-item .cat {
        display: block;
        margin: 0;
        padding: 0.8em 0;
        width: 130px;
        color: var(--color-red);
        font-size: 12px;
        font-weight: 400;
        line-height: 1.0;
        text-align: center;
        letter-spacing: 1.0px;
        border: 1px solid var(--color-red);
        border-radius: 4.0em;
    }
    .news-list > .news-item .title {
        display: block;
        margin: 0;
        padding: 0;
        width: calc( 100% - 140px - 130px - 60px - 28px - 28px - 28px );
        font-size: 15px;
        font-weight: 500;
        line-height: calc( 25.5 / 15 );
        text-align: left;
        letter-spacing: 0.8px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .news-list > .news-item::after {
        display: block;
        content: "READ →";
        margin: 0;
        padding: 0;
        width: 60px;
        color: var(--color-red);
        font-size: 11px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        line-height: 1.0;
        text-align: right;
        letter-spacing: 2.42px;
    }

    .page-info {
        margin: 56px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        align-items: center;
        grid-template-columns: 1fr;
    }
    .page-info .page-pos {
    }
    .page-info .page-numbers {
        margin: 0;
        padding: 0;
        width: 100%;
        list-style: none;
        border: 0;
        display: flex;
        align-items: stretch;
        justify-content: center;
        gap: 0 8px;
    }
    .page-info ul.page-numbers li {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 44px;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 13px;
        font-family: var(--font-alphabet);
        font-weight: 400;
        list-style: none;
    }
    .page-info ul.page-numbers li .page-numbers {
        position: relative;
        display: grid;
        place-items: center;
        margin: 0;
        width: 44px;
        height: auto;
        aspect-ratio: 1 / 1;
        font-size: 13px;
        font-family: var(--font-alphabet);
        font-weight: 400;
        text-align: center;
        background: #fff;
        border: 1px solid var(--color-border);
        overflow: hidden;
    }
    .page-info ul.page-numbers li .page-numbers.current {
        color: #fff;
        background: var(--color-red);
        border-color: var(--color-red);
    }
    .page-info ul.page-numbers li .page-numbers.next {
    }
    .page-info ul.page-numbers li .page-numbers.next::after {
    }
    .page-info ul.page-numbers li .page-numbers.prev {
    }
    .page-info ul.page-numbers li .page-numbers.prev::after {
    }
    .page-info ul.page-numbers li .page-numbers.dots {
    }

    #products-faq {
        margin: 0 auto;
        padding: 120px 5%;
        width: 100%;
    }
    #products-faq > h3 + .faq-box {
        margin-top: 64px;
        border-top: 1px solid var(--color-border);
    }
    #products-faq > .faq-box {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        border-bottom: 1px solid var(--color-border);
    }
    #products-faq > .faq-box .faq-q {
        margin: 0;
        padding: 28px 0 8px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        font-size: 18px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: calc( 27 / 18 );
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-q::before {
        display: block;
        margin: 0;
        padding: 0;
        width: 40px;
        flex: 0 0 40px;
        content: "Q";
        color: var(--color-red);
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-a {
        margin: 0;
        padding: 8px 0 28px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 0;
        color: #444;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 26.6 / 16 );
        letter-spacing: 0.8px;
    }
    #products-faq > .faq-box .faq-a::before {
        display: block;
        margin: 0;
        padding: 0;
        width: 40px;
        flex: 0 0 40px;
        content: "A";
        color: #000;
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 1.0;
        letter-spacing: 0.8px;
    }

    #form-done {
        margin: 80px auto 0;
        padding: 120px 5%;
        width: 100%;
    }
    #form-done > .done-icon {
        display: block;
        margin: 0 auto;
        padding: 0;
        width: 100px;
        height: auto;
        aspect-ratio: 1 / 1;
    }
    #form-done > .done-icon img {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
    }
    #form-done > h1 {
        margin: 16px auto 0;
        padding: 0;
        font-size: 40px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: center;
        line-height: 2.0;
        letter-spacing: 2.4px;
    }
    #form-done > p {
        margin: 32px auto 0;
        padding: 0;
        font-size: 15px;
        font-weight: 400;
        text-align: center;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }
    #form-done > .btn-back {
        display: grid;
        place-items: center;
        margin: 40px auto 0;
        padding: 0;
        width: 350px;
        height: auto;
        aspect-ratio: 350 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-black);
    }

    #single-post-contents {
        margin: 0 auto;
        padding: 120px 0;
        width: 90%;
        max-width: 800px;
    }
    #single-post-contents h2 {
        margin: 48px 0 0;
        padding: 0;
        width: 100%;
        color: var(--color-red);
        font-size: 28px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: calc( 42 / 28 );
        letter-spacing: 1.4px;
    }
    #single-post-contents h3 {
        margin: 32px 0 0;
        padding: 0 0 0 20px;
        width: 100%;
        font-size: 22px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.4px;
        border-left: 4px solid var(--color-red);
    }
    #single-post-contents figure {
        margin: 0 auto;
        padding: 0;
        width: 100%;
        height: auto;
    }
    #single-post-contents figure:empty {
        background: #ccc;
    }
    #single-post-contents p {
        margin: 20px 0 0;
        padding: 0;
        width: 100%;
        font-size: 15px;
        font-weight: 400;
        text-align: left;
        line-height: calc( 33 / 15 );
        letter-spacing: 0.8px;
    }
    #single-post-contents figure + p {
        margin-top: 48px;
    }
    #single-post-contents h3 + p {
        margin-top: 32px;
    }
    #single-post-contents .btn-back {
        display: grid;
        place-items: center;
        margin: 80px auto 0;
        padding: 0;
        width: 350px;
        height: auto;
        aspect-ratio: 350 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-black);
    }

    .spec-table-3cols {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 24% 38% 38%;
        gap: 0;
    }
    .spec-table-4cols {
        margin: 64px auto 0;
        padding: 0;
        width: 100%;
        display: grid;
        grid-template-columns: 16% 28% 28% 28%;
        gap: 0;
    }
    .spec-table-3cols > div,
    .spec-table-4cols > div {
        margin: 0;
        padding: 14px 0;
        width: 100%;
    }
    .spec-table-3cols > div:nth-of-type(n+1),
    .spec-table-4cols > div:nth-of-type(n+1) {
        border-right: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(1),
    .spec-table-4cols > div:nth-of-type(1) {
        color: var(--color-red);
        font-size: 24px;
        font-weight: 500;
        line-height: 1.0;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(1) {
        grid-column: span 3;
    }
    .spec-table-4cols > div:nth-of-type(1) {
        grid-column: span 4;
    }
    .spec-table-3cols > div:nth-of-type(2),
    .spec-table-4cols > div:nth-of-type(2) {
        border-left: 1px solid var(--color-border);
    }
    .spec-table-3cols > div:nth-of-type(2),
    .spec-table-3cols > div:nth-of-type(3),
    .spec-table-3cols > div:nth-of-type(4),
    .spec-table-4cols > div:nth-of-type(2),
    .spec-table-4cols > div:nth-of-type(3),
    .spec-table-4cols > div:nth-of-type(4),
    .spec-table-4cols > div:nth-of-type(5) {
        padding-left: 16px;
        padding-right: 16px;
        color: #fff;
        font-size: 14px;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.7px;
        background: var(--color-black);
    }
    .spec-table-3cols > div:nth-of-type(n+5),
    .spec-table-4cols > div:nth-of-type(n+6) {
        padding-left: 16px;
        padding-right: 16px;
        font-size: 14px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.28px;
    }
    .spec-table-3cols > div:nth-of-type(3n+5),
    .spec-table-4cols > div:nth-of-type(4n+6) {
        font-weight: 600;
        border-left: 1px solid var(--color-border);
    }

    .lineup-table {
        margin: 64px auto 0;
        padding: 0;
        display: grid;
        grid-template-columns: 20% 22% 22% 16% 20%;
        gap: 0;
        border-top: 1px solid var(--color-border);
        border-left: 1px solid var(--color-border);
    }
    .lineup-table > div {
        margin: 0;
        padding: 14px 16px;
        border-right: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
    }
    .lineup-table > div:nth-of-type(1),
    .lineup-table > div:nth-of-type(2),
    .lineup-table > div:nth-of-type(3),
    .lineup-table > div:nth-of-type(4),
    .lineup-table > div:nth-of-type(5) {
        color: #fff;
        font-size: 14px;
        font-weight: 500;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.7px;
        background: var(--color-black);
    }
    .lineup-table > div:nth-of-type(n+6) {
        font-size: 14px;
        font-weight: 400;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.28px;
    }
    .lineup-table > div:nth-of-type(11),
    .lineup-table > div:nth-of-type(12),
    .lineup-table > div:nth-of-type(13),
    .lineup-table > div:nth-of-type(14),
    .lineup-table > div:nth-of-type(15) {
        background: #f7f7f5;
    }
    .lineup-memo {
        margin: 24px 0 0;
        padding: 0;
        font-size: 16px;
        font-weight: 400;
        text-align: left;
        line-height: 2.0;
        letter-spacing: 0.8px;
    }

    #vent-society {
        margin: 0 auto;
        padding: 80px 5%;
        width: 100%;
    }
    #vent-society > .society-box {
        margin: 0 auto;
        padding: 44px 55px;
        width: 100%;
        background: var(--color-black);
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0 40px;
    }
    #vent-society > .society-box > .society-info {
        margin: 0;
        padding: 0;
        width: calc( 100% - 225px - 40px );
    }
    #vent-society > .society-box > .society-info .subtitle {
        margin: 0;
        padding: 0;
        color: var(--color-red);
        font-size: 13px;
        font-weight: 500;
        font-family: var(--font-alphabet);
        text-align: left;
        line-height: 2.0;
        letter-spacing: 3.9px;
    }
    #vent-society > .society-box > .society-info .title {
        margin: 8px 0;
        padding: 0;
        color: #fff;
        font-size: 32px;
        font-weight: 600;
        font-family: var(--font-mincho);
        text-align: left;
        line-height: 1.5;
        letter-spacing: 1.6px;
    }
    #vent-society > .society-box > .society-info p {
        margin: 20px 0;
        padding: 0;
        color: #fff;
        font-size: 17px;
        font-weight: 400;
        text-align: left;
        line-height: 1.8;
        letter-spacing: 0.8px;
    }
    #vent-society > .society-box > a {
        display: grid;
        place-items: center;
        margin: 0;
        padding: 0;
        width: 225px;
        height: auto;
        aspect-ratio: 225 / 64;
        color: #fff;
        font-size: 16px;
        font-weight: 500;
        text-align: center;
        line-height: 1.0;
        background: var(--color-red);
    }

}


/**
 * 中間設定
 */
@media ( width >= 1400px ) {
    .common-grid-cols.five-cols {
        grid-template-columns: repeat( 5, 1fr );
        gap: 16px;
    }
    .common-grid-cols.six-cols {
        grid-template-columns: repeat( 6, 1fr );
        gap: 16px;
    }
}
