@charset "utf-8";
/* ==========================================================================
   dentalmacau.com · 語義化改造 + 問答區塊
   2026-11-10  faq-work-20261110/skin/css/semantic-faq.css

   一、這份檔案只做三件事
       1. 提供 .dm-sr-only（視覺隱藏但仍供讀屏與 AI 抓取的標題）
       2. 補回「div 提升為 h3」後的原本字重（h 標籤預設 700）
       3. 問答區塊 .dm-faq 的樣式，五個頁面各一套變體

   二、不改既有樣式
       原 skin/css/*.css 只做了選擇器組擴充（.title h3 → .title h3,.title h2,.title h1），
       聲明一條未動。本檔案負責「新增元素」與「標籤升級後的微調」，
       全部規則以 .dm- 前綴或具體後代限定，不與原站樣式衝突。

   三、問答互動
       用原生 <details>/<summary>，無 JS 亦可展開收起；
       faq-qa.js 只做「同時只開一條」與深鏈接定位，屬增強而非必需。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 視覺隱藏（只給讀屏與結構用）
   -------------------------------------------------------------------------- */
.dm-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* h1 包住 logo 圖片時會多一份行盒高度，統統壓掉（本批未用，備用） */
.dm-h-reset {
    display: block;
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* --------------------------------------------------------------------------
   2. 標籤升級配套
   -------------------------------------------------------------------------- */

/* 醫師姓名：原 <div class="name"> 為 400 字重，升 h3 後預設變 700，補回 */
.doctor_item .doctor_intro1 .name {
    font-weight: 400;
}

/* --------------------------------------------------------------------------
   3. 問答區塊 · 通用骨架
   -------------------------------------------------------------------------- */
.dm-faq,
.dm-faq *,
.dm-faq *::before,
.dm-faq *::after {
    box-sizing: border-box;
}

.dm-faq {
    font-family: inherit;
    color: #333333;
    -webkit-font-smoothing: antialiased;
}

.dm-faq__head {
    text-align: center;
}

.dm-faq__title {
    display: inline-block;
    position: relative;
    margin: 0;
    font-weight: 700;
    line-height: 1.35;
}

.dm-faq__sub {
    margin: 10px 0 0;
    font-size: 16px;
    line-height: 1.6;
    color: #8c8c8c;
}

.dm-faq__list {
    margin: 0;
    padding: 0;
    list-style: none;
    /* 序號交給 CSS 計數器輸出，DOM 裡不帶數字，
       AI 抓成 Markdown 時 h3 行只會有問題本身 */
    counter-reset: dm-faq;
}

.dm-faq__item {
    counter-increment: dm-faq;
}

.dm-faq__q {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    outline: none;
}

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

.dm-faq__q::marker {
    content: "";
}

.dm-faq__q:focus-visible {
    outline: 2px solid #4688af;
    outline-offset: 3px;
}

.dm-faq__num {
    flex: 0 0 auto;
    font-weight: 700;
    line-height: 1.6;
    -webkit-user-select: none;
    user-select: none;
}

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

.dm-faq__text {
    flex: 1 1 auto;
    margin: 0;
    font-weight: 700;
    line-height: 1.6;
}

.dm-faq__icon {
    flex: 0 0 auto;
    width: .42em;
    height: .42em;
    margin-top: .52em;
    border-right: .12em solid currentColor;
    border-bottom: .12em solid currentColor;
    transform: rotate(45deg);
    transition: transform .28s ease;
}

.dm-faq__item[open] .dm-faq__icon {
    transform: rotate(-135deg);
}

.dm-faq__a {
    margin: 0;
}

.dm-faq__a p {
    margin: 0;
}

.dm-faq__a p + p {
    margin-top: 8px;
}

.dm-faq__item[open] > .dm-faq__a {
    animation: dmFaqIn .3s ease both;
}

@keyframes dmFaqIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* JS 未載入時一切照常（details 原生行為），不靠腳本才能看到答案 */
@media print {
    .dm-faq__item > .dm-faq__a {
        display: block !important;
    }

    .dm-faq__icon {
        display: none;
    }
}

/* ==========================================================================
   4. 頁面變體
   ========================================================================== */

/* --------------------------------------------------------------------------
   4.1 首頁 —— 對齊 .s-title（30px / #666 / 居中）與 .s-part 版心 1250px
   -------------------------------------------------------------------------- */
.dm-faq--home {
    width: 1250px;
    margin: 0 auto;
    padding: 4% 0 5%;
}

.dm-faq--home .dm-faq__title {
    font-size: 30px;
    color: #666666;
    letter-spacing: 1px;
}

.dm-faq--home .dm-faq__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -14px;
    width: 56px;
    height: 3px;
    background: #3391c1;
    border-radius: 3px;
    transform: translateX(-50%);
}

.dm-faq--home .dm-faq__sub {
    margin-top: 26px;
    font-size: 17px;
}

.dm-faq--home .dm-faq__list {
    margin-top: 34px;
    border-top: 1px solid #e8e8e8;
}

.dm-faq--home .dm-faq__item {
    border-bottom: 1px solid #e8e8e8;
}

.dm-faq--home .dm-faq__q {
    padding: 22px 10px 22px 4px;
    font-size: 18px;
}

.dm-faq--home .dm-faq__num {
    color: #3391c1;
    font-size: 18px;
}

.dm-faq--home .dm-faq__text {
    color: #333333;
    letter-spacing: .3px;
}

.dm-faq--home .dm-faq__item[open] .dm-faq__text {
    color: #166c9f;
}

.dm-faq--home .dm-faq__icon {
    color: #3391c1;
}

.dm-faq--home .dm-faq__a {
    padding: 0 10px 24px 42px;
    font-size: 16px;
    line-height: 1.85;
    color: #666666;
    text-align: justify;
}

/* --------------------------------------------------------------------------
   4.2 品牌介紹 —— 對齊 .title h3（28px / #4c4c4c / 綠色下劃線）與 .width 1250px
   -------------------------------------------------------------------------- */
.dm-faq--ppjj {
    width: 1250px;
    margin: 0 auto;
    padding: 5% 0 4%;
}

.dm-faq--ppjj .dm-faq__title {
    font-size: 28px;
    color: #4c4c4c;
}

.dm-faq--ppjj .dm-faq__title::after {
    content: "";
    position: absolute;
    bottom: -20%;
    left: 50%;
    width: 50%;
    height: 3px;
    background: #92d3b2;
    transform: translateX(-50%);
}

.dm-faq--ppjj .dm-faq__sub {
    margin-top: 24px;
    font-size: 17px;
}

.dm-faq--ppjj .dm-faq__list {
    margin-top: 38px;
}

.dm-faq--ppjj .dm-faq__item {
    position: relative;
    padding: 0 10px 0 2px;
    margin-bottom: 32px;
}

/* 條目之間用極淡的虛線分隔，避免整頁只靠留白分組 */
.dm-faq--ppjj .dm-faq__item + .dm-faq__item {
    padding-top: 26px;
    border-top: 1px dashed #e0eee7;
}

.dm-faq--ppjj .dm-faq__q {
    font-size: 19px;
}

.dm-faq--ppjj .dm-faq__num {
    color: #92d3b2;
    font-size: 19px;
}

.dm-faq--ppjj .dm-faq__text {
    color: #4c4c4c;
}

.dm-faq--ppjj .dm-faq__icon {
    color: #92d3b2;
}

.dm-faq--ppjj .dm-faq__a {
    padding: 12px 0 0 0;
    font-size: 17px;
    line-height: 1.85;
    color: #6b6b6b;
    text-align: justify;
}

/* --------------------------------------------------------------------------
   4.3 醫師團隊 —— 對齊 .doctor_item（白卡 + #f0f6f9 柔光）與 .name（#0a6a9b）
   -------------------------------------------------------------------------- */
.dm-faq--ystd {
    width: 1250px;
    margin: 0 auto 4%;
}

.dm-faq--ystd .dm-faq__title {
    font-size: 28px;
    color: #0a6a9b;
    letter-spacing: 1px;
}

.dm-faq--ystd .dm-faq__sub {
    margin-top: 16px;
    font-size: 16px;
}

.dm-faq--ystd .dm-faq__list {
    margin-top: 26px;
}

.dm-faq--ystd .dm-faq__item {
    margin-top: 16px;
    padding: 0 26px;
    background: #ffffff;
    border: 1px solid #e6eff4;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(10, 106, 155, .05);
    transition: border-color .3s ease, box-shadow .3s ease;
}

.dm-faq--ystd .dm-faq__item[open] {
    border-color: #cfe3ee;
    box-shadow: 0 4px 16px rgba(10, 106, 155, .10);
}

.dm-faq--ystd .dm-faq__q {
    padding: 20px 0;
    font-size: 18px;
}

.dm-faq--ystd .dm-faq__num {
    color: #0a6a9b;
    font-size: 18px;
}

.dm-faq--ystd .dm-faq__text {
    color: #1f4f68;
}

.dm-faq--ystd .dm-faq__icon {
    color: #0a6a9b;
}

.dm-faq--ystd .dm-faq__a {
    padding: 0 0 22px 42px;
    font-size: 16px;
    line-height: 1.85;
    color: #5c6b73;
    text-align: justify;
}

/* --------------------------------------------------------------------------
   4.4 收費標準 —— 對齊 .part-title（30px / #033146 / 雙線裝飾）與 .part 1250px
   -------------------------------------------------------------------------- */
.dm-faq--sfbz {
    width: 1250px;
    margin: 0 auto;
    padding: 4% 0 5%;
}

.dm-faq--sfbz .dm-faq__title {
    font-size: 30px;
    color: #033146;
    letter-spacing: 1px;
}

/* 與 .part-title::before / ::after 同款雙線 */
.dm-faq--sfbz .dm-faq__title::before {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -12px;
    width: 190px;
    height: 2px;
    background: #97bcd1;
    border-radius: 10px;
    transform: translateX(-50%);
    z-index: 2;
}

.dm-faq--sfbz .dm-faq__title::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -13px;
    width: 60px;
    height: 4px;
    background: #4688af;
    border-radius: 10px;
    transform: translateX(-50%);
    z-index: 2;
}

.dm-faq--sfbz .dm-faq__sub {
    margin-top: 28px;
    font-size: 17px;
}

.dm-faq--sfbz .dm-faq__list {
    margin-top: 40px;
    border: 1px solid #d8e3ea;
    border-radius: 4px;
    background: #fbfdfe;
}

.dm-faq--sfbz .dm-faq__item + .dm-faq__item {
    border-top: 1px dashed #d8e3ea;
}

.dm-faq--sfbz .dm-faq__q {
    padding: 20px 18px 20px 24px;
    font-size: 19px;
}

.dm-faq--sfbz .dm-faq__num {
    color: #4688af;
    font-size: 19px;
}

.dm-faq--sfbz .dm-faq__text {
    color: #204a95;
    letter-spacing: .3px;
}

.dm-faq--sfbz .dm-faq__icon {
    color: #4688af;
}

.dm-faq--sfbz .dm-faq__a {
    padding: 0 24px 22px 60px;
    font-size: 16px;
    line-height: 1.9;
    color: #5a6a75;
    text-align: justify;
}

/* --------------------------------------------------------------------------
   4.5 就醫指引 —— 對齊 .guide-part（1px #B4C0C6 描邊）與 .item-title（灰藍標題條）
   -------------------------------------------------------------------------- */
.dm-faq--jyzy {
    margin-top: 3%;
    border: 1px solid #b4c0c6;
    background: #ffffff;
}

.dm-faq--jyzy .dm-faq__head {
    background: #b4c0c6;
    border-bottom: 1px solid #b4c0c6;
    padding: 7px 16px;
    text-align: center;
}

.dm-faq--jyzy .dm-faq__title {
    font-size: 18px;
    color: #ffffff;
    font-weight: 700;
}

.dm-faq--jyzy .dm-faq__sub {
    margin-top: 4px;
    font-size: 13px;
    color: #eef3f6;
    letter-spacing: .5px;
}

.dm-faq--jyzy .dm-faq__list {
    padding: 6px 20px 10px;
}

.dm-faq--jyzy .dm-faq__item + .dm-faq__item {
    border-top: 1px solid #e3eaee;
}

.dm-faq--jyzy .dm-faq__q {
    padding: 16px 6px 16px 0;
    font-size: 16px;
}

.dm-faq--jyzy .dm-faq__num {
    color: #7e939e;
    font-size: 16px;
}

.dm-faq--jyzy .dm-faq__text {
    color: #2f4858;
}

.dm-faq--jyzy .dm-faq__icon {
    color: #7e939e;
}

.dm-faq--jyzy .dm-faq__a {
    padding: 0 0 18px 40px;
    font-size: 15px;
    line-height: 1.85;
    color: #666666;
    text-align: justify;
}

/* 聯絡方式那條：把「澳門電話：…」逐行排版成清單感 */
.dm-faq--jyzy .dm-faq__a p {
    padding-left: 0;
}

/* ==========================================================================
   5. 響應式（與各頁既有斷點對齊）
   ========================================================================== */

/* 版心收窄：首頁 / 品牌 / 醫師 / 收費四頁同步 1250 → 980 */
@media screen and (max-width: 1400px) {
    .dm-faq--home,
    .dm-faq--ppjj,
    .dm-faq--ystd,
    .dm-faq--sfbz {
        width: 980px;
    }

    .dm-faq--home .dm-faq__title,
    .dm-faq--sfbz .dm-faq__title {
        font-size: 28px;
    }

    .dm-faq--ppjj .dm-faq__title,
    .dm-faq--ystd .dm-faq__title {
        font-size: 26px;
    }

    .dm-faq--home .dm-faq__q,
    .dm-faq--sfbz .dm-faq__q {
        font-size: 17px;
    }

    .dm-faq--ppjj .dm-faq__q,
    .dm-faq--ystd .dm-faq__q {
        font-size: 17px;
    }

    .dm-faq--home .dm-faq__a,
    .dm-faq--ppjj .dm-faq__a,
    .dm-faq--ystd .dm-faq__a,
    .dm-faq--sfbz .dm-faq__a {
        font-size: 15px;
    }
}

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

    .dm-faq--home,
    .dm-faq--ppjj,
    .dm-faq--ystd,
    .dm-faq--sfbz {
        width: 95%;
    }

    .dm-faq--sfbz .dm-faq__title::before {
        width: 150px;
    }
}

@media screen and (max-width: 768px) {

    .dm-faq--home,
    .dm-faq--ppjj,
    .dm-faq--ystd {
        width: 96%;
    }

    .dm-faq--sfbz {
        width: 96%;
    }

    .dm-faq--home,
    .dm-faq--ppjj,
    .dm-faq--sfbz {
        padding: 8% 0;
    }

    .dm-faq--home .dm-faq__title,
    .dm-faq--sfbz .dm-faq__title {
        font-size: 22px;
    }

    .dm-faq--ppjj .dm-faq__title,
    .dm-faq--ystd .dm-faq__title {
        font-size: 21px;
    }

    .dm-faq__sub {
        font-size: 14px;
    }

    .dm-faq--home .dm-faq__q,
    .dm-faq--ppjj .dm-faq__q,
    .dm-faq--ystd .dm-faq__q,
    .dm-faq--sfbz .dm-faq__q {
        font-size: 16px;
        gap: 10px;
    }

    .dm-faq--home .dm-faq__num,
    .dm-faq--ppjj .dm-faq__num,
    .dm-faq--ystd .dm-faq__num,
    .dm-faq--sfbz .dm-faq__num {
        font-size: 16px;
    }

    .dm-faq--home .dm-faq__a,
    .dm-faq--ppjj .dm-faq__a,
    .dm-faq--ystd .dm-faq__a {
        padding-left: 34px;
        font-size: 14px;
        line-height: 1.8;
    }

    .dm-faq--sfbz .dm-faq__q {
        padding: 16px;
    }

    .dm-faq--sfbz .dm-faq__a {
        padding: 0 16px 18px 48px;
        font-size: 14px;
        line-height: 1.8;
    }

    .dm-faq--ystd .dm-faq__item {
        padding: 0 18px;
        border-radius: 10px;
    }

    .dm-faq--ystd .dm-faq__q {
        padding: 16px 0;
    }

    .dm-faq--jyzy .dm-faq__list {
        padding: 4px 14px 8px;
    }

    .dm-faq--jyzy .dm-faq__q {
        font-size: 15px;
        padding: 14px 0;
    }

    .dm-faq--jyzy .dm-faq__a {
        padding: 0 0 16px 34px;
        font-size: 14px;
    }
}

@media screen and (max-width: 500px) {

    .dm-faq--home .dm-faq__title,
    .dm-faq--sfbz .dm-faq__title {
        font-size: 20px;
    }

    .dm-faq--sfbz .dm-faq__title::before {
        width: 120px;
        bottom: -10px;
    }

    .dm-faq--sfbz .dm-faq__title::after {
        bottom: -11px;
    }

    .dm-faq--sfbz .dm-faq__list,
    .dm-faq--ystd .dm-faq__item {
        border-radius: 8px;
    }

    .dm-faq--home .dm-faq__q,
    .dm-faq--sfbz .dm-faq__q {
        font-size: 15px;
    }

    .dm-faq--home .dm-faq__a,
    .dm-faq--ppjj .dm-faq__a,
    .dm-faq--ystd .dm-faq__a,
    .dm-faq--sfbz .dm-faq__a {
        font-size: 13.5px;
    }

    .dm-faq--jyzy .dm-faq__title {
        font-size: 17px;
    }
}
