/*------------------------------------------
リセット関連
------------------------------------------*/

h1,h2,h3,h4,h5 {
    margin: 0;
    padding: 0;
    border: none;
    background: none;
}

/*------------------------------------------
設定
------------------------------------------*/

:root {
    /* サイト幅 */
    --site-width: 1275px;

    /* 余白 */
    --section-padding-y: 80px;
    --sp-section-padding-y: 4rem;

    --headding-margin-bottom: 60px;
    --sp-headding-margin-bottom: 2rem;
}

/*------------------------------------------
基本設定
------------------------------------------*/

section {
    padding: var(--section-padding-y) 0;
}

section .wrapper {
    max-width: var(--site-width);
    margin: 0 auto;
}

.headding-block {
    margin-bottom: var(--headding-margin-bottom);
}
.headding-block .intro {
    margin-bottom: 29px;
    text-align: center;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
}
.headding-block h2.underline {
    text-align: center;
    font-size: 42px;
    font-style: normal;
    font-weight: 700;
    line-height: 50px; 
}
.headding-block h2.underline::after {
    content: "";
    display: block;
    width: 56px;
    height: 9px;
    background: #ffbf00;
    border-radius: 40px;
    margin: 30px auto 0;
}

.sp-only {
    display: none;
}

@media screen and (max-width: 767px) {
    section {
        padding: var(--sp-section-padding-y) 0;
    }

    section .wrapper {
        padding: 20px;
    }

    .hedding-block {
        margin-bottom: var(--sp-headding-margin-bottom);
    }

    .headding-block h2.underline {
        font-size:1.8rem;
    }

    .pc-only {
        display: none;
    }

    .sp-only {
        display: unset;
    }
}

/*------------------------------------------
汎用パーツ
------------------------------------------*/

a.button-square {
    width: 306px;
    height: 62px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #4e4e4e;
    position: relative;
    transition: all 0.3s;

    color: #fff;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px;
}
a.button-square::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    background: url(/-/media/ind/cybozu/kintone/image/button_arrow.png) no-repeat center / contain;
    transition: all 0.3s;
}
a.button-square:hover {
    text-decoration: none;
    opacity: .8;
}
a.button-square:hover::after {
    right: 12px;
}

a.button-rounded {
    width: 224px;
    height: 50px;
    position: relative;
    background: #4e4e4e;
    border-radius: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all 0.3s;

    color: #fff;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 20px; 
}
a.button-rounded::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 19px;
    transform: translateY(-50%);
    width: 12.5px;
    height: 12.5px;
    background: url(/-/media/ind/cybozu/kintone/image/button_plus.png) no-repeat center / contain;
}
a.button-rounded:hover {
    text-decoration: none;
    opacity: .8;
}

/*------------------------------------------
main-visual
------------------------------------------*/

.main-visual {
    padding: 125px 0;
    background: url(/-/media/ind/cybozu/kintone/image/main_visual_bg.png) no-repeat center / cover;
}

.main-visual .intro {
    font-size: 40px;
    font-style: normal;
    font-weight: 700;
    line-height: 59px; 
}

.main-visual h1 {
    margin-top: 40px;
}

.main-visual .button-box {
    margin-top: 70px;
    display: flex;
    align-items: center;
    gap: 25px;
}

@media screen and (max-width: 767px) {
    .main-visual {
        padding: 3rem 0;
        background-position: 35% center;
    }

    .main-visual .intro {
        font-size: 1.8rem;
        line-height: 1.6;
    }

    .main-visual .button-box {
        flex-direction: column;
        gap: 1rem;
    }
}

/*------------------------------------------
link-block
------------------------------------------*/

.link-block .wrapper {
    max-width: var(--site-width);
    margin: 0 auto;
    padding: 40px 0;
}

.link-block .content-block {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.link-block a {
    border-right: 1px solid #c1bfbf;
    position: relative;
}
.link-block a:hover {
    text-decoration: none;
    opacity: .8;
}
.link-block a p {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 32px;

    color: #333;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
    text-align: center;
}
.link-block a:first-child {
    border-left: 1px solid #c1bfbf;
}
.link-block a::after {
    content: "";
    position: relative;
    display: block;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 17px;
    height: 17px;
    margin-top: 22px;
    border-right: 2px solid #ffbf00;
    border-bottom: 2px solid #ffbf00;
    transition: all 0.3s;
}
.link-block a:hover::after {
    bottom: -2px;
}

@media screen and (max-width: 767px) {
    .link-block a p {
        font-size: .7rem;
    }

    .link-block a::after {
        width: 12px;
        height: 12px;
        margin-top: 12px;
    }
}

/*------------------------------------------
workstyle
------------------------------------------*/

.workstyle {
    background: #fffaeb;
}

.workstyle .content-block {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.workstyle .box {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
}

.workstyle .box .image-box {
    max-width: 388px;
    margin: 0 auto;
}

.workstyle .box .image-box img {
    width: 100%;
}

.workstyle .box .title {
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 30px; 
}

.workstyle .box .text {
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

@media screen and (max-width: 767px) {
    .workstyle .content-block {
        grid-template-columns: 1fr;
        gap: 4rem;
    }
}

/*------------------------------------------
feature
------------------------------------------*/

.feature .wrapper {
    max-width: 1125px;
}

.feature .box,
.plugin .intro-box {
    padding: 40px 0;
    border-bottom: 1px solid #ffbf00;
    display: grid;
    gap: 50px;
}

.feature .box:first-child {
    padding-top: 0;
}

.feature .box.image-left {
    grid-template-columns: 388px 1fr;
}

.feature .box.image-right,
.plugin .intro-box {
    grid-template-columns: 1fr 388px;
}

.feature .box .text-box .label,
.plugin .intro-box .text-box .label {
    display: inline-block;
    padding: 10px 25px;
    border: 1px solid #ffbf00;

    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 27px;
    letter-spacing: 1.44px;
}

.feature .box .text-box .title,
.plugin .intro-box .text-box .title {
    margin-top: 32px;
    
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
    line-height: 37px;
}

.feature .box .text-box .text,
.plugin .intro-box .text-box .text {
    margin-top: 32px;

    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

.feature .box .image-box,
.plugin .intro-box .image-box {
    max-width: 388px;
}

.feature .box .image-box img,
.plugin .intro-box .image-box img {
    width: 100%;
}

@media screen and (max-width: 767px) {
    .feature .box.image-right,
    .plugin .intro-box {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .feature .box.image-left {
        display: flex;
        flex-direction: column-reverse;
        gap: 1.5rem;
    }

    .feature .box .text-box .label,
    .plugin .intro-box .text-box .label {
        padding: .1rem .5rem;
        font-size: 1rem;
    }

    .feature .box .text-box .title,
    .plugin .intro-box .text-box .title {
        margin-top: 1rem;
        font-size: 1.6rem;
    }

    .feature .box .text-box .text,
    .plugin .intro-box .text-box .text {
        margin-top: 1rem;
        font-size: 1rem;
        line-height: 1.6;
    }
}

/*------------------------------------------
cta
------------------------------------------*/

.cta {
    background: #ffbf00;
}

.cta h2 {
    text-align: center;
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
    line-height: 37px;
}

.cta .button-box {
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;
}

@media screen and (max-width: 767px) {
    .cta .button-box {
        flex-direction: column;
    }
}

/*------------------------------------------
app
------------------------------------------*/

.app {
    background: #f2f2f2;
}

.app .card-list,
.plugin .card-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 56px;
    row-gap: 67px;
}

.app .card-list .card,
.plugin .card-list .card {
    padding: 24px;
    border: 1px solid #fdd000;
    background: #fffaeb;
}

.app .card-list .card .image-box,
.plugin .card-list .card .image-box {
    max-width: 340;
    margin: 0 auto;
}

.app .card-list .card .image-box img,
.plugin .card-list .card .image-box img {
    width: 100%;
}

.app .card-list .card h3,
.plugin .card-list .card h3 {
    margin-top: 30px;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 30px;
}

.app .card-list .card p,
.plugin .card-list .card p {
    margin-top: 30px;
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

.app .card-list .card p.small,
.plugin .card-list .card p.small {
    height: 36px;
    
    font-size: 10px;
    font-style: normal;
    font-weight: 400;
    line-height: 18px;
    letter-spacing: 0.5px;
}

.app .card-list .card .button-box,
.plugin .card-list .card .button-box {
    margin-top: 36px;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media screen and (max-width: 767px) {
    .app .card-list,
    .plugin .card-list {
        grid-template-columns: 1fr;
        gap: 1rem;
        row-gap: 1rem;
    }
}

/*------------------------------------------
plugin
------------------------------------------*/

.plugin .intro-box {
    max-width: 1125px;
    margin: 0 auto;
}

.plugin .card-list {
    margin-top: 60px;
}


/*------------------------------------------
flow
------------------------------------------*/

.flow {
    background: #fffaeb;
}

.flow .image-box {
    max-width: 1125px;
    margin: 0 auto;
}

.flow .image-box img {
    width: 100%;
}

.flow .title-box {
    padding-top: 63px;
    text-align: center;
}

.flow .title-box h3 {
    font-size: 30px;
    font-style: normal;
    font-weight: 700;
    line-height: 37px;
}

.flow .title-box p {
    margin-top: 29px;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px; 
}

.flow .card-list {
    max-width: 1161px;
    margin: 67px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 39px;
}

.flow .card-list .card {
    max-width: 361px;
}

.flow .card-list .card .title {
    padding: 30px 10px;
    border-radius: 20px 20px 0 0;
    border: 1px solid #ffbf00;
    background: #ffbf00;

    text-align: center;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 30px; 
}

.flow .card-list .card .content {
    height: 186px;
    padding: 40px 20px;
    border-radius: 0 0 20px 20px;
    border: 1px solid #ffbf00;
    background: #fff;
    text-align: center;
}

.flow .card-list .card .content .user {
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 24px; 
}

.flow .card-list .card .content .price {
    margin-top: 18px;
    font-size: 42px;
    font-style: normal;
    font-weight: 700;
    line-height: 50px;
}

.flow .card-list .card .content .price .unit {
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 30px;
}

.flow .card-list .card .content .small {
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.6px;
}

@media screen and (max-width: 767px) {
    .flow .title-box h3 {
        font-size: 1.4rem;
    }

    .flow .title-box p {
        margin-top: 1rem;
        font-size: 1rem;
    }

    .flow .card-list {
        margin-top: 2rem;
        grid-template-columns: 1fr;
    }

    .flow .card-list .card {
        width: 360px;
        margin: 0 auto;
    }

    .flow .card-list .card .title {
        padding: 1rem;
        font-size: 1.4rem;
    }
}

/*------------------------------------------
partner
------------------------------------------*/

.partner .wrapper {
    max-width: 960px;
}

.partner .image-text {
    display: flex;
    gap: 50px;
}

.partner .image-text .image-box {
    max-width: 361px;
}

.partner .image-text .image-box img {
    width: 100%;
}

.partner .image-text .text-box p {
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

@media screen and (max-width: 767px) {
    .partner .image-text {
        flex-direction: column;
        gap: 2rem;
    }

    .partner .image-text .text-box p {
        font-size: 1rem;
        line-height: 1.6;
    }
}

/*------------------------------------------
footnote
------------------------------------------*/

.footnote .wrapper {
    max-width: var(--site-width);
    margin: 0 auto;
    padding: 40px 0;
}

.footnote p {
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}


/*------------------------------------------
modal
------------------------------------------*/

.open-modal {
    cursor: pointer;
}

.modal {
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.modal .wrapper {
    /* width: var(--site-width); */
    max-height: 80vh;   /* 画面高さの80%まで */
    overflow-y: auto;   /* 縦スクロールを有効化 */
}

.modal.active {
    opacity: 1;
    pointer-events: auto;
}

.modal .modal-content {
    padding: 60px;
    position: relative;
    scrollbar-gutter: stable;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.10);
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.modal.active .modal-content {
    transform: translateY(0);
}

.modal .modal-content .top-close-box {
    margin-bottom: 30px;
    text-align: right;
}
.modal .modal-content .top-right-close {
    padding-right: 25px;
    font-size: 18px;
    cursor: pointer;
    position: relative;
    transition: all 0.3s;
}

.modal .modal-content .top-right-close::after {
    content: "";
    position: absolute;
    top: calc(50% + 1px);
    right: 0;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    /* background: url(/-/media/ind/cybozu/kintone/image/modal_close_after.svg) no-repeat center / contain; */
    background-color: #c1bfbf; /* 通常色 */

    /* SVGをmaskとして指定 */
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M16.2123 13.7969L22.4209 20.0055L20.3507 22.0757L14.1421 15.8671L7.9335 22.0757L5.86328 20.0055L12.0719 13.7969L6.20855 7.93354L8.27877 5.86332L14.1421 11.7266L20.0054 5.86332L22.0756 7.93354L16.2123 13.7969Z'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;

    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M16.2123 13.7969L22.4209 20.0055L20.3507 22.0757L14.1421 15.8671L7.9335 22.0757L5.86328 20.0055L12.0719 13.7969L6.20855 7.93354L8.27877 5.86332L14.1421 11.7266L20.0054 5.86332L22.0756 7.93354L16.2123 13.7969Z'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;

    transition: all 0.3s;
}

.modal .modal-content .top-right-close:hover {
    text-decoration: none;
    opacity: .8;
}

.modal .modal-content .top-right-close:hover::after {
    background-color: #b1000e;
    opacity: .8;
}

.modal .modal-content .label {
    margin-bottom: 40px;
    padding: 10px 25px;
    display: inline-block;
    border: 1px solid #ffbf00;
}

.modal .modal-content h2 {
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid #ffbf00;
    font-size: 36px;
    font-style: normal;
    font-weight: 700;
    line-height: 42px;
}

.modal .modal-content p {
    margin-bottom: 40px;

    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

.modal .modal-content .image-text {
    margin-bottom: 40px;
    display: flex;
    gap: 60px;
}

.modal .modal-content .check-list {
    margin-bottom: 40px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.modal .modal-content .check-list li {
    padding-left: 50px;
    position: relative;

    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px;
    letter-spacing: 0.7px;
}

.modal .modal-content .check-list li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background: url(/-/media/ind/cybozu/kintone/image/modal_checklist_before.svg) no-repeat center / contain;
}

.modal .modal-content .mb-large {
    margin-bottom: 60px;
}

.modal .modal-content .button-modal-close {
    margin: 0 auto;
    width: 224px;
    height: 50px;
    background: #fff;
    color: #333;
    border: 1px solid #333;
    border-radius: 200px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    cursor: pointer;
    transition: all 0.3s ease;
}

.modal .modal-content .button-modal-close:hover {
    /* background: #333;
    color: #fff; */
    background: #efefef;
    text-decoration: none;
    opacity: .8;
}

.modal .modal-content .button-modal-close::after {
    content: "\00D7";
    position: absolute;
    top: calc(50% - 1px);
    right: 24px;
    translate: 0 -50%;
    font-size: 1rem;
    color: #333;
    transition: all 0.3s ease;
}

.modal .modal-content .button-modal-close:hover::after {
    /* color: #fff; */
}

@media screen and (max-width: 767px) {
    .modal .wrapper {
        width: 100%;
        padding: 0;
    }

    .modal .modal-content {
        padding: 1rem;
    }

    .modal .modal-content .top-right-close {
        font-size: 1rem;
    }

    .modal .modal-content .label {
        padding: .1rem .5rem;
        font-size: .9rem;
    }

    .modal .modal-content h2 {
        font-size: 1.4rem;
        padding-bottom: 0;
    }

    .modal .modal-content .image-text {
        flex-direction: column;
        gap: 2rem;
    }

    .modal .modal-content .check-list li {
        padding-left: 2.2rem;
    }

    .modal .modal-content .label,
    .modal .modal-content h2,
    .modal .modal-content p,
    .modal .modal-content .image-text,
    .modal .modal-content .check-list {
        margin-bottom: 2rem;
    }

    .modal .modal-content .mb-large {
        margin-bottom: 4rem;
    }
}

/* modal1 */
#modal1 .image-box {
    max-width: 438px;
}

#modal1 .image-box img {
    width: 100%;
}

/* modal2 */
#modal2 .image-box {
    max-width: 438px;
}

#modal2 .image-box img {
    width: 100%;
}

/* modal3 */
#modal3 .image-box {
    max-width: 438px;
}

#modal3 .image-box img {
    width: 100%;
}

/* modal4 */
#modal4 .image-box {
    max-width: 720px;
}

#modal4 .image-box img {
    width: 100%;
}

/* modal5 */
#modal5 .image-box {
    max-width: 438px;
}

#modal5 .image-box img {
    width: 100%;
}

/* modal6 */
#modal6 .image-box {
    max-width: 820px;
}

#modal6 .image-box img {
    width: 100%;
}