/* Navegación y catálogo ampliado */
.topbar,
.topbar.scrolled {
  display: block;
  padding: 0;
  color: var(--ink);
  background: rgba(255, 253, 251, .97);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 5px 24px rgba(60, 25, 26, .05);
}
.topbar-main { height: 65px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar .brand-mark { color: var(--brand-red-dark); }
.topbar-note { margin-left: auto; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #8a7777; }
.topbar .contact-pill { color: var(--brand-red-dark); border-color: var(--brand-red-dark); }
.topbar .contact-pill:hover { color: #fff; background: var(--brand-red-dark); border-color: var(--brand-red-dark); }
.topbar .category-nav { height: 53px; padding: 0 5vw; display: flex; align-items: stretch; justify-content: space-between; gap: clamp(12px, 2vw, 32px); border-top: 1px solid #f0e4e0; }
.topbar .category-nav a { display: inline-flex; align-items: center; flex: 0 0 auto; position: relative; font-size: 12px; font-weight: 600; letter-spacing: .005em; white-space: nowrap; color: #4f4243; }
.topbar .category-nav a:hover,
.topbar .category-nav a.active { color: var(--brand-red-dark); }
.topbar .category-nav a::after { content: ""; position: absolute; bottom: 0; left: 0; right: 100%; border-bottom: 2px solid var(--brand-red); transition: right .2s; }
.topbar .category-nav a:hover::after,
.topbar .category-nav a.active::after { right: 0; }
.topbar .category-nav .partner-link::after { display: none; }
.topbar .category-nav .partner-link { padding: 0 3px; justify-content: center; align-self: center; height: 46px; overflow: hidden; }
.topbar .category-nav .nav-partner-logo { display: block; object-fit: contain; max-width: none; height: auto; flex: 0 0 auto; }
.topbar .category-nav .nav-altius { width: 132px; margin: 0 -14px; }
.topbar .category-nav .nav-santander { width: 145px; margin: 0 -9px; }
.topbar .category-nav { overflow-y: hidden; }
.logo-clip { display: inline-block; position: relative; overflow: hidden; vertical-align: middle; flex: 0 0 auto; }
.logo-clip img { display: block; position: absolute; width: var(--image-width); max-width: none; height: auto; left: var(--image-left); top: var(--image-top); mix-blend-mode: multiply; }
.logo-altius { width: 96px; height: 34px; --image-width: 205px; --image-left: -57px; --image-top: -10px; }
.logo-santander { width: 112px; height: 28px; --image-width: 213px; --image-left: -58px; --image-top: -57px; }
.hero { min-height: 740px; }
.hero-copy { margin-top: 6vh; }
.search-section,
.properties,
.partner-section,
.santander-section,
.zones,
.about,
footer { scroll-margin-top: 118px; }

.properties { padding: 105px 5vw 130px; }
.properties .section-heading { align-items: end; margin-bottom: 40px; }
.properties .section-heading h2 { font-size: clamp(42px, 5vw, 68px); }
.catalog-layout { display: grid; grid-template-columns: minmax(235px, 265px) minmax(0, 1fr); gap: 34px; align-items: start; }
.filter-panel { padding: 22px 22px 25px; background: #faf5f2; border: 1px solid #eedfda; position: sticky; top: 134px; }
.filter-panel-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.filter-panel-heading > div { display: flex; align-items: center; gap: 8px; }
.filter-panel-heading h3 { font: 600 16px var(--sans); margin: 0; }
.filter-icon { color: var(--brand-red-dark); font-size: 22px; line-height: 1; }
.filter-panel-heading button { border: 0; background: transparent; color: var(--brand-red-dark); font: 600 11px var(--sans); cursor: pointer; text-decoration: underline; }
.filter-group { display: block; margin: 0; padding: 17px 0; border: 0; border-bottom: 1px solid var(--line); min-width: 0; }
.filter-group > label,
.filter-group > legend { display: block; width: 100%; padding: 0; margin-bottom: 10px; font-size: 11px; font-weight: 600; color: #584748; }
.filter-group select,
.filter-group input[type="number"] { display: block; width: 100%; min-height: 39px; background: #fff; border: 1px solid #dfcfcb; padding: 9px 10px; color: var(--ink); font: 13px var(--sans); border-radius: 2px; }
.filter-group select:focus,
.filter-group input:focus { outline: 2px solid #d16c6a; outline-offset: 1px; }
.operation-filter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.operation-filter legend { grid-column: 1/-1; }
.operation-filter label { width: auto; display: flex; align-items: center; justify-content: center; gap: 4px; margin: 0; padding: 9px 3px; border: 1px solid #dfcfcb; background: #fff; font-size: 10px; font-weight: 500; cursor: pointer; }
.operation-filter label:has(input:checked) { color: var(--brand-red-dark); border-color: var(--brand-red-dark); background: #fff0ed; font-weight: 600; }
.operation-filter input { accent-color: var(--brand-red-dark); width: 12px; height: 12px; margin: 0; }
.range-filter > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.range-filter label { display: block; width: auto; margin: 0; font-size: 10px; color: #7a6969; }
.range-filter input { margin-top: 5px; }
.collection-check { display: flex; gap: 9px; align-items: flex-start; margin-top: 19px; font-size: 12px; font-weight: 600; line-height: 1.4; color: var(--brand-wine); cursor: pointer; }
.collection-check input { accent-color: var(--brand-red-dark); margin: 2px 0 0; }
.apply-filters { width: 100%; border: 0; background: var(--brand-red-dark); color: #fff; padding: 13px 15px; margin-top: 21px; font: 600 12px var(--sans); display: flex; justify-content: space-between; cursor: pointer; }
.apply-filters:hover { background: var(--brand-red); filter: brightness(.9); }
.catalog-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.results-eyebrow { margin: 0 0 5px; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #8a7777; }
.catalog-toolbar strong { font: 600 17px var(--sans); }
.toolbar-actions { display: flex; align-items: center; gap: 12px; }
.toolbar-actions label { white-space: nowrap; font-size: 11px; color: #6c5d5d; }
.toolbar-actions select { margin-left: 6px; border: 1px solid #dfcfcb; padding: 8px 28px 8px 9px; background: #fff; color: var(--ink); font: 12px var(--sans); }
#filter-toggle { display: none; border: 1px solid #dfcfcb; background: #fff; color: var(--brand-red-dark); padding: 9px 12px; font: 600 12px var(--sans); cursor: pointer; }
.active-filters { display: flex; flex-wrap: wrap; gap: 7px; min-height: 0; }
.active-filters:not(:empty) { margin: 16px 0 21px; }
.active-filters button { background: #fff3ef; color: var(--brand-red-dark); border: 1px solid #ebcbc5; padding: 6px 9px; font: 500 10px var(--sans); cursor: pointer; }
.active-filters button span { font-size: 14px; margin-left: 5px; }
.catalog-results .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 20px; margin-top: 22px; }
.catalog-results .property-image { height: clamp(210px, 26vw, 310px); }
.catalog-results .property-meta h3 { font-size: 19px; line-height: 1.15; }
.catalog-results .property-meta { flex-wrap: wrap; gap: 8px; }
.catalog-results .property-price { text-align: left; font-size: 14px; }
.catalog-results .property-features { gap: 10px; flex-wrap: wrap; }
.catalog-results .property-card { min-width: 0; }
.catalog-results .property-card:hover h3 { color: var(--brand-red-dark); }
.property-card:focus-visible { outline: 3px solid var(--brand-red); outline-offset: 5px; }
.empty-state[hidden] { display: none; }
.empty-state { background: #faf5f2; }
.empty-state button { border: 1px solid var(--brand-red-dark); background: #fff; color: var(--brand-red-dark); padding: 11px 18px; cursor: pointer; }

.partner-section { display: grid; grid-template-columns: .55fr 1fr; gap: 8vw; align-items: center; background: #f3e8e3; padding: 95px 7vw; }
.partner-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.partner-feature-logo.logo-altius { width: 226px; height: 88px; --image-width: 500px; --image-left: -139px; --image-top: -27px; }
.partner-section h2,
.santander-section h2 { font: 500 clamp(34px, 4.2vw, 62px)/1.08 var(--serif); letter-spacing: -.055em; margin: 0 0 22px; }
.partner-section h2 em,
.santander-section h2 em { font-weight: 400; }
.partner-section p:not(.kicker),
.santander-section p:not(.kicker) { max-width: 560px; line-height: 1.7; color: #675859; font-size: 14px; }
.partner-cta,
.santander-section a { display: inline-flex; align-items: center; gap: 30px; margin-top: 20px; padding: 14px 18px; background: var(--brand-red-dark); color: #fff; border: 0; font: 600 12px var(--sans); text-decoration: none; cursor: pointer; }
.partner-cta:hover,
.santander-section a:hover { background: var(--brand-red); filter: brightness(.9); }
.santander-section { display: grid; grid-template-columns: .55fr 1fr; gap: 8vw; align-items: center; padding: 100px 7vw; background: #fffdfa; }
.partner-feature-logo.logo-santander { width: 250px; height: 68px; --image-width: 500px; --image-left: -133px; --image-top: -131px; }

@media (max-width: 1000px) {
  .topbar .category-nav { justify-content: flex-start; overflow-x: auto; scrollbar-width: thin; gap: 25px; }
  .topbar .category-nav a { height: 53px; }
  .topbar-note { display: none; }
  .catalog-layout { gap: 22px; grid-template-columns: 240px minmax(0, 1fr); }
}
@media (max-width: 780px) {
  .catalog-layout { display: block; }
  .filter-panel { position: static; display: none; margin-bottom: 22px; }
  .filter-panel.open { display: block; }
  #filter-toggle { display: inline-block; }
  .catalog-results .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .partner-section,
  .santander-section { grid-template-columns: 1fr; gap: 35px; }
  .partner-feature-logo.logo-altius { width: 180px; height: 70px; --image-width: 400px; --image-left: -111px; --image-top: -21px; }
  .partner-feature-logo.logo-santander { width: 220px; height: 60px; --image-width: 440px; --image-left: -117px; --image-top: -116px; }
}
@media (max-width: 600px) {
  .topbar-main { height: 60px; padding: 0 18px; }
  .topbar .category-nav { height: 48px; padding: 0 18px; gap: 22px; }
  .topbar .category-nav a { height: 48px; font-size: 11px; }
  .topbar .contact-pill { font-size: 11px; padding: 8px 11px; }
  .topbar .brand-name { display: none; }
  .hero { min-height: 690px; }
  .hero-copy { margin-top: 10vh; padding: 0 18px; }
  .properties { padding: 80px 18px 100px; }
  .properties .section-heading { margin-bottom: 25px; }
  .catalog-toolbar { align-items: flex-start; flex-direction: column; }
  .toolbar-actions { width: 100%; justify-content: space-between; }
  .catalog-results .property-grid { grid-template-columns: 1fr; }
  .catalog-results .property-image { height: 300px; }
  .partner-section,
  .santander-section { padding: 75px 22px; }
}
