/* テキスト */
.original_section p,
.original_section a,
.original_section span,
.original_section h1,
.original_section h2,
.original_section h3,
.original_section h4,
.original_section h5 {
    letter-spacing: 0.05em;
    color: var(--color-text-entry);
}

.original_section p {
    font-size: 16px;
    font-weight: 400;
    font-family: var(--font-notosan);
    line-height: 1.875;
}

.original_section span {
    font-size: 16px;
    font-weight: 400;
    font-family: var(--font-notosan);
    line-height: 1.875;
}

.original_section h2 {
    font-family: var(--font-zenkaku);
    font-size: 30px;
    font-weight: 500;
}

.original_section h3 {
    font-family: var(--font-notosan);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
}

/* テキスト */

h1#page_base_title {
    margin-bottom: 72px;
}

.main_visual {
    margin-top: 40px;
    width: 100%;
    padding: 0 0 0 80px;
    max-width: 1440px;
    box-sizing: border-box;
    margin: 0 auto;
}

.main_visual img {
    height: auto;
    width: 100%;
    display: block;
}

.original_section_container {
    padding: 0 80px;
    max-width: 1440px;
    box-sizing: border-box;
    margin: 80px auto 0;
    width: 100%;
}

.original_section_image {
    box-sizing: border-box;
    max-width: 840px;
    width: 100%;
    margin: 0 auto;
}

.original_section_image img {
    display: block;
    width: 100%;
    height: auto;
}

.original_section_text {
    margin: 24px auto;
    box-sizing: border-box;
    max-width: 840px;
    width: 100%;
}

/* 推薦 */
.recommendation {
    background-color: rgba(255, 255, 255, 0.5);
    margin-top: 64px;
    padding: 24px 0;
    margin-left: -80px;
    margin-right: -80px;
}

.recommendation_container {
    padding: 48px 0;
    border-top: 2px solid #fff;
    border-bottom: 2px solid #fff;
}

.recommendation_content {
    box-sizing: border-box;
    max-width: 840px;
    width: 100%;
    margin: 0 auto;
}

.recommendation_container h2 {
    font-size: 18px;
    font-family: var(--font-notosan);
}

.recommendation_container p {
    margin: 22px 0;
}

.recommendation_container span {
    display: block;
}

/* 推薦 */

/* セット商品 */
.set_product {
    margin-top: 88px;
}

.set_product_container {
    max-width: 840px;
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
}

.set_product_container h2 {
    margin-bottom: 32px;
}

.set_product_content:nth-child(2) {
    border-top: 1px solid #CCC6B0;
}

.set_product_content {
    border-bottom: 1px solid #CCC6B0;
    padding: 40px 0 32px;
    display: grid;
    grid-template-columns: 160px 1fr;
    column-gap: 32px;
}

.set_product_image {
    width: 160px;
    height: 160px;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(255, 255, 255, 0.4);
    grid-column: 1/2;
    grid-row: 1/3;

}

.set_product_image.horizontal {
    padding: 0 8px;
}

.set_product_image.vertical {
    padding: 8px 0;
}

.set_product_image.square {
    padding: 8px;
}

.set_product_image.horizontal img {
    width: 100%;
    display: block;
}

.set_product_image.vertical img {
    height: 100%;
    display: block;
}

.set_product_image.square img {
    height: 100%;
    width: 100%;
    display: block;
}

.set_product_title {
    grid-column: 2/3;
    grid-row: 1/2;
}

.set_product_content span {
    display: block;
    margin-top: 2px;
    margin-bottom: 8px;
}

.set_product_content p {
    grid-row: 2/3;
    grid-column: 2/3;
}


/* セット商品 */

/* お客様からの声 */
.customer_feedback {
    margin-top: 120px;
}

.customer_feedback_container {
    max-width: 840px;
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
}

.customer_feedback_container h2 {
    margin-bottom: 32px;
}

.customer_feedback_container>div {
    margin-bottom: 24px;
    padding: 40px;
    max-width: 728px;
    width: 100%;
    box-sizing: border-box;
}

.customer_feedback_container>div:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.5);
    border-radius: 50px 50px 50px 0;
    margin-right: auto;
}

.customer_feedback_container>div:nth-child(even) {
    background-color: #fff;
    border-radius: 50px 50px 0 50px;
    margin-left: auto;
}

.customer_feedback_content span {
    display: block;
    font-weight: 500;
    margin-top: 16px;
}


/* お客様からの声 */

/* 商品 */
.product {
    margin-top: 120px;
}

.product_container {
    max-width: 1000px;
    box-sizing: border-box;
    width: 100%;
    margin: 0 auto;
}

.product_content {
    background-color: #D8D4C5;
    border-radius: 20px;
    position: relative;
    display: grid;
    align-items: end;
    grid-template-columns: minmax(0, 296px) minmax(0, 280px);
    justify-content: center;
    column-gap: 56px;
    row-gap: 40px;
    padding: 64px 0;
}

.product_content svg.circle:nth-child(1) {
    position: absolute;
    top: 16px;
    left: 16px;
}

.product_content svg.circle:nth-child(2) {
    position: absolute;
    top: 16px;
    right: 16px;
    transform: rotate(90deg);

}

.product_content svg.circle:nth-child(3) {
    position: absolute;
    bottom: 16px;
    right: 16px;
    transform: rotate(-180deg);
}

.product_content svg.circle:nth-child(4) {
    position: absolute;
    bottom: 16px;
    left: 16px;
    transform: rotate(-90deg);
}

.product_content::before {
    content: "";
    pointer-events: none;
    position: absolute;
    box-sizing: border-box;
    top: 16px;
    left: 16px;
    width: calc(100% - 32px);
    height: calc(100% - 32px);
    border: 2px solid #fff;
    z-index: 1;
    clip-path:
        shape(from 80px 0,
            line to calc(100% - 40px) 0,
            arc to 100% 40px of 80px,
            line to 100% calc(100% - 40px),
            arc to calc(100% - 40px) 100% of 80px,
            line to 40px 100%,
            arc to 0 calc(100% - 40px) of 80px,
            line to 0 40px,
            arc to 40px 0 of 80px,
            close);
}

.product_image {
    width: 100%;
    box-sizing: border-box;
    grid-column: 1/2;
    grid-row: 1/3;
}

.product_image img {
    max-width: 296px;
    width: 100%;
    display: block;
    height: auto;
}

.product_info {
    grid-column: 2/3;
    grid-row: 1/2;
    margin-bottom: -48px;
}

.product_button_block {
    grid-column: 2/3;
    grid-row: 2/3;
}

.product_info h3 {
    font-size: 16px;
}

.product_info p {
    margin-top: 2px;
}

#book_price_tax {
    font-size: 18px;
    font-weight: 500;
}

#book_price_tax #book_bace_price {
    font-size: 14px;
    font-weight: 400;
}



.product_button {
    display: block;
    width: 272px;
    height: 64px;
    text-align: center;
    padding: 0;
}

.product_button_block>button:nth-child(1) {
    background-color: var(--color-green-base);
    border: none;
}
.product_button_block form {
    width: 100%;
}
.product_button.contact {
    border: solid 1px var(--color-green-base);
    background-color: rgba(255, 255, 255, 0.25);
    color: var(--color-green-base);
    line-height: 64px;
    font-size: 16px;
    font-family: var(--font-notosan);
    display: block;
    width: 100%;
    max-width: 272px;
    height: 64px;
    text-align: center;
    padding: 0;
    margin-top: 1rem;
    font-weight: 500;
}
.product_button_block>button:nth-child(1) .site_buy_button_link {
    line-height: 64px;
    display: inline-flex;
    font-size: 16px;
    color: #fff;
    align-items: center;
    font-family: var(--font-notosan);
}

.product_button_block>button:nth-child(1) .site_buy_button_link svg {
    padding-left: 7px;
    padding-top: 7px;
    box-sizing: content-box;
}

.product_button_block>button:nth-child(2) {
    border: solid 1px var(--color-green-base);
    background-color: rgba(255, 255, 255, 0.25);
    margin-top: 16px;
    display: block;
}

.product_button_block>button:nth-child(2) .product_contact_link {
    color: var(--color-green-base);
    line-height: 64px;
    display: inline-block;
    font-size: 16px;
    font-family: var(--font-notosan);

}

/* 商品 */




@media (max-width: 1099px) {
    .main_visual {
        padding: 0 0 0 40px;
    }

    .original_section_container {
        padding: 0 40px;
    }

    /* 推薦 */
    .recommendation {
        margin-left: -40px;
        margin-right: -40px;
        margin-top: 48px;
    }
    .recommendation_content {
        padding: 0 40px;
    }

    /* 推薦 */

    /* 商品 */
    .product_content {
        column-gap: 24px;
    }

    /* 商品 */
}

@media (max-width: 768px) {
    h1#page_base_title {
        margin-bottom: 20px;
    }

    .main_visual {
        padding: 0 0 0 22px;
    }

    .original_section_container {
        padding: 0 22px;
        margin: 52px auto 0;
    }

    /* 推薦 */
    .recommendation {
        margin-left: -22px;
        margin-right: -22px;
        margin-top: 48px;
    }

    .recommendation_container h2 {
        text-align: center;
    }

    .recommendation_container p {
        margin: 24px 0;
    }

    .recommendation_content {
        padding: 0 22px;
    }

    /* 推薦 */

    /* セット商品 */
    .set_product_container h2 {
        margin-bottom: 16px;
    }

    .set_product_content {
        column-gap: 12px;
        row-gap: 16px;
        align-items: center;
        padding: 32px 0 24px;
    }

    .set_product_image {
        grid-row: 1/2;
    }

    .set_product_content p {
        grid-column: 1/3;
    }

    /* セット商品 */

    /* お客様からの声 */
    .customer_feedback {
        margin-top: 80px;
    }

    .customer_feedback_container>div {
        padding: 32px 20px;
    }

    .customer_feedback_container>div:nth-child(odd) {
        border-radius: 20px 20px 20px 0;
    }

    .customer_feedback_container>div:nth-child(even) {
        border-radius: 20px 20px 0 20px;
    }

    .customer_feedback_content span {
        margin-top: 8px;
    }

    /* お客様からの声 */

    /* 商品 */
    .product {
        margin-top: 88px;
        margin-left: -22px;
        margin-right: -22px;
    }

    .product_container {}

    .product_content {
        grid-template-columns: 152px 1fr;
        column-gap: 16px;
        row-gap: 32px;
        align-items: center;
        padding: 40px 22px;
        border-radius: 0;
    }

    .product_image {
        grid-column: 1/2;
        grid-row: 1/2;
    }

    .product_button_block {
        grid-column: 1/3;
        grid-row: 2/3;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .product_info {
        margin-bottom: 0;
    }

    .product_info p {
        margin-top: 8px;
    }

    .product_info h3 {
        font-size: 14px;
        line-height: 1.7;
    }

    #book_price_tax {
        font-size: 15px;
        line-height: 0;
    }

    #book_price_tax #book_bace_price {
        font-size: 12px;
    }

    .product_content>svg {
        width: 40px;
        height: 40px;
    }

    .product_content svg circle {
        r: 20px;
    }

    .product_content svg.circle:nth-child(1) {
        top: 8px;
        left: 8px;
    }

    .product_content svg.circle:nth-child(2) {
        top: 8px;
        right: 8px;
    }

    .product_content svg.circle:nth-child(3) {
        bottom: 8px;
        right: 8px;
    }

    .product_content svg.circle:nth-child(4) {
        bottom: 8px;
        left: 8px;
    }

    .product_content::before {
        top: 8px;
        left: 8px;
        width: calc(100% - 16px);
        height: calc(100% - 16px);
        border: 1px solid #fff;
        clip-path:
            shape(from 80px 0,
                line to calc(100% - 20px) 0,
                arc to 100% 20px of 80px,
                line to 100% calc(100% - 20px),
                arc to calc(100% - 20px) 100% of 80px,
                line to 20px 100%,
                arc to 0 calc(100% - 20px) of 80px,
                line to 0 20px,
                arc to 20px 0 of 80px,
                close);
    }

    .product_content svg.circle circle {
        stroke-width: 1;
    }
    .product_button,
    .product_button.contact {
        max-width: 100%;
        width: 100%;
    }

    /* 商品 */
}