:root {
    --primary-bland-color: #D50038;
    /* --primary-bland-color: black; */
    --secondary-bland-color: #5F5E5E;
    --attention-color: #DB9716;
    --danger-color: red;
    --white: white;
    --black: black;
    --grey: #E8E8E8;

    --col-12: 1392px;
    --col-11: 1274px;
    --col-10: 1156px;
    --col-9: 1038px;
    --col-8: 920px;
    --col-7: 802px;
    --col-6: 684px;
    --col-5: 566px;
    --col-4: 448px;
    --col-3: 330px;
    --col-2: 212px;
    --col-1: 94px;

    --header-background-color: rgba(250, 248, 245, 0.9);
    --inner-l: 1240px;
    --inner-m: 1024px;
    --inner-s: 816px;
    --aspect-ratio-16-9: 16/9;
    --aspect-ratio-4-3: 4/3;
    --aspect-ratio-1-1: 1/1;


    /* hero 24px~40px*/
    /* --font-size-title-hero: clamp(1.5rem, 1.136rem + 1.82vw, 2.5rem); */
    --font-size-title-hero: clamp(2.4rem, 0.8rem + 4.27vw, 4rem);
    /* lowerhero 24px~40px*/
    --font-size-title-lowerhero: clamp(2.4rem, 0.8rem + 4.27vw, 4rem);
    /* lowerhero 24px~40px*/
    --font-size-title-lowerhero-small: clamp(1.6rem, 2vw + 1rem, 2.4rem);
    /* lowerhero 16px~24px*/
    --font-size-subtitle-lowerhero: clamp(1.6rem, 0.8rem + 2.13vw, 2.4rem);

    /* fontsize 2rem~3.2rem */
    --font-size-xlarge: clamp(2rem, 0.8rem + 3.2vw, 3.2rem);
    /* fontsize 1.8rem~2.4rem */
    --font-size-large: clamp(1.8rem, 1.2rem + 1.6vw, 2.4rem);
    /* fontsize 1.4rem~1.6rem */
    /* --font-size-medium: 1.6rem; */
    --font-size-medium: clamp(1.4rem, 1.2rem + 0.53vw, 1.6rem);
    /* fontsize 1.2rem~1.4rem */
    --font-size-small: clamp(1.2rem, 1rem + 0.53vw, 1.4rem);
    
}

*,
*:before,
*:after {
    -webkit-box-sizing: border-box;
    box-sizing: border-box
}

html {
    font-size: 62.5%;
}

body {
    font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
    /* font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", "verdana", sans-serif; */
    letter-spacing: 0.05em;
}

section {
    padding: 64px 5%;
    text-align: center;
}

section:nth-of-type(odd) {
    background: 
    radial-gradient(ellipse 75% 75% at center, #ffffff, transparent),
    radial-gradient(ellipse 30% 75% at 10% top, #ffecd5, transparent),
    radial-gradient(ellipse 40% 75% at 20% top, #ffe4ec, transparent),
    radial-gradient(ellipse 70% 75% at 30% top, #f7ddfd, transparent),
    radial-gradient(ellipse 70% 75% at 80% bottom, #f1d1f8, transparent),
    radial-gradient(ellipse 40% 75% at 90% bottom, #c0b1ff, transparent);
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    section {
        padding-top: 32px;
        padding-bottom: 32px;
    }
}

h2 {
    color: var(--primary-bland-color);
    font-size: var(--font-size-xlarge);
    margin: 0;
    padding: 0;
}

h3 {
    color: var(--primary-bland-color);
    font-size: var(--font-size-large);
    margin: 0;
    padding: 0;
}

h4 {
    font-size: var(--font-size-large);
    margin: 0;
    padding: 0;
}

p,
a {
    font-size: var(--font-size-medium);
    text-decoration: none;
    line-height: 1.5;
}

li {
    font-size: var(--font-size-medium);
    text-decoration: none;
    line-height: 1.75;
}

small {
    font-size: var(--font-size-small);
}

strong {
    /* color: var(--primary-bland-color); */
}

/* セクション */
.section--title {
    color: var(--primary-bland-color);
    font-size: var(--font-size-xlarge);
}

.section--underTitle {
    margin-top: 8px;
}

.section--subTitleBox {
    margin-bottom: 24px;
    background-color: var(--grey);
    display: flex;
}

.section--subTitle {
    color: var(--primary-bland-color);
    margin: 0 auto;
    padding: 0.66em;
}

.section--inner {
    width: 100%;
    max-width: var(--col-10);
    margin: 0 auto;
}

.section--inner-small {
    width: 100%;
    max-width: var(--inner-s);
    margin: 0 auto;
}

.section--titleBox {
    margin-bottom: 40px;
}

.section--textBox {
    margin-bottom: 32px;
}

.section--text {

}

.section--arrowTextBox {
    margin-bottom: 32px;
}

.section--arrowText {
    position: relative;
    font-size: var(--font-size-large);
    font-weight: bold;
    padding-bottom: 64px;
}

.section--arrowText::after {
    position: absolute;
    content: url(../img/arrow-ku-bottom.png);
    top: 64px;
    left: 50%;
    transform: translateX(-50%);
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .section--arrowText {
        padding-bottom: 40px;
    }

    .section--arrowText::after {
        position: absolute;
        content: url(../img/arrow-ku-bottom-sp.png);
        top: 40px;
        left: 50%;
        transform: translateX(-50%);
    }
}

/* メディア */
.media {
    display: flex;
}

/* テーブル */

.horizontalTable {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    font-size: var(--font-size-medium);
}

.horizontalTable--body {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}

.horizontalTable--bodyRow {
    display: table-row;
    vertical-align: inherit;
    border-color: inherit;
    border-bottom: 1px solid var(--grey);
}

.horizontalTable--header {
    width: 25%;
    color: var(--black);
    text-align: left;
    font-weight: normal;
    padding: 0.7em 1em;
    border-right: 1px dashed var(--grey);
}

.horizontalTable--text {
    width: auto;
    color: var(--black);
    border: 1px solid var(--primary-color);
    text-align: left;
    font-weight: normal;
    padding: 0.7em 1em;
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */

    .horizontalTable--bodyRow {
        display: block;
        margin-bottom: 8px;
    }

    .horizontalTable--header {
        display: block;
        width: 100%;
        border-right: 0;
        border-bottom: 1px dashed var(--grey);
        font-weight: bolder;
    }
    
    .horizontalTable--text {
        display: block;
        width: 100%;
        padding: 0.7em 1em 0.7em 2em;
    }
}

/* ボタン */
.button {
    position: relative;
    display: block;
    width: 100%;
    padding: 8px 16px;
    font-size: var(--font-size-medium);
    color: var(--white);
    text-align: center;
    background: var(--primary-bland-color);
}

.plusButton {
    position: relative;
    display: block;
    width: 100%;
    max-width: var(--col-4);
    padding: 16px 16px;
    font-size: var(--font-size-large);
    color: var(--white);
    text-align: center;
    background: var(--primary-bland-color);
}

.plusButton::after {
    position: absolute;
    content: "+";
    right: 16px;
}


.row {
    margin-bottom: 32px;
}

.row:last-child {
    margin-bottom: 0;
}

@media screen and (min-width: 600px) {
    /* 600px以上の幅の場合に適応される */
    .spOnly {
        display: none;
    }
}

@media screen and (min-width: 1025px) {
    /* 1025px以上の幅の場合に適応される */
    .pcOnly {
        display: none;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .not-spOnly {
        display: none;
    }
}

@media screen and (max-width: 1024px) {
    /* 599pxまでの幅の場合に適応される */
    .not-pcOnly {
        display: none;
    }
}

/* cta */
.cta {
    padding: 32px;
    background-color: var(--grey);
}

.cta .plusButton {
    width: 100%;
    max-width: var(--col-3);
    padding: 16px 24px;
}

.cta .plusButton::after {
    content: "";
}

.cta .media {
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: 24px;
}

.cta .media--imgBox {
    flex: 0 0 456px;
}

.cta .media--body {
    flex: 1 1 auto;
    text-align: left;
}

.cta .media--img {
    width: 100%;
    height: var(--aspect-ratio-4-3);
}

.cta .media--titleBox {
    margin-bottom: 2.4rem;
}

.cta .media--title {
    font-size: var(--font-size-large);
}

.cta .media--textBox {
    margin-bottom: 2.4rem;
}

.cta .media--text {
    margin-bottom: 1.6rem;
}

.cta .media--text:last-of-type {
    margin-bottom: 0;
}

@media screen and (max-width: 1024px) {
    /* 1024pxまでの幅の場合に適応される */
    .cta .media--imgBox {
        flex: 0 0 40%;
    }

    .cta .media--body {
        flex: 1 1 auto;
        text-align: left;
    }
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .cta {
        padding: 24px;
    }

    .cta .media {
        display: block;
        margin: 0 auto;
    }

    .cta .media--body {
        margin-bottom: 24px;
    }

    .cta .media--imgBox {
        width: 100%;
    }

    .cta .media--titleBox {
        margin-bottom: 1.6rem;
    }
}

.annotation {
    display: block;
    margin-top: 40px;
    text-align: left;
    font-size: 12px;
}

@media screen and (max-width: 599px) {
    /* 599pxまでの幅の場合に適応される */
    .annotation {
        margin-top: 24px;
        font-size: 8px;
        text-align: left;
    }
}