/* SOFANG portal — scoped to the portal templates so dashboard styles remain independent. */
body.sf-portal {
  --sf-ink: #142638;
  --sf-text: #344556;
  --sf-muted: #627182;
  --sf-yellow: #f3c541;
  --sf-yellow-dark: #e7b72e;
  --sf-paper: #ffffff;
  --sf-bg: #f5f7f9;
  --sf-line: #e2e7ed;
  --sf-radius: 12px;
  margin: 0;
  padding: 0;
  background: var(--sf-bg);
  color: var(--sf-text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.sf-portal *, body.sf-portal *::before, body.sf-portal *::after { box-sizing: border-box; }
body.sf-portal h1, body.sf-portal h2, body.sf-portal h3, body.sf-portal h4,
body.sf-portal h5, body.sf-portal h6 {
  margin: 0;
  padding: 0;
  color: var(--sf-ink);
  font-family: inherit;
  font-weight: 750;
  line-height: 1.35;
  letter-spacing: -.025em;
}
body.sf-portal p { margin: 0 0 1em; }
body.sf-portal p:last-child { margin-bottom: 0; }
body.sf-portal a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: 4px;
  transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
body.sf-portal a:hover { color: #265b80; }
body.sf-portal img { display: block; max-width: 100%; height: auto; }
body.sf-portal svg { display: inline-block; max-width: 100%; vertical-align: middle; }
body.sf-portal button, body.sf-portal input, body.sf-portal select, body.sf-portal textarea { font-family: inherit; font-size: 15px; }
body.sf-portal button, body.sf-portal input, body.sf-portal select, body.sf-portal textarea,
body.sf-portal .sf-button { -webkit-tap-highlight-color: transparent; }
body.sf-portal a:focus-visible, body.sf-portal button:focus-visible,
body.sf-portal input:focus-visible, body.sf-portal select:focus-visible,
body.sf-portal textarea:focus-visible, body.sf-portal summary:focus-visible {
  outline: 3px solid #2674b0;
  outline-offset: 3px;
}
body.sf-portal .sf-container { width: min(1280px, calc(100% - 64px)); margin-inline: auto; }
body.sf-portal #sf-main { padding-top: 28px; padding-bottom: 64px; }
body.sf-portal .sf-topbar { background: var(--sf-ink); color: #dbe3ea; font-size: 12px; line-height: 1.5; }
body.sf-portal .sf-topbar > .sf-container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 34px; padding-block: 7px; }
body.sf-portal .sf-topbar a { color: #fff; }
body.sf-portal .sf-topbar a:hover { color: var(--sf-yellow); }
body.sf-portal .sf-topbar p { margin: 0; }
body.sf-portal .sf-topbar span + span, body.sf-portal .sf-topbar a + a { margin-left: 18px; }
body.sf-portal .sf-header { position: relative; z-index: 30; background: #fff; border-bottom: 1px solid var(--sf-line); }
body.sf-portal .sf-header-inner { display: flex; align-items: center; gap: 28px; min-height: 94px; }
body.sf-portal .sf-brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; color: var(--sf-ink); }
body.sf-portal .sf-brand:hover { color: var(--sf-ink); }
body.sf-portal .sf-brand-mark { display: grid; place-items: center; width: 43px; height: 46px; border-radius: 9px 9px 3px 9px; background: var(--sf-yellow); color: var(--sf-ink); font-size: 31px; font-weight: 850; line-height: 1; letter-spacing: -.07em; }
body.sf-portal .sf-brand strong { display: block; font-size: 23px; font-weight: 800; line-height: 1.3; letter-spacing: .035em; white-space: nowrap; }
body.sf-portal .sf-brand small { display: block; margin-top: 3px; color: var(--sf-muted); font-size: 10px; font-weight: 650; line-height: 1.2; letter-spacing: .13em; }
body.sf-portal .sf-nav { display: flex; align-items: center; justify-content: center; gap: 20px; flex: 1 1 auto; min-width: 0; }
body.sf-portal .sf-nav a { position: relative; display: flex; align-items: center; min-height: 44px; color: var(--sf-ink); font-size: 14px; font-weight: 650; white-space: nowrap; }
body.sf-portal .sf-nav a::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 3px; border-radius: 3px; background: transparent; content: ""; }
body.sf-portal .sf-nav a:hover::after, body.sf-portal .sf-nav a[aria-current="page"]::after,
body.sf-portal .sf-nav a.is-active::after { background: var(--sf-yellow); }
body.sf-portal .sf-button, body.sf-portal button.sf-button,
body.sf-portal .sf-search button, body.sf-portal .sf-filters button,
body.sf-portal .sf-lead-form button[type="submit"], body.sf-portal .sf-tool button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 11px 22px;
  border: 1px solid var(--sf-yellow);
  border-radius: 7px;
  background: var(--sf-yellow);
  color: var(--sf-ink);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
body.sf-portal .sf-button:hover, body.sf-portal .sf-search button:hover,
body.sf-portal .sf-filters button:hover, body.sf-portal .sf-lead-form button[type="submit"]:hover,
body.sf-portal .sf-tool button:hover { background: var(--sf-yellow-dark); border-color: var(--sf-yellow-dark); color: var(--sf-ink); box-shadow: 0 3px 12px #14263810; }
body.sf-portal .sf-button:disabled, body.sf-portal button:disabled { opacity: .6; cursor: wait; }
body.sf-portal .sf-header-cta { flex: 0 0 auto; min-height: 44px; padding-inline: 16px; }
body.sf-portal .sf-button-secondary { background: transparent; border-color: var(--sf-line); }
body.sf-portal .sf-button-secondary:hover { background: #eef2f6; border-color: #cbd5df; }
body.sf-portal .sf-hero { display: grid; grid-template-columns: minmax(0, 2fr) minmax(270px, 1fr); gap: 22px; margin-bottom: 38px; }
body.sf-portal .sf-hero-main { position: relative; padding: 36px; overflow: hidden; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
body.sf-portal .sf-eyebrow, body.sf-portal .sf-kicker { display: block; margin-bottom: 13px; color: #4c667d; font-size: 12px; font-weight: 750; line-height: 1.5; letter-spacing: .09em; }
body.sf-portal .sf-hero h1 { max-width: 700px; margin-bottom: 15px; font-size: clamp(32px, 3.2vw, 43px); line-height: 1.23; }
body.sf-portal .sf-hero-main > p { max-width: 650px; color: var(--sf-muted); font-size: 15px; line-height: 1.8; }
body.sf-portal .sf-search { margin-top: 27px; }
body.sf-portal .sf-search-tabs { display: flex; gap: 24px; margin-bottom: 13px; overflow-x: auto; scrollbar-width: thin; }
body.sf-portal .sf-search-tabs a { display: inline-flex; align-items: center; min-height: 38px; border-bottom: 3px solid transparent; color: var(--sf-muted); font-size: 14px; font-weight: 650; white-space: nowrap; }
body.sf-portal .sf-search-tabs a:first-child, body.sf-portal .sf-search-tabs a.is-active,
body.sf-portal .sf-search-tabs a[aria-current="page"], body.sf-portal .sf-search-tabs a[aria-selected="true"] { border-bottom-color: var(--sf-yellow); color: var(--sf-ink); }
body.sf-portal .sf-search-row { display: flex; align-items: stretch; gap: 8px; }
body.sf-portal .sf-search-row input { flex: 1 1 200px; width: 100%; min-width: 0; }
body.sf-portal .sf-search-row select { flex: 0 1 142px; width: 142px; }
body.sf-portal .sf-search-row button { flex: 0 0 auto; }
body.sf-portal .sf-search input, body.sf-portal .sf-search select,
body.sf-portal .sf-filters input, body.sf-portal .sf-filters select,
body.sf-portal .sf-form-field input, body.sf-portal .sf-form-field select,
body.sf-portal .sf-form-field textarea, body.sf-portal .sf-tool input,
body.sf-portal .sf-tool select {
  display: block;
  min-height: 48px;
  margin: 0;
  padding: 11px 13px;
  border: 1px solid #cbd5df;
  border-radius: 7px;
  background: #fff;
  color: var(--sf-ink);
  font-weight: 400;
  line-height: 1.5;
  box-shadow: none;
}
body.sf-portal select { padding-right: 30px; }
body.sf-portal input::placeholder, body.sf-portal textarea::placeholder { color: #718092; opacity: 1; }
body.sf-portal .sf-hot-links { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 16px; margin-top: 12px; color: var(--sf-muted); font-size: 12px; }
body.sf-portal .sf-hot-links a { display: inline-flex; align-items: center; min-height: 32px; }
body.sf-portal .sf-hot-links a:hover { color: var(--sf-ink); text-decoration: underline; }
body.sf-portal .sf-intake { display: flex; flex-direction: column; align-items: flex-start; padding: 30px; border: 1px solid var(--sf-ink); border-radius: var(--sf-radius); background: var(--sf-ink); color: #dbe3ea; }
body.sf-portal .sf-intake .sf-eyebrow { color: var(--sf-yellow); }
body.sf-portal .sf-intake h2 { margin-bottom: 13px; color: #fff; font-size: 25px; }
body.sf-portal .sf-intake > p { margin-bottom: 22px; font-size: 14px; line-height: 1.85; }
body.sf-portal .sf-intake .sf-button { width: 100%; margin-top: auto; }
body.sf-portal .sf-checks { display: grid; gap: 9px; margin: 22px 0 0; padding: 0; list-style: none; font-size: 12px; }
body.sf-portal .sf-checks li { position: relative; padding-left: 18px; }
body.sf-portal .sf-checks li::before { position: absolute; top: .6em; left: 0; width: 6px; height: 6px; border: 1px solid var(--sf-yellow); border-radius: 50%; content: ""; }
body.sf-portal .sf-section { margin-top: 40px; }
body.sf-portal .sf-section-heading { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 18px; padding-bottom: 13px; border-bottom: 1px solid #d7dfe7; }
body.sf-portal .sf-section-heading h2 { font-size: 25px; }
body.sf-portal .sf-section-heading p { margin: 5px 0 0; color: var(--sf-muted); font-size: 13px; }
body.sf-portal .sf-section-heading > a { display: inline-flex; align-items: center; min-height: 36px; color: #425a70; font-size: 13px; font-weight: 650; white-space: nowrap; }
body.sf-portal .sf-section-heading > a:hover { text-decoration: underline; }
body.sf-portal .sf-service-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
body.sf-portal .sf-service-tile { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; min-height: 127px; padding: 18px; border: 1px solid var(--sf-line); border-radius: 9px; background: #fff; }
body.sf-portal .sf-service-tile:hover { border-color: #bac9d6; background: #fffdf5; box-shadow: 0 5px 16px #14263807; }
body.sf-portal .sf-icon { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-bottom: 12px; color: #37536b; }
body.sf-portal .sf-icon svg { width: 26px; height: 26px; }
body.sf-portal .sf-service-tile strong { display: block; color: var(--sf-ink); font-size: 15px; font-weight: 700; line-height: 1.4; }
body.sf-portal .sf-service-tile small { display: block; margin-top: 5px; color: var(--sf-muted); font-size: 11px; line-height: 1.5; }
body.sf-portal .sf-news-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; }
body.sf-portal .sf-news-feature { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
body.sf-portal .sf-feature-image { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
body.sf-portal .sf-news-copy { padding: 27px; }
body.sf-portal .sf-news-copy h3 { margin: 11px 0 13px; font-size: 25px; line-height: 1.5; }
body.sf-portal .sf-news-copy > p { color: var(--sf-muted); font-size: 14px; line-height: 1.85; }
body.sf-portal .sf-news-list { display: flex; flex-direction: column; padding: 7px 24px; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
body.sf-portal .sf-news-item { flex: 1; min-width: 0; padding: 18px 0; border-bottom: 1px solid var(--sf-line); }
body.sf-portal .sf-news-item:last-child { border-bottom: 0; }
body.sf-portal .sf-news-item h3 { margin: 7px 0 8px; font-size: 17px; line-height: 1.55; }
body.sf-portal .sf-news-item p { color: var(--sf-muted); font-size: 13px; line-height: 1.75; }
body.sf-portal .sf-news-item .sf-kicker { margin-bottom: 6px; font-size: 11px; }
body.sf-portal .sf-tag, body.sf-portal .sf-badge { display: inline-flex; align-items: center; gap: 5px; width: fit-content; min-height: 24px; padding: 3px 8px; border-radius: 4px; background: #edf2f6; color: #435c72; font-size: 11px; font-weight: 650; line-height: 1.4; }
body.sf-portal .sf-tag + .sf-tag { margin-left: 4px; }
body.sf-portal .sf-meta, body.sf-portal .sf-article-meta { color: var(--sf-muted); font-size: 12px; line-height: 1.75; }
body.sf-portal .sf-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 13px; }
body.sf-portal .sf-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 22px; }
body.sf-portal .sf-property-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
body.sf-portal .sf-property-card:hover { border-color: #c1ced9; box-shadow: 0 7px 20px #14263809; }
body.sf-portal .sf-property-card > a { display: block; }
body.sf-portal .sf-card-image { width: 100%; aspect-ratio: 1.65 / 1; object-fit: cover; background: #e8edf2; }
body.sf-portal .sf-image-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1.65 / 1; padding: 24px; background: #e9eef3; color: #536b80; font-size: 13px; text-align: center; }
body.sf-portal .sf-card-body { padding: 21px; }
body.sf-portal .sf-card-body .sf-price { display: block; margin: 11px 0 7px; color: var(--sf-ink); font-size: 23px; font-weight: 750; line-height: 1.35; letter-spacing: -.02em; }
body.sf-portal .sf-card-body h3 { margin: 8px 0; font-size: 17px; line-height: 1.55; overflow-wrap: anywhere; }
body.sf-portal .sf-card-body > p { margin-top: 10px; color: var(--sf-muted); font-size: 12px; }
body.sf-portal .sf-card-body .sf-meta { margin-top: 9px; }
body.sf-portal .sf-suburb-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
body.sf-portal .sf-suburb-card { position: relative; min-width: 0; padding: 25px; border: 1px solid var(--sf-line); border-top: 3px solid var(--sf-yellow); border-radius: 8px; background: #fff; }
body.sf-portal .sf-suburb-card .sf-kicker { margin-bottom: 9px; color: var(--sf-muted); font-size: 10px; letter-spacing: .12em; }
body.sf-portal .sf-suburb-card h3 { margin-bottom: 12px; font-size: 21px; }
body.sf-portal .sf-suburb-card p { color: var(--sf-muted); font-size: 13px; line-height: 1.8; }
body.sf-portal .sf-suburb-card > a { display: inline-flex; align-items: center; min-height: 40px; margin-top: 12px; color: #375b78; font-size: 13px; font-weight: 700; }
body.sf-portal .sf-grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
body.sf-portal .sf-grid-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
body.sf-portal .sf-band { margin-top: 40px; padding: 32px; border-radius: var(--sf-radius); background: var(--sf-ink); color: #dbe3ea; }
body.sf-portal .sf-band h2, body.sf-portal .sf-band h3 { color: #fff; }
body.sf-portal .sf-band .sf-section-heading { border-bottom-color: #ffffff26; }
body.sf-portal .sf-band .sf-section-heading p, body.sf-portal .sf-band .sf-section-heading > a { color: #bfcdd9; }
body.sf-portal .sf-band .sf-eyebrow, body.sf-portal .sf-band .sf-kicker { color: var(--sf-yellow); }
body.sf-portal .sf-band > h2 { margin-bottom: 13px; font-size: 27px; }
body.sf-portal .sf-band > p { max-width: 780px; font-size: 14px; }
body.sf-portal .sf-band .sf-grid-two, body.sf-portal .sf-band .sf-grid-three { margin-top: 24px; }
body.sf-portal .sf-guide-card { display: block; min-width: 0; height: 100%; padding: 25px; border: 1px solid var(--sf-line); border-radius: 9px; background: #fff; }
body.sf-portal .sf-guide-card h3 { margin: 8px 0 12px; font-size: 19px; line-height: 1.55; }
body.sf-portal .sf-guide-card p { color: var(--sf-muted); font-size: 14px; line-height: 1.8; }
body.sf-portal .sf-guide-card > a { display: inline-flex; align-items: center; min-height: 40px; margin-top: 13px; color: #375b78; font-size: 13px; font-weight: 700; }
body.sf-portal .sf-band .sf-guide-card { border-color: #ffffff24; background: #ffffff06; }
body.sf-portal .sf-band .sf-guide-card p { color: #c1ced9; }
body.sf-portal .sf-band .sf-guide-card > a, body.sf-portal .sf-band a.sf-guide-card:hover { color: var(--sf-yellow); }
body.sf-portal .sf-band a.sf-guide-card:hover { border-color: #f3c54188; }
body.sf-portal .sf-page-heading { max-width: 930px; padding: 15px 0 28px; }
body.sf-portal .sf-page-heading h1 { margin-bottom: 15px; font-size: clamp(30px, 3.4vw, 42px); line-height: 1.3; }
body.sf-portal .sf-page-heading > p { color: var(--sf-muted); font-size: 16px; line-height: 1.85; }
body.sf-portal .sf-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 15px; color: var(--sf-muted); font-size: 12px; }
body.sf-portal .sf-breadcrumb a { display: inline-flex; align-items: center; min-height: 32px; }
body.sf-portal .sf-filters { margin: 0 0 26px; padding: 21px; border: 1px solid var(--sf-line); border-radius: 9px; background: #fff; }
body.sf-portal form.sf-filters, body.sf-portal .sf-filters form { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; }
body.sf-portal .sf-filters label { display: block; margin-bottom: 6px; color: var(--sf-ink); font-size: 13px; font-weight: 650; }
body.sf-portal .sf-filters input { flex: 1 1 220px; min-width: 0; }
body.sf-portal .sf-filters select { flex: 1 1 150px; min-width: 130px; }
body.sf-portal .sf-filters .sf-form-field { flex: 1 1 160px; }
body.sf-portal .sf-chip-links { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 16px 0 24px; }
body.sf-portal .sf-chip-links a { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 15px; border: 1px solid var(--sf-line); border-radius: 6px; background: #fff; color: #435c72; font-size: 13px; }
body.sf-portal .sf-chip-links a:hover, body.sf-portal .sf-chip-links a.is-active,
body.sf-portal .sf-chip-links a[aria-current="page"] { border-color: var(--sf-ink); background: var(--sf-ink); color: #fff; }
body.sf-portal .sf-empty { padding: 35px; border: 1px dashed #b9c7d4; border-radius: 9px; background: #fff; color: var(--sf-muted); font-size: 14px; line-height: 1.85; }
body.sf-portal .sf-empty h2, body.sf-portal .sf-empty h3 { margin-bottom: 12px; font-size: 22px; }
body.sf-portal .sf-empty .sf-button { margin-top: 15px; }
body.sf-portal .sf-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
body.sf-portal .sf-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 9px 13px; border: 1px solid var(--sf-line); border-radius: 6px; background: #fff; color: var(--sf-ink); font-size: 14px; }
body.sf-portal .sf-pagination .page-numbers.current { border-color: var(--sf-ink); background: var(--sf-ink); color: #fff; }
body.sf-portal .sf-pagination .page-numbers:hover { border-color: #8fa4b8; }
body.sf-portal .sf-pagination .page-numbers.dots { border-color: transparent; background: transparent; }
body.sf-portal .sf-article-layout { display: grid; grid-template-columns: minmax(0, 3fr) minmax(270px, 1fr); align-items: start; gap: 28px; }
body.sf-portal .sf-article { min-width: 0; padding: 36px; overflow-wrap: break-word; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; font-size: 16px; line-height: 1.95; }
body.sf-portal .sf-article h1 { margin-bottom: 18px; font-size: clamp(28px, 3.2vw, 40px); line-height: 1.4; }
body.sf-portal .sf-article h2 { margin: 1.7em 0 .7em; font-size: 25px; line-height: 1.5; }
body.sf-portal .sf-article h3 { margin: 1.5em 0 .6em; font-size: 20px; line-height: 1.5; }
body.sf-portal .sf-article h4 { margin: 1.4em 0 .6em; font-size: 18px; }
body.sf-portal .sf-article p { margin: 0 0 1.2em; }
body.sf-portal .sf-article ul, body.sf-portal .sf-article ol { margin: 0 0 1.3em; padding-left: 1.65em; }
body.sf-portal .sf-article li { margin-bottom: .45em; }
body.sf-portal .sf-article a:not(.sf-button) { color: #23668f; text-decoration: underline; overflow-wrap: anywhere; }
body.sf-portal .sf-article img { max-width: 100% !important; height: auto !important; border-radius: 6px; }
body.sf-portal .sf-article figure, body.sf-portal .sf-article .wp-caption { max-width: 100%; margin: 1.5em 0; }
body.sf-portal .sf-article figcaption, body.sf-portal .sf-article .wp-caption-text { margin-top: 8px; color: var(--sf-muted); font-size: 12px; line-height: 1.7; }
body.sf-portal .sf-article iframe, body.sf-portal .sf-article video { max-width: 100%; }
body.sf-portal .sf-article blockquote { margin: 1.5em 0; padding: 17px 21px; border-left: 3px solid var(--sf-yellow); background: var(--sf-bg); color: #425a70; font-size: 16px; }
body.sf-portal .sf-article table { display: block; width: 100%; max-width: 100%; margin: 1.5em 0; overflow-x: auto; border-collapse: collapse; font-size: 14px; }
body.sf-portal .sf-article th, body.sf-portal .sf-article td { padding: 12px; border: 1px solid var(--sf-line); vertical-align: top; text-align: left; }
body.sf-portal .sf-article th { background: var(--sf-bg); color: var(--sf-ink); font-weight: 700; }
body.sf-portal .sf-article pre { max-width: 100%; overflow-x: auto; padding: 15px; background: var(--sf-bg); font-size: 13px; }
body.sf-portal .sf-article hr { margin: 28px 0; border: 0; border-top: 1px solid var(--sf-line); }
body.sf-portal .sf-article-meta { display: flex; flex-wrap: wrap; gap: 7px 16px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid var(--sf-line); }
body.sf-portal .sf-sidebar { display: grid; gap: 20px; min-width: 0; }
body.sf-portal .sf-sidebar > section, body.sf-portal .sf-sidebar > div { padding: 23px; border: 1px solid var(--sf-line); border-radius: 10px; background: #fff; }
body.sf-portal .sf-sidebar h2, body.sf-portal .sf-sidebar h3 { margin-bottom: 14px; font-size: 20px; }
body.sf-portal .sf-sidebar p { color: var(--sf-muted); font-size: 13px; line-height: 1.85; }
body.sf-portal .sf-sidebar ul { margin: 0; padding: 0; list-style: none; }
body.sf-portal .sf-sidebar li { padding: 12px 0; border-bottom: 1px solid var(--sf-line); font-size: 14px; }
body.sf-portal .sf-sidebar li:last-child { padding-bottom: 0; border-bottom: 0; }
body.sf-portal .sf-sidebar .sf-button { width: 100%; margin-top: 16px; }
body.sf-portal .sf-notice { margin: 20px 0; padding: 16px 19px; border: 1px solid #e8ddae; border-left: 3px solid var(--sf-yellow); border-radius: 6px; background: #fffbee; color: #645633; font-size: 13px; line-height: 1.85; }
body.sf-portal .sf-notice a { color: #5e4e1c; text-decoration: underline; }
body.sf-portal .sf-lead-form { max-width: 880px; margin: 0; padding: 30px; border: 1px solid var(--sf-line); border-radius: var(--sf-radius); background: #fff; }
body.sf-portal .sf-lead-form > h2, body.sf-portal .sf-lead-form > h3 { margin-bottom: 12px; font-size: 25px; }
body.sf-portal .sf-lead-form > p { margin-bottom: 22px; color: var(--sf-muted); font-size: 14px; }
body.sf-portal .sf-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 20px; }
body.sf-portal .sf-form-field { min-width: 0; }
body.sf-portal .sf-form-field > label { display: block; margin-bottom: 7px; color: var(--sf-ink); font-size: 14px; font-weight: 650; line-height: 1.5; }
body.sf-portal .sf-form-field label small { color: var(--sf-muted); font-size: 12px; font-weight: 400; }
body.sf-portal .sf-form-field > input, body.sf-portal .sf-form-field > select,
body.sf-portal .sf-form-field > textarea { width: 100%; }
body.sf-portal .sf-form-field textarea { min-height: 128px; resize: vertical; }
body.sf-portal .sf-form-field-wide { grid-column: 1 / -1; }
body.sf-portal .sf-form-field > small { display: block; margin-top: 6px; color: var(--sf-muted); font-size: 12px; line-height: 1.6; }
body.sf-portal .sf-consent { margin: 22px 0; color: var(--sf-muted); font-size: 13px; line-height: 1.8; }
body.sf-portal .sf-consent label { display: flex; align-items: flex-start; gap: 10px; min-height: 44px; margin: 0; font-weight: 400; cursor: pointer; }
body.sf-portal .sf-consent input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; min-height: 18px; margin: 3px 0 0; accent-color: var(--sf-ink); }
body.sf-portal .sf-consent a { color: #23668f; text-decoration: underline; }
body.sf-portal .sf-lead-message { margin-top: 18px; padding: 13px 16px; border: 1px solid #c9d7e3; border-radius: 6px; background: #edf4fa; color: #284e6c; font-size: 14px; line-height: 1.8; }
body.sf-portal .sf-lead-message:empty { display: none; }
body.sf-portal .sf-lead-message.is-error, body.sf-portal .sf-lead-message[data-status="error"] { border-color: #e1baba; background: #fff3f2; color: #963c38; }
body.sf-portal .sf-lead-message.is-success, body.sf-portal .sf-lead-message[data-status="success"] { border-color: #bdd8c8; background: #f0f8f3; color: #285f42; }
body.sf-portal .sf-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
body.sf-portal .sf-tool { min-width: 0; padding: 27px; border: 1px solid var(--sf-line); border-radius: 10px; background: #fff; }
body.sf-portal .sf-tool h2, body.sf-portal .sf-tool h3 { margin-bottom: 13px; font-size: 23px; }
body.sf-portal .sf-tool > p { margin-bottom: 20px; color: var(--sf-muted); font-size: 14px; }
body.sf-portal .sf-tool label { display: block; margin-bottom: 15px; color: var(--sf-ink); font-size: 13px; font-weight: 650; }
body.sf-portal .sf-tool label input, body.sf-portal .sf-tool label select { width: 100%; margin-top: 6px; }
body.sf-portal .sf-tool output, body.sf-portal .sf-tool-result { display: block; margin-top: 20px; padding: 18px; border: 1px solid #e1d299; border-radius: 7px; background: #fffbec; color: var(--sf-ink); font-size: 20px; font-weight: 700; line-height: 1.7; }
body.sf-portal .sf-tool output:empty { display: none; }
body.sf-portal .sf-tool output small { display: block; color: var(--sf-muted); font-size: 12px; font-weight: 400; }
body.sf-portal .sf-footer { padding: 44px 0 24px; border-top: 1px solid var(--sf-line); background: #fff; color: var(--sf-muted); font-size: 13px; }
body.sf-portal .sf-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.15fr; gap: 44px; }
body.sf-portal .sf-footer h3 { margin-bottom: 17px; color: var(--sf-ink); font-size: 15px; }
body.sf-portal .sf-footer .sf-brand { margin-bottom: 16px; }
body.sf-portal .sf-footer .sf-brand strong { font-size: 21px; }
body.sf-portal .sf-footer p { max-width: 340px; line-height: 1.9; }
body.sf-portal .sf-footer ul { margin: 0; padding: 0; list-style: none; }
body.sf-portal .sf-footer li { margin-bottom: 3px; }
body.sf-portal .sf-footer li a { display: inline-flex; align-items: center; min-height: 34px; }
body.sf-portal .sf-footer a:hover { color: var(--sf-ink); text-decoration: underline; }
body.sf-portal .sf-footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px 24px; margin-top: 32px; padding-top: 21px; border-top: 1px solid var(--sf-line); font-size: 11px; line-height: 1.8; }
body.sf-portal .sf-footer-bottom p { max-width: none; margin: 0; }
body.sf-portal .sf-mobile-cta { display: none; }
body.sf-portal .sf-sr-only, body.sf-portal .screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
body.sf-portal .sf-skip-link { position: fixed; z-index: 100000; top: 8px; left: 16px; padding: 12px 18px; transform: translateY(-160%); border-radius: 6px; background: var(--sf-ink); color: #fff; }
body.sf-portal .sf-skip-link:focus { transform: translateY(0); color: #fff; }
body.sf-portal [hidden] { display: none !important; }

@media (min-width: 1400px) {
  body.sf-portal .sf-header-inner { gap: 35px; }
  body.sf-portal .sf-nav { gap: 23px; }
}
@media (max-width: 1199px) {
  body.sf-portal .sf-container { width: calc(100% - 48px); }
  body.sf-portal .sf-header-inner { gap: 20px; min-height: 86px; }
  body.sf-portal .sf-brand strong { font-size: 21px; }
  body.sf-portal .sf-brand-mark { width: 38px; height: 42px; font-size: 28px; }
  body.sf-portal .sf-brand small { font-size: 9px; }
  body.sf-portal .sf-nav { gap: 14px; }
  body.sf-portal .sf-nav a { font-size: 13px; }
  body.sf-portal .sf-header-cta { padding-inline: 12px; font-size: 12px; }
  body.sf-portal .sf-hero-main { padding: 29px; }
  body.sf-portal .sf-intake { padding: 25px; }
  body.sf-portal .sf-service-tile { padding: 16px 13px; }
  body.sf-portal .sf-service-tile strong { font-size: 14px; }
  body.sf-portal .sf-suburb-card { padding: 21px; }
  body.sf-portal .sf-footer-grid { gap: 26px; }
}
@media (max-width: 1023px) {
  body.sf-portal .sf-header-inner { position: relative; flex-wrap: wrap; justify-content: space-between; gap: 0 20px; padding-top: 17px; }
  body.sf-portal .sf-nav { order: 3; flex: 1 1 100%; justify-content: flex-start; gap: 25px; margin-top: 12px; overflow-x: auto; scrollbar-width: thin; }
  body.sf-portal .sf-nav a { min-height: 49px; font-size: 14px; }
  body.sf-portal .sf-header-cta { min-height: 44px; padding-inline: 18px; font-size: 13px; }
  body.sf-portal .sf-hero { grid-template-columns: minmax(0, 1.7fr) minmax(250px, 1fr); gap: 17px; }
  body.sf-portal .sf-hero-main { padding: 26px; }
  body.sf-portal .sf-hero h1 { font-size: 35px; }
  body.sf-portal .sf-search-row { flex-wrap: wrap; }
  body.sf-portal .sf-search-row select { flex: 0 0 120px; width: 120px; }
  body.sf-portal .sf-search-row input { flex-basis: calc(100% - 132px); }
  body.sf-portal .sf-search-row button { width: 100%; }
  body.sf-portal .sf-service-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  body.sf-portal .sf-service-tile { min-height: 119px; padding: 17px; }
  body.sf-portal .sf-news-layout { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 19px; }
  body.sf-portal .sf-news-copy { padding: 23px; }
  body.sf-portal .sf-news-copy h3 { font-size: 23px; }
  body.sf-portal .sf-news-list { padding-inline: 19px; }
  body.sf-portal .sf-cards { gap: 16px; }
  body.sf-portal .sf-card-body { padding: 17px; }
  body.sf-portal .sf-card-body .sf-price { font-size: 20px; }
  body.sf-portal .sf-suburb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.sf-portal .sf-article-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 20px; }
  body.sf-portal .sf-article { padding: 27px; }
  body.sf-portal .sf-sidebar > section, body.sf-portal .sf-sidebar > div { padding: 20px; }
  body.sf-portal .sf-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 29px 40px; }
}
@media (max-width: 767px) {
  body.sf-portal { font-size: 14px; }
  body.sf-portal .sf-container { width: calc(100% - 32px); }
  body.sf-portal #sf-main { padding-top: 20px; padding-bottom: 40px; }
  body.sf-portal .sf-topbar > .sf-container { min-height: 30px; gap: 8px; font-size: 10px; }
  body.sf-portal .sf-topbar span + span, body.sf-portal .sf-topbar a + a { margin-left: 9px; }
  body.sf-portal .sf-header-inner { padding-top: 15px; }
  body.sf-portal .sf-brand { gap: 8px; }
  body.sf-portal .sf-brand strong { font-size: 21px; }
  body.sf-portal .sf-brand-mark { width: 36px; height: 39px; font-size: 27px; }
  body.sf-portal .sf-brand small { margin-top: 3px; font-size: 8px; letter-spacing: .13em; }
  body.sf-portal .sf-header-cta { min-height: 44px; padding: 9px 12px; font-size: 12px; }
  body.sf-portal .sf-nav { gap: 24px; margin-top: 10px; }
  body.sf-portal .sf-nav a { min-height: 46px; font-size: 13px; }
  body.sf-portal .sf-hero { grid-template-columns: minmax(0, 1fr); gap: 15px; margin-bottom: 30px; }
  body.sf-portal .sf-hero-main { padding: 25px 22px; }
  body.sf-portal .sf-hero h1 { max-width: 520px; font-size: 32px; line-height: 1.3; }
  body.sf-portal .sf-hero-main > p { font-size: 14px; }
  body.sf-portal .sf-eyebrow { margin-bottom: 11px; font-size: 11px; }
  body.sf-portal .sf-search { margin-top: 21px; }
  body.sf-portal .sf-search-tabs { gap: 22px; margin-bottom: 12px; }
  body.sf-portal .sf-search-tabs a { min-height: 40px; font-size: 13px; }
  body.sf-portal .sf-search-row select { flex-basis: 112px; width: 112px; }
  body.sf-portal .sf-search-row input { flex-basis: calc(100% - 124px); }
  body.sf-portal .sf-hot-links { gap: 1px 14px; margin-top: 9px; font-size: 11px; }
  body.sf-portal .sf-hot-links a { min-height: 35px; }
  body.sf-portal .sf-intake { padding: 24px; }
  body.sf-portal .sf-intake h2 { font-size: 24px; }
  body.sf-portal .sf-intake > p { margin-bottom: 18px; }
  body.sf-portal .sf-checks { display: flex; flex-wrap: wrap; gap: 7px 19px; margin-top: 17px; }
  body.sf-portal .sf-section { margin-top: 30px; }
  body.sf-portal .sf-section-heading { gap: 6px 15px; margin-bottom: 15px; padding-bottom: 12px; }
  body.sf-portal .sf-section-heading h2 { font-size: 22px; }
  body.sf-portal .sf-section-heading p { font-size: 12px; }
  body.sf-portal .sf-section-heading > a { min-height: 32px; font-size: 12px; }
  body.sf-portal .sf-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
  body.sf-portal .sf-service-tile { min-height: 113px; padding: 15px 12px; }
  body.sf-portal .sf-service-tile strong { font-size: 14px; }
  body.sf-portal .sf-service-tile small { font-size: 10px; }
  body.sf-portal .sf-icon { width: 25px; height: 25px; margin-bottom: 10px; }
  body.sf-portal .sf-icon svg { width: 24px; height: 24px; }
  body.sf-portal .sf-news-layout { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  body.sf-portal .sf-feature-image { aspect-ratio: 1.8 / 1; }
  body.sf-portal .sf-news-copy { padding: 22px; }
  body.sf-portal .sf-news-copy h3 { font-size: 23px; line-height: 1.5; }
  body.sf-portal .sf-news-list { padding: 2px 20px; }
  body.sf-portal .sf-news-item { padding: 17px 0; }
  body.sf-portal .sf-news-item h3 { font-size: 17px; }
  body.sf-portal .sf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  body.sf-portal .sf-card-body { padding: 16px; }
  body.sf-portal .sf-card-body .sf-price { font-size: 21px; }
  body.sf-portal .sf-card-body h3 { font-size: 16px; }
  body.sf-portal .sf-suburb-grid { gap: 13px; }
  body.sf-portal .sf-suburb-card { padding: 20px; }
  body.sf-portal .sf-suburb-card h3 { font-size: 21px; }
  body.sf-portal .sf-suburb-card p { font-size: 12px; }
  body.sf-portal .sf-grid-two, body.sf-portal .sf-grid-three { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  body.sf-portal .sf-band { margin-top: 30px; padding: 24px; }
  body.sf-portal .sf-band > h2 { font-size: 24px; }
  body.sf-portal .sf-guide-card { padding: 22px; }
  body.sf-portal .sf-guide-card h3 { font-size: 19px; }
  body.sf-portal .sf-page-heading { padding: 10px 0 23px; }
  body.sf-portal .sf-page-heading h1 { margin-bottom: 12px; font-size: 30px; }
  body.sf-portal .sf-page-heading > p { font-size: 14px; }
  body.sf-portal .sf-filters { padding: 17px; gap: 10px; }
  body.sf-portal .sf-filters button { width: 100%; }
  body.sf-portal .sf-chip-links { gap: 7px; }
  body.sf-portal .sf-chip-links a { min-height: 40px; padding: 8px 12px; font-size: 12px; }
  body.sf-portal .sf-empty { padding: 25px; }
  body.sf-portal .sf-article-layout { grid-template-columns: minmax(0, 1fr); gap: 23px; }
  body.sf-portal .sf-article { padding: 24px 22px; font-size: 16px; line-height: 1.95; }
  body.sf-portal .sf-article h1 { font-size: 29px; }
  body.sf-portal .sf-article h2 { font-size: 23px; }
  body.sf-portal .sf-article h3 { font-size: 19px; }
  body.sf-portal .sf-article-meta { margin-bottom: 22px; padding-bottom: 17px; font-size: 11px; }
  body.sf-portal .sf-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  body.sf-portal .sf-lead-form { padding: 23px; }
  body.sf-portal .sf-lead-form > h2, body.sf-portal .sf-lead-form > h3 { font-size: 23px; }
  body.sf-portal .sf-form-grid { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  body.sf-portal .sf-form-field-wide { grid-column: auto; }
  body.sf-portal .sf-search input, body.sf-portal .sf-search select,
  body.sf-portal .sf-filters input, body.sf-portal .sf-filters select,
  body.sf-portal .sf-form-field input, body.sf-portal .sf-form-field select,
  body.sf-portal .sf-form-field textarea, body.sf-portal .sf-tool input,
  body.sf-portal .sf-tool select { font-size: 16px; }
  body.sf-portal .sf-lead-form button[type="submit"] { width: 100%; }
  body.sf-portal .sf-tools { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  body.sf-portal .sf-tool { padding: 24px; }
  body.sf-portal .sf-footer { padding-top: 33px; padding-bottom: calc(98px + env(safe-area-inset-bottom, 0px)); }
  body.sf-portal .sf-footer-grid { gap: 27px 22px; }
  body.sf-portal .sf-footer-grid > :first-child { grid-column: 1 / -1; }
  body.sf-portal .sf-footer h3 { margin-bottom: 12px; font-size: 14px; }
  body.sf-portal .sf-footer li a { min-height: 37px; }
  body.sf-portal .sf-footer p { max-width: 460px; }
  body.sf-portal .sf-footer-bottom { margin-top: 26px; padding-top: 18px; }
  body.sf-portal .sf-mobile-cta { position: fixed; right: 0; bottom: 0; left: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 72px; padding: 11px 16px calc(11px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--sf-line); background: #fff; box-shadow: 0 -5px 20px #14263809; }
  body.sf-portal .sf-mobile-cta > a { display: inline-flex; align-items: center; justify-content: center; flex: 1 1 auto; min-height: 46px; padding: 11px 15px; border: 1px solid var(--sf-line); border-radius: 7px; color: var(--sf-ink); font-size: 14px; font-weight: 700; text-align: center; }
  body.sf-portal .sf-mobile-cta > a.sf-button, body.sf-portal .sf-mobile-cta > a:last-child { border-color: var(--sf-yellow); background: var(--sf-yellow); }
}
@media (max-width: 479px) {
  body.sf-portal .sf-container { width: calc(100% - 28px); }
  body.sf-portal .sf-topbar > .sf-container { align-items: flex-start; }
  body.sf-portal .sf-header-inner { gap: 0 9px; }
  body.sf-portal .sf-brand strong { font-size: 20px; }
  body.sf-portal .sf-brand-mark { width: 34px; height: 37px; font-size: 26px; }
  body.sf-portal .sf-header-cta { padding-inline: 10px; font-size: 11px; }
  body.sf-portal .sf-hero-main { padding: 23px 19px; }
  body.sf-portal .sf-hero h1 { font-size: 30px; }
  body.sf-portal .sf-intake { padding: 22px; }
  body.sf-portal .sf-service-grid { gap: 8px; }
  body.sf-portal .sf-service-tile { min-height: 111px; padding: 14px 10px; }
  body.sf-portal .sf-service-tile strong { font-size: 13px; }
  body.sf-portal .sf-service-tile small { font-size: 10px; }
  body.sf-portal .sf-cards { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  body.sf-portal .sf-card-body { padding: 21px; }
  body.sf-portal .sf-card-body .sf-price { font-size: 24px; }
  body.sf-portal .sf-card-body h3 { font-size: 18px; }
  body.sf-portal .sf-suburb-card { padding: 18px 15px; }
  body.sf-portal .sf-suburb-card h3 { font-size: 19px; }
  body.sf-portal .sf-suburb-card .sf-kicker { font-size: 9px; letter-spacing: .07em; }
  body.sf-portal .sf-article { padding: 23px 19px; }
  body.sf-portal .sf-article h1 { font-size: 28px; }
  body.sf-portal .sf-sidebar { grid-template-columns: minmax(0, 1fr); }
  body.sf-portal .sf-lead-form { padding: 22px 19px; }
  body.sf-portal .sf-band { padding: 23px 20px; }
  body.sf-portal .sf-news-copy { padding: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  body.sf-portal *, body.sf-portal *::before, body.sf-portal *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  body.sf-portal { background: #fff; color: #000; }
  body.sf-portal .sf-container { width: 100%; max-width: none; }
  body.sf-portal .sf-topbar, body.sf-portal .sf-nav, body.sf-portal .sf-header-cta,
  body.sf-portal .sf-mobile-cta, body.sf-portal .sf-sidebar, body.sf-portal .sf-footer,
  body.sf-portal .sf-lead-form, body.sf-portal .sf-pagination { display: none !important; }
  body.sf-portal .sf-header { border: 0; }
  body.sf-portal .sf-header-inner { min-height: 70px; padding: 0; }
  body.sf-portal .sf-article-layout { display: block; }
  body.sf-portal .sf-article { padding: 0; border: 0; }
  body.sf-portal .sf-article h1, body.sf-portal .sf-article h2, body.sf-portal .sf-article h3 { break-after: avoid; }
  body.sf-portal .sf-property-card, body.sf-portal .sf-guide-card { break-inside: avoid; }
}

/* SOFANG integration patch — actual PHP markup, 2026-09-05. */
body.sf-portal #sf-main > .sf-container { width: 100%; }
body.sf-portal .sf-search-tabs a:first-child:not(.is-active):not([aria-current="page"]):not([aria-selected="true"]) { border-bottom-color: transparent; color: var(--sf-muted); }
body.sf-portal form.sf-search-row > input, body.sf-portal .sf-lead-form .sf-form-grid > label > input,
body.sf-portal .sf-lead-form .sf-form-grid > label > select, body.sf-portal .sf-lead-form > label > textarea {
  display: block; width: 100%; min-width: 0; min-height: 48px; margin: 7px 0 0; padding: 11px 13px;
  border: 1px solid #cbd5df; border-radius: 7px; background: #fff; color: var(--sf-ink);
  font-size: 15px; font-weight: 400; line-height: 1.5; box-shadow: none;
}
body.sf-portal form.sf-search-row > input { margin: 0; }
body.sf-portal .sf-lead-form .sf-form-grid > label, body.sf-portal .sf-lead-form > label:not(.sf-form-consent) {
  display: block; min-width: 0; margin: 0; color: var(--sf-ink); font-size: 14px; font-weight: 650; line-height: 1.5;
}
body.sf-portal .sf-lead-form > label:not(.sf-form-consent) { margin-top: 20px; }
body.sf-portal .sf-lead-form > label > textarea { min-height: 140px; resize: vertical; }
body.sf-portal .sf-lead-form > p.sf-form-help { margin: 12px 0 22px; font-size: 12px; line-height: 1.85; }
body.sf-portal .sf-lead-form label.sf-form-consent {
  display: flex; align-items: flex-start; gap: 10px; min-height: 44px; margin: 16px 0;
  color: var(--sf-muted); font-size: 13px; font-weight: 400; line-height: 1.8; cursor: pointer;
}
body.sf-portal .sf-lead-form .sf-form-consent > input[type="checkbox"] {
  display: block; flex: 0 0 auto; width: 18px; height: 18px; min-height: 18px; margin: 4px 0 0; padding: 0; accent-color: var(--sf-ink);
}
body.sf-portal .sf-form-consent a { color: #23668f; text-decoration: underline; }
body.sf-portal .sf-form-message, body.sf-portal .sf-lead-form > p.sf-form-feedback:not(:empty) {
  margin: 0 0 20px; padding: 15px 18px; border: 1px solid #c9d7e3; border-radius: 7px;
  background: #edf4fa; color: #284e6c; font-size: 14px; line-height: 1.8;
}
body.sf-portal .sf-form-feedback:empty { display: none; }
body.sf-portal .sf-lead-wrap { min-width: 0; scroll-margin-top: 20px; }
body.sf-portal .sf-lead-form noscript p { margin-top: 17px; color: var(--sf-muted); font-size: 12px; }
body.sf-portal .sf-news-item .sf-news-copy { padding: 0; }
body.sf-portal .sf-news-item > a { display: block; }
body.sf-portal .sf-grid-three > .sf-news-item { height: 100%; padding: 22px; border: 1px solid var(--sf-line); border-radius: 9px; background: #fff; }
body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy h3 { font-size: 20px; }
body.sf-portal .sf-intake > .sf-checks { margin: 0 0 22px; }
body.sf-portal .sf-intake > small { display: block; margin-top: 13px; color: #bfcdd9; font-size: 10px; line-height: 1.8; }
body.sf-portal .sf-sidebar > .sf-section { margin-top: 0; }
body.sf-portal .sf-sidebar.sf-intake { display: flex; gap: 0; }
body.sf-portal .sf-sidebar.sf-intake h2 { color: #fff; }
body.sf-portal .sf-sidebar.sf-intake p, body.sf-portal .sf-sidebar .sf-intake p { color: #dbe3ea; }
body.sf-portal .sf-sidebar .sf-intake .sf-checks li { padding: 0 0 0 18px; border: 0; }
body.sf-portal .sf-sidebar.sf-intake ol { margin: 0 0 18px; padding-left: 1.3em; }
body.sf-portal .sf-sidebar.sf-intake li { border-bottom-color: #ffffff24; }
body.sf-portal .sf-sidebar.sf-intake > a:not(.sf-button) { color: var(--sf-yellow); text-decoration: underline; }
body.sf-portal .sf-band > .sf-grid-two:first-child { align-items: center; margin-top: 0; }
body.sf-portal .sf-band h2 { margin-bottom: 14px; font-size: 27px; }
body.sf-portal .sf-guide-card h2 { margin-bottom: 14px; font-size: 23px; }
body.sf-portal .sf-guide-card ol { margin: 0 0 18px; padding-left: 1.4em; }
body.sf-portal .sf-guide-card li { margin-bottom: 9px; }
body.sf-portal .sf-suburb-card > span:last-child:not(.sf-kicker), body.sf-portal .sf-guide-card > span:last-child {
  display: inline-flex; align-items: center; min-height: 40px; margin-top: 12px; color: #375b78; font-size: 13px; font-weight: 700;
}
body.sf-portal a.sf-suburb-card:hover, body.sf-portal a.sf-guide-card:hover { border-color: #b4c5d3; box-shadow: 0 5px 16px #14263807; }
body.sf-portal .sf-tool > small { display: block; margin-top: 13px; color: var(--sf-muted); font-size: 12px; line-height: 1.8; }
body.sf-portal .sf-footer p.sf-footer-note { max-width: none; margin: 30px 0 0; padding-top: 21px; border-top: 1px solid var(--sf-line); font-size: 11px; line-height: 1.9; }
@media (max-width: 767px) {
  body.sf-portal form.sf-search-row > input, body.sf-portal .sf-lead-form .sf-form-grid > label > input,
  body.sf-portal .sf-lead-form .sf-form-grid > label > select, body.sf-portal .sf-lead-form > label > textarea { font-size: 16px; }
  body.sf-portal .sf-band h2 { font-size: 24px; }
  body.sf-portal .sf-guide-card h2 { font-size: 22px; }
  body.sf-portal .sf-suburb-card > span:last-child:not(.sf-kicker) { font-size: 12px; }
}

/* News cards: bounded Chinese summaries and consistent media, 2026-09-05. */
body.sf-portal .sf-news-feature > a { display:flex; flex:1; flex-direction:column; min-width:0; height:100%; }
body.sf-portal .sf-news-cover { position:relative; display:block; flex:none; width:100%; aspect-ratio:2 / 1; overflow:hidden; background:#e8eef4; }
body.sf-portal .sf-news-cover > img.sf-feature-image { display:block; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
body.sf-portal .sf-news-cover-empty { display:flex; align-items:center; justify-content:center; gap:20px; padding:24px; background:linear-gradient(135deg,#e5ecf3 0%,#f6f8fb 72%); color:#3c5368; }
body.sf-portal .sf-news-cover-empty::after { position:absolute; right:-30px; bottom:-60px; width:190px; height:190px; border:1px solid #c6d3df; border-radius:50%; content:""; pointer-events:none; }
body.sf-portal .sf-news-cover-symbol { display:flex; align-items:center; justify-content:center; width:68px; height:68px; border:1px solid #c7d4df; border-radius:14px; background:#ffffff8c; }
body.sf-portal .sf-news-cover-symbol svg { width:36px; height:36px; }
body.sf-portal .sf-news-cover-brand { position:relative; z-index:1; font-size:23px; font-weight:700; letter-spacing:.12em; }
body.sf-portal .sf-news-cover-brand > span { display:block; margin-top:7px; font-size:12px; font-weight:400; letter-spacing:.06em; }
body.sf-portal .sf-news-feature .sf-news-copy { display:flex; flex:1; flex-direction:column; min-width:0; }
body.sf-portal .sf-news-feature .sf-news-copy > p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; max-height:5.55em; }
body.sf-portal .sf-news-feature .sf-news-copy > .sf-meta { margin-top:auto; }
body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-cover { aspect-ratio:16 / 9; }
body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy { padding:22px; }
body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; margin:11px 0 13px; font-size:20px; line-height:1.5; min-height:3em; max-height:3em; }
body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy > p { margin:0 0 18px; font-size:14px; line-height:1.85; min-height:5.55em; max-height:5.55em; }
body.sf-portal .sf-news-item .sf-news-copy h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; max-height:4.65em; }
@media (max-width:767px) {
  body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy { padding:20px; }
  body.sf-portal .sf-grid-three > .sf-news-feature .sf-news-copy h3 { font-size:19px; }
  body.sf-portal .sf-news-cover-symbol { width:54px; height:54px; }
  body.sf-portal .sf-news-cover-brand { font-size:20px; }
}

