/* ==========================================================================
   常見問題（FAQ）元件 —— dentistsz 2026-11-10
   與站內視覺對齊：主色 #089ba8、白色版面、標題 24px + 2px 底線
   只承載 FAQ 區塊自身的樣式，不覆寫站內既有選擇器
   ========================================================================== */

.vkp-faq {
    clear: both;
    width: 100%;
    padding: 10px 0 40px;
}

.vkp-faq__inner {
    width: 90%;
    margin: 0 auto;
}

/* ---- 區塊標題：對齊 .main_all header / .main header h2 的視覺 ---- */
.vkp-faq__head {
    padding-top: 15px;
    border-bottom: 1px solid gray;
    margin-bottom: 18px;
}

.vkp-faq__title {
    display: inline-block;
    margin: 0;
    padding: 10px 0;
    font-size: 24px;
    font-weight: bold;
    color: #089ba8;
    border-bottom: 2px solid #089ba8;
    letter-spacing: 1px;
}

.vkp-faq__sub {
    display: inline-block;
    margin: 0 0 0 10px;
    font-size: 12px;
    font-weight: normal;
    letter-spacing: 3px;
    color: #b3c6c9;
    text-transform: uppercase;
    vertical-align: 2px;
}

/* ---- 清單：桌面兩欄、窄屏一欄 ---- */
.vkp-faq__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 20px;
    align-items: start;
    counter-reset: vkp-item;
}

.vkp-faq__item {
    counter-increment: vkp-item;
    background: #f7fbfc;
    border: 1px solid #dbeaee;
    border-radius: 10px;
    padding: 0 18px;
    transition: border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.vkp-faq__item:hover {
    background: #ffffff;
    border-color: #b7dbe0;
    box-shadow: 0 6px 18px rgba(8, 155, 168, .08);
}

.vkp-faq__item[open] {
    background: #ffffff;
    border-color: #9fd2d8;
    box-shadow: 0 8px 22px rgba(8, 155, 168, .10);
}

/* ---- 問題（h3 置於 summary 內，合法的 heading content 混排） ---- */
.vkp-faq__q {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 16px 0;
    cursor: pointer;
    list-style: none;
}

.vkp-faq__q::-webkit-details-marker {
    display: none;
}

.vkp-faq__q::marker {
    display: none;
}

/* 序號由 CSS 計數器輸出，DOM 內不保留數字，避免 AI 抓取時污染 ### 標題行 */
.vkp-faq__num {
    flex: none;
    width: 26px;
    height: 26px;
    line-height: 26px;
    margin-top: 1px;
    text-align: center;
    border-radius: 6px;
    background: #089ba8;
    color: #ffffff;
    font-size: 13px;
    font-weight: bold;
}

.vkp-faq__num::before {
    content: counter(vkp-item, decimal-leading-zero);
}

.vkp-faq__qtext {
    flex: 1 1 auto;
    margin: 0;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    color: #1b6f78;
    letter-spacing: .5px;
}

.vkp-faq__arrow {
    flex: none;
    width: 8px;
    height: 8px;
    margin: 8px 2px 0 6px;
    border-right: 2px solid #8fbdc2;
    border-bottom: 2px solid #8fbdc2;
    transform: rotate(45deg);
    transition: transform .25s ease, margin .25s ease;
}

.vkp-faq__item[open] .vkp-faq__arrow {
    transform: rotate(-135deg);
    margin-top: 12px;
}

/* ---- 答案 ---- */
.vkp-faq__a {
    padding: 0 2px 16px 36px;
    font-size: 15px;
    line-height: 1.9;
    color: #5b6b6f;
    text-align: justify;
}

.vkp-faq__a p {
    margin: 0;
}

.vkp-faq__a p + p,
.vkp-faq__a p + ul {
    margin-top: 8px;
}

.vkp-faq__contact {
    padding: 0;
}

.vkp-faq__contact li {
    position: relative;
    padding-left: 14px;
    line-height: 1.9;
}

.vkp-faq__contact li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .82em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #089ba8;
}

/* ---- 響應式 ---- */
@media screen and (max-width: 1100px) {
    .vkp-faq__inner {
        width: 96%;
    }

    .vkp-faq__list {
        gap: 12px 14px;
    }

    .vkp-faq__qtext {
        font-size: 15px;
    }
}

@media screen and (max-width: 900px) {
    .vkp-faq__list {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 768px) {
    .vkp-faq {
        padding-bottom: 28px;
    }

    .vkp-faq__title {
        font-size: 20px;
    }

    .vkp-faq__item {
        padding: 0 14px;
    }

    .vkp-faq__a {
        padding-left: 4px;
        font-size: 14px;
        line-height: 1.8;
    }
}
