/*
Theme Name: ListingHive Child — MoverGrid
Template: listinghive
Version: 1.1
Description: MoverGrid directory child theme (light-mode brand). UI overrides live here (update-safe).
*/

/* "Added on <date>" — no SEO value for a directory; hide everywhere */
.hp-listing__created-date{ display:none!important; }

/* ============ MoverGrid brand tokens (light mode) ============ */
:root{
  --mg-navy:#163C88; --mg-blue:#286EF8; --mg-blue-dk:#1b4fc4; --mg-orange:#FF9D28;
  --mg-bg:#F5F8FF; --mg-card:#ffffff; --mg-text:#1f2a44; --mg-muted:#6b7280;
  --mg-line:#e6ecfb; --mg-shadow:0 6px 24px rgba(22,60,136,.07);
}

/* ============ base ============ */
/* overflow-x:clip (not hidden) prevents horizontal scroll WITHOUT creating a scroll
   container — which is what was breaking the sticky header (.mg-uh position:sticky). */
body{ background:var(--mg-bg); color:var(--mg-text); font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; overflow-x:clip; }
h1,h2,h3,h4,h5,h6,.hp-listing__title,.site-title{ font-family:'Poppins',sans-serif; color:var(--mg-navy); }
a{ color:var(--mg-blue); }
a:hover{ color:var(--mg-navy); }

/* ============ buttons ============ */
.hp-button,.button,button[type="submit"],input[type="submit"],.hp-form__button .button,.hp-form button{
  background-color:var(--mg-blue)!important; border-color:var(--mg-blue)!important;
  color:#fff!important; border-radius:10px!important; font-weight:600; font-family:'Poppins',sans-serif;
}
.hp-button:hover,.button:hover,button[type="submit"]:hover,input[type="submit"]:hover{
  background-color:var(--mg-navy)!important; border-color:var(--mg-navy)!important; color:#fff!important;
}
.hp-button--secondary,.button.alt{ background:#fff!important; color:var(--mg-blue)!important; border:1px solid var(--mg-blue)!important; }
/* The blue fill above is for CTAs only. Utility controls inside forms — the TinyMCE /
   quicktags rich-text toolbar and the intl-tel-input phone country selector — are also
   <button>s, so they were getting blue bg with dark icons (black-on-blue). Neutralize them. */
.hp-form .mce-btn,.hp-form .mce-btn button,.hp-form .mce-toolbar .mce-btn,
.hp-form .quicktags-toolbar .button,.hp-form .ed_button,
.hp-form .iti__selected-flag,.hp-form .iti .iti__flag-container,.hp-form .iti button,
.hp-form .iti__selected-flag button{
  background:transparent!important; background-color:transparent!important;
  border:none!important; box-shadow:none!important; color:#374151!important;
  border-radius:4px!important; font-weight:400!important;
}
.hp-form .mce-ico,.hp-form .mce-btn i,.hp-form .iti__arrow{ color:#374151!important; }
.hp-form .mce-btn:hover,.hp-form .quicktags-toolbar .button:hover,
.hp-form .iti__selected-flag:hover{ background:rgba(15,23,42,.06)!important; }
/* Page-load screen (.site-loader): black backdrop + blue spinner (was white bg + amber #ffc107
   gradient). The spinner stroke is a gradient, so recolor its stops. */
.site-loader{ background-color:#0d1117!important; }
.site-loader svg stop{ stop-color:#286EF8!important; }

/* USA-only phone fields: keep the US flag, drop the (pointless single-country) dropdown. */
.hp-form .iti__arrow{ display:none!important; }
.hp-form .iti__selected-flag{ pointer-events:none!important; cursor:default!important; }
.hp-form .iti__country-list{ display:none!important; }

/* Claim-form consent checkboxes = fine print; the trial <strong> phrase stays dark/bold. */
.hp-form--listing-claim-submit .hp-form__field--checkbox label > span{ font-size:.78rem; line-height:1.45; color:#6b7280; }
.hp-form--listing-claim-submit .hp-form__field--checkbox strong{ color:#1f2a44; font-weight:700; }

/* ============ header (MoverGrid dark charcoal) ============ */
.site-header,header.site-header,.ht-header,.header,.site-header__inner{
  background:#21252a!important; box-shadow:0 1px 0 rgba(0,0,0,.15);
}
/* white nav text on the dark header (but keep the blue Add Listing button) */
.site-header a:not(.button):not(.hp-button),
.site-header nav a,.site-header .hp-menu a,.site-header .hp-menu__item{
  color:#fff!important;
}
/* hover: soft light (not blue) */
.site-header a:not(.button):not(.hp-button):hover,.site-header .hp-menu a:hover,.header-navbar a:hover{ color:#cbd5e1!important; }
.site-header .hp-icon{ color:#fff!important; }
/* active page menu tab -> MoverGrid blue (was ListingHive yellow #ffc107) */
.header-navbar .current-menu-item>a,.header-navbar .current-menu-item,
.header-navbar .current_page_item>a,.site-header .current-menu-item>a{ color:#286EF8!important; }
/* Dropdown panels in the header are WHITE — the header's white nav text would be invisible,
   so force dark text inside any nested dropdown / sub-menu (fixes white-on-white).
   NOTE specificity: the white rule `.site-header .hp-menu a` is (0,2,1); these selectors
   use 3 classes (.site-header + .sub-menu + .hp-menu) so they win. Covers the nav sub-menus
   AND the logged-in user-account dropdown (ul.sub-menu.hp-menu.hp-menu--user-account). */
.site-header .sub-menu.hp-menu a,
.site-header .sub-menu.hp-menu .hp-menu__item,
.site-header .sub-menu.hp-menu .hp-link,
.site-header .sub-menu.hp-menu .hp-icon,
.header-navbar ul ul a,.header-navbar ul ul .hp-menu__item,.header-navbar ul ul .hp-link,
.header-navbar ul ul .hp-icon{ color:var(--mg-navy)!important; }
.site-header .sub-menu.hp-menu a:hover,
.site-header .sub-menu.hp-menu .hp-menu__item:hover,
.header-navbar ul ul a:hover{ color:var(--mg-blue)!important; }
/* user-account dropdown: padding, rounded panel, and FA5 icons (cog / sign-out) */
.site-header .sub-menu.hp-menu{
  padding:8px 0!important; min-width:184px; border-radius:12px;
  box-shadow:0 14px 36px rgba(15,23,42,.16); border:1px solid var(--mg-line);
}
.site-header .sub-menu.hp-menu .hp-menu__item>a,
.site-header .sub-menu.hp-menu>li>a{
  display:flex!important; align-items:center; padding:10px 18px!important; line-height:1.3;
}
.site-header .sub-menu.hp-menu .hp-menu__item>a:hover{ background:var(--mg-bg); }
.site-header .sub-menu.hp-menu .hp-menu__item>a::before{
  font-family:"Font Awesome 5 Free"; font-weight:900; margin-right:11px;
  width:16px; display:inline-block; text-align:center; color:var(--mg-blue); font-size:.95em;
}
.site-header .sub-menu.hp-menu .hp-menu__item--user-edit-settings>a::before{ content:"\f013"; }  /* cog */
.site-header .sub-menu.hp-menu .hp-menu__item--user-logout>a::before{ content:"\f2f5"; }          /* sign-out-alt */
.header-navbar .current-menu-item>a::after,.header-navbar .current-menu-item>a::before,
.header-navbar .current-menu-item::after,.header-navbar .current-menu-item::before,
.header-navbar .menu-item--active>a::after{ background-color:#286EF8!important; border-color:#286EF8!important; }

/* ============ listing cards ============ */
.hp-listing--view-block{
  background:var(--mg-card); border:1px solid var(--mg-line); border-radius:16px;
  box-shadow:var(--mg-shadow); overflow:hidden; transition:box-shadow .2s, transform .2s;
}
.hp-listing--view-block:hover{ box-shadow:0 10px 30px rgba(22,60,136,.14); transform:translateY(-2px); }
.hp-listing__title,.hp-listing__title a{ color:var(--mg-navy); }
.hp-listing__attribute--phone{ color:var(--mg-blue); font-weight:600; }
.hp-icon{ color:var(--mg-blue); }

/* ============ simplified filter: Location (master) + category chips + "More filters" tray ====
   Reflowed from the HivePress search form in functions.php — moving is geographic, so Location
   leads; type = chips; the rest hides in one tray (progressive disclosure). */
.hp-form--listing-search .hp-form__fields{ display:block; }
.mg-filt{ display:flex; flex-direction:column; gap:14px; }
/* main row: Location grows, Search button fixed */
.mg-filt__main{ display:flex; gap:10px; align-items:stretch; }
.mg-filt__main .hp-form__field--location{ flex:1 1 auto; min-width:0; margin:0; }
.mg-filt__main .hp-form__field--location input{ height:52px; font-size:1.05rem; }
.mg-filt__main .hp-form__button{ flex:0 0 auto; height:52px; padding:0 28px; white-space:nowrap; margin:0; }
/* chip row */
.mg-filt__chips{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.mg-chip{ display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border-radius:999px;
  border:1px solid var(--mg-line); background:#fff; color:var(--mg-navy); font-family:'Poppins',sans-serif;
  font-weight:600; font-size:.92rem; line-height:1; text-decoration:none; cursor:pointer; transition:all .15s; white-space:nowrap; }
.mg-chip:hover{ border-color:var(--mg-blue); color:var(--mg-blue); }
.mg-chip.is-active{ background:var(--mg-blue); border-color:var(--mg-blue); color:#fff; }
.mg-chip::before,.mg-chip::after{ content:none!important; display:none!important; } /* kill theme's .hp-form a::before square */
/* native mobile "Filter" button is redundant now — our "More filters" tray replaces it */
.hp-button--listing-filter{ display:none!important; }
/* "More filters" toggle */
.mg-filt__more{ margin-left:auto; display:inline-flex; align-items:center; gap:7px; padding:9px 16px;
  border-radius:999px; border:1px dashed var(--mg-line); background:#fff; color:var(--mg-navy);
  font-family:'Poppins',sans-serif; font-weight:600; font-size:.92rem; line-height:1; cursor:pointer; transition:all .15s; }
.mg-filt__more:hover{ border-color:var(--mg-blue); color:var(--mg-blue); }
.mg-filt__n{ background:var(--mg-blue); color:#fff; border-radius:999px; min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center; font-size:.72rem; font-weight:700; }
/* tray (hidden until "More filters") */
.mg-filt__tray{ display:none; border-top:1px solid var(--mg-line); margin-top:2px; padding-top:18px; }
.mg-filt.is-open .mg-filt__tray{ display:block; }
.mg-filt__tray .hp-form__field{ margin:0; }
.mg-filt__tray .hp-form__field--search{ margin-bottom:6px; }
.mg-filt__tray .hp-form__field--checkboxes{ border-top:1px solid var(--mg-line); margin-top:18px; padding-top:24px; padding-bottom:14px; }
.mg-filt__tray .hp-field__label{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); display:block; margin-bottom:14px; }
.mg-filt__tray ul{ list-style:none; margin:0; padding:0; column-count:2; column-gap:28px; }
.mg-filt__tray li{ break-inside:avoid; margin:0 0 9px; }
.mg-filt__apply{ width:100%; height:48px; margin-top:4px; border:0; border-radius:10px; cursor:pointer;
  background:var(--mg-blue); color:#fff; font-family:'Poppins',sans-serif; font-weight:600; font-size:1rem; transition:background .15s; }
.mg-filt__apply:hover{ background:var(--mg-blue-dk); }
@media (max-width:560px){
  .mg-filt__main{ flex-direction:column; }
  .mg-filt__main .hp-form__button{ width:100%; }
  .mg-filt__more{ margin-left:0; }
  .mg-filt__tray ul{ column-count:1; }
}

/* ============ From → To lane filter (replaces .mg-filt; built in functions.php, wired in
   inc/mg-search.php). Moving is a route, so we lead with two location fields + autocomplete. === */
.mg-lane{ display:flex; flex-direction:column; gap:16px; }
.mg-lane__fields{ display:flex; gap:12px; align-items:center; }
.mg-lane__field{ flex:1 1 0; min-width:0; position:relative; height:60px; display:flex; flex-direction:column;
  justify-content:center; background:#fff; border:1px solid var(--mg-line); border-radius:14px; padding:0 16px;
  transition:border-color .15s, box-shadow .15s; }
.mg-lane__field:focus-within{ border-color:var(--mg-blue); box-shadow:0 0 0 3px rgba(40,110,248,.12); }
.mg-lane__field--from{ padding-right:46px; }   /* room for the locate icon */
.mg-lane__lbl{ font-family:'Poppins',sans-serif; font-size:.66rem; font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--mg-muted); line-height:1; margin-bottom:4px; }
/* fully neutralize the global input chrome (border/radius/shadow) so it's a clean borderless line */
.mg-lane .mg-lane__input{ border:0!important; outline:0!important; box-shadow:none!important;
  background:transparent!important; padding:0!important; margin:0!important; height:auto!important;
  border-radius:0!important; font-size:1.06rem; line-height:1.25; color:var(--mg-navy); width:100%; }
.mg-lane .mg-lane__input::placeholder{ color:#9aa6bd; }
/* locate icon button — clean SVG, no blue blob (high specificity to beat .hp-form button) */
.mg-lane__field button.mg-lane__geo{ position:absolute; right:9px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; display:flex; align-items:center; justify-content:center; border:0!important;
  background:transparent!important; box-shadow:none!important; color:var(--mg-muted)!important; cursor:pointer;
  padding:0!important; border-radius:9px; transition:color .15s, background .15s; }
.mg-lane__field button.mg-lane__geo:hover{ color:var(--mg-blue)!important; background:var(--mg-bg)!important; }
.mg-lane__geo svg{ width:19px; height:19px; display:block; }
.mg-lane__geo--busy{ opacity:.45; }
.mg-lane__arrow{ flex:0 0 auto; color:#9aa6bd; font-size:1.05rem; line-height:1; width:32px; height:32px;
  display:flex; align-items:center; justify-content:center; border-radius:50%; background:#fff;
  border:1px solid var(--mg-line); box-shadow:0 1px 2px rgba(15,23,42,.05); }
/* category chips — pill style */
.mg-lane__cats{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:.9rem; }
.mg-lane__cats-lbl{ color:var(--mg-muted); font-weight:600; margin-right:2px; }
.mg-lane__cat{ color:var(--mg-muted); text-decoration:none; background:#fff; border:1px solid var(--mg-line);
  border-radius:999px; padding:6px 14px; line-height:1; font-weight:600; white-space:nowrap;
  transition:color .15s, background .15s, border-color .15s; }
.mg-lane__cat:hover{ color:var(--mg-blue); border-color:var(--mg-blue); }
.mg-lane__cat.is-active{ color:#fff; background:var(--mg-blue); border-color:var(--mg-blue); }
.mg-lane__cat::before,.mg-lane__cat::after{ content:none!important; } /* kill theme's a::before square */
/* autocomplete dropdown */
.mg-ac{ position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:30; background:#fff;
  border:1px solid var(--mg-line); border-radius:12px; box-shadow:0 16px 40px rgba(15,23,42,.18);
  overflow-y:auto; max-height:280px; }
.mg-ac__item{ padding:11px 14px; cursor:pointer; font-size:.98rem; color:var(--mg-navy); }
.mg-ac__item:hover,.mg-ac__item.is-active{ background:var(--mg-bg); color:var(--mg-blue); }
/* feed dims while a search is in flight */
body.mg-searching .hp-listings{ opacity:.55; transition:opacity .15s; pointer-events:none; }
@media (max-width:560px){
  .mg-lane{ gap:12px; }
  .mg-lane__fields{ flex-direction:column; gap:10px; }
  .mg-lane__arrow{ transform:rotate(90deg); margin:-3px 0; }
  .mg-lane__cats{ gap:7px; font-size:.84rem; }
  .mg-lane__cat{ padding:6px 12px; }
  .mg-lane__cats-lbl{ flex-basis:100%; margin:0 0 1px; }   /* "Browse:" on its own line, pills wrap cleanly below */
}

/* ============ directory hero (H1 + subhead + calc CTA) — sleek, centered ============ */
.mg-archive-head{ background:linear-gradient(180deg,#eaf1ff 0%,#f6f9ff 60%,var(--mg-bg) 100%); border-bottom:1px solid var(--mg-line); }
.mg-archive-head__inner{ max-width:720px; margin:0 auto; padding:56px 24px 46px; text-align:center; }
.mg-archive-head h1{ font-family:'Poppins',sans-serif; font-weight:700; font-size:2.5rem; line-height:1.1; color:var(--mg-navy); margin:0 0 12px; letter-spacing:-.01em; }
.mg-archive-head__sub{ color:var(--mg-muted); font-size:1.12rem; line-height:1.5; margin:0 auto 26px; max-width:30em; }
.mg-archive-head__cta{ display:inline-block; background:var(--mg-blue); color:#fff!important; font-family:'Poppins',sans-serif; font-weight:600; font-size:1.05rem; padding:15px 30px; border-radius:12px; text-decoration:none; box-shadow:0 10px 26px rgba(40,110,248,.28); transition:transform .15s, box-shadow .15s, background .15s; }
.mg-archive-head__cta:hover{ background:var(--mg-blue-dk); transform:translateY(-1px); box-shadow:0 14px 32px rgba(40,110,248,.34); color:#fff!important; }
/* hide HivePress result count ("Showing 1-10 of 1,104 results") — noise */
.hp-result-count{ display:none!important; }
/* hide the "Sort by" control (defaults to Date) — directory shows curated order, not user sort */
.hp-form--listing-sort{ display:none!important; }
/* category archives: our hero replaces HivePress's cover banner, so cancel the -100px
   pull-up that clips the top of the search/filter card on those pages */
.tax-hp_listing_category .hp-page__header .hp-form--primary{ margin-top:0!important; }
/* hide a few niche Services from the filter — listings keep them + stay keyword-searchable:
   Same-day moves (16), Senior moves (17), Military moves (18) */
.hp-form li:has(input[name="services[]"][value="16"]),
.hp-form li:has(input[name="services[]"][value="17"]),
.hp-form li:has(input[name="services[]"][value="18"]){ display:none!important; }
@media (max-width:560px){
  .mg-archive-head__inner{ padding:26px 18px 22px; }
  .mg-archive-head h1{ font-size:1.65rem; margin-bottom:8px; }
  .mg-archive-head__sub{ font-size:.98rem; margin-bottom:18px; }
  .mg-archive-head__cta{ padding:13px 24px; font-size:1rem; }
  /* tighter search/results on small screens */
  body.hp-template--listings-view-page .site-content{ padding-top:20px!important; }
  .hp-form--listing-search{ padding:12px!important; }
  .mg-acc .hp-field--checkboxes{ min-width:min(420px,90vw); }
}
/* the parent theme pulls the listings content up to overlap the (now removed) cover hero —
   neutralize that so the slim title bar isn't covered by the search form. */
.mg-archive-head{ position:relative; z-index:2; }
body.hp-template--listings-view-page .site-content{ margin-top:0!important; padding-top:20px!important; }
body.hp-template--listings-view-page .content-area,
body.hp-template--listings-view-page .hp-page,
body.hp-template--listings-view-page .hp-page__header{ margin-top:0!important; }

/* ============ [mg_landing] long-tail landing pages ============ */
.mg-land__head{ padding:4px 0 20px; }
.mg-land__head h1{ font-family:'Poppins',sans-serif; font-weight:700; font-size:2rem; color:var(--mg-navy); margin:0 0 8px; }
.mg-land__sub{ color:var(--mg-muted); font-size:1.05rem; line-height:1.55; max-width:64ch; margin:0; }
.mg-land__faq{ max-width:820px; margin:44px auto 8px; }
.mg-land__faq h2{ font-family:'Poppins',sans-serif; font-size:1.5rem; color:var(--mg-navy); margin:0 0 14px; }
.mg-land__faq details{ border-bottom:1px solid var(--mg-line); padding:16px 2px; }
.mg-land__faq summary{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); cursor:pointer; font-size:1.05rem; list-style:none; }
.mg-land__faq summary::-webkit-details-marker{ display:none; }
.mg-land__faq p{ color:var(--mg-text); line-height:1.6; margin:12px 0 0; }
.mg-land__empty{ color:var(--mg-muted); padding:24px 0; }
/* hero-suppressed pages ([mg_landing]/[mg_calculator]) lost the hero's top breathing room */
.mg-no-hero .site-content{ padding-top:20px; }
@media (max-width:560px){ .mg-no-hero .site-content{ padding-top:20px; } }
.hp-form--listing-search{ background:#fff; padding:18px; border-radius:16px; box-shadow:var(--mg-shadow); }
.hp-field input,.hp-form__field input,input[type="text"],input[type="search"],input[type="email"],select,textarea{
  border-radius:10px!important; border:1px solid var(--mg-line)!important;
}
.hp-field input:focus,input[type="text"]:focus,select:focus{ border-color:var(--mg-blue)!important; outline:none; box-shadow:0 0 0 3px rgba(40,110,248,.15); }

/* ============ type-hub SEO content block (below the listing grid) ============ */
.mg-hub{ max-width:900px; margin:52px auto 8px; padding:0 4px; }
.mg-hub h2{ font-family:'Poppins',sans-serif; font-weight:700; font-size:1.7rem; color:var(--mg-navy); margin:0 0 14px; letter-spacing:-.01em; }
.mg-hub h3{ font-family:'Poppins',sans-serif; font-weight:600; font-size:1.25rem; color:var(--mg-navy); margin:36px 0 14px; }
.mg-hub__lead{ font-size:1.1rem; color:var(--mg-text); line-height:1.6; margin:0 0 14px; }
.mg-hub p{ color:var(--mg-text); line-height:1.7; margin:0 0 14px; }
.mg-hub__choose ul{ margin:0; padding:0; list-style:none; display:grid; gap:12px; }
.mg-hub__choose li{ position:relative; padding-left:28px; color:var(--mg-text); line-height:1.6; }
.mg-hub__choose li::before{ content:'\2713'; position:absolute; left:0; top:0; color:var(--mg-blue); font-weight:700; }
/* cost table */
.mg-hub__cost-rows{ list-style:none; margin:16px 0; padding:0; border:1px solid var(--mg-line); border-radius:12px; overflow:hidden; }
.mg-hub__cost-rows li{ display:flex; justify-content:space-between; gap:16px; padding:13px 18px; }
.mg-hub__cost-rows li:nth-child(odd){ background:#f6f9ff; }
.mg-hub__cost-rows .lbl{ color:var(--mg-text); }
.mg-hub__cost-rows .val{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); white-space:nowrap; }
.mg-hub__note{ font-size:.95rem; color:var(--mg-muted); margin:0; }
.mg-hub__faq details{ border-bottom:1px solid var(--mg-line); padding:16px 2px; }
.mg-hub__faq summary{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); cursor:pointer; font-size:1.05rem; list-style:none; }
.mg-hub__faq summary::-webkit-details-marker{ display:none; }
.mg-hub__faq summary::after{ content:'+'; float:right; color:var(--mg-muted); font-weight:400; font-size:1.2em; line-height:1; }
.mg-hub__faq details[open] summary::after{ content:'\2013'; }
.mg-hub__faq p{ margin:12px 0 0; }
.mg-hub__links{ margin:36px 0 0; padding:20px 0 0; border-top:1px solid var(--mg-line); display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.mg-hub__links-label{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); }
.mg-hub__links a{ display:inline-block; padding:7px 14px; border-radius:999px; border:1px solid var(--mg-line); color:var(--mg-blue); text-decoration:none; font-weight:600; font-size:.92rem; transition:all .15s; }
.mg-hub__links a:hover{ background:var(--mg-blue); border-color:var(--mg-blue); color:#fff; }
@media (max-width:560px){
  .mg-hub{ margin-top:34px; }
  .mg-hub h2{ font-size:1.4rem; }
  .mg-hub h3{ font-size:1.15rem; }
  .mg-hub__lead{ font-size:1.02rem; }
}

/* ============ category tiles ============ */
.hp-listing-category{
  background:#fff; border:1px solid var(--mg-line); border-radius:16px; padding:22px 16px; text-align:center;
  box-shadow:var(--mg-shadow); transition:box-shadow .2s, transform .2s;
}
.hp-listing-category:hover{ box-shadow:0 10px 30px rgba(22,60,136,.14); transform:translateY(-3px); }
.hp-listing-category__name,.hp-listing-category__name a{ color:var(--mg-navy); font-family:'Poppins'; font-weight:600; }
.hp-listing-category__count{ color:var(--mg-muted); }
/* Category archive hero: drop the "N Listings" count badge (not useful to customers). */
.hp-listing-category__item-count{ display:none!important; }
.hp-listing-category .hp-icon{ color:var(--mg-blue); font-size:2rem; }

/* ============ section spacing / page ============ */
.site-content,.hp-page{ padding-top:20px; }

/* ============ logo + MoverGrid wordmark (match website: Poppins 600, 26px) ============ */
.custom-logo{ max-height:48px!important; width:auto!important; }
.custom-logo-link{ display:inline-flex!important; align-items:center; gap:10px; text-decoration:none!important; }
.custom-logo-link::after{
  content:"MoverGrid"; font-family:'Poppins',sans-serif; font-weight:600;
  font-size:26px; color:#fff; line-height:1; letter-spacing:-.01em;
}

/* ============ category tiles: dark cards w/ icon + name + clickable arrow (no count) ============ */
/* align with the rest of the content (no breakout) */
.hp-listing-categories .hp-row{ row-gap:14px; justify-content:center!important; flex-wrap:wrap; }
.hp-listing-categories .hp-grid__item{ padding-left:8px!important; padding-right:8px!important; }   /* tighter gutter */
/* wider fixed tiles so "Moving & Storage" fits on one line (desktop); wrap on small screens */
.hp-listing-categories .hp-listing-category__name{ white-space:nowrap; }
/* desktop: never wrap — 5 equal tiles fill one row */
@media (min-width:900px){
  .hp-listing-categories .hp-row{ flex-wrap:nowrap!important; }
  .hp-listing-categories .hp-grid__item.hp-col-sm-2{ flex:1 1 0!important; max-width:none!important; width:auto!important; }
}
.hp-listing-categories .hp-listing-category--view-block{
  background:linear-gradient(160deg,#272d37 0%,#191c22 100%)!important; border-radius:18px!important;
  border:2px solid rgba(40,110,248,.75)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.22)!important; min-height:200px!important; height:auto!important;
  padding:28px 20px!important; overflow:hidden; text-align:center;
  display:flex!important; flex-direction:column!important; align-items:center!important; justify-content:center!important; gap:14px!important;
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
/* kill theme auto-margins that push the name to the bottom */
.hp-listing-categories .hp-listing-category--view-block > *,
.hp-listing-categories .hp-listing-category__content > *{ margin-top:0!important; margin-bottom:0!important; }
.hp-listing-categories .hp-listing-category--view-block:hover{
  transform:translateY(-4px); border-color:#286EF8!important;
  box-shadow:0 16px 38px rgba(0,0,0,.30), 0 0 0 3px rgba(40,110,248,.18)!important;
}
/* hide the count + placeholder image (not useful to the customer) */
.hp-listing-categories .hp-listing-category__header,
.hp-listing-categories .hp-listing-category__image{ display:none!important; }
.hp-listing-categories .hp-listing-category__content,
.hp-listing-categories .hp-listing-category__details{ background:none!important; padding:0!important; margin:0!important; border:none!important; width:100%; text-align:center; }
.hp-listing-categories .hp-listing-category__details{ display:none!important; }
.hp-listing-categories .hp-listing-category__content{ position:static!important; display:flex!important; flex-direction:column; align-items:center; justify-content:center; flex:0 0 auto!important; }
.hp-listing-categories .hp-listing-category__header{ position:static!important; }
.hp-listing-categories .mg-cat-icon{ flex:0 0 auto!important; }
/* clean plain blue icon (no badge) */
.mg-cat-icon{ font-size:2.4rem!important; color:#286EF8!important; line-height:1; }
.hp-listing-categories .hp-listing-category__name,
.hp-listing-categories .hp-listing-category__name a{ color:#fff!important; font-family:'Poppins',sans-serif; font-weight:600; font-size:1.18rem; text-align:center; letter-spacing:-.01em; margin:0!important; padding:0!important; }
/* make the WHOLE card clickable: stretch the name link over the card */
.hp-listing-categories .hp-listing-category--view-block{ position:relative; cursor:pointer; }
.hp-listing-categories .hp-listing-category__name a::after{
  content:''; position:absolute; inset:0; z-index:4;
}

/* ============ homepage section spacing ============ */
/* breathing room above each section heading + padding below each block */
.home .page__text h2{ margin-top:56px!important; margin-bottom:24px!important; }
.home .hp-listing-categories.hp-block{ margin-bottom:64px!important; padding-bottom:8px; }
.home .hp-listings.hp-block{ margin-bottom:72px!important; padding-bottom:8px; }

/* ============ listing card image bg ============ */
/* per-logo bg is applied inline (hp_logo_bg); fallback only when none set */
.hp-listing__image{ background:#f5f6f8; }

/* ============ homepage hero (card on a movers-video background) ============ */
/* kill the white strip: drop top padding above the full-bleed hero on the home page */
body.home .site-content,
body.home .site-content > .container,
body.home .page__text{ padding-top:0!important; margin-top:0!important; }

/* full-bleed: break out of the content container, edge-to-edge */
.mg-hero-wrap{
  position:relative; overflow:hidden; border-radius:0;
  width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  margin-top:0; margin-bottom:46px;
  padding:110px clamp(20px,6vw,80px); min-height:560px;
  display:flex; align-items:center; justify-content:center;
}
.mg-hero-video{ position:absolute; left:0; top:-20%; width:100%; height:140%; object-fit:cover; z-index:0;
  will-change:transform; backface-visibility:hidden; transform:translate3d(0,0,0); }
@media (prefers-reduced-motion:reduce){ .mg-hero-video{ top:0; height:100%; transform:none!important; } }
.mg-hero-wrap::after{ content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(15,23,42,.30),rgba(15,23,42,.55)); }
.mg-hero-wrap .mg-hero{ position:relative; z-index:2; margin:0; width:100%; max-width:820px;
  box-shadow:0 20px 50px rgba(0,0,0,.32); }
.mg-hero{
  background:linear-gradient(135deg,var(--mg-navy) 0%,var(--mg-blue) 100%);
  color:#fff; padding:56px 32px 48px; border-radius:22px; text-align:center; margin:34px 0 40px;
  box-shadow:0 14px 40px rgba(22,60,136,.18);
}
.mg-hero h1{ color:#fff!important; font-size:2.5rem; line-height:1.15; margin:0 0 10px; }
.mg-hero p{ color:rgba(255,255,255,.92); font-size:1.12rem; margin:0 0 24px; }
.mg-hero .hp-form--listing-search{ max-width:780px; margin:0 auto; text-align:left; }
.mg-section{ margin:36px 0; }
.mg-section h2{ text-align:center; margin-bottom:24px; }

/* ============ logo card tile (per-logo bg from logo_bg.json) ============ */
/* logo sits CONTAINED on its matched background tile, never cropped */
.hp-listing__image.mg-logo-tile{ background:#f5f6f8; }
/* decor seam line at the top of the logo tile — gives separation when a white logo tile
   meets the white card body (the Muscle-4-Hire white-box case), harmless on colored tiles */
.hp-listing--view-block .hp-listing__image.mg-logo-tile{ border-top:3px solid var(--mg-line); }
.mg-logo-tile .mg-logo-img,
.hp-listing--view-block .hp-listing__image img{
  object-fit:contain!important; padding:18px; box-sizing:border-box;
  width:100%; height:100%; background:transparent;
}
/* same treatment for the logo on the single listing page header */
.hp-listing--view-page .hp-listing__image img{ object-fit:contain!important; padding:20px; box-sizing:border-box; }

/* ============ maps ============ */
.widget.hp-map{ display:none!important; }   /* broken Google Maps box — hidden until a provider is set */
#mg-map{ height:340px; border-radius:16px; margin:20px 0; box-shadow:var(--mg-shadow); border:1px solid var(--mg-line); z-index:0; }
.leaflet-container{ font-family:inherit; }

/* ============ single company page ============ */
.hp-listing--view-page{ margin-top:14px; }
/* header as a card */
.hp-listing--view-page .hp-listing__header{
  background:#fff; border:1px solid var(--mg-line); border-radius:18px; padding:26px 28px;
  box-shadow:var(--mg-shadow); margin-bottom:22px;
}
.hp-listing--view-page .hp-listing__title{ font-size:2.1rem; line-height:1.15; margin:8px 0; }
.hp-listing__location{ color:var(--mg-muted); font-weight:500; }
.hp-listing__location .hp-icon{ color:var(--mg-orange); }
/* container carries both classes (hp-listing__categories hp-listing__category) — kill its pill bg */
.hp-listing__categories.hp-listing__category{ background:none!important; padding:0!important; border-radius:0!important; }
/* each category = its own green pill (links inside the container) */
.hp-listing__categories a{
  display:inline-block; background:#15cd72!important; color:#fff!important; border-radius:999px;
  padding:4px 13px; font-size:.78rem; font-weight:600; margin:0 6px 6px 0; text-decoration:none;
  transition:background .15s;
}
.hp-listing__categories a:hover{ background:#0f9e58!important; color:#fff!important; }
.hp-listing__created-date{ color:var(--mg-muted); }

/* FMCSA fields -> stat cards (SINGLE PAGE ONLY) */
.hp-listing--view-page .hp-listing__attributes--secondary{ margin:4px 0 8px; }
.hp-listing--view-page .hp-listing__attributes--secondary .hp-grid__item{ margin-bottom:16px; }
.hp-listing--view-page .hp-listing__attributes--secondary .hp-listing__attribute{
  background:#fff; border:1px solid var(--mg-line); border-radius:14px; padding:16px 18px;
  box-shadow:var(--mg-shadow); height:100%; font-weight:600; color:var(--mg-navy);
}
.hp-listing--view-page .hp-listing__attributes--secondary .hp-listing__attribute a{ color:var(--mg-blue); }

/* Lucide icons on single-page DATA fields (secondary block only — sidebar untouched) */
.hp-listing--view-page .hp-listing__attributes--secondary .hp-listing__attribute{ display:flex; align-items:center; gap:.6rem; }
.hp-listing--view-page .hp-listing__attributes--secondary .hp-listing__attribute > i.hp-icon{ display:none; }
.hp-listing--view-page .hp-listing__attribute--website::before,
.hp-listing--view-page .hp-listing__attribute--dot-number::before,
.hp-listing--view-page .hp-listing__attribute--location::before,
.hp-listing--view-page .hp-listing__attribute--years::before,
.hp-listing--view-page .hp-listing__attribute--safety-rating::before{
  content:""; flex:0 0 auto; width:1.4em; height:1.4em; background-color:var(--mg-blue);
  -webkit-mask:var(--mg-ic) no-repeat center / contain; mask:var(--mg-ic) no-repeat center / contain;
}
.hp-listing--view-page .hp-listing__attribute--website{ --mg-ic:url(assets/icons/lucide/globe.svg); }
.hp-listing--view-page .hp-listing__attribute--dot-number{ --mg-ic:url(assets/icons/lucide/badge-check.svg); }
.hp-listing--view-page .hp-listing__attribute--location{ --mg-ic:url(assets/icons/lucide/map-pin.svg); }
.hp-listing--view-page .hp-listing__attribute--years{ --mg-ic:url(assets/icons/lucide/calendar.svg); }
.hp-listing--view-page .hp-listing__attribute--safety-rating{ --mg-ic:url(assets/icons/lucide/shield-check.svg); }

/* sidebar = sticky contact stack */
.hp-page__sidebar{ }
.hp-page__sidebar .hp-listing__attributes--primary{
  background:#fff; border:1px solid var(--mg-line); border-radius:18px; padding:20px;
  box-shadow:var(--mg-shadow); margin-bottom:16px;
}
.hp-listing__attribute--phone{ margin:0!important; }
/* sidebar phone = blue button, white text + icon (the markup is a <div>, not an <a>) */
.hp-listing--view-page .hp-listing__attributes--primary .hp-listing__attribute--phone,
.hp-listing__attribute--phone a{
  display:block; background:var(--mg-blue); color:#fff!important; text-align:center;
  padding:14px 16px; border-radius:12px; font-weight:700; font-size:1.15rem; text-decoration:none;
}
.hp-listing--view-page .hp-listing__attributes--primary .hp-listing__attribute--phone .hp-icon,
.hp-listing--view-page .hp-listing__attributes--primary .hp-listing__attribute--phone span,
.hp-listing--view-page .hp-listing__attributes--primary .hp-listing__attribute--phone a{ color:#fff!important; }
.hp-listing--view-page .hp-listing__attributes--primary .hp-listing__attribute--phone:hover,
.hp-listing__attribute--phone a:hover{ background:var(--mg-navy); }
/* once JS wraps the value in <a>, the anchor is the button and the div is a bare wrapper */
.hp-page__sidebar .hp-listing__attribute--phone{ padding:0!important; background:none!important; box-shadow:none!important; }
.hp-page__sidebar .hp-listing__attribute--phone>a{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; }
.hp-listing__actions--primary{
  background:#fff; border:1px solid var(--mg-line); border-radius:18px; padding:8px 20px;
  box-shadow:var(--mg-shadow);
}
.hp-listing__action{ display:flex!important; align-items:center; gap:8px; padding:12px 0; border-bottom:1px solid var(--mg-line); color:var(--mg-navy); }
.hp-listing__action:last-child{ border-bottom:none; }
.hp-listing__action .hp-icon{ color:var(--mg-blue); }
/* remove "Report listing" from the sidebar actions */
.hp-listing__action--report{ display:none!important; }

/* related listings spacing */
.hp-page__footer{ margin-top:10px; }

/* ============ card trust badges + website link ============ */
.mg-card-badges{ display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 2px; }
.mg-badge{ display:inline-flex; align-items:center; gap:5px; font-size:.72rem; font-weight:700;
  font-family:'Poppins',sans-serif; letter-spacing:.02em; padding:3px 9px 3px 7px; border-radius:999px;
  line-height:1.4; white-space:nowrap; }
.mg-badge::before{ content:""; width:13px; height:13px; flex:0 0 13px;
  background:currentColor; -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.mg-badge--verified{ color:#0f7a43; background:#e6f7ee; }
.mg-badge--insured{ color:var(--mg-navy); background:#e9f0ff; }
/* website link on cards — quiet, sits above the call button; click is tracked */
.mg-card-web{ display:inline-flex; align-items:center; gap:6px; margin:8px 0 0; font-size:.85rem;
  font-weight:600; color:var(--mg-blue); text-decoration:none; }
.mg-card-web::before{ content:""; width:14px; height:14px; flex:0 0 14px; background:currentColor;
  -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.mg-card-web:hover{ color:var(--mg-navy); text-decoration:underline; }

/* ============ listing CARDS (uniform + clean) ============ */
/* equal-height cards across a row (listings only — not category tiles) */
.hp-listings .hp-grid__item{ display:flex; }
.hp-listing--view-block{ display:flex!important; flex-direction:column; width:100%; height:100%; margin-bottom:0; }
/* uniform image area */
.hp-listing--view-block .hp-listing__image{ aspect-ratio:16/10; height:auto!important; }
/* hide the category badge pile on cards (it caused the uneven heights + clutter) */
.hp-listing--view-block .hp-listing__categories,
.hp-listing--view-block .hp-listing__category{ display:none!important; }
/* content fills, footer pinned to bottom => even cards */
.hp-listing--view-block .hp-listing__content{ flex:1 1 auto; display:flex; flex-direction:column; padding:18px 18px 14px; }
.hp-listing--view-block .hp-listing__title{ font-size:1.05rem; line-height:1.35; min-height:2.7em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.hp-listing--view-block .hp-listing__title a{ color:var(--mg-navy); }
.hp-listing--view-block .hp-listing__location{ font-size:.9rem; }
.hp-listing--view-block .hp-listing__footer{ margin-top:auto; padding-top:10px; border-top:1px solid var(--mg-line); }
.hp-listing--view-block .hp-listing__created-date{ display:none; }   /* "added on…" clutter */
/* de-bubble card meta: clean inline, no boxes */
.hp-listing--view-block .hp-listing__attributes,
.hp-listing--view-block .hp-listing__attributes--primary,
.hp-listing--view-block .hp-listing__attribute,
.hp-listing--view-block .hp-listing__actions{
  background:none!important; border:none!important; box-shadow:none!important; padding:0!important; margin:0!important;
}
/* card phone = solid tap-to-call button, matched to the brand CTA (solid blue, Poppins,
   10px radius) with a static blue glow so it pops off the white card. NO animation —
   no transition; hover just snaps to navy like the other site buttons. Must override the
   sidebar phone styles that leak in via `.hp-listing__attribute--phone a` (display:block
   + the wrap that previously caused blue-text-on-blue and icon/text wrapping). */
/* phone + years ship in a 50/50 grid row (hp-col-lg-6 each) — half a card is too narrow
   for the call button, so the number overflowed/clipped. Stack the row full-width:
   "Years in business" as a small line on top, the Call button full card width below. */
.hp-listing--view-block .hp-listing__attributes--secondary .hp-row{ display:flex; flex-direction:column; gap:6px; margin:0; }
.hp-listing--view-block .hp-listing__attributes--secondary .hp-row > [class*="hp-col"]{
  width:100%!important; max-width:100%!important; flex:0 0 auto!important; padding:0!important;
}
.hp-listing--view-block .hp-listing__attributes--secondary .hp-row > [class*="hp-col"]:last-child{ order:-1; }  /* years above the action */

.hp-listing--view-block .hp-listing__attribute--phone{ margin:12px 0 2px!important; }
.hp-listing--view-block .hp-listing__attribute--phone a{
  display:inline-flex!important; align-items:center; justify-content:center; gap:8px;
  width:100%; box-sizing:border-box; white-space:nowrap;          /* keep icon + number on one line */
  background:var(--mg-blue)!important; color:#fff!important;
  border:1px solid var(--mg-blue)!important; border-radius:10px;
  padding:11px 16px!important; font-family:'Poppins',sans-serif;
  font-weight:600!important; font-size:.98rem!important; line-height:1; letter-spacing:.01em;
  text-decoration:none; box-shadow:0 4px 14px rgba(40,110,248,.30);   /* the pop (static, not animated) */
}
.hp-listing--view-block .hp-listing__attribute--phone a:hover{
  background:var(--mg-navy)!important; border-color:var(--mg-navy)!important; color:#fff!important;
}
.hp-listing--view-block .hp-listing__attribute--phone a .hp-icon,
.hp-listing--view-block .hp-listing__attribute--phone a i{ color:#fff!important; font-size:.95em; }
.hp-listing--view-block .hp-listing__attribute--years{ color:var(--mg-muted)!important; font-size:.85rem; font-weight:500; }
/* favorite heart: quiet icon, not a bubble button */
.hp-listing--view-block .hp-listing__action--favorite{
  background:none!important; border:none!important; box-shadow:none!important; padding:0!important; width:auto!important; height:auto!important;
}
.hp-listing--view-block .hp-listing__action--favorite .hp-icon{ color:var(--mg-line)!important; }
.hp-listing--view-block .hp-listing__action--favorite:hover .hp-icon{ color:var(--mg-orange)!important; }

/* ============ HORIZONTAL card: logo-left, details-right, full-width Call ============ */
/* override the vertical (flex-column) base with a 2-col grid: logo + details share the
   top row, the Call button spans the full card width in the footer row beneath both.
   rows = "1fr auto" so details grow and the Call button pins to the bottom (aligned
   across a row of cards even when one has an extra line like "yrs in business"). */
.hp-listing--view-block{
  display:grid!important; grid-template-columns:auto 1fr; grid-template-rows:1fr auto;
  grid-template-areas:"logo details" "call call";
  align-items:start; column-gap:14px; row-gap:0; padding:16px;
}
.hp-listing--view-block .hp-listing__header{ grid-area:logo; margin:0; }
.hp-listing--view-block .hp-listing__content{ grid-area:details; padding:0!important; display:block; }
.hp-listing--view-block .hp-listing__footer{ grid-area:call; margin:0; padding:14px 0 0; border-top:none; }
/* square logo tile on the left — contained, never cropped: great logos read, weak/wrong
   ones simply stay small instead of dominating a tall banner. Keeps its matched bg tile. */
.hp-listing--view-block .hp-listing__image{
  width:112px!important; height:112px!important; aspect-ratio:1/1!important; flex:none;
  border:1px solid var(--mg-line); border-radius:12px; overflow:hidden;
}
.hp-listing--view-block .hp-listing__image .mg-logo-img,
.hp-listing--view-block .hp-listing__image img{
  width:100%; height:100%; object-fit:contain; padding:8px; box-sizing:border-box;
}
/* title sits next to the logo — drop the 2-line height reserve, still clamps long names */
.hp-listing--view-block .hp-listing__title{ min-height:0; margin:0 0 2px; font-size:1rem; }
.mg-card-badges{ margin:6px 0 2px; }
/* mg-card-meta owns location now (positioned under the badges) — hide HivePress's own
   native geolocation line so it doesn't render the city twice. */
.hp-listing--view-block .hp-listing__location{ display:none!important; }
/* card location + years — muted lines under the badges */
.mg-card-loc{ display:flex; align-items:center; gap:6px; margin:6px 0 0; font-size:.85rem; color:var(--mg-muted); }
.mg-card-loc::before{ content:""; width:14px; height:14px; flex:0 0 14px; background:currentColor;
  -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }
.mg-card-years{ margin:6px 0 0; color:var(--mg-muted); font-size:.82rem; font-weight:500; }
/* full-width Call button (footer row) — solid blue brand CTA with a static glow */
.mg-card-call{
  display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
  box-sizing:border-box; white-space:nowrap;
  background:var(--mg-blue); color:#fff; border:1px solid var(--mg-blue); border-radius:10px;
  padding:11px 16px; font-family:'Poppins',sans-serif; font-weight:600; font-size:.98rem;
  line-height:1; letter-spacing:.01em; text-decoration:none;
  box-shadow:0 4px 14px rgba(40,110,248,.30);
}
.mg-card-call:hover{ background:var(--mg-navy); border-color:var(--mg-navy); color:#fff; }
.mg-card-call__ic{ width:16px; height:16px; flex:0 0 16px; background:#fff;
  -webkit-mask:var(--ic) center/contain no-repeat; mask:var(--ic) center/contain no-repeat; }

/* related-movers section heading ("Similar moving companies") → brand navy */
.hp-page__footer .hp-section__title{ color:var(--mg-navy)!important; }

/* ============ company name + single-page Details tab → black; hide Fleet ============ */
/* listing name (title) — solid black, Poppins, everywhere (cards, single, related) */
.hp-listing__title,.hp-listing__title a,
.hp-listing--view-block .hp-listing__title,.hp-listing--view-block .hp-listing__title a,
.hp-listing--view-page .hp-listing__title{ color:#000!important; font-family:'Poppins',sans-serif!important; }
/* single-page "Details" tab text + its 3px active/hover underline bar → black */
.hp-menu--tabbed .hp-menu__item>a,
.hp-menu--tabbed .hp-menu__item--current a{ color:#000!important; font-family:'Poppins',sans-serif; }
.hp-menu--tabbed .hp-menu__item--current::before{ background-color:#000!important; }
/* Fleet (Trucks) attribute — removed from the UI (also deleted from backend) */
.hp-listing__attribute--power-units{ display:none!important; }

/* ============ unified profile card (single-page main column) — subtle/clean, mobile-first ============ */
.mg-profile{
  position:relative; background:var(--mg-card); border:1px solid var(--mg-line); border-radius:20px;
  box-shadow:0 1px 2px rgba(22,60,136,.04), 0 12px 32px rgba(22,60,136,.07); padding:22px; overflow:hidden;
}
.mg-profile__band{ position:absolute; top:0; left:0; right:0; height:64px;
  background:linear-gradient(180deg,#eef3ff 0%,#f7faff 100%); border-bottom:1px solid var(--mg-line); }
.mg-profile__head{ position:relative; display:flex; gap:20px; align-items:flex-start; padding-top:34px; }
.mg-profile__logo{
  flex:0 0 164px; width:164px; height:164px; margin-top:-10px; border-radius:18px; background:#fff; border:1px solid var(--mg-line);
  box-shadow:var(--mg-shadow); padding:14px; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.mg-profile__logo img{ max-width:100%; max-height:100%; object-fit:contain; }
.mg-profile__id{ flex:1 1 auto; min-width:0; padding-top:30px; }
.mg-profile__name{ margin:0 0 4px; font-size:1.7rem; line-height:1.2; color:#000; }
.mg-profile__meta{ color:var(--mg-muted); font-weight:500; margin-bottom:12px; }
.mg-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.mg-chip{ display:inline-flex; align-items:center; gap:6px; padding:5px 11px 5px 9px; border-radius:999px;
  background:#f1f5ff; border:1px solid var(--mg-line); color:var(--mg-navy); font-size:.82rem; font-weight:600; }
.mg-chip::before{ content:""; width:15px; height:15px; background-color:var(--mg-blue);
  -webkit-mask:var(--ic) no-repeat center / contain; mask:var(--ic) no-repeat center / contain; }
.mg-chip--verified{ background:#e8f7ee; border-color:#bfe9cd; color:#137a3e; }
.mg-chip--verified::before{ background-color:#1aa251; }
.mg-profile__contact{ display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; }
.mg-contact{ display:inline-flex; align-items:center; gap:7px; font-weight:600; color:var(--mg-blue); word-break:break-all; }
.mg-contact--phone{ color:var(--mg-navy); }
.mg-contact::before{ content:""; flex:0 0 auto; width:16px; height:16px; background-color:currentColor;
  -webkit-mask:var(--ic) no-repeat center / contain; mask:var(--ic) no-repeat center / contain; }
.mg-facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; margin:20px 0 4px; }
.mg-fact{ background:#fff; border:1px solid var(--mg-line); border-radius:14px; padding:14px 16px; box-shadow:0 4px 14px rgba(22,60,136,.05); }
.mg-fact__num{ display:block; font-family:'Poppins',sans-serif; font-size:1.5rem; font-weight:700; color:var(--mg-navy); line-height:1.1; }
.mg-fact__num--text{ font-size:1.05rem; }
.mg-fact__ic{ display:block; width:30px; height:30px; background-color:var(--mg-blue); -webkit-mask:var(--ic) no-repeat left center / contain; mask:var(--ic) no-repeat left center / contain; }
.mg-fact__lbl{ display:block; color:var(--mg-muted); font-size:.8rem; margin-top:3px; }
.mg-pills{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 4px; }
.mg-pill{ padding:6px 13px; border-radius:999px; background:#fff; border:1px solid var(--mg-line); color:var(--mg-navy); font-size:.84rem; font-weight:600; }
.mg-sect{ margin-top:24px; padding-top:22px; border-top:1px solid var(--mg-line); }
.mg-sect__title{ font-family:'Poppins',sans-serif; font-size:1.15rem; color:var(--mg-navy); margin:0 0 12px; }
.mg-profile__summary{ font-size:1.02rem; line-height:1.65; color:var(--mg-text); margin:0; }
.mg-sect--map{ margin-top:20px; padding-top:18px; }
.mg-sect__sub{ font-family:'Inter',sans-serif; font-size:.85rem; font-weight:600; color:var(--mg-muted); margin:0 0 8px; }
.mg-profile #mg-map{ height:170px; border-radius:12px; border:1px solid var(--mg-line); overflow:hidden; margin:0; box-shadow:none; }
.mg-profile .mg-checklists{ margin:24px 0 0; }
.mg-profile .mg-checklist + .mg-checklist{ margin-top:44px; }
.mg-social{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.mg-social__link{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center;
  background:#f1f5ff; border:1px solid var(--mg-line); color:var(--mg-navy); transition:.15s; }
.mg-social__link::before{ content:""; width:18px; height:18px; background-color:currentColor;
  -webkit-mask:var(--ic) no-repeat center / contain; mask:var(--ic) no-repeat center / contain; }
.mg-social__link:hover{ background:var(--mg-blue); color:#fff; border-color:var(--mg-blue); }
@media (max-width:768px){
  .mg-profile{ padding:16px; border-radius:16px; }
  .mg-profile__head{ flex-direction:column; align-items:center; text-align:center; padding-top:30px; }
  .mg-profile__logo{ flex-basis:auto; }
  .mg-profile__id{ padding-top:6px; }
  .mg-chips, .mg-pills, .mg-social, .mg-profile__contact{ justify-content:center; }
  .mg-facts{ grid-template-columns:repeat(2,1fr); }
}

/* ============ bottom check-grid lists (replaces the top category badges) ============ */
.mg-checklists{ margin:24px 0 4px; }
.mg-checklist{ margin-bottom:22px; }
.mg-checklist__title{ font-family:'Poppins',sans-serif; font-size:1.05rem; color:var(--mg-navy); margin:0 0 18px; padding-bottom:18px; border-bottom:1px solid var(--mg-line); }
.mg-checklist__grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px 18px; }
.mg-checklist__item{ position:relative; padding-left:28px; color:var(--mg-text); font-weight:500; line-height:1.4; }
.mg-checklist__item::before{
  content:""; position:absolute; left:0; top:1px; width:19px; height:19px; background-color:var(--mg-blue);
  -webkit-mask:var(--ic, url(assets/icons/lucide/circle-check.svg)) no-repeat center / contain;
  mask:var(--ic, url(assets/icons/lucide/circle-check.svg)) no-repeat center / contain;
}

/* clean the top: hide the empty "Details" tab bar on single listings */
.hp-listing--view-page .hp-page__topbar--separate{ display:none; }

/* flip the phone icon horizontally (sidebar button + cards) */
.hp-listing__attribute--phone .fa-phone{ transform:scaleX(-1); }

/* ============ mobile sticky Call bar (single listing) ============ */
/* hidden on desktop — the sidebar Call button is the CTA there */
.mg-callbar{ display:none; }
@media (max-width:768px){
  /* dark banner strip pinned to the bottom; holds a contained Call button */
  .mg-callbar{
    position:fixed; left:0; right:0; bottom:0; z-index:9990;
    display:flex; justify-content:center;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
    background:#0f172a;                                   /* banner bg */
    box-shadow:0 -6px 22px rgba(15,23,42,.28);
    transform:translateY(120%); opacity:0;
    transition:transform .28s cubic-bezier(.4,0,.2,1), opacity .28s ease;
  }
  .mg-callbar.is-visible{ transform:translateY(0); opacity:1; }
  .mg-callbar__btn{
    display:flex; align-items:center; justify-content:center; gap:10px;
    width:100%; max-width:440px; padding:14px 22px; border-radius:12px;
    background:var(--mg-blue); color:#fff!important; font-family:'Poppins',sans-serif;
    font-weight:700; font-size:1.12rem; text-decoration:none;
  }
  .mg-callbar__btn:active{ background:#1d4ed8; }
  .mg-callbar__ic{ flex:0 0 auto; width:22px; height:22px; background:#fff;
    -webkit-mask:url(assets/icons/phone-solid.svg) no-repeat center / contain;
    mask:url(assets/icons/phone-solid.svg) no-repeat center / contain; }
  /* the bar replaces the buried contact card on phones (phone was its only content) */
  .hp-page__sidebar .hp-listing__attributes--primary{ display:none!important; }
  /* breathing room so the fixed bar never hides the last content */
  body.single-hp_listing{ padding-bottom:84px; }
}

/* ============ interstate corridor landing page (prototype) ============ */
.mg-corr{ max-width:1120px; margin:0 auto; }
.mg-corr__cost{ font-family:'Poppins',sans-serif; font-size:1.6rem; color:var(--mg-navy); margin:0 0 6px; }
.mg-corr__cost span{ color:var(--mg-muted); font-size:1rem; font-weight:500; }
.mg-corr__trust{ display:flex; align-items:center; gap:8px; color:var(--mg-text); font-weight:500; margin:0 0 20px; }
.mg-corr__chk{ flex:0 0 auto; width:19px; height:19px; background:#1aa251;
  -webkit-mask:url(assets/icons/lucide/shield-check.svg) no-repeat center / contain;
  mask:url(assets/icons/lucide/shield-check.svg) no-repeat center / contain; }
.mg-corr__finder{ background:#fff; border:1px solid var(--mg-line); border-radius:16px; padding:18px;
  box-shadow:var(--mg-shadow); display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:30px; }
.mg-corr__route{ font-size:1.05rem; color:var(--mg-navy); }
.mg-corr__route span{ color:var(--mg-blue); font-weight:700; margin:0 5px; }
.mg-corr__finder select, .mg-corr__finder input{ padding:11px 14px; border:1px solid var(--mg-line); border-radius:10px; font-size:1rem; color:var(--mg-navy); }
.mg-corr__cta{ background:var(--mg-blue); color:#fff; border:none; border-radius:12px; padding:13px 22px;
  font-family:'Poppins',sans-serif; font-weight:700; font-size:1.05rem; cursor:pointer; }
.mg-corr__cta:hover{ background:var(--mg-navy); }
.mg-corr__finder small{ flex-basis:100%; color:var(--mg-muted); }
.mg-corr__h{ font-family:'Poppins',sans-serif; font-size:1.3rem; color:var(--mg-navy); margin:4px 0 16px; }
.mg-corr__h em{ font-style:normal; font-size:.78rem; font-weight:600; color:#137a3e; background:#e8f7ee;
  border:1px solid #bfe9cd; padding:3px 10px; border-radius:999px; margin-left:8px; vertical-align:middle; }
.mg-corr__empty{ color:var(--mg-muted); }
.mg-corr__copy{ margin:34px 0 8px; border-top:1px solid var(--mg-line); padding-top:6px; }
.mg-corr__copy details{ border-bottom:1px solid var(--mg-line); padding:15px 0; }
.mg-corr__copy summary{ font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy); cursor:pointer; font-size:1.05rem; }
.mg-corr__copy p{ color:var(--mg-text); line-height:1.65; margin:10px 0 0; }
.mg-corr__copy em{ color:var(--mg-muted); font-style:italic; }
.mg-corr__related{ margin-top:24px; color:var(--mg-text); }
.mg-corr__related a{ color:var(--mg-blue); font-weight:600; text-decoration:none; }
.mg-corr__related a:hover{ text-decoration:underline; }

/* ============ Find Movers archive: sidebar removed, cards full-width ============ */
/* Scoped to the listings index ONLY (single-listing uses .hp-template--listing-view-page).
   Search happens via the top search bar; the filter sidebar is hidden. */
.hp-template--listings-view-page .hp-page__sidebar{ display:none!important; }
.hp-template--listings-view-page .hp-page__content{
  width:100%!important; max-width:100%!important; flex:1 1 100%!important;
}

/* ============ Auth modal (Sign In / Register / Claim) — light-mode brand card ============ */
/* HivePress JS handles the overlay + centering; we brand the CARD, title, fields and CTA.
   Positioning-independent so it can't fight the modal JS. */
.hp-modal{
  background:#fff; border-radius:18px; padding:30px 28px 24px;
  width:412px; max-width:92vw; box-shadow:0 24px 64px rgba(15,23,42,.30);
  /* Tall forms (e.g. the claim form) must stay inside the viewport so the Fancybox
     close (X) is always reachable — cap height and scroll the card internally. */
  max-height:88vh; overflow-y:auto; overflow-x:hidden;
}
/* Fancybox wrapper: let it size to the (capped) modal and keep the close button on top. */
.fancybox__content:has(> .hp-modal),.fancybox__slide:has(.hp-modal){ padding:0; }
.fancybox__container .carousel__button.is-close,.fancybox__container .fancybox__button--close{ z-index:10; }
.hp-modal__title{
  font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy);
  font-size:1.5rem; line-height:1.2; margin:0 0 20px;
}
.hp-modal .hp-form__field{ margin-bottom:16px; }
.hp-modal .hp-field__label,.hp-modal .hp-form__label{
  font-size:.78rem; font-weight:600; letter-spacing:.02em; color:var(--mg-muted);
  text-transform:uppercase; margin-bottom:6px; display:block;
}
.hp-modal .hp-field--text,.hp-modal .hp-field--password,.hp-modal .hp-field--email{
  border-radius:10px; padding:11px 13px; width:100%; box-sizing:border-box;
}
.hp-modal .hp-field__icon{ color:var(--mg-muted); }
/* primary CTA: solid brand (overrides the .button.alt ghost look inside the modal) */
.hp-modal .hp-form__button.button{
  width:100%; background:var(--mg-blue)!important; color:#fff!important;
  border:none!important; font-weight:600; font-size:1.05rem; border-radius:10px;
  padding:.8rem 1.25rem; margin-top:4px;
}
.hp-modal .hp-form__button.button:hover{ background:var(--mg-navy)!important; }
.hp-modal .hp-form__actions{
  text-align:center; margin-top:16px; color:var(--mg-muted); font-size:.9rem; line-height:1.7;
}
.hp-modal .hp-form__actions a{ color:var(--mg-blue); font-weight:600; text-decoration:none; }
.hp-modal .hp-form__actions a:hover{ text-decoration:underline; }
/* close (X) — HivePress injects it; keep it muted/brandable */
.hp-modal__close,.hp-modal a[data-component="modal-close"]{ color:var(--mg-muted); opacity:.7; }
.hp-modal__close:hover{ opacity:1; color:var(--mg-navy); }

/* ============ AUTO logo treatment — zero per-logo data, nothing to review ============ */
/* Content-agnostic: one uniform plate for EVERY logo (overrides the inline hp_logo_bg),
   plus a dual drop-shadow halo that traces each logo's alpha edge. The light ring rescues
   dark marks; the dark ring rescues white/light marks — so transparent logos AND logos
   with differently-coloured fonts both stay legible without detecting anything.
   Reversible: delete this block to fall back to the per-logo hp_logo_bg tiles. */
.hp-listing__image.mg-logo-tile,
.hp-listing__images.mg-logo-tile,
.mg-profile__logo{
  background:#ffffff !important;                 /* beats the inline style="background:.." */
  background-image:linear-gradient(180deg,#ffffff 0%,#f4f6fa 100%) !important;
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.06);
}
.mg-logo-img,
.hp-listing__image img,
.hp-listing__images img,
.mg-profile__logo img{
  /* dual halo: dark ring (saves light/white logos) + light ring (saves dark logos) */
  filter:
    drop-shadow(0 0 .6px rgba(15,23,42,.42))
    drop-shadow(0 0 1.2px rgba(255,255,255,.55));
}

/* ============ Listing submit / edit forms — match the mover-grid-crm aesthetic ============ */
/* CRM pattern: white card (rounded-xl, soft shadow, gray border, padding), sentence-case
   gray-700 labels (NOT uppercase), gray-300 rounded-lg inputs. Scoped to the listing forms. */
.hp-form--listing-submit,.hp-form--listing-update{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px;
  box-shadow:0 10px 30px rgba(15,23,42,.06); padding:30px 28px; max-width:720px; margin:8px auto 0;
}
.hp-form--listing-submit .hp-form__field,.hp-form--listing-update .hp-form__field{ margin-bottom:20px; }
.hp-form--listing-submit .hp-field__label,.hp-form--listing-submit .hp-form__label,
.hp-form--listing-update .hp-field__label,.hp-form--listing-update .hp-form__label{
  text-transform:none!important; letter-spacing:0!important;
  font-size:.9rem; font-weight:500; color:#374151; margin-bottom:8px; display:block;
}
.hp-form--listing-submit .hp-field__label small,.hp-form--listing-update .hp-field__label small,
.hp-form--listing-submit .hp-field__label .hp-field__label--optional{ color:#9ca3af; font-weight:400; }
.hp-form--listing-submit .hp-field--text,.hp-form--listing-submit .hp-field--url,
.hp-form--listing-submit .hp-field--number,.hp-form--listing-submit .hp-field--email,
.hp-form--listing-submit textarea,.hp-form--listing-submit .select2-selection,
.hp-form--listing-update .hp-field--text,.hp-form--listing-update .hp-field--url,
.hp-form--listing-update .hp-field--number,.hp-form--listing-update textarea,
.hp-form--listing-update .select2-selection{
  border:1px solid #d1d5db!important; border-radius:8px!important; background:#fff!important;
  padding:9px 12px!important; box-sizing:border-box; width:100%;
}
.hp-form--listing-submit .hp-field--text:focus,.hp-form--listing-submit textarea:focus,
.hp-form--listing-update .hp-field--text:focus{
  border-color:var(--mg-blue)!important; box-shadow:0 0 0 3px rgba(40,110,248,.15)!important; outline:none;
}
/* ============ Blog post (migrated from movergrid.com) ============ */
/* The cover header uses the featured image as a hero bg, but the imported content images
   are too light -> the white title was invisible. Use a solid brand-navy header instead. */
.single-post .post__header--cover{
  background:var(--mg-navy)!important;
  background-image:linear-gradient(135deg, var(--mg-navy), #0f1f48)!important;
}
.single-post .post__header--cover .post__title,
.single-post .post__header--cover .post__details,
.single-post .post__header--cover .post__details *{ color:#fff!important; }
/* readable body content width + spacing (the original Tailwind 'prose' isn't carried over) */
.single-post .post__content{ max-width:760px; }
.single-post .post__content h2{ font-family:'Poppins',sans-serif; color:var(--mg-navy); margin-top:1.6em; }
.single-post .post__content img{ border-radius:12px; }

/* ============ Account Settings — match the theme/CRM card UI ============ */
.hp-template--user-account-page .hp-page__title{ display:none!important; }
.hp-form--user-update{
  background:#fff; border:1px solid #e5e7eb; border-radius:16px;
  box-shadow:0 10px 30px rgba(15,23,42,.06); padding:30px 28px; max-width:720px; margin:8px 0 0;
}
.hp-form--user-update::before{
  content:"Account settings";
  display:block; font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy);
  font-size:1.2rem; line-height:1.2; margin:0 0 20px;
}
.hp-form--user-update .hp-form__field{ margin-bottom:20px; }
.hp-form--user-update .hp-field__label,.hp-form--user-update .hp-form__label{
  text-transform:none!important; letter-spacing:0!important;
  font-size:.9rem; font-weight:500; color:#374151; margin-bottom:8px; display:block;
}
.hp-form--user-update .hp-field--text,.hp-form--user-update .hp-field--email,
.hp-form--user-update .hp-field--password,.hp-form--user-update .hp-field--url,
.hp-form--user-update textarea{
  border:1px solid #d1d5db!important; border-radius:8px!important; background:#fff!important;
  padding:9px 12px!important; box-sizing:border-box; width:100%;
}
.hp-form--user-update .hp-field--text:focus,.hp-form--user-update .hp-field--email:focus,
.hp-form--user-update .hp-field--password:focus,.hp-form--user-update textarea:focus{
  border-color:var(--mg-blue)!important; box-shadow:0 0 0 3px rgba(40,110,248,.15)!important; outline:none;
}
.hp-form--user-update .hp-form__button.button{
  width:auto; background:var(--mg-blue)!important; color:#fff!important; border:none!important;
  font-weight:600; border-radius:10px; padding:.7rem 1.4rem;
}
.hp-form--user-update .hp-form__button.button:hover{ background:var(--mg-navy)!important; }
/* active tab + title accents -> brand blue (was ListingHive yellow #ffc107) */
.hp-menu--tabbed .hp-menu__item--current a{ color:var(--mg-blue)!important; }
/* account-page sidebar active item ("Settings") + its arrow — high specificity to beat
   the theme's many #ffc107 current-menu-item rules */
.hp-template--user-account-page .hp-page__sidebar .hp-menu__item--current > a,
.hp-template--user-account-page .hp-page__sidebar .current-menu-item > a,
.hp-template--user-account-page .hp-page__sidebar .hp-menu__item--current > a span{ color:var(--mg-blue)!important; }
.hp-template--user-account-page .hp-page__sidebar .hp-menu__item--current::before,
.hp-template--user-account-page .hp-page__sidebar .current-menu-item::before,
.hp-template--user-account-page .hp-page__sidebar .hp-menu__item--current > a::before{
  color:var(--mg-blue)!important; background-color:var(--mg-blue)!important;
}
.hp-menu--tabbed .hp-menu__item--current::before,
.hp-page__title::before,.hp-section__title::before,.title::before{ background-color:var(--mg-blue)!important; }

/* Claim form (modal) — match the theme form UI */
.hp-form--listing-claim-submit .hp-field__label,.hp-form--listing-claim-submit .hp-form__label{
  text-transform:none!important; letter-spacing:0!important;
  font-size:.9rem; font-weight:500; color:#374151; margin-bottom:8px; display:block;
}
.hp-form--listing-claim-submit .hp-field--text,.hp-form--listing-claim-submit .hp-field--email,
.hp-form--listing-claim-submit textarea{
  border:1px solid #d1d5db!important; border-radius:8px!important; background:#fff!important;
  padding:9px 12px!important; box-sizing:border-box; width:100%;
}
.hp-form--listing-claim-submit .hp-form__button.button{
  width:100%; background:var(--mg-blue)!important; color:#fff!important; border:none!important;
  font-weight:600; border-radius:10px; padding:.75rem 1.25rem;
}

/* Services / Specialty checkboxes — inline wrapping grid instead of a tall column */
.hp-form--listing-submit .hp-field--checkboxes>ul,.hp-form--listing-update .hp-field--checkboxes>ul{
  display:flex; flex-wrap:wrap; gap:9px 22px; list-style:none; margin:4px 0 0; padding:0;
}
.hp-form--listing-submit .hp-field--checkboxes>ul>li,.hp-form--listing-update .hp-field--checkboxes>ul>li{ flex:0 0 auto; margin:0; }
.hp-form--listing-submit .hp-field--checkbox,.hp-form--listing-update .hp-field--checkbox{
  display:flex; align-items:center; gap:7px; white-space:nowrap; cursor:pointer; font-size:.92rem; color:#374151;
}

/* smoother: drop the big "Add Details" page heading, let the form card lead */
.hp-template--listing-submit-page .hp-page__title,
.hp-template--listing-update-page .hp-page__title{ display:none!important; }
/* small "Add your business" heading at the top of the form card */
.hp-form--listing-submit::before{
  content:"Add your business";
  display:block; font-family:'Poppins',sans-serif; font-weight:600; color:var(--mg-navy);
  font-size:1.2rem; line-height:1.2; margin:0 0 20px;
}
.hp-template--listing-submit-page .hp-page__header{ margin-bottom:8px; }

/* easy mobile UX: full-width card, touch-friendly inputs (16px font = no iOS zoom-on-focus) */
@media (max-width:600px){
  .hp-form--listing-submit,.hp-form--listing-update{
    padding:20px 16px; margin:0; border-radius:14px; box-shadow:0 6px 18px rgba(15,23,42,.06);
  }
  .hp-form--listing-submit .hp-form__field,.hp-form--listing-update .hp-form__field{ margin-bottom:16px; }
  .hp-form--listing-submit .hp-field--text,.hp-form--listing-submit .hp-field--url,
  .hp-form--listing-submit .hp-field--number,.hp-form--listing-submit .hp-field--email,
  .hp-form--listing-submit textarea,.hp-form--listing-submit .select2-selection,
  .hp-form--listing-update .hp-field--text,.hp-form--listing-update textarea{
    padding:12px 13px!important; font-size:16px!important;
  }
  .hp-form--listing-submit .hp-form__button,.hp-form--listing-update .hp-form__button{ width:100%; }
}

/* ── MoverGrid: featured badge → blue pill, off the logo (added 2026-06) ───────── */
.hp-listing--view-block .hp-listing__featured-badge.mg-featured,
.hp-listing__featured-badge.mg-featured{
	position:absolute; z-index:3; top:.5rem; right:.5rem; left:auto; bottom:auto;
	display:inline-flex; align-items:center; gap:.3rem;
	width:auto; height:auto; padding:.28rem .62rem;
	background:#2563eb; color:#fff; border-radius:9999px;
	font-size:11px; font-weight:700; line-height:1; letter-spacing:.03em;
	box-shadow:0 2px 6px rgba(37,99,235,.35);
}
.hp-listing__featured-badge.mg-featured i{ font-size:10px; color:#fff; margin:0; }
.hp-listing__featured-badge.mg-featured .mg-featured__txt{ text-transform:uppercase; }

/* move featured pill OFF the logo → top-right of the whole card (in white space) */
.hp-listing--view-block{ position:relative; }
.hp-listing--view-block .hp-listing__header{ position:static; }
.hp-listing--view-block .hp-listing__featured-badge.mg-featured{ top:10px; right:10px; left:auto; }
.hp-listing--view-block.hp-listing--featured .hp-listing__title{ padding-right:92px; }

/* featured/claimed card outline → green (was ListingHive yellow #ffc107) */
.hp-listing--view-block.hp-listing--featured{ border-color:#2563eb !important; }

/* PERF: kill the full-screen page loader — parent theme hid content until ALL images
   loaded (imagesLoaded), causing ~7.7s LCP on a 0.19s server. Content paints immediately. */
.site-loader{ display:none !important; }

/* Show-more button (replaced infinite scroll) */
.mg-showmore-wrap{ text-align:center; margin:26px 0 6px; }
.mg-showmore{ display:inline-block; padding:12px 30px; border:0; border-radius:9999px; background:#2563eb; color:#fff; font-weight:700; font-size:15px; cursor:pointer; box-shadow:0 2px 8px rgba(37,99,235,.3); transition:background .15s; }
.mg-showmore:hover{ background:#1d4ed8; }
.mg-showmore[disabled]{ opacity:.6; cursor:default; }

/* ═══ FOUC / flash fixes (2026-06) ═══════════════════════════════════════════════ */
/* 1. Search-form flash: hide HivePress's native fields (location + category checkboxes)
      BEFORE first paint via the early .mg-js html class (set in wp_head). The clean
      .mg-lane is JS-built. No-JS users still get the native form (graceful fallback). */
.mg-js .hp-form--listing-search .hp-form__field--location,
.mg-js .hp-form--listing-search .hp-form__field--search,
.mg-js .hp-form--listing-search .hp-form__field--checkboxes,
.mg-js .hp-form--listing-search .hp-form__button,
.mg-js .hp-form--listing-search .hp-button--listing-filter{ display:none !important; }

/* 2. Logo alt-text flash: before a logo image loads the <img> renders its alt (the company
      name) as text; transparent text colour hides it — the tile background shows instead. */
.mg-logo-tile img,.hp-listing__image img,.hp-listing__images img,.mg-profile__logo img{ color:transparent; }

/* 3. Mobile search lane (Option B): From + To full-width, stacked; locate pin on the
      right of the From field; NO switch arrow on mobile. */
@media (max-width:560px){
  .mg-lane__fields{ display:flex; flex-direction:column; gap:10px; }
  .mg-lane__field{ height:auto; min-height:64px; padding:11px 16px; align-items:flex-start; }
  .mg-lane__field--from{ padding-right:48px; }
  .mg-lane__field button.mg-lane__geo{ right:12px; }
  .mg-lane__arrow{ display:none !important; }
  .mg-lane__lbl{ margin-bottom:5px; }
}

/* ═══ Lane now SERVER-RENDERED in the archive header (no JS pop-in / FOUC) ═══════ */
.mg-js .hp-form--listing-search{ display:none !important; }   /* native form fully hidden */
.mg-lane-wrap{ max-width:880px; margin:0 auto; padding:0 24px 38px; text-align:left; }
.mg-lane-card{ background:#fff; border:1px solid var(--mg-line); border-radius:22px; padding:24px 26px 26px; box-shadow:0 20px 48px rgba(15,23,42,.12); }
.mg-lane-card__lead{ font-family:'Poppins',sans-serif; font-weight:600; font-size:1.06rem; color:var(--mg-navy); margin:0 0 16px; }
@media (max-width:560px){ .mg-lane-card__lead{ font-size:1rem; margin-bottom:12px; } }
@media (max-width:560px){ .mg-lane-wrap{ padding:0 16px 28px; } .mg-lane-card{ padding:16px; border-radius:14px; } }

/* ═══ Mobile: equal From/To fields + FEATURED badge lifted off the card ═══════════ */
@media (max-width:560px){
  /* From + To same size: base align-items:center let them shrink to content; stretch = equal full width */
  .mg-lane__fields{ align-items:stretch !important; }
  /* FEATURED pill: lift it half-outside the card's top edge so it stops blocking the company name */
  .hp-listing--view-block{ overflow:visible; }
  .hp-listing--view-block .hp-listing__featured-badge.mg-featured{ top:-11px; right:12px; left:auto; }
  .hp-listing--view-block.hp-listing--featured .hp-listing__title{ padding-right:0; }
}
