/* =====================================================
   PP SEARCH — IDENTIDAD VISUAL V1
   Herramienta de búsqueda, no banner decorativo.
   ===================================================== */

.pp-search-wrap{
  --pp-search-max-width:var(--pp-container-banner,960px);
  --pp-search-radius:var(--pp-radius-lg,16px);
  --pp-search-control-radius:var(--pp-radius-sm,8px);
  --pp-search-control-height:52px;
  --pp-search-gap:var(--pp-space-3,12px);

  --pp-search-brand:var(--pp-color-action-primary,#0150F5);
  --pp-search-brand-hover:var(--pp-color-action-primary-hover,#3B7BFF);
  --pp-color-surface:#0a2032;
  --pp-color-surface-raised:#0d2a3f;
  --pp-color-control:#f5f8fb;
  --pp-color-control-hover:#ffffff;
  --pp-color-text:#f5f8fb;
  --pp-color-text-dark:#0b1f2e;
  --pp-color-text-muted:#adc0cd;
  --pp-color-placeholder:#667b89;
  --pp-color-border:#245068;
  --pp-color-error:#d95d62;
  --pp-search-shadow:0 18px 46px rgba(0,7,18,.28);

  width:calc(100% - var(--pp-gap-section,32px));
  max-width:var(--pp-search-max-width);
  margin:var(--pp-gap-section,32px) auto;
  color:var(--pp-color-text);
  font-family:inherit;
  box-sizing:border-box;
}

.pp-search-wrap *,
.pp-search-wrap *::before,
.pp-search-wrap *::after{
  box-sizing:border-box;
}

.pp-search-form{
  width:100%;
  padding:20px;
  display:grid;
  grid-template-columns:minmax(130px,.8fr) minmax(160px,1fr) minmax(135px,.9fr) minmax(135px,.9fr) minmax(112px,auto);
  align-items:end;
  gap:var(--pp-search-gap);
  position:relative;
  border:1px solid var(--pp-color-border);
  border-top:4px solid var(--pp-search-brand);
  border-radius:var(--pp-search-radius);
  background:var(--pp-color-surface);
  box-shadow:var(--pp-search-shadow);
}

.pp-search-form:has(.pp-search-field--price){
  grid-template-columns:minmax(120px,.7fr) minmax(145px,.9fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(195px,1fr) minmax(112px,auto);
}

.pp-search-field{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:7px;
}

.pp-search-label{
  display:block;
  color:var(--pp-color-text-muted);
  font-size:10px;
  font-weight:850;
  line-height:1.2;
  letter-spacing:.075em;
  text-transform:uppercase;
  white-space:nowrap;
}

.pp-search-select-wrap{
  height:var(--pp-search-control-height);
  position:relative;
}

.pp-search-select-wrap::after{
  content:"" !important;
  width:7px !important;
  height:7px !important;
  position:absolute !important;
  top:50% !important;
  right:15px !important;
  z-index:2 !important;
  border-right:2px solid var(--pp-color-placeholder) !important;
  border-bottom:2px solid var(--pp-color-placeholder) !important;
  pointer-events:none !important;
  transform:translateY(-65%) rotate(45deg) !important;
}

.pp-search-select-wrap:focus-within::after{
  border-color:var(--pp-color-brand-strong,#0144D0) !important;
}

.pp-search-form .pp-search-select,
.pp-search-wrap .pp-search-select,
.pp-search-input{
  width:100% !important;
  height:var(--pp-search-control-height) !important;
  margin:0 !important;
  border:1px solid #c8d3da !important;
  border-radius:var(--pp-search-control-radius) !important;
  color:var(--pp-color-text-dark) !important;
  background:var(--pp-color-control) !important;
  box-shadow:none !important;
  outline:none !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1 !important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease !important;
}

.pp-search-form .pp-search-select,
.pp-search-wrap .pp-search-select{
  appearance:none !important;
  -webkit-appearance:none !important;
  padding:0 38px 0 14px !important;
  cursor:pointer !important;
  text-align:left !important;
  text-align-last:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.pp-search-input{
  padding:0 14px !important;
}

.pp-search-form .pp-search-select:hover,
.pp-search-wrap .pp-search-select:hover,
.pp-search-input:hover{
  background:var(--pp-color-control-hover) !important;
  border-color:#9fb1bc !important;
}

.pp-search-form .pp-search-select:focus,
.pp-search-wrap .pp-search-select:focus,
.pp-search-input:focus{
  background:var(--pp-color-control-hover) !important;
  border-color:var(--pp-color-brand-strong,#0144D0) !important;
  box-shadow:0 0 0 3px #0150F5 !important;
}

.pp-search-form .pp-search-select option,
.pp-search-wrap .pp-search-select option{
  color:var(--pp-color-text-dark) !important;
  background:#fff !important;
}

.pp-search-form .pp-search-select:disabled,
.pp-search-wrap .pp-search-select:disabled{
  color:#7b8b95 !important;
  background:#dfe6ea !important;
  cursor:not-allowed !important;
  opacity:.72 !important;
}

.pp-search-input::placeholder{
  color:var(--pp-color-placeholder) !important;
  font-weight:600 !important;
  opacity:1 !important;
}

.pp-search-price-range{
  height:var(--pp-search-control-height);
  display:flex;
  align-items:center;
  gap:7px;
}

.pp-search-price-sep{
  flex:0 0 auto;
  color:var(--pp-color-text-muted);
  font-size:12px;
}

.pp-search-input--price{
  min-width:0;
  flex:1 1 0;
}

.pp-search-field--submit{
  align-self:end;
}

.pp-search-btn{
  width:100%;
  height:var(--pp-search-control-height);
  padding:0 20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid var(--pp-search-brand);
  border-radius:var(--pp-search-control-radius);
  color:#03231f;
  background:var(--pp-search-brand);
  box-shadow:none;
  font-family:inherit;
  font-size:14px;
  font-weight:900;
  line-height:1;
  letter-spacing:0;
  white-space:nowrap;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}

.pp-search-btn:hover{
  border-color:var(--pp-search-brand-hover);
  background:var(--pp-search-brand-hover);
  transform:translateY(-1px);
}

.pp-search-btn:focus-visible{
  outline:var(--pp-focus-ring,3px solid #0150F5);
  outline-offset:3px;
}

.pp-search-btn:active{
  transform:translateY(0);
}

.pp-search-btn-icon{
  flex:0 0 auto;
}

/* Variante compacta: conserva identidad, reduce densidad. */
.pp-search-wrap--compact{
  --pp-search-control-height:44px;
}

.pp-search-wrap--compact .pp-search-form{
  padding:14px;
  grid-template-columns:1fr 1fr 1fr minmax(96px,auto);
  border-radius:12px;
}

.pp-search-wrap--compact .pp-search-label{
  font-size:9px;
}

/* Contextos: no crean estilos paralelos; solo ajustan separación. */
.pp-home-hero-search .pp-search-wrap,
.pp-search-dark .pp-search-wrap{
  margin-top:24px;
  margin-bottom:24px;
}

@media (max-width:900px){
  .pp-search-form,
  .pp-search-form:has(.pp-search-field--price),
  .pp-search-wrap--compact .pp-search-form{
    grid-template-columns:1fr 1fr;
  }

  .pp-search-field--submit{
    grid-column:1 / -1;
  }
}

@media (max-width:560px){
  .pp-search-wrap{
    width:calc(100% - 24px);
    margin:24px auto;
  }

  .pp-search-form,
  .pp-search-form:has(.pp-search-field--price),
  .pp-search-wrap--compact .pp-search-form{
    padding:18px 14px;
    grid-template-columns:1fr;
    gap:11px;
    border-radius:14px;
  }

  .pp-search-label{
    font-size:10px;
  }

  .pp-search-price-range{
    height:auto;
    display:grid;
    grid-template-columns:1fr;
  }

  .pp-search-price-sep{
    display:none;
  }

  .pp-search-input--price{
    width:100%;
    height:var(--pp-search-control-height) !important;
  }

  .pp-search-field--submit{
    grid-column:auto;
  }

  .pp-search-btn{
    min-height:52px;
  }
}

@media (prefers-reduced-motion:reduce){
  .pp-search-btn,
  .pp-search-select,
  .pp-search-input{
    transition:none !important;
  }
}
