/* 2026 refresh: calm navy, warm neutrals, readable type, practical controls. */
:root { --primary:#123e60; --primary-dark:#102d4a; --primary-light:#216489; --accent-gold:#be9657; --accent-gold-light:#f1cf90; --off-white:#f7f6f2; --shadow-card:0 5px 22px #102d4a09; }
body { background:#fcfbf8; }
.gallery-stage { position:relative; }
.gallery-stage > iframe,.gallery-stage > video { position:absolute;inset:0;width:100%;height:100%;pointer-events:auto; }
.gallery-shortcuts { display:flex;gap:8px;padding:12px 65px 12px 16px; }
.gallery-shortcuts:empty { display:none; }
.gallery-shortcuts button,.gallery-play { background:#f0d39f;color:#193a4f;border:0;border-radius:7px;padding:12px 16px;min-height:44px;cursor:pointer;font-weight:600; }
.gallery-play { display:block;margin:0 0 12px; }
#propiedades .properties-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.opportunities-heading { margin-top:64px; }
.home-empty { grid-column:1/-1;text-align:center;padding:28px;color:#52697b; }
.home-empty a { text-decoration:underline; }
.related-properties { border-top:1px solid #dce5eb;margin-top:32px;padding-top:28px; }
.related-properties h3 { font-size:1.1rem;letter-spacing:.04em;color:#173d56;margin:0 0 10px; }
.related-properties > p { font-size:.83rem;color:#627485;margin-bottom:20px; }
.related-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px; }
.related-card { display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0;background:#fff;border:1px solid #dce5eb;border-radius:10px;overflow:hidden;cursor:pointer;font:inherit;color:#203e52; }
.related-card img { width:100%;height:125px;object-fit:cover; }
.related-card span { padding:0 12px; }
.related-title { font-size:.8rem;font-weight:700;margin-top:12px;line-height:1.5; }
.related-price { font-size:.9rem;font-weight:700;margin-top:10px; }
.related-location { font-size:.7rem;color:#627485;margin:6px 0 14px; }
.related-card .related-cta { margin-top:auto;padding:12px;border-top:1px solid #e4eaee;font-size:.76rem;font-weight:600; }
.related-card:hover { border-color:#285e7a; }
@media(max-width:700px) { #propiedades .properties-grid,.related-grid { grid-template-columns:minmax(0,1fr); } .related-card img { height:170px; } }
.modal-header.gallery-header { padding:0; display:block; background:#102538; }
body:has(.modal-overlay.active) .whatsapp-float, body:has(.modal-overlay.active) .scroll-top { display:none; }
.gallery-stage { width:100%; aspect-ratio:16/9; background:#0b1c2a; display:flex; align-items:center; justify-content:center; color:#f4f7fa; text-align:center; overflow:hidden; }
.gallery-stage > img, .modal-header .gallery-stage > img { width:100%; height:100%; object-fit:contain; border-radius:0; }
.gallery-stage iframe, .gallery-stage video { width:100%; height:100%; border:0; display:block; }
.gallery-stage > p { padding:30px; max-width:500px; }
.gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 18px; color:#fff; }
.gallery-controls button { min-width:44px; min-height:44px; border:1px solid #658093; border-radius:8px; background:#17374b; color:white; font-size:1.2rem; cursor:pointer; }
.gallery-controls button:disabled { opacity:.35; cursor:default; }
.gallery-counter { font-size:.85rem; margin:0; }
.gallery-thumbnails { display:flex; gap:9px; overflow-x:auto; padding:4px 18px 14px; }
.gallery-thumbnail { width:96px; height:66px; flex:0 0 96px; border:2px solid transparent; border-radius:7px; overflow:hidden; color:#fff; background:#23485e; cursor:pointer; font-size:.75rem; }
.gallery-thumbnail[aria-pressed="true"] { border-color:#f3d093; box-shadow:0 0 0 1px #f3d093; }
.modal-header .gallery-thumbnail img { width:100%; height:100%; object-fit:cover; border-radius:0; }
.gallery-hint { color:#c7d6e0; font-size:.73rem; line-height:1.6; padding:0 18px 14px; }
.gallery-hint:empty { display:none; }
.gallery-hint a { color:#f3d093; text-decoration:underline; }
.property-media-count { position:absolute; left:12px; bottom:12px; border-radius:6px; padding:5px 9px; background:#102538df; color:white; font-size:.68rem; pointer-events:none; }
@media(max-width:600px) { .gallery-stage { aspect-ratio:4/3; } .gallery-thumbnail { width:80px;flex-basis:80px;height:58px; } .modal-header.gallery-header .modal-close { top:10px;right:10px; } }
.property-card.property-sold { border:2px solid #ba2634; }
.property-card.property-sold .property-badge, .sold-label { background:#b91c2b!important; color:#fff!important; letter-spacing:.09em; }
.property-sold .price-pen { color:#a61b29; }
.sold-notice { background:#fff0f1; color:#991b2b; padding:14px 18px; border-left:4px solid #b91c2b; margin:16px 0; border-radius:6px; }
.animate-on-scroll { opacity:1; transform:none; }
.modal-overlay { transition:opacity .2s ease; }
:focus-visible { outline:3px solid #b18032; outline-offset:4px; }
button, input, select, a { -webkit-tap-highlight-color:transparent; }
button { touch-action:manipulation; }
.navbar { border-bottom:1px solid #17354d12; box-shadow:none; }
.navbar-menu a { font-size:.75rem; letter-spacing:.07em; padding:10px 12px; }
.navbar-phone { border-radius:8px; box-shadow:none; white-space:nowrap; }
.hero { min-height:720px; height:85svh; max-height:900px; padding-top:110px; padding-bottom:100px; }
.hero-bg img { filter:brightness(.86); object-position:65% center; }
.hero-bg::after { background:linear-gradient(90deg,rgba(8,29,46,.94),rgba(8,29,46,.76) 35%,rgba(8,29,46,.10) 100%); }
.hero-content { max-width:780px; }
.hero-content .hero-badge { background:none; padding:0; border:0; border-radius:0; backdrop-filter:none; font-size:.72rem; letter-spacing:.16em; color:#f1cf90; }
.hero-content .hero-badge svg { display:none; }
.hero-content h1 { font-size:clamp(2.7rem,5.4vw,5rem); font-weight:600; letter-spacing:-.055em; line-height:1.09; text-shadow:none; margin-bottom:24px; }
.hero-content .hero-location { font-size:1rem; letter-spacing:.03em; margin-bottom:12px; }
.hero-content p { font-size:1rem; line-height:1.8; color:#e2e9ef; }
.hero-buttons .btn { border-radius:8px; font-size:.78rem; letter-spacing:.04em; padding:16px 23px; }
.hero-buttons .btn-primary { background:#efd39e; color:#152d43; border-color:#efd39e; box-shadow:none; }
.hero-buttons .btn-whatsapp { background:transparent; border:1px solid #ffffff70; color:white; box-shadow:none; }
.search-bar { border:1px solid #e6e3db; box-shadow:0 15px 40px #102d4a10; border-radius:12px; }
.search-btn { border-radius:8px; background:#123e60; }
.section-header h2 { letter-spacing:-.035em; }
.property-card { border:1px solid #e5e7e7; border-radius:12px; box-shadow:var(--shadow-card); overflow:hidden; }
.property-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px #102d4a13; }
.property-img img { aspect-ratio:1.55; object-fit:cover; }
.property-body h4 { letter-spacing:-.02em; line-height:1.45; }
.property-badge { border-radius:4px; background:#fff; color:#183b53; box-shadow:0 2px 10px #0001; }
.price-pen { color:#173d56; }
.page-banner { height:250px; }
.page-banner .banner-bg::after { background:#102d4a80; }
.page-banner h1 { text-transform:none; letter-spacing:-.04em; font-weight:600; font-size:clamp(2rem,4vw,3.3rem); }
.catalog-layout { grid-template-columns:250px minmax(0,1fr); gap:28px; }
.catalog-content { min-width:0; }
.filter-panel { border:1px solid #e4e4dc; box-shadow:none; }
.discovery-toolbar { display:flex; gap:10px; align-items:end; flex-wrap:wrap; margin-bottom:12px; }
.discovery-input { flex:1 1 240px; }
.discovery-input label { display:block; font-size:.78rem; font-weight:600; margin-bottom:8px; }
.discovery-input input { width:100%; min-height:46px; border:1px solid #ccd4d9; background:white; border-radius:8px; padding:12px 14px; font:inherit; font-size:.85rem; }
.tool-btn { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 14px; border:1px solid #cad4da; border-radius:7px; background:white; color:#173d56; font:600 .78rem/1.4 Inter, sans-serif; cursor:pointer; gap:6px; }
.tool-btn:hover { background:#edf2f4; border-color:#123e60; }
.tool-btn[aria-pressed="true"] { color:white; background:#123e60; border-color:#123e60; }
.catalog-hint { font-size:.78rem; color:#5a6470; margin:0 0 24px; }
.card-tools { display:flex; border-top:1px solid #e9eceb; padding:12px 16px; gap:8px; }
.catalog-grid:not(.list-view) .property-card, .properties-grid .property-card { display:flex; flex-direction:column; }
.card-tools { margin-top:auto; }
.whatsapp-float { bottom:24px; right:24px; }
.wa-btn-expanded { animation:none; box-shadow:0 4px 18px #102d4a20; }
.wa-btn-expanded .wa-logo, .wa-btn-expanded .wa-label { display:none; }
.wa-btn-expanded .wa-title { font-size:.85rem; }
.footer-social a[aria-disabled="true"] { opacity:.35; cursor:default; }
.card-tools .tool-btn { flex:1; padding:8px; font-size:.73rem; }
.list-view .card-tools { grid-column:1/-1; }
.modal-actions { flex-wrap:wrap; }
.modal-actions .tool-btn { flex:1; }
.compare-dialog { margin:auto; width:min(1000px,94vw); max-height:90svh; padding:28px; color:#22374a; border:1px solid #d9dfdf; border-radius:16px; box-shadow:0 24px 80px #0004; }
.compare-dialog::backdrop { background:#081d2ecc; backdrop-filter:blur(4px); }
.compare-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:24px; }
.compare-heading h2 { font-size:clamp(1.4rem,3vw,2rem); letter-spacing:-.04em; }
.eyebrow { font-size:.65rem; letter-spacing:.12em; margin-bottom:8px; color:#745a30; }
.comparison-scroll { overflow-x:auto; }
.comparison-scroll table { width:100%; border-collapse:collapse; text-align:left; font-size:.85rem; }
.comparison-scroll th, .comparison-scroll td { padding:16px; border-bottom:1px solid #e5e8e8; min-width:150px; vertical-align:top; }
.comparison-scroll thead th { width:25%; }
.comparison-scroll img { width:100%; height:125px; object-fit:cover; border-radius:8px; margin-bottom:12px; }
.comparison-scroll tbody tr:nth-child(odd) { background:#f6f7f5; }
.site-notice { position:fixed; bottom:28px; left:50%; transform:translate(-50%,20px); z-index:2000; background:#102d4a; color:white; padding:14px 22px; border-radius:10px; box-shadow:0 4px 20px #0003; width:max-content; max-width:85vw; font-size:.85rem; opacity:0; pointer-events:none; transition:.2s; }
.site-notice.visible { opacity:1; transform:translate(-50%,0); }
.skip-link { position:fixed; left:16px; top:-100px; z-index:3000; background:white; padding:12px 20px; color:#123e60; border:2px solid; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.mobile-filter-done { display:none; }
@media(min-width:769px) and (max-width:1100px) { .navbar-menu a { padding:8px 7px; font-size:.66rem; } .navbar-phone { padding:10px; font-size:.73rem; } }
@media(max-width:768px) {
 .hero { min-height:650px; height:auto; padding:140px 0 100px; }
 .hero-content { text-align:left; }
 .hero-content .hero-badge { line-height:1.8; font-size:.63rem; letter-spacing:.08em; }
 .hero-content h1 { font-size:clamp(2.5rem,9vw,4rem); }
 .hero-bg::after { background:linear-gradient(90deg,#081d2eeb,#081d2e70); }
 .hero-buttons { justify-content:flex-start; }
 .catalog-layout { grid-template-columns:minmax(0,1fr); }
 .mobile-filter-done { display:flex; width:calc(100% - 32px); margin:16px; background:#123e60; color:white; }
 .compare-dialog { padding:18px; }
 .compare-heading { align-items:flex-start; }
 .discovery-toolbar > .tool-btn { flex:1; }
 .page-banner { height:210px; }
 .search-bar { margin-left:16px; margin-right:16px; }
 .property-card .property-favorite { min-width:44px; min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .animate-on-scroll { opacity:1!important; transform:none!important; } }
