/*
 Theme Name:   ExpertHive Child - Visto
 Theme URI:    https://soyvisto.com
 Description:  Child theme for ExpertHive with Visto customizations
 Author:       Visto
 Template:     experthive
 Version:      1.0.0
 Text Domain:  experthive-child
*/

/* ==========================================================================
   CATEGORIES SECTION — Header row fix
   ========================================================================== */

/* Left container: take full available space (categories + featured headers) */
.elementor-element-c7f7fad,
.elementor-element-20d7499 {
  --width: auto !important;
  flex: 1 1 auto !important;
}

/* Right container: shrink to content, align bottom-right (categories + featured headers) */
.elementor-element-91d92cd,
.elementor-element-ebef548 {
  --width: auto !important;
  flex: 0 0 auto !important;
  align-self: flex-end !important;
}

/* ==========================================================================
   PROVIDER CTA SECTION — Left text grows, right buttons shrink
   ========================================================================== */

/* Left: take available space, 10px gap between child widgets */
.elementor-element-b5fe544 {
  --width: auto !important;
  flex: 1 1 auto !important;
  --widgets-spacing-row: 10px !important;
}

/* Right: shrink to button width, center vertically, 10px gap between buttons */
.elementor-element-9ed4859 {
  --width: auto !important;
  flex: 0 0 auto !important;
  align-self: center !important;
  --widgets-spacing-row: 10px !important;
}

/* Row gap between left text and right buttons */
.elementor-element-e3e8c6c {
  --widgets-spacing-row: 56px !important;
}

/* ==========================================================================
   HEADER NAV — Sticky top bar
   ========================================================================== */

/* ==========================================================================
   HEADER — Global (element IDs: 707=7a2b2d6, 865=866c009, 935=daa57b9)
   ========================================================================== */

/* Outer: sticky + shadow */
.elementor-element-7a2b2d6,
.elementor-element-866c009,
.elementor-element-daa57b9 {
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06) !important;
}

/* Inner: align center */
.elementor-element-7e554b4 > .e-con-inner,
.elementor-element-bdc5807 > .e-con-inner,
.elementor-element-67031f7 > .e-con-inner {
  align-items: center !important;
}

/* Logo: shrink to content */
.elementor-element-425d6f4,
.elementor-element-51d9eae,
.elementor-element-56ef382 {
  --width: auto !important;
  flex: 0 0 auto !important;
}

/* Nav: shrink, left margin, single line */
.elementor-element-84f7bd8,
.elementor-element-3ddc6fb,
.elementor-element-a76d00b {
  --width: auto !important;
  flex: 0 0 auto !important;
  margin-left: 20px !important;
}

/* CTA: shrink, push right */
.elementor-element-684c5ac,
.elementor-element-84072ae,
.elementor-element-4466f2d {
  --width: auto !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
}

/* Nav menu: no pointer, no wrap */
.elementor-element-2fc727d .elementor-item::before,
.elementor-element-2fc727d .elementor-item::after,
.elementor-element-f1a95bc .elementor-item::before,
.elementor-element-f1a95bc .elementor-item::after,
.elementor-element-3f54aa7 .elementor-item::before,
.elementor-element-3f54aa7 .elementor-item::after {
  display: none !important;
}

/* Force single line nav */
.elementor-element-2fc727d .elementor-nav-menu,
.elementor-element-f1a95bc .elementor-nav-menu,
.elementor-element-3f54aa7 .elementor-nav-menu {
  flex-wrap: nowrap !important;
}

/* ==========================================================================
   PARA PROFESIONALES — Hero fixes
   ========================================================================== */

/* Subtitle */
.elementor-865 .elementor-element.elementor-element-0430d24 p {
  font-family: Roboto, sans-serif;
  font-size: 17px;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.7;
  max-width: 560px;
  margin: 0px auto 36px;
}

/* Buttons row: auto width children, centered */
.elementor-element-3d4c8f4,
.elementor-element-679309a {
  --width: auto !important;
  flex: 0 0 auto !important;
}
.elementor-element-371d322 > .e-con-inner {
  justify-content: center !important;
  gap: 12px !important;
}
.elementor-element-371d322 {
  justify-content: center !important;
  gap: 12px !important;
}

/* Trust stats row: auto width children, centered */
.elementor-element-1764bf7,
.elementor-element-941043b,
.elementor-element-cf9bd52 {
  --width: auto !important;
  flex: 0 0 auto !important;
  gap: 0 !important;
}
.elementor-element-47f46bf {
  justify-content: center !important;
}
.elementor-element-47f46bf > .e-con-inner {
  justify-content: center !important;
  gap: 32px !important;
}
.elementor-element-1764bf7 > .e-con-inner,
.elementor-element-941043b > .e-con-inner,
.elementor-element-cf9bd52 > .e-con-inner {
  gap: 0 !important;
}

/* Hero inner container: tighter widget spacing */
.elementor-element-0a7350f {
  --widgets-spacing-row: 10px !important;
}

/* ==========================================================================
   PARA PROFESIONALES — How It Works step cards
   ========================================================================== */

/* Card containers */
.elementor-element-ae98ef9,
.elementor-element-1a308d0,
.elementor-element-fb8a577,
.elementor-element-ea38ea1 {
  position: relative !important;
}

/* Icon: small 28px, left-aligned */
.elementor-element-549c705 .elementor-icon-box-wrapper,
.elementor-element-09dbfcb .elementor-icon-box-wrapper,
.elementor-element-c027d30 .elementor-icon-box-wrapper,
.elementor-element-67e345e .elementor-icon-box-wrapper {
  text-align: left !important;
}
.elementor-element-549c705 .elementor-icon,
.elementor-element-09dbfcb .elementor-icon,
.elementor-element-c027d30 .elementor-icon,
.elementor-element-67e345e .elementor-icon {
  display: inline-flex !important;
  margin: 0 !important;
}
.elementor-element-549c705 .elementor-icon svg,
.elementor-element-09dbfcb .elementor-icon svg,
.elementor-element-c027d30 .elementor-icon svg,
.elementor-element-67e345e .elementor-icon svg {
  width: 28px !important;
  height: 28px !important;
  display: inline !important;
}

/* Step numbers via ::after */
.elementor-element-ae98ef9::after,
.elementor-element-1a308d0::after,
.elementor-element-fb8a577::after,
.elementor-element-ea38ea1::after {
  position: absolute;
  top: 16px;
  right: 16px;
  font-family: Montserrat, sans-serif;
  font-size: 32px;
  font-weight: 800;
  color: #F3F4F6;
  letter-spacing: -0.03em;
}
.elementor-element-ae98ef9::after { content: "01"; }
.elementor-element-1a308d0::after { content: "02"; }
.elementor-element-fb8a577::after { content: "03"; }
.elementor-element-ea38ea1::after { content: "04"; }

/* ==========================================================================
   PARA PROFESIONALES — Pillar tabs
   ========================================================================== */

/* Tab buttons — active state */
.elementor-element-45f23b3 .elementor-tab-title.elementor-active {
  background: #0F1727 !important;
  color: #FFFFFF !important;
  border: 1.5px solid #0F1727 !important;
  border-radius: 6px !important;
  padding: 8px 24px !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: all 0.14s !important;
  letter-spacing: 0.04em !important;
}
/* Tab buttons — inactive state */
.elementor-element-45f23b3 .elementor-tab-title:not(.elementor-active) {
  background: #FFFFFF !important;
  color: #2D3748 !important;
  border: 1.5px solid #E5E7EB !important;
  border-radius: 6px !important;
  padding: 8px 24px !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: all 0.14s !important;
  letter-spacing: 0.04em !important;
}

/* Tab content card */
.elementor-element-45f23b3 .elementor-tab-content {
  background: #FFFFFF !important;
  border: 1.5px solid #E5E7EB !important;
  border-radius: 12px !important;
  padding: 32px !important;
  margin-top: 20px !important;
}

/* Tab nav centered */
.elementor-element-45f23b3 .elementor-tabs-wrapper {
  display: flex !important;
  justify-content: center !important;
  gap: 8px !important;
  border-bottom: none !important;
}
/* Tab title: hide Elementor ::after pointer, use ::before for icon */
.elementor-element-45f23b3 .elementor-tab-title::after {
  display: none !important;
}
.elementor-element-45f23b3 .elementor-tab-desktop-title {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.elementor-element-45f23b3 .elementor-tab-desktop-title::before {
  content: "" !important;
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  flex-shrink: 0 !important;
  border: none !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-element-45f23b3 .elementor-tab-desktop-title[data-tab="1"]::before {
  background-image: url('/wp-content/uploads/2026/03/2696-fe0f.png') !important;
}
.elementor-element-45f23b3 .elementor-tab-desktop-title[data-tab="2"]::before {
  background-image: url('/wp-content/uploads/2026/03/1f3a8-1.svg') !important;
}
.elementor-element-45f23b3 .elementor-tab-title img.emoji {
  display: none !important;
}

/* ==========================================================================
   PARA PROFESIONALES — Standards cards
   ========================================================================== */

/* Each icon-box as a card */
.elementor-element-4a96f7b .elementor-icon-box-wrapper,
.elementor-element-d5031ef .elementor-icon-box-wrapper,
.elementor-element-197a802 .elementor-icon-box-wrapper,
.elementor-element-0d985fd .elementor-icon-box-wrapper {
  display: flex !important;
  gap: 14px !important;
  align-items: flex-start !important;
  background: #F7F8FA;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 16px;
}

/* Icon: 24px emoji */
.elementor-element-4a96f7b .elementor-icon svg,
.elementor-element-d5031ef .elementor-icon svg,
.elementor-element-197a802 .elementor-icon svg,
.elementor-element-0d985fd .elementor-icon svg {
  width: 24px !important;
  height: 24px !important;
  display: inline !important;
}

/* Standards right column: gap between cards */
.elementor-element-f438be9 {
  --widgets-spacing-row: 14px !important;
}


/* ==========================================================================
   GLOBAL — Override theme list margin on nav menus
   ========================================================================== */
ul.elementor-nav-menu li:not(:last-child),
.elementor-nav-menu--main ul li:not(:last-child) {
  margin-bottom: 0 !important;
}

/* Active menu item styling */
.elementor-nav-menu .current-menu-item a,
.elementor-nav-menu .elementor-item-active {
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0F1727 !important;
  border-bottom: 2px solid #1AB87A !important;
  padding-bottom: 2px !important;
}

/* ==========================================================================
   HERO — Subtitle
   ========================================================================== */
.visto-hero-subtitle {
  max-width: 520px;
  margin: 0 auto 20px;
  text-align: center;
}

/* ==========================================================================
   HERO — Trust stats auto width
   ========================================================================== */
.elementor-element-437fd9a,
.elementor-element-5e41422,
.elementor-element-70f7161 {
  --width: auto !important;
  flex: 0 0 auto !important;
}
.elementor-element-437fd9a > .e-con-inner,
.elementor-element-5e41422 > .e-con-inner,
.elementor-element-70f7161 > .e-con-inner {
  gap: 0 !important;
}
.elementor-element-c81d6b4 > .e-con-inner {
  justify-content: center !important;
  gap: 32px !important;
}

/* ==========================================================================
   GLOBAL FONT OVERRIDE — Replace DM Sans with Montserrat/Roboto
   ========================================================================== */

body,
.site-content,
.content-block {
  font-family: Roboto, sans-serif !important;
  font-weight: 400 !important;
}


/* ==========================================================================
   FOOTER — 4-column layout (brand 2fr + 3 menus 1fr each)
   ========================================================================== */

/* Brand column: 2x width, description max-width 260px */
.elementor-707 .elementor-element.elementor-element-9a86aaa {
  --width: auto !important;
  flex: 2 1 0% !important;
  --widgets-spacing-row: 10px !important;
}
.elementor-element-b32fa06 {
  max-width: 260px !important;
}
.elementor-element-b32fa06 p {
  font-weight: 500 !important;
}

/* Menu columns: equal width */
.elementor-707 .elementor-element.elementor-element-e67cdf3,
.elementor-707 .elementor-element.elementor-element-cd7b52f,
.elementor-707 .elementor-element.elementor-element-4df7439 {
  --width: auto !important;
  flex: 1 1 0% !important;
  --widgets-spacing-row: 12px !important;
}

/* Nav menu links: gap 7px, no padding, no bullets, vertical */
.elementor-element-8fb6f29 .elementor-nav-menu li,
.elementor-element-bdbb0df .elementor-nav-menu li,
.elementor-element-f457d4c .elementor-nav-menu li {
  margin-bottom: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.elementor-element-8fb6f29 .elementor-nav-menu,
.elementor-element-bdbb0df .elementor-nav-menu,
.elementor-element-f457d4c .elementor-nav-menu {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
}
.elementor-element-8fb6f29 .elementor-nav-menu a,
.elementor-element-bdbb0df .elementor-nav-menu a,
.elementor-element-f457d4c .elementor-nav-menu a {
  font-family: Roboto, sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: rgba(255,255,255,0.5) !important;
  padding: 0 !important;
  text-decoration: none !important;
}
.elementor-element-8fb6f29 .elementor-nav-menu a:hover,
.elementor-element-bdbb0df .elementor-nav-menu a:hover,
.elementor-element-f457d4c .elementor-nav-menu a:hover {
  color: rgba(255,255,255,0.85) !important;
}

/* Remove menu pointer/underline effects */
.elementor-element-8fb6f29 .elementor-item::before,
.elementor-element-8fb6f29 .elementor-item::after,
.elementor-element-bdbb0df .elementor-item::before,
.elementor-element-bdbb0df .elementor-item::after,
.elementor-element-f457d4c .elementor-item::before,
.elementor-element-f457d4c .elementor-item::after {
  display: none !important;
}

/* Footer columns row: no side margin, 32px column gap */
.elementor-element-25bd48c > .e-con-inner {
  margin: 0 !important;
}
.elementor-element-25bd48c {
  --widgets-spacing-column: 32px !important;
}

/* Copyright bar: row, space-between, no margin */
.elementor-element-1a816c0,
.elementor-element-1a816c0 > .e-con-inner {
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin: 0 !important;
}
.elementor-element-1a816c0 .elementor-widget {
  width: auto !important;
  flex-shrink: 0 !important;
}

/* Footer responsive — handled in global responsive block at bottom */

/* ==========================================================================
   TRUST CARDS — 2x2 icon boxes (Por qué Visto)
   ========================================================================== */

/* Icon: 38x38 green rounded square with 18px emoji */
.elementor-element-f9a25f7 .elementor-icon,
.elementor-element-c0de920 .elementor-icon,
.elementor-element-3923273 .elementor-icon,
.elementor-element-7549e87 .elementor-icon {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border-radius: 8px !important;
  background: #E8F8F2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}
.elementor-element-f9a25f7 .elementor-icon svg,
.elementor-element-c0de920 .elementor-icon svg,
.elementor-element-3923273 .elementor-icon svg,
.elementor-element-7549e87 .elementor-icon svg {
  width: 18px !important;
  height: 18px !important;
  display: inline !important;
}

/* Remove default icon-box wrapper padding */
.elementor-element-f9a25f7 .elementor-icon-box-wrapper,
.elementor-element-c0de920 .elementor-icon-box-wrapper,
.elementor-element-3923273 .elementor-icon-box-wrapper,
.elementor-element-7549e87 .elementor-icon-box-wrapper {
  text-align: left !important;
}

/* Widget spacing: remove default margins */
.elementor-element-f9a25f7 .elementor-widget-container,
.elementor-element-c0de920 .elementor-widget-container,
.elementor-element-3923273 .elementor-widget-container,
.elementor-element-7549e87 .elementor-widget-container {
  padding: 0 !important;
}

/* ==========================================================================
   HOW IT WORKS — 3-step icon boxes
   ========================================================================== */

/* Icon circle */
.elementor-element-8485c9a .elementor-icon,
.elementor-element-6e533f2 .elementor-icon,
.elementor-element-07c230d .elementor-icon {
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 2px solid #C6EFE0 !important;
  box-shadow: 0 4px 12px rgba(26,184,122,0.1) !important;
  font-size: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.elementor-element-8485c9a .elementor-icon i,
.elementor-element-6e533f2 .elementor-icon i,
.elementor-element-07c230d .elementor-icon i {
  color: #1AB87A !important;
  font-size: 22px !important;
}

/* Center text */
.elementor-element-8485c9a .elementor-icon-box-wrapper,
.elementor-element-6e533f2 .elementor-icon-box-wrapper,
.elementor-element-07c230d .elementor-icon-box-wrapper {
  text-align: center !important;
}

/* Step numbers via ::after on each card */
.elementor-element-8485c9a::after,
.elementor-element-6e533f2::after,
.elementor-element-07c230d::after {
  position: absolute;
  top: 24px;
  right: 20px;
  font-family: Montserrat, sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: #F3F4F6;
}
.elementor-element-8485c9a { position: relative !important; }
.elementor-element-6e533f2 { position: relative !important; }
.elementor-element-07c230d { position: relative !important; }
.elementor-element-8485c9a::after { content: "01"; }
.elementor-element-6e533f2::after { content: "02"; }
.elementor-element-07c230d::after { content: "03"; }

/* ==========================================================================
   SEARCH BAR — Hero search form [visto_search_bar]
   ========================================================================== */

.visto-search-bar {
  background: #fff;
  border-radius: 10px;
  padding: 8px;
  display: flex;
  gap: 8px;
  max-width: 640px;
  margin: 0 auto 32px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}
.visto-search-bar__input-wrap {
  flex: 1;
  position: relative;
}
.visto-search-bar__icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.35;
}
.visto-search-bar__input {
  width: 100% !important;
  height: 44px !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  padding: 0 14px 0 34px !important;
  font-family: Roboto, sans-serif !important;
  font-size: 14px !important;
  color: #0F1727 !important;
  box-shadow: none !important;
}
.visto-search-bar__input::placeholder {
  color: #9CA3AF !important;
  font-size: 14px !important;
}
.visto-search-bar__select {
  height: 44px !important;
  background: #F7F8FA !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 7px !important;
  padding: 0 12px !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #6B7280 !important;
  cursor: pointer !important;
  outline: none !important;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B7280' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 30px !important;
}
.visto-search-bar__button {
  background: #1AB87A !important;
  border: none !important;
  border-radius: 7px !important;
  padding: 0 24px !important;
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #fff !important;
  cursor: pointer !important;
  letter-spacing: 0.04em !important;
  white-space: nowrap !important;
}
.visto-search-bar__button:hover {
  background: #09756A !important;
}

/* ==========================================================================
   LISTING CARDS — Visto custom shortcode [visto_listings]
   ========================================================================== */

/* Grid */
.visto-listings {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}

/* Card */
.visto-listing-card {
  background: #fff;
  border: 1.5px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.18s ease;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.visto-listing-card:hover {
  border-color: #1AB87A;
  box-shadow: 0 8px 24px rgba(26,184,122,0.13);
  transform: translateY(-3px);
}

/* Header: avatar + name + title */
.visto-listing-card__header {
  padding: 16px 16px 12px;
  border-bottom: 1px solid #F3F4F6;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  transition: background 0.18s;
}
.visto-listing-card:hover .visto-listing-card__header {
  background: #E8F8F2;
}

/* Avatar */
.visto-listing-card__avatar {
  width: 46px;
  height: 46px;
  min-width: 46px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: Montserrat, sans-serif;
  font-size: 14px;
  font-weight: 800;
  flex-shrink: 0;
}
.visto-listing-card__avatar img {
  width: 46px;
  height: 46px;
  border-radius: 8px;
  object-fit: cover;
}

/* Info: name + title */
.visto-listing-card__info {
  flex: 1;
  min-width: 0;
}
.visto-listing-card__name {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 2px;
}
.visto-listing-card__name a {
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #0F1727;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.visto-listing-card__verified {
  flex-shrink: 0;
}
.visto-listing-card__title {
  font-family: Roboto, sans-serif;
  font-style: italic;
  font-size: 12px;
  color: #6B7280;
}

/* Body: meta + tags */
.visto-listing-card__body {
  padding: 10px 16px;
}
.visto-listing-card__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.visto-listing-card__stars {
  display: inline-flex;
  gap: 1px;
  font-size: 10px;
  line-height: 1;
}
.visto-listing-card__rating {
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  font-size: 11px;
  color: #0F1727;
}
.visto-listing-card__reviews {
  font-family: Roboto, sans-serif;
  font-size: 11px;
  color: #9CA3AF;
}
.visto-listing-card__dot {
  color: #E5E7EB;
}
.visto-listing-card__cat {
  background: #F3F4F6;
  color: #6B7280;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  font-family: Montserrat, sans-serif;
  letter-spacing: 0.04em;
}

/* Tags */
.visto-listing-card__tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}
.visto-listing-card__tag {
  background: #E8F8F2;
  color: #09756A;
  border: 1px solid #C6EFE0;
  padding: 1px 8px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  font-family: Montserrat, sans-serif;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Footer: price + link */
.visto-listing-card__footer {
  padding: 8px 16px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.visto-listing-card__price {
  font-family: Montserrat, sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: #0F1727;
}
.visto-listing-card__link {
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  color: #1AB87A;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
}

/* Hide HP default widget if both exist */
.elementor-widget-hivepress-listings .hp-listings {
  display: none !important;
}

/* ==========================================================================
   LISTING CATEGORIES — Compact horizontal card (matches JSX prototype)
   ========================================================================== */

/* Grid: 4 equal columns */
.hp-listing-categories.hp-grid .hp-row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.hp-listing-categories.hp-grid .hp-row::before,
.hp-listing-categories.hp-grid .hp-row::after {
  display: none !important;
}
.hp-listing-categories .hp-grid__item.hp-col-sm-3.hp-col-xs-12 {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  float: none !important;
  margin: 0 !important;
  overflow: visible !important;
}

/* Card: horizontal flex row */
article.hp-listing-category.hp-listing-category--view-block {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 14px !important;
  background: #fff !important;
  border: 1.5px solid #E5E7EB !important;
  border-radius: 10px !important;
  padding: 16px 48px 16px 18px !important;
  transition: all 0.18s ease !important;
  box-shadow: none !important;
  overflow: visible !important;
  position: relative !important;
}
article.hp-listing-category--view-block:hover {
  border-color: #1AB87A !important;
  box-shadow: 0 6px 20px rgba(26, 184, 122, 0.12) !important;
  transform: translateY(-2px) !important;
}

/* Icon: green rounded square */
.hp-listing-category--view-block .hp-listing-category__header {
  flex-shrink: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
  border: none !important;
}
.hp-listing-category--view-block .hp-listing-category__icon {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border-radius: 8px !important;
  background: #E8F8F2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.hp-listing-category--view-block .hp-listing-category__icon::before {
  display: none !important;
}
.hp-listing-category--view-block .hp-listing-category__icon a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}
.hp-listing-category--view-block .hp-listing-category__icon img {
  width: 26px !important;
  height: 26px !important;
  object-fit: contain !important;
  border-radius: 0 !important;
}

/* Content: name + description */
.hp-listing-category--view-block .hp-listing-category__content {
  flex: 1 !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}
.hp-listing-category--view-block .hp-listing-category__name {
  font-family: Montserrat, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0F1727 !important;
  margin-bottom: 2px !important;
}
.hp-listing-category--view-block .hp-listing-category__name a {
  color: #0F1727 !important;
  text-decoration: none !important;
}
.hp-listing-category--view-block .hp-listing-category__description {
  font-family: Roboto, sans-serif !important;
  font-size: 11px !important;
  color: #6B7280 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  margin-bottom: 0 !important;
}

/* Count: number positioned top-right of card */
.hp-listing-category--view-block .hp-listing-category__details.hp-listing-category__details--primary {
  position: absolute !important;
  top: 50% !important;
  right: 18px !important;
  transform: translateY(-50%) !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
}
.hp-listing-category--view-block .hp-listing-category__details::before {
  display: none !important;
}
.hp-listing-category--view-block .hp-listing-category__count {
  font-family: Montserrat, sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #1AB87A !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}
.hp-listing-category--view-block .hp-listing-category__count::before {
  display: none !important;
}

/* ==========================================================================
   ZONES — Pill buttons ([visto_zones] shortcode)
   ========================================================================== */

.visto-zones {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}
.visto-zone {
  background: #fff;
  border: 1.5px solid #E5E7EB;
  border-radius: 7px;
  padding: 8px 16px;
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: #2D3748;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: all 0.14s ease;
  text-decoration: none;
}
.visto-zone:hover {
  border-color: #1AB87A;
  color: #09756A;
  text-decoration: none;
}
.visto-zone__icon {
  width: 16px;
  height: 16px;
  object-fit: contain;
}
.visto-zone__count {
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #9CA3AF;
}

/* ==========================================================================
   RESPONSIVE — Tablet (max-width: 768px)
   ========================================================================== */
@media (max-width: 768px) {

  /* Categories: 2 columns */
  .hp-listing-categories.hp-grid .hp-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* Listings: 2 columns */
  .visto-listings {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* How It Works: stack vertically */
  .elementor-element-9d3d1c6 {
    flex-direction: column !important;
  }

  /* Trust 2x2: stack to 1 column */
  .elementor-element-37c80df {
    --grid-template-columns: 1fr !important;
  }

  /* Trust section: stack left/right */
  .elementor-element-90363e9 {
    flex-direction: column !important;
  }

  /* CTA section: stack left/right */
  .elementor-element-e3e8c6c {
    flex-direction: column !important;
  }

  /* Footer columns: 2x2 grid */
  .elementor-element-25bd48c {
    flex-wrap: wrap !important;
  }
  .elementor-707 .elementor-element.elementor-element-9a86aaa {
    flex: 1 1 100% !important;
  }
  .elementor-707 .elementor-element.elementor-element-e67cdf3,
  .elementor-707 .elementor-element.elementor-element-cd7b52f,
  .elementor-707 .elementor-element.elementor-element-4df7439 {
    flex: 1 1 30% !important;
  }

  /* Copyright bar: stack */
  .elementor-element-1a816c0,
  .elementor-element-1a816c0 > .e-con-inner {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }

  /* Search bar: stack vertically */
  .visto-search-bar {
    flex-direction: column !important;
  }

  /* Featured/Categories header rows */
  .elementor-element-7535684,
  .elementor-element-2e168c4 {
    flex-direction: column !important;
  }
}

/* ==========================================================================
   RESPONSIVE — Mobile (max-width: 480px)
   ========================================================================== */
@media (max-width: 480px) {

  /* Categories: 1 column */
  .hp-listing-categories.hp-grid .hp-row {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Listings: 1 column */
  .visto-listings {
    grid-template-columns: 1fr !important;
  }

  /* Footer: all columns stack */
  .elementor-707 .elementor-element.elementor-element-e67cdf3,
  .elementor-707 .elementor-element.elementor-element-cd7b52f,
  .elementor-707 .elementor-element.elementor-element-4df7439 {
    flex: 1 1 100% !important;
  }

  /* Zones: center wrap */
  .visto-zones {
    justify-content: center !important;
  }
}
