/* Aussie Builders Directory button popups (/assets/popups.js, port of page-designs/assets/popups.css), from ndis: the shared popup system (Layout.astro),
   ConnectDialog (the quote popup), the profile's Contact dialog, PhoneRevealDialog and SupportWidget.
   ndis draws them with Tailwind utilities; here every rule is written out, in the navy/sky palette.
   Pages without assets/base.css still get the palette from the tokens below. */
:root {
  --pp-navy: #0a2463; --pp-navy-deep: #071a4a; --pp-sky: #5b9cff; --pp-sky-hover: #7db1ff;
  --pp-blue: #1652d9; --pp-blue-deep: #0f3fae; --pp-pale: #eaf1fe; --pp-paler: #f5f8ff; --pp-tint: #d6e4fd;
  --pp-line: #dbe3ef; --pp-line-strong: #b9cbe8; --pp-rule: #eef2f7; --pp-text: #101828; --pp-muted: #4a5568;
  --pp-faint: #6b7a90; --pp-good: #127a3e; --pp-good-bg: #e7f5ec; --pp-bad: #b42318; --pp-bad-bg: #fef3f2;
  --pp-warn: #b54708; --pp-warn-bg: #fffaeb;
  --pp-display: 'Archivo', system-ui, sans-serif; --pp-body: 'Public Sans', system-ui, sans-serif;
  --popup-backdrop: rgba(10, 36, 99, 0.55);
  --popup-blur: 5px;
  --popup-radius: 10px;
  --popup-border: 1px solid var(--pp-line);
  --popup-shadow: 0 24px 60px rgba(10, 36, 99, 0.25);
}

/* ══════════ Popup system (ndis Layout.astro) ══════════ */
dialog.popup-panel {
  position: relative; border: var(--popup-border); border-radius: var(--popup-radius); padding: 0;
  box-shadow: var(--popup-shadow); width: min(calc(100vw - 2rem), var(--popup-max, 34rem));
  max-height: calc(100dvh - 3rem); overflow: hidden; background: #fff; color: var(--pp-text);
  font: 400 15px/1.5 var(--pp-body); text-align: left;
}
dialog.popup-panel:modal { position: fixed; }
html:has(dialog.popup-panel:modal) { overflow: hidden; }
dialog.popup-panel::backdrop { background: var(--popup-backdrop); backdrop-filter: blur(var(--popup-blur)); -webkit-backdrop-filter: blur(var(--popup-blur)); }
dialog.popup-panel *, dialog.popup-panel *::before, dialog.popup-panel *::after { box-sizing: border-box; }
dialog.popup-panel :where(h2, h3, p) { margin: 0; }
dialog.popup-panel :where(button, input, select, textarea) { font: inherit; }
dialog.popup-panel a { color: var(--pp-blue); }
.popup-body { position: relative; padding: 1.75rem 1.5rem 1.5rem; max-height: calc(100dvh - 3rem); overflow-y: auto; overscroll-behavior: contain; }
.popup-header { margin-bottom: 1.25rem; padding-right: 2.75rem; }
.popup-title { font: 800 1.375rem/1.25 var(--pp-display); color: var(--pp-navy); letter-spacing: -0.01em; }
.popup-close {
  position: absolute; top: 0.625rem; right: 0.625rem; z-index: 10; width: 2.75rem; height: 2.75rem; padding: 0;
  display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: 9999px;
  background: transparent; color: var(--pp-faint); cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease;
}
.popup-close:hover { background: var(--pp-rule); color: var(--pp-text); }
.popup-close:focus-visible { outline: 2px solid var(--pp-blue); outline-offset: 2px; }
.popup-close svg { width: 1.25rem; height: 1.25rem; }
@media (prefers-reduced-motion: no-preference) {
  dialog.popup-panel[open] { animation: popup-in 0.22s cubic-bezier(0.16, 1, 0.3, 1); }
  dialog.popup-panel[open]::backdrop { animation: popup-backdrop-in 0.22s ease-out; }
}
@keyframes popup-in { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
@keyframes popup-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 640px) {
  dialog.popup-panel { width: calc(100vw - 1.25rem); max-height: calc(100dvh - 1.5rem); }
  .popup-body { padding: 1.5rem 1.25rem 1.25rem; max-height: calc(100dvh - 1.5rem); }
  dialog.popup-panel :is(input, select, textarea) { font-size: 16px; }
  .popup-actions {
    position: sticky; bottom: -1.25rem; margin: 0.5rem -1.25rem -1.25rem;
    padding: 0.75rem 1.25rem calc(0.875rem + env(safe-area-inset-bottom));
    background: linear-gradient(to top, #fff 78%, rgba(255, 255, 255, 0));
  }
}

/* Shared parts */
.pp-svg { width: 1em; height: 1em; flex: none; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.pp-field {
  width: 100%; min-height: 44px; padding: 0.5rem 0.75rem; border: 1px solid var(--pp-line-strong); border-radius: 6px;
  background: #fff; color: var(--pp-text); font-size: 14px;
}
.pp-field:focus { outline: none; border-color: var(--pp-blue); box-shadow: 0 0 0 3px var(--pp-tint); }
textarea.pp-field { min-height: 0; resize: none; }
.pp-label { display: block; margin-bottom: 0.25rem; color: var(--pp-text); font: 600 13px/1.3 var(--pp-body); }
.pp-label .pp-req { color: var(--pp-bad); }
.pp-label .pp-opt { color: var(--pp-faint); font-weight: 400; }
.pp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 44px; padding: 0.5rem 1rem;
  border: 1px solid transparent; border-radius: 6px; background: var(--pp-blue); color: #fff;
  font: 700 14px/1.2 var(--pp-display); text-decoration: none; cursor: pointer; transition: background-color 0.15s ease, border-color 0.15s ease;
}
dialog.popup-panel a.pp-btn { color: #fff; }
.pp-btn:hover { background: var(--pp-blue-deep); text-decoration: none; }
.pp-btn-sky { background: var(--pp-sky); color: var(--pp-navy); }
dialog.popup-panel a.pp-btn-sky { color: var(--pp-navy); }
.pp-btn-sky:hover { background: var(--pp-sky-hover); }
.pp-btn-ghost { background: #fff; border-color: var(--pp-line); color: var(--pp-muted); font-weight: 600; }
.pp-btn-ghost:hover { background: #fff; border-color: var(--pp-blue); color: var(--pp-blue); }
.pp-btn-outline { background: #fff; border-color: var(--pp-blue); color: var(--pp-blue); }
dialog.popup-panel a.pp-btn-outline { color: var(--pp-blue); }
.pp-btn-outline:hover { background: var(--pp-pale); }
.pp-btn-block { width: 100%; }
.pp-link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.75rem; border: 0; background: none; color: var(--pp-muted); font: 500 13px/1 var(--pp-body); cursor: pointer; }
.pp-link:hover { color: var(--pp-blue); }
.pp-link-strong { color: var(--pp-blue); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.pp-tick { display: flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; margin: 0 auto 0.625rem; border-radius: 50%; background: var(--pp-good-bg); }
.pp-tick > span { display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--pp-good); color: #fff; font-size: 1.2rem; }
.pp-tick.is-warn { background: var(--pp-warn-bg); }
.pp-tick.is-warn > span { background: #f79009; }
.pp-hp { position: absolute; left: -9999px; top: -9999px; width: 0; height: 0; opacity: 0; overflow: hidden; pointer-events: none; }
.pp-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pp-small { color: var(--pp-faint); font-size: 11px; line-height: 1.4; }
.pp-small a { color: inherit; text-decoration: underline; }
.pp-small a:hover { color: var(--pp-blue); }
@keyframes ppPulse { 0% { opacity: 0; transform: scale(0.9); } 50% { transform: scale(1.02); } 100% { opacity: 1; transform: scale(1); } }

/* ══════════ Quote popup (ndis ConnectDialog) ══════════ */
.connect-dialog { --popup-max: 30rem; }
dialog.connect-dialog .popup-body { padding: 1.125rem; }
.connect-dialog :is(.cw-step, .cw-done, .cw-pv) { display: none; }
.connect-dialog:has(#cw-v1:checked) :is(.cw-step-1, .cw-pv-1),
.connect-dialog:has(#cw-v2:checked) :is(.cw-step-2, .cw-pv-2),
.connect-dialog:has(#cw-v3:checked) :is(.cw-step-3, .cw-pv-3),
.connect-dialog:has(#cw-vdone:checked) .cw-done { display: block; }
.connect-dialog:has(#cw-vdone:checked) :is(.cw-banner, .cw-foot) { display: none; }
.connect-dialog:has(#cw-scoped:checked) .cw-gen,
.connect-dialog:not(:has(#cw-scoped:checked)) .cw-prov { display: none !important; }
.connect-dialog[data-skip]:has(#cw-scoped:checked) .cw-back-service { display: none; }
/* A scoped listing offers its own services (up to 12 cards; the list below holds the rest), else its own trades,
   never all 8; the list is filled for it by popups.js fillSelect(). */
.connect-dialog[data-prov-cards]:has(#cw-scoped:checked) .cw-gen-cards,
.connect-dialog[data-prov-all]:has(#cw-scoped:checked) .cw-full { display: none; }
.connect-dialog:not([data-prov-cards]) .cw-prov-cards { display: none !important; }
.connect-dialog .cw-banner:has([data-cw="banner"]:empty),
.connect-dialog .cw-error:has([data-cw-error]:empty) { display: none; }
.connect-dialog .cw-group:has([data-cw-error]:not(:empty)) label { color: var(--pp-bad); }
.connect-dialog .cw-group:has([data-cw-error]:not(:empty)) :is(input, select, textarea) { border-color: var(--pp-bad); }
.connect-dialog .cw-form[aria-busy="true"] .cw-send { opacity: 0.6; pointer-events: none; }
.connect-dialog .cw-form[aria-busy="true"] .cw-send-idle,
.connect-dialog .cw-form:not([aria-busy="true"]) .cw-send-busy { display: none; }
.connect-dialog .cw-done:is([data-tone="none"], [data-tone="held"]) .cw-tone-sent,
.connect-dialog .cw-done:not([data-tone="none"], [data-tone="held"]) .cw-tone-none { display: none; }
/* The server's pre-send note for this listing (scope copy.quote.note: unclaimed or free plan, C10 + C11), said
   before the visitor starts; empty when the business gets the visitor's details. Lines the server left empty hide. */
.connect-dialog .cw-held-note:empty,
.connect-dialog .cw-foot:has(> [data-cw]:empty) { display: none; }
.connect-dialog [data-cw-head]:focus { outline: none; }

.cw-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 0.5rem; margin-bottom: 0.5rem; padding-right: 2.25rem; }
.cw-head h2 { font: 800 1.0625rem/1.3 var(--pp-display); color: var(--pp-navy); }
.cw-subtitle-chip { color: var(--pp-faint); font-size: 11px; white-space: nowrap; }
.cw-subtitle-chip strong { color: var(--pp-text); font-weight: 600; }
.cw-strip { display: flex; align-items: center; gap: 0.625rem; margin-bottom: 0.5rem; padding: 0.375rem 0.625rem; border: 1px solid var(--pp-tint); border-radius: 8px; background: var(--pp-paler); }
.cw-strip-logo { display: flex; flex: none; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: 6px; background: var(--pp-pale); color: var(--pp-blue); font: 800 14px/1 var(--pp-display); }
.cw-strip-meta { flex: 1; min-width: 0; }
.cw-strip-meta .cw-k { color: var(--pp-faint); font: 600 10px/1.2 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; }
.cw-strip-meta .cw-v { overflow: hidden; color: var(--pp-text); font: 700 14px/1.35 var(--pp-body); text-overflow: ellipsis; white-space: nowrap; }
.cw-strip-place { flex: none; color: var(--pp-muted); font-size: 11px; white-space: nowrap; }
.cw-held-note { margin: -0.125rem 0 0.5rem; padding: 0.375rem 0.625rem; border: 1px solid #f0c27a; border-radius: 8px; background: #fffaf0; color: var(--pp-text); font-size: 12px; line-height: 1.45; }
.cw-pv { margin-bottom: 0.5rem; }
.cw-pv-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.25rem; }
.cw-pv-step { color: var(--pp-blue); font: 700 11px/1 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; }
.cw-pv-label { color: var(--pp-faint); font-size: 11px; }
.cw-bar { display: flex; gap: 0.25rem; }
.cw-bar span { flex: 1; height: 4px; border-radius: 99px; background: var(--pp-tint); }
.cw-bar span.is-on { background: var(--pp-blue); }
.cw-banner { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 0.5rem; padding: 0.5rem 0.75rem; border: 1px solid #fecdca; border-radius: 8px; background: var(--pp-bad-bg); color: var(--pp-bad); font-size: 12px; line-height: 1.4; }
.cw-banner .pp-svg { margin-top: 0.1rem; }
.cw-step-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.5rem; }
.cw-h { font: 700 15px/1.35 var(--pp-display); color: var(--pp-text); }
.cw-hint { flex: none; color: var(--pp-faint); font-size: 12px; white-space: nowrap; }
.cw-sub { margin: 0.125rem 0 0.625rem; color: var(--pp-muted); font-size: 12px; }
.cw-error { display: flex; align-items: center; gap: 0.375rem; margin-top: 0.25rem; color: var(--pp-bad); font-size: 12px; }
.cw-step-1 > .cw-error { margin: 0 0 0.5rem; }
.cw-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.375rem; }
@media (min-width: 560px) { .cw-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cw-card {
  display: flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0.25rem 0.625rem; border: 1px solid var(--pp-line);
  border-radius: 8px; background: #fff; color: var(--pp-text); text-align: left; cursor: pointer;
  font: 600 12px/1.2 var(--pp-body); transition: border-color 0.15s ease, background-color 0.15s ease;
}
.cw-card:hover { border-color: #9db8f0; background: var(--pp-paler); }
.cw-card .pp-svg { width: 16px; height: 16px; color: #5b7bc0; }
.cw-card[aria-pressed="true"] { border-color: var(--pp-blue); box-shadow: 0 0 0 1px var(--pp-blue); background: var(--pp-pale); color: var(--pp-blue); }
.cw-card[aria-pressed="true"] .pp-svg { color: var(--pp-blue); }
.cw-full { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.625rem; padding-top: 0.625rem; border-top: 1px solid var(--pp-rule); }
.cw-full select { flex: 1; min-width: 0; }
.cw-fields > * + * { margin-top: 0.625rem; }
.cw-row { display: flex; gap: 0.625rem; }
.cw-row > .cw-group:first-child { flex: 1; min-width: 0; }
.cw-row > .cw-group:last-child { flex: none; width: 7rem; }
.cw-actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; }
.cw-actions .pp-btn:last-child { flex: 1; min-width: 0; }
.cw-terms { margin-top: 0.625rem; }
.cw-send { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cw-done { text-align: center; animation: ppPulse 0.45s ease-out; }
.cw-done h3 { margin-bottom: 0.25rem; font: 800 1.125rem/1.3 var(--pp-display); color: var(--pp-navy); }
.cw-done .cw-o-body { margin-bottom: 0.75rem; color: var(--pp-muted); font-size: 13px; }
.cw-summary { margin-bottom: 0.75rem; padding: 0.625rem 0.75rem; border: 1px solid var(--pp-tint); border-radius: 8px; background: var(--pp-paler); text-align: left; font-size: 12px; }
.cw-summary .cw-k { margin-bottom: 0.25rem; color: var(--pp-faint); font: 700 10px/1.2 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; }
.cw-summary b { color: var(--pp-blue); }
.cw-done-btns { display: flex; flex-direction: column; gap: 0.375rem; }
.cw-done-row { display: flex; align-items: center; justify-content: center; gap: 0.75rem; }
.cw-foot { display: flex; align-items: center; justify-content: center; gap: 0.25rem; margin-top: 0.625rem; color: var(--pp-faint); font-size: 11px; text-align: center; }
@media (max-height: 44rem) {
  dialog.connect-dialog .popup-body { padding: 0.875rem; }
  .connect-dialog .cw-head { margin-bottom: 0.375rem; }
  .connect-dialog .cw-subtitle-chip, .connect-dialog .cw-sub { display: none; }
  .connect-dialog .cw-fields > * + * { margin-top: 0.375rem; }
  .connect-dialog .cw-fields label { margin-bottom: 0.125rem; }
  .connect-dialog .cw-fields textarea { height: 2.5rem; }
  .connect-dialog .cw-actions { margin-top: 0.5rem; }
  .connect-dialog .cw-pv { margin-bottom: 0.375rem; }
  .connect-dialog .cw-foot { display: none; }
  .connect-dialog .cw-strip { padding-block: 0.25rem; }
  .connect-dialog .cw-strip-logo { display: none; }
}

/* ══════════ Contact dialog (ndis #contactDialog on the profile) ══════════ */
.contact-dialog { --popup-max: 28rem; }
.contact-dialog .cd-success, .contact-dialog .cd-error { display: none; }
.contact-dialog[data-store*='"showSuccess":true'] .cd-success { display: flex; }
.contact-dialog[data-store*='"showSuccess":true'] .cd-form { display: none; }
.contact-dialog[data-store*='"showError":true'] .cd-error { display: block; }
.contact-dialog .cd-success { flex-direction: column; align-items: center; gap: 0.25rem; padding: 1rem 0 0.5rem; text-align: center; animation: ppPulse 0.45s ease-out; }
.contact-dialog .cd-success p { font: 700 1.0625rem/1.3 var(--pp-display); color: var(--pp-navy); }
.contact-dialog .cd-success small { color: var(--pp-muted); font-size: 13px; }
.contact-dialog .cd-held-note { margin: 0 0 0.75rem; padding: 0.375rem 0.625rem; border: 1px solid #f0c27a; border-radius: 8px; background: #fffaf0; font-size: 12px; line-height: 1.45; }
.contact-dialog .cd-held-note:empty,
.contact-dialog .cd-foot:empty { display: none; }
.contact-dialog .cd-foot { margin-top: 0.5rem; color: var(--pp-faint); font-size: 11px; text-align: center; }
.contact-dialog[data-store*='"held":true'] .cd-success .pp-tick:not(.is-warn),
.contact-dialog:not([data-store*='"held":true']) .cd-success .pp-tick.is-warn { display: none; }
.contact-dialog .cd-section-title { margin-bottom: 0.75rem; color: var(--pp-muted); font: 700 12px/1 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; }
.contact-dialog .cd-grid { display: grid; gap: 0.75rem; }
.contact-dialog .cd-error { margin-top: 0.75rem; padding: 0.5rem 0.75rem; border-radius: 6px; background: var(--pp-bad-bg); color: var(--pp-bad); font-size: 13px; }
.contact-dialog .popup-actions { margin-top: 1rem; }

/* ══════════ Phone reveal (ndis PhoneRevealDialog) ══════════ */
.phone-reveal-dialog { --popup-max: 26rem; }
dialog.pr-compact .popup-body { padding: 1.25rem 1.25rem 1.125rem; }
dialog.pr-compact .popup-header { margin-bottom: 0.875rem; padding-right: 2.5rem; }
dialog.pr-compact .popup-title { font-size: 1.1875rem; }
.pr-lede { margin-top: 0.125rem; color: var(--pp-muted); font-size: 13px; }
.pr-lede b { color: var(--pp-text); font-weight: 600; }
#pr-form .pr-fields > * + * { margin-top: 0.625rem; }
#pr-form .pp-field { border-width: 2px; border-color: var(--pp-line); }
#pr-form .pp-field:focus { border-color: var(--pp-blue); box-shadow: none; }
#pr-form:has(#pr-contact:placeholder-shown) .pr-submit-wrap { opacity: 0.45; pointer-events: none; }
#pr-form details.pr-msg > summary { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.125rem 0; color: var(--pp-blue); font: 600 12px/1.4 var(--pp-body); list-style: none; cursor: pointer; }
#pr-form details.pr-msg > summary::-webkit-details-marker { display: none; }
#pr-form details.pr-msg[open] > summary { display: none; }
#pr-form .pr-submit-wrap { margin-top: 0.75rem; }
#pr-form .pr-small { margin-top: 0.5rem; text-align: center; }
.pr-result { display: flex; flex-direction: column; align-items: center; padding: 0.5rem 0.5rem 0; text-align: center; animation: ppPulse 0.5s ease-out; }
.pr-result h3 { margin-bottom: 0.25rem; font: 800 1.375rem/1.25 var(--pp-display); color: var(--pp-navy); }
.pr-result p { margin-bottom: 1rem; color: var(--pp-muted); font-size: 14px; }
.pr-result p b { color: var(--pp-text); }
.pr-number { margin-bottom: 1rem; color: var(--pp-navy); font: 800 1.875rem/1.1 var(--pp-display); letter-spacing: 0.02em; text-decoration: none; }
dialog.popup-panel a.pr-number { color: var(--pp-navy); }
.pr-number:hover { color: var(--pp-blue); }
.pr-note { margin-top: 0.875rem; color: var(--pp-faint); font-size: 12px; }
.pr-result .pp-link-strong { margin-top: 0.25rem; }

/* The blurred number on every phone trigger (ndis .pr-censor-*), until the reveal. */
.bp-pr-digits { filter: blur(4.5px); opacity: 0.8; user-select: none; -webkit-user-select: none; letter-spacing: 0.02em; }
.bp-pr-hint {
  display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.5rem; border-radius: 9999px;
  background: rgba(255, 255, 255, 0.22); color: inherit; font: 800 10.5px/1 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; white-space: nowrap;
}
[data-phone-reveal][data-phone] :is(.bp-pr-digits, .bp-pr-hint) { display: none; }
[data-phone-reveal][data-phone]::after { content: attr(data-phone); }
/* The sidebar contact list's phone row: hidden the same way, until the reveal. */
a[data-ct="phone"]:not([data-phone]) { color: transparent !important; text-shadow: 0 0 7px rgba(16, 24, 40, 0.55); user-select: none; -webkit-user-select: none; }
a[data-ct="phone"]:not([data-phone])::after {
  content: "Reveal"; margin-left: 0.5rem; padding: 0.2rem 0.45rem; border-radius: 9999px; background: var(--pp-pale);
  color: var(--pp-blue); text-shadow: none; font: 800 10.5px/1 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; vertical-align: 1px;
}
a[data-ct="phone"][data-phone] { font-size: 0 !important; }
a[data-ct="phone"][data-phone]::after { content: attr(data-phone); font-size: 14px; }

/* The profile's Save button (not in ndis) */
[data-save-business] .bp-save-on, [data-save-business][aria-pressed="true"] .bp-save-off { display: none; }
[data-save-business][aria-pressed="true"] .bp-save-on { display: inline; }
[data-save-business][aria-pressed="true"] svg { fill: currentColor; }

/* ══════════ Support widget (ndis SupportWidget) ══════════ */
.support-dialog { --popup-max: 26rem; }
.support-launcher {
  position: fixed; right: calc(1.25rem + env(safe-area-inset-right, 0px)); bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px));
  z-index: 900; display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem; padding: 0;
  border: none; border-radius: 9999px; background: var(--pp-navy); color: #fff; cursor: pointer;
  box-shadow: 0 10px 25px rgba(10, 36, 99, 0.4); transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.support-launcher:hover { background: var(--pp-blue); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(10, 36, 99, 0.45); }
.support-launcher:focus-visible { outline: 3px solid var(--pp-sky); outline-offset: 2px; }
.support-launcher .pp-svg { width: 1.5rem; height: 1.5rem; stroke-width: 2; }
@media (max-width: 640px) {
  .support-launcher { width: 3.25rem; height: 3.25rem; right: calc(1rem + env(safe-area-inset-right, 0px)); bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); }
}
@media print { .support-launcher { display: none; } }
/* Phones: room under the footer so the launcher never sits on its last links at the end of the page. */
@media (max-width: 640px) {
  body:has(.support-launcher) footer.site-ft { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
#sw-steps .sw-step { display: none; animation: swStepFadeIn 0.3s ease-out; }
@keyframes swStepFadeIn { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } }
#sw-steps .sw-step-1 { display: block; }
#sw-steps:has(input[name="category"]:checked) .sw-step-1 { display: none; }
#sw-steps:has(input[name="category"]:checked) .sw-step-2 { display: block; }
#sw-steps:has(input[name="sw-msg-confirm"]:checked) .sw-step-2 { display: none; }
#sw-steps:has(input[name="sw-msg-confirm"]:checked) .sw-step-3 { display: block; }
#sw-steps:has(#sw-message:placeholder-shown) .sw-msg-continue { opacity: 0.45; pointer-events: none; }
#sw-steps .sw-count { margin-bottom: 0.25rem; color: var(--pp-faint); font: 600 11px/1 var(--pp-body); letter-spacing: 0.05em; text-transform: uppercase; }
#sw-steps .sw-h { margin-bottom: 1rem; }
#sw-steps .sw-h h3 { font: 800 1.25rem/1.3 var(--pp-display); color: var(--pp-navy); }
#sw-steps .sw-h p { margin-top: 0.25rem; color: var(--pp-muted); font-size: 14px; }
#sw-steps .sw-cards { display: grid; gap: 0.75rem; }
#sw-steps .sw-opt { position: relative; }
#sw-steps .sw-opt input { position: absolute; width: 1px; height: 1px; opacity: 0; }
#sw-steps .sw-card {
  display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.875rem 1rem; border: 2px solid var(--pp-line); border-radius: 10px;
  background: #fff; text-align: left; cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
#sw-steps .sw-card:hover { border-color: #9db8f0; background: var(--pp-paler); box-shadow: 0 2px 8px rgba(10, 36, 99, 0.1); }
#sw-steps .sw-opt input:checked ~ .sw-card { border-color: var(--pp-blue); background: var(--pp-blue); color: #fff; }
#sw-steps .sw-opt input:focus-visible ~ .sw-card { outline: 3px solid var(--pp-sky); outline-offset: 2px; }
#sw-steps .sw-card .pp-svg { width: 1.25rem; height: 1.25rem; margin-top: 0.125rem; color: var(--pp-blue); }
#sw-steps .sw-opt input:checked ~ .sw-card .pp-svg, #sw-steps .sw-opt input:checked ~ .sw-card .sw-card-sub { color: #fff; }
#sw-steps .sw-card b { display: block; font: 700 14px/1.3 var(--pp-body); }
#sw-steps .sw-card-sub { color: var(--pp-muted); font-size: 12px; }
#sw-steps .sw-continue {
  display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.625rem 0.75rem; border: 2px solid var(--pp-line);
  border-radius: 6px; background: #fff; font: 600 13px/1.2 var(--pp-body); cursor: pointer; transition: border-color 0.15s ease, background-color 0.15s ease;
}
#sw-steps .sw-continue:hover { border-color: var(--pp-sky); background: var(--pp-paler); }
#sw-steps .sw-opt input:checked ~ .sw-continue { border-color: var(--pp-sky); background: var(--pp-sky); color: var(--pp-navy); }
#sw-steps .sw-msg-continue { margin-top: 1rem; }
#sw-steps .sw-page { margin-top: 0.5rem; overflow: hidden; color: var(--pp-faint); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
#sw-steps .sw-page code { font: 12px ui-monospace, Menlo, monospace; }
#sw-steps .sw-back { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 0.75rem; padding: 0.5rem 0; border: none; background: transparent; color: var(--pp-muted); font: 500 14px/1 var(--pp-body); cursor: pointer; }
#sw-steps .sw-back:hover { color: var(--pp-blue); }
#sw-steps .sw-fields > * + * { margin-top: 1rem; }
#sw-steps .pp-field { min-height: 48px; padding: 0.75rem 1rem; border-width: 2px; border-color: var(--pp-line); font-size: 15px; }
#sw-steps textarea.pp-field { min-height: 7rem; }
#sw-steps .pp-field:focus { border-color: var(--pp-blue); box-shadow: none; }
#sw-steps .sw-small { margin-top: 0.5rem; text-align: center; }
.sw-result { display: flex; flex-direction: column; align-items: center; padding: 1rem 0.5rem; text-align: center; animation: ppPulse 0.5s ease-out; }
.sw-result h3 { margin-bottom: 0.5rem; font: 800 1.375rem/1.25 var(--pp-display); color: var(--pp-navy); }
.sw-result p { color: var(--pp-muted); font-size: 14px; }
.sw-result p + p { margin-top: 0.25rem; }
.sw-result .sw-ref { color: var(--pp-navy); font: 700 15px ui-monospace, Menlo, monospace; }
.sw-result .pp-btn { margin-top: 1.25rem; padding-inline: 2rem; }
