:root {
    /* Paleta base para las interfaces del proyecto. */
    --berry-red: #B8255F;
    --red: #DB4035;
    --orange: #FF9933;
    --yellow: #F2C94C;
    --olive-green: #AFB83B;
    --lime-green: #7ECC49;
    --green: #299438;
    --mint-green: #6ACCBC;
    --teal: #158FAD;
    --sky-blue: #14AAF5;
    --blue: #4073FF;
    --grape: #884DFF;
    --violet: #AF38EB;
    --magenta: #E05194;
    --charcoal: #808080;
    --ink: #17211b;
    --muted: #69736c;
    --line: #e4e9e5;
    --canvas: #f8faf8;
    --accent: var(--green);
}

* { box-sizing: border-box; }

html, body { margin: 0; width: 100%; height: 100%; }

body {
    overflow: hidden;
    color: var(--ink);
    background: var(--canvas);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: inherit; }

.app-shell {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    display: flex;
    flex-direction: column;
}

.site-header, .site-footer {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-inline: clamp(1.25rem, 4vw, 4rem);
    background: rgba(248, 250, 248, .94);
}

.site-header { min-height: 4.25rem; border-bottom: 1px solid var(--line); }
.site-footer { min-height: 3rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.site-footer-right { display: flex; align-items: center; gap: 1.25rem; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--accent); text-decoration: underline; }

.brand { font-size: .92rem; font-weight: 700; text-decoration: none; letter-spacing: -.02em; }
.header-actions { display: flex; align-items: center; gap: 1.25rem; }
.main-nav { display: flex; gap: 1.25rem; }
.main-nav a { color: var(--muted); font-size: .87rem; text-decoration: none; }
.main-nav a[aria-current="page"] { color: var(--ink); font-weight: 650; }
.user-menu { position: relative; }
.user-menu summary { display: flex; align-items: center; gap: .4rem; padding: .42rem .55rem; border: 1px solid var(--line); border-radius: .4rem; background: #fff; color: var(--ink); font-size: .8rem; font-weight: 650; cursor: pointer; list-style: none; }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu summary > svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.user-menu summary .user-menu-chevron { width: .8rem; height: .8rem; transition: transform .16s ease; }
.user-menu[open] summary { border-color: #91b9a0; background: #f3f8f4; color: var(--accent); }
.user-menu[open] summary .user-menu-chevron { transform: rotate(180deg); }
.user-menu-options { position: absolute; z-index: 10; top: calc(100% + .4rem); right: 0; min-width: 9rem; padding: .35rem; border: 1px solid var(--line); border-radius: .4rem; background: #fff; box-shadow: 0 .6rem 1.4rem rgba(23, 33, 27, .14); }
.user-menu-options a, .user-menu-options form button { display: block; width: 100%; padding: .55rem .65rem; border: 0; border-radius: .25rem; background: transparent; color: var(--ink); text-align: left; font: inherit; font-size: .8rem; text-decoration: none; cursor: pointer; }
.user-menu-options a:hover, .user-menu-options form button:hover { background: #f0f5f1; color: var(--accent); }
.user-menu summary:focus-visible, .user-menu-options a:focus-visible, .user-menu-options form button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.mobile-menu-toggle, .mobile-nav { display: none; }
.mobile-menu-toggle { width: 2.4rem; height: 2.4rem; place-items: center; border: 1px solid var(--line); border-radius: .4rem; background: #fff; color: var(--ink); cursor: pointer; }
.mobile-menu-toggle svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.mobile-menu-toggle:focus-visible, .mobile-nav button:focus-visible, .mobile-nav a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.mobile-nav { position: fixed; z-index: 1000; inset: 0; visibility: hidden; pointer-events: none; transition: visibility 0s linear .24s; }
.mobile-nav.is-open { visibility: visible; pointer-events: auto; transition-delay: 0s; }
.mobile-nav-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(12, 26, 18, .42); opacity: 0; cursor: pointer; transition: opacity .24s ease; }
.mobile-nav.is-open .mobile-nav-backdrop { opacity: 1; }
.mobile-nav-panel { position: relative; width: min(19rem, 86vw); height: 100%; padding: 1.25rem; overflow-y: auto; background: var(--canvas); box-shadow: 8px 0 28px rgba(12, 26, 18, .15); transform: translateX(-105%); transition: transform .24s ease; }
.mobile-nav.is-open .mobile-nav-panel { transform: translateX(0); }
.mobile-nav-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--line); font-size: .85rem; font-weight: 700; }
.mobile-nav-close { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #eaf1eb; color: var(--ink); font: inherit; font-size: 1.4rem; cursor: pointer; }
.mobile-nav nav { display: grid; padding-top: .75rem; }
.mobile-nav nav a { padding: .9rem .5rem; border-bottom: 1px solid var(--line); color: var(--ink); font-size: .95rem; text-decoration: none; }
.mobile-nav nav a[aria-current="page"] { color: var(--accent); font-weight: 700; }
.mobile-nav nav a:hover { background: #edf4ef; }
.mobile-user-menu { display: grid; gap: .6rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.mobile-user-menu span { color: var(--muted); font-size: .82rem; font-weight: 650; }
.mobile-user-menu button { justify-self: start; padding: .65rem .8rem; border: 1px solid #bad0c0; border-radius: .35rem; background: #fff; color: var(--accent); font: inherit; font-size: .84rem; font-weight: 650; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .mobile-nav, .mobile-nav-backdrop, .mobile-nav-panel { transition: none; } }

.site-content { flex: 1 1 auto; min-height: 0; overflow: auto; }
.about-page { width: min(100% - clamp(2rem, 6vw, 6rem), 90rem); min-height: 100%; margin: 0 auto; padding-bottom: 0; display: grid; grid-template-rows: auto 1fr auto; }
.about-hero { display: grid; grid-template-columns: 1fr; gap: .35rem 2rem; align-items: center; padding: clamp(.8rem, 2vh, 1.5rem) 0 clamp(.8rem, 2vh, 1.2rem); border-bottom: 1px solid var(--line); }
.about-hero .eyebrow { grid-column: 1 / -1; margin: 0 0 .3rem; }
.about-hero h1 { max-width: 18ch; margin: 0; font-size: clamp(2rem, 3vw, 3rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.04; }
.about-profile h2 { margin: 0 0 .35rem; font-size: .95rem; font-weight: 650; letter-spacing: -.02em; }
.about-profile p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.45; }
.about-profile address { display: flex; flex-wrap: wrap; gap: .2rem .85rem; margin-top: .5rem; font-size: .72rem; font-style: normal; }
.about-profile address a { color: var(--accent); text-decoration: none; overflow-wrap: anywhere; }
.about-profile address a:hover { text-decoration: underline; }
.about-portrait { display: block; width: 112px; height: 112px; object-fit: cover; object-position: 62% center; border-radius: .25rem; }
.about-columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-content: center; padding: clamp(1rem, 3vh, 2rem) 0; }
.about-columns section { min-width: 0; padding: 0 clamp(.8rem, 1.6vw, 1.5rem); border-left: 1px solid var(--line); transition: background-color .18s ease, box-shadow .18s ease; }
.about-columns section:first-child { padding-left: 0; border-left: 0; }
.about-columns section:last-child { padding-right: clamp(1.2rem, 2vw, 2rem); }
.about-columns section:hover { background-color: #eef5ef; box-shadow: inset 0 -2px var(--accent); }
.about-number { display: block; margin-bottom: .75rem; color: var(--accent); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.about-columns h2 { min-height: 2.5em; margin: 0 0 .8rem; font-size: clamp(1.13rem, 1.45vw, 1.5rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.22; }
.about-columns p { margin: 0 0 .75rem; color: #4e5b51; font-size: clamp(.72rem, .85vw, .84rem); line-height: 1.55; }
.about-columns p:last-child { margin-bottom: 0; }
.about-columns .about-vision { background: #edf3ee; }
.about-columns .about-vision:hover { background: #e4f0e6; }
@media (prefers-reduced-motion: reduce) { .about-columns section { transition: none; } }
.about-participate { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; padding: clamp(.8rem, 2vh, 1.2rem) 0; border-top: 1px solid var(--line); }
.about-participate h2 { margin: 0 0 .25rem; font-size: 1.05rem; font-weight: 600; letter-spacing: -.025em; }
.about-participate p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.about-participate a { padding: .7rem .9rem; border-radius: .35rem; background: var(--accent); color: #fff; font-size: .75rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.about-participate a:hover { background: #175436; }
.about-contributor { --contributor-photo-size: clamp(10rem, 17vw, 13rem); display: grid; grid-template-columns: var(--contributor-photo-size) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.75rem); align-items: center; margin-top: .9rem; padding: clamp(1.4rem, 3vw, 2.5rem); }
.about-contributor + .about-contributor { margin-top: .85rem; }
.about-contributor-photo { display: block; width: var(--contributor-photo-size); height: var(--contributor-photo-size); border-radius: 50%; object-fit: cover; object-position: center; background: #e1e9e3; box-shadow: 0 .7rem 1.6rem rgba(23, 33, 27, .12); }
.about-contributor .eyebrow { margin-bottom: .55rem; font-size: .64rem; }
.about-contributor h2 { max-width: 24ch; margin: 0 0 .8rem; font-size: clamp(1.13rem, 1.45vw, 1.5rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.22; }
.about-contributor p:not(.eyebrow) { max-width: 65rem; margin: 0 0 .7rem; color: #4e5b51; font-size: clamp(.72rem, .85vw, .84rem); line-height: 1.55; }
.about-contributor a { color: var(--accent); font-size: clamp(.72rem, .85vw, .84rem); font-weight: 700; text-decoration: none; }
.about-contributor a:hover { text-decoration: underline; }
.about-contributor address { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin-top: .9rem; font-size: .88rem; font-style: normal; }
@media (max-width: 68rem) { .about-page { min-height: 0; } .about-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 0; align-content: start; } .about-columns section:nth-child(3) { padding-left: 0; border-left: 0; } }
@media (max-width: 48rem) { .site-header { gap: .6rem; padding-block: .8rem; } .main-nav { display: none; } .mobile-menu-toggle { display: grid; } .mobile-nav { display: block; } .about-hero { grid-template-columns: 1fr 88px; gap: .75rem 1rem; } .about-hero .eyebrow { grid-column: 1 / -1; } .about-hero h1 { grid-column: 1; grid-row: 2; } .about-profile { grid-column: 1 / -1; grid-row: 3; } .about-portrait { grid-column: 2; grid-row: 2; width: 88px; height: 88px; align-self: start; } .about-columns { grid-template-columns: 1fr; gap: 0; } .about-columns section, .about-columns section:first-child, .about-columns section:nth-child(3), .about-columns section:last-child { padding: 1rem 0; border-left: 0; border-bottom: 1px solid var(--line); } .about-columns h2 { min-height: 0; font-size: 1.3rem; } .about-columns p { font-size: .9rem; line-height: 1.6; } .about-participate { grid-template-columns: 1fr; } .about-participate a { justify-self: start; } .about-contributor { --contributor-photo-size: min(8rem, 26vw); grid-template-columns: var(--contributor-photo-size) minmax(0, 1fr); gap: 1rem; padding: 1.1rem; } .about-contributor h2 { font-size: 1.3rem; } .about-contributor p:not(.eyebrow), .about-contributor a { font-size: .9rem; line-height: 1.6; } }
.page--mapa { overflow: hidden; }
.page--propiedad { overflow: hidden; }

.home { position: relative; min-height: 100%; display: grid; grid-template-columns: minmax(25rem, .9fr) minmax(32rem, 1.1fr); }
.home-welcome { position: sticky; top: 0; align-self: start; display: flex; flex-direction: column; justify-content: center; min-height: calc(100vh - 7.25rem); min-height: calc(100dvh - 7.25rem); padding: clamp(2.5rem, 5vw, 5rem) clamp(2rem, 5vw, 4.5rem); border-right: 1px solid var(--line); view-transition-name: home-welcome; }
.home-welcome h1 { max-width: 11ch; margin: 0; font-size: clamp(2.8rem, 4.3vw, 4.8rem); letter-spacing: -.055em; line-height: .98; }
.home-welcome > p:not(.eyebrow) { max-width: 35rem; margin: 1.6rem 0 2rem; color: var(--muted); font-size: 1.04rem; line-height: 1.65; }
.home-properties { min-width: 0; padding: clamp(2rem, 4vw, 4rem); background: #eef2ef; }
.home-properties-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.home-properties-heading h2 { margin: 0; font-size: clamp(1.8rem, 3.2vw, 3rem); letter-spacing: -.045em; }
.home-properties-actions { display: flex; align-items: center; gap: .75rem; }
.home-properties-actions > span { color: var(--muted); font-size: .8rem; white-space: nowrap; }
.home-search-toggle { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid #bad0c0; border-radius: .45rem; background: #fff; color: var(--accent); cursor: pointer; }
.home-search-toggle:hover, .home-search-toggle[aria-expanded="true"] { background: #eaf4ed; }
.home-search-toggle:focus-visible { outline: 2px solid #8fc7a8; outline-offset: 2px; }
.home-search-toggle svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.home-property-search { width: min(100%, 28rem); margin-bottom: 1.5rem; }
.home-property-search[hidden] { display: none; }
.home-property-search label { display: block; margin-bottom: .45rem; color: var(--ink); font-size: .82rem; font-weight: 650; }
.home-property-search input { width: 100%; padding: .78rem .9rem; border: 1px solid #bac5bd; border-radius: .45rem; background: #fff; color: var(--ink); font: inherit; font-size: .9rem; }
.home-property-search input:focus-visible { outline: 2px solid #8fc7a8; outline-offset: 2px; }
.home-type-filters { margin: -.55rem 0 1.5rem; }
.home-welcome-toggle { position: absolute; z-index: 1; top: 1rem; left: 45%; display: grid; width: 3rem; height: 3rem; place-items: center; transform: translateX(calc(-100% - 1rem)); border: 1px solid #bad0c0; border-radius: .65rem; background: #fff; color: var(--accent); cursor: pointer; view-transition-name: home-toggle; }
.home-welcome-toggle:hover { background: #eaf4ed; }
.home-welcome-toggle:focus-visible { outline: 2px solid #8fc7a8; outline-offset: 2px; }
.home-welcome-toggle svg { width: 1.65rem; height: 1.65rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.home-welcome-toggle.is-discoverable svg { animation: home-toggle-hint 1.15s cubic-bezier(.3, .8, .35, 1) 2; }
@keyframes home-toggle-hint { 0% { transform: rotate(0) scale(1); } 42% { transform: rotate(150deg) scale(1.12); } 100% { transform: rotate(360deg) scale(1); } }
.home--welcome-hidden { grid-template-columns: 1fr; }
.home--welcome-hidden .home-welcome { display: none; }
.home--welcome-hidden .home-welcome-toggle { left: 0; transform: translateX(1rem); }
.home--welcome-hidden .home-welcome-toggle svg { transform: rotate(180deg); }
.home--welcome-hidden .home-properties { padding-top: max(5rem, 4vw); }
.home--welcome-hidden .home-property-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
@media (prefers-reduced-motion: reduce) { .home-welcome-toggle.is-discoverable svg { animation: none; } }
.home-property-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.home-property-card { display: grid; grid-template-rows: 11rem 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: .7rem; background: #fff; box-shadow: 0 8px 24px rgba(23, 33, 27, .06); }
.home-property-card[hidden], .home-empty[hidden] { display: none; }
.home-property-image { display: grid; height: 11rem; place-items: center; overflow: hidden; background: #dfe7e1; color: var(--muted); font-size: .8rem; text-decoration: none; }
.home-property-image img { display: block; width: 100%; height: 11rem; object-fit: cover; transition: transform .35s ease; }
.home-property-card:hover .home-property-image img { transform: scale(1.025); }
.home-property-content { display: grid; grid-template-rows: 2.3rem 4.2rem 3.6rem auto; gap: .45rem; padding: 1rem 1.1rem 1.15rem; }
.home-property-content h3 { display: -webkit-box; overflow: hidden; margin: 0; font-size: 1.12rem; line-height: 1.25; letter-spacing: -.025em; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.home-property-content .map-property-meta { display: -webkit-box; overflow: hidden; margin: 0; line-height: 1.4; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.home-property-content .map-property-description { margin: 0; }
.home-property-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .3rem; }
.home-property-content .map-property-button { align-self: end; margin: 0; text-decoration: none; }
.home-category-dot { flex: 0 0 .72rem; width: .72rem; height: .72rem; border-radius: 50%; background: var(--category-color, var(--charcoal)); }
.home-empty { padding: 1.25rem; border: 1px dashed #aab7ae; color: var(--muted); }

::view-transition-group(*) { animation-duration: .45s; animation-timing-function: cubic-bezier(.22, 1, .36, 1); }

.eyebrow { margin: 0 0 .75rem; color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.map-intro h1 { margin: 0; letter-spacing: -.055em; line-height: .98; }

.button { align-self: flex-start; padding: .78rem 1rem; border-radius: .35rem; background: var(--accent); color: #fff; font-size: .88rem; font-weight: 650; text-decoration: none; }

.access { width: 100%; height: 100%; min-height: 0; display: grid; place-items: center; padding: 1.5rem; }
.access-card { width: min(100%, 24rem); padding: 2rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.access-card h1 { margin: 0; font-size: 2rem; letter-spacing: -.04em; }
.access-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.5; }
.access form { display: grid; gap: .7rem; margin-top: 1.5rem; }
.access label { font-size: .82rem; font-weight: 650; }
.access input { width: 100%; padding: .75rem; border: 1px solid #bac5bd; border-radius: .3rem; color: var(--ink); font: inherit; }
.access input:focus { outline: 2px solid #8fc7a8; outline-offset: 1px; border-color: var(--accent); }
.access .button { border: 0; cursor: pointer; margin-top: .45rem; }
.form-error { color: #a62c24 !important; font-size: .9rem; }

.dashboard, .editor { width: min(100%, 68rem); margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem) clamp(1.25rem, 4vw, 2rem); }
.capture-dashboard { width: min(100%, 96rem); }
.capture-search { width: min(100%, 28rem); margin-top: 2rem; }
.capture-search label { display: block; margin-bottom: .45rem; color: var(--ink); font-size: .82rem; font-weight: 650; }
.capture-search div { position: relative; }
.capture-search svg { position: absolute; top: 50%; left: .8rem; width: 1rem; height: 1rem; fill: none; stroke: var(--muted); stroke-width: 1.8; transform: translateY(-50%); pointer-events: none; }
.capture-search input { width: 100%; padding: .75rem .85rem .75rem 2.35rem; border: 1px solid #bac5bd; border-radius: .45rem; background: #fff; color: var(--ink); font: inherit; font-size: .9rem; }
.capture-search input:focus-visible { outline: 2px solid #8fc7a8; outline-offset: 2px; border-color: var(--accent); }
.dashboard-heading, .editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.dashboard-actions { display: flex; align-items: center; gap: .7rem; }
.button-secondary { border: 1px solid #bad0c0; background: transparent; color: var(--accent); }
.dashboard h1, .editor h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -.05em; }
.dashboard-heading p:not(.eyebrow) { color: var(--muted); }
.empty-state { margin-top: 2rem; padding: 1rem; border: 1px dashed #bac5bd; color: var(--muted); }
.capture-table-wrap { margin-top: 1rem; overflow-x: auto; border: 1px solid var(--line); border-radius: .65rem; background: #fff; }
.capture-table { width: 100%; min-width: 55rem; border-collapse: collapse; text-align: left; }
.capture-table th, .capture-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.capture-table th { background: #f5f8f5; color: var(--muted); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.capture-table th button { display: inline-flex; align-items: center; gap: .25rem; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 700; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.capture-table th button::after { content: '↕'; color: #9aa79f; font-size: .9rem; letter-spacing: 0; }
.capture-table th button.is-sorted::after { content: '↑'; color: var(--accent); }
.capture-table th[aria-sort="descending"] button.is-sorted::after { content: '↓'; }
.capture-table th button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.capture-table tbody tr:hover { background: #f5faf6; }
.capture-table tbody tr:last-child td { border-bottom: 0; }
.capture-table td:first-child { width: 5.5rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.capture-table td:nth-child(2) { width: 100%; font-weight: 650; }
.capture-table th:nth-child(3), .capture-table td:nth-child(3) { width: 10rem; white-space: nowrap; }
.capture-table td a { color: var(--ink); text-decoration: none; }
.capture-table td a:hover { color: var(--accent); text-decoration: underline; }
.capture-status { display: inline-flex; padding: .22rem .45rem; border-radius: 99px; font-size: .73rem; font-weight: 700; }
.capture-status.is-public { background: #e7f4e9; color: #17633a; }
.capture-status.is-private { background: #f0f2f0; color: #68736c; }
.capture-pending-robot { width: 1.5rem; height: 1.5rem; color: var(--accent); fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.seo-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.seo-summary div { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.seo-summary strong { font-size: 1.65rem; letter-spacing: -.05em; }
.seo-summary span { color: var(--muted); font-size: .78rem; }
.seo-report-wrap { margin-top: 1rem; overflow-x: auto; border: 1px solid var(--line); border-radius: .65rem; background: #fff; }
.seo-report { width: 100%; min-width: 42rem; border-collapse: collapse; text-align: left; }
.seo-report th, .seo-report td { padding: .8rem 1rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.seo-report th { color: var(--muted); background: #f5f8f5; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.seo-report tbody tr:last-child td { border-bottom: 0; }
.seo-report tbody tr:hover { background: #f5faf6; }
.seo-report td:first-child { width: 5.5rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.seo-report td:nth-child(2) { width: 35%; font-weight: 650; }
.seo-report a { color: var(--ink); text-decoration: none; }
.seo-report a:hover { color: var(--accent); text-decoration: underline; }
.seo-complete { color: var(--accent); font-size: .82rem; font-weight: 700; }
.seo-missing { color: #8b5420; font-size: .82rem; }
.text-link { padding-top: .5rem; color: var(--accent); font-size: .9rem; }
.property-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.property-form label { display: grid; gap: .45rem; font-size: .82rem; font-weight: 650; }
.property-form input, .property-form textarea { width: 100%; padding: .72rem; border: 1px solid #bac5bd; border-radius: .3rem; color: var(--ink); background: #fff; font: inherit; font-weight: 400; }
.property-form textarea { resize: vertical; }
.field-full { grid-column: 1 / -1; }
.editor-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .88rem; }
.editor-actions .button { border: 0; cursor: pointer; }
.editor-top-actions { position: fixed; z-index: 5; top: 5.25rem; right: clamp(1rem, 4vw, 4rem); display: flex; flex-direction: column; align-items: stretch; gap: .7rem; }
.editor-top-actions .button { text-align: center; box-shadow: 0 5px 14px rgba(20, 80, 45, .16); }
.editor-save-sticky { border: 0; cursor: pointer; }
.save-toast { position: fixed; z-index: 8; top: 1rem; right: 1rem; padding: .8rem 1rem; border-radius: .45rem; background: var(--ink); color: #fff; font-size: .88rem; opacity: 0; pointer-events: none; transform: translateY(-.5rem); transition: opacity .18s ease, transform .18s ease; }
.save-toast.is-visible { opacity: 1; transform: translateY(0); }
.save-toast.is-error { background: #a62c24; }
.location-picker { padding: 1rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; }
.location-picker-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.location-picker p { margin: .5rem 0 .9rem; color: var(--muted); font-size: .82rem; }
#location-map { height: 20rem; border-radius: .35rem; overflow: hidden; }
.text-button { margin-left: .6rem; padding: 0; border: 0; background: none; color: var(--accent); font: inherit; font-size: .8rem; cursor: pointer; }
.text-button-danger { color: #a62c24; }
.editorial-panel { padding-top: 1rem; border-top: 1px solid var(--line); }
.editorial-panel summary { cursor: pointer; font-weight: 700; }
.editorial-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; padding-left: 1rem; border-left: 2px solid #c9d8ce; }
.editorial-grid label { display: grid; gap: .45rem; font-size: .82rem; font-weight: 650; }
.editorial-grid textarea { width: 100%; padding: .72rem; border: 1px solid #bac5bd; border-radius: .3rem; font: inherit; font-weight: 400; resize: vertical; }
.reference-list { display: grid; gap: .8rem; margin-top: 1rem; }
.reference-row { display: grid; grid-template-columns: 1fr 1.5fr .8fr; gap: .6rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.reference-row-source { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.reference-row input, .reference-row textarea { width: 100%; padding: .65rem; border: 1px solid #bac5bd; border-radius: .3rem; font: inherit; font-size: .86rem; }
.reference-row textarea { grid-column: 1 / -1; min-height: 4rem; resize: vertical; }
.publish-switch { display: inline-flex; align-items: center; justify-content: space-between; gap: .65rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .45rem; background: rgba(255, 255, 255, .96); box-shadow: 0 5px 14px rgba(20, 80, 45, .1); color: var(--ink); font-size: .88rem; font-weight: 650; cursor: pointer; }
.publish-switch input { position: absolute; opacity: 0; pointer-events: none; }
.switch-control { width: 2.75rem; height: 1.55rem; padding: .16rem; border-radius: 99px; background: #aab5ad; transition: background .18s ease; }
.switch-control span { display: block; width: 1.23rem; height: 1.23rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .22); transition: transform .18s ease; }
.publish-switch input:checked + .switch-control { background: var(--accent); }
.publish-switch input:checked + .switch-control span { transform: translateX(1.2rem); }
.publish-switch input:focus-visible + .switch-control { outline: 2px solid #8fc7a8; outline-offset: 2px; }
.images-panel { margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.images-panel summary { cursor: pointer; font-size: 1.05rem; font-weight: 700; }
.images-panel[open] summary { margin-bottom: 1.25rem; }
.image-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.upload-box { position: relative; display: grid; gap: .4rem; min-height: 8rem; align-content: center; padding: 1.15rem; border: 1px dashed #91a99a; border-radius: .4rem; background: #fff; cursor: pointer; }
.upload-box:hover { border-color: var(--accent); background: #f5faf6; }
.upload-box strong { font-size: .9rem; }
.upload-box span { color: var(--muted); font-size: .8rem; line-height: 1.4; }
.upload-box input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.image-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: .8rem; margin-top: 1.5rem; }
.image-card { overflow: hidden; border: 1px solid var(--line); border-radius: .35rem; background: #fff; color: var(--ink); font-size: .8rem; text-decoration: none; }
.image-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #e9eeea; }
.image-card span { display: block; padding: .55rem .65rem; }
.image-editor-card { display: grid; gap: .6rem; min-width: 0; padding: .65rem; border: 1px solid var(--line); border-radius: .5rem; background: #fff; }
.image-editor-card .image-card { border: 0; border-radius: .3rem; }
.image-editor-card label { display: grid; gap: .35rem; color: var(--ink); font-size: .75rem; font-weight: 650; }
.image-editor-card input, .image-editor-card textarea { width: 100%; resize: vertical; padding: .55rem; border: 1px solid #bac5bd; border-radius: .3rem; font: inherit; font-size: .8rem; font-weight: 400; }
.image-editor-card input:focus-visible, .image-editor-card textarea:focus-visible { outline: 2px solid #8fc7a8; outline-offset: 1px; border-color: var(--accent); }
.image-metadata-save { border: 0; cursor: pointer; }

.map-page { height: 100%; min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr); }
.map-intro { padding: .72rem clamp(1.25rem, 4vw, 4rem) .8rem; background: var(--canvas); }
.map-intro .eyebrow { margin-bottom: .25rem; font-size: .64rem; }
.map-intro h1 { font-size: clamp(1.45rem, 3vw, 2.2rem); }
.map-type-filters { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .7rem; }
.map-type-filter { --filter-color: var(--accent); display: inline-flex; align-items: center; gap: .32rem; min-height: 1.9rem; padding: .32rem .62rem .32rem .42rem; border: 1px solid #d3d9d4; border-radius: 999px; background: #fff; color: #68716b; font: inherit; font-size: .73rem; font-weight: 650; line-height: 1; cursor: pointer; transition: background-color .16s ease, border-color .16s ease, color .16s ease; }
.map-type-filter:hover { border-color: #aeb8b0; background: #f7f8f7; color: #4f5a52; }
.map-type-filter.is-selected { border-color: #aeb8b0; background: #f1f3f1; color: #39443c; }
.map-type-filter-check { display: grid; width: 1rem; height: 1rem; place-items: center; border: 1px solid #aeb8b0; border-radius: 50%; background: #fff; color: transparent; font-size: .7rem; font-weight: 800; }
.map-type-filter.is-selected .map-type-filter-check { border-color: var(--filter-color); background: var(--filter-color); color: #fff; }
.map-type-filter:focus-visible { outline: 2px solid var(--filter-color); outline-offset: 2px; }
.map-canvas { min-height: 0; width: 100%; background: #dce4d9; }
.property-marker { --marker-color: var(--accent); display: block; box-sizing: border-box; width: 1.1rem; height: 1.1rem; min-width: 1.1rem; min-height: 1.1rem; padding: 0; appearance: none; border: 3px solid #fff; border-radius: 999px; aspect-ratio: 1 / 1; background: var(--marker-color); box-shadow: 0 2px 8px rgba(0, 0, 0, .3); cursor: pointer; }
.property-marker[hidden] { display: none; }
.maplibregl-popup-content { overflow: hidden; padding: 0; border-radius: .7rem; box-shadow: 0 10px 28px rgba(0, 0, 0, .2); }
.map-property-card { width: min(17rem, 72vw); background: #fff; }
.map-property-card img { display: block; width: 100%; height: 9rem; object-fit: cover; background: #e9eeea; }
.map-property-card-content { padding: .9rem 1rem 1rem; }
.map-property-card h2 { margin: 0; font-size: 1rem; letter-spacing: -.02em; }
.map-property-card p { margin: .5rem 0 0; }
.map-property-meta { color: var(--accent); font-size: .78rem; font-weight: 650; }
.map-property-description { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .82rem; line-height: 1.45; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.map-research-note { display: flex; align-items: center; gap: .65rem; margin-top: .9rem; padding: .7rem; border: 1px dashed #a9c5b2; border-radius: .5rem; background: #f2f8f3; color: var(--accent); }
.map-research-note svg { flex: 0 0 2.4rem; width: 2.4rem; height: 2.4rem; }
.map-research-note p, .map-property-card .map-research-note p { margin: 0; font-size: .76rem; line-height: 1.4; }
.map-research-note strong, .map-research-note span { display: block; }
.map-research-note strong { margin-bottom: .15rem; }
.map-research-note span { color: var(--muted); }
.map-property-button { display: inline-flex; align-items: center; gap: .4rem; margin-top: .8rem; padding: .45rem .65rem; border: 1px solid #bad0c0; border-radius: .35rem; background: #f6faf7; color: var(--accent); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.map-property-button:hover { background: #eaf4ed; }
.map-property-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.property-aside { position: absolute; z-index: 3; top: 5.2rem; right: 1rem; bottom: 1rem; width: min(23rem, calc(100% - 2rem)); overflow: auto; border: 1px solid var(--line); border-radius: .75rem; background: #fff; box-shadow: 0 12px 32px rgba(0, 0, 0, .18); opacity: 0; pointer-events: none; transform: translateX(calc(100% + 1.25rem)); transition: transform .26s ease, opacity .2s ease; }
.property-aside.is-open { opacity: 1; pointer-events: auto; transform: translateX(0); }
.property-aside-header { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; padding: .85rem 1rem; border-bottom: 1px solid var(--line); background: #fff; font-size: .85rem; font-weight: 700; }
.property-aside-header button { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #eff3f0; color: var(--ink); font-size: 1.35rem; line-height: 1; cursor: pointer; }
#property-aside-content { padding: 1rem; }
#property-aside-content h2 { margin: 0 0 1rem; font-size: 1.35rem; letter-spacing: -.035em; }
.property-aside-link { display: inline-flex; align-items: center; gap: .38rem; margin: -0.35rem 0 1rem; color: var(--accent); font-size: .8rem; font-weight: 700; text-decoration: none; }
.property-aside-link:hover { text-decoration: underline; }
.property-aside-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.property-aside-link svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.property-aside-image { display: block; width: 100%; max-height: 14rem; margin: -1rem -1rem 1rem; width: calc(100% + 2rem); object-fit: cover; background: #e9eeea; }
#property-aside-content table { width: 100%; border-collapse: collapse; font-size: .86rem; }
#property-aside-content th, #property-aside-content td { padding: .55rem 0; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
#property-aside-content th { width: 38%; color: var(--muted); font-weight: 500; }
.property-aside-description { margin: 1rem 0 0; color: var(--ink); font-size: .86rem; line-height: 1.5; }
.public-property { width: min(100%, 52rem); margin: 0 auto; padding: clamp(2rem, 5vw, 5rem) clamp(1.25rem, 4vw, 2rem); }
.public-property h1 { margin: 0 0 2rem; font-size: clamp(2.4rem, 7vw, 5rem); letter-spacing: -.055em; }
.public-property h2 { margin: 2.5rem 0 .75rem; font-size: 1.3rem; }
.public-property p { line-height: 1.65; white-space: normal; }
.public-property-hero { display: block; width: 100%; max-height: 30rem; border-radius: .7rem; object-fit: cover; }
.public-property-table { width: 100%; margin-top: 1.5rem; border-collapse: collapse; }
.public-property-table th, .public-property-table td { padding: .65rem 0; border-bottom: 1px solid var(--line); text-align: left; }
.public-property-table th { width: 38%; color: var(--muted); font-weight: 500; }

.property-magazine { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(22rem, .88fr) minmax(34rem, 1.12fr); background: #fff; }
.property-cover { position: relative; display: flex; min-width: 0; flex-direction: column; overflow: hidden; padding: clamp(1.5rem, 3vw, 3rem); border-right: 1px solid var(--line); background: var(--canvas); color: #303733; }
.property-cover-top { display: flex; justify-content: space-between; gap: 1rem; font-size: .65rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.property-cover-content { margin: 0 0 1rem; }
.property-cover-kicker { margin: 0 0 .85rem; color: #69736c; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.property-cover h1 { max-width: 16ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.9rem, 3.6vw, 4.1rem); font-weight: 400; letter-spacing: -.045em; line-height: 1.05; text-wrap: balance; }
.property-edit-action { display: flex; justify-content: flex-end; margin-top: .7rem; }
.property-edit-action a { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .5rem; border: 1px solid #bac5bd; border-radius: .3rem; color: #59625c; font-size: .72rem; font-weight: 650; text-decoration: none; }
.property-edit-action a:hover { border-color: #91b9a0; background: #eef5f0; color: var(--accent); }
.property-edit-action a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.property-edit-action svg { width: .9rem; height: .9rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.property-cover-meta { max-width: 32rem; margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid #cfd5d0; color: #59625c; font-size: .82rem; line-height: 1.45; }
.property-cover-edition { margin-top: auto; font-family: Georgia, "Times New Roman", serif; font-size: .8rem; font-style: italic; }
.property-spread { min-width: 0; min-height: 0; }
.property-main-image { position: relative; display: block; width: 100%; height: clamp(10rem, 27vh, 17rem); flex: 0 1 auto; margin: 1.5rem 0; overflow: hidden; border-radius: .25rem; background: #e4e8e5; color: #fff; }
.property-main-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.property-main-image span { position: absolute; right: 1rem; bottom: 1rem; padding: .45rem .65rem; border-radius: 99px; background: rgba(25, 30, 27, .75); font-size: .7rem; font-weight: 700; }
.property-gallery { min-height: 0; margin: 2.5rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--line); }
.property-gallery-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: .85rem; }
.property-gallery-heading h3 { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 400; }
.property-gallery-heading span { color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.property-visual-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .85rem; }
.property-visual-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: .45rem; background: var(--canvas); color: var(--ink); text-decoration: none; }
.property-visual-card img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #cad5cd; }
.property-video-frame { width: 100%; aspect-ratio: 16 / 9; background: #cad5cd; }
.property-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.property-visual-card > span { display: block; padding: .7rem .8rem; font-size: .76rem; font-weight: 650; line-height: 1.35; }
.property-visual-card.property-lightbox:hover { border-color: #91b9a0; background: #eef5f0; }
.property-visual-card.property-lightbox:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.property-lightbox { position: relative; display: block; width: 100%; height: 100%; color: #fff; }
.property-visual-card.property-lightbox { display: flex; height: auto; color: var(--ink); }
.property-lightbox > span { position: absolute; right: .8rem; bottom: .8rem; padding: .42rem .6rem; border-radius: 99px; background: rgba(20, 27, 23, .78); font-size: .68rem; font-weight: 700; letter-spacing: .04em; }
.property-visual-card.property-lightbox > span { position: static; margin: 0; border-radius: 0; background: transparent; color: var(--accent); font-size: .76rem; letter-spacing: 0; text-transform: none; }
.property-image-metadata { display: grid; gap: .4rem; padding: 0 .8rem .8rem; color: #4d5a51; }
.property-image-metadata p { margin: 0; font-size: .76rem; line-height: 1.45; }
.property-image-metadata .property-image-year { color: var(--accent); font-size: .68rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.property-image-metadata .property-image-source { color: var(--muted); font-size: .72rem; }
.property-gallery-empty { display: grid; min-height: 8rem; place-items: center; border: 1px dashed #9caaa0; color: var(--muted); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.property-article-scroll { --article-gutter: clamp(1.5rem, 5vw, 5rem); height: 100%; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 var(--article-gutter) 4rem; scrollbar-color: #9aada0 transparent; }
.property-article-heading { display: grid; grid-template-columns: 1fr; padding: clamp(2.5rem, 5vw, 5rem) 0 1.5rem; border-bottom: 1px solid var(--line); }
.property-article-heading h2 { max-width: 18ch; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 3.5vw, 3.6rem); font-weight: 400; letter-spacing: -.045em; line-height: 1; }
.property-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 2rem; }
.property-facts div { padding: .9rem 1rem .9rem 0; border-bottom: 1px solid var(--line); }
.property-facts dt { color: var(--accent); font-size: .65rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.property-facts dd { margin: .35rem 0 0; font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.35; }
.property-research-note { display: flex; align-items: center; gap: 1.4rem; max-width: 44rem; margin: 1.5rem 0 2rem; padding: 1.4rem; border: 1px dashed #a9c5b2; border-radius: .7rem; background: #f2f8f3; }
.property-research-robot { flex: 0 0 6rem; width: 6rem; height: 6rem; color: var(--accent); }
.property-research-kicker { margin: 0 0 .45rem !important; color: var(--accent) !important; font-size: .7rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.property-research-note h3 { margin: 0 0 .45rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.4rem; font-weight: 400; line-height: 1.2; }
.property-research-note p:last-child { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.55; }
.property-copy { max-width: 44rem; }
.property-copy h3 { margin: 2.25rem 0 .65rem; font-family: Georgia, "Times New Roman", serif; font-size: 1.55rem; font-weight: 400; }
.property-copy p { margin: 0; color: #354139; font-family: "Source Serif 4", Georgia, "Times New Roman", serif; font-size: 1.04rem; line-height: 1.75; text-align: justify; text-align-last: left; hyphens: auto; }
.property-copy-lead > p:first-child::first-letter { float: left; margin: .08em .12em 0 0; color: var(--accent); font-size: 4.2rem; line-height: .75; }
.property-references { padding-top: .5rem; }
.property-references ul, .property-references ol { padding-left: 1.25rem; color: var(--muted); font-size: .88rem; line-height: 1.6; }
.property-references a { color: var(--accent); }

/* En escritorio, conserva proporciones similares al zoom de navegador al 90%. */
@media (min-width: 70rem) {
    html { font-size: 90%; }
}

@media (min-width: 100rem) {
    .home--welcome-hidden .home-property-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 32rem) {
    .brand { max-width: 12rem; }
    .site-header { gap: 1rem; }
    .main-nav { gap: .8rem; }
    .property-form { grid-template-columns: 1fr; }
    .image-form { grid-template-columns: 1fr; }
    .editorial-grid { grid-template-columns: 1fr; }
    .reference-row, .reference-row-source { grid-template-columns: 1fr; }
    .location-picker-header { align-items: flex-start; flex-direction: column; }
    .text-button { margin: 0 .7rem 0 0; }
}

@media (max-width: 64rem) {
    .home { grid-template-columns: 1fr; }
    .home-welcome { position: static; min-height: 70vh; border-right: 0; border-bottom: 1px solid var(--line); }
    .home-welcome-toggle { left: auto; right: 1rem; transform: none; }
    .home--welcome-hidden .home-welcome-toggle { left: 1rem; right: auto; transform: none; }
}

@media (max-width: 56rem) {
    .page--propiedad { overflow: auto; }
    .property-magazine { height: auto; grid-template-columns: 1fr; }
    .property-cover { min-height: min(78vh, 48rem); }
    .property-cover h1 { font-size: clamp(1.9rem, 7.2vw, 3.9rem); }
    .property-spread { display: block; }
    .property-gallery { height: auto; }
    .property-main-image { height: min(38vh, 22rem); }
    .property-article-scroll { height: auto; overflow: visible; }
}

@media (max-width: 42rem) {
    .home-properties-heading { align-items: flex-start; flex-direction: column; }
    .home-welcome h1 { font-size: clamp(2.7rem, 12vw, 4.2rem); }
    .home-properties { padding: 2rem 1.25rem; }
    .home-property-grid { grid-template-columns: 1fr; }
    .property-cover { min-height: 72vh; padding: 1.4rem 1.25rem; }
    .property-cover h1 { font-size: clamp(1.8rem, 9vw, 3.25rem); }
    .property-cover-top { font-size: .58rem; }
    .property-gallery { height: auto; }
    .property-main-image { height: 16rem; margin: 1.25rem 0; }
    .property-article-scroll { --article-gutter: 1.25rem; padding: 0 var(--article-gutter) 3.5rem; }
    .property-facts { grid-template-columns: 1fr; }
    .property-research-note { align-items: flex-start; flex-direction: column; gap: .65rem; }
}
