/* Mobile entry pages: clear choices first, reference material on request.
   Disclosures are open in HTML: all content remains available without JavaScript.
   Desktop grids are explicitly owned by disclosure bodies; native details must not flatten grid children. */
.sf-entry-mobile-only { display: none; }
:is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail > summary { display: none; }
:is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail[open],
:is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail[open] > .sf-mobile-detail__body { display: block; }
@media (min-width: 821px) {
  /* Native <details> has an internal content box. Give the actual body the grid;
     display:contents does not reliably promote its descendants into an outer grid. */
  .sf-page--visit-foshan .sf-vf-day { display: block; }
  .sf-page--visit-foshan .sf-vf-day-detail[open] > .sf-mobile-detail__body {
    display: grid; grid-template-columns: 120px minmax(0,1fr) 340px;
    gap: 28px 36px; min-width: 0;
  }
  .sf-page--fi-hub :is(.sf-fi-answer,.sf-fi-process) { display: block; }
  .sf-page--fi-hub .sf-fi-answer-detail[open] > .sf-mobile-detail__body {
    display: grid; grid-template-columns: .42fr .58fr;
    gap: clamp(28px,4vw,64px); align-items: start; min-width: 0;
  }
  .sf-page--fi-hub .sf-fi-why-detail[open] > .sf-mobile-detail__body {
    display: grid; grid-template-columns: .85fr 1.15fr;
    gap: clamp(32px,4vw,72px); align-items: start; min-width: 0;
  }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail,
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail__body { min-width: 0; }
  .sf-page--start-your-project .sf-project-layout { grid-template-areas: "intro form" "support form"; grid-template-rows: auto 1fr; row-gap: 0 !important; }
  .sf-project-layout > .sf-project-intro { grid-area: intro; }
  .sf-project-layout > .sf-project-brief { grid-area: form; }
  .sf-project-layout > .sf-project-support { grid-area: support; }
}
@media (min-width: 821px) and (max-width: 1100px) {
  .sf-page--visit-foshan .sf-vf-day-detail[open] > .sf-mobile-detail__body { grid-template-columns: 100px minmax(0,1fr) 260px; }
}
@media (min-width: 821px) and (max-width: 900px) {
  .sf-page--visit-foshan .sf-vf-day-detail[open] > .sf-mobile-detail__body,
  .sf-page--fi-hub .sf-fi-answer-detail[open] > .sf-mobile-detail__body,
  .sf-page--fi-hub .sf-fi-why-detail[open] > .sf-mobile-detail__body { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 820px) {
  /* One mobile rhythm, limited to these four entry pages. */
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan,.sf-page--start-your-project) {
    --sf-entry-line: #e5e5e3;
    --sf-entry-muted: #5f6368;
    font-size: 16px;
    line-height: 1.6;
  }
  :is(.sf-fs-wrap,.sf-page--fi-hub .sf-fi-wrap,.sf-vf-wrap) { width: calc(100% - 40px); min-width: 0; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) :is(h1,h2,h3) { text-wrap: pretty; overflow-wrap: break-word; }
  :is(.sf-fs-hero,.sf-page--fi-hub .sf-fi-hero,.sf-vf-hero) h1 { font-size: 32px !important; line-height: 1.15 !important; letter-spacing: -.035em; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) h2 { font-size: 26px !important; line-height: 1.22 !important; letter-spacing: -.025em; }
  :is(.sf-fs-band,.sf-page--fi-hub .sf-fi-band) { padding: 36px 0; }
  :is(.sf-fs-head,.sf-page--fi-hub .sf-fi-head,.sf-vf-head) { margin-bottom: 22px; gap: 20px; }
  :is(.sf-fs-head,.sf-page--fi-hub .sf-fi-head,.sf-vf-head) > p { margin-top: 12px; font-size: 16px; line-height: 1.6; text-align: start; }
  :is(.sf-fs-kicker,.sf-page--fi-hub .sf-fi-kicker,.sf-vf-kicker) { margin-bottom: 12px; font-size: 11px; line-height: 1.5; letter-spacing: .12em; }
  :is(.sf-fs-hero__lede,.sf-page--fi-hub .sf-fi-hero__lede,.sf-vf-hero__lede) { font-size: 16px; line-height: 1.6; margin-bottom: 20px; }
  :is(.sf-fs-btn,.sf-page--fi-hub .sf-fi-btn,.sf-vf-btn) { min-height: 48px; padding: 12px 18px; font-size: 15px; line-height: 1.4; border-radius: 6px; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan,.sf-page--start-your-project) :is(a,summary,button):focus-visible { outline: 2px solid #c8102e; outline-offset: 3px; }
  .sf-entry-mobile-only { display: block; }
  .sf-entry-jumps { display: grid; grid-template-columns: 1fr 1fr; width: calc(100% - 40px); margin: 24px auto; border-top: 1px solid var(--sf-entry-line); border-inline-start: 1px solid var(--sf-entry-line); }
  .sf-entry-jumps a { display: flex; align-items: center; min-height: 48px; padding: 10px 12px; border-inline-end: 1px solid var(--sf-entry-line); border-bottom: 1px solid var(--sf-entry-line); color: #24282c; font-size: 14px; font-weight: 650; line-height: 1.4; text-decoration: none; }
  .sf-entry-jumps a::after { content: "↓"; margin-inline-start: auto; padding-inline-start: 8px; color: #c8102e; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail,
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail[open] { display: block; min-width: 0; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail > summary { display: block; position: relative; min-height: 48px; padding: 14px 34px 14px 0; cursor: pointer; list-style: none; font: 700 16px/1.45 "Plus Jakarta Sans", sans-serif; color: inherit; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail > summary::-webkit-details-marker { display: none; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail > summary::after { content: "+"; position: absolute; inset-inline-end: 0; top: 50%; transform: translateY(-50%); color: #c8102e; font: 400 24px/1 sans-serif; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail[open] > summary::after { content: "−"; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) .sf-mobile-detail[open] > .sf-mobile-detail__body { display: block; padding-bottom: 16px; }
  :is(.sf-page--sourcing,.sf-page--fi-hub,.sf-page--visit-foshan) [id] { scroll-margin-top: 90px; }

  /* Sourcing: two clear routes, then a compact eight-stage list. */
  .sf-fs-hero { background: #fafaf9; }
  .sf-fs-hero__inner { padding: 28px 0; gap: 22px; }
  .sf-fs-hero__inner > div:first-child { display: flex; flex-direction: column; }
  .sf-fs-mobile-lede { margin: 0 0 20px; color: #4e5358; font-size: 16px; line-height: 1.6; }
  .sf-fs-hero-detail { order: 4; border-top: 1px solid var(--sf-entry-line); }
  .sf-fs-hero-detail > summary { font-size: 14px !important; }
  .sf-fs-hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0 0 14px; }
  .sf-fs-hero__actions .sf-fs-btn--outline { border-color: #d6d8d8; background: #fff; text-align: center; }
  .sf-fs-trust { order: 5; margin-top: 6px; font-size: 11px; line-height: 1.6; color: #696e73; letter-spacing: .04em; }
  .sf-fs-hero__media { height: 215px; aspect-ratio: auto; border-radius: 10px; box-shadow: none; }
  .sf-fs-hero__stats { inset-inline: 8px; bottom: 8px; gap: 4px; }
  .sf-fs-hero__stats li { padding: 8px; border-radius: 5px; }
  .sf-fs-hero__stats b { font-size: 18px; }
  .sf-fs-hero__stats span { font-size: 11px; }
  .sf-fs-answer { gap: 18px; }
  .sf-fs-answer__text { font-size: 16px; line-height: 1.6; }
  .sf-fs-paths { gap: 14px; }
  .sf-fs-path { padding: 22px 18px; border-radius: 10px; box-shadow: none; }
  .sf-fs-path h3 { font-size: 20px; line-height: 1.3; }
  .sf-fs-path > p { font-size: 16px; line-height: 1.6; margin-bottom: 12px; }
  .sf-fs-path__tag { font-size: 11px; line-height: 1.4; letter-spacing: .07em; }
  .sf-fs-path-detail { border-top: 1px solid var(--sf-entry-line); margin: 4px 0 14px; }
  .sf-fs-path-detail > summary { font-size: 14px !important; }
  .sf-fs-path__cols { grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 0; }
  .sf-fs-path__cols ul { font-size: 14px; }
  .sf-fs-path .sf-fs-btn { align-self: stretch; }
  .sf-fs-flow { display: block; border-top: 1px solid var(--sf-entry-line); }
  .sf-fs-flow__bracket { height: auto; margin: 0; padding: 12px 0; }
  .sf-fs-flow__bracket::before { display: none; }
  .sf-fs-flow__bracket span { position: static; display: block; max-width: none; padding: 0; transform: none; text-align: start; border: 0; background: none; font-size: 12px; line-height: 1.5; letter-spacing: 0; text-transform: none; color: #5f6368; }
  .sf-fs-flow__item { margin: 0; }
  .sf-fs-flow__item details { height: auto; border: 0; border-top: 1px solid var(--sf-entry-line); border-radius: 0; background: #fff; }
  .sf-fs-flow__item details:hover { transform: none; box-shadow: none; }
  .sf-fs-flow__item summary { display: grid; grid-template-columns: 26px 1fr 24px; gap: 3px 10px; padding: 15px 0; align-items: center; }
  .sf-fs-flow__item summary i { position: static; grid-column: 1; grid-row: 1 / 3; font-size: 12px; }
  .sf-fs-flow__item summary svg { display: none; }
  .sf-fs-flow__item summary b { grid-column: 2; font-size: 15px; line-height: 1.4; }
  .sf-fs-flow__item summary em { grid-column: 2; font-size: 13px; line-height: 1.5; color: #5f6368; font-weight: 400; margin: 0; }
  .sf-fs-flow__more { position: static; grid-column: 3; grid-row: 1 / 3; background: none; border: 0; }
  .sf-fs-flow__item details > p { padding: 0 0 16px 36px; font-size: 15px; }
  .sf-fs-flow__item.is-handoff details { background: #fff; color: #1f2328; border-color: var(--sf-entry-line); }
  .sf-fs-flow__item.is-handoff summary em,.sf-fs-flow__item.is-handoff details > p { color: #5f6368; }
  .sf-fs-flow__item.is-handoff .sf-fs-flow__more { background: none; color: #c8102e; }
  .sf-fs-flow__item.is-handoff details > a { color: #c8102e; margin-inline-start: 36px; }
  .sf-fs-cards { display: block; border-top: 1px solid var(--sf-entry-line); }
  .sf-fs-cards article { padding: 14px 0; border: 0; border-bottom: 1px solid var(--sf-entry-line); border-radius: 0; background: none; }
  .sf-fs-cards b { font-size: 16px; margin-bottom: 4px; }
  .sf-fs-cards span { font-size: 14px; }
  .sf-fs-sketches { display: block; }
  .sf-fs-sketch { padding: 0; border: 0; border-bottom: 1px solid #dadcd9; border-radius: 0; background: none; }
  .sf-fs-sketch:hover { transform: none; box-shadow: none; }
  .sf-fs-sketch__art { height: 100px; margin: 0 0 12px; }
  .sf-fs-sketch__art svg { height: 100px; }
  .sf-fs-sketch .sf-mobile-detail__body > b { display: none; }
  .sf-fs-sketch p { color: #5f6368; font-size: 15px; font-style: normal; }
  .sf-fs-sketch span { border: 0; padding-top: 0; font-size: 15px; }
  .sf-fs-sketch em { transform: none; background: none; color: #a40d25; padding: 0; }
  .sf-fs-proof { grid-template-columns: 1fr 1fr; gap: 16px 12px; }
  .sf-fs-proof img { aspect-ratio: 4 / 3; border-radius: 6px; }
  .sf-fs-case { gap: 22px; }
  .sf-fs-case__media { border-radius: 10px; }
  .sf-fs-case__media img { height: 210px; object-fit: cover; }
  .sf-fs-case-detail { margin-top: 16px; border-block: 1px solid var(--sf-entry-line); }
  .sf-fs-case dl { margin-top: 8px; }
  .sf-fs-pricing { gap: 24px; }
  .sf-fs-factors { grid-template-columns: 1fr 1fr; gap: 10px; }
  .sf-fs-factors li { padding: 12px; border-radius: 6px; }
  .sf-fs-scope { gap: 12px; }
  .sf-fs-scope div { padding: 18px; border-radius: 8px; }
  .sf-fs-reference-detail { border-block: 1px solid #d5d8d4; }
  .sf-fs-reference-detail > summary { font-size: 20px !important; padding-block: 20px !important; }
  .sf-page--sourcing [data-sf-content-supplement] .sf-e02-hero { gap: 20px; }
  .sf-page--sourcing [data-sf-content-supplement] .sf-e02-block { padding-top: 28px; margin-top: 28px; }
  .sf-page--sourcing [data-sf-content-supplement] .sf-e02-block h3 { font-size: 21px; line-height: 1.3; }
  .sf-page--sourcing [data-sf-content-supplement] .sf-e02-gallery { grid-template-columns: 1fr 1fr; gap: 12px; }
  .sf-page--sourcing [data-sf-content-supplement] .sf-e02-query-map { margin-top: 22px; }
  .sf-fs-handoff { padding: 22px 18px; border-radius: 10px; gap: 20px; }
  .sf-fs-faq { gap: 22px; }
  .sf-fs-faq details { padding-inline: 16px; border-radius: 6px; margin-bottom: 8px; }
  .sf-fs-form { padding-bottom: 36px; }
  .sf-fs-form > div:first-child { padding: 36px 20px 0 !important; }
  .sf-fs-form > div:first-child > div { padding: 22px 16px !important; border-radius: 10px !important; gap: 24px !important; }
  .sf-fs-form h2 { font-size: 26px !important; line-height: 1.25 !important; }
  .sf-fs-form input,.sf-fs-form select,.sf-fs-form textarea { font-size: 16px !important; }

  /* Furniture hub: a catalogue rhythm instead of full-screen repeated cards. */
  .sf-page--fi-hub .sf-fi-hero { background: #fafaf9; }
  .sf-page--fi-hub .sf-fi-crumbs { padding-top: 20px; }
  .sf-page--fi-hub .sf-fi-hero__inner { padding: 22px 0 28px; gap: 22px; }
  .sf-page--fi-hub .sf-fi-hero__actions { display: grid; gap: 8px; margin-bottom: 20px; }
  .sf-page--fi-hub .sf-fi-hero__media { height: 210px; aspect-ratio: auto; box-shadow: none; border-radius: 10px; }
  .sf-page--fi-hub .sf-fi-facts { padding-top: 16px; gap: 12px; }
  .sf-page--fi-hub .sf-fi-facts b { font-size: 20px; }
  .sf-page--fi-hub .sf-fi-facts span { font-size: 11px; }
  .sf-page--fi-hub .sf-fi-answer { gap: 18px; }
  .sf-page--fi-hub .sf-fi-answer__text { font-size: 16px; line-height: 1.6; }
  .sf-page--fi-hub :is(.sf-fi-rooms,.sf-fi-systems) { grid-template-columns: 1fr 1fr; gap: 24px 12px; }
  .sf-page--fi-hub :is(.sf-fi-room,.sf-fi-system) { min-width: 0; }
  .sf-page--fi-hub :is(.sf-fi-room,.sf-fi-system) figure { aspect-ratio: 4 / 3; margin-bottom: 10px; border-radius: 6px; }
  .sf-page--fi-hub :is(.sf-fi-room,.sf-fi-system) b { font-size: 15px; line-height: 1.4; }
  .sf-page--fi-hub .sf-fi-room > span { font-size: 13px; }
  .sf-page--fi-hub .sf-fi-popular { gap: 12px; }
  .sf-page--fi-hub .sf-fi-popular__card { display: grid; grid-template-columns: 30% 1fr; align-items: stretch; border-radius: 8px; }
  .sf-page--fi-hub .sf-fi-popular__card figure { aspect-ratio: auto; min-height: 130px; }
  .sf-page--fi-hub .sf-fi-popular__card > div { padding: 14px; gap: 5px; }
  .sf-page--fi-hub .sf-fi-popular__card b { font-size: 17px; line-height: 1.3; }
  .sf-page--fi-hub .sf-fi-popular__card span { font-size: 13px; line-height: 1.5; }
  .sf-page--fi-hub .sf-fi-popular__card em { font-size: 13px; margin-top: 3px; }
  .sf-page--fi-hub .sf-fi-case { gap: 22px; }
  .sf-page--fi-hub .sf-fi-case img { max-height: 210px; object-fit: cover; }
  .sf-page--fi-hub .sf-fi-start { gap: 0; border-top: 1px solid var(--sf-entry-line); }
  .sf-page--fi-hub .sf-fi-start__card { display: grid; grid-template-columns: 24px 1fr; gap: 4px 12px; border: 0; border-bottom: 1px solid var(--sf-entry-line); border-radius: 0; padding: 18px 0; }
  .sf-page--fi-hub .sf-fi-start__card i { position: static; grid-row: 1 / 4; font-size: 12px; line-height: 1.6; color: #c8102e; }
  .sf-page--fi-hub .sf-fi-start__card b { font-size: 17px; }
  .sf-page--fi-hub .sf-fi-start__card > :is(span,em) { grid-column: 2; }
  .sf-page--fi-hub .sf-fi-start__card em { margin-top: 2px; }
  .sf-page--fi-hub .sf-fi-process { gap: 22px; }
  .sf-page--fi-hub .sf-fi-steps li { grid-template-columns: 28px 1fr; gap: 4px 12px; }
  .sf-page--fi-hub .sf-fi-related { gap: 10px; }
  .sf-page--fi-hub .sf-fi-related__card { padding: 18px; border-radius: 8px; }
  .sf-page--fi-hub .sf-fi-cta { padding-bottom: 36px; }
  .sf-page--fi-hub .sf-fi-cta__box { padding: 24px 18px; gap: 22px; border-radius: 10px; }

  /* Visit: the purpose and booking choice precede photography. */
  .sf-vf-hero { background: #fafaf9; }
  .sf-vf-hero__inner { padding: 28px 0; gap: 24px; }
  .sf-vf-hero__inner > div:first-child { order: 0; }
  .sf-vf-hero__inner > .sf-vf-collage { order: 1; margin-bottom: 0; }
  .sf-vf-hero__actions { gap: 8px; margin-bottom: 20px; }
  .sf-vf-chips { margin-bottom: 0; gap: 6px; }
  .sf-vf-chips li { padding: 4px 9px; font-size: 12px; }
  .sf-vf-flight-detail { margin-top: 14px; border-top: 1px solid var(--sf-entry-line); }
  .sf-vf-flight-detail > summary { font-size: 14px !important; }
  .sf-vf-flight { display: block; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
  .sf-vf-flight__end,.sf-vf-flight__path { display: none; }
  .sf-vf-flight__note { margin: 0; font-size: 14px; line-height: 1.6; }
  .sf-vf-collage { height: 250px; gap: 8px; padding-bottom: 0; }
  .sf-vf-collage figure { border-radius: 8px; }
  .sf-vf-collage figcaption { display: none; }
  .sf-vf-collage__stats { bottom: 8px; inset-inline: 8px; border-radius: 6px; box-shadow: none; }
  .sf-vf-collage__stats div { padding: 8px 6px; }
  .sf-vf-collage__stats b { font-size: 20px; }
  :is(.sf-vf-trip__inner,.sf-vf-cats__inner,.sf-vf-why__inner,.sf-vf-pricing__inner,.sf-vf-gallery__inner,.sf-vf-after__inner,.sf-vf-faq__inner,.sf-vf-cta__inner) { padding-block: 36px; }
  .sf-vf-pricing__grid--3 { margin-top: 22px; gap: 18px; }
  .sf-vf-plan { padding: 22px 18px; border-radius: 8px; box-shadow: none; }
  .sf-vf-plan__price b { font-size: 32px; }
  .sf-vf-plan > span { font-size: 11px; line-height: 1.4; margin-bottom: 10px; }
  .sf-vf-plan ul { gap: 8px; margin-bottom: 18px; }
  .sf-vf-plan .sf-vf-btn { width: 100%; animation: none !important; }
  .sf-vf-plan .sf-vf-btn::after { display: none; animation: none !important; }
  .sf-vf-pricing__cta { margin-top: 20px; }
  .sf-vf-covers { padding: 20px 18px; border-radius: 8px; }
  .sf-vf-covers__grid { gap: 18px; }
  .sf-vf-covers__grid p { line-height: 1.6; }
  .sf-vf-results__inner { padding-block: 36px; gap: 22px; }
  .sf-vf-results__rail { gap: 12px; }
  .sf-vf-results__rail a { height: 150px; border-radius: 6px; }
  .sf-vf-timeline { gap: 0; border-top: 1px solid #d5d8d4; }
  .sf-vf-day { display: block; padding: 0; border: 0; border-bottom: 1px solid #d5d8d4; border-radius: 0; background: none; box-shadow: none; }
  .sf-vf-day:hover { transform: none; box-shadow: none; }
  .sf-vf-day-detail > summary { padding-block: 20px !important; }
  .sf-vf-day__when { display: block; margin-bottom: 12px; }
  .sf-vf-day__when b,.sf-vf-day__when strong { display: none; }
  .sf-vf-day__when span { margin-top: 0; font-size: 13px; color: #5f6368; }
  .sf-vf-day h3 { font-size: 20px; line-height: 1.35; }
  .sf-vf-day p { font-size: 16px; line-height: 1.6; }
  .sf-vf-day dl { grid-template-columns: 1fr; gap: 5px; }
  .sf-vf-day dd + dt { margin-top: 8px; }
  .sf-vf-day figure { min-height: 190px; height: 190px; margin-top: 18px; border-radius: 8px; }
  .sf-vf-trip__note { gap: 12px; margin-top: 20px; font-size: 14px; }
  .sf-vf-cats__grid { gap: 18px 12px; }
  .sf-vf-cat { height: auto; border-radius: 6px; background: #fff; color: #1f2328 !important; }
  .sf-vf-cat img { display: block; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
  .sf-vf-cat::after { display: none; }
  .sf-vf-cat > div { position: static; padding-top: 10px; }
  .sf-vf-cat b { font-size: 15px; line-height: 1.4; }
  .sf-vf-cat span { color: #5f6368; font-size: 13px; line-height: 1.5; }
  .sf-vf-why__grid { margin-top: 22px; gap: 0; border: 0; background: none; }
  .sf-vf-why__grid article { position: relative; padding: 18px 0 18px 42px; border-top: 1px solid #45494d; }
  .sf-vf-why__grid svg { position: absolute; top: 20px; left: 0; width: 30px; height: 28px; margin: 0; }
  .sf-vf-why__grid h3 { margin: 6px 0; font-size: 18px; }
  .sf-vf-gallery__grid { margin-top: 22px; gap: 10px; grid-auto-rows: 140px; }
  .sf-vf-gallery figcaption { font-size: 11px; padding: 6px; inset-inline: 6px; bottom: 6px; }
  .sf-vf-faq__inner { gap: 22px; }
  .sf-vf-faq details { padding-inline: 16px; border-radius: 6px; }
  .sf-vf-faq summary { font-size: 16px; }
  .sf-vf-cta__box { padding: 24px 18px; gap: 22px; border-radius: 10px; }
  .sf-vf-cta__box::before,.sf-vf-cta__box::after,.sf-vf-cta__plane { display: none; }

  /* Enquiry: introduction, complete form, then reassurance. DOM and visual order agree. */
  .sf-page--start-your-project .sf-project-header-cta { display: none !important; }
  .sf-page--start-your-project .sf-project-layout { display: grid !important; grid-template-columns: minmax(0,1fr) !important; gap: 24px !important; padding: 28px 20px 36px !important; }
  .sf-page--start-your-project .sf-project-intro h1 { font-size: 30px !important; line-height: 1.18 !important; margin-bottom: 16px !important; letter-spacing: -.035em; }
  .sf-page--start-your-project .sf-project-intro > p { margin-bottom: 0 !important; font-size: 16px !important; line-height: 1.6 !important; }
  .sf-page--start-your-project .sf-project-brief { border-radius: 10px; padding: 22px 16px; box-shadow: none; }
  .sf-page--start-your-project .sf-project-brief h2 { font-size: 24px !important; line-height: 1.3 !important; }
  .sf-page--start-your-project .sf-project-brief :is(input,select,textarea) { font-size: 16px; }
  .sf-page--start-your-project .sf-project-support { display: flex; flex-direction: column; gap: 22px; }
  .sf-page--start-your-project .sf-project-promises { margin: 0; gap: 10px; font-size: 14px; }
  .sf-page--start-your-project .sf-project-actions { order: 3; margin: 0; }
  .sf-page--start-your-project .sf-project-actions__primary { display: none; }
  .sf-page--start-your-project .sf-project-actions__secondary { min-height: 48px; }
  .sf-page--start-your-project .sf-project-next { max-width: none; padding: 20px 16px 4px; border-radius: 8px; background: #f7f7f5; }
  .sf-page--start-your-project .sf-project-next::before { display: none; }
  .sf-page--start-your-project .sf-project-next__heading h2 { font-size: 24px !important; line-height: 1.3 !important; }
  .sf-page--start-your-project .sf-project-next__steps li { grid-template-columns: 30px 1fr; gap: 12px; }
  .sf-page--start-your-project .sf-project-next__icon { width: 30px; height: 30px; border-radius: 5px; border: 0; background: none; transform: none; }
  .sf-page--start-your-project .sf-project-next__icon svg { width: 30px; height: 30px; }
  .sf-page--start-your-project .sf-project-next__icon path { stroke-dasharray: none; stroke-dashoffset: 0; }
  .sf-page--start-your-project .sf-project-intro > *, .sf-page--start-your-project .sf-project-brief { animation: none !important; }
}

@media (max-width: 820px) {
  /* Further reading uses one editorial list, not another sequence of hero-sized cards. */
  .sf-page--sourcing .sf-fieldnotes__inner { width: calc(100% - 40px); padding: 32px 0; }
  .sf-page--sourcing .sf-fieldnotes__head { gap: 14px; margin-bottom: 18px; }
  .sf-page--sourcing .sf-fieldnotes__head h2 { font-size: 22px !important; line-height: 1.3 !important; }
  .sf-page--sourcing .sf-fieldnotes__all { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; font-size: 13px; border-color: #d8d8d5; }
  .sf-page--sourcing .sf-fieldnotes__grid { gap: 0; border-top: 1px solid #d8d8d5; }
  .sf-page--sourcing .sf-fieldnotes__card { display: grid; grid-template-columns: 76px minmax(0,1fr); align-items: start; gap: 6px 14px; padding: 18px 0; border: 0; border-bottom: 1px solid #d8d8d5; border-radius: 0; background: none; }
  .sf-page--sourcing .sf-fieldnotes__card:hover { transform: none; box-shadow: none; }
  .sf-page--sourcing .sf-fieldnotes__media { grid-column: 1; grid-row: 1 / 3; width: 76px; height: 90px; aspect-ratio: auto; border-radius: 6px; }
  .sf-page--sourcing .sf-fieldnotes__meta { grid-column: 2; padding: 0; font-size: 11px; line-height: 1.5; color: #62676b; }
  .sf-page--sourcing .sf-fieldnotes__card b { grid-column: 2; padding: 0; font-size: 15px; line-height: 1.4; }
  .sf-page--sourcing .sf-fieldnotes__card small { grid-column: 1 / -1; padding: 3px 0 0; font-size: 13px; line-height: 1.55; }
  .sf-page--sourcing .sf-guide-related { width: calc(100% - 40px); padding: 32px 0 0; }
  .sf-page--sourcing .sf-guide-related .sf-section-heading { gap: 16px; margin-bottom: 18px; }
  .sf-page--sourcing .sf-guide-related .sf-section-heading h2 { font-size: 22px !important; }
  .sf-page--sourcing .sf-guide-related__grid { gap: 0; border-top: 1px solid var(--sf-entry-line); }
  .sf-page--sourcing .sf-guide-related__grid a { padding: 16px 0; min-height: 0; border: 0; border-bottom: 1px solid var(--sf-entry-line); border-radius: 0; box-shadow: none; background: none; }
  .sf-page--sourcing .sf-guide-related__grid h3 { margin: 6px 0; font-size: 17px; line-height: 1.4; }
  .sf-page--sourcing .sf-guide-related__grid p { font-size: 14px; }
  .sf-page--sourcing .sf-guide-related__grid b { padding-top: 8px; }
  /* Reference answers remain available, but category routes lead the hub. */
  .sf-page--fi-hub .sf-fi-answer-detail,
  .sf-page--fi-hub .sf-fi-why-detail { width: 100%; border-block: 1px solid var(--sf-entry-line); }
  .sf-page--fi-hub .sf-fi-answer-detail > summary,
  .sf-page--fi-hub .sf-fi-why-detail > summary { font-size: 20px; padding-block: 18px; }
  .sf-page--fi-hub .sf-fi-answer-detail .sf-mobile-detail__body > p { margin-top: 18px; }
  .sf-page--fi-hub .sf-fi-why-detail .sf-fi-steps { margin-top: 20px; }
  .sf-page--fi-hub .sf-fi-room figure,.sf-page--fi-hub .sf-fi-system figure { aspect-ratio: 16 / 10; }
  .sf-page--fi-hub .sf-fi-related { gap: 0; border-top: 1px solid var(--sf-entry-line); }
  .sf-page--fi-hub .sf-fi-related__card { padding: 16px 0; border: 0; border-bottom: 1px solid var(--sf-entry-line); border-radius: 0; background: none; }
  .sf-page--fi-hub .sf-fi-related__card b { font-size: 17px; line-height: 1.4; }
  .sf-page--fi-hub .sf-fi-related__card em { margin-top: 2px; }
  /* A single semantic H1; its existing second clause reads as a quiet subheading on phones. */
  .sf-vf-hero h1 { margin-bottom: 18px; }
  .sf-vf-hero__title-detail { display: block; margin-top: 14px; color: #53595e; font-family: "Hanken Grotesk",sans-serif; font-size: 17px; font-weight: 500; line-height: 1.5; letter-spacing: 0; text-transform: none; }
  .sf-vf-hero__title-separator { display: none; }
}
