/* === HARD RESET: kill every theme style inside .havv-wrap === */
.havv-wrap,
.havv-wrap *,
.havv-wrap *::before,
.havv-wrap *::after{box-sizing:border-box!important;margin:0!important;padding:0!important;text-transform:none!important;letter-spacing:normal!important;text-indent:0!important;text-shadow:none!important}
.havv-wrap input[type="text"],
.havv-wrap input[type="text"]:focus,
.havv-wrap input[type="text"]:hover,
.havv-wrap input[type="text"]:active{
    -webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;
    border:none!important;border-radius:0!important;outline:none!important;
    box-shadow:none!important;-webkit-box-shadow:none!important;
    background:transparent!important;background-image:none!important;
    margin:0!important;min-height:0!important;max-width:none!important
}
.havv-wrap button,
.havv-wrap button:focus,
.havv-wrap button:active{outline:none!important;box-shadow:none!important;-webkit-box-shadow:none!important;text-decoration:none!important}

/* === Wrapper === */
.havv-wrap{width:var(--havv-w,100%)!important;max-width:100%!important;margin:0 auto!important;padding:0!important;font-family:var(--havv-font,inherit);font-size:var(--havv-fs,15px);position:relative;line-height:1.4}

/* === Bar (border is set inline via PHP) === */
.havv-bar{display:flex!important;align-items:stretch!important;border-radius:var(--havv-r,8px)!important;overflow:hidden!important;background:var(--havv-bg,#fff)!important;box-shadow:none!important;-webkit-box-shadow:none!important;padding:0!important;margin:0!important}

/* === Fields === */
.havv-field{flex:1!important;position:relative!important;display:flex!important;align-items:center!important;min-width:0!important;padding:0!important;margin:0!important;border:none!important;background:transparent!important}
.havv-field input[type="text"]{width:100%!important;height:var(--havv-h,50px)!important;padding:0 16px!important;color:var(--havv-color,#333)!important;font-family:inherit!important;font-size:inherit!important;line-height:var(--havv-h,50px)!important}
.havv-field input[type="text"]::placeholder{color:var(--havv-color,#333)!important;opacity:.5!important}

/* === Button: normal + hover === */
.havv-wrap .havv-bar button#havv-btn-search,
.havv-wrap .havv-bar button#havv-btn-search:focus,
.havv-wrap .havv-bar button#havv-btn-search:active{
    flex-shrink:0!important;padding:0 28px!important;height:auto!important;min-height:var(--havv-h,50px)!important;
    border:none!important;border-radius:0!important;
    background:var(--havv-btn-bg,#0073aa)!important;color:var(--havv-btn-color,#fff)!important;
    font-family:inherit!important;font-size:inherit!important;font-weight:600!important;
    cursor:pointer!important;line-height:1!important;
    transition:background .25s ease,color .25s ease!important;
    margin:0!important
}
.havv-wrap .havv-bar button#havv-btn-search:hover{
    background:var(--havv-btn-hover-bg,#005f8a)!important;
    color:var(--havv-btn-hover-color,#fff)!important
}

/* === Dropdown province === */
.havv-dropdown{position:absolute!important;left:0;right:0;background:#fff!important;border:1px solid #ddd!important;max-height:240px;overflow-y:auto;display:none;z-index:99999;border-radius:0 0 8px 8px!important;box-shadow:0 6px 16px rgba(0,0,0,.12)!important;padding:0!important;margin:0!important}
.havv-dropdown.active{display:block!important}
.havv-dropdown-item{padding:10px 16px!important;cursor:pointer;font-size:inherit;color:#333!important;transition:background .15s;border-bottom:1px solid #f5f5f5!important;margin:0!important}
.havv-dropdown-item:last-child{border-bottom:none!important}
.havv-dropdown-item:hover,.havv-dropdown-item.selected{background:#f0f4f8!important}
.havv-dropdown-item .havv-prov-sigla{color:#999!important;font-size:.85em!important;margin-left:4px!important}
.havv-dropdown-empty{padding:10px 16px!important;color:#999!important;font-style:italic}

/* === Results === */
.havv-results{margin-top:16px!important;padding:0!important}

/* Base card */
.havv-result-card{display:flex!important;align-items:flex-start!important;gap:16px!important;padding:16px!important;background:#fff!important;border:1px solid #e0e0e0!important;border-radius:8px!important;margin-bottom:10px!important;transition:box-shadow .2s}
.havv-result-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)!important}

/* Free card: compact */
.havv-card-free{padding:12px 16px!important}
.havv-card-free .havv-result-logo{width:44px!important;height:44px!important}

/* Premium card: larger */
.havv-card-premium{padding:20px!important;border-width:2px!important}
.havv-card-premium .havv-result-logo{width:72px!important;height:72px!important}
.havv-card-premium .havv-result-name{font-size:1.15em!important}
.havv-card-diamond{border-color:#b39ddb!important;background:linear-gradient(135deg,#faf8ff 0%,#fff 100%)!important}
.havv-card-gold{border-color:#ffd54f!important;background:linear-gradient(135deg,#fffdf5 0%,#fff 100%)!important}

/* Logo */
.havv-result-logo{border-radius:50%!important;object-fit:cover!important;background:#eee!important;flex-shrink:0!important;padding:0!important;margin:0!important}

.havv-result-info{flex:1!important;min-width:0!important;padding:0!important}
.havv-result-name{font-weight:700!important;font-size:1.05em!important;margin:0 0 2px!important;padding:0!important}
.havv-result-name a{color:inherit!important;text-decoration:none!important}
.havv-result-name a:hover{text-decoration:underline!important}
.havv-result-loc{color:#666!important;font-size:.92em!important;margin:0!important;padding:0!important}

/* Description: 5 line clamp (premium only) */
.havv-result-desc{color:#555!important;font-size:.9em!important;margin:6px 0 0!important;padding:0!important;line-height:1.45!important}
.havv-desc-clamp{display:-webkit-box!important;-webkit-line-clamp:5!important;-webkit-box-orient:vertical!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Badges */
.havv-result-badge{display:inline-block!important;font-size:.75em!important;font-weight:700!important;padding:2px 8px!important;border-radius:4px!important;margin-left:6px!important;vertical-align:middle;text-transform:uppercase!important}
.havv-badge-diamond{background:#b39ddb!important;color:#fff!important}
.havv-badge-gold{background:#ffd54f!important;color:#333!important}

/* === Pager === */
.havv-pager{display:flex!important;justify-content:center!important;align-items:center!important;gap:6px!important;margin-top:16px!important;padding:0!important;flex-wrap:wrap!important}
.havv-pager button{padding:6px 12px!important;border:1px solid #ccc!important;border-radius:4px!important;background:#fff!important;cursor:pointer!important;font-size:.9em!important;margin:0!important;transition:background .15s,color .15s!important}
.havv-pager button:hover{background:#f0f0f0!important}
.havv-pager button.active{background:var(--havv-btn-bg,#0073aa)!important;color:#fff!important;border-color:var(--havv-btn-bg,#0073aa)!important}
.havv-pager button:disabled{opacity:.4!important;cursor:default!important}
.havv-pager-dots{color:#999!important;font-size:.9em!important;padding:0 2px!important;user-select:none!important}
.havv-pager-select{padding:5px 8px!important;border:1px solid #ccc!important;border-radius:4px!important;font-size:.85em!important;background:#fff!important;cursor:pointer!important;margin-left:4px!important;color:#333!important}

.havv-no-results{text-align:center;padding:20px!important;color:#888!important}
.havv-loading{text-align:center;padding:20px!important;color:#888!important}
/* === Reset === */
.havvf-wrap,.havvf-wrap *{box-sizing:border-box!important;margin:0!important;padding:0!important}

.havvf-wrap{width:100%;max-width:100%;margin:0 auto!important;position:relative;font-family:inherit;overflow:hidden}

/* === Nav container === */
.havvf-nav{display:flex!important;align-items:center!important;gap:8px!important;position:relative}

/* === Arrows === */
.havvf-arrow{flex-shrink:0!important;width:40px!important;height:40px!important;border:none!important;background:transparent!important;color:#555!important;cursor:pointer!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:50%!important;transition:background .2s,color .2s!important;padding:0!important}
.havvf-arrow:hover{background:rgba(0,0,0,.06)!important;color:#222!important}
.havvf-arrow svg{width:24px!important;height:24px!important;pointer-events:none}

/* === Track (scrollable container) === */
.havvf-track{display:flex!important;gap:0!important;overflow:hidden!important;flex:1!important;transition:none}

/* === Single item === */
.havvf-item{display:none;flex-direction:column!important;align-items:center!important;text-decoration:none!important;color:inherit!important;cursor:pointer!important;padding:8px 4px!important;transition:transform .15s!important;flex-shrink:0!important;width:calc(100% / 7)!important}
.havvf-item.havvf-visible{display:flex!important}
.havvf-item:hover{transform:scale(1.08)!important}

/* === Circle icon === */
.havvf-icon{width:64px!important;height:64px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:0 auto 6px!important;transition:box-shadow .2s!important;overflow:hidden!important;flex-shrink:0!important;padding:0!important}
.havvf-item:hover .havvf-icon{box-shadow:0 4px 12px rgba(0,0,0,.2)!important}
.havvf-svg{width:32px!important;height:32px!important;object-fit:contain!important;pointer-events:none!important;margin:0!important;padding:0!important}

/* === Label (2 lines) === */
.havvf-label{display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;font-size:12px!important;line-height:1.3!important;color:inherit!important;margin:0!important;padding:0!important;min-height:32px!important}
.havvf-label span{display:block!important;white-space:nowrap!important}

/* === Responsive === */
@media(max-width:768px){
    .havvf-item{width:calc(100% / 4)!important}
}
@media(max-width:480px){
    .havvf-item{width:calc(100% / 3)!important}
    .havvf-icon{width:52px!important;height:52px!important}
    .havvf-svg{width:26px!important;height:26px!important}
    .havvf-label{font-size:11px!important}
}

/* === Active filter tags === */
.havvf-section{margin-top:18px!important;padding:0!important}
.havvf-active-tags{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-bottom:10px!important;padding:0!important;min-height:0}
.havvf-active-tags:empty{display:none!important}
.havvf-tag{display:inline-flex!important;align-items:center!important;gap:5px!important;padding:5px 12px!important;border-radius:20px!important;font-size:12px!important;font-weight:600!important;color:#fff!important;cursor:pointer!important;transition:opacity .2s!important;margin:0!important;border:none!important;line-height:1.3!important}
.havvf-tag:hover{opacity:.8!important}
.havvf-tag-x{font-size:14px!important;font-weight:700!important;margin-left:2px!important;line-height:1!important}
.havvf-item.havvf-active .havvf-icon{box-shadow:0 0 0 3px #333,0 4px 12px rgba(0,0,0,.3)!important}
.havvf-item.havvf-active .havvf-label{font-weight:700!important;color:#111!important}
