.renovation-faq-page {
  --faq-ink: #595757;
  --faq-muted: #6f6c69;
  --faq-line: #cac8c5;
  --faq-soft: #f1f1f0;
  --faq-soft-2: #e7e7e6;
  --faq-accent: #777674;
  color: var(--faq-ink);
}

.renovation-faq-page .main-content { overflow: clip; }
.faq-page-head { margin-bottom: 0; }
.renovation-faq-page .wjt-line-icon { width: 22px; height: 22px; flex: 0 0 auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.faq-hero {
  max-width: 1040px;
  padding: clamp(72px, 10vw, 150px) 0 clamp(70px, 9vw, 130px);
}

.faq-eyebrow,
.faq-group-head > p:first-of-type,
.faq-category-sidebar > p,
.faq-final-cta > div > p,
.faq-legal-sources header > p,
.faq-visual figcaption > span {
  margin: 0 0 16px;
  color: var(--faq-muted);
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.faq-hero h1 {
  margin: 0;
  font-family: "Noto Serif TC", "Songti TC", serif;
  font-size: clamp(44px, 7vw, 86px);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -.04em;
}

.faq-hero > p:last-of-type {
  max-width: 720px;
  margin: 34px 0 0;
  color: var(--faq-muted);
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.9;
}

.faq-search {
  max-width: 720px;
  margin-top: 52px;
}

.faq-search > label {
  display: block;
  margin-bottom: 9px;
  font-size: 12px;
  letter-spacing: .08em;
}

.faq-search > div {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 52px;
  padding: 0 16px;
  background: #fff;
  border: 1px solid var(--faq-line);
}

.faq-search input {
  width: 100%;
  min-width: 0;
  height: 50px;
  padding: 0;
  color: var(--faq-ink);
  background: transparent;
  border: 0;
  border-radius: 0;
  font: inherit;
}

.faq-search input:focus { outline: 0; }
.faq-search > div:focus-within { outline: 2px solid var(--faq-accent); outline-offset: 2px; }
.faq-search button { padding: 8px 0 8px 12px; color: var(--faq-muted); background: none; border: 0; cursor: pointer; }
.faq-search > p { margin: 10px 0 0; color: var(--faq-muted); font-size: 13px; }

.faq-mobile-categories { display: none; }

.faq-page-layout {
  display: grid;
  grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
  gap: clamp(42px, 8vw, 120px);
  padding: 0 0 clamp(80px, 10vw, 150px);
  border-top: 1px solid var(--faq-line);
}

.faq-category-sidebar {
  position: relative;
  padding-top: 72px;
}

.faq-category-sidebar > nav {
  position: sticky;
  top: 96px;
  border-top: 1px solid var(--faq-line);
}

.faq-category-sidebar a {
  position: relative;
  display: grid;
  grid-template-columns: 32px 24px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 76px;
  padding: 12px 8px;
  color: var(--faq-muted);
  border-bottom: 1px solid var(--faq-line);
  text-decoration: none;
}

.faq-category-sidebar a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: var(--faq-ink);
  transform: scaleY(0);
  transition: transform .18s ease;
}

.faq-category-sidebar a[aria-current="true"] { color: var(--faq-ink); }
.faq-category-sidebar a[aria-current="true"]::before { transform: scaleY(1); }
.faq-category-sidebar a > span { font-size: 10px; letter-spacing: .12em; }
.faq-category-sidebar a svg { width: 19px; height: 19px; }
.faq-category-sidebar a strong { font-size: 13px; font-weight: 500; line-height: 1.5; }
.faq-category-sidebar a small { font-size: 10px; white-space: nowrap; }

.faq-content { min-width: 0; }
.faq-group { scroll-margin-top: 100px; padding: clamp(74px, 9vw, 125px) 0; border-bottom: 1px solid var(--faq-line); }
.faq-group:last-child { border-bottom: 0; }

.faq-group-head { max-width: 840px; margin-bottom: 44px; }
.faq-group-label { display: flex; gap: 14px; align-items: center; margin-bottom: 26px; color: var(--faq-muted); }
.faq-group-label > span { font-size: 13px; letter-spacing: .14em; }
.faq-group-label > small { margin-left: auto; font-size: 10px; letter-spacing: .14em; }
.faq-group-head h2 { margin: 0 0 24px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: clamp(32px, 4vw, 50px); font-weight: 500; line-height: 1.35; letter-spacing: -.025em; }
.faq-group-intro { max-width: 760px; margin: 0 0 9px; color: var(--faq-muted); line-height: 1.85; }

.faq-accordion { border-top: 1px solid var(--faq-line); }
.faq-item { scroll-margin-top: 110px; border-bottom: 1px solid var(--faq-line); }
.faq-item[hidden] { display: none; }
.faq-item summary { position: relative; display: grid; grid-template-columns: 74px minmax(0, 1fr) 28px; gap: 18px; align-items: center; min-height: 76px; padding: 17px 10px; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 2px; background: var(--faq-accent); transform: scaleY(0); transition: transform .18s ease; }
.faq-item[open] summary::before { transform: scaleY(1); }
.faq-item summary:focus-visible { outline: 2px solid var(--faq-accent); outline-offset: -2px; }
.faq-question-number { align-self: start; padding-top: 4px; color: var(--faq-muted); font-size: 11px; letter-spacing: .14em; }
.faq-question-copy { min-width: 0; }
.faq-question-copy strong { display: block; font-size: clamp(16px, 1.6vw, 19px); font-weight: 500; line-height: 1.55; }
.faq-question-copy small { display: block; margin-top: 7px; color: var(--faq-muted); font-size: 12px; font-weight: 400; line-height: 1.55; }
.faq-chevron { position: relative; width: 22px; height: 22px; }
.faq-chevron::before, .faq-chevron::after { content: ""; position: absolute; top: 10px; width: 10px; height: 1px; background: currentColor; transition: transform .2s ease; }
.faq-chevron::before { left: 2px; transform: rotate(45deg); }
.faq-chevron::after { right: 2px; transform: rotate(-45deg); }
.faq-item[open] .faq-chevron::before { transform: rotate(-45deg); }
.faq-item[open] .faq-chevron::after { transform: rotate(45deg); }

.faq-answer { max-width: 940px; padding: 4px 38px 52px 102px; color: var(--faq-muted); animation: faqReveal .2s ease both; }
@keyframes faqReveal { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }
.faq-answer > p { max-width: 760px; margin: 0 0 17px; font-size: 15.5px; line-height: 1.85; }
.faq-answer > h4 { max-width: 760px; margin: 30px 0 11px; color: var(--faq-ink); font-family: "Noto Serif TC", "Songti TC", serif; font-size: 20px; font-weight: 500; }
.faq-answer > ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 28px; max-width: 760px; margin: 20px 0 25px; padding: 0; list-style: none; }
.faq-answer > ul li { position: relative; padding-left: 17px; line-height: 1.75; }
.faq-answer > ul li::before { content: ""; position: absolute; left: 0; top: .8em; width: 5px; height: 5px; background: var(--faq-accent); border-radius: 50%; }

.faq-inline-flow { display: flex; flex-wrap: wrap; gap: 28px; max-width: 900px; margin: 24px 0 30px; padding: 0; list-style: none; }
.faq-inline-flow li { position: relative; padding: 10px 14px; color: var(--faq-ink); background: var(--faq-soft); font-size: 13px; line-height: 1.55; }
.faq-inline-flow li:not(:last-child)::after { content: "→"; position: absolute; right: -22px; color: var(--faq-muted); }

.faq-callout { display: flex; gap: 14px; align-items: flex-start; max-width: 760px; margin: 26px 0; padding: 20px 22px; color: var(--faq-ink); background: var(--faq-soft); border-left: 2px solid var(--faq-accent); }
.faq-callout svg { margin-top: 2px; }
.faq-callout strong { display: block; margin-bottom: 5px; font-size: 13px; letter-spacing: .08em; }
.faq-callout p { margin: 0; color: var(--faq-muted); line-height: 1.75; }

.faq-answer-sources { max-width: 760px; margin: 32px 0; padding: 20px 0 10px; border-top: 1px solid var(--faq-line); }
.faq-answer-sources > strong { display: block; margin-bottom: 12px; color: var(--faq-muted); font-size: 11px; letter-spacing: .14em; }
.faq-answer-sources a { display: block; width: fit-content; margin: 8px 0; color: var(--faq-ink); font-size: 13px; line-height: 1.55; text-underline-offset: 4px; }
.faq-answer-sources a span[aria-hidden] { margin-left: 7px; }

mark { color: inherit; background: #e3dfd7; box-shadow: 0 0 0 2px #e3dfd7; }

.faq-empty-state { margin: 80px 0; padding: clamp(35px, 6vw, 72px); text-align: center; background: var(--faq-soft); }
.faq-empty-state svg { width: 34px; height: 34px; }
.faq-empty-state h2 { margin: 20px 0 10px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 32px; font-weight: 500; }
.faq-empty-state p { color: var(--faq-muted); }
.faq-empty-state > div { display: flex; justify-content: center; gap: 12px; margin-top: 24px; }

.faq-visual { max-width: 940px; margin: 48px 0 16px; padding: clamp(24px, 4vw, 42px); color: var(--faq-ink); background: #fff; border: 1px solid var(--faq-line); }
.faq-visual figcaption { margin-bottom: 32px; }
.faq-visual figcaption h3 { margin: 0 0 12px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: clamp(24px, 3vw, 34px); font-weight: 500; line-height: 1.45; }
.faq-visual figcaption p { max-width: 760px; margin: 0; color: var(--faq-muted); line-height: 1.8; }
.faq-visual-note { margin: 24px 0 0; color: var(--faq-muted); font-size: 12px; line-height: 1.75; }
.faq-visual-icon { display: grid; width: 46px; height: 46px; margin-bottom: 18px; place-items: center; background: var(--faq-soft); border-radius: 50%; }

.faq-plan-common { padding: 22px; background: var(--faq-soft); }
.faq-plan-common > strong { display: block; margin-bottom: 16px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 20px; font-weight: 500; }
.faq-plan-common ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 22px; margin: 0; padding: 0; list-style: none; }
.faq-plan-common li { position: relative; padding-left: 17px; font-size: 13px; line-height: 1.6; }
.faq-plan-common li::before { content: "✓"; position: absolute; left: 0; }
.faq-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 1px solid var(--faq-line); }
.faq-plan-grid > section { padding: 28px; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); }
.faq-plan-grid > section > p { margin: 0 0 5px; color: var(--faq-muted); font-size: 12px; letter-spacing: .12em; }
.faq-plan-grid h4 { min-height: 58px; margin: 0 0 14px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 21px; font-weight: 500; }
.faq-visual-price { display: block; margin-bottom: 20px; font-size: 25px; font-weight: 500; }
.faq-visual-price small { color: var(--faq-muted); font-size: 11px; font-weight: 400; }
.faq-plan-grid ul { min-height: 180px; margin: 18px 0; padding-left: 1.2em; color: var(--faq-muted); line-height: 1.75; }
.faq-plan-exclude { display: flex; gap: 10px; padding: 14px; background: var(--faq-soft); }
.faq-plan-exclude > span { display: grid; flex: 0 0 auto; width: 20px; height: 20px; place-items: center; border: 1px solid var(--faq-line); border-radius: 50%; }
.faq-plan-exclude p { margin: 0; color: var(--faq-muted); font-size: 12px; line-height: 1.65; }
.faq-plan-exclude strong { display: block; color: var(--faq-ink); }
.faq-three-views { display: flex; gap: 5px; height: 32px; margin-bottom: 8px; }
.faq-three-views i { display: block; flex: 1; background: linear-gradient(135deg, var(--faq-soft-2), var(--faq-soft)); border: 1px solid var(--faq-line); }
.faq-plan-offset { display: grid; grid-template-columns: repeat(2, 1fr); background: var(--faq-soft); }
.faq-plan-offset div { padding: 18px 24px; border-right: 1px solid var(--faq-line); }
.faq-plan-offset span, .faq-plan-offset strong { display: block; }
.faq-plan-offset span { margin-bottom: 5px; color: var(--faq-muted); font-size: 11px; }
.faq-plan-offset strong { font-size: 14px; font-weight: 500; }

.faq-calculation-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--faq-line); border-left: 1px solid var(--faq-line); }
.faq-calculation-grid section { display: grid; grid-template-columns: 28px 1fr; gap: 8px 12px; padding: 24px; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); }
.faq-calculation-grid svg { grid-row: 1 / span 2; }
.faq-calculation-grid span { font-size: 12px; letter-spacing: .12em; }
.faq-calculation-grid p { grid-column: 1 / -1; margin: 12px 0 0; }
.faq-calculation-grid i { grid-column: 1 / -1; color: var(--faq-muted); font-style: normal; }
.faq-calculation-grid strong { grid-column: 1 / -1; font-size: 21px; font-weight: 500; }
.faq-calculation-grid small { grid-column: 1 / -1; color: var(--faq-muted); line-height: 1.6; }
.faq-condition-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
.faq-condition-tags li { padding: 7px 11px; background: var(--faq-soft); font-size: 11px; }

.faq-node-flow { display: grid; grid-template-columns: repeat(6, 1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--faq-line); border-left: 1px solid var(--faq-line); }
.faq-node-flow li { position: relative; min-width: 0; padding: 20px 14px; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); }
.faq-node-flow li:not(:last-child)::after { content: "→"; position: absolute; z-index: 2; top: 50%; right: -8px; width: 16px; height: 16px; color: var(--faq-muted); background: #fff; text-align: center; line-height: 16px; transform: translateY(-50%); }
.faq-node-flow li.is-emphasis { background: var(--faq-soft); }
.faq-node-flow li > span { display: block; margin-bottom: 16px; color: var(--faq-muted); font-size: 10px; }
.faq-node-flow svg { margin-bottom: 12px; }
.faq-node-flow strong { display: block; min-height: 44px; font-size: 13px; line-height: 1.55; }
.faq-node-flow p { margin: 9px 0 0; color: var(--faq-muted); font-size: 11px; line-height: 1.6; }
.faq-node-flow small { display: block; margin-top: 12px; padding: 6px; background: var(--faq-soft); font-size: 9px; line-height: 1.45; }
.faq-version-branch { max-width: 680px; margin: 28px auto; padding: 24px; background: var(--faq-soft); }
.faq-version-branch > p { margin: 0 0 15px; color: var(--faq-muted); text-align: center; font-size: 12px; line-height: 1.7; }
.faq-version-branch ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 15px; padding: 0; list-style: none; }
.faq-version-branch li { padding: 14px; background: #fff; border: 1px solid var(--faq-line); }
.faq-version-branch li strong, .faq-version-branch li span { display: block; }
.faq-version-branch li span { margin-top: 5px; color: var(--faq-muted); font-size: 11px; }

.faq-gate-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--faq-line); border-left: 1px solid var(--faq-line); }
.faq-gate-grid section { padding: 24px; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); }
.faq-gate-grid section > span { display: block; margin-bottom: 18px; color: var(--faq-muted); font-size: 10px; letter-spacing: .12em; }
.faq-gate-grid svg { margin-bottom: 14px; }
.faq-gate-grid h4 { min-height: 52px; margin: 0 0 12px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 20px; font-weight: 500; }
.faq-gate-grid ol { margin: 0; padding-left: 1.2em; color: var(--faq-muted); font-size: 12px; line-height: 1.75; }
.faq-gate-grid small { display: block; margin-top: 18px; padding: 9px; background: var(--faq-soft); font-size: 10px; line-height: 1.55; }
.faq-not-equal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 24px 0; padding: 0; list-style: none; }
.faq-not-equal li { padding: 12px; background: var(--faq-soft); font-size: 12px; text-align: center; }
.faq-not-equal strong { margin: 0 5px; font-size: 18px; font-weight: 400; }
.faq-start-conditions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.faq-start-conditions strong { margin-right: 8px; font-size: 12px; }
.faq-start-conditions span { padding: 7px 10px; border: 1px solid var(--faq-line); font-size: 11px; }

.faq-budget-steps { display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; margin: 0; padding: 0; list-style: none; }
.faq-budget-steps li { padding: 24px; background: var(--faq-soft); border: 1px solid var(--faq-line); }
.faq-budget-steps li:nth-child(1) { min-height: 350px; background: #dedddc; }
.faq-budget-steps li:nth-child(2) { min-height: 320px; }
.faq-budget-steps li:nth-child(3) { min-height: 290px; background: #f8f8f7; }
.faq-budget-steps li > span { display: block; margin-bottom: 15px; font-size: 10px; letter-spacing: .13em; }
.faq-budget-steps svg { margin-bottom: 12px; }
.faq-budget-steps h4 { margin: 0 0 10px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 21px; font-weight: 500; }
.faq-budget-steps strong { font-size: 13px; }
.faq-budget-steps p { color: var(--faq-muted); font-size: 12px; line-height: 1.7; }
.faq-budget-steps small { display: block; margin-top: 15px; padding-top: 12px; border-top: 1px solid var(--faq-line); line-height: 1.5; }
.faq-construction-order { display: flex; gap: 28px; margin: 28px 0 15px; padding: 0; list-style: none; counter-reset: order; }
.faq-construction-order li { position: relative; flex: 1; padding: 13px 10px; background: var(--faq-soft); font-size: 11px; text-align: center; counter-increment: order; }
.faq-construction-order li::before { content: counter(order, decimal-leading-zero) " "; color: var(--faq-muted); }
.faq-construction-order li:not(:last-child)::after { content: "→"; position: absolute; right: -22px; }
.faq-later-items { margin: 0 0 24px; color: var(--faq-muted); font-size: 12px; text-align: center; }
.faq-seven-steps li { min-width: 95px; }

.faq-permit-start { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.faq-permit-start li { display: grid; grid-template-columns: 30px 28px 1fr; gap: 12px; padding: 20px; background: var(--faq-soft); }
.faq-permit-start li > span { font-size: 10px; letter-spacing: .12em; }
.faq-permit-start strong { display: block; margin-bottom: 5px; }
.faq-permit-start p { margin: 0; color: var(--faq-muted); font-size: 12px; line-height: 1.6; }
.faq-permit-decision { margin: 22px auto; text-align: center; }
.faq-permit-decision strong { display: inline-block; padding: 13px 20px; border: 1px solid var(--faq-line); }
.faq-permit-branches { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--faq-line); border-left: 1px solid var(--faq-line); }
.faq-permit-branches section { padding: 20px; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); }
.faq-permit-branches section > span { display: grid; width: 28px; height: 28px; margin-bottom: 15px; place-items: center; background: var(--faq-soft); border-radius: 50%; font-size: 11px; }
.faq-permit-branches h4 { margin: 0 0 12px; font-size: 15px; font-weight: 500; line-height: 1.55; }
.faq-permit-branches p, .faq-permit-branches ol { margin: 0; color: var(--faq-muted); font-size: 11px; line-height: 1.7; }
.faq-permit-branches ol { padding-left: 1.2em; }
.faq-permit-gates { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 24px 0; }
.faq-permit-gates section { display: grid; grid-template-columns: 28px 1fr; gap: 8px 12px; padding: 18px; background: var(--faq-soft); }
.faq-permit-gates p { grid-column: 2; margin: 0; color: var(--faq-muted); font-size: 11px; line-height: 1.6; }
.faq-permit-build { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: center; padding: 20px; border: 1px solid var(--faq-line); }
.faq-permit-build small { flex-basis: 100%; color: var(--faq-muted); text-align: center; }
.faq-permit-finish { display: flex; gap: 24px; margin: 24px 0; padding: 0; list-style: none; }
.faq-permit-finish li { position: relative; flex: 1; padding: 11px 8px; background: var(--faq-soft); font-size: 11px; text-align: center; }
.faq-permit-finish li:not(:last-child)::after { content: "→"; position: absolute; right: -19px; }
.faq-permit-outcomes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.faq-permit-outcomes span { padding: 13px; border: 1px solid var(--faq-line); font-size: 11px; text-align: center; }

.faq-legal-sources { margin-top: 70px; padding: clamp(26px, 4vw, 44px); background: var(--faq-soft); }
.faq-legal-sources header h3 { margin: 0 0 12px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: 30px; font-weight: 500; }
.faq-legal-sources header > span { display: block; max-width: 720px; color: var(--faq-muted); line-height: 1.75; }
.faq-legal-sources > div { display: grid; grid-template-columns: repeat(2, 1fr); margin: 30px 0; border-top: 1px solid var(--faq-line); border-left: 1px solid var(--faq-line); }
.faq-legal-sources a { padding: 17px; color: var(--faq-ink); background: #fff; border-right: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); text-decoration: none; }
.faq-legal-sources a strong, .faq-legal-sources a > span:not(.sr-only) { display: block; }
.faq-legal-sources a strong { margin-bottom: 5px; font-size: 12px; font-weight: 500; }
.faq-legal-sources a > span:not(.sr-only) { color: var(--faq-muted); font-size: 11px; }
.faq-legal-sources > p { margin: 0 0 5px; font-size: 12px; }
.faq-legal-sources > small { color: var(--faq-muted); line-height: 1.65; }

.faq-final-cta { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 50px; align-items: end; margin: 0 0 clamp(80px, 10vw, 150px); padding: clamp(36px, 6vw, 72px); background: var(--faq-soft); }
.faq-final-cta h2 { margin: 0 0 18px; font-family: "Noto Serif TC", "Songti TC", serif; font-size: clamp(34px, 4.2vw, 56px); font-weight: 500; }
.faq-final-cta > div:first-child > span, .faq-final-cta > div:first-child > small { display: block; max-width: 740px; color: var(--faq-muted); line-height: 1.75; }
.faq-final-cta > div:first-child > small { margin-top: 12px; font-size: 12px; }
.faq-final-cta > div:last-child { display: flex; gap: 12px; }

@media (max-width: 1100px) {
  .faq-page-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 42px; }
  .faq-answer { padding-left: 82px; padding-right: 18px; }
  .faq-node-flow { grid-template-columns: repeat(3, 1fr); }
  .faq-node-flow li:nth-child(3)::after { display: none; }
  .faq-node-flow li:nth-child(-n+3) { border-bottom: 1px solid var(--faq-line); }
}

@media (max-width: 900px) {
  .faq-page-layout { display: block; padding-top: 0; }
  .faq-category-sidebar { display: none; }
  .faq-mobile-categories { position: sticky; top: 64px; z-index: 7; display: flex; gap: 0; overflow-x: auto; background: rgba(255,255,255,.96); border-top: 1px solid var(--faq-line); border-bottom: 1px solid var(--faq-line); scrollbar-width: none; backdrop-filter: blur(10px); }
  .faq-mobile-categories::-webkit-scrollbar { display: none; }
  .faq-mobile-categories a { position: relative; flex: 0 0 auto; padding: 16px 18px; color: var(--faq-muted); text-decoration: none; white-space: nowrap; }
  .faq-mobile-categories a span { margin-right: 7px; font-size: 10px; }
  .faq-mobile-categories a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--faq-ink); transform: scaleX(0); }
  .faq-mobile-categories a[aria-current="true"] { color: var(--faq-ink); background: var(--faq-soft); }
  .faq-mobile-categories a[aria-current="true"]::after { transform: scaleX(1); }
  .faq-group { scroll-margin-top: 130px; }
  .faq-final-cta { grid-template-columns: 1fr; gap: 34px; }
  .faq-plan-common ul { grid-template-columns: repeat(2, 1fr); }
  .faq-budget-steps li:nth-child(1), .faq-budget-steps li:nth-child(2), .faq-budget-steps li:nth-child(3) { min-height: 330px; }
}

@media (max-width: 640px) {
  .faq-hero { padding: 58px 0 72px; }
  .faq-hero h1 { font-size: clamp(40px, 13vw, 54px); }
  .faq-search { margin-top: 38px; }
  .faq-mobile-categories { top: 58px; margin-inline: -6vw; padding-inline: 6vw; }
  .faq-group { padding: 72px 0; }
  .faq-group-label { margin-bottom: 20px; }
  .faq-item summary { grid-template-columns: 52px minmax(0, 1fr) 24px; gap: 10px; min-height: 66px; padding: 14px 4px; }
  .faq-question-number { font-size: 10px; }
  .faq-question-copy strong { font-size: 16px; }
  .faq-answer { padding: 8px 4px 42px 56px; }
  .faq-answer > p { font-size: 15px; }
  .faq-answer > ul { grid-template-columns: 1fr; gap: 7px; }
  .faq-inline-flow { display: grid; gap: 25px; }
  .faq-inline-flow li:not(:last-child)::after { content: "↓"; left: 50%; right: auto; bottom: -22px; top: auto; }
  .faq-empty-state { padding: 34px 20px; }
  .faq-empty-state > div { flex-direction: column; }
  .faq-visual { margin-inline: -52px 0; padding: 20px 16px; }
  .faq-plan-common ul, .faq-plan-grid, .faq-plan-offset, .faq-calculation-grid, .faq-gate-grid, .faq-budget-steps, .faq-permit-start, .faq-permit-branches, .faq-permit-gates, .faq-permit-outcomes, .faq-legal-sources > div { grid-template-columns: 1fr; }
  .faq-plan-grid h4, .faq-plan-grid ul { min-height: 0; }
  .faq-plan-offset div { border-bottom: 1px solid var(--faq-line); }
  .faq-node-flow { grid-template-columns: 1fr; }
  .faq-node-flow li { display: grid; grid-template-columns: 30px 30px 1fr; gap: 8px 10px; }
  .faq-node-flow li:not(:last-child)::after { content: "↓"; top: auto; right: auto; left: 48px; bottom: -9px; transform: none; }
  .faq-node-flow li > span, .faq-node-flow svg { margin: 0; }
  .faq-node-flow strong, .faq-node-flow p, .faq-node-flow small { grid-column: 3; min-height: 0; margin: 0; }
  .faq-node-flow p { margin-top: 6px; }
  .faq-version-branch ol { grid-template-columns: 1fr; }
  .faq-not-equal { grid-template-columns: 1fr; }
  .faq-budget-steps { gap: 0; }
  .faq-budget-steps li:nth-child(1), .faq-budget-steps li:nth-child(2), .faq-budget-steps li:nth-child(3) { min-height: 0; }
  .faq-construction-order, .faq-permit-finish { display: grid; gap: 24px; }
  .faq-construction-order li:not(:last-child)::after, .faq-permit-finish li:not(:last-child)::after { content: "↓"; left: 50%; right: auto; bottom: -21px; }
  .faq-permit-start li { grid-template-columns: 28px 26px 1fr; }
  .faq-permit-build { align-items: center; flex-direction: column; text-align: center; }
  .faq-final-cta { padding: 34px 20px; }
  .faq-final-cta > div:last-child { flex-direction: column; }
  .faq-final-cta .btn { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .faq-answer { animation: none; }
  .faq-chevron::before, .faq-chevron::after, .faq-item summary::before, .faq-category-sidebar a::before { transition: none; }
}

@media print {
  .faq-search,
  .faq-mobile-categories,
  .faq-category-sidebar,
  .faq-final-cta,
  .renovation-faq-page .conversion-dock,
  .renovation-faq-page .site-assistant { display: none !important; }
  .faq-page-layout { display: block; border-top: 0; }
  .faq-hero { padding-block: 24px; }
  .faq-group { padding-block: 34px; break-before: page; }
  .faq-group:first-child { break-before: auto; }
  .faq-item:not([open]) > *:not(summary) { display: block !important; }
  .faq-item { break-inside: avoid; }
  .faq-answer { max-width: none; padding: 5px 20px 28px 72px; animation: none; }
  .faq-visual { break-inside: avoid; }
  .faq-answer-sources a::after { content: " (" attr(href) ")"; font-size: 9px; }
}
