@charset "UTF-8";

    @media screen and (min-width: 744px) {
        
    }

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


/* レイアウトをリセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.services {
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    width: 80%;
    gap: 5rem;
}
    @media screen and (min-width: 744px) {
        .services {
            gap: 6rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .services {
            width: 60%;
        }
    }

.services-title {
    font-family: var(--en-font);
    font-size: 2rem;
    font-weight: 400;
    color: var(--main-color);
}
    @media screen and (min-width: 744px) {
        .services-title {
            font-size: 2.5rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .services-title {
            font-size: 2.75rem;
        }
    }

.services-subtitle {
    font-family: var(--jp-font);
    font-weight: 300;
    color: var(--sub-color);
    font-size: 0.875rem;
}
    @media screen and (min-width: 744px) {
        .services-subtitle {
            font-size: 1rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .services-subtitle {
            font-size: 1.25rem;
        }
    }

/*PRICEセクション-------------------------------*/
.price {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
    @media screen and (min-width: 744px) {
        .price {
             gap: 0.75rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .price {
             gap: 1rem;
        }
    }

.price-main {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
    @media screen and (min-width: 744px) {
        .price-main {
            gap: 2.5rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .price-main {
            gap: 3rem;
        }
    }

.price-bottom {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
    @media screen and (min-width: 744px) {
        .price-bottom {
            display: grid;
            grid-template-columns: repeat(2, minmax(0,1fr));
            gap: 2.5rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .price-bottom {
            gap: 3rem;
        }
    }

.price-item {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    background-color: var(--white);
}

.price-item h3 {
    border-bottom: 1px solid var(--sub-color);
    font-family: var(--jp-font);
    font-weight: 300;
    color: var(--sub-color);
    font-size: 1.25rem;
}
    @media screen and (min-width: 1024px) {
        .price-item h3 {
            font-size: 1.5rem;
        }
    }

.price-item-consulting, 
.price-item-menu {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.price-item-consulting dd, 
.price-item-menu dd {
    text-align: right;
}


/*FAQセクション-------------------------------------------------*/
.faq {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
    @media screen and (min-width: 744px) {
        .faq {
             gap: 0.75rem;
        }
    }

    @media screen and (min-width: 1024px) {
        .faq {
             gap: 1rem;
        }
    }

.faq-item-container {
    display: flex;
    flex-direction: column;
    gap: 4rem;
}

.faq-item-section {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faq-item-title-container {
    border-bottom: 1px solid var(--sub-color);
}

.faq-item-title-container h3 {
    font-family: var(--jp-font);
    font-weight: 300;
    color: var(--main-color);
    font-size: 1.25rem;
}
    @media screen and (min-width: 1024px) {
        .price-item h3 {
            font-size: 1.5rem;
        }
    }

.faq-details-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.faq-details {
    background-color: var(--white);
}

.faq-details p {
    font-size: 1rem;
}

.faq-question {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    border-bottom: 1px solid var(--line-color);
    align-items: center;
    cursor: pointer;
    padding: 1.5rem;
}
    @media screen and (min-width: 1024px) {
        .faq-question {
            padding: 2rem;
        }
    }

.faq-question-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
    padding-right: 1.5rem;
}
    @media screen and (min-width: 1024px) {
        .faq-question-item {
            gap: 2rem;
        }
    }

.faq-question-item-inner {
    display: flex;
    flex-direction: column;
    gap: 1em;
}
    @media screen and (min-width: 824px) {
        .faq-question-item-inner {
            gap: 0;
        }
    }

.faq-answer {
    padding: 1.5rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.5rem;
}
    @media screen and (min-width: 1024px) {
        .faq-answer {
            padding: 2rem;
        }
    }

.faq-answer-item {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.q-mark,
.a-mark {
    flex: 0 0 2.5rem;   /* shrinkさせない + 幅固定 */
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    font-weight: 600;
}

.q-mark {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--main-color);
    color: var(--white);
}

.a-mark {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: var(--caution-color);
    color: var(--white);
}


/* 閉：＋ */
.faq-icon::before {
  font: var(--fa-font-solid); 
  content: "\f067";
  display: inline-block;
  line-height: 1;
  transition: content .1s ease; /* ※回転は不要なのでcontentのみ */
}

/* 開：− */
.faq-details[open] .faq-icon::before {
  content: "\f068";            /* fa-minus */
}


