/* Área de inversores. Bellavista paper and anthracite, Outfit (shared typography
   partial), thin rules instead of boxes, photography first. */
.inv-page {
    --inv-gutter: max(24px, calc((100vw - 1200px) / 2));
    --inv-line: rgba(167, 162, 153, .42);
    --inv-text: #4f4c47;
    --inv-label: #7a756c;
    --inv-ink: var(--brand-anthracite, #232323);
    --inv-paper: var(--brand-paper, #f4f1eb);
    --inv-card: #faf8f4;
    --inv-beige: #e6e0d6;
    --inv-ease: cubic-bezier(.22, 1, .36, 1);
}
.inv-page main strong { font-weight: 500; }
.inv-page main a { color: var(--inv-ink); }
.inv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.inv-lightbox-open { overflow: hidden; }

/* ---------- Login and invitation ---------- */
.inv-gate { min-height: 100svh; display: grid; place-items: center; padding: 132px 20px 80px; box-sizing: border-box; }
.inv-gate__card { width: min(100%, 420px); }
.inv-gate h1 { margin: 0 0 14px; color: var(--inv-ink); font-size: clamp(38px, 6vw, 54px); font-weight: 300; letter-spacing: -.03em; line-height: 1.05; }
.inv-gate__lead { margin: 0 0 30px; color: var(--inv-text); font-size: 15px; line-height: 1.7; }
.inv-gate__help { margin: 26px 0 0; color: var(--inv-label); font-size: 13px; line-height: 1.65; }

/* ---------- Type ---------- */
.inv-eyebrow { margin: 0 0 12px; color: var(--inv-label); font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; }
.inv-eyebrow--light { color: rgba(244, 241, 235, .78); }
.inv-label { display: block; margin: 0 0 6px; color: var(--inv-label); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }

/* ---------- Forms ---------- */
.inv-form { display: grid; gap: 16px; }
.inv-field { display: grid; gap: 7px; color: var(--inv-label); font-size: 12px; letter-spacing: .04em; }
.inv-field small { color: #9a9284; letter-spacing: 0; }
.inv-field input, .inv-field textarea {
    box-sizing: border-box; width: 100%; min-height: 50px; padding: 12px 14px;
    border: 1px solid #d6cfc3; border-radius: 0; background: #fff; color: var(--inv-ink);
    font: inherit; font-size: 16px; letter-spacing: 0; transition: border-color .2s, box-shadow .2s;
}
.inv-field textarea { resize: vertical; line-height: 1.55; }
.inv-field input:focus, .inv-field textarea:focus { outline: none; border-color: var(--inv-ink); box-shadow: 0 0 0 1px var(--inv-ink); }
.inv-form__note { margin: 0; color: var(--inv-label); font-size: 13px; line-height: 1.6; }
.inv-btn {
    display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 28px;
    border: 1px solid var(--inv-ink); background: var(--inv-ink); color: var(--inv-paper) !important;
    font: inherit; font-size: 12px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
    text-decoration: none; cursor: pointer; transition: background .25s, color .25s;
}
.inv-btn:hover { background: transparent; color: var(--inv-ink) !important; }
.inv-btn--block { width: 100%; }
.inv-note { margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--inv-line); background: #ede8df; color: var(--inv-text); font-size: 14px; line-height: 1.55; }
.inv-note.is-success { border-color: #2f5d46; background: #e6eee8; color: #1d4a33; }
.inv-note.is-error { border-color: #a34138; background: #f7e8e5; color: #7d2a23; }
.inv-link { font-size: 13px; letter-spacing: .02em; text-underline-offset: 4px; }
.inv-link-btn { border: 0; padding: 0; background: none; color: var(--inv-label); font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.inv-link-btn:hover { color: #a34138; }

/* ---------- Layout ---------- */
.inv-shell { padding: 112px var(--inv-gutter) 96px; }
.inv-empty { margin: 0; padding: 26px 0; border-top: 1px solid var(--inv-line); border-bottom: 1px solid var(--inv-line); color: var(--inv-label); font-size: 14px; line-height: 1.6; }

/* ---------- Covers ---------- */
.inv-cover { display: block; width: 100%; height: 100%; object-fit: cover; }
.inv-cover--empty, .inv-sheet__img--empty { display: grid; place-items: center; background: #2b2a28; color: rgba(244, 241, 235, .55); }
.inv-cover--empty .brand-logo, .inv-sheet__img--empty .brand-logo { font-size: 22px; }

.inv-progress { display: flex; align-items: center; gap: 12px; }
.inv-progress__bar { position: relative; display: block; flex: 1; height: 2px; background: var(--inv-beige); overflow: hidden; }
.inv-progress__bar span { display: block; height: 100%; background: var(--inv-ink); transform-origin: left; animation: inv-grow 1.4s var(--inv-ease) both; }
.inv-progress__pct { min-width: 44px; text-align: right; font-size: 13px; font-variant-numeric: tabular-nums; }
@keyframes inv-grow { from { transform: scaleX(0); } }

.inv-chip { display: inline-block; padding: 4px 9px; background: var(--inv-beige); color: var(--inv-text); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.inv-chip.is-req-pending { background: #efe5cf; color: #6b4e15; }
.inv-chip.is-req-confirmed, .inv-chip.is-req-converted { background: #dde7e0; color: #1d4a33; }
.inv-chip.is-req-rejected, .inv-chip.is-req-withdrawn { background: #ece7de; color: #8b8478; }

/* ---------- Panel ----------
   Compact, like an investment app: the account bar, the summary inside the
   Bellavista open frame, then three tabs whose lists read at a glance. */
.inv-shell--app { padding-top: 100px; }
.inv-bar__title { margin: 0; color: var(--inv-ink); font-size: 26px; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.inv-bar__account { display: flex; align-items: center; gap: 18px; color: var(--inv-text); font-size: 13px; }
.inv-bar__account form { margin: 0; }
.inv-bar__account button { padding: 7px 14px; border: 1px solid var(--inv-line); background: none; color: var(--inv-ink); font: inherit; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: border-color .2s; }
.inv-bar__account button:hover { border-color: var(--inv-ink); }


/* The top of the panel: a slim account bar, then the summary in tiles, like a
   wealth-management app. Tiles are light boxes with a hairline border. */
.inv-bar { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 14px 0 18px; }
.inv-bar .inv-eyebrow { margin-bottom: 6px; }
.inv-bar__title { margin: 0; color: var(--inv-ink); font-size: 26px; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.inv-bar__account { display: flex; align-items: center; gap: 18px; color: var(--inv-text); font-size: 13px; }
.inv-bar__account form { margin: 0; }
.inv-bar__account button { padding: 7px 14px; border: 1px solid var(--inv-line); background: none; color: var(--inv-ink); font: inherit; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: border-color .2s; }
.inv-bar__account button:hover { border-color: var(--inv-ink); }
.inv-shell--app > .inv-note { margin-top: 4px; }

.inv-tiles { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .8fr) minmax(0, .8fr) minmax(0, 1.45fr); gap: 12px; }
.inv-tile { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 16px 18px 15px; border: 1px solid #e2dcd1; background: #fbfaf7; color: var(--inv-ink); }
.inv-tile__label { margin: 0; color: var(--inv-label); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.inv-tile__value { margin: 2px 0 0; color: var(--inv-ink); font-size: 26px; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.inv-tile__sub { margin: 0; color: var(--inv-label); font-size: 12px; line-height: 1.45; font-variant-numeric: tabular-nums; }
.inv-tile__bar { display: block; height: 3px; margin: 6px 0 2px; background: var(--inv-beige); overflow: hidden; }
.inv-tile__bar span { display: block; height: 100%; background: var(--inv-ink); transform-origin: left; animation: inv-grow 1.4s .15s var(--inv-ease) both; }
.inv-tile .inv-tile__bar + .inv-tile__sub { margin-top: auto; }
.inv-alloc { display: flex; gap: 2px; height: 6px; margin: 8px 0 4px; }
.inv-alloc span { background: #cfc8bc; transform-origin: left; animation: inv-grow 1.2s var(--inv-ease) both; }
.inv-alloc span:nth-child(1) { background: var(--inv-ink); }
.inv-alloc span:nth-child(2) { background: #6b655d; }
.inv-alloc span:nth-child(3) { background: #a39c90; }
.inv-alloc__legend { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.inv-alloc__legend li { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; gap: 8px; align-items: center; color: var(--inv-text); font-size: 12px; }
.inv-alloc__legend span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inv-alloc__legend b { font-weight: 400; font-variant-numeric: tabular-nums; }
.inv-alloc__legend i { width: 8px; height: 8px; background: #cfc8bc; }
.inv-alloc__legend li:nth-child(1) i { background: var(--inv-ink); }
.inv-alloc__legend li:nth-child(2) i { background: #6b655d; }
.inv-alloc__legend li:nth-child(3) i { background: #a39c90; }
.inv-tile--offer { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: 14px; align-items: center; color: var(--inv-ink) !important; text-decoration: none; transition: border-color .25s, background .25s; }
.inv-tile--offer:hover { border-color: var(--inv-ink); background: #fff; }
.inv-tile__photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #2b2a28; }
.inv-tile__offer { display: grid; gap: 3px; min-width: 0; }
.inv-tile__offer strong { overflow: hidden; font-size: 17px; font-weight: 400 !important; text-overflow: ellipsis; white-space: nowrap; }
.inv-tile__go { color: var(--inv-label); transition: transform .3s var(--inv-ease), color .3s; }
.inv-tile--offer:hover .inv-tile__go { transform: translateX(4px); color: var(--inv-ink); }

/* Lists in the panel live in a box with their own scroll, the head fixed on
   top, and «Ver todos» at the foot, so many projects never stretch the page. */
.inv-listbox { border: 1px solid #e2dcd1; background: #fbfaf7; }
.inv-listbox__scroll { max-height: min(430px, 62vh); overflow-y: auto; padding: 0 18px; scrollbar-width: thin; scrollbar-color: #cfc8bc transparent; outline: none; }
.inv-listbox__scroll--short { max-height: min(260px, 50vh); }
.inv-listbox__scroll:focus-visible { box-shadow: inset 0 0 0 1px var(--inv-ink); }
.inv-listbox__scroll::-webkit-scrollbar { width: 6px; }
.inv-listbox__scroll::-webkit-scrollbar-thumb { background: #cfc8bc; }
.inv-listbox .inv-table__head { position: sticky; top: 0; z-index: 2; padding-top: 12px; background: #fbfaf7; }
.inv-listbox .inv-table__row:last-child, .inv-listbox .inv-requests li:last-child, .inv-listbox .inv-offer:last-child { border-bottom: 0; }
.inv-listbox .inv-offers, .inv-listbox .inv-requests { border-top: 0; }
.inv-listbox__all { display: flex; justify-content: flex-end; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid #e2dcd1; color: var(--inv-ink) !important; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; transition: background .2s; }
.inv-listbox__all span { color: var(--inv-label); font-weight: 400; letter-spacing: 0; }
.inv-listbox__all i { font-style: normal; transition: transform .3s var(--inv-ease); }
.inv-listbox__all:hover { background: #fff; }
.inv-listbox__all:hover i { transform: translateX(4px); }

/* «Ver todos»: the projects as cards, like the homes for sale. */
.inv-bar .inv-back { margin-bottom: 8px; }
.inv-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 22px; }
.inv-filter a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid #d6cfc3; background: #fff; color: var(--inv-text) !important; font-size: 13px; text-decoration: none; transition: border-color .2s; }
.inv-filter a span { color: var(--inv-label); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.inv-filter a:hover { border-color: var(--inv-ink); }
.inv-filter a[aria-current] { border-color: var(--inv-ink); background: var(--inv-ink); color: var(--inv-paper) !important; }
.inv-filter a[aria-current] span { color: rgba(244, 241, 235, .7); }
.inv-pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; align-items: start; }
.inv-pcard { display: block; border: 1px solid #e8e3da; background: #fff; color: var(--inv-ink) !important; text-decoration: none; transition: box-shadow .35s, border-color .35s, transform .35s; }
.inv-pcard:hover { border-color: #ccc; box-shadow: 0 8px 32px rgba(0, 0, 0, .06); transform: translateY(-4px); }
.inv-pcard__media { display: block; aspect-ratio: 3 / 4; overflow: hidden; background: #2b2a28; }
.inv-pcard__media img { transition: transform .42s ease; }
.inv-pcard:hover .inv-pcard__media img { transform: scale(1.015); }
.inv-pcard__body { display: grid; gap: 6px; padding: 18px 20px 16px; }
.inv-pcard__badge { justify-self: start; margin-bottom: 4px; padding: 6px 10px; border: 1px solid #d9d3c7; color: var(--inv-text); font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.inv-pcard__badge.is-dark { border-color: var(--inv-ink); background: var(--inv-ink); color: var(--inv-paper); }
.inv-pcard__name { font-size: 17px; font-weight: 400 !important; letter-spacing: -.005em; }
.inv-pcard__place { color: var(--inv-label); font-size: 12px; }
.inv-pcard__specs { color: var(--inv-text); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.inv-pcard__bar { display: block; height: 2px; margin: 6px 0 2px; background: var(--inv-beige); overflow: hidden; }
.inv-pcard__bar span { display: block; height: 100%; background: var(--inv-ink); }
.inv-pcard__row { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 8px; padding-top: 12px; border-top: 1px solid #ece7de; font-size: 15px; font-variant-numeric: tabular-nums; }
.inv-pcard__row small { display: block; margin-bottom: 2px; color: var(--inv-label); font-size: 9.5px; letter-spacing: .16em; text-transform: uppercase; }
.inv-pcard__row i { color: var(--inv-label); font-style: normal; transition: transform .3s var(--inv-ease), color .3s; }
.inv-pcard:hover .inv-pcard__row i { transform: translateX(4px); color: var(--inv-ink); }
.inv-pcards.is-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inv-pcards.is-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.inv-pcards.is-n2 .inv-pcard__media { aspect-ratio: 16 / 10; }
.inv-pcards.is-n3 .inv-pcard__media { aspect-ratio: 4 / 3; }
.inv-pcards.is-n1 { grid-template-columns: 1fr; }
.inv-pcards.is-n1 .inv-pcard { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.inv-pcards.is-n1 .inv-pcard__media { aspect-ratio: auto; min-height: 440px; }
.inv-pcards.is-n1 .inv-pcard__body { align-content: center; gap: 10px; padding: 40px 44px; }
.inv-pcards.is-n1 .inv-pcard__name { font-size: 30px; font-weight: 300 !important; letter-spacing: -.02em; }
.inv-pcards.is-n1 .inv-pcard__place { font-size: 14px; }
.inv-pcards.is-n1 .inv-pcard__specs { font-size: 15px; }
.inv-pcards.is-n1 .inv-pcard__bar { height: 3px; margin: 12px 0 4px; }
.inv-pcards.is-n1 .inv-pcard__row { margin-top: 18px; padding-top: 18px; font-size: 22px; font-weight: 300; }

/* The three tabs: equal columns, a count on each, the active one underlined. */
.inv-app { margin-top: 28px; }
.inv-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--inv-line); }
.inv-switch a { position: relative; display: grid; gap: 4px; padding: 13px 18px 14px 0; color: var(--inv-label) !important; text-decoration: none; transition: color .2s; }
.inv-switch a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--inv-ink); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--inv-ease); }
.inv-switch a:hover, .inv-switch a.is-active { color: var(--inv-ink) !important; }
.inv-switch a.is-active::after { transform: none; }
.inv-switch__name { display: flex; align-items: center; gap: 9px; font-size: 15px; letter-spacing: -.005em; }
.inv-switch b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; background: var(--inv-beige); color: var(--inv-text); font-size: 11px; font-weight: 500; font-variant-numeric: tabular-nums; transition: background .2s, color .2s; }
.inv-switch a.is-active b { background: var(--inv-ink); color: var(--inv-paper); }
.inv-switch small { color: var(--inv-label); font-size: 12px; font-variant-numeric: tabular-nums; }
.inv-narrow { display: none; }
.inv-app .inv-tab { padding-top: 22px; scroll-margin-top: 90px; }
.inv-tab__lead { max-width: 640px; margin: 0 0 16px; color: var(--inv-text); font-size: 14px; line-height: 1.6; }

/* Lists of projects as rows: photo, name, phase, amount, progress. */
.inv-table__head, .inv-table__row { display: grid; grid-template-columns: 64px minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, .9fr) minmax(150px, 1.1fr) 18px; gap: 22px; align-items: center; }
.inv-table--all .inv-table__head, .inv-table--all .inv-table__row { grid-template-columns: 64px minmax(0, 1.5fr) minmax(0, 1fr) minmax(150px, 1.1fr) minmax(0, .9fr) 18px; }
.inv-table__head { padding-bottom: 9px; border-bottom: 1px solid var(--inv-ink); color: var(--inv-label); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.inv-table__row { padding: 11px 0; border-bottom: 1px solid var(--inv-line); color: var(--inv-ink) !important; text-decoration: none; transition: background .25s; }
.inv-table__row:hover { background: rgba(255, 255, 255, .45); }
.inv-table__thumb { width: 64px; aspect-ratio: 4 / 3; overflow: hidden; background: #2b2a28; }
.inv-table__thumb .inv-cover--empty .brand-logo { font-size: 9px; }
.inv-table__name strong { display: block; font-size: 16px; font-weight: 400 !important; letter-spacing: -.005em; }
.inv-table small { display: block; margin-top: 2px; color: var(--inv-label); font-size: 12px; }
.inv-table__phase { color: var(--inv-text); font-size: 13.5px; }
.inv-table .is-num { text-align: right; font-variant-numeric: tabular-nums; }
.inv-table__amount { font-size: 15px; }
.inv-table__amount.is-none { color: var(--inv-label); }
.inv-table__tag { display: none; }
.inv-table__progress { display: flex; align-items: center; gap: 12px; font-size: 13px; font-variant-numeric: tabular-nums; }
.inv-table__progress > span:last-child { min-width: 38px; text-align: right; }
.inv-table__go { color: var(--inv-label); transition: transform .3s var(--inv-ease), color .3s; }
.inv-table__row:hover .inv-table__go { transform: translateX(4px); color: var(--inv-ink); }

.inv-subhead { display: flex; align-items: baseline; gap: 10px; margin: 34px 0 10px; }
.inv-subhead h2 { margin: 0; color: var(--inv-ink); font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.inv-subhead span { color: var(--inv-label); font-size: 12px; font-variant-numeric: tabular-nums; }
.inv-requests { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--inv-ink); }
.inv-requests li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto 60px; gap: 18px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--inv-line); font-size: 14px; }
.inv-requests small { display: block; margin-top: 2px; color: var(--inv-label); font-size: 12px; }
.inv-requests strong { font-weight: 400; }
.inv-requests__amount { font-variant-numeric: tabular-nums; }
.inv-requests form { margin: 0; text-align: right; }

/* Rounds open to investors: photo, the four terms, how much is committed, the action. */
.inv-offers { border-top: 1px solid var(--inv-ink); }
.inv-offer { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 28px; padding: 22px 0; border-bottom: 1px solid var(--inv-line); }
.inv-offer__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #2b2a28; }
.inv-offer__media img { transition: transform 1.1s var(--inv-ease); }
.inv-offer:hover .inv-offer__media img { transform: scale(1.035); }
.inv-offer__body { display: grid; align-content: start; gap: 16px; min-width: 0; }
.inv-offer__head h3 { margin: 0; font-size: 22px; font-weight: 300; letter-spacing: -.015em; line-height: 1.15; }
.inv-offer__head h3 a { text-decoration: none; }
.inv-offer__head small { display: block; margin-top: 4px; color: var(--inv-label); font-size: 12.5px; }
.inv-offer__facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--inv-line); border-bottom: 1px solid var(--inv-line); }
.inv-offer__facts div { padding: 10px 14px 11px; border-left: 1px solid var(--inv-line); }
.inv-offer__facts div:first-child { padding-left: 0; border-left: 0; }
.inv-offer__facts dt { margin-bottom: 4px; color: var(--inv-label); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.inv-offer__facts dd { margin: 0; color: var(--inv-ink); font-size: 16px; font-weight: 300; font-variant-numeric: tabular-nums; white-space: nowrap; }
.inv-offer__meter { display: grid; gap: 7px; color: var(--inv-label); font-size: 12px; font-variant-numeric: tabular-nums; }
.inv-offer__meter b { color: var(--inv-ink); font-weight: 500; }
.inv-offer__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 12px 24px; }
.inv-offer__mine { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-right: auto; color: var(--inv-text); font-size: 13px; font-variant-numeric: tabular-nums; }
.inv-btn--small { min-height: 40px; padding: 0 20px; font-size: 11px; }
.inv-btn--line { background: transparent; color: var(--inv-ink) !important; }
.inv-btn--line:hover { background: var(--inv-ink); color: var(--inv-paper) !important; }

.inv-empty-state { display: grid; justify-items: start; gap: 12px; padding: 24px 0; border-top: 1px solid var(--inv-ink); border-bottom: 1px solid var(--inv-line); }
.inv-empty-state p { max-width: 620px; margin: 0; color: var(--inv-text); font-size: 14px; line-height: 1.6; }
.inv-legal { margin: 48px 0 0; color: var(--inv-label); font-size: 12px; line-height: 1.65; }

/* Progress chart: a hairline on a soft fill, drawn once on arrival. */
.inv-chart-wrap { color: var(--inv-ink); }
.inv-chart { display: block; width: 100%; height: 96px; overflow: visible; }
.inv-chart__guide { stroke: rgba(167, 162, 153, .38); stroke-width: 1; stroke-dasharray: 1 5; vector-effect: non-scaling-stroke; }
.inv-chart__line { fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; animation: inv-draw 1.8s .2s var(--inv-ease) forwards; }
.inv-chart__area { opacity: 0; animation: inv-fade 1.2s .9s ease forwards; }
.inv-chart__dot path { fill: none; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.inv-chart__dot-ring { stroke: currentColor; stroke-width: 7; }
.inv-chart__dot-core { stroke: var(--inv-paper, #fffdfa); stroke-width: 4; }
.inv-chart__dot.is-last .inv-chart__dot-ring { stroke-width: 9; }
.inv-chart__dot.is-last .inv-chart__dot-core { stroke-width: 0; }
.inv-chart__dot { opacity: 0; animation: inv-fade .6s 1.4s ease forwards; }
.inv-chart__axis { display: flex; justify-content: space-between; margin-top: 4px; color: var(--inv-label); font-size: 10.5px; letter-spacing: .06em; }
@keyframes inv-draw { to { stroke-dashoffset: 0; } }
@keyframes inv-fade { to { opacity: 1; } }

/* Diary: entries as posts; each opens its own page. */
.inv-posts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 24px; padding-top: 26px; border-top: 1px solid var(--inv-ink); }
.inv-post { display: flex; flex-direction: column; color: var(--inv-ink) !important; text-decoration: none; }
.inv-post__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: #2b2a28; }
.inv-post__media img, .inv-post__media video { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--inv-ease); pointer-events: none; }
.inv-post:hover .inv-post__media img, .inv-post:hover .inv-post__media video { transform: scale(1.035); }
.inv-post__media.is-empty { display: grid; place-items: center; background: #ece7de; }
.inv-post__day { display: grid; justify-items: center; color: var(--inv-ink); font-size: 64px; font-weight: 200; letter-spacing: -.04em; line-height: 1; }
.inv-post__day small { margin-top: 8px; color: var(--inv-label); font-size: 11px; letter-spacing: .22em; text-transform: uppercase; }
.inv-post__play { position: absolute; left: 50%; top: 50%; width: 54px; height: 54px; margin: -27px 0 0 -27px; border: 1px solid rgba(244, 241, 235, .8); border-radius: 50%; background: rgba(35, 35, 35, .35); }
.inv-post__play::after { content: ''; position: absolute; left: 21px; top: 17px; border-left: 15px solid var(--inv-paper); border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.inv-post__progress { position: absolute; right: 12px; top: 12px; padding: 5px 9px; background: rgba(244, 241, 235, .92); color: var(--inv-ink); font-size: 11px; font-variant-numeric: tabular-nums; }
.inv-post__media.is-empty .inv-post__progress { background: var(--inv-ink); color: var(--inv-paper); }
.inv-post__body { display: flex; flex-direction: column; flex: 1; padding-top: 16px; }
.inv-post__body time { color: var(--inv-label); font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; }
.inv-post h3 { margin: 8px 0 10px; font-size: 22px; font-weight: 300; letter-spacing: -.012em; line-height: 1.2; }
.inv-post__body p { margin: 0 0 16px; color: var(--inv-text); font-size: 14px; line-height: 1.65; }
.inv-post__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--inv-line); color: var(--inv-label); font-size: 12px; }
.inv-post__more { color: var(--inv-ink); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.inv-post__more span { display: inline-block; transition: transform .3s var(--inv-ease); }
.inv-post:hover .inv-post__more span { transform: translateX(4px); }

/* Diary entry page: crumbs, title, the carousel, then the text. */
.inv-shell--entry { padding-top: 104px; }
.inv-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 34px; color: var(--inv-label); font-size: 12px; letter-spacing: .08em; }
.inv-crumbs a { color: var(--inv-label) !important; text-decoration: none; }
.inv-crumbs a:hover { color: var(--inv-ink) !important; }
.inv-entry-head { max-width: 900px; margin-bottom: 34px; }
.inv-entry-head h1 { margin: 0; color: var(--inv-ink); font-size: clamp(36px, 5vw, 64px); font-weight: 200; letter-spacing: -.035em; line-height: 1.04; }
.inv-carousel__bar { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 18px; }
.inv-carousel__count { margin: 0; color: var(--inv-label); font-size: 13px; letter-spacing: .1em; font-variant-numeric: tabular-nums; }
.inv-carousel__count b { color: var(--inv-ink); font-weight: 400; }
.inv-carousel__nav { display: flex; gap: 8px; }
.inv-carousel__arrow { width: 50px; height: 50px; border: 1px solid var(--inv-ink); background: transparent; color: var(--inv-ink); font: inherit; font-size: 17px; cursor: pointer; transition: background .2s, color .2s; }
.inv-carousel__arrow:hover { background: var(--inv-ink); color: var(--inv-paper); }
.inv-carousel__track { display: flex; gap: 16px; margin: 0 calc(var(--inv-gutter) * -1); padding: 0 var(--inv-gutter) 6px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--inv-gutter); scrollbar-width: none; outline-offset: -2px; }
.inv-carousel__track::-webkit-scrollbar { display: none; }
.inv-slide { flex: 0 0 auto; width: min(820px, 64vw); aspect-ratio: 3 / 2; overflow: hidden; background: #2b2a28; scroll-snap-align: start; cursor: zoom-in; }
.inv-slide img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .25s ease; }
.inv-slide:hover img { opacity: .9; }
.inv-slide--video { cursor: auto; background: #111; }
.inv-slide--video video { display: block; width: 100%; height: 100%; object-fit: contain; }
.inv-carousel.is-single .inv-carousel__track { margin: 0; padding: 0; overflow: visible; }
.inv-carousel.is-single .inv-slide { width: 100%; aspect-ratio: 16 / 9; }
.inv-entry-text { max-width: 700px; margin: 48px 0 0; }
.inv-entry-text p { margin: 0 0 1.1em; color: var(--inv-text); font-size: 17px; line-height: 1.8; }
.inv-entry-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 64px; border-top: 1px solid var(--inv-ink); }
.inv-entry-nav__item { display: grid; gap: 4px; padding: 20px 0; color: var(--inv-ink) !important; text-decoration: none; }
.inv-entry-nav__item.is-newer { text-align: right; }
.inv-entry-nav__item strong { font-size: 18px; font-weight: 300; }
.inv-entry-nav__item small { color: var(--inv-label); font-size: 12px; }
.inv-entry-nav__item:hover strong { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.inv-entry-back { margin: 8px 0 0; padding-top: 20px; border-top: 1px solid var(--inv-line); }

/* Chat: the team's answers in anthracite, yours on the right. */
.inv-chat { margin-top: 64px; }
.inv-chat__log { display: grid; gap: 12px; padding: 22px 0; border-top: 1px solid var(--inv-ink); }
.inv-msg { max-width: 78%; padding: 14px 16px; background: var(--inv-card); border: 1px solid var(--inv-line); }
.inv-msg.is-mine { justify-self: end; background: #fff; }
.inv-msg.is-staff { background: var(--inv-ink); border-color: var(--inv-ink); color: var(--inv-paper); }
.inv-msg__meta { margin: 0 0 6px; color: var(--inv-label); font-size: 11.5px; letter-spacing: .02em; }
.inv-msg.is-staff .inv-msg__meta { color: rgba(244, 241, 235, .62); }
.inv-msg__meta b { font-weight: 500; color: inherit; }
.inv-msg.is-staff .inv-msg__meta b { color: var(--inv-paper); }
.inv-msg__body { margin: 0; font-size: 14.5px; line-height: 1.6; white-space: pre-line; }
.inv-msg form { margin: 8px 0 0; text-align: right; }
.inv-chat__empty { margin: 0; color: var(--inv-label); font-size: 14px; }
.inv-chat__form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; padding-top: 18px; border-top: 1px solid var(--inv-line); }
.inv-chat__form .inv-field textarea { min-height: 56px; }

/* ---------- Project sheet ----------
   The project on one screen: its card on the left, the rest in tabs. Frames
   are the Bellavista open square: three sides drawn, the right one broken. */
.inv-open {
    --inv-open: var(--inv-ink);
    border: 1px solid var(--inv-open); border-right: 0;
    background:
        linear-gradient(var(--inv-open), var(--inv-open)) 100% 0 / 1px 26% no-repeat,
        linear-gradient(var(--inv-open), var(--inv-open)) 100% 100% / 1px 26% no-repeat;
}
.inv-sheet { display: grid; grid-template-columns: 318px minmax(0, 1fr); gap: 0 64px; align-items: start; max-width: 1360px; margin: 0 auto; padding: 100px 40px 64px; box-sizing: border-box; }
.inv-sheet__side { position: sticky; top: 96px; }
.inv-back { display: inline-block; margin-bottom: 18px; color: var(--inv-label) !important; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
.inv-back:hover { color: var(--inv-ink) !important; }
.inv-sheet__cover { position: relative; isolation: isolate; aspect-ratio: 4 / 3; margin: 0 14px 30px 0; }
.inv-sheet__cover::after {
    content: ''; position: absolute; inset: 14px -14px -14px 14px; z-index: -1;
    border: 1px solid var(--inv-ink); border-right: 0;
    background:
        linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 0 / 1px 30% no-repeat,
        linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 100% / 1px 30% no-repeat;
}
.inv-sheet__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; background: #2b2a28; }
.inv-sheet__side .inv-eyebrow { margin-bottom: 8px; }
.inv-sheet__side h1 { margin: 0; color: var(--inv-ink); font-size: 34px; font-weight: 300; letter-spacing: -.025em; line-height: 1.08; }
.inv-sheet__place { margin: 8px 0 0; color: var(--inv-label); font-size: 14px; }
.inv-keys { display: grid; grid-template-columns: 1fr 1fr; margin: 22px 0 0; border-top: 1px solid var(--inv-ink); }
.inv-keys div { padding: 13px 0 12px; border-bottom: 1px solid var(--inv-line); }
.inv-keys div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--inv-line); }
.inv-keys dt { margin-bottom: 5px; color: var(--inv-label); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.inv-keys dd { margin: 0; color: var(--inv-ink); font-size: 19px; font-weight: 300; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.inv-meter { margin: 20px 0 18px; }
.inv-meter__row { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 8px; color: var(--inv-ink); font-size: 13px; font-variant-numeric: tabular-nums; }
.inv-meter__row .inv-label { margin: 0; }
.inv-meter__bar { display: block; height: 2px; background: var(--inv-beige); overflow: hidden; }
.inv-meter__bar span { display: block; height: 100%; background: var(--inv-ink); transform-origin: left; animation: inv-grow 1.4s .2s var(--inv-ease) both; }
.inv-meter__note { margin: 8px 0 0; color: var(--inv-label); font-size: 12px; }
.inv-mine { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-top: 4px; padding: 14px 0; border-top: 1px solid var(--inv-line); color: var(--inv-ink) !important; text-decoration: none; }
.inv-mine .inv-label { margin: 0; }
.inv-mine strong { font-size: 18px; font-weight: 400 !important; font-variant-numeric: tabular-nums; }
.inv-sheet__web { display: inline-block; margin-top: 14px; }
/* On a computer the request form already sits in «Condiciones»: the shortcut is for phones. */
@media (min-width: 901px) { .inv-sheet__join { display: none !important; } }
.inv-sheet__note { margin: -4px 0 14px; color: var(--inv-text); font-size: 13px; line-height: 1.55; }
.inv-sheet__main { min-width: 0; }
.inv-sheet__main > .inv-note { margin-top: 30px; }

/* Tabs */
.inv-tabs { position: relative; margin: 26px 0 30px; border-bottom: 1px solid var(--inv-line); }
.inv-tabs__list { display: flex; gap: 32px; overflow-x: auto; scrollbar-width: none; }
.inv-tabs__list::-webkit-scrollbar { display: none; }
.inv-tabs a { position: relative; flex: none; padding: 14px 0 15px; color: var(--inv-label) !important; font-size: 11px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; text-decoration: none; white-space: nowrap; transition: color .2s; }
.inv-tabs a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--inv-ink); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--inv-ease); }
.inv-tabs a:hover, .inv-tabs a.is-active { color: var(--inv-ink) !important; }
.inv-tabs a.is-active::after { transform: none; }
.inv-tabs sup { position: relative; top: -.55em; margin-left: 5px; color: var(--inv-label); font-size: 9px; letter-spacing: .04em; line-height: 0; vertical-align: baseline; }
.inv-tab { scroll-margin-top: 140px; }
.is-tabbed .inv-tab { animation: inv-rise .55s var(--inv-ease) both; }
.inv-tab[hidden] { display: none !important; }
.inv-sheet:not(.is-tabbed) .inv-tab + .inv-tab { margin-top: 64px; }
@keyframes inv-rise { from { opacity: 0; transform: translateY(8px); } }
.inv-anchor { position: absolute; }

/* Resumen */
.inv-sum__head { max-width: 780px; margin-bottom: 28px; }
.inv-sum__head .inv-eyebrow { margin-bottom: 10px; }
.inv-sum__title { margin: 0 0 14px; color: var(--inv-ink); font-size: clamp(24px, 2.2vw, 30px); font-weight: 300; letter-spacing: -.018em; line-height: 1.2; }
.inv-sum__text { margin: 0 0 .7em; color: var(--inv-text); font-size: 15px; line-height: 1.7; }
.inv-sum__boxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 28px; }
.inv-box { padding: 24px 30px 22px 28px; }
.inv-box .inv-label { margin-bottom: 14px; }
.inv-rows { margin: 0; }
.inv-rows div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--inv-line); color: var(--inv-ink); font-size: 16px; font-weight: 300; font-variant-numeric: tabular-nums; }
.inv-rows dd { margin: 0; }
.inv-rows .is-total { border-bottom: 0; padding-top: 12px; font-size: 13.5px; font-weight: 500; }
.inv-units { list-style: none; margin: 0; padding: 0; }
.inv-units li { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 8px; padding: 2px 0; color: var(--inv-ink); font-size: 16px; }
.inv-units b { font-size: 50px; font-weight: 200; letter-spacing: -.04em; line-height: 1.1; }
.inv-box__note { margin: 12px 0 0; color: var(--inv-label); font-size: 12.5px; }
.inv-box__big { margin: -6px 0 6px; color: var(--inv-ink); font-size: 44px; font-weight: 200; letter-spacing: -.03em; line-height: 1; }
.inv-box__big small { margin-left: 3px; font-size: .45em; vertical-align: .9em; }
.inv-box--chart .inv-chart { height: 74px; }
.inv-road { margin-top: 30px; }
.inv-road .inv-label { margin-bottom: 16px; }
.inv-road__steps { display: grid; grid-template-columns: repeat(var(--steps), minmax(0, 1fr)); gap: 0 14px; list-style: none; margin: 0; padding: 0; }
.inv-road__steps li { display: grid; align-content: start; gap: 6px; color: var(--inv-text); font-size: 13px; line-height: 1.5; }
.inv-road__steps b { color: var(--inv-ink); font-size: 10.5px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.inv-road__mark { display: flex; align-items: center; gap: 10px; height: 17px; margin-bottom: 6px; }
.inv-road__mark::after { content: ''; flex: 1; height: 1px; background: var(--inv-line); }
.inv-road__steps li:last-child .inv-road__mark::after { visibility: hidden; }
.inv-road__mark i { flex: none; width: 13px; height: 13px; box-sizing: border-box; border: 1px solid #b9b2a6; }
.inv-road__steps .is-done .inv-road__mark i { border-color: var(--inv-ink); background: var(--inv-ink); }
.inv-road__steps .is-done .inv-road__mark::after { background: var(--inv-ink); }
.inv-road__steps .is-now .inv-road__mark i {
    width: 17px; height: 17px; border-color: var(--inv-ink); border-right: 0;
    background: linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 0 / 1px 32% no-repeat, linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 100% / 1px 32% no-repeat;
}
.inv-road__steps .is-next { color: var(--inv-label); }
.inv-road__steps .is-next b { color: var(--inv-label); }

/* Planos e imágenes */
.inv-viewer { display: grid; grid-template-columns: minmax(0, 1fr) 236px; gap: 28px; align-items: start; }
.inv-viewer__stage { margin: 0; }
.inv-viewer__open { display: block; width: 100%; height: clamp(340px, calc(100vh - 300px), 620px); padding: 0; border: 0; background: #2b2a28; cursor: zoom-in; }
.inv-viewer__stage.is-plan .inv-viewer__open { padding: 18px; box-sizing: border-box; background: #fff; box-shadow: inset 0 0 0 1px var(--inv-line); }
.inv-viewer__open img { display: block; width: 100%; height: 100%; object-fit: cover; }
.inv-viewer__stage.is-plan img { object-fit: contain; }
.inv-viewer__stage figcaption { min-height: 18px; margin-top: 12px; color: var(--inv-label); font-size: 12.5px; }
.inv-viewer__rail .inv-label { display: flex; justify-content: space-between; margin: 0 0 10px; }
.inv-viewer__rail .inv-label + .inv-viewer__thumbs + .inv-label, .inv-viewer__thumbs + .inv-label { margin-top: 22px; }
.inv-viewer__thumbs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.inv-viewer__thumb { position: relative; aspect-ratio: 4 / 3; padding: 0; border: 0; background: #2b2a28; cursor: pointer; }
.inv-viewer__thumb.is-plan { padding: 6px; background: #fff; box-shadow: inset 0 0 0 1px var(--inv-line); }
.inv-viewer__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.inv-viewer__thumb.is-plan img { object-fit: contain; }
.inv-viewer__thumb:hover img { opacity: .82; }
.inv-viewer__thumb[aria-pressed="true"] { outline: 1px solid var(--inv-ink); outline-offset: 3px; }

/* Ubicación */
.inv-loc { display: grid; gap: 48px; align-items: center; }
.inv-loc.has-map { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.inv-loc__map { margin: 0; }
.inv-loc:not(.has-map) .inv-loc__info { max-width: 660px; }
.inv-loc__open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.inv-loc__open img { display: block; width: 100%; max-height: calc(100vh - 270px); aspect-ratio: 1; object-fit: cover; }
.inv-loc__map figcaption { margin-top: 8px; color: var(--inv-label); font-size: 11px; }
.inv-loc__title { margin: 0; color: var(--inv-ink); font-size: clamp(28px, 2.6vw, 36px); font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.inv-loc__sub { margin: 8px 0 26px; color: var(--inv-label); font-size: 15px; }
.inv-places { list-style: none; margin: 0; padding: 12px 30px 12px 26px; }
.inv-places li { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--inv-line); color: var(--inv-ink); font-size: 14.5px; }
.inv-places li:last-child { border-bottom: 0; }
.inv-places__n { font-size: 18px; font-weight: 300; }
.inv-places b { font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Condiciones */
.inv-terms { display: grid; gap: 44px; align-items: start; }
.inv-terms.has-join { grid-template-columns: minmax(0, 1fr) 316px; }
.inv-terms__main { display: grid; gap: 30px; min-width: 0; }
.inv-uses__total { margin: -2px 0 14px; color: var(--inv-ink); font-size: 40px; font-weight: 200; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.inv-uses__bar { display: flex; gap: 4px; height: 10px; }
.inv-uses__bar span { background: var(--inv-ink); transform-origin: left; animation: inv-grow 1.2s var(--inv-ease) both; }
.inv-uses__bar span:nth-child(2) { background: #5e5953; animation-delay: .1s; }
.inv-uses__bar span:nth-child(3) { background: #a8a29a; animation-delay: .2s; }
.inv-uses__bar span:nth-child(n+4) { background: #cfc8bc; animation-delay: .3s; }
.inv-uses__list { display: flex; gap: 4px; list-style: none; margin: 12px 0 0; padding: 0; }
.inv-uses__list li { display: grid; gap: 3px; min-width: max-content; }
.inv-uses__list li:last-child { margin-left: auto; text-align: right; }
.inv-uses__list span { color: var(--inv-label); font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; }
.inv-uses__list b { color: var(--inv-ink); font-size: 18px; font-weight: 300; font-variant-numeric: tabular-nums; }
.inv-uses__list small { color: var(--inv-label); font-size: 11.5px; }
.inv-tiers .inv-label { margin-bottom: 12px; }
.inv-tiers__list { display: grid; grid-template-columns: repeat(var(--tiers), minmax(0, 1fr)); list-style: none; margin: 0; padding: 22px 0; }
.inv-tiers__list li { display: grid; gap: 10px; padding: 2px 22px; border-left: 1px solid var(--inv-line); transition: color .3s; }
.inv-tiers__list li:first-child { border-left: 0; }
.inv-tiers__list span { color: var(--inv-text); font-size: 12px; line-height: 1.45; font-variant-numeric: tabular-nums; }
.inv-tiers__list b { color: var(--inv-ink); font-size: 46px; font-weight: 200; letter-spacing: -.03em; line-height: 1; transition: transform .4s var(--inv-ease); }
.inv-tiers__list b small { margin-left: 2px; font-size: .5em; }
.inv-tiers__list:has(.is-on) li:not(.is-on) b { color: #b2ab9f; }
.inv-tiers__list li.is-on span { color: var(--inv-ink); font-weight: 500; }
.inv-conds { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 30px; list-style: none; margin: 0; padding: 0; }
.inv-conds li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 14px; align-items: start; }
.inv-conds__mark {
    width: 22px; height: 22px; margin-top: 1px; box-sizing: border-box; border: 1px solid var(--inv-ink); border-right: 0;
    background: linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 0 / 1px 26% no-repeat, linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 100% / 1px 26% no-repeat;
}
.inv-conds b { color: var(--inv-ink); font-size: 15px; font-weight: 400; }
.inv-conds p { margin: 4px 0 0; color: var(--inv-text); font-size: 13px; line-height: 1.55; }
.inv-terms__legal { display: grid; gap: 4px; margin: 0; padding-top: 14px; border-top: 1px solid var(--inv-line); color: var(--inv-label); font-size: 11.5px; line-height: 1.55; }
.inv-join { position: sticky; top: 96px; padding: 26px 26px 22px; background: var(--inv-card); border: 1px solid var(--inv-line); scroll-margin-top: 150px; }
.inv-join .inv-eyebrow { margin-bottom: 8px; }
.inv-join h2 { margin: 0 0 18px; color: var(--inv-ink); font-size: 23px; font-weight: 300; letter-spacing: -.015em; }
.inv-join__form { gap: 14px; }
.inv-amount { position: relative; display: block; }
.inv-amount input { padding-right: 40px; font-size: 26px !important; font-weight: 300; letter-spacing: -.01em !important; font-variant-numeric: tabular-nums; }
.inv-amount i { position: absolute; right: 16px; top: 50%; color: var(--inv-label); font-size: 18px; font-style: normal; transform: translateY(-50%); }
.inv-sim { margin: 0; }
.inv-sim div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--inv-line); color: var(--inv-text); font-size: 13px; }
.inv-sim dd { margin: 0; color: var(--inv-ink); font-variant-numeric: tabular-nums; }
.inv-sim .is-total { padding-top: 10px; border-bottom: 0; border-top: 1px solid var(--inv-ink); margin-top: 2px; color: var(--inv-ink); }
.inv-sim .is-total dd { font-size: 20px; font-weight: 400; }
.inv-join .inv-field textarea { min-height: 52px; }
.inv-join .inv-form__note { font-size: 12px; }

/* Diario and Conversación inside the sheet */
.inv-posts--sheet { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 22px; padding-top: 0; border-top: 0; }
.inv-posts--sheet .inv-post h3 { margin: 6px 0 8px; font-size: 18px; }
.inv-posts--sheet .inv-post__body { padding-top: 12px; }
.inv-posts--sheet .inv-post__body p { margin-bottom: 12px; font-size: 13px; line-height: 1.6; }
.inv-posts--sheet .inv-post__day { font-size: 52px; }
.inv-tab.inv-chat { margin-top: 0; }
.inv-chat__lead { max-width: 640px; margin: 0 0 18px; color: var(--inv-text); font-size: 14px; line-height: 1.65; }
.inv-tab .inv-chat__log { max-height: min(48vh, 440px); overflow-y: auto; padding: 20px 4px 20px 0; }

/* ---------- Blv Capital Club: the application ---------- */
.inv-club { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 72px; align-items: start; max-width: 1240px; margin: 0 auto; padding: 128px 40px 96px; box-sizing: border-box; }
.inv-club__intro { position: sticky; top: 110px; }
.inv-club h1 { margin: 0 0 18px; color: var(--inv-ink); font-size: clamp(38px, 4.4vw, 58px); font-weight: 300; letter-spacing: -.03em; line-height: 1.04; }
.inv-club__lead { max-width: 520px; margin: 0 0 34px; color: var(--inv-text); font-size: 16px; line-height: 1.75; }
.inv-club__steps { display: grid; gap: 20px; max-width: 480px; margin: 0; padding: 26px 0 0; border-top: 1px solid var(--inv-ink); list-style: none; }
.inv-club__steps li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 16px; }
.inv-club__steps b { color: var(--inv-ink); font-size: 16px; font-weight: 400; }
.inv-club__steps p { margin: 4px 0 0; color: var(--inv-text); font-size: 14px; line-height: 1.6; }
.inv-club__member { margin: 30px 0 0; color: var(--inv-label); font-size: 13.5px; }
.inv-club__form { display: grid; gap: 22px; padding: 34px 36px 30px 34px; border: 1px solid var(--inv-ink); border-right: 0;
    background:
        linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 0 / 1px 120px no-repeat,
        linear-gradient(var(--inv-ink), var(--inv-ink)) 100% 100% / 1px 120px no-repeat,
        var(--inv-card); }
.inv-club__form-head h2 { margin: 0; color: var(--inv-ink); font-size: 28px; font-weight: 300; letter-spacing: -.02em; }
.inv-club__form-head .inv-eyebrow { margin-bottom: 8px; }
.inv-club__form .inv-note p { margin: 0; }
.inv-club__set { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 20px 0 0; border: 0; border-top: 1px solid var(--inv-line); }
.inv-club__set legend { padding: 0 0 14px; color: var(--inv-ink); font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; }
.inv-club__set legend span { margin-right: 10px; color: var(--inv-label); font-weight: 400; }
.inv-club__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.inv-club__grid .is-wide { grid-column: 1 / -1; }
.inv-club__q { margin: 6px 0 0; color: var(--inv-label); font-size: 12px; letter-spacing: .04em; }
.inv-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.inv-choice { position: relative; cursor: pointer; }
.inv-choice input { position: absolute; opacity: 0; pointer-events: none; }
.inv-choice span { display: inline-block; padding: 10px 14px; border: 1px solid #d6cfc3; background: #fff; color: var(--inv-text); font-size: 13.5px; line-height: 1.3; transition: border-color .2s, background .2s, color .2s; }
.inv-choice:hover span { border-color: var(--inv-ink); }
.inv-choice input:checked + span { border-color: var(--inv-ink); background: var(--inv-ink); color: var(--inv-paper); }
.inv-choice input:focus-visible + span { outline: 2px solid var(--inv-ink); outline-offset: 2px; }
.inv-field select { box-sizing: border-box; width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #d6cfc3; border-radius: 0; background: #fff; color: var(--inv-ink); font: inherit; font-size: 16px; }
.inv-club__privacy { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; align-items: start; color: var(--inv-text); font-size: 13px; line-height: 1.55; cursor: pointer; }
.inv-club__privacy input { width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--inv-ink); }
.inv-gate__card--wide { width: min(100%, 560px); }
.inv-gate__mark { display: block; margin-bottom: 26px; }
.inv-gate__club { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 14px; align-items: center; margin-top: 28px; padding: 18px 0; border-top: 1px solid var(--inv-ink); border-bottom: 1px solid var(--inv-line); color: var(--inv-ink) !important; text-decoration: none; }
.inv-gate__club b { display: block; font-size: 15px; font-weight: 400; }
.inv-gate__club small { display: block; margin-top: 2px; color: var(--inv-label); font-size: 12.5px; }
.inv-gate__club > span:last-child { transition: transform .3s var(--inv-ease); }
.inv-gate__club:hover > span:last-child { transform: translateX(4px); }
@media (max-width: 900px) {
    .inv-club { grid-template-columns: 1fr; gap: 40px; padding: 96px 20px 64px; }
    .inv-club__intro { position: static; }
    .inv-club__form { margin: 0 -20px; padding: 26px 20px; border-right: 0; border-left: 0; background: var(--inv-card); }
    .inv-club__grid { grid-template-columns: 1fr; }
}

/* Lightbox */
.inv-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; background: rgba(20, 20, 19, .95); }
.inv-lightbox[hidden] { display: none; }
.inv-lightbox img { max-width: 92vw; max-height: 86vh; object-fit: contain; }
.inv-lightbox button { position: absolute; border: 0; background: none; color: var(--inv-paper); font: inherit; font-size: 28px; font-weight: 200; cursor: pointer; padding: 14px; opacity: .8; }
.inv-lightbox button:hover { opacity: 1; }
.inv-lightbox__close { top: 18px; right: 22px; }
.inv-lightbox__nav.is-prev { left: 18px; }
.inv-lightbox__nav.is-next { right: 18px; }

@media (max-width: 820px) {
    .inv-shell { padding: 96px 20px 72px; }
    .inv-shell--app { padding-top: 84px; }
    .inv-bar__title { font-size: 22px; }
    .inv-bar__name { display: none; }
    .inv-app { margin-top: 18px; }
    .inv-switch { position: sticky; top: 64px; z-index: 5; margin: 0 -20px; padding: 0 20px; background: var(--inv-paper); }
    .inv-switch a { padding: 13px 6px 13px 0; }
    .inv-switch__name { gap: 7px; font-size: 14px; }
    .inv-bar { padding: 12px 0 14px; }
    .inv-bar__title { font-size: 22px; }
    .inv-bar__name { display: none; }
    .inv-tiles { grid-template-columns: 1fr 1fr; gap: 8px; }
    .inv-tile--capital, .inv-tile--offer { grid-column: 1 / -1; }
    .inv-tile { padding: 13px 14px 12px; }
    .inv-tile__value { font-size: 22px; }
    .inv-tile--offer { grid-template-columns: 76px minmax(0, 1fr) auto; }
    .inv-listbox__scroll { max-height: 68vh; padding: 0 14px; }
    .inv-listbox__all { padding: 12px 14px; }
    .inv-pcards { grid-template-columns: 1fr 1fr; gap: 12px; }
    .inv-pcards.is-n1, .inv-pcards.is-n2, .inv-pcards.is-n3 { grid-template-columns: 1fr; }
    .inv-pcards.is-n1 .inv-pcard { grid-template-columns: 1fr; }
    .inv-pcards.is-n1 .inv-pcard__media, .inv-pcards.is-n2 .inv-pcard__media, .inv-pcards.is-n3 .inv-pcard__media { aspect-ratio: 4 / 3; min-height: 0; }
    .inv-pcards.is-n1 .inv-pcard__body { padding: 18px 18px 16px; }
    .inv-pcards.is-n1 .inv-pcard__name { font-size: 22px; }
    .inv-pcard__body { padding: 12px 12px 12px; }
    .inv-pcard__badge { font-size: 9px; padding: 5px 7px; }
    .inv-pcard__name { font-size: 15px; }
    .inv-filter { flex-wrap: nowrap; overflow-x: auto; margin-left: -20px; margin-right: -20px; padding: 0 20px 2px; scrollbar-width: none; }
    .inv-filter a { flex: none; }
    .inv-switch small, .inv-wide { display: none; }
    .inv-narrow { display: inline; }
    .inv-table__head { display: none; }
    .inv-table__row, .inv-table--all .inv-table__row { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: 'thumb name amount' 'thumb phase progress'; gap: 4px 14px; }
    .inv-table__thumb { grid-area: thumb; align-self: start; }
    .inv-table__name { grid-area: name; }
    .inv-table__phase { grid-area: phase; font-size: 12.5px; }
    .inv-table__amount { grid-area: amount; font-size: 14px; }
    .inv-table__tag { display: block; color: var(--inv-label); font-size: 8.5px; letter-spacing: .14em; text-transform: uppercase; }
    .inv-table__progress { grid-area: progress; gap: 8px; font-size: 12px; }
    .inv-table__progress .inv-progress__bar { width: 54px; flex: none; }
    .inv-table__progress > span:last-child { min-width: 0; }
    .inv-table__go { display: none; }
    .inv-requests li { grid-template-columns: 1fr auto; gap: 8px 14px; }
    .inv-requests .inv-chip { justify-self: start; }
    .inv-requests form { text-align: right; }
    .inv-offer { grid-template-columns: 1fr; gap: 16px; padding: 18px 0 22px; }
    .inv-offer__media { aspect-ratio: 16 / 9; }
    .inv-offer__facts { grid-template-columns: 1fr 1fr; }
    .inv-offer__facts div:nth-child(3) { padding-left: 0; border-left: 0; }
    .inv-offer__facts div:nth-child(n+3) { border-top: 1px solid var(--inv-line); }
    .inv-offer__foot { justify-content: space-between; }
    .inv-offer__foot .inv-btn { flex: 1; }
    .inv-posts { grid-template-columns: 1fr; gap: 32px; }
    .inv-shell--entry { padding-top: 84px; }
    .inv-crumbs { margin-bottom: 24px; }
    .inv-carousel__bar { margin-bottom: 14px; }
    .inv-carousel__nav { display: none; }
    .inv-carousel__track { gap: 10px; margin: 0 -20px; padding: 0 20px 4px; scroll-padding-left: 20px; }
    .inv-slide { width: 86vw; aspect-ratio: 4 / 5; }
    .inv-carousel.is-single .inv-slide { aspect-ratio: 4 / 3; }
    .inv-entry-text { margin-top: 32px; }
    .inv-entry-text p { font-size: 16px; }
    .inv-entry-nav { grid-template-columns: 1fr; gap: 0; }
    .inv-entry-nav__item.is-newer { text-align: left; border-top: 1px solid var(--inv-line); }
    .inv-msg { max-width: 92%; }
    .inv-chat__form { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
    .inv-sheet { grid-template-columns: 280px minmax(0, 1fr); gap: 0 40px; padding-left: 28px; padding-right: 28px; }
    .inv-terms.has-join { grid-template-columns: 1fr; }
    .inv-join { position: static; }
    .inv-viewer { grid-template-columns: minmax(0, 1fr) 180px; }
    .inv-posts--sheet { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .inv-sheet { grid-template-columns: 1fr; padding: 84px 20px 56px; }
    .inv-sheet__side { position: static; }
    .inv-back { margin-bottom: 14px; }
    .inv-sheet__cover { aspect-ratio: 16 / 10; margin: 0 -20px 22px; }
    .inv-sheet__cover::after { display: none; }
    .inv-sheet__side h1 { font-size: 32px; }
    .inv-tabs { position: sticky; top: 64px; z-index: 5; margin: 28px -20px 24px; padding: 0 20px; background: var(--inv-paper); }
    .inv-tabs__list { gap: 24px; }
    .inv-sum__boxes { grid-template-columns: 1fr; gap: 18px; }
    .inv-road__steps { grid-template-columns: 1fr; gap: 0; }
    .inv-road__steps li { grid-template-columns: 17px minmax(0, 1fr); column-gap: 14px; row-gap: 2px; padding-bottom: 16px; }
    .inv-road__mark { grid-row: span 2; flex-direction: column; align-self: stretch; margin: 2px 0 0; gap: 6px; }
    .inv-road__mark::after { width: 1px; height: auto; min-height: 18px; }
    .inv-road__steps li > span:not(.inv-road__mark):not(.inv-sr) { grid-column: 2; }
    .inv-viewer { grid-template-columns: 1fr; gap: 16px; }
    .inv-viewer__open { height: 68vw; }
    .inv-viewer__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .inv-loc.has-map { grid-template-columns: 1fr; gap: 28px; }
    .inv-loc__open img { max-height: none; }
    .inv-places { padding: 6px 22px 6px 18px; }
    .inv-tiers__list { grid-template-columns: 1fr 1fr; padding: 4px 0; }
    .inv-tiers__list li { padding: 16px 18px; border-left: 0; border-top: 1px solid var(--inv-line); }
    .inv-tiers__list li:nth-child(-n+2) { border-top: 0; }
    .inv-tiers__list li:nth-child(even) { border-left: 1px solid var(--inv-line); }
    .inv-tiers__list b { font-size: 38px; }
    .inv-conds { grid-template-columns: 1fr; }
    .inv-uses__total { font-size: 34px; }
    .inv-uses__list b { font-size: 15px; }
    .inv-join { margin: 0 -20px; padding: 24px 20px; border-left: 0; border-right: 0; }
    .inv-posts--sheet { grid-template-columns: 1fr; }
    .inv-tab .inv-chat__log { max-height: 60vh; }
}
@media (prefers-reduced-motion: reduce) {
    .inv-page *, .inv-page *::before { animation: none !important; transition: none !important; }
    .inv-chart__line { stroke-dashoffset: 0; }
    .inv-chart__area, .inv-chart__dot { opacity: 1; }
}
