/* Apimo Properties Grid Styles v2.1.0 */
/* Fonts loaded via wp_enqueue_style in plugin */

:root {
    /* Design System Tokens - Theme Colors */
    --apimo-primary: #d8603b !important; /* Orange */
    --apimo-primary-hover: #c05534 !important; /* Darker Orange */
    --apimo-primary-active: #a6482c !important; /* Even Darker Orange */
    --apimo-secondary: #115e6e !important; /* Teal-800 for buttons */
    --apimo-secondary-hover: #0e4d5b !important; /* Darker teal */
    
    --apimo-bg-light: #f8f6f6 !important;
    --apimo-card-bg: #ffffff !important;
    --apimo-card-border: #f3f4f6 !important;
    
    --apimo-text-main: #1a110f !important;
    --apimo-text-sub: #6b5e59 !important;
    
    --apimo-badge-new-bg: rgba(255, 255, 255, 0.9) !important;
    --apimo-badge-new-text: #1a110f !important;
    --apimo-badge-featured-bg: rgba(16, 185, 129, 0.9) !important;
    --apimo-badge-featured-text: #ffffff !important;
    
    --apimo-font: 'Roboto', sans-serif !important;
    --apimo-ease: cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Reset and Base Styles - Force override WordPress defaults */
.apimo-properties-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    margin-top: -2rem !important;
    font-family: var(--apimo-font) !important;
    color: var(--apimo-text-main) !important;
    box-sizing: border-box !important;
    padding: 0 1rem 2rem 1rem !important; /* Reduzido padding lateral no mobile */
    background-color: var(--apimo-bg-light) !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    text-align: left !important;
    overflow-x: hidden !important; /* Garantia contra scroll horizontal */
}

/* Em telas maiores, mantemos 100% para evitar scroll horizontal por causa da scrollbar */
@media (min-width: 1200px) {
    .apimo-properties-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 0 2rem 2rem 2rem !important;
    }
}

.apimo-properties-wrapper *,
.apimo-properties-wrapper *::before,
.apimo-properties-wrapper *::after {
    box-sizing: border-box !important;
}

/* Content Container - matches grid max-width for alignment */
.apimo-content-container {
    width: 100% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 0 1rem !important;
    height: fit-content !important;
}

/* Remove all spacing from search form */
#apimo-search-form {
    margin: 0 !important;
    padding: 0 !important;
    height: fit-content !important;
    min-height: auto !important;
    border: none !important;
    box-shadow: none !important;
}

#apimo-search-form > div {
    height: fit-content !important;
    min-height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 8px !important;
}

#apimo-search-form > div > div.grid {
    height: fit-content !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    row-gap: 12px !important; /* Corrigido: Espaço entre campos quando empilhados */
    align-content: center !important;
}

#apimo-search-form .relative,
#apimo-search-form .grid > div {
    margin: 0 !important;
    padding: 0 !important;
    height: 48px !important;
    display: flex !important;
    align-items: center !important;
}

#apimo-search-form select {
    margin: 0 !important;
    height: 48px !important;
    border: none !important;
    background-image: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    padding: 0 1rem !important;
    padding-left: 0.75rem !important;
    padding-right: 2.5rem !important; /* Add right padding for clear button */
}

/* Select2 dropdown padding - match input boxes */
.select2-container--default .select2-selection--single {
    padding-left: 0.75rem !important;
    padding-right: 1rem !important; /* Match input boxes */
    height: 48px !important;
    line-height: 48px !important;
    background-image: none !important; /* Remove SVG arrow from CSS */
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0 !important; /* Remove extra padding - container already has it */
    padding-right: 2rem !important; /* Space for arrow on the right */
    line-height: 48px !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    display: none !important; /* Hide Select2 arrow - we use Material Icons instead */
}

/* Select2 clear button (X) styling */
.select2-container--default .select2-selection--single .select2-selection__clear {
    margin-right: 0.5rem !important;
    font-size: 18px !important;
    line-height: 48px !important;
    height: 48px !important;
    width: 20px !important;
    cursor: pointer !important;
    right: 0.5rem !important;
    position: absolute !important;
}

/* Ensure Select2 dropdowns in search form have proper spacing for clear button */
#apimo-search-form .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0 !important; /* Remove extra padding - container already has it */
    padding-right: 2.5rem !important; /* Space for clear button (X) */
}

/* Ensure Select2 dropdowns in search form have padding - match input boxes */
#apimo-search-form .select2-container--default .select2-selection--single {
    padding-left: 0.75rem !important; /* Match input boxes */
    padding-right: 1rem !important; /* Match input boxes */
    background-image: none !important; /* Remove SVG arrow */
}

/* Hide the native select arrow when Select2 is active */
#apimo-search-form select.select2-hidden-accessible {
    background-image: none !important;
}

/* Ensure Material Icon arrow is positioned correctly and doesn't double up */
#apimo-search-form .relative .material-icons {
    position: absolute !important;
    right: 0.75rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    z-index: 5 !important;
}

/* Hide Material Icon if Select2 has a value (so X can show) or if Select2 is open */
#apimo-search-form .relative.select2-has-value .material-icons,
#apimo-search-form .relative.select2-open .material-icons {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Force hide ANY other possible arrows */
.select2-selection__arrow,
.select2-selection--single::after {
    display: none !important;
    content: none !important;
}

/* Padding para o placeholder do Select2 (quando nada está selecionado) */
.select2-container--default .select2-selection--single .select2-selection__placeholder {
    padding-left: 0 !important; /* Remove extra padding - container already has it */
    padding-right: 1rem !important; /* Match container padding-right for arrow alignment */
    line-height: 48px !important;
    color: #9ca3af !important;
}

#apimo-search-form input {
    margin: 0 !important;
    height: 48px !important;
    border: none !important;
}

/* Specific fix for slider container height */
#apimo-search-form .flex-col.relative {
    height: 48px !important;
    justify-content: center !important;
}

/* Grid Layout */
.apimo-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    width: 100% !important;
    list-style: none !important;
    justify-content: start !important;
    justify-items: stretch !important;
    align-items: stretch !important;
    margin-top: 0 !important;
}

@media (min-width: 768px) {
    .apimo-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 2rem !important;
    }
}

@media (min-width: 1024px) {
    .apimo-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2rem !important;
    }
}

/* Card Component */
.apimo-card {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    background-color: #ffffff !important;
    border-radius: 0.75rem !important;
    border: 1px solid #f3f4f6 !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

.apimo-card:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}

/* Hidden state for filtered cards */
.apimo-card-hidden {
    display: none !important;
}

/* Image Area */
.apimo-card-image-wrapper {
    position: relative !important;
    height: 280px !important;
    width: 100% !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    background-color: #f3f4f6 !important;
}

.apimo-card-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    transition: transform 700ms cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.apimo-card:hover .apimo-card-image {
    transform: scale(1.05) !important;
}

.apimo-card-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.3), transparent) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

/* Badges */
.apimo-badges-top {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    display: flex !important;
    gap: 0.5rem !important;
    z-index: 10 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.apimo-badge {
    padding: 0.375rem 0.75rem !important;
    border-radius: 9999px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
    margin: 0 !important;
    display: inline-block !important;
    font-family: var(--apimo-font) !important;
    line-height: 1.2 !important;
}

.apimo-badge-new {
    background-color: rgba(255, 255, 255, 0.9) !important;
    color: #1a110f !important;
}

.apimo-badge-featured {
    background-color: rgba(16, 185, 129, 0.9) !important;
    color: #ffffff !important;
}

.apimo-badge-category {
    background-color: rgba(255, 255, 255, 0.9) !important;
    color: #1a110f !important;
}

/* Favorite Button */
.apimo-favorite-btn {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    border-radius: 50% !important;
    color: #6b7280 !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
}

.apimo-favorite-btn:hover {
    color: #d8603b !important;
    background-color: #ffffff !important;
}

.apimo-favorite-btn .material-symbols-outlined {
    font-size: 22px !important;
    line-height: 1 !important;
    width: 22px !important;
    height: 22px !important;
}

/*
   PRICE OVERLAY TAG - DEFINITIVE FIX
   - Positioned in the bottom-left corner with small padding (10px).
   - Compact sizing to match reference image scale.
*/
.apimo-price-overlay-bar {
    position: absolute !important;
    bottom: 10px !important;
    left: 10px !important;
    right: auto !important; /* Force stay on left */
    z-index: 50 !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    width: auto !important; /* Ensure it doesn't span full width */
    display: flex !important; /* Use flex to contain span correctly */
}

.apimo-price-overlay-bar span {
    background-color: #d8603b !important;
    color: #ffffff !important;
    font-family: var(--apimo-font, 'Manrope', sans-serif) !important;
    font-weight: 800 !important;
    font-size: 1.125rem !important;
    line-height: 1 !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2) !important;
    display: inline-block !important;
    pointer-events: auto !important;
    text-align: center !important;
}

/* View Count Overlay on Card Image */
.apimo-card-views-overlay {
    position: absolute !important;
    bottom: 10px !important;
    right: 10px !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    color: #ffffff !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    z-index: 10 !important;
    pointer-events: none !important;
}

.apimo-card-views-overlay .material-symbols-outlined {
    font-size: 16px !important;
    line-height: 1 !important;
}

/* 
   FORCE LEFT ALIGNMENT ON MAIN CONTAINERS 
*/
html body .apimo-properties-wrapper .apimo-card-content,
html body .apimo-properties-wrapper .apimo-card-header,
html body .apimo-properties-wrapper .apimo-description-wrapper {
    text-align: left !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}

/* 
   FIX COMMENT JUSTIFICATION & CLAMPING
*/
.apimo-card-comment {
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #6b5e59 !important;
    font-family: var(--apimo-font) !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    transition: all 0.3s ease !important;
}

.apimo-card-comment.expanded {
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
    height: auto !important;
}

/* Expand Button - CSP compliant (no inline onclick) */
.apimo-expand-btn {
    background: none !important;
    border: none !important;
    color: #d8603b !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    padding: 4px 0 !important;
    margin-top: 4px !important;
    display: inline-block !important;
    font-family: var(--apimo-font) !important;
}

.apimo-expand-btn:hover {
    color: #c05534 !important;
    text-decoration: underline !important;
}

/* Content Area */
.apimo-card-content {
    display: flex !important;
    flex-direction: column !important;
    padding: 1.25rem !important;
    gap: 0.75rem !important;
    flex: 1 !important;
    margin: 0 !important;
    background-color: #ffffff !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
}

.apimo-card-content > * {
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: left !important;
}

.apimo-card-header {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.25rem !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
}

.apimo-card-title {
    color: #1a110f !important;
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    width: 100% !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    font-family: var(--apimo-font) !important;
    transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    cursor: pointer !important;
    white-space: normal !important;
    word-wrap: break-word !important;
}

/* Title 2-row fixed height only for grid view */
.apimo-display-grid .apimo-card-title {
    min-height: 3rem !important; /* Força 2 linhas fixas: 1.25rem * 1.2 * 2 = 3rem */
    height: 3rem !important; /* Altura fixa para sempre ter 2 linhas */
}

.apimo-card:hover .apimo-card-title {
    color: #d8603b !important;
}

.apimo-card-location {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.25rem !important;
    color: #6b5e59 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    width: 100% !important;
}

.apimo-location-icon {
    font-size: 18px !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
}

.apimo-address-text {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--apimo-font) !important;
    color: #6b5e59 !important;
}

.apimo-description-wrapper {
    margin-top: 0.5rem !important;
    text-align: left !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

/* Specs */
.apimo-card-specs {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 1rem 0 !important;
    border-top: 1px solid #f3f4f6 !important;
    border-bottom: 1px solid #f3f4f6 !important;
    margin: 0 !important;
    width: 100% !important;
    gap: 0.5rem !important;
}

.apimo-spec {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 1 !important;
    justify-content: center !important;
}

.apimo-spec-icon {
    color: #d8603b !important;
    font-size: 24px !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    width: 24px !important;
    height: 24px !important;
}

.apimo-spec-icon.filled {
    font-variation-settings: 'FILL' 1 !important;
}

.apimo-spec-value {
    color: #1a110f !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--apimo-font) !important;
}

.apimo-spec-label {
    color: #6b5e59 !important;
    font-weight: 400 !important;
    margin-left: 2px !important;
}

.apimo-divider {
    width: 1px !important;
    height: 2rem !important;
    background-color: #e5e7eb !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}

/* Action Button */
.apimo-action-btn {
    width: 100% !important;
    margin-top: auto !important;
    background-color: #d8603b !important;
    color: #ffffff !important;
    padding: 0.75rem 1rem !important;
    border-radius: 0.5rem !important;
    font-weight: 700 !important;
    font-size: 0.875rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    border: none !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    font-family: var(--apimo-font) !important;
    line-height: 1 !important; /* Changed from 1.2 to 1 for better flex centering */
}

.apimo-action-btn span {
    color: #ffffff !important;
    line-height: 1 !important; /* Force line-height for span */
    display: flex !important;
    align-items: center !important;
}

.apimo-action-btn:hover {
    background-color: #c05534 !important;
    color: #ffffff !important;
}

.apimo-action-btn:active {
    background-color: #a6482c !important;
}

.apimo-arrow-icon {
    font-size: 18px !important;
    line-height: 1 !important;
    width: 18px !important;
    height: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Material Symbols - Explicit Configuration */
.apimo-properties-wrapper .material-symbols-outlined {
    font-family: 'Material Symbols Outlined' !important;
    font-weight: normal !important;
    font-style: normal !important;
    font-size: 24px !important;
    line-height: 1 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    display: inline-block !important;
    white-space: nowrap !important;
    word-wrap: normal !important;
    direction: ltr !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    text-rendering: optimizeLegibility !important;
    font-feature-settings: 'liga' !important;
}

/* Helper for no results */
.apimo-no-results {
    text-align: center !important;
    padding: 3rem !important;
    color: #6b5e59 !important;
    background: #ffffff !important;
    border-radius: 0.75rem !important;
    border: 1px solid #f3f4f6 !important;
    font-family: var(--apimo-font) !important;
}

/* Error message */
.apimo-error {
    padding: 1rem !important;
    background-color: #fee !important;
    border: 1px solid #fcc !important;
    border-radius: 0.5rem !important;
    color: #c33 !important;
    font-family: var(--apimo-font) !important;
}

/* Placeholder image styling */
.apimo-card-image-placeholder {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #f3f4f6 !important;
}

/* ============================================
   SEARCH FORM STYLES - Clean Rebuild
   ============================================ */

.apimo-search-wrapper {
    width: 100% !important;
    max-width: 1400px !important;
    margin: 0 auto 2rem auto !important;
    padding: 1rem !important;
    box-sizing: border-box !important;
}

.apimo-search-wrapper .apimo-search-title {
    font-family: 'Roboto', sans-serif !important;
    font-size: 2rem !important;
    font-weight: 300 !important;
    color: #d8603b !important;
    margin: 0 0 1.5rem 0 !important;
    padding: 0 !important;
    letter-spacing: 0.025em !important;
}

.apimo-search-wrapper .apimo-search-form {
    width: 100% !important;
}

.apimo-search-wrapper .apimo-form-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1rem !important;
    width: 100% !important;
}

@media (max-width: 1024px) {
    .apimo-search-wrapper .apimo-form-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .apimo-search-wrapper .apimo-form-grid {
        grid-template-columns: 1fr !important;
    }
}

.apimo-search-wrapper .apimo-field {
    width: 100% !important;
}

.apimo-search-wrapper .apimo-field-double {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem !important;
}

.apimo-search-wrapper .apimo-field-empty {
    display: none !important;
}

@media (min-width: 1024px) {
    .apimo-search-wrapper .apimo-field-empty {
        display: block !important;
    }
}

.apimo-search-wrapper .apimo-select,
.apimo-search-wrapper .apimo-input {
    width: 100% !important;
    height: 48px !important;
    padding: 0 1rem !important;
    padding-left: 0.75rem !important;
    padding-right: 1rem !important;
    background-color: #ffffff !important;
    border: none !important;
    border-radius: 4px !important;
    font-family: 'Roboto', sans-serif !important;
    font-size: 14px !important;
    color: #4b5563 !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
    box-sizing: border-box !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    background-size: 16px !important;
    cursor: pointer !important;
}

.apimo-search-wrapper .apimo-input {
    background-image: none !important;
    cursor: text !important;
}

.apimo-search-wrapper .apimo-select:focus,
.apimo-search-wrapper .apimo-input:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px #d8603b !important;
}

.apimo-search-wrapper .apimo-input::placeholder {
    color: #9ca3af !important;
}

/* Input with unit (m²) */
.apimo-search-wrapper .apimo-input-unit-wrap {
    position: relative !important;
    width: 100% !important;
}

.apimo-search-wrapper .apimo-input-unit-wrap .apimo-input {
    padding-right: 2rem !important;
}

.apimo-search-wrapper .apimo-unit {
    position: absolute !important;
    right: 0.5rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #d8603b !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    pointer-events: none !important;
}

/* Price Slider */
.apimo-search-wrapper .apimo-field-slider {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    padding: 0.5rem 0 !important;
}

.apimo-search-wrapper .apimo-slider-track {
    position: relative !important;
    height: 24px !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
}

.apimo-search-wrapper .apimo-slider-track::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    height: 4px !important;
    background-color: #e5e7eb !important;
    border-radius: 2px !important;
}

.apimo-search-wrapper .apimo-slider-fill {
    position: absolute !important;
    height: 4px !important;
    background-color: #d8603b !important;
    border-radius: 2px !important;
    left: 0 !important;
    width: 100% !important;
}

.apimo-search-wrapper .apimo-range {
    position: absolute !important;
    width: 100% !important;
    height: 24px !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

.apimo-search-wrapper .apimo-range::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    pointer-events: all !important;
}

.apimo-search-wrapper .apimo-range::-moz-range-thumb {
    width: 16px !important;
    height: 16px !important;
    background: #ffffff !important;
    border: 1px solid #d1d5db !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
    pointer-events: all !important;
}

.apimo-search-wrapper .apimo-slider-labels {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 12px !important;
    color: #6b7280 !important;
    font-weight: 500 !important;
    margin-top: 0.25rem !important;
}

/* Search Button */
.apimo-search-wrapper .apimo-btn {
    width: 100% !important;
    height: 48px !important;
    background-color: #115e6e !important;
    color: #ffffff !important;
    font-family: 'Roboto', sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border: none !important;
    border-radius: 4px !important;
    cursor: pointer !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
    transition: background-color 0.2s ease !important;
}

.apimo-search-wrapper .apimo-btn:hover {
    background-color: #0e4d5b !important;
}

/* Results Header */
.apimo-results-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 2rem !important; /* Spacing between sorting controls and grid */
    margin-top: 2rem !important; /* Spacing between BUSCAR button and sorting */
    padding: 0 !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    width: 100% !important;
    min-height: auto !important;
    height: auto !important;
}

.apimo-results-count {
    display: flex !important;
    align-items: center !important;
}

.apimo-results-text {
    font-family: var(--apimo-font) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: #d8603b !important;
}

.apimo-results-controls {
    display: flex !important;
    align-items: center !important;
    gap: 1.5rem !important;
    flex-wrap: wrap !important;
}

.apimo-display-modes {
    display: flex !important;
    gap: 0.5rem !important;
    align-items: center !important;
}

.apimo-display-mode-btn {
    background: none !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.375rem !important;
    padding: 0.5rem !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    color: #6b5e59 !important;
}

.apimo-display-mode-btn:hover:not(:disabled) {
    border-color: #d8603b !important;
    color: #d8603b !important;
}

.apimo-display-mode-btn.active {
    background-color: #d8603b !important;
    border-color: #d8603b !important;
    color: #ffffff !important;
}

.apimo-display-mode-btn:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}

.apimo-display-mode-btn .material-symbols-outlined {
    font-size: 20px !important;
    line-height: 1 !important;
}

.apimo-sort-control {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
}

.apimo-sort-label {
    font-family: var(--apimo-font) !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: #d8603b !important;
    white-space: nowrap !important;
}

.apimo-sort-select {
    font-family: var(--apimo-font) !important;
    font-size: 0.875rem !important;
    padding: 0.5rem 2.5rem 0.5rem 1.5rem !important;
    border: 1px solid #d1d5db !important;
    border-radius: 0.5rem !important;
    background-color: #ffffff !important;
    color: #d8603b !important;
    cursor: pointer !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23d8603b' d='M6 9L1 4h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.75rem center !important;
    transition: border-color 0.2s ease !important;
}

.apimo-sort-select:focus {
    outline: none !important;
    border-color: #d8603b !important;
    box-shadow: 0 0 0 3px rgba(216, 96, 59, 0.1) !important;
}

/* List View Layout */
.apimo-display-list {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}

.apimo-display-list .apimo-card {
    flex-direction: row !important;
    min-height: 280px !important;
    height: auto !important;
    align-items: stretch !important;
}

.apimo-display-list .apimo-card-image-wrapper {
    width: 35% !important;
    min-width: 250px !important;
    max-width: 400px !important;
    height: auto !important;
    flex-shrink: 0 !important;
}

.apimo-display-list .apimo-card-content {
    width: 65% !important;
    padding: 1.5rem !important;
    display: flex !important;
    flex-direction: column !important;
}

.apimo-display-list .apimo-card-header {
    flex: 1 !important;
}

.apimo-display-list .apimo-card-title {
    font-size: 1.5rem !important;
    margin-bottom: 0.75rem !important;
}

.apimo-display-list .apimo-card-comment {
    -webkit-line-clamp: 3 !important; /* Show more text in list view */
    margin-bottom: 1rem !important;
}

.apimo-display-list .apimo-card-specs {
    border-top: 1px solid #f3f4f6 !important;
    border-bottom: none !important;
    padding: 1.25rem 0 !important;
    margin-top: auto !important;
    justify-content: flex-start !important;
    gap: 2rem !important;
}

.apimo-display-list .apimo-spec {
    flex: 0 1 auto !important;
    justify-content: flex-start !important;
}

.apimo-display-list .apimo-action-btn {
    width: fit-content !important;
    min-width: 200px !important;
    align-self: flex-end !important;
    padding: 0.875rem 2rem !important;
    margin-top: 0 !important;
}

/* Hidden JSON data element - must never be visible */
#apimo-properties-data {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

/* Responsive */
@media (max-width: 768px) {
    .apimo-search-row {
        grid-template-columns: 1fr !important;
    }
    
    .apimo-search-field-price {
        grid-column: span 1 !important;
    }
    
    .apimo-results-header {
        flex-direction: column !important;
        align-items: center !important; /* Centralizar no mobile */
        text-align: center !important;
        gap: 1.5rem !important;
        margin-top: 4rem !important; /* Aumentado de 3rem para 4rem para garantir espaço */
        clear: both !important;
        display: flex !important;
    }
    
    .apimo-results-controls {
        width: 100% !important;
        justify-content: center !important; /* Centralizar botões de grid/sort */
        flex-direction: column !important;
        gap: 1rem !important;
    }

    #apimo-search-form .grid > div {
        height: auto !important;
        min-height: 48px !important;
    }
    
    #apimo-search-form .flex.justify-end.gap-2 {
        margin-top: 1rem !important;
        justify-content: space-between !important;
    }
    
    .apimo-display-list .apimo-card {
        flex-direction: column !important;
    }
    
    .apimo-display-list .apimo-card-image-wrapper {
        width: 100% !important;
        max-width: none !important;
        height: 200px !important;
    }
    
    .apimo-display-list .apimo-card-content {
        width: 100% !important;
    }
    
    .apimo-display-list .apimo-card-specs {
        gap: 1rem !important;
        flex-wrap: wrap !important;
    }
    
    .apimo-display-list .apimo-action-btn {
        width: 100% !important;
    }
}

/* ============================================
   MODAL STYLES
   ============================================ */

.apimo-modal-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.75) !important;
    z-index: 9999 !important;
    display: none; /* Hidden by default */
    align-items: center !important;
    justify-content: center !important;
    backdrop-filter: blur(4px) !important;
    padding: 20px !important;
}

.apimo-modal-overlay.active {
    display: flex !important;
}

.apimo-modal-container {
    background-color: #ffffff !important;
    width: 100% !important;
    max-width: 1000px !important;
    max-height: 90vh !important;
    border-radius: 1rem !important;
    overflow-y: auto !important;
    position: relative !important;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25) !important;
    animation: apimo-modal-fade-in 0.3s ease-out !important;
}

@keyframes apimo-modal-fade-in {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.apimo-modal-close {
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    width: 40px !important;
    height: 40px !important;
    background-color: rgba(255, 255, 255, 0.9) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 100 !important;
    border: none !important;
    color: #1a110f !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

.apimo-modal-close:hover {
    background-color: #ffffff !important;
    color: #d8603b !important;
    transform: rotate(90deg) !important;
}

.apimo-modal-content {
    display: flex !important;
    flex-direction: column !important;
}

/* Gallery inside Modal */
.apimo-modal-gallery {
    width: 100% !important;
    height: 450px !important;
    background-color: #f3f4f6 !important; /* Fundo neutro claro */
    position: relative !important;
    overflow: hidden !important;
}

.apimo-modal-gallery-main {
    width: 100% !important;
    height: 100% !important;
    background-size: cover !important; /* Preencher o espaço mantendo proporção */
    background-position: center !important;
    background-repeat: no-repeat !important;
    position: relative !important;
}

/* Fullscreen button in modal gallery */
.apimo-modal-fullscreen-btn {
    position: absolute !important;
    top: 20px !important;
    left: 20px !important;
    width: 44px !important;
    height: 44px !important;
    background-color: rgba(255, 255, 255, 0.8) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 30 !important;
    border: none !important;
    color: #1a110f !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    opacity: 0;
    visibility: hidden;
}

.apimo-modal-gallery:hover .apimo-modal-fullscreen-btn {
    opacity: 1;
    visibility: visible;
}

.apimo-modal-fullscreen-btn:hover {
    background-color: #ffffff !important;
    color: #d8603b !important;
    transform: scale(1.1) !important;
}

.apimo-modal-fullscreen-btn span {
    font-size: 24px !important;
}

/* Ajuste para o container de links do lightbox */
#apimo-modal-lightbox-links {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

/* Estilização das setas do FsLightbox Fullscreen */
.fslightbox-container {
    z-index: 999999999 !important;
}

.fslightbox-container .fslightbox-nav-btn-holder {
    width: 80px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important; /* Força visibilidade */
    visibility: visible !important;
}

.fslightbox-container .fslightbox-nav-btn {
    background-color: rgba(255, 255, 255, 0.9) !important;
    border-radius: 50% !important;
    width: 56px !important;
    height: 56px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3) !important;
    transition: all 0.3s ease !important;
}

.fslightbox-container .fslightbox-nav-btn:hover {
    transform: scale(1.1) !important;
    background-color: #ffffff !important;
}

.fslightbox-container .fslightbox-nav-btn svg {
    width: 28px !important;
    height: 28px !important;
    fill: #1a110f !important;
}

/* Adiciona uma sobreposição sutil para melhorar contraste */
.apimo-modal-gallery-main::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, transparent 20%, transparent 80%, rgba(0,0,0,0.1) 100%) !important;
    pointer-events: none !important;
    z-index: 1 !important;
}

.apimo-modal-gallery-nav {
    position: absolute !important;
    bottom: 20px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    gap: 10px !important;
    z-index: 10 !important;
    max-width: 80% !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}

/* Gallery Arrows */
.apimo-modal-gallery-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 44px !important;
    height: 44px !important;
    background-color: rgba(255, 255, 255, 0.8) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 20 !important;
    border: none !important;
    color: #1a110f !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
    opacity: 0;
    visibility: hidden;
}

.apimo-modal-gallery:hover .apimo-modal-gallery-arrow {
    opacity: 1;
    visibility: visible;
}

.apimo-modal-gallery-arrow:hover {
    background-color: #ffffff !important;
    color: #d8603b !important;
    transform: translateY(-50%) scale(1.1) !important;
}

.apimo-modal-gallery-prev {
    left: 20px !important;
}

.apimo-modal-gallery-next {
    right: 20px !important;
}

.apimo-modal-gallery-arrow span {
    font-size: 32px !important;
}

/* Hide arrows and nav if only one photo */
.apimo-modal-gallery.single-photo .apimo-modal-gallery-arrow,
.apimo-modal-gallery.single-photo .apimo-modal-gallery-nav {
    display: none !important;
}

.apimo-modal-gallery-dot {
    width: 10px !important;
    height: 10px !important;
    background-color: rgba(255, 255, 255, 0.5) !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    border: none !important;
    padding: 0 !important;
}

.apimo-modal-gallery-dot.active {
    background-color: #ffffff !important;
    transform: scale(1.2) !important;
}

/* Info Section */
.apimo-modal-info {
    padding: 2rem !important;
}

.apimo-modal-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 2rem !important;
    margin-bottom: 1rem !important; /* Reduced to fit type tags below */
    flex-wrap: wrap !important;
}

.apimo-modal-type-tags {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    margin-bottom: 1.5rem !important;
    flex-wrap: wrap !important;
}

.apimo-modal-type-badge {
    background-color: #f3f4f6 !important;
    color: #4b5563 !important;
    padding: 4px 12px !important;
    border-radius: 6px !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

.apimo-modal-tags-list {
    display: flex !important;
    gap: 0.5rem !important;
    flex-wrap: wrap !important;
}

.apimo-modal-tag {
    background-color: #e7f3ff !important;
    color: #0073aa !important;
    padding: 2px 8px !important;
    border-radius: 4px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
}

.apimo-modal-title-box {
    flex: 1 !important;
    min-width: 300px !important;
}

.apimo-modal-title {
    font-size: 2rem !important;
    font-weight: 800 !important;
    color: #1a110f !important;
    margin: 0 0 0.5rem 0 !important;
    line-height: 1.2 !important;
}

.apimo-modal-location {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    color: #6b5e59 !important;
    font-size: 1rem !important;
}

.apimo-modal-price-box {
    text-align: right !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
}

.apimo-modal-price {
    font-size: 1.75rem !important;
    font-weight: 800 !important;
    color: #d8603b !important;
    display: block !important;
}

.apimo-modal-fees {
    font-size: 0.9rem !important;
    color: #6b5e59 !important;
    font-weight: 600 !important;
    margin-top: 2px !important;
}

.apimo-modal-meta-secondary {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 4px !important;
    margin-top: 4px !important;
}

.apimo-modal-ref {
    font-size: 0.875rem !important;
    color: #9ca3af !important;
    display: block !important;
}

.apimo-modal-views {
    font-size: 0.75rem !important;
    color: #9ca3af !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
}

/* Specs in Modal */
.apimo-modal-specs {
    display: flex !important;
    gap: 2.5rem !important;
    padding: 1.5rem 0 !important;
    border-top: 1px solid #f3f4f6 !important;
    border-bottom: 1px solid #f3f4f6 !important;
    margin-bottom: 2rem !important;
    flex-wrap: wrap !important;
}

.apimo-modal-spec {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
}

.apimo-modal-spec-icon {
    color: #d8603b !important;
    font-size: 28px !important;
}

.apimo-modal-spec-text {
    display: flex !important;
    flex-direction: column !important;
}

.apimo-modal-spec-value {
    font-weight: 700 !important;
    color: #1a110f !important;
    font-size: 1.125rem !important;
}

.apimo-modal-spec-label {
    font-size: 0.8125rem !important;
    color: #6b5e59 !important;
}

/* Description */
.apimo-modal-description {
    margin-bottom: 2rem !important;
}

.apimo-modal-section-title {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: #1a110f !important;
    margin-bottom: 1rem !important;
}

.apimo-modal-text {
    font-size: 1rem !important;
    line-height: 1.7 !important;
    color: #4b5563 !important;
    text-align: justify !important;
    white-space: pre-line !important;
}

/* Contact Area */
.apimo-modal-footer {
    display: flex !important;
    gap: 1rem !important;
    margin-top: 1rem !important;
    flex-wrap: wrap !important;
}

.apimo-modal-btn {
    flex: 1 !important;
    min-width: 200px !important;
    height: 56px !important;
    border-radius: 0.75rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.75rem !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    border: none !important;
    text-decoration: none !important;
}

.apimo-modal-btn-primary {
    background-color: #25d366 !important; /* WhatsApp Green */
    color: #ffffff !important;
}

.apimo-modal-btn-primary:hover {
    background-color: #128c7e !important;
    transform: translateY(-2px) !important;
}

.apimo-modal-btn-secondary {
    background-color: #115e6e !important;
    color: #ffffff !important;
}

.apimo-modal-btn-secondary:hover {
    background-color: #0e4d5b !important;
    transform: translateY(-2px) !important;
}

/* Responsive Modal */
@media (max-width: 768px) {
    .apimo-modal-gallery {
        height: 300px !important;
    }
    
    .apimo-modal-info {
        padding: 1.5rem !important;
    }
    
    .apimo-modal-title {
        font-size: 1.5rem !important;
    }
    
    .apimo-modal-price {
        font-size: 1.5rem !important;
    }
    
    .apimo-modal-header {
        flex-direction: column !important;
        gap: 1rem !important;
    }
    
    .apimo-modal-price-box {
        text-align: left !important;
    }
    
    .apimo-modal-specs {
        gap: 1.5rem !important;
    }
    
    .apimo-modal-btn {
        width: 100% !important;
    }
}

/* Pagination Styles */
.apimo-pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    margin-top: 3rem !important;
    margin-bottom: 2rem !important;
    flex-wrap: wrap !important;
}

.apimo-pagination-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    padding: 0.75rem 1.5rem !important;
    background-color: var(--apimo-card-bg) !important;
    border: 1px solid var(--apimo-card-border) !important;
    border-radius: 8px !important;
    color: var(--apimo-text-main) !important;
    font-family: var(--apimo-font) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.2s var(--apimo-ease) !important;
    white-space: nowrap !important;
}

.apimo-pagination-btn:hover:not(:disabled) {
    background-color: var(--apimo-primary) !important;
    color: #ffffff !important;
    border-color: var(--apimo-primary) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(216, 96, 59, 0.2) !important;
}

.apimo-pagination-btn:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

.apimo-pagination-btn span.material-symbols-outlined {
    font-size: 20px !important;
}

.apimo-pagination-numbers {
    display: flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
}

.apimo-pagination-number {
    min-width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 0.5rem !important;
    background-color: var(--apimo-card-bg) !important;
    border: 1px solid var(--apimo-card-border) !important;
    border-radius: 8px !important;
    color: var(--apimo-text-main) !important;
    font-family: var(--apimo-font) !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all 0.2s var(--apimo-ease) !important;
    text-decoration: none !important;
}

.apimo-pagination-number:hover {
    background-color: var(--apimo-primary) !important;
    color: #ffffff !important;
    border-color: var(--apimo-primary) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 12px rgba(216, 96, 59, 0.2) !important;
}

.apimo-pagination-number.active {
    background-color: var(--apimo-primary) !important;
    color: #ffffff !important;
    border-color: var(--apimo-primary) !important;
    font-weight: 600 !important;
    cursor: default !important;
}

.apimo-pagination-number.active:hover {
    transform: none !important;
}

.apimo-pagination-ellipsis {
    min-width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--apimo-text-sub) !important;
    font-family: var(--apimo-font) !important;
    font-size: 0.875rem !important;
    pointer-events: none !important;
}

/* Responsive Pagination */
@media (max-width: 768px) {
    .apimo-pagination {
        gap: 0.5rem !important;
    }
    
    .apimo-pagination-btn {
        padding: 0.625rem 1rem !important;
        font-size: 0.8125rem !important;
    }
    
    .apimo-pagination-btn span:not(.material-symbols-outlined) {
        display: none !important;
    }
    
    .apimo-pagination-number {
        min-width: 36px !important;
        height: 36px !important;
        font-size: 0.8125rem !important;
    }
    
    .apimo-pagination-ellipsis {
        min-width: 36px !important;
        height: 36px !important;
    }
}

/* ==========================================================================
   Full Screen Modal (Nativo)
   ========================================================================== */
.apimo-fullscreen-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.95) !important;
    z-index: 999999 !important;
    display: none;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 0;
    transition: opacity 0.3s ease !important;
}

.apimo-fullscreen-modal.active {
    display: flex !important;
    opacity: 1 !important;
}

.apimo-fullscreen-content {
    position: relative !important;
    width: 90% !important;
    height: 85% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#apimo-fullscreen-img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    box-shadow: 0 0 30px rgba(0,0,0,0.5) !important;
    user-select: none !important;
}

.apimo-fullscreen-close {
    position: absolute !important;
    top: 20px !important;
    right: 20px !important;
    background: none !important;
    border: none !important;
    color: white !important;
    cursor: pointer !important;
    z-index: 100 !important;
}

.apimo-fullscreen-close span {
    font-size: 40px !important;
}

.apimo-fullscreen-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border: none !important;
    color: white !important;
    width: 60px !important;
    height: 60px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    z-index: 101 !important;
}

.apimo-fullscreen-arrow:hover {
    background: rgba(255, 255, 255, 0.2) !important;
    transform: translateY(-50%) scale(1.1) !important;
}

.apimo-fullscreen-prev { left: 20px !important; }
.apimo-fullscreen-next { right: 20px !important; }

.apimo-fullscreen-arrow span {
    font-size: 40px !important;
}

.apimo-fullscreen-counter {
    position: absolute !important;
    bottom: -40px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 1rem !important;
    font-family: inherit !important;
}

/* Hide navigation if only one photo */
.apimo-fullscreen-modal.single-photo .apimo-fullscreen-arrow,
.apimo-fullscreen-modal.single-photo .apimo-fullscreen-counter {
    display: none !important;
}
