/**
 * Main public styles for Lando RealEstate
 * This file imports all modular CSS files
 *
 * @package Lando_RealEstate
 * @since 1.0.0
 */

/* Import modular CSS files */
@import url('base.css');
@import url('layout.css');
@import url('components.css');
@import url('responsive.css');
@import url('single-property.css');
@import url('single-project.css');
@import url('contact-form.css');

/* Full viewport layout - override any container constraints */
.lr-container {
  width: 100vw !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  position: relative;
  left: 0 !important;
  right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.lr-filters-section {
  width: 100% !important;
  max-width: 1280px !important; /* Same width as properties grid */
  margin: 0 auto !important;
  overflow-x: hidden !important;
  position: relative;
  box-sizing: border-box !important;
  background: transparent !important; /* Transparent background - user controls */
  padding: var(--lr-spacing-lg) !important;
}

.lr-main-content {
  width: 100% !important;
  max-width: 1280px !important; /* Same width as filters section */
  margin: 0 auto !important;
  overflow-x: hidden !important;
  position: relative;
  padding: var(--lr-spacing-lg) !important;
  box-sizing: border-box !important;
}

/* Prevent horizontal scroll on all levels */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
  width: 100vw !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

/* Force container to exact viewport width */
.lr-container {
  width: 100vw !important;
  max-width: 100vw !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Listing section - full width */
.lr-listings-section {
  width: 100% !important;
  overflow-x: hidden !important;
  position: relative !important;
  display: block !important;
  visibility: visible !important;
  background: transparent !important;
  box-sizing: border-box !important;
}

/* Layout is now complete */

/* Filter row - allows wrapping */
.lr-filter-row {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-end !important;
  gap: 0 !important; /* Remove gap, use margin instead */
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  margin-bottom: var(--lr-spacing-md) !important;
  justify-content: flex-start !important;
}

/* Add margin between filter groups */
.lr-filter-row > .lr-filter-group {
  margin-right: var(--lr-spacing-md) !important;
  flex: 1 1 0 !important; /* Use 0 basis for equal distribution */
}

/* Last filter group should grow to fill remaining space and align with right edge */
.lr-filter-row > .lr-filter-group:last-child {
  margin-right: 0 !important;
  flex: 1 1 0 !important; /* Ensure it grows to fill space */
}

/* Override for mobile - allow margin-right */
@media (max-width: 767px) {
  .lr-filter-row > .lr-filter-group:last-child {
    margin-right: 15px !important;
  }
}

/* Ensure inputs and selects inside filter groups take full width */
.lr-filter-row .lr-filter-group select,
.lr-filter-row .lr-filter-group input:not(.lr-filter-search-input):not(.lr-filter-range-inputs input) {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Range inputs container - ensure it doesn't overflow */
.lr-filter-range-inputs {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  gap: 5px !important;
  align-items: center !important;
}

.lr-filter-range-inputs input[type="number"] {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  width: auto !important; /* Use flex instead of 100% */
  box-sizing: border-box !important;
  max-width: 100% !important;
}


/* Filter row actions - new row, left aligned with input fields */
.lr-filter-row-actions {
  display: flex !important;
  gap: var(--lr-spacing-md) !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  /* Align with input field (below label) - label height + margin-bottom */
  padding-top: calc(1.2em + 2px) !important;
}

/* Filter actions - left aligned */
.lr-filter-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: var(--lr-spacing-sm) !important;
  flex-shrink: 0 !important;
  justify-content: flex-start !important;
}

/* Filter results styling */
.lr-filter-results {
  color: #ffffff !important; /* White text */
  font-size: var(--lr-font-size-sm) !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Filter actions - no margin/padding */
.lr-filter-actions {
  margin: 0 !important;
  padding: 0 !important;
}

/* Force mini listing to 3 columns and same width as main listing */
.lr-mini-listing-container {
  max-width: 1280px !important;
  width: 100% !important;
  margin: 0 auto !important;
  box-sizing: border-box !important;
  display: block !important;
}

/* Override any parent container restrictions */
.lr-mini-listing-container * {
  box-sizing: border-box;
}

/* Remove padding from .lr-container and .lr-main-content when used in mini-listing */
.lr-container:has(.lr-mini-filters),
.lr-container:has(#mini-properties-listing) {
  padding: 0 !important;
}

.lr-main-content:has(#mini-properties-listing) {
  padding: 0 !important;
}

.lr-mini-listings-section {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

#mini-properties-listing.lr-mini-grid,
#mini-properties-listing.lr-properties-grid.lr-mini-grid,
.lr-properties-grid.lr-mini-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Ensure cards in mini grid have same width as main listing */
#mini-properties-listing.lr-mini-grid .lr-property-card,
#mini-properties-listing.lr-properties-grid.lr-mini-grid .lr-property-card,
.lr-properties-grid.lr-mini-grid .lr-property-card {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* Force test cards to maintain height */
.lr-properties-grid .lr-property-card {
  min-height: auto !important;
  height: auto !important;
  max-height: none !important;
  flex-shrink: 0 !important;
}

.lr-properties-grid .lr-property-image {
  flex-shrink: 0 !important;
  min-height: 200px !important;
  height: 200px !important;
}

.lr-properties-grid .lr-property-image img {
  flex-shrink: 0 !important;
  min-height: 200px !important;
  height: 200px !important;
  object-fit: cover !important;
}

/* Force Apply button to have correct color */
.lr-btn-primary {
  background: #ED1C24 !important;
  color: white !important;
  border: none !important;
  padding: var(--lr-spacing-xs) var(--lr-spacing-sm) !important;
  border-radius: var(--lr-border-radius-sm) !important;
  font-size: var(--lr-font-size-sm) !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: var(--lr-transition-fast) !important;
}

.lr-btn-primary:hover {
  background: #C91A1F !important;
  color: white !important;
}

/* Force Clear button to be text link */
.lr-btn-secondary {
  background: transparent !important;
  color: var(--lr-muted) !important;
  border: none !important;
  text-decoration: underline !important;
  padding: var(--lr-spacing-xs) 0 !important;
  font-size: var(--lr-font-size-sm) !important;
  cursor: pointer !important;
}

.lr-btn-secondary:hover {
  color: var(--lr-primary) !important;
  text-decoration: none !important;
}


/* Legacy class name compatibility */
/* These classes maintain backward compatibility with existing templates */

/* Filter styles - legacy support */
.properties-filters {
    background: var(--lr-light);
    border-radius: var(--lr-border-radius);
    padding: var(--lr-spacing-lg);
    margin-top: var(--lr-spacing-lg);
}

.filter-row {
    display: flex;
    gap: var(--lr-spacing-md);
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: var(--lr-spacing-md);
}

.filter-group {
    display: flex;
    flex-direction: column;
}

.filter-group label {
    display: block;
    margin-bottom: var(--lr-spacing-xs);
    font-weight: 600;
}

.filter-group input,
.filter-group select {
    padding: var(--lr-spacing-xs) var(--lr-spacing-sm);
    border: 1px solid #ddd;
    border-radius: var(--lr-border-radius-sm);
}

.filter-actions {
    display: flex;
    gap: var(--lr-spacing-sm);
    align-items: center;
}

/* Property card - legacy support */
.property-card {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--lr-border-radius);
    overflow: hidden;
    background: #002134 !important; /* Dark blue background */
    box-shadow: var(--lr-shadow-sm);
    transition: var(--lr-transition);
}

.property-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--lr-shadow-md);
}

.property-image {
    height: 200px;
    overflow: hidden;
}

.property-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.property-content {
    padding: var(--lr-spacing-lg);
}

.property-content h3 {
    margin: 0 0 var(--lr-spacing-sm) 0;
    font-size: var(--lr-font-size-xl);
}

.property-content h3 a {
    text-decoration: none;
    color: var(--lr-secondary);
}

.property-price {
    font-size: var(--lr-font-size-xxl);
    font-weight: 700;
    color: var(--lr-accent);
    margin: var(--lr-spacing-sm) 0;
}

.property-address {
    color: var(--lr-muted);
    font-size: var(--lr-font-size-sm);
    margin: var(--lr-spacing-xs) 0;
    display: flex;
    align-items: center;
}

.property-address .dashicons {
    margin-right: var(--lr-spacing-xs);
    font-size: 16px;
}

.property-details {
    margin: var(--lr-spacing-sm) 0;
    font-size: var(--lr-font-size-sm);
    color: var(--lr-secondary);
}

.property-excerpt {
    margin: var(--lr-spacing-sm) 0;
    font-size: var(--lr-font-size-sm);
    color: var(--lr-muted);
    line-height: var(--lr-line-height);
}

.property-actions {
    margin-top: var(--lr-spacing-md);
}

.view-property-btn {
    display: inline-block;
    background: var(--lr-primary);
    color: white;
    padding: var(--lr-spacing-xs) var(--lr-spacing-sm);
    text-decoration: none;
    border-radius: var(--lr-border-radius-sm);
    font-size: var(--lr-font-size-sm);
    transition: var(--lr-transition-fast);
}

.view-property-btn:hover {
    background: var(--lr-primary-hover);
    color: white;
}

/* Legacy responsive support */
@media (max-width: 768px) {
    .filter-row {
        flex-direction: column;
        align-items: stretch;
    }
    
    .filter-group {
        width: 100%;
    }
    
    .properties-listing {
        grid-template-columns: 1fr;
    }
}

/* Legacy loading and error states */
.loading {
    opacity: 0.6;
    pointer-events: none;
}

.error {
    color: var(--lr-danger);
    font-size: var(--lr-font-size-sm);
    margin-top: var(--lr-spacing-sm);
}
