/* Alarm Directory front-end styles. Colors inherit from your theme where possible. */
.sfa-directory, .sfa-single, .sfa-dashboard {
	--sfa-accent: #c0392b;
	--sfa-border: #e2e2e2;
	--sfa-muted: #6b6b6b;
	--sfa-star: #f5a623;
	--sfa-radius: 8px;
}

.sfa-notice { padding: 12px 16px; border-radius: var(--sfa-radius); margin: 0 0 20px; border: 1px solid; }
.sfa-notice-success { background: #edf7ee; border-color: #8cc99a; color: #1e5a2d; }
.sfa-notice-error { background: #fdeeee; border-color: #e3a1a1; color: #7a1f1f; }

/* Buttons */
.sfa-btn { display: inline-block; background: var(--sfa-accent); color: #fff !important; border: 0; border-radius: var(--sfa-radius); padding: 10px 18px; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; line-height: 1.2; }
.sfa-btn:hover { filter: brightness(.92); }
.sfa-btn-small { padding: 6px 12px; font-size: .875em; }

/* Stars */
.sfa-stars { --p: calc(var(--sfa-rating, 0) / 5 * 100%); display: inline-block; font-size: 1.15em; letter-spacing: 2px; line-height: 1; vertical-align: middle;
	background: linear-gradient(90deg, var(--sfa-star, #f5a623) var(--p), #d5d5d5 var(--p)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.sfa-stars::before { content: "★★★★★"; }
.sfa-rating-none, .sfa-muted, .sfa-hint { color: var(--sfa-muted); font-size: .9em; }
.sfa-count { color: var(--sfa-muted); }

/* Badges & chips */
.sfa-badge { display: inline-block; font-size: .8em; padding: 3px 10px; border-radius: 999px; background: #f0f0f0; color: #444; margin-right: 8px; }
.sfa-badge-verified { background: #e3f4e6; color: #1e6b32; }
.sfa-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; padding: 0; }
.sfa-chip { font-size: .78em; background: #f3f3f3; border-radius: 999px; padding: 3px 10px; }

/* Search */
.sfa-search { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 18px; }
.sfa-search input, .sfa-search select, .sfa-input { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--sfa-border); border-radius: var(--sfa-radius); font: inherit; background: #fff; color: #222; }
.sfa-result-count { color: var(--sfa-muted); margin: 0 0 14px; }

/* Cards */
.sfa-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.sfa-card { display: flex; gap: 14px; border: 1px solid var(--sfa-border); border-radius: var(--sfa-radius); padding: 14px; background: #fff; color: #222; }
.sfa-card-logo { flex: 0 0 72px; width: 72px; height: 72px; display: flex; align-items: center; justify-content: center; border-radius: var(--sfa-radius); background: #f5f5f5; overflow: hidden; text-decoration: none; }
.sfa-card-logo img { width: 100%; height: 100%; object-fit: contain; }
.sfa-initial { font-size: 1.8em; font-weight: 700; color: var(--sfa-accent); }
.sfa-card-body { min-width: 0; }
.sfa-card-title { margin: 0 0 4px; font-size: 1.05em; line-height: 1.25; }
.sfa-card-body p { margin: 4px 0 0; font-size: .92em; }
.sfa-pagination { margin-top: 24px; }
.sfa-pagination .page-numbers { display: inline-block; padding: 6px 12px; margin-right: 4px; border: 1px solid var(--sfa-border); border-radius: 6px; text-decoration: none; }
.sfa-pagination .current { background: var(--sfa-accent); color: #fff; border-color: var(--sfa-accent); }

/* Single listing */
.sfa-single-top { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 18px; }
.sfa-logo img { max-width: 220px; height: auto; border-radius: var(--sfa-radius); border: 1px solid var(--sfa-border); padding: 8px; background: #fff; }
.sfa-details { display: grid; grid-template-columns: max-content 1fr; gap: 8px 22px; margin: 24px 0; padding: 18px; border: 1px solid var(--sfa-border); border-radius: var(--sfa-radius); }
.sfa-details dt { font-weight: 600; }
.sfa-details dd { margin: 0; word-break: break-word; }
.sfa-claim { margin: 28px 0; padding: 14px 18px; border: 1px dashed var(--sfa-accent); border-radius: var(--sfa-radius); }
.sfa-claim summary { cursor: pointer; font-weight: 600; color: var(--sfa-accent); }

/* Reviews */
.sfa-review-list { list-style: none; margin: 18px 0; padding: 0; }
.sfa-review { padding: 14px 0; border-bottom: 1px solid var(--sfa-border); }
.sfa-review p { margin: 6px 0; }
.sfa-review-meta { color: var(--sfa-muted); font-size: .88em; }

/* Star picker */
.sfa-stars-input { border: 0; padding: 0; margin: 0 0 12px; }
.sfa-star-radios { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; }
.sfa-star-radios input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sfa-star-radios label { font-size: 2em; line-height: 1; cursor: pointer; color: #ccc; padding: 0 2px; }
.sfa-star-radios input:checked ~ label,
.sfa-star-radios label:hover,
.sfa-star-radios label:hover ~ label { color: var(--sfa-star, #f5a623); }
.sfa-star-radios input:focus-visible + label { outline: 2px solid var(--sfa-accent); outline-offset: 2px; }

/* Forms */
.sfa-field { margin: 0 0 14px; }
.sfa-field > label, .sfa-field legend { display: block; font-weight: 600; margin-bottom: 4px; }
.sfa-inline { display: inline-flex; gap: 6px; align-items: center; font-weight: 400 !important; margin-right: 14px; }
.sfa-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* Dashboard */
.sfa-tabs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 20px; }
.sfa-tabs a { display: block; padding: 8px 14px; border: 1px solid var(--sfa-border); border-radius: 999px; text-decoration: none; }
.sfa-tabs .is-active a { background: var(--sfa-accent); color: #fff; border-color: var(--sfa-accent); }
.sfa-two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 18px; }
.sfa-checks { display: flex; flex-wrap: wrap; gap: 6px 0; }
.sfa-logo-preview img { max-width: 120px; height: auto; border: 1px solid var(--sfa-border); border-radius: var(--sfa-radius); margin-bottom: 8px; }

@media (max-width: 600px) {
	.sfa-details { grid-template-columns: 1fr; gap: 2px; }
	.sfa-details dd { margin-bottom: 10px; }
}

/* ---- v1.1: map, featured, credentials, quote, reports, replies ---- */
.sfa-map { height: 380px; margin: 0 0 20px; border-radius: var(--sfa-radius, 8px); border: 1px solid var(--sfa-border, #e2e2e2); z-index: 0; }
.sfa-single .sfa-map { height: 280px; margin-top: 8px; }
.sfa-popup { font-size: 14px; line-height: 1.4; }

.sfa-badge-featured { background: #fff4d6; color: #7a5200; }
.sfa-card.is-featured { border-color: #f0c36d; box-shadow: 0 0 0 1px #f0c36d inset; }
.sfa-card-dist { color: var(--sfa-muted, #6b6b6b); }
.sfa-featured-note { color: #7a5200; font-weight: 600; }

.sfa-creds { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 0; }
.sfa-creds li { background: #e3f4e6; color: #1e6b32; border-radius: 999px; padding: 4px 12px; font-size: .85em; font-weight: 600; }

.sfa-quote { margin: 28px 0; padding: 18px 20px; border: 2px solid var(--sfa-accent, #c0392b); border-radius: var(--sfa-radius, 8px); }
.sfa-quote h2 { margin-top: 0; }
.sfa-quote .sfa-two-col, .sfa-dash-form .sfa-two-col { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 18px; }
.cf-turnstile { margin: 0 0 14px; }

.sfa-report { margin: 24px 0 0; font-size: .9em; color: var(--sfa-muted, #6b6b6b); }
.sfa-report summary { cursor: pointer; }
.sfa-report form { margin-top: 12px; max-width: 520px; }

.sfa-reply { margin: 10px 0 0 14px; padding: 10px 14px; border-left: 3px solid var(--sfa-accent, #c0392b); background: #f8f8f8; border-radius: 0 6px 6px 0; }
.sfa-reply p { margin: 4px 0 0; }
.sfa-reply-form { margin: 8px 0 0 14px; font-size: .9em; }
.sfa-reply-form summary { cursor: pointer; color: var(--sfa-accent, #c0392b); }

.sfa-landing-title { margin-top: 0; }
.sfa-browse { margin: 32px 0 0; }
.sfa-browse ul { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 6px 18px; padding: 0; margin: 0; }

.sfa-table-wrap { overflow-x: auto; }
.sfa-table { width: 100%; border-collapse: collapse; font-size: .92em; }
.sfa-table th, .sfa-table td { text-align: left; vertical-align: top; padding: 8px 10px; border-bottom: 1px solid var(--sfa-border, #e2e2e2); }

/* Alarming USA edition: theme-scoped directory refresh (v1.2.0).
   All rules stay within plugin containers to avoid changing Kadence or other tools. */
.sfa-directory, .sfa-single, .sfa-dashboard {
  --sfa-accent: #bf2636;
  --sfa-navy: #102c4b;
  --sfa-border: #dce4ed;
  --sfa-muted: #52647a;
  --sfa-radius: 12px;
  color: #1b2e42;
  line-height: 1.6;
}
.sfa-directory *, .sfa-single *, .sfa-dashboard * { box-sizing: border-box; }
.sfa-directory .sfa-search {
  background: linear-gradient(125deg, #102c4b, #1b466a);
  padding: clamp(18px, 3vw, 30px);
  border-radius: 18px;
  gap: 12px;
  box-shadow: 0 12px 30px rgba(16,44,75,.13);
}
.sfa-directory .sfa-search input,
.sfa-directory .sfa-search select {
  min-height: 46px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: #fff;
  color: #182b40;
}
.sfa-directory .sfa-search input:focus-visible,
.sfa-directory .sfa-search select:focus-visible,
.sfa-directory .sfa-btn:focus-visible,
.sfa-single .sfa-btn:focus-visible,
.sfa-dashboard .sfa-btn:focus-visible {
  outline: 3px solid #f5b84b;
  outline-offset: 2px;
}
.sfa-directory .sfa-search .sfa-btn {
  min-height: 46px;
  background: #d32f42;
  border-radius: 9px;
}
.sfa-directory .sfa-result-count { font-weight: 650; color: var(--sfa-navy); }
.sfa-directory .sfa-grid { gap: 20px; }
.sfa-directory .sfa-card {
  padding: 20px;
  border-radius: 16px;
  border: 1px solid var(--sfa-border);
  box-shadow: 0 3px 16px rgba(16,44,75,.06);
  transition: box-shadow .2s ease, transform .2s ease;
}
.sfa-directory .sfa-card:hover { box-shadow: 0 12px 28px rgba(16,44,75,.13); transform: translateY(-2px); }
.sfa-directory .sfa-card-logo { border-radius: 12px; background: #f0f4f8; flex-basis: 78px; width: 78px; height: 78px; }
.sfa-directory .sfa-card-title { font-size: 1.15rem; font-weight: 750; }
.sfa-directory .sfa-card-title a { color: var(--sfa-navy); text-decoration: none; }
.sfa-directory .sfa-card-title a:hover { color: var(--sfa-accent); text-decoration: underline; }
.sfa-directory .sfa-chip, .sfa-single .sfa-chip { background: #eef3f8; color: #244361; padding: 5px 10px; }
.sfa-directory .sfa-badge-verified, .sfa-single .sfa-badge-verified { background: #e8f5ed; color: #16603a; }
.sfa-directory .sfa-map, .sfa-single .sfa-map { border-radius: 16px; overflow: hidden; }
.sfa-single .sfa-details, .sfa-single .sfa-quote, .sfa-single .sfa-claim {
  border-radius: 14px;
  box-shadow: 0 3px 16px rgba(16,44,75,.05);
}
.sfa-single .sfa-details { background: #f9fbfd; }
.sfa-single .sfa-quote { background: #fffafa; }
.sfa-directory .sfa-pagination .page-numbers { min-width: 38px; text-align: center; }
@media (prefers-reduced-motion: reduce) {
  .sfa-directory .sfa-card { transition: none; }
  .sfa-directory .sfa-card:hover { transform: none; }
}
@media (max-width: 640px) {
  .sfa-directory .sfa-search { grid-template-columns: 1fr; padding: 16px; }
  .sfa-directory .sfa-grid { grid-template-columns: 1fr; }
  .sfa-directory .sfa-card { padding: 15px; gap: 12px; }
  .sfa-directory .sfa-card-logo { flex-basis: 62px; width: 62px; height: 62px; }
}

/* Alarming USA Directory v1.3.0 homepage */
.sfa-directory { width:100%; max-width:none; }
.sfa-home-hero {background:linear-gradient(125deg,#102c48,#204f73);color:#fff;padding:clamp(24px,4vw,50px);border-radius:16px 16px 0 0;margin:0 0 -1px;}
.sfa-home-hero h2{color:#fff;font-size:clamp(25px,3vw,38px);line-height:1.18;margin:12px 0;max-width:740px}
.sfa-home-hero p{color:#e2edf5;max-width:640px;margin:0;font-size:16px}
.sfa-eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;color:#c7e2f3}
.sfa-search-v13{border-radius:0 0 16px 16px!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px!important;padding:22px!important;margin-bottom:26px!important}
.sfa-search-v13 input,.sfa-search-v13 select,.sfa-search-v13 button{width:100%!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important;margin:0!important;min-height:46px}
.sfa-search-v13 button{background:#ce293d!important}
.sfa-join{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;background:#f0f6fb;border:1px solid #dce9f3;border-radius:12px;margin:0 0 30px}
.sfa-join div{display:grid;gap:4px}.sfa-join strong{color:#153957;font-size:17px}.sfa-join span{color:#536777}
.sfa-home-section{margin:30px 0}.sfa-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid #e5ebef;margin-bottom:16px;padding-bottom:9px}
.sfa-section-heading h2{font-size:clamp(21px,2.3vw,26px);margin:0;color:#153957}.sfa-section-heading span{font-size:12px;color:#697985}
.sfa-home-grid{margin:0!important}.sfa-home-empty{padding:22px;background:#f6f9fb;border:1px dashed #ccdce7;border-radius:10px;color:#536777}
.sfa-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sfa-service-tile{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid #dfe8ef;border-radius:10px;text-decoration:none!important;background:#fff;color:#183a56!important;font-weight:700}.sfa-service-tile:hover{border-color:#cf2e43;box-shadow:0 6px 18px #1234}.sfa-service-tile small{font-weight:400;color:#697985}
@media(max-width:760px){.sfa-search-v13{grid-template-columns:repeat(2,minmax(0,1fr))}.sfa-join{flex-direction:column;align-items:stretch}.sfa-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.sfa-search-v13{grid-template-columns:1fr}.sfa-section-heading{display:block}.sfa-service-grid{grid-template-columns:1fr}}
