/* ==========================================================================
   RealyBee — Real estate agencies directory (front/agencies/index + map)
   ========================================================================== */
.ag-page{ background:#fafbfc; padding:28px 0 64px; min-height:60vh; }
body:not(.has-hero) main.ag-page{ padding-top:24px; }
.ag-page .ag-search{ margin-top:4px; }

/* ---- directory tabs (agencies / agents / notaries) ---- */
.ag-tabs{ position:relative; display:flex; gap:6px; margin:0 0 16px; padding:5px; width:max-content; max-width:100%; overflow-x:auto; scrollbar-width:none; background:#eef0f4; border-radius:12px; }
.ag-tabs::-webkit-scrollbar{ display:none; }
.ag-tab{
  --tab:#ff5a1f; display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 16px; border-radius:9px;
  font-size:14.5px; font-weight:700; color:#475467; white-space:nowrap; transition:background .15s, color .15s;
}
.ag-tab--agent{ --tab:#1570ef; }
.ag-tab--notary{ --tab:#4338a8; }
.ag-tab--service{ --tab:#0e8f7e; }
.ag-tab svg{ color:var(--tab); }
.ag-tab small{ padding:1px 7px; border-radius:999px; background:#fff; font-size:12px; font-weight:700; color:#667085; }
.ag-tab:hover{ color:var(--ink); background:rgba(255,255,255,.6); }
.ag-tab.is-active{ background:#fff; color:var(--ink); box-shadow:0 1px 3px rgba(16,24,40,.1); }
.ag-tab.is-active small{ background:var(--tab); color:#fff; }
.ag-tab-pre{ margin-right:-8px; }
@media (max-width:720px){
  .ag-tabs{ width:100%; }
  .ag-tab{ flex:1 0 auto; justify-content:center; padding:0 9px; gap:5px; font-size:13px; }
  .ag-tab-pre{ display:none; }
  .ag-tab{ text-transform:capitalize; }
  .ag-tab:not(.is-active) small{ display:none; }
}

/* ---- search bar: city dropdown + query with suggestions ---- */
.ag-search{
  position:relative; z-index:12; display:flex; align-items:center; gap:10px; padding:8px; background:#fff;
  border:1px solid var(--line); border-radius:14px; box-shadow:0 1px 2px rgba(16,24,40,.03);
}
.ag-search-q{
  position:relative; flex:1; min-width:0; display:flex; align-items:center; gap:10px; height:56px; padding:0 16px;
  border:1px solid var(--line); border-radius:10px; background:#fff; color:#344054;
}
.ag-search-q:focus-within{ border-color:#ffc4ad; box-shadow:0 0 0 3px rgba(255,90,31,.1); }
.ag-search-q input{ flex:1; min-width:0; border:0; outline:0; font:inherit; font-size:15px; color:var(--ink); background:transparent; }
.ag-search-q input::placeholder{ color:#667085; }
.ag-q-clear{ display:inline-flex; padding:4px; color:#98a2b3; }
.ag-q-clear:hover{ color:var(--orange); }
.ag-search-btn{
  flex:0 0 72px; height:56px; border:0; border-radius:10px; background:var(--orange); color:#fff;
  display:flex; align-items:center; justify-content:center; transition:background .15s;
}
.ag-search-btn:hover{ background:#ee4f18; }

.ag-suggest{
  position:absolute; left:-1px; right:-1px; top:calc(100% + 8px); z-index:40; padding:8px; background:#fff;
  border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 40px rgba(16,24,39,.14); max-height:420px; overflow-y:auto;
}
.ag-suggest[hidden]{ display:none; }
.ag-suggest-group{ padding:8px 10px 4px; font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#98a2b3; }
.ag-suggest-item{
  display:flex; align-items:center; gap:12px; width:100%; padding:8px 10px; border:0; border-radius:9px; background:none;
  text-align:left; font:inherit; color:var(--ink); cursor:pointer;
}
.ag-suggest-item:hover, .ag-suggest-item.is-focused{ background:#f4f5f7; }
.ag-suggest-logo{
  flex:0 0 38px; width:38px; height:38px; border-radius:9px; border:1px solid #eef0f3; background:#fff; overflow:hidden;
  display:grid; place-items:center; font-size:12px; font-weight:800; color:var(--orange);
}
.ag-suggest-logo img{ width:100%; height:100%; object-fit:contain; }
.ag-suggest-logo.is-round{ border-radius:50%; }
.ag-suggest-logo.is-round img{ object-fit:cover; }
.ag-suggest-city{ flex:0 0 38px; width:38px; height:38px; border-radius:9px; background:#fff4ee; color:var(--orange); display:grid; place-items:center; }
.ag-suggest-item strong{ display:block; font-size:14.5px; font-weight:650; }
.ag-suggest-item small{ display:block; margin-top:1px; font-size:12.5px; color:#667085; }
.ag-suggest-item mark{ background:none; color:var(--orange); font-weight:800; }
.ag-suggest-all:hover, .ag-suggest-all.is-focused{ background:#f5f9ff; }
.ag-suggest-all{ display:flex; align-items:center; gap:8px; margin-top:4px; padding:10px; border-top:1px solid #f0f2f5; font-size:13.5px; font-weight:600; color:#1554b8; }
.ag-suggest-empty{ padding:14px 10px; font-size:13.5px; color:#98a2b3; text-align:center; }

/* ---- custom dropdown (city + sort) ---- */
.ag-dd{ position:relative; flex:0 0 auto; }
.ag-dd-trigger{
  display:flex; align-items:center; gap:10px; height:56px; min-width:220px; padding:0 40px 0 16px; border:1px solid var(--line);
  border-radius:10px; background:#fff; color:#344054; font:inherit; text-align:left; cursor:pointer; transition:border-color .15s, box-shadow .15s;
}
.ag-dd-trigger:hover{ border-color:#c9d0db; }
.ag-dd-text{ display:flex; flex-direction:column; min-width:0; line-height:1.2; }
.ag-dd-label{ font-size:11.5px; font-weight:600; color:#98a2b3; }
.ag-dd-value{ font-size:15px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:150px; }
.ag-dd-chev{ position:absolute; right:14px; color:#8a95a6; transition:transform .18s; }
.ag-dd.is-open .ag-dd-trigger{ border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,90,31,.1); }
.ag-dd.is-open .ag-dd-chev{ transform:rotate(180deg); }
.ag-dd.has-value .ag-dd-trigger{ background:#fff9f6; border-color:#f3d6c8; }
.ag-dd.has-value .ag-dd-trigger > svg:first-child{ color:var(--orange); }
.ag-dd.has-value .ag-dd-chev{ display:none; }
.ag-dd-clear{ position:absolute; right:10px; top:50%; transform:translateY(-50%); display:inline-flex; padding:5px; border-radius:6px; color:var(--orange); }
.ag-dd-clear:hover{ background:#ffe9df; }
.ag-dd-panel{
  display:none; position:absolute; left:0; top:calc(100% + 8px); z-index:40; min-width:100%; width:max-content; max-width:320px; padding:8px;
  background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 40px rgba(16,24,39,.14);
}
.ag-dd.is-open .ag-dd-panel{ display:block; }
.ag-dd-search{ padding:2px 2px 8px; }
.ag-dd-search input{ width:100%; height:40px; padding:0 12px; border:1px solid var(--line); border-radius:9px; font:inherit; font-size:14px; }
.ag-dd-search input:focus{ outline:0; border-color:var(--orange); }
.ag-dd-list{ list-style:none; margin:0; padding:0; max-height:300px; overflow-y:auto; }
.ag-dd-list li{
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-radius:8px;
  font-size:14.5px; font-weight:600; color:#344054; cursor:pointer; white-space:nowrap;
}
.ag-dd-list li:hover, .ag-dd-list li.is-focused{ background:#f4f5f7; }
.ag-dd-list li.is-selected{ color:var(--orange); background:#fff3ec; }
.ag-dd-list li.is-selected::after{ content:''; width:7px; height:7px; border-radius:50%; background:var(--orange); }
.ag-dd-list li[hidden]{ display:none; }
.ag-dd-list li.ag-dd-group{ font-weight:800; color:var(--ink); }
.ag-dd-list li.ag-dd-leaf{ padding-left:26px; font-weight:500; }
.ag-dd--category .ag-dd-panel{ min-width:280px; }
.ag-dd-list li.ag-dd-empty{ cursor:default; color:#98a2b3; font-weight:500; background:none; }

.ag-dd--sort .ag-dd-trigger{ height:44px; min-width:0; padding:0 38px 0 14px; gap:8px; }
.ag-dd--sort .ag-dd-value{ font-size:14.5px; max-width:none; }
.ag-dd--sort .ag-dd-panel{ left:auto; right:0; }

/* ---- chips / toolbar ---- */
.ag-toolbar{ position:relative; z-index:11; display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0 20px; flex-wrap:wrap; }
.ag-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.ag-chip{
  display:inline-flex; align-items:center; height:42px; padding:0 20px; border-radius:999px;
  border:1px solid var(--line); background:#fff; font-size:14.5px; font-weight:600; color:#344054; transition:border-color .15s, color .15s;
}
.ag-chip:hover{ border-color:#ffc4ad; color:var(--orange); }
.ag-chip.is-active{ background:#0b1b33; border-color:#0b1b33; color:#fff; }
.ag-toolbar-right{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-left:auto; }
.ag-count{ font-size:14.5px; color:#667085; white-space:nowrap; }
.ag-mapview-btn{
  display:inline-flex; align-items:center; gap:8px; height:44px; padding:0 18px; border-radius:10px;
  border:1px solid var(--ink); background:#fff; font-size:14.5px; font-weight:700; color:var(--ink); transition:background .15s, color .15s;
}
.ag-mapview-btn:hover{ background:var(--ink); color:#fff; }

/* ---- shared bits (empty state, map view) ---- */
.ag-list{ display:flex; flex-direction:column; gap:20px; }
.ag-stars{
  --rating:0; font-size:19px; letter-spacing:2px; line-height:1;
  background:linear-gradient(90deg, var(--orange) calc(var(--rating) / 5 * 100%), #ffd3c2 calc(var(--rating) / 5 * 100%));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.ag-muted{ color:#98a2b3; }
.ag-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; height:52px; padding:0 18px;
  border-radius:10px; font-size:15.5px; font-weight:700; white-space:nowrap; transition:background .15s, border-color .15s, color .15s;
}
.ag-btn--outline{ background:#fff; color:var(--ink); border:1px solid #d0d5dd; }
.ag-btn--outline:hover{ border-color:var(--ink); }

.ag-empty{ text-align:center; padding:64px 20px; background:#fff; border:1px solid var(--line); border-radius:14px; color:#667085; }
.ag-empty svg{ color:#98a2b3; }
.ag-empty h3{ margin:12px 0 6px; color:var(--ink); }
.ag-empty .ag-btn{ margin-top:14px; height:44px; }
.ag-pagination{ margin-top:30px; }
.ag-pagination .rb-pagination{ display:flex; justify-content:center; align-items:center; gap:7px; }
.ag-pagination .rb-pagination a, .ag-pagination .rb-pagination button{ width:40px; height:40px; border:1px solid var(--line); background:#fff; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; font-weight:700; color:var(--ink); }
.ag-pagination .rb-pagination .active{ background:var(--orange); border-color:var(--orange); color:#fff; }
.ag-pagination .rb-pagination button[disabled]{ opacity:.4; cursor:default; }

@media (max-width:1024px){
  .ag-toolbar-right{ width:100%; justify-content:space-between; }
}
@media (max-width:720px){
  body:not(.has-hero) main.ag-page{ padding-top:14px; }
  .ag-search{ flex-wrap:wrap; gap:8px; }
  .ag-dd--city{ flex:1 1 100%; }
  .ag-dd--city .ag-dd-trigger{ width:100%; height:52px; }
  .ag-dd--city .ag-dd-value{ max-width:none; }
  .ag-dd--city .ag-dd-panel{ width:100%; max-width:none; }
  .ag-search-q{ height:52px; }
  .ag-search-btn{ flex:0 0 56px; height:52px; }
  .ag-chips{ flex-wrap:nowrap; overflow-x:auto; margin:0 -16px; padding:0 16px; scrollbar-width:none; flex:0 0 calc(100% + 32px); min-width:0; }
  .ag-chip{ flex:0 0 auto; }
  .ag-toolbar-right{ width:100%; }
  .ag-count{ margin-right:auto; }
  .ag-dd--sort .ag-dd-trigger > svg:first-child{ display:none; }
  .ag-toolbar-right{ flex-wrap:nowrap; gap:8px; }
  .ag-mapview-btn{ padding:0 10px; gap:6px; white-space:nowrap; }
  .ag-count{ font-size:13.5px; }
}

/* ==========================================================================
   Agency card v2, compact row (partials/_card.blade.php) — ~300px tall so
   about three cards fit in a desktop viewport.
   ========================================================================== */
.ag-list{ gap:12px; }
.ag-scope{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:-6px 0 16px; padding:12px 16px; border-radius:12px;
  background:#fff4ee; border:1px solid #ffe0d2; font-size:14.5px; color:#475467;
}
.ag-scope strong{ color:var(--ink); }
.ag-scope a{ display:inline-flex; align-items:center; gap:5px; margin-left:auto; font-weight:600; color:var(--agc-accent); }
.agc{
  --agc-accent:#ff5a1f; --agc-accent-hover:#ee4f18; --agc-accent-soft:#fff1ea; --agc-muted:#667085;
  display:grid; grid-template-columns:120px minmax(0,1fr) 450px 214px; gap:24px; align-items:start;
  padding:20px 22px; background:#fff; border:1px solid #e8ebf0; border-radius:18px;
  box-shadow:0 2px 10px rgba(16,24,40,.04); transition:box-shadow .2s, border-color .2s;
}
.agc{ position:relative; overflow:visible; }
.agc::before{ content:""; position:absolute; left:-1px; top:18px; bottom:18px; width:4px; border-radius:0 4px 4px 0; background:var(--agc-accent); }
/* each directory gets its own accent so agency / agent / notary cards never read as the same thing */
.agc--agent{ --agc-accent:#1570ef; --agc-accent-hover:#175cd3; --agc-accent-soft:#eaf2ff; }
.agc--notary{ --agc-accent:#4338a8; --agc-accent-hover:#372d8f; --agc-accent-soft:#efedfb; }
.agc--service{ --agc-accent:#0e8f7e; --agc-accent-hover:#0b7668; --agc-accent-soft:#e6f6f3; }
.agc-type-tag{
  position:absolute; left:50%; bottom:-11px; transform:translateX(-50%); padding:3px 10px; border-radius:999px;
  background:var(--agc-accent); color:#fff; border:2px solid #fff; font-size:10.5px; font-weight:800; letter-spacing:.07em;
  text-transform:uppercase; white-space:nowrap; line-height:1.3;
}
.agc--agent .agc-logo{ border-radius:50%; border-color:#dbe7fb; }
.agc--agent .agc-logo--photo img{ border-radius:50%; }
.agc--agent .agc-logo-check{ top:2px; right:2px; }
.agc--agent .agc-rating-bar span{ background:linear-gradient(90deg,#2aa84a,#6fcf2f); }
.agc--notary .agc-name{ font-family:Georgia,'Times New Roman',serif; font-weight:700; letter-spacing:0; }
.agc--notary .agc-logo{ border-color:#e3e0f5; }
.agc:hover{ box-shadow:0 12px 32px rgba(16,24,40,.08); border-color:#dde2ea; }
.agc.is-featured{ border-color:#ffd9c7; }

.agc-logo{
  position:relative; width:120px; height:120px; display:flex; align-items:center; justify-content:center; padding:10px;
  background:#fff; border:1px solid #e8ebf0; border-radius:12px;
}
.agc-logo img{ width:100%; height:100%; object-fit:contain; }
.agc-logo > span:not(.agc-type-tag){ font-size:34px; font-weight:800; color:var(--agc-accent); }
.agc-logo-check{
  position:absolute; top:-7px; right:-7px; width:24px; height:24px; border-radius:50%; background:#1570ef;
  border:2px solid #fff; display:grid; place-items:center;
}

.agc-logo--photo{ padding:0; overflow:visible; }
.agc-logo--photo img{ border-radius:11px; object-fit:cover; }

/* agency the agent works for (agents directory) */
.agc-org{
  display:inline-flex; align-items:center; gap:8px; max-width:100%; margin-top:8px; padding:3px 10px 3px 3px; border-radius:8px;
  background:#f5f6f8; font-size:13.5px; font-weight:600; color:#344054; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
a.agc-org:hover{ color:var(--agc-accent); background:#fff4ee; }
.agc-org-logo{
  flex:0 0 24px; width:24px; height:24px; border-radius:6px; background:#fff; border:1px solid #eef0f3; overflow:hidden;
  display:grid; place-items:center; font-size:11px; font-weight:800; color:var(--agc-accent);
}
.agc-org-logo img{ width:100%; height:100%; object-fit:contain; }
.agc-org--none{ padding-left:10px; color:#667085; }
.agc-org--none svg{ color:#98a2b3; }

.agc-info{ min-width:0; }
.agc-title{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; min-width:0; }
.agc-name{ margin:0; min-width:0; font-size:22px; line-height:1.25; font-weight:800; letter-spacing:-.015em; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agc-name a{ color:inherit; }
.agc-name a:hover{ color:var(--agc-accent); }
.agc-verified{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:5px; padding:2px 8px 2px 3px; border-radius:999px;
  background:var(--agc-accent-soft); color:#1d2939; font-size:11.5px; font-weight:600; white-space:nowrap;
}
.agc-verified i{ width:15px; height:15px; border-radius:50%; background:var(--agc-accent); display:grid; place-items:center; }
.agc-sub{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 0; margin:6px 0 0; font-size:14.5px; color:#475467; }
.agc-sub-sep::before{ content:""; display:inline-block; width:4px; height:4px; margin:0 10px 3px; border-radius:50%; background:#c4cad4; }
.agc-sub span{ display:inline-flex; align-items:center; gap:6px; }
.agc-sub svg{ color:var(--agc-accent); }

.agc-rating{ display:flex; align-items:center; gap:12px; margin-top:14px; font-size:14px; color:#475467; }
.agc-rating-score{ font-size:13px; font-weight:600; color:#98a2b3; white-space:nowrap; }
.agc-rating-score strong{ font-size:20px; font-weight:800; color:var(--ink); }
.agc-rating-bar{ flex:0 0 120px; height:7px; border-radius:99px; background:#e4e9f0; overflow:hidden; }
.agc-rating-bar span{ display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#2aa84a,#6fcf2f); }
.agc-rating-label{ font-weight:600; white-space:nowrap; }
.agc-rating.is-empty .agc-rating-score strong{ color:#98a2b3; }

.agc-stats{ list-style:none; display:flex; margin:16px 0 0; padding:0; }
.agc-stats li{ display:flex; flex-direction:column; gap:2px; padding:0 20px; border-left:1px solid #edf0f4; }
.agc-stats li:first-child{ padding-left:0; border-left:0; }

.agc-stats b{ font-size:19px; line-height:1.2; font-weight:800; color:var(--ink); }
.agc-stats span{ font-size:12.5px; color:#667085; white-space:nowrap; }

.agc-specs{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 0; padding:0; max-height:32px; overflow:hidden; }
.agc-specs a{
  display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px; border-radius:9px; background:#f5f6f8;
  font-size:13.5px; font-weight:600; color:#344054; border:1px solid transparent; transition:border-color .15s, background .15s;
}
.agc-chip{
  display:inline-flex; align-items:center; gap:7px; height:32px; padding:0 12px; border-radius:9px; background:#f5f6f8;
  font-size:13.5px; font-weight:600; color:#344054; white-space:nowrap;
}
.agc-chip svg{ color:var(--agc-accent); }
.agc-chip--more{ color:#667085; cursor:help; }
.agc-specs a:hover{ border-color:var(--agc-accent); background:#fff; }
.agc-specs svg{ color:var(--agc-accent); }
.agc-specs b{ color:var(--agc-muted); font-weight:600; }

.agc-props{ min-width:0; }
.agc-props-head{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:9px; font-size:14.5px; font-weight:700; color:var(--ink); }
.agc-props-head a{ display:inline-flex; align-items:center; gap:4px; font-size:13.5px; font-weight:600; color:#1554b8; white-space:nowrap; }
.agc-props-head a:hover{ color:var(--agc-accent); }
.agc-props-list{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.agc-props-empty{ margin:0; display:grid; place-items:center; height:200px; border-radius:10px; background:#f8f9fb; color:#98a2b3; font-size:13px; }
.agc-prop{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.agc-prop-media{ position:relative; display:block; height:150px; margin-bottom:4px; border-radius:10px; overflow:hidden; background:#eceef1; }
.agc-prop-media img{ width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.agc-prop:hover .agc-prop-media img{ transform:scale(1.05); }
.agc-prop-badge{ position:absolute; top:6px; left:6px; width:20px; height:20px; border-radius:6px; background:#ff5a1f; display:grid; place-items:center; }
.agc-prop-badge svg{ fill:#fff; stroke:#fff; }
.agc-prop-price{
  position:absolute; left:6px; bottom:6px; max-width:calc(100% - 12px); padding:2px 7px; border-radius:6px;
  background:rgba(16,24,39,.74); color:#fff; font-size:14px; font-weight:750; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.agc-prop-title{ font-size:13.5px; font-weight:600; color:#344054; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.agc-prop:hover .agc-prop-title{ color:var(--agc-accent); }
.agc-prop-city{ font-size:12.5px; color:var(--agc-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* notary office block (middle column) */
.agc-office-body{ display:flex; gap:14px; }
.agc-office-photo{ flex:0 0 170px; height:132px; border-radius:10px; overflow:hidden; background:#eceef1; }
.agc-office-photo img{ width:100%; height:100%; object-fit:cover; }
.agc-office-facts{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; min-width:0; font-size:13.5px; color:#344054; }
.agc-office-facts li{ display:flex; align-items:flex-start; gap:8px; line-height:1.4; }
.agc-office-facts svg{ color:var(--agc-accent); margin-top:1px; }
.agc-langs{ display:flex; flex-wrap:wrap; gap:5px; }
.agc-langs b{ padding:1px 7px; border-radius:6px; background:#f2f4f7; font-size:12px; font-weight:700; color:#344054; cursor:help; }
.agc-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.agc-badge{ display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 10px; border-radius:8px; background:#f1f9f1; color:#1f8a2d; font-size:12.5px; font-weight:600; }
.agc-badge--blue{ background:#f0f6ff; color:#1554b8; }
.agc-badge--red{ background:#fff1f0; color:#c4320a; }
.agc-info .agc-badges{ margin-top:14px; }

/* service company offers (middle column) */
.agc-offer-cat{
  position:absolute; top:6px; left:6px; max-width:calc(100% - 12px); padding:2px 7px; border-radius:6px; background:rgba(255,255,255,.92);
  color:var(--agc-accent); font-size:11px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.agc-prop-price small{ font-size:11px; font-weight:600; opacity:.85; }
.agc-offer-tags{ display:flex; flex-wrap:wrap; gap:4px 12px; margin:10px 0 0; font-size:12.5px; }
.agc-offer-tags a{ color:#667085; font-weight:600; }
.agc-offer-tags a::before{ content:"#"; color:var(--agc-accent); margin-right:1px; }
.agc-offer-tags a:hover{ color:var(--agc-accent); }

/* "list your company" banner (service directory) */
.svj{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:40px; align-items:center; margin-top:28px; padding:36px 40px;
  border-radius:20px; background:linear-gradient(135deg,#0b3b36 0%,#0e8f7e 100%); color:#fff; overflow:hidden;
}
.svj-eyebrow{ display:inline-block; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.14); font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.svj h2{ margin:14px 0 10px; font-size:30px; line-height:1.2; font-weight:800; letter-spacing:-.02em; color:#fff; }
.svj-copy p{ margin:0; font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.82); }
.svj-ctas{ display:flex; flex-wrap:wrap; gap:12px; margin-top:22px; }
.svj-btn{
  display:inline-flex; align-items:center; gap:8px; height:48px; padding:0 20px; border-radius:11px; background:#fff; color:#0b3b36;
  font-size:15px; font-weight:750; white-space:nowrap; transition:transform .15s, box-shadow .15s;
}
.svj-btn:hover{ transform:translateY(-1px); box-shadow:0 8px 20px rgba(0,0,0,.18); }
.svj-btn--ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.45); }
.svj-steps{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.svj-steps li{ display:flex; gap:14px; align-items:flex-start; padding:16px 18px; border-radius:14px; background:rgba(255,255,255,.1); }
.svj-steps b{ flex:0 0 32px; height:32px; border-radius:50%; background:#fff; color:#0e8f7e; display:grid; place-items:center; font-size:15px; }
.svj-steps strong{ display:block; font-size:15.5px; }
.svj-steps span{ display:block; margin-top:2px; font-size:13.5px; color:rgba(255,255,255,.75); }
.svj--compact{
  display:flex; align-items:center; gap:16px; margin:0; padding:16px 20px; border-radius:16px; grid-template-columns:none;
  background:#e6f6f3; color:#0b3b36; border:1px solid #bfe8e0;
}
.svj--compact p{ flex:1; margin:0; font-size:14.5px; color:#315c56; }
.svj--compact p strong{ color:#0b3b36; }
.svj-ic{ flex:0 0 44px; height:44px; border-radius:12px; background:#0e8f7e; color:#fff; display:grid; place-items:center; }
.svj--compact .svj-btn{ height:42px; background:#0e8f7e; color:#fff; }
@media (max-width:900px){
  .svj{ grid-template-columns:minmax(0,1fr); gap:24px; padding:26px 20px; }
  .svj h2{ font-size:24px; }
  .svj--compact{ flex-wrap:wrap; }
  .svj--compact .svj-btn{ width:100%; justify-content:center; }
}

.agc-side{ display:flex; flex-direction:column; gap:9px; }
.agc-actions{ display:flex; align-items:center; gap:8px; }
.agc-icon-btn{
  width:44px; height:44px; flex:0 0 44px; border:1px solid #e4e7ec; border-radius:10px; background:#fff; color:var(--ink);
  display:flex; align-items:center; justify-content:center; transition:border-color .15s, color .15s;
}
.agc-icon-btn:hover{ border-color:#ffc4ad; color:var(--agc-accent); }
.agc-icon-btn.is-active{ color:var(--agc-accent); border-color:#ffc4ad; background:#fff6f2; }
.agc-icon-btn.is-active svg{ fill:var(--agc-accent); }
.agc-icon-btn--wa{ color:#1f8a2d; }
.agc-icon-btn--wa:hover{ color:#1f8a2d; border-color:#b7e4c0; background:#f1f9f1; }
.agc-icon-btn.is-done{ color:#1f8a2d; border-color:#b7e4c0; }
.agc-team{ margin-left:auto; display:flex; align-items:center; }
.agc-team img, .agc-team span{
  width:30px; height:30px; margin-left:-8px; border-radius:50%; border:2px solid #fff; object-fit:cover; background:#f2f4f7;
  box-shadow:0 1px 3px rgba(16,24,40,.12);
}
.agc-team img:first-child{ margin-left:0; }
.agc-team span{ display:grid; place-items:center; font-size:11px; font-weight:700; color:#475467; }
.agc-btn{
  display:flex; align-items:center; justify-content:center; gap:8px; height:44px; padding:0 14px; border-radius:10px;
  font-size:14.5px; font-weight:700; white-space:nowrap; border:1px solid transparent; transition:background .15s, border-color .15s, color .15s;
}
.agc-btn--primary{ background:var(--agc-accent); color:#fff; }
.agc-btn--primary:hover{ background:var(--agc-accent-hover); }
.agc-btn--ghost{ background:#fff; color:var(--ink); border-color:#e4e7ec; }
.agc-btn--ghost:hover{ border-color:var(--ink); }
.agc-phone{ display:flex; align-items:center; gap:8px; height:40px; padding:0 10px; border-radius:9px; background:#f1f9f1; color:#1f8a2d; }
.agc-phone-num{ flex:1; min-width:0; font-size:15px; font-weight:800; color:#1f8a2d; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; }
.agc-phone.is-revealed .agc-phone-num{ pointer-events:auto; }
.agc-phone.is-revealed .agc-phone-num:hover{ text-decoration:underline; }
.agc-phone-show{ border:0; background:none; padding:0; font:inherit; font-size:12.5px; font-weight:600; color:#1f8a2d; text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.agc-phone.is-revealed .agc-phone-show{ display:none; }

.agc-toast{
  position:fixed; left:50%; bottom:28px; z-index:1000; transform:translate(-50%,12px); padding:12px 18px; border-radius:10px;
  background:#101827; color:#fff; font-size:14px; font-weight:600; box-shadow:0 12px 30px rgba(16,24,40,.25);
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
}
.agc-toast.is-visible{ opacity:1; transform:translate(-50%,0); }

@media (max-width:1280px){
  .agc{ grid-template-columns:96px minmax(0,1fr) 300px 196px; gap:18px; }
  .agc-logo{ width:96px; height:96px; }
  .agc-props-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .agc-prop:nth-child(n+3){ display:none; }
}
@media (max-width:1024px){
  .agc{ grid-template-columns:84px minmax(0,1fr) 196px; }
  .agc-logo{ width:84px; height:84px; }
  .agc-props{ display:none; }
  .agc-office{ display:block; grid-column:2; }
  .agc--service .agc-props{ display:block; grid-column:2; }
  .agc--service .agc-prop:nth-child(n+3){ display:flex; }
  .agc--service .agc-props-list{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px){
  .agc{ grid-template-columns:60px minmax(0,1fr); gap:12px 14px; padding:14px; }
  .agc-logo{ width:60px; height:60px; padding:6px; border-radius:10px; }
  .agc-logo > span:not(.agc-type-tag){ font-size:19px; }
  .agc-title{ flex-wrap:wrap; gap:4px 8px; }
  .agc-name{ font-size:18px; white-space:normal; }
  .agc-stats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-left:-74px; }
  .agc-stats li{ padding:0 8px; }
  .agc-stats b{ font-size:16px; white-space:nowrap; }
  .agc-side--stack > .agc-btn{ grid-column:1 / -1; }
  .agc-stats span{ font-size:11.5px; white-space:normal; line-height:1.25; }
  .agc-specs, .agc-rating{ margin-left:-74px; }
  .agc-specs{ max-height:none; }
  .agc-sub{ font-size:13px; }
  .agc-rating-bar{ flex-basis:64px; }
  .agc-office{ grid-column:1 / -1; }
  .agc--service .agc-props{ grid-column:1 / -1; }
  .agc--service .agc-props-list{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; margin:0 -14px; padding:0 14px; }
  .agc--service .agc-props-list::-webkit-scrollbar{ display:none; }
  .agc--service .agc-prop{ flex:0 0 62%; scroll-snap-align:start; }
  .agc-info .agc-badges{ margin-left:-74px; }
  .agc-office-photo{ flex-basis:120px; height:110px; }
  .agc-side{ grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
  .agc-actions, .agc-phone, .agc-side .agc-btn--ghost:last-of-type{ grid-column:1 / -1; }
}

/* ==========================================================================
   Agencies Map View — logo pins, sidebar card tweaks, agency preview
   (layout/shell comes from map-app.css, shared with the property map)
   ========================================================================== */
.ag-pin{
  display:flex; flex-direction:column; align-items:center; position:relative;
  transform-origin:center bottom; transition:transform .12s ease;
}
/* White logo disc with an orange ring; the tail is in-flow so MapLibre's
   bottom anchor lands exactly on the office location (see .rb-pin notes). */
.ag-pin-logo{
  width:48px; height:48px; border-radius:50%; overflow:hidden; background:#fff;
  border:3px solid var(--orange); box-shadow:0 6px 16px rgba(16,24,39,.25);
  display:grid; place-items:center; transition:border-color .12s, box-shadow .12s;
}
.ag-pin-logo img{ width:100%; height:100%; object-fit:contain; background:#fff; }
.ag-pin-logo span{ font-size:14px; font-weight:800; color:var(--orange); }
.ag-pin-tail{
  width:12px; height:9px; margin-top:-1px; background:var(--orange);
  clip-path:polygon(0 0,100% 0,50% 100%); transition:background .12s;
}
.ag-pin:hover, .ag-pin.is-hovered{ transform:scale(1.1); z-index:5; }
.ag-pin:hover .ag-pin-logo, .ag-pin.is-hovered .ag-pin-logo{ box-shadow:0 10px 24px rgba(255,90,31,.4); }
.ag-pin.is-featured .ag-pin-logo{ width:54px; height:54px; }
.ag-pin.is-selected{ transform:scale(1.18); z-index:10; }
.ag-pin.is-selected .ag-pin-logo{ border-color:#101827; box-shadow:0 0 0 4px rgba(255,255,255,.9), 0 12px 28px rgba(16,24,39,.4); }
.ag-pin.is-selected .ag-pin-tail{ background:#101827; }

.ag-mr-card .mr-card-media{ position:relative; }
.ag-mr-logo{
  position:absolute; left:6px; bottom:6px; width:34px; height:34px; border-radius:8px; overflow:hidden;
  background:#fff; box-shadow:0 2px 8px rgba(16,24,39,.2); display:grid; place-items:center;
}
.ag-mr-logo img{ width:100%; height:100%; object-fit:contain; }
.ag-mr-logo span{ font-size:11px; font-weight:800; color:var(--orange); }
.ag-mr-title{ display:flex; align-items:center; gap:5px; margin-top:0; font-size:14px; }
.ag-mr-title{ overflow:hidden; }
.ag-mr-rating{ display:flex; align-items:center; gap:6px; margin-top:4px; font-size:12px; color:#516070; }
.ag-mr-rating .ag-stars{ font-size:13px; letter-spacing:1px; }
.mr-card-heart.js-agency-save.is-active{ color:var(--orange); }
.mr-card-heart.js-agency-save.is-active svg{ fill:var(--orange); }

.ag-preview .mp-media{ height:160px; }
.ag-preview-featured{
  position:absolute; top:10px; left:10px; padding:5px 11px; border-radius:7px; background:var(--orange);
  color:#fff; font-size:12px; font-weight:700;
}
.ag-preview .mp-counter{ left:auto; right:10px; }
.ag-preview-head{ display:flex; gap:12px; align-items:flex-start; }
.ag-preview-logo{
  flex:0 0 64px; width:64px; height:64px; margin-top:-38px; border-radius:12px; overflow:hidden; background:#fff;
  border:3px solid #fff; box-shadow:0 6px 18px rgba(16,24,39,.18); display:grid; place-items:center; position:relative;
}
.ag-preview-logo img{ width:100%; height:100%; object-fit:contain; }
.ag-preview-logo span{ font-size:18px; font-weight:800; color:var(--orange); }
.ag-preview-titles{ min-width:0; flex:1; }
.ag-preview-titles h3{ margin:0 0 3px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ag-preview-verified{ padding:2px 7px; border-radius:5px; background:#fff1ea; color:var(--orange); font-size:10.5px; font-weight:700; }
.ag-preview-rating{ display:flex; align-items:center; gap:6px; margin-top:4px; font-size:12px; color:#516070; }
.ag-preview-rating .ag-stars{ font-size:14px; letter-spacing:1px; }
.ag-preview-desc{
  margin:10px 0 0; font-size:12.5px; line-height:1.5; color:#667085;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ag-preview-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:4px; margin:12px 0; }
.ag-preview-stats span{ display:flex; flex-direction:column; align-items:center; gap:3px; text-align:center; }
.ag-preview-stats svg{ color:#6b7688; }
.ag-preview-stats b{ font-size:12.5px; font-weight:750; color:var(--ink); white-space:nowrap; }
.ag-preview-stats small{ font-size:10px; font-weight:600; color:#9aa5b5; }
.ag-preview .mp-save.is-active svg{ fill:var(--orange); }
.ag-map-app .mr-expand-btn[hidden]{ display:none; }
.ag-map-app .mr-head{ flex-wrap:nowrap; }
.ag-map-app .mr-head > div:first-child{ min-width:0; }
.ag-map-app .mr-head strong{ white-space:nowrap; }

/* ==========================================================================
   Services landing (/services) — services/index.blade.php
   ========================================================================== */
.svh{ background:#fafbfc; }
body:not(.has-hero) main.svh{ padding:0 0 64px; }
.svh-hero{ padding:40px 0 0; background:linear-gradient(180deg,#eef8f6 0%,#fafbfc 100%); }
.svh-hero-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:48px; align-items:center; }
.svh-eyebrow{ display:inline-block; padding:5px 12px; border-radius:999px; background:#e6f6f3; color:#0b7668; font-size:12.5px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.svh-hero h1{ margin:16px 0 14px; font-size:48px; line-height:1.08; font-weight:800; letter-spacing:-.03em; color:var(--ink); }
.svh-hero h1 span{ color:#0e8f7e; }
.svh-hero-copy > p{ margin:0; max-width:520px; font-size:17px; line-height:1.6; color:#475467; }
.svh-trust{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 22px; margin:22px 0 0; padding:0; font-size:14.5px; font-weight:600; color:#344054; }
.svh-trust li{ display:inline-flex; align-items:center; gap:7px; }
.svh-trust svg{ color:#0e8f7e; }
.svh-hero-media{ position:relative; height:330px; border-radius:22px; overflow:hidden; box-shadow:0 20px 50px rgba(16,24,40,.14); }
.svh-hero-media img{ width:100%; height:100%; object-fit:cover; }
.svh-hero-stat{
  position:absolute; left:18px; bottom:18px; display:grid; grid-template-columns:repeat(3,auto); grid-auto-flow:column; grid-template-rows:auto auto;
  column-gap:26px; padding:14px 20px; border-radius:14px; background:rgba(255,255,255,.95); box-shadow:0 10px 30px rgba(16,24,40,.15);
}
.svh-hero-stat strong{ font-size:24px; font-weight:800; color:var(--ink); line-height:1.1; }
.svh-hero-stat strong small{ font-size:14px; color:#98a2b3; }
.svh-hero-stat span{ font-size:12.5px; color:#667085; }
.svh-search{ position:relative; z-index:12; margin-top:32px; padding-bottom:6px; }
.svh-search .ag-search{ box-shadow:0 14px 40px rgba(16,24,40,.1); }
.svh-popular{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:14px 0 0; font-size:13.5px; }
.svh-popular span{ color:#667085; font-weight:600; }
.svh-popular a{ padding:5px 12px; border-radius:999px; background:#fff; border:1px solid var(--line); font-weight:600; color:#344054; }
.svh-popular a:hover{ border-color:#0e8f7e; color:#0e8f7e; }

.svh-section{ margin-top:56px; }
.svh-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:22px; flex-wrap:wrap; }
.svh-head h2{ margin:0; font-size:30px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.svh-head p{ margin:6px 0 0; font-size:15px; color:#667085; }
.svh-more{ display:inline-flex; align-items:center; gap:6px; font-size:15px; font-weight:700; color:#0e8f7e; white-space:nowrap; }
.svh-more:hover{ color:#0b7668; }

.svh-groups{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.svh-group{ display:flex; flex-direction:column; background:#fff; border:1px solid #e8ebf0; border-radius:18px; overflow:hidden; transition:box-shadow .2s; }
.svh-group:hover{ box-shadow:0 14px 36px rgba(16,24,40,.08); }
.svh-group-media{ position:relative; display:block; height:130px; background:#dfe6ea; }
.svh-group-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.svh-group:hover .svh-group-media img{ transform:scale(1.04); }
.svh-group-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,27,51,0) 30%,rgba(11,27,51,.78) 100%); }
.svh-group-title{ position:absolute; left:18px; right:18px; bottom:14px; z-index:1; color:#fff; }
.svh-group-title strong{ display:block; font-size:19px; font-weight:800; }
.svh-group-title small{ display:block; margin-top:2px; font-size:13px; opacity:.85; }
.svh-group-list{ list-style:none; margin:0; padding:10px 10px 0; flex:1; }
.svh-group-list a{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-radius:9px; font-size:14.5px; font-weight:600; color:#344054; }
.svh-group-list a:hover{ background:#f1faf8; color:#0b7668; }
.svh-group-list a.is-empty{ color:#98a2b3; font-weight:500; }
.svh-group-list b{ min-width:26px; padding:1px 8px; border-radius:999px; background:#e6f6f3; color:#0b7668; font-size:12px; text-align:center; }
.svh-group-list a.is-empty b{ background:#f2f4f7; color:#98a2b3; }
.svh-group-all{ display:flex; align-items:center; gap:6px; margin:6px 10px 12px; padding:9px 10px; font-size:14px; font-weight:700; color:#0e8f7e; }

.svh-popular-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.svh-tile{ display:flex; flex-direction:column; background:#fff; border:1px solid #e8ebf0; border-radius:16px; overflow:hidden; transition:box-shadow .2s, transform .2s; }
.svh-tile:hover{ box-shadow:0 14px 32px rgba(16,24,40,.1); transform:translateY(-2px); }
.svh-tile-media{ position:relative; display:block; height:150px; background:#eceef1; }
.svh-tile-media img{ width:100%; height:100%; object-fit:cover; }
.svh-tile-price{ position:absolute; left:10px; bottom:10px; padding:4px 10px; border-radius:8px; background:rgba(16,24,39,.76); color:#fff; font-size:14px; font-weight:750; }
.svh-tile-body{ display:flex; flex-direction:column; padding:14px 16px 16px; }
.svh-tile-body strong{ font-size:16px; font-weight:750; color:var(--ink); }
.svh-tile-body small{ margin-top:2px; font-size:13px; color:#667085; }
.svh-tile-count{ display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:13.5px; font-weight:700; color:#0e8f7e; }

.svh-steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; counter-reset:none; }
.svh-steps li{ position:relative; padding:22px; background:#fff; border:1px solid #e8ebf0; border-radius:16px; }
.svh-steps li > span{ display:grid; place-items:center; width:46px; height:46px; border-radius:12px; background:#e6f6f3; color:#0e8f7e; }
.svh-steps b{ position:absolute; top:20px; right:22px; font-size:13px; font-weight:800; color:#c9d3dc; }
.svh-steps strong{ display:block; margin-top:14px; font-size:17px; color:var(--ink); }
.svh-steps p{ margin:6px 0 0; font-size:14px; line-height:1.5; color:#667085; }

.svh-reviews{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.svh-review{ margin:0; display:flex; flex-direction:column; gap:12px; padding:22px; background:#fff; border:1px solid #e8ebf0; border-radius:16px; }
.svh-review .ag-stars{ font-size:17px; }
.svh-review blockquote{ flex:1; margin:0; font-size:15px; line-height:1.6; color:#344054; }
.svh-review figcaption{ display:flex; align-items:center; gap:10px; }
.svh-review figcaption img{ width:38px; height:38px; border-radius:50%; object-fit:cover; background:#eef1f5; }
.svh-review figcaption strong{ display:block; font-size:14.5px; color:var(--ink); }
.svh-review figcaption small{ display:block; font-size:13px; color:#667085; }
.svh-review figcaption a{ color:#0e8f7e; font-weight:600; }
.svh-section--last .svj{ margin-top:0; }

@media (max-width:1100px){
  .svh-groups{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .svh-popular-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .svh-steps{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px){
  .svh-hero-grid{ grid-template-columns:minmax(0,1fr); gap:24px; }
  .svh-hero h1{ font-size:34px; }
  .svh-hero-media{ height:220px; }
  .svh-search{ margin-top:18px; }
  .svh-reviews{ grid-template-columns:minmax(0,1fr); }
  .svh-popular-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .svh-tile-media{ height:120px; }
}
@media (max-width:560px){
  .svh-hero{ padding-top:22px; }
  .svh-hero h1{ font-size:29px; }
  .svh-hero-copy > p{ font-size:15.5px; }
  .svh-hero-stat{ left:12px; bottom:12px; column-gap:18px; padding:10px 14px; }
  .svh-hero-stat strong{ font-size:19px; }
  .svh-groups, .svh-steps{ grid-template-columns:minmax(0,1fr); }
  .svh-section{ margin-top:40px; }
  .svh-head h2{ font-size:24px; }
}
