/* Un único rojo de marca para logo, navegación y acciones. */
:root {
  --brand-red: #fe0100;
  --brand-red-dark: var(--brand-red);
  --brand-wine: #282327;
  --ink: #282327;
  --forest: var(--brand-red-dark);
  --green: var(--brand-red);
  --cream: #f9f3f0;
  --paper: #fffdfb;
  --sand: #e7d7d1;
  --line: rgba(83, 27, 33, .16);
}

::selection { background: #ffc8c1; color: var(--brand-wine); }
:focus-visible { outline: 3px solid var(--brand-red); outline-offset: 3px; }
.skip-link { background: var(--brand-wine); color: #fff; }

.topbar { background: linear-gradient(rgba(74, 10, 17, .32), transparent); }
.topbar.scrolled { background: rgba(255, 253, 251, .96); }
.brand-mark { border-color: currentColor; font-weight: 600; letter-spacing: -.08em; padding-right: 2px; }
.topbar.scrolled .brand-mark { color: var(--brand-red-dark); }
.filgueira-logo { display: block; flex: none; width: 52px; height: 52px; object-fit: cover; }
.logo-filter-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.filgueira-logo { filter: url(#filgueira-red-cutout); }
.filgueira-logo.logo-white { filter: url(#filgueira-white-cutout); }
.brand-symbol { display: block; position: relative; width: 90px; height: 40px; overflow: hidden; flex: none; }
.brand-symbol .brand-logo { position: absolute; width: 90px; height: 90px; max-width: none; left: 0; top: -16px; }
.footer-logo { width: 72px; height: 72px; }
@media (max-width: 520px) { .brand-symbol { width: 76px; height: 34px; } .brand-symbol .brand-logo { width: 76px; height: 76px; top: -14px; } }
.contact-pill:hover { background: #fff; color: var(--brand-red-dark); border-color: #fff; }
.topbar.scrolled .contact-pill { border-color: var(--brand-red-dark); color: var(--brand-red-dark); }
.topbar.scrolled .contact-pill:hover { background: var(--brand-red-dark); color: #fff; }

.hero {
  background: linear-gradient(135deg, #74212a 0%, #bd2628 38%, #ed3a2f 78%, #fa765b 100%);
}
.sun-glow { background: radial-gradient(circle, rgba(255, 234, 220, .5), rgba(255, 220, 207, .15) 44%, transparent 69%); }
.horizon {
  background: linear-gradient(170deg, transparent 0 14%, rgba(100, 22, 30, .4) 15% 18%, #a64343 19% 100%);
  opacity: .42;
}
.cloud, .cloud i { background: #fff5f0; }
.cloud { opacity: .58; }
.hero-copy { text-shadow: 0 2px 25px rgba(84, 13, 24, .17); }
.discover { background: rgba(99, 13, 25, .18); }
.discover:hover { color: var(--brand-red-dark); }

.kicker { color: var(--brand-red-dark); }
.search-section { background: var(--cream); }
.section-intro > p:last-child, .zone-copy > p:last-child { color: #685c5c; }
.search-card { box-shadow: 0 30px 70px rgba(98, 31, 34, .12); }
.operation-tabs button.active { color: var(--brand-red-dark); }
.operation-tabs button.active::after { border-color: var(--brand-red); }
.field-grid select:focus, .field-grid input:focus { border-color: var(--brand-red-dark); }
.search-button { background: var(--brand-red-dark); }
.search-button:hover { background: var(--brand-red); filter: brightness(.9); }
.ai-teaser { border-color: #e9c9c5; background: #fff4f1; color: #6b5656; }
.ai-teaser strong, .sparkle { color: var(--brand-red-dark); }

.property-image { background: #e8dbd2; }
.art-city { background: linear-gradient(#d9b5ae 0 48%, #dac8b2 49%); }
.art-city::before { background: linear-gradient(90deg, #e5dcd1 0 30%, #c3aaa1 30% 63%, #f0e5d8 63%); }
.art-city::after { background: repeating-linear-gradient(90deg, #775b59 0 9%, transparent 9% 17%); }
.art-coast { background: linear-gradient(#e4b9a8 0 48%, #b67c73 49% 65%, #ead5bd 66%); }
.art-coast::before { background: #fff5ec; }
.art-coast::after { background: repeating-linear-gradient(90deg, #a66662 0 15%, #fff5ec 15% 23%); }
.art-house { background: linear-gradient(#e4c3b8 0 61%, #b59983 62%); }
.art-house::before { background: #eee0d1; }
.art-house::after { background: #76595b; box-shadow: -120px 0 0 #ac7771; }
.art-tower { background: linear-gradient(#e5bdb3 0 64%, #d5b89c 65%); }
.art-tower::before { background: #f0e2d7; }
.art-tower::after { background: repeating-linear-gradient(#956866 0 9%, #f0e2d7 9% 15%); }
.tag { color: var(--brand-red-dark); background: #fff9f6; }
.heart { color: var(--brand-red-dark); }
.heart.saved { color: var(--brand-red); }
.property-price, .dialog-copy .price { color: var(--brand-red-dark); }
.property-features { border-color: var(--line); }

.zones { background: var(--brand-wine); color: #fff9f5; }
.zones .kicker { color: var(--brand-red); }
.zone-copy > p:last-child, .zone-list p { color: #e5dfe0; }
.zone-list span { color: #d5cacc; }
.zone-list article { border-color: rgba(255, 255, 255, .24); }
.about { background: #f1dfd9; }
.about-note { color: #675859; }
footer { background: #281a1e; }
footer p { color: #d1bdbd; }
footer small { color: #b9a4a4; }
.site-footer { grid-template-columns: minmax(100px, .7fr) minmax(200px, 1fr) minmax(230px, 1.2fr) minmax(180px, .9fr); align-items: start; gap: 38px; }
.site-footer > div { display: block; }
.site-footer > div:nth-child(2) { text-align: left; }
.site-footer .footer-logo { width: 100px; height: 100px; }
.footer-office strong { display: block; margin: 7px 0 16px; color: #fff7f3; font-size: 13px; font-weight: 600; }
.footer-office address { color: #f5eae8; font-size: 12px; font-style: normal; line-height: 1.6; }
.footer-office p { margin: 7px 0 0; font-size: 11px; }
.site-footer .footer-contact { text-align: right; }
.site-footer .footer-contact p { margin: 7px 0 14px; }
.site-footer .footer-contact a { font-size: 20px; line-height: 1.3; }
@media (max-width: 1050px) { .site-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); } .site-footer .footer-contact { text-align: left; } }
@media (max-width: 600px) { .site-footer { grid-template-columns: 1fr; gap: 30px; } .site-footer .footer-logo { width: 82px; height: 82px; } }
.dialog-actions a { background: var(--brand-red-dark); }
.dialog-actions button { border-color: var(--brand-red-dark); color: var(--brand-red-dark); }
.toast { background: var(--brand-wine); }
