/* Okadee · hoja de estilos de la web y del panel */
:root {
  --blue-900: #0f2744;
  --blue-700: #1a3a5c;
  --blue-500: #2c5282;
  --blue-300: #5a7a9a;
  --blue-100: #e8eef4;
  --gray-800: #2d3748;
  --gray-600: #4a5568;
  --gray-400: #a0aec0;
  --gray-200: #e2e8f0;
  --gray-100: #f7fafc;
  --white: #ffffff;
  --green: #276749;
  --green-bg: #e6f4ec;
  --amber: #975a16;
  --amber-bg: #fdf3dc;
  --red: #9b2c2c;
  --red-bg: #fde8e8;
  --gold: #c9a25a;
  --gold-dark: #b08a45;
  --font: "Segoe UI", system-ui, -apple-system, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--font); color: var(--gray-800); background: var(--white); line-height: 1.6; min-height: 100vh; }
a { color: inherit; text-decoration: none; }
[hidden] { display: none !important; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(--gray-200); }
.header-inner { max-width: calc(1200px + 3rem); margin: 0 auto; padding: 0 1.5rem; height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: flex; flex-direction: column; line-height: 1; color: var(--blue-900); }
.brand-logo { display: block; height: 27px; width: auto; }
.cta-band .brand-logo { height: 30px; }
.brand-tag { font-size: 0.52rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-300); margin-top: 0.3rem; white-space: nowrap; }
nav { display: flex; align-items: center; gap: 1.5rem; }
.nav-links { display: flex; align-items: center; gap: 1.5rem; list-style: none; }
.nav-links a, .nav-links button { font: inherit; font-size: 0.9rem; font-weight: 500; color: var(--gray-600); transition: color 0.2s; background: none; border: none; cursor: pointer; }
.nav-links a:hover, .nav-links a.is-active, .nav-links button:hover { color: var(--blue-700); }
.nav-user { font-size: 0.8rem; color: var(--gray-400); }
.nav-toggle { display: none; border: none; background: transparent; padding: 0.5rem; cursor: pointer; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--blue-900); margin: 5px 0; }

.hero { position: relative; display: flex; align-items: center; background: linear-gradient(135deg, rgba(15,39,68,0.94) 0%, rgba(26,58,92,0.88) 45%, rgba(44,82,130,0.82) 100%), linear-gradient(180deg, var(--blue-900) 0%, var(--blue-500) 100%); color: var(--white); overflow: hidden; }
.hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 80% 60% at 85% 20%, rgba(90,122,154,0.25) 0%, transparent 55%), radial-gradient(ellipse 50% 40% at 10% 80%, rgba(15,39,68,0.4) 0%, transparent 50%); pointer-events: none; }
.hero-inner { position: relative; z-index: 1; max-width: 1120px; margin: 0 auto; padding: 4rem 1.5rem 5rem; width: 100%; }
.hero-eyebrow { display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue-100); margin-bottom: 1.25rem; opacity: 0.9; }
.hero h1 { font-size: clamp(2rem, 4.5vw, 3.15rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; max-width: 20ch; margin-bottom: 1.5rem; }
.hero-lead { font-size: clamp(1.05rem, 1.8vw, 1.2rem); line-height: 1.65; color: rgba(255,255,255,0.88); max-width: 40rem; margin-bottom: 2.75rem; }
.paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; max-width: 44rem; }
.path-card { display: flex; flex-direction: column; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.14); border-radius: 12px; padding: 1.5rem; backdrop-filter: blur(8px); transition: background 0.2s, border-color 0.2s; }
.path-card:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.28); }
.path-label { display: block; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue-100); opacity: 0.75; margin-bottom: 0.75rem; }
.path-card h2 { font-size: 1.15rem; font-weight: 600; margin-bottom: 0.65rem; color: var(--white); }
.path-card p { font-size: 0.9rem; line-height: 1.55; color: rgba(255,255,255,0.78); margin-bottom: 1.35rem; flex: 1; }
.path-cta { font-size: 0.85rem; font-weight: 600; color: var(--white); }
.path-cta::after { content: "→"; margin-left: 0.4rem; display: inline-block; transition: transform 0.2s; }
.path-card:hover .path-cta::after { transform: translateX(3px); }

.section { padding: 4rem 1.5rem; }
.section.alt { background: var(--gray-100); border-top: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); }
.section.page { padding-top: 3rem; min-height: calc(100vh - 72px - 62px); } /* deja sitio al pie de página */
.section-inner { max-width: 1120px; margin: 0 auto; }
.section-inner.narrow { max-width: 34rem; }
.section-head { max-width: 38rem; margin-bottom: 2.25rem; }
.eyebrow { display: block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue-500); margin-bottom: 0.75rem; }
.section-head h1, .section-head h2 { font-size: clamp(1.5rem, 3vw, 1.85rem); font-weight: 600; color: var(--blue-900); letter-spacing: -0.02em; margin-bottom: 0.75rem; line-height: 1.25; }
.section-head p { font-size: 1rem; color: var(--gray-600); }
.subhead { font-size: 1.15rem; font-weight: 600; color: var(--blue-900); margin: 2.5rem 0 1rem; }

.map-hero { background: linear-gradient(180deg, #f6f8fb 0%, #eef2f7 100%); border-bottom: 1px solid var(--gray-200); padding: 1.5rem; }
.map-layout { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.5rem; align-items: stretch; }
.map-main { position: relative; min-width: 0; }
.map-tagline { font-size: clamp(1rem, 1.6vw, 1.35rem); font-weight: 400; line-height: 1.3; color: var(--blue-500); margin-bottom: 0.75rem; }
.world-svg { display: block; width: 100%; height: auto; }
.world-svg .ctx { fill: #edf0f4; }
.world-svg .land { stroke: #f6f8fb; stroke-width: 0.6; stroke-linejoin: round; }
.world-svg .land.es { fill: #cfd9e6; }
.world-svg .land.pt { fill: #bfcddd; }
.world-svg .inset { fill: rgba(255,255,255,0.55); stroke: #cfd8e3; stroke-width: 1; }
.world-svg .inset-label { font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; fill: var(--gray-600); font-family: var(--font); }
.map-marker { cursor: pointer; outline: none; }
.map-marker .halo { fill: var(--blue-500); opacity: 0; transition: opacity 0.2s; }
.map-marker.is-selected .halo { opacity: 0.18; }
.map-marker .dot { fill: var(--blue-700); stroke: var(--white); stroke-width: 1.5; transition: fill 0.2s; }
.map-marker:hover .dot, .map-marker:focus-visible .dot, .map-marker.is-selected .dot { fill: var(--blue-900); }
.map-marker:focus-visible .dot { stroke: var(--gold); stroke-width: 2.5; }
.map-marker .count { font-size: 12px; font-weight: 700; fill: var(--white); text-anchor: middle; dominant-baseline: central; pointer-events: none; font-family: var(--font); }
.map-marker .label { font-size: 11px; font-weight: 600; fill: var(--gray-800); text-anchor: middle; pointer-events: none; font-family: var(--font); paint-order: stroke; stroke: #f1f4f8; stroke-width: 3px; stroke-linejoin: round; }
.map-marker.is-selected .label { fill: var(--blue-900); font-weight: 700; }
.map-marker.no-label .label { display: none; }
.map-marker.no-label:hover .label, .map-marker.no-label:focus-visible .label { display: block; }
.map-key { display: flex; align-items: center; gap: 0.75rem; width: fit-content; margin-top: 0.75rem; background: var(--white); border-radius: 10px; padding: 0.7rem 1rem; font-size: 0.8rem; font-weight: 600; line-height: 1.3; color: var(--gray-600); box-shadow: 0 4px 16px rgba(15,39,68,0.08); }
.key-dot { width: 2rem; height: 2rem; border-radius: 50%; background: var(--blue-900); color: var(--white); display: grid; place-items: center; font-size: 0.85rem; font-weight: 700; flex: none; }
.map-panel { background: var(--white); border-radius: 14px; box-shadow: 0 10px 40px rgba(15,39,68,0.12); padding: 1.25rem; display: flex; flex-direction: column; gap: 1rem; max-height: calc(100vh - 110px); position: sticky; top: 88px; }
.region-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; width: 100%; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--white); padding: 0.55rem 0.75rem 0.55rem 0.9rem; margin-bottom: 0.45rem; font: inherit; font-size: 0.9rem; font-weight: 500; color: var(--blue-900); cursor: pointer; text-align: left; transition: border-color 0.2s, background 0.2s; }
.region-row:hover { border-color: var(--blue-300); background: var(--gray-100); }
.region-row .key-dot { width: 1.7rem; height: 1.7rem; font-size: 0.78rem; }
.map-panel header { display: flex; align-items: center; gap: 0.85rem; }
.map-panel .flag { width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--gray-100); display: grid; place-items: center; font-size: 1.6rem; line-height: 1; flex: none; }
.map-panel h2 { font-size: 1.3rem; font-weight: 600; color: var(--blue-900); line-height: 1.2; }
.map-panel header p { font-size: 0.85rem; color: var(--gray-600); }
.map-close { margin-left: auto; border: none; background: none; font-size: 1.75rem; line-height: 1; color: var(--gray-600); cursor: pointer; padding: 0 0.35rem; }
.map-close:hover { color: var(--blue-900); }
.map-panel-body { overflow-y: auto; flex: 1; display: grid; gap: 1.1rem; align-content: start; padding-right: 0.25rem; }
.map-panel h3 { font-size: 0.95rem; font-weight: 600; color: var(--blue-900); margin-bottom: 0.5rem; }
.map-panel h3 span { font-weight: 400; color: var(--gray-600); }
.mini-card { display: grid; gap: 0.15rem; border: 1px solid var(--gray-200); border-radius: 10px; padding: 0.75rem 0.9rem; font-size: 0.85rem; color: var(--gray-600); margin-bottom: 0.5rem; transition: border-color 0.2s, background 0.2s; }
.mini-card:hover { border-color: var(--blue-300); background: var(--gray-100); }
.mini-top { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.mini-top strong { color: var(--blue-900); font-size: 0.92rem; margin-right: auto; }
.mini-ref { font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gray-400); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.card { border: 1px solid var(--gray-200); border-radius: 12px; padding: 1.5rem; background: var(--white); }
.card.soft { background: var(--gray-100); }
.card .tag { display: block; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue-500); margin-bottom: 0.65rem; }
.contract-text { gap: 0.8rem; line-height: 1.6; }
.sent-card { padding: 2.25rem; }
.sent-card p { margin-bottom: 1.1rem; line-height: 1.65; }
.sent-card .form-actions { margin-top: 1.75rem; }
/* Alertas de activos */
.alert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.25rem; }
.alert-card { display: flex; flex-direction: column; gap: 0.7rem; }
.alert-card.is-paused { background: var(--gray-100); }
.alert-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.alert-card h3 { margin: 0; font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; }
.alert-lines { list-style: none; display: grid; gap: 0.3rem; font-size: 0.92rem; color: var(--gray-800); }
.alert-card .listing-actions { margin-top: auto; }
.switch { position: relative; display: inline-block; width: 2.6rem; height: 1.45rem; flex-shrink: 0; cursor: pointer; }
.switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.switch span { position: absolute; inset: 0; border-radius: 999px; background: var(--gray-200); transition: background 0.2s; pointer-events: none; }
.switch span::after { content: ""; position: absolute; top: 0.18rem; left: 0.2rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--white); box-shadow: 0 1px 3px rgba(15,39,68,0.3); transition: transform 0.2s; }
.switch input:checked + span { background: var(--blue-900); }
.switch input:checked + span::after { transform: translateX(1.1rem); }
.switch input:focus-visible + span { outline: 2px solid var(--blue-500); outline-offset: 2px; }
.check-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.4rem; }
.check-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.8rem; border: 1px solid var(--gray-200); border-radius: 999px; background: var(--white); font-size: 0.88rem; font-weight: 400; color: var(--gray-800); cursor: pointer; }
.check-chip:has(input:checked) { border-color: var(--blue-900); background: var(--blue-100); color: var(--blue-900); font-weight: 600; }
.check-grid .check-chip input { flex: none; width: auto; min-width: 0; margin: 0; padding: 0; border: none; accent-color: var(--blue-900); }
.check-chip span { white-space: nowrap; }
.loc-country { margin-top: 0.75rem; border: 1px solid var(--gray-200); border-radius: 10px; padding: 0.75rem 1rem; }
.loc-country > summary { font-weight: 600; color: var(--blue-900); cursor: pointer; }
.ok-box { border-style: solid; border-color: var(--green); background: var(--green-bg); color: var(--green); }
.alert-from-search { margin-left: auto; }
.btn .icon { vertical-align: -3px; }
/* Bloques plegables («Mis datos»): solo se ve el título hasta que se pulsa. */
.card.fold { padding: 0; margin-bottom: 1rem; }
.card.fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.5rem; font-size: 1.05rem; font-weight: 600; color: var(--blue-900); cursor: pointer; list-style: none; }
.card.fold > summary::-webkit-details-marker { display: none; }
.card.fold > summary::after { content: ""; width: 0.5rem; height: 0.5rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 0.2s; }
.card.fold[open] > summary::after { transform: translateY(2px) rotate(-135deg); }
.card.fold[open] > summary { border-bottom: 1px solid var(--gray-200); }
.card.fold > form { padding: 1.25rem 1.5rem 1.5rem; }
.card h3 { font-size: 1.05rem; font-weight: 600; color: var(--blue-900); margin-bottom: 0.55rem; }
.card p { font-size: 0.9rem; color: var(--gray-600); line-height: 1.55; }
.card p + p { margin-top: 0.6rem; }

.toolbar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: flex-end; margin-bottom: 1.5rem; }
.toolbar .field { min-width: 11rem; }
.nda-fields { margin: 1rem 0 1.5rem; }
/* Contrato de intermediación como página (firma del vendedor). */
.card.contract-doc { overflow: visible; padding: 2rem 2.25rem; margin-bottom: 1.5rem; }
.contract-data { margin: 0.5rem 0 1rem; }
.inline-input { width: 100%; max-width: 22rem; border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.45rem 0.65rem; font: inherit; background: var(--white); }
.nda-fields input[readonly] { background: var(--gray-100); color: var(--gray-600); }
.sign-pad { display: block; width: 100%; max-width: 500px; aspect-ratio: 500 / 160; border: 1px dashed var(--blue-300); border-radius: 10px; background: var(--white); color: var(--blue-900); cursor: crosshair; touch-action: none; margin-bottom: 0.5rem; }
.sign-img { display: block; width: 100%; max-width: 320px; color: var(--blue-900); border-bottom: 1px solid var(--gray-400); }
.sign-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: 1.5rem; line-height: 1.9; }
.form-error { margin: 1rem 0; padding: 0.75rem 1rem; border-radius: 10px; background: var(--red-bg); color: var(--red); font-weight: 600; }
.legal-bar { gap: 0.5rem; }
@media (max-width: 700px) { .sign-grid { grid-template-columns: 1fr; } }
/* Al imprimir el acuerdo firmado solo sale el documento, sin la web de fondo. */
@media print {
  body > *:not(dialog) { display: none !important; }
  dialog.modal.legal[open] { position: static; display: block; width: auto; max-width: none; height: auto; max-height: none; border: none; box-shadow: none; overflow: visible; }
  dialog.modal.legal .legal-bar { display: none; }
  dialog.modal.legal .legal-text { overflow: visible; padding: 0; }
}
.btn-link { background: none; border: none; padding: 0; font: inherit; cursor: pointer; }
.legal-text ol { margin: 0 0 0.8rem 1.3rem; display: grid; gap: 0.3rem; }
th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
th.sortable::after { content: ' ↕'; opacity: 0.35; }
th.sortable:hover::after { opacity: 0.8; }
th.sortable.sorted-asc::after { content: ' ▲'; opacity: 1; }
th.sortable.sorted-desc::after { content: ' ▼'; opacity: 1; }
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem; margin-top: 1.75rem; }
.pager span.btn { cursor: default; }
.listing-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; padding: 1.35rem; display: flex; flex-direction: column; gap: 0.75rem; }
.listing-card h3 { font-size: 1.05rem; font-weight: 600; color: var(--blue-900); }
.badges { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.pill { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 999px; padding: 0.25rem 0.65rem; color: var(--blue-700); background: var(--blue-100); white-space: nowrap; }
.pill.solid { color: var(--white); background: var(--blue-500); }
.pill.ok { color: var(--green); background: var(--green-bg); }
.pill.warn { color: var(--amber); background: var(--amber-bg); }
.pill.bad { color: var(--red); background: var(--red-bg); }
.listing-meta { font-size: 0.85rem; color: var(--gray-600); display: grid; gap: 0.35rem; }
.listing-meta > span { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--gray-200); padding-bottom: 0.35rem; }
.listing-meta strong { color: var(--gray-800); font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.listing-blur { filter: blur(5px); user-select: none; pointer-events: none; opacity: 0.55; }
.listing-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: auto; }
.empty { border: 1px dashed var(--gray-200); border-radius: 12px; padding: 2rem; text-align: center; color: var(--gray-600); font-size: 0.95rem; background: var(--white); }

.btn { display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; padding: 0.7rem 1.1rem; font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: background 0.2s, color 0.2s; text-align: center; }
.btn-primary { background: var(--blue-700); color: var(--white); }
.btn-primary:hover { background: var(--blue-900); }
.btn-ghost { background: transparent; color: var(--blue-700); border-color: var(--blue-300); }
.btn-ghost:hover { background: var(--blue-100); }
.btn-sm { padding: 0.4rem 0.7rem; font-size: 0.78rem; }
.btn:disabled { opacity: 0.5; cursor: default; }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--blue-500); outline-offset: 2px; }

.split { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 1.5rem; align-items: start; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.field { display: flex; flex-direction: column; gap: 0.35rem; }
.field.full { grid-column: 1 / -1; }
.field label, .field-label { font-size: 0.8rem; font-weight: 600; color: var(--gray-600); }
.field input, .field select, .field textarea { border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.65rem 0.75rem; font: inherit; color: var(--gray-800); background: var(--white); width: 100%; }
.field textarea { min-height: 90px; resize: vertical; }
.field small { font-size: 0.78rem; color: var(--gray-400); }
/* Modalidad de venta · operador · precio, en una línea. */
.form-row-sale { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 0.9rem; align-items: start; }
.sale-mode { border: none; padding: 0; margin: 0; min-width: 0; }
.sale-mode legend { padding: 0; font-size: 0.8rem; font-weight: 600; color: var(--gray-600); }
.mode-choice { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; margin-top: 0.15rem; }
.mode-choice label { position: relative; display: block; border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.6rem 0.7rem; background: var(--white); cursor: pointer; font-weight: 400; }
.mode-choice label:has(input:checked) { border-color: var(--blue-900); background: var(--blue-100); }
.mode-choice label:has(input:focus-visible) { outline: 2px solid var(--blue-500); outline-offset: 2px; }
.mode-choice input { position: absolute; opacity: 0; width: 100%; height: 100%; inset: 0; margin: 0; padding: 0; cursor: pointer; }
.mode-choice strong { display: block; font-size: 0.9rem; color: var(--blue-900); }
.mode-choice small { display: block; margin-top: 0.2rem; font-size: 0.72rem; line-height: 1.35; color: var(--gray-600); }
@media (max-width: 1000px) { .form-row-sale { grid-template-columns: 1fr 1fr; } .sale-mode { grid-column: 1 / -1; } }
@media (max-width: 520px) { .mode-choice { grid-template-columns: 1fr; } }
/* Tres campos en una misma línea dentro de un formulario de dos columnas. */
.form-row-3 { grid-column: 1 / -1; display: grid; grid-template-columns: 1.4fr 1.4fr 1fr; gap: 0.9rem; }
.form-section { grid-column: 1 / -1; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--blue-500); margin-top: 0.75rem; padding-top: 0.9rem; border-top: 1px solid var(--gray-200); }
.form-section:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.check { grid-column: 1 / -1; display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9rem; color: var(--gray-600); }
.check input { margin-top: 0.3rem; }
.form-actions { margin-top: 1.1rem; display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.role-choice { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.role-choice label { border: 1px solid var(--gray-200); border-radius: 10px; padding: 0.9rem; cursor: pointer; display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9rem; font-weight: 400; color: var(--gray-600); }
.role-choice label:has(input:checked) { border-color: var(--blue-500); background: var(--blue-100); }
.role-choice strong { display: block; color: var(--blue-900); }
.role-choice.single { grid-template-columns: 1fr; gap: 0.5rem; }
.role-choice.single label { align-items: center; padding: 0.75rem 0.9rem; }
.muted { font-size: 0.85rem; color: var(--gray-600); }
.muted a, .link { color: var(--blue-500); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.price { font-size: 1.35rem; font-weight: 600; color: var(--blue-900); }
.price small { font-size: 0.85rem; font-weight: 500; color: var(--gray-600); }
.access-steps { list-style: none; display: grid; gap: 0.9rem; counter-reset: step; }
.access-steps li { counter-increment: step; display: grid; grid-template-columns: 2rem 1fr; gap: 0.75rem; align-items: start; }
.access-steps li::before { content: counter(step); width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid var(--blue-300); color: var(--blue-700); display: grid; place-items: center; font-size: 0.85rem; font-weight: 600; }
.access-steps li.done::before { content: "✓"; background: var(--blue-700); border-color: var(--blue-700); color: var(--white); }
.access-steps strong { display: block; color: var(--blue-900); font-size: 0.95rem; }
.access-steps p { font-size: 0.88rem; color: var(--gray-600); margin-bottom: 0.5rem; }
.notice { border: 1px dashed var(--blue-300); border-radius: 12px; padding: 1rem 1.25rem; background: rgba(232,238,244,0.5); font-size: 0.9rem; color: var(--gray-600); margin-bottom: 1.5rem; }
.notice.warn { border-color: var(--amber); background: var(--amber-bg); color: var(--amber); }

.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.stat { border: 1px solid var(--gray-200); border-radius: 12px; padding: 1rem 1.25rem; background: var(--white); }
.stat span { display: block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gray-600); }
.stat strong { font-size: 1.5rem; font-weight: 600; color: var(--blue-900); }
.table-wrap { overflow-x: auto; border: 1px solid var(--gray-200); border-radius: 12px; background: var(--white); }
table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
th, td { text-align: left; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--gray-200); vertical-align: top; }
th { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gray-600); background: var(--gray-100); white-space: nowrap; }
tr:last-child td { border-bottom: none; }
td .listing-actions { margin: 0; }
td small { display: block; color: var(--gray-600); }

dialog.modal { border: none; border-radius: 14px; padding: 1.75rem; max-width: 34rem; width: calc(100% - 2rem); margin: auto; color: var(--gray-800); box-shadow: 0 20px 60px rgba(15,39,68,0.3); }
dialog.modal::backdrop { background: rgba(15,39,68,0.55); }
dialog.modal h3 { font-size: 1.15rem; color: var(--blue-900); margin-bottom: 0.75rem; }
.modal-body { font-size: 0.92rem; color: var(--gray-600); margin-bottom: 1.25rem; display: grid; gap: 0.75rem; max-height: 55vh; overflow-y: auto; }
.modal-body ol { margin-left: 1.2rem; display: grid; gap: 0.4rem; }

.toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translateX(-50%); background: var(--blue-900); color: var(--white); padding: 0.8rem 1.2rem; border-radius: 10px; font-size: 0.9rem; z-index: 200; max-width: calc(100% - 2rem); box-shadow: 0 10px 30px rgba(15,39,68,0.3); }
.toast.is-error { background: var(--red); }

.nav-links a { padding: 0.4rem 0; border-bottom: 2px solid transparent; }
.nav-links a.is-active { color: var(--blue-900); border-bottom-color: var(--blue-900); }
.nav-actions { display: flex; align-items: center; gap: 0.6rem; }
/* Idioma: solo «ES | ENG», sin recuadro, al final de la cabecera. */
.lang-switch { display: flex; align-items: center; gap: 0.4rem; margin-left: 0.5rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; color: var(--gray-400); }
.lang-switch button { padding: 0.2rem 0; background: none; border: none; border-bottom: 2px solid transparent; font: inherit; letter-spacing: inherit; color: var(--gray-400); cursor: pointer; }
.lang-switch button:hover { color: var(--blue-700); }
.lang-switch button.is-active { color: var(--blue-900); border-bottom-color: var(--blue-900); }
.lang-select { border: none; background: var(--blue-100); border-radius: 6px; padding: 0.55rem 0.6rem; font: inherit; font-size: 0.82rem; font-weight: 600; color: var(--blue-900); cursor: pointer; }
.icon { flex: none; vertical-align: middle; }
.btn { gap: 0.5rem; }
.btn-lg { padding: 0.9rem 1.5rem; font-size: 0.95rem; }
.btn-ghost { background: var(--white); border-color: var(--blue-900); color: var(--blue-900); }
.btn-primary { background: var(--blue-900); }
.btn-primary:hover { background: #0a1c33; }
.btn-gold { background: var(--gold); color: var(--white); }
.btn-gold:hover { background: var(--gold-dark); }
.btn-outline-light { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.6); }
.btn-outline-light:hover { background: rgba(255,255,255,0.1); }
.serif { font-family: var(--serif); font-weight: 500; color: var(--blue-900); font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -0.01em; }
.underlined { padding-bottom: 0.9rem; margin-bottom: 1.5rem; background: linear-gradient(var(--gold), var(--gold)) left bottom / 2.25rem 2px no-repeat; }
.eyebrow { color: var(--gray-800); letter-spacing: 0.18em; font-weight: 500; }
.text-link { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; font-weight: 500; color: var(--blue-900); text-decoration: underline; text-underline-offset: 4px; }
.section-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.section-inner { max-width: 1200px; }
.narrow-text { max-width: 46rem; }
.narrow-text p + p { margin-top: 0.9rem; }
.narrow-text > p:not(.eyebrow) { color: var(--gray-600); font-size: 1.02rem; }

.landing-hero { position: relative; background: linear-gradient(180deg, #f5f8fb 0%, #eaf0f6 100%); overflow: visible; }
.hero-photo { position: absolute; z-index: 0; inset: 0 0 3rem 46%; overflow: hidden; background: linear-gradient(180deg, #d6e4f1 0%, #c6d8e9 42%, #a9c3da 60%, #d9d5cd 78%, #ece4d8 100%); }
/* Pase de fotos: cada una se ve 5 s y funde con la siguiente (ciclo de 25 s para 5 fotos). */
.hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; animation: hero-fade 25s infinite; }
.hero-photo img:nth-child(1) { opacity: 1; animation-name: hero-fade-first; }
.hero-photo img:nth-child(2) { animation-delay: 5s; }
.hero-photo img:nth-child(3) { animation-delay: 10s; }
.hero-photo img:nth-child(4) { animation-delay: 15s; }
.hero-photo img:nth-child(5) { animation-delay: 20s; }
/* Cinco fotos, 5 s cada una (ciclo de 25 s). Al añadir o quitar fotos hay que ajustar la duración y estos porcentajes. */
@keyframes hero-fade { 0% { opacity: 0; } 4%, 20% { opacity: 1; } 24%, 100% { opacity: 0; } }
@keyframes hero-fade-first { 0%, 20% { opacity: 1; } 24%, 96% { opacity: 0; } 100% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hero-photo img { animation: none; } }
.hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f1f5f9 0%, rgba(241,245,249,0.75) 12%, rgba(241,245,249,0) 36%); }
.landing-inner { position: relative; z-index: 1; max-width: calc(1200px + 3rem); margin: 0 auto; padding: 3rem 1.5rem 0; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 2rem; }
.hero-copy h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.08; letter-spacing: -0.015em; color: var(--blue-900); margin: 0.75rem 0 1.25rem; text-wrap: balance; }
.hero-copy .lead { font-size: 1.1rem; color: var(--gray-800); max-width: 30rem; margin-bottom: 1.75rem; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 0.9rem; }
.hero-quote { grid-row: span 2; align-self: end; justify-self: end; max-width: 16rem; margin-bottom: 2rem; font-size: 1rem; line-height: 1.4; color: var(--blue-900); padding: 0.9rem 1.1rem; border-left: 2px solid var(--gold); background: rgba(255,255,255,0.86); border-radius: 0 8px 8px 0; }
.trust { grid-column: 1; list-style: none; display: grid; grid-template-columns: repeat(2, max-content); gap: 1.1rem 0; margin: 2.25rem 0 2rem; color: var(--blue-900); }
.trust li { display: flex; align-items: center; gap: 0.9rem; font-size: 0.85rem; line-height: 1.35; padding: 0 1.75rem; border-left: 1px solid rgba(15,39,68,0.15); }
.trust li:nth-child(odd) { padding-left: 0; border-left: none; }
.search-bar { grid-column: 1 / -1; position: relative; z-index: 2; margin-bottom: -2.25rem; display: grid; grid-template-columns: minmax(0, 1.9fr) repeat(3, minmax(0, 1fr)) auto; align-items: center; background: var(--white); border-radius: 10px; box-shadow: 0 10px 34px rgba(15,39,68,0.12); padding: 0.75rem 0.9rem 0.75rem 0.5rem; }
.search-bar label { display: flex; align-items: center; gap: 0.8rem; padding: 0.35rem 1.1rem; color: var(--blue-900); min-width: 0; }
.search-bar label + label { border-left: 1px solid var(--gray-200); }
.search-bar input, .search-bar select { border: none; background: transparent; font: inherit; font-size: 0.88rem; color: var(--gray-800); width: 100%; min-width: 0; padding: 0.2rem 0; }
.search-bar input:focus, .search-bar select:focus { outline: none; }
.search-bar label:focus-within { outline: 2px solid var(--blue-500); outline-offset: -2px; border-radius: 8px; }
.search-field > span { display: grid; min-width: 0; flex: 1; font-size: 0.85rem; }

.global { background: linear-gradient(180deg, #f4f7fa 0%, #f8fafc 100%); padding-top: 4.75rem; }
.global-top { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 2rem; align-items: center; }
.global-copy h2 { margin: 0.75rem 0 1rem; }
.global-copy > p:not(.eyebrow) { color: var(--gray-800); margin-bottom: 1.5rem; max-width: 26rem; }
.global-map { position: relative; }
.global-stat { position: absolute; top: 0; right: 0; display: flex; align-items: center; gap: 0.75rem; background: var(--white); border-radius: 10px; padding: 0.7rem 1rem; box-shadow: 0 6px 20px rgba(15,39,68,0.08); color: var(--blue-900); font-size: 0.75rem; line-height: 1.3; }
.global-stat strong { display: block; font-size: 1.15rem; }
.region-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0.75rem; margin-top: 2rem; }
.region-card { display: flex; align-items: flex-end; justify-content: space-between; gap: 0.5rem; min-height: 170px; padding: 1rem; border-radius: 6px; color: var(--white); font-size: 0.82rem; background-size: cover; background-position: center; text-shadow: 0 1px 4px rgba(0,0,0,0.7); transition: transform 0.2s; }
.region-baleares { background-position: center 38%; }
.region-canarias { background-position: center 32%; }
.region-pt_mainland { background-position: center 62%; }
.region-es_mainland { background-position: center 45%; }
.region-card:hover { transform: translateY(-2px); }
.region-card strong { display: block; font-size: 1.2rem; font-weight: 500; }
.round-arrow { width: 2rem; height: 2rem; border: 1px solid rgba(255,255,255,0.8); border-radius: 50%; display: grid; place-items: center; flex: none; }
.region-es_mainland { background-image: linear-gradient(0deg, rgba(15,39,68,0.6) 0%, rgba(15,39,68,0.15) 40%, rgba(15,39,68,0) 62%), url(/img/region-es_mainland.jpg), linear-gradient(135deg, #8a6f5a, #c9a98a); }
.region-baleares { background-image: linear-gradient(0deg, rgba(15,39,68,0.6) 0%, rgba(15,39,68,0.15) 40%, rgba(15,39,68,0) 62%), url(/img/region-baleares.jpg), linear-gradient(135deg, #2f7f8f, #9fd0cf); }
.region-canarias { background-image: linear-gradient(0deg, rgba(15,39,68,0.6) 0%, rgba(15,39,68,0.15) 40%, rgba(15,39,68,0) 62%), url(/img/region-canarias.jpg), linear-gradient(135deg, #5b6b7d, #b9c4cf); }
.region-pt_mainland { background-image: linear-gradient(0deg, rgba(15,39,68,0.6) 0%, rgba(15,39,68,0.15) 40%, rgba(15,39,68,0) 62%), url(/img/region-pt_mainland.jpg), linear-gradient(135deg, #4d7a63, #b7cfae); }
.region-pt_islands { background-image: linear-gradient(0deg, rgba(15,39,68,0.6) 0%, rgba(15,39,68,0.15) 40%, rgba(15,39,68,0) 62%), url(/img/region-pt_islands.jpg), linear-gradient(135deg, #a8763c, #e2c48f); }

.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.prop-card { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--gray-200); border-radius: 6px; overflow: hidden; transition: box-shadow 0.2s, border-color 0.2s; }
.prop-card:hover { border-color: var(--blue-300); box-shadow: 0 10px 30px rgba(15,39,68,0.08); }
.prop-photo { position: relative; height: 190px; color: rgba(255,255,255,0.8); background: linear-gradient(135deg, #7f9dbb, #c5d5e4); }
.prop-photo.type-boutique { background: linear-gradient(135deg, #a58a6c, #dccdb9); }
.prop-photo.type-hostel { background: linear-gradient(135deg, #6f9488, #c3d8cf); }
.prop-photo-link { position: absolute; inset: 0; display: grid; place-items: center; color: inherit; }
.prop-flags { position: absolute; top: 0.75rem; left: 0.75rem; display: flex; gap: 0.35rem; flex-wrap: wrap; max-width: calc(100% - 4.5rem); }
.prop-flags .pill { border-radius: 4px; font-size: 0.62rem; padding: 0.3rem 0.55rem; }
.pill.verified { background: #f3e6c8; color: #6b5220; }
.prop-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Corazón de favoritos */
.fav { position: absolute; top: 0.7rem; right: 0.7rem; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: none; border-radius: 50%; background: var(--white); color: var(--blue-900); cursor: pointer; box-shadow: 0 2px 8px rgba(15,39,68,0.18); transition: transform 0.15s, color 0.15s; }
.fav:hover { transform: scale(1.08); color: var(--red); }
.fav.is-on { color: var(--red); }
.fav.is-on svg { fill: currentColor; }
.prop-body { display: flex; flex-direction: column; gap: 0.7rem; padding: 1rem 1.2rem 1.2rem; flex: 1; }
.prop-top { display: flex; align-items: center; gap: 0.5rem; }
.prop-type { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gray-600); }
.prop-ref { margin-left: auto; font-size: 0.75rem; color: var(--gray-600); white-space: nowrap; }
.prop-card h3 { font-size: 1.3rem; font-weight: 500; color: var(--blue-900); line-height: 1.25; }
.prop-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 0.55rem 1.5rem; font-size: 0.88rem; color: var(--gray-600); }
.prop-meta li { display: flex; align-items: center; gap: 0.55rem; }
.prop-meta li.wide { flex-basis: 100%; }
.prop-meta .icon { color: var(--blue-900); flex-shrink: 0; }
.prop-price { font-size: 1.1rem; font-weight: 700; color: var(--blue-900); margin-top: auto; }
.prop-link { display: inline-flex; align-items: center; gap: 0.5rem; align-self: flex-start; font-size: 0.9rem; font-weight: 600; color: var(--blue-900); text-decoration: underline; text-underline-offset: 4px; }
.prop-link:hover { color: var(--blue-500); }
/* Vista lista: una tarjeta por fila, con la imagen a la izquierda. */
.prop-list { display: grid; gap: 1rem; }
.prop-list .prop-card { flex-direction: row; }
.prop-list .prop-photo { width: 260px; height: auto; min-height: 170px; flex-shrink: 0; }
.prop-list .prop-body { gap: 0.55rem; }
/* Buscador de Oportunidades */
.search-form { margin-bottom: 1.5rem; }
.search-row { display: grid; grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(0, 1fr)) auto; gap: 0.75rem; align-items: end; }
.search-row .btn { height: 2.9rem; padding-inline: 2rem; }
.search-row select { height: 2.9rem; }
.search-input { display: flex; align-items: center; gap: 0.6rem; height: 2.9rem; padding: 0 0.9rem; border: 1px solid var(--gray-200); border-radius: 8px; background: var(--white); color: var(--gray-600); }
.search-input:focus-within { border-color: var(--blue-500); }
.search-input input { flex: 1; min-width: 0; border: none; outline: none; background: transparent; font: inherit; font-size: 0.95rem; color: var(--gray-800); }
.search-extra { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.more-filters > summary { display: inline-flex; align-items: center; gap: 0.55rem; font-size: 0.9rem; font-weight: 600; color: var(--blue-900); cursor: pointer; list-style: none; text-decoration: underline; text-underline-offset: 4px; }
.more-filters > summary::-webkit-details-marker { display: none; }
.more-filters-body { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.5rem; margin-top: 0.9rem; }
.more-filters-body .field { min-width: 14rem; }
.sort-by { display: flex; align-items: center; gap: 0.7rem; font-size: 0.82rem; color: var(--gray-600); white-space: nowrap; }
.sort-by select { border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.5rem 0.7rem; font: inherit; font-size: 0.88rem; background: var(--white); color: var(--gray-800); }
.results-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; font-size: 0.92rem; color: var(--gray-600); }
.results-bar strong { font-size: 1.05rem; color: var(--blue-900); }
.view-toggle { display: flex; gap: 0.5rem; }
.view-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.6rem; background: none; border: none; border-bottom: 2px solid transparent; font: inherit; font-size: 0.86rem; color: var(--gray-600); cursor: pointer; }
.view-btn:hover { color: var(--blue-900); }
.view-btn.is-active { color: var(--blue-900); font-weight: 600; border-bottom-color: var(--blue-900); }

.cta-band { background: var(--blue-900); color: var(--white); padding: 2.25rem 1.5rem; }
.cta-band .section-inner { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.cta-band .brand { color: var(--white); padding-right: 2rem; border-right: 1px solid rgba(255,255,255,0.25); }
.cta-band .brand-tag { color: rgba(255,255,255,0.8); }
.cta-copy { display: grid; gap: 0.25rem; font-size: 0.85rem; color: rgba(255,255,255,0.85); margin-right: auto; }
.cta-copy strong { font-size: 1.05rem; font-weight: 500; color: var(--white); }
.cta-actions { display: flex; gap: 0.9rem; flex-wrap: wrap; }

.has-sub { position: relative; }
.has-sub > a::after { content: ""; display: inline-block; width: 0.38rem; height: 0.38rem; margin-left: 0.4rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-0.2rem) rotate(45deg); }
.sub { list-style: none; position: absolute; top: 100%; left: -1rem; z-index: 120; min-width: 13.5rem; padding: 0.6rem 0; background: var(--white); border: 1px solid var(--gray-200); border-radius: 10px; box-shadow: 0 12px 34px rgba(15,39,68,0.14); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity 0.15s, transform 0.15s, visibility 0.15s; }
.has-sub:hover > .sub, .has-sub:focus-within > .sub { opacity: 1; visibility: visible; transform: none; }
.sub a { display: block; padding: 0.45rem 1.1rem 0.45rem 1.75rem; border-bottom: none; }
.sub a:hover { background: var(--gray-100); }
.sub .sub-head a { padding-left: 1.1rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue-900); }
.sub .sub-head:not(:first-child) { margin-top: 0.35rem; padding-top: 0.35rem; border-top: 1px solid var(--gray-200); }
.sub:not(:has(.sub-head)) a { padding-left: 1.1rem; }
/* Menú de la cuenta: nombre del usuario y accesos a su panel, sus datos y el acuerdo de confidencialidad. */
.account-menu > button::after { content: ""; display: inline-block; width: 0.38rem; height: 0.38rem; margin-left: 0.5rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.account-menu .sub { left: auto; right: 0; min-width: 15rem; }
.account-menu .account-name { display: grid; gap: 0.1rem; padding: 0.5rem 1.1rem 0.6rem; margin-bottom: 0.35rem; border-bottom: 1px solid var(--gray-200); }
.account-menu .account-name strong { font-size: 0.92rem; color: var(--blue-900); }
.account-menu .account-name small { font-size: 0.78rem; color: var(--gray-600); overflow-wrap: anywhere; }
.account-menu .sub a, .account-menu .sub button { display: block; width: 100%; padding: 0.45rem 1.1rem; text-align: left; font: inherit; font-size: 0.9rem; font-weight: 500; color: var(--gray-600); background: none; border: none; cursor: pointer; }
.account-menu .sub a:hover, .account-menu .sub button:hover { background: var(--gray-100); color: var(--blue-700); }
#propietarios { scroll-margin-top: 90px; }
.page-lead { max-width: 46rem; font-size: 1.05rem; color: var(--gray-600); margin-bottom: 2rem; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 1.25rem; }
.tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.tab { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 1rem; border: 1px solid var(--gray-200); border-radius: 999px; background: var(--white); font-size: 0.88rem; font-weight: 600; color: var(--gray-600); transition: border-color 0.2s, color 0.2s; }
.tab:hover { border-color: var(--blue-300); color: var(--blue-900); }
.tab.is-active { background: var(--blue-900); border-color: var(--blue-900); color: var(--white); }
.tab span { font-size: 0.75rem; font-weight: 600; opacity: 0.7; }
.cat-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 0.75rem; margin-bottom: 3rem; }
.cat-tile { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 10px; color: var(--blue-900); font-size: 0.82rem; transition: border-color 0.2s, box-shadow 0.2s; }
.cat-tile:hover { border-color: var(--blue-300); box-shadow: 0 6px 20px rgba(15,39,68,0.08); }
.cat-tile > span:first-of-type { display: grid; margin-right: auto; color: var(--gray-600); }
.cat-tile strong { font-size: 1.05rem; font-weight: 600; color: var(--blue-900); }
.round-arrow.dark { border-color: var(--blue-300); color: var(--blue-900); }
.alert-box { border: 1px solid #e5a3a3; border-left: 4px solid var(--red); border-radius: 10px; background: var(--red-bg); color: var(--red); padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.92rem; display: grid; gap: 0.75rem; }
.alert-box p { color: var(--red); }
p.alert-box { display: block; }
.alert-item { background: var(--white); border-radius: 8px; padding: 0.75rem 1rem; }
.timeline { list-style: none; display: grid; gap: 0; border-left: 2px solid var(--gray-200); margin-left: 0.5rem; }
.timeline li { position: relative; display: grid; grid-template-columns: 9.5rem 1fr; gap: 0.15rem 1rem; padding: 0.6rem 0 0.6rem 1.25rem; font-size: 0.9rem; color: var(--gray-800); }
.timeline li::before { content: ""; position: absolute; left: -6px; top: 1rem; width: 10px; height: 10px; border-radius: 50%; background: var(--blue-500); border: 2px solid var(--gray-100); }
.timeline li.k-flagged::before, .timeline li.k-rejected::before { background: var(--red); }
.timeline li.k-authorized::before, .timeline li.k-disclosed::before { background: var(--green); }
.timeline time { color: var(--gray-600); font-variant-numeric: tabular-nums; }
.timeline small { grid-column: 2; color: var(--gray-400); font-size: 0.78rem; }
.eyebrow a { text-decoration: underline; text-underline-offset: 3px; }
.excl-list { display: grid; gap: 0.9rem; }
.excl-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; border: 1px solid var(--gray-200); border-radius: 10px; padding: 1rem; background: var(--gray-100); }
.excl-row label { display: grid; gap: 0.3rem; font-size: 0.8rem; font-weight: 600; color: var(--gray-600); }
.excl-row .wide { grid-column: 1 / -1; }
.only { display: contents; }
.only[hidden] { display: none; }
.hotel-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; border: 1px solid var(--gray-200); border-radius: 10px; padding: 1rem; background: var(--gray-100); }
.hotel-row label { display: grid; gap: 0.3rem; font-size: 0.8rem; font-weight: 600; color: var(--gray-600); }
.hotel-row .wide { grid-column: 1 / -1; }
.hotel-row input, .hotel-row select { border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.6rem 0.7rem; font: inherit; font-size: 0.9rem; background: var(--white); }
.prop-photo.type-chain { background: linear-gradient(135deg, #3f5f82, #a9bdd2); }
.excl-row input:not([type=checkbox]), .excl-row select, .excl-row textarea { border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.6rem 0.7rem; font: inherit; font-weight: 400; color: var(--gray-800); background: var(--white); width: 100%; }
.excl-row textarea { min-height: 60px; }
.excl-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.excl-row .excl-foot .check { grid-column: auto; display: flex; align-items: center; gap: 0.5rem; font-size: 0.88rem; font-weight: 400; white-space: nowrap; }
.excl-row .excl-foot .check input { margin: 0; width: auto; }
#chat { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 150; }
.chat-fab { display: inline-flex; align-items: center; gap: 0.6rem; border: none; border-radius: 999px; padding: 0.85rem 1.25rem; background: var(--blue-900); color: var(--white); font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; box-shadow: 0 10px 30px rgba(15,39,68,0.3); }
.chat-fab:hover { background: #0a1c33; }
.chat-panel { display: flex; flex-direction: column; width: min(380px, calc(100vw - 2rem)); height: min(560px, calc(100vh - 6rem)); background: var(--white); border: 1px solid var(--gray-200); border-radius: 14px; box-shadow: 0 20px 60px rgba(15,39,68,0.28); overflow: hidden; }
.chat-panel header { display: flex; align-items: center; gap: 0.75rem; padding: 0.9rem 1rem; background: var(--blue-900); color: var(--white); }
.chat-panel header div { display: grid; }
.chat-panel header small { font-size: 0.72rem; opacity: 0.75; }
.chat-panel .map-close { color: var(--white); }
.chat-log { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.6rem; background: var(--gray-100); }
.chat-msg { max-width: 88%; padding: 0.6rem 0.8rem; border-radius: 12px; font-size: 0.9rem; line-height: 1.45; overflow-wrap: anywhere; }
.chat-msg.bot { align-self: flex-start; background: var(--white); border: 1px solid var(--gray-200); color: var(--gray-800); border-bottom-left-radius: 4px; }
.chat-msg.me { align-self: flex-end; background: var(--blue-700); color: var(--white); border-bottom-right-radius: 4px; }
.chat-msg a { color: var(--blue-500); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.chat-msg.typing { color: var(--gray-400); font-style: italic; }
.chat-form { display: flex; gap: 0.5rem; padding: 0.75rem; border-top: 1px solid var(--gray-200); }
.chat-form input { flex: 1; min-width: 0; border: 1px solid var(--gray-200); border-radius: 8px; padding: 0.6rem 0.75rem; font: inherit; font-size: 0.9rem; }
.chat-msg small { display: block; font-size: 0.7rem; font-weight: 600; opacity: 0.7; margin-bottom: 0.2rem; }
.chat-unread { min-width: 1.4rem; padding: 0.1rem 0.4rem; border-radius: 999px; background: var(--red); color: var(--white); font-size: 0.75rem; text-align: center; }
.admin-chat-log { height: min(60vh, 560px); border: 1px solid var(--gray-200); border-radius: 12px 12px 0 0; }
.admin-chat-log .chat-msg { max-width: 75%; }
.admin-chat-log .chat-msg.team { background: var(--blue-900); }
.admin-chat-log .chat-msg.flagged { background: var(--red-bg); color: var(--red); border: 1px solid var(--red); }
.admin-chat-form { border: 1px solid var(--gray-200); border-top: none; border-radius: 0 0 12px 12px; background: var(--white); }
.toast { bottom: 5.5rem; }
.site-footer { border-top: 1px solid var(--gray-200); background: var(--white); padding: 1.25rem 1.5rem; font-size: 0.85rem; color: var(--gray-600); }
.footer-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; padding-right: 11rem; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.site-footer button { border: none; background: none; padding: 0; font: inherit; color: var(--blue-700); font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.site-footer button:hover { color: var(--blue-900); }
dialog.modal.legal { max-width: 52rem; width: calc(100% - 2rem); height: min(85vh, 60rem); padding: 0; display: none; flex-direction: column; overflow: hidden; }
dialog.modal.legal[open] { display: flex; }
.legal-bar { display: flex; justify-content: flex-end; padding: 0.75rem 1rem; border-bottom: 1px solid var(--gray-200); }
.legal-text { overflow-y: auto; padding: 1.5rem 2rem 2.5rem; font-size: 0.95rem; line-height: 1.65; color: var(--gray-800); }
.legal-text h2 { font-family: var(--serif); font-weight: 500; font-size: 1.7rem; color: var(--blue-900); margin-bottom: 0.5rem; }
.legal-text h3 { font-size: 1.05rem; color: var(--blue-900); margin: 1.6rem 0 0.5rem; }
.legal-text p { margin-bottom: 0.8rem; }
.legal-text ul { margin: 0 0 0.8rem 1.3rem; display: grid; gap: 0.3rem; }
@media (max-width: 1100px) {
  .nav-links { gap: 1rem; }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-bar { grid-template-columns: 1fr 1fr; gap: 0.25rem; }
  .search-bar label + label { border-left: none; }
  .search-text { grid-column: 1 / -1; border-bottom: 1px solid var(--gray-200); }
  .search-bar .btn { grid-column: 1 / -1; margin-top: 0.5rem; }
}
@media (max-width: 900px) {
  .grid-3, .split, .form-grid, .form-row-3, .form-row-sale { grid-template-columns: 1fr; }
  .search-row { grid-template-columns: 1fr; }
  .search-extra { flex-direction: column; }
  .prop-list .prop-card { flex-direction: column; }
  .prop-list .prop-photo { width: 100%; height: 170px; }
}
@media (max-width: 1020px) {
  .nav-toggle { display: block; }
  #site-nav { position: fixed; top: 72px; left: 0; right: 0; background: var(--white); border-bottom: 1px solid var(--gray-200); flex-direction: column; align-items: stretch; padding: 1rem 1.5rem; gap: 1rem; transform: translateY(-120%); opacity: 0; pointer-events: none; transition: 0.25s; }
  #site-nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .nav-links { flex-direction: column; align-items: flex-start; gap: 0.85rem; }
  .nav-links a, .nav-links button { font-size: 1rem; color: var(--gray-800); }
  .lang-switch { align-self: flex-start; }
  .paths, .role-choice { grid-template-columns: 1fr; }
  .nav-actions { flex-wrap: wrap; }
  .nav-links a { border-bottom: none; }
  .nav-links > li { width: 100%; }
  .has-sub > a::after { display: none; }
  .sub { position: static; opacity: 1; visibility: visible; transform: none; border: none; box-shadow: none; padding: 0.35rem 0 0 1rem; min-width: 0; }
  .sub a, .sub:not(:has(.sub-head)) a { padding: 0.3rem 0 0.3rem 0.75rem; font-size: 0.92rem; color: var(--gray-600); }
  .sub .sub-head a { padding-left: 0; }
  .sub .sub-head:not(:first-child) { border-top: none; }
  .account-menu { width: 100%; }
  .account-menu > button::after { display: none; }
  .account-menu .sub a, .account-menu .sub button, .account-menu .account-name { padding-left: 0.75rem; }
  #site-nav { max-height: calc(100vh - 72px); overflow-y: auto; }
  .cat-tiles, .grid-2 { grid-template-columns: 1fr; }
  .footer-inner { padding-right: 0; padding-bottom: 3.5rem; }
  .legal-text { padding: 1.25rem 1.1rem 2rem; }
  .excl-row, .hotel-row { grid-template-columns: 1fr; }
  .timeline li { grid-template-columns: 1fr; }
  .timeline small { grid-column: 1; }
  .landing-inner, .global-top { grid-template-columns: 1fr; }
  .landing-inner { padding-top: 2rem; }
  .hero-photo { inset: 0; opacity: 0.35; }
  .hero-quote { display: none; }
  .trust { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .trust li { padding: 0; border-left: none; }
  .search-bar, .grid-4 { grid-template-columns: 1fr; }
  .search-text, .search-bar .btn { grid-column: auto; }
  .global-stat { position: static; margin-top: 0.75rem; width: fit-content; }
  .cta-band .brand { border-right: none; padding-right: 0; }
  .hero-inner { padding: 3rem 1.5rem 4rem; }
  .map-hero { padding: 1rem 0.75rem; }
  .map-layout { grid-template-columns: 1fr; }
  .map-panel { position: static; max-height: none; }
  .brand-tag { display: none; }
}

/* Solicitudes de acceso a fichas completas */
.count-badge { display: inline-block; min-width: 1.25rem; padding: 0.05rem 0.4rem; margin-left: 0.25rem; border-radius: 999px; background: var(--red); color: var(--white); font-size: 0.7rem; font-weight: 700; text-align: center; }
.tabs-sm .tab { padding: 0.4rem 0.8rem; font-size: 0.8rem; }
.request-card { margin-bottom: 1.25rem; }
.request-card.needs-action { border-left: 4px solid var(--amber); }
.request-card .field-label { margin-bottom: 0.5rem; }
.request-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 1rem; }
.request-head p, .request-hint { font-size: 0.88rem; color: var(--gray-600); }
.request-hint { margin: -0.5rem 0 1.5rem; }
.timeline li.k-admin_rejected_access::before, .timeline li.k-seller_rejected::before, .timeline li.k-admin_revoked_access::before { background: var(--red); }
.timeline li.k-admin_granted_access::before, .timeline li.k-seller_approved::before, .timeline li.k-buyer_viewed_full_listing::before { background: var(--green); }

/* === Rediseño: cabecera común, portada de Oportunidades, buscador y tarjetas === */
:root { --ink: #0f2744; --accent: #1f3f8f; --panel: #f1f4f8; --cream: #fbf0d5; --cream-ink: #8a5a12; }

/* Cabecera (todas las páginas) */
.site-header { background: var(--white); backdrop-filter: none; }
#site-nav { flex: 1; }
.nav-links { margin: 0 auto; gap: 1.9rem; }
.nav-links a, .nav-links button { font-size: 0.95rem; font-weight: 500; color: var(--ink); }
.nav-links a { padding: 0.45rem 0; border-bottom: 3px solid transparent; }
.nav-links a:hover { color: var(--accent); }
.nav-links a.is-active { color: var(--ink); font-weight: 700; border-bottom-color: var(--accent); }
.nav-actions { gap: 1.1rem; }
.lang-switch { margin: 0; gap: 0.45rem; padding-right: 1.1rem; border-right: 1px solid var(--gray-200); font-size: 0.9rem; letter-spacing: 0.02em; color: var(--gray-400); }
.lang-switch .icon { color: var(--ink); margin-right: 0.15rem; }
.lang-switch button { border-bottom: none; font-weight: 500; color: var(--gray-600); }
.lang-switch button.is-active { color: var(--ink); font-weight: 700; border-bottom: none; }
.account-btn { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1.05rem; border: none; border-radius: 10px; background: var(--panel); font: inherit; font-size: 0.95rem; font-weight: 600; color: var(--ink); cursor: pointer; white-space: nowrap; transition: background 0.2s; }
.account-btn:hover { background: var(--blue-100); }
.account-menu > button::after { display: none; }
.account-menu .account-out { margin-top: 0.35rem; padding-top: 0.35rem; border-top: 1px solid var(--gray-200); }

/* Portada de Oportunidades con foto de fondo */
.opp-hero { background-color: var(--panel); background-size: cover; background-position: center right; padding: 2.75rem 1.5rem 5.25rem; }
.opp-hero-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: start; }
.opp-hero .eyebrow { color: var(--ink); margin-bottom: 0.5rem; }
.opp-hero h1 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); margin-bottom: 0.75rem; }
.opp-hero p { color: var(--ink); font-size: 1rem; }
.opp-hero-tag { position: relative; margin-right: 12%; padding: 0.75rem 1rem 1.2rem; border-radius: 8px; background: rgba(255,255,255,0.78); font-size: 0.8rem !important; font-weight: 500; letter-spacing: 0.2em; line-height: 1.7; text-transform: uppercase; white-space: nowrap; width: max-content; }
.opp-hero-tag::after { content: ""; position: absolute; left: 1rem; bottom: 0.7rem; width: 2.25rem; height: 2px; background: var(--gold); }
.opp-page { padding-top: 0; }

/* Buscador */
.search-form { position: relative; margin: -3.75rem 0 1.75rem; padding: 1.25rem; background: var(--white); border-radius: 14px; box-shadow: 0 10px 34px rgba(15,39,68,0.10); }
.search-row { grid-template-columns: minmax(0, 1.9fr) repeat(3, minmax(0, 1fr)) auto; align-items: start; }
.search-row .field label:not(.search-input) { font-size: 0.82rem; font-weight: 600; color: var(--ink); margin-bottom: 0.4rem; display: block; }
.search-row > .field:first-child { padding-top: 1.72rem; }
.search-input { height: 3rem; border-radius: 10px; color: var(--ink); }
.search-hint { display: block; margin-top: 0.35rem; padding-left: 0.2rem; font-size: 0.76rem; color: var(--gray-600); }
.select-icon { position: relative; display: block; }
.select-icon .icon { position: absolute; left: 0.85rem; top: 50%; transform: translateY(-50%); color: var(--ink); pointer-events: none; }
.select-icon select, .search-row select { width: 100%; height: 3rem; padding-left: 2.6rem; border: 1px solid var(--gray-200); border-radius: 10px; background-color: var(--white); font: inherit; font-size: 0.93rem; color: var(--ink); }
.search-row .btn { height: 3rem; margin-top: 1.72rem; padding-inline: 1.9rem; border-radius: 10px; font-size: 0.95rem; }
.filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.75rem; margin-top: 0.9rem; }
.more-btn { display: inline-flex; align-items: center; gap: 0.65rem; margin-right: 0.5rem; padding: 0.6rem 1rem; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--panel); font: inherit; font-size: 0.92rem; font-weight: 600; color: var(--ink); cursor: pointer; }
.more-btn[aria-expanded="true"] .icon:last-child { transform: rotate(180deg); }
.chip { padding: 0.4rem 0.95rem; border: 1px solid var(--gray-200); border-radius: 999px; background: var(--white); font: inherit; font-size: 0.82rem; color: var(--ink); cursor: pointer; transition: border-color 0.2s, background 0.2s; }
.chip:hover { border-color: var(--blue-300); }
.chip.is-on { border-color: var(--ink); background: var(--blue-100); font-weight: 600; }
.more-filters-body { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gray-200); }
.more-filters-body[hidden] { display: none; }
.more-filters-body .field { min-width: 11rem; }
.more-filters-body .field input, .more-filters-body .field select { height: 2.75rem; }
.more-filters-body .check, .more-filters-body > .link { align-self: center; margin-top: 1.2rem; }

/* Barra de resultados */
.results-bar { justify-content: flex-start; gap: 0.75rem 1.25rem; margin-bottom: 1.25rem; }
.results-bar p { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.5rem; margin-right: auto; color: var(--ink); }
.results-bar strong { font-size: 1.05rem; }
.results-match { display: inline-flex; align-items: center; gap: 0.6rem; }
.results-match .icon { color: var(--accent); }
.results-page { color: var(--gray-600); font-size: 0.85rem; }
.alert-from-search { display: inline-flex; align-items: center; gap: 0.5rem; margin-left: 0; padding: 0.55rem 0.95rem; border: 1.5px solid var(--ink); border-radius: 10px; background: var(--white); font-size: 0.82rem; font-weight: 600; color: var(--ink); white-space: nowrap; }
.alert-from-search:hover { background: var(--panel); }
.sort-by { padding-left: 1.25rem; border-left: 1px solid var(--gray-200); color: var(--ink); font-size: 0.85rem; }
.sort-by select { border-radius: 10px; color: var(--ink); }
.view-toggle { gap: 0.35rem; }
.view-btn { justify-content: center; width: 2.3rem; height: 2.3rem; padding: 0; border: none; border-radius: 8px; color: var(--ink); }
.view-btn.is-active { background: var(--ink); color: var(--white); border: none; }

/* Tarjeta de activo */
.prop-card { border-radius: 12px; border-color: var(--gray-200); box-shadow: 0 2px 10px rgba(15,39,68,0.05); }
.prop-photo { height: 185px; overflow: hidden; background: var(--blue-100); }
.prop-photo img { filter: blur(7px); transform: scale(1.12); }
.prop-lock { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: rgba(15,39,68,0.72); color: var(--white); box-shadow: 0 4px 16px rgba(15,39,68,0.3); }
.prop-flags { top: 0.8rem; left: 0.8rem; gap: 0.4rem; }
.flag { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.32rem 0.6rem; border-radius: 6px; background: var(--white); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.flag-ok .icon { color: var(--white); fill: #1f9d55; stroke-width: 2; }
.flag-ok .icon circle { stroke: #1f9d55; }
.flag-match { background: var(--cream); color: var(--cream-ink); }
.flag-open { background: var(--green-bg); color: var(--green); }
.fav { top: 0.75rem; right: 0.75rem; width: 2.5rem; height: 2.5rem; color: #d64545; }
.fav:hover, .fav.is-on { color: #d64545; }
.prop-body { gap: 0.55rem; padding: 1.1rem 1.25rem 1rem; }
.prop-type { color: var(--gray-600); }
.prop-card h3 { font-size: 1.35rem; margin-bottom: 0.1rem; }
.prop-meta { gap: 0.4rem 1.5rem; color: var(--ink); font-size: 0.88rem; }
.prop-meta .icon { color: var(--ink); }
.prop-foot { display: flex; align-items: center; gap: 0.85rem; margin-top: auto; padding: 0.9rem 1.25rem; border-top: 1px solid var(--gray-200); }
.prop-euro { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; flex: none; border-radius: 50%; background: var(--cream); color: var(--gold-dark); }
.prop-price { margin: 0 auto 0 0; font-size: 1rem; line-height: 1.25; }
.prop-price small { display: flex; align-items: center; gap: 0.3rem; font-size: 0.76rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--gray-600); }
.prop-price small .icon { color: var(--gray-600); }
.prop-price strong { display: block; font-size: 1.2rem; font-weight: 700; color: var(--ink); white-space: nowrap; }
.prop-btn { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1rem; border-radius: 10px; background: var(--panel); font-size: 0.88rem; font-weight: 600; color: var(--ink); white-space: nowrap; transition: background 0.2s; }
.prop-btn:hover { background: var(--blue-100); }
.prop-list .prop-card { display: grid; grid-template-columns: 260px minmax(0, 1fr); }
.prop-list .prop-photo { width: auto; grid-row: span 2; }

@media (max-width: 1020px) {
  .nav-links { margin: 0; }
  .nav-links a.is-active { border-bottom: none; }
  .lang-switch { border-right: none; padding-right: 0; }
  .nav-actions { align-items: flex-start; }
  .opp-hero-tag { display: none; }
}
@media (max-width: 900px) {
  .opp-hero { padding: 2rem 1.25rem 4.75rem; background-position: 70% center; }
  .search-row { grid-template-columns: 1fr; }
  .search-row > .field:first-child, .search-row .btn { padding-top: 0; margin-top: 0; }
  .sort-by { padding-left: 0; border-left: none; }
  .prop-list .prop-card { display: flex; }
  .prop-foot { flex-wrap: wrap; }
}

/* === Cómo funciona === */
.how-hero { padding: 3rem 1.5rem 3.25rem; }
.how-hero h1 { margin-bottom: 1.25rem; }
.how-lead { max-width: 40rem; font-size: 1rem; line-height: 1.65; color: var(--ink); }
.how-hero .opp-hero-tag { margin-right: 14%; font-size: 0.72rem !important; }
.how-section { padding-top: 3rem; padding-bottom: 3rem; }
.how-section .eyebrow { color: var(--ink); margin-bottom: 0.5rem; }
.how-section h2.serif { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 0.75rem; }
.how-section h2.underlined { padding-bottom: 0.9rem; margin-bottom: 1.25rem; }
.how-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.how-steps { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 1rem; align-items: center; }
.how-arrow { color: var(--gray-600); }
.how-step { align-self: stretch; padding: 1.5rem 1.6rem 1.6rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; box-shadow: 0 2px 10px rgba(15,39,68,0.04); }
.how-step-head { display: flex; align-items: center; gap: 2.4rem; margin-bottom: 1rem; color: var(--ink); }
.how-step-head .icon { stroke-width: 1.4; }
.how-num { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; flex: none; border-radius: 50%; background: var(--cream); font-size: 0.85rem; font-weight: 600; color: var(--cream-ink); }
.how-step h3 { font-size: 1.2rem; margin: 0 0 0.6rem 0.4rem; }
.how-step p { margin-left: 0.4rem; font-size: 0.9rem; line-height: 1.6; color: var(--ink); }
.how-owners { background: var(--white); }
.how-owner-head { display: grid; grid-template-columns: minmax(0, 1fr) auto 15rem; gap: 2.5rem; align-items: start; margin-bottom: 2rem; }
.how-ticks { list-style: none; display: grid; gap: 1.1rem; padding: 0.5rem 0 0.5rem 2.5rem; border-left: 1px solid var(--gray-200); align-self: center; }
.how-ticks li { display: flex; align-items: center; gap: 0.9rem; font-size: 0.92rem; color: var(--ink); white-space: nowrap; }
.how-ticks .icon { color: var(--gold); }
.how-protect { padding: 1.35rem 1.4rem; border: 1px solid #f0e2c4; border-radius: 12px; background: #fdf7ea; color: var(--ink); }
.how-protect .icon { color: var(--gold); margin-bottom: 0.9rem; }
.how-protect strong { display: block; padding-bottom: 0.9rem; margin-bottom: 0.9rem; font-family: var(--serif); font-size: 1.05rem; font-weight: 600; line-height: 1.3; background: linear-gradient(var(--gold), var(--gold)) left bottom / 2rem 2px no-repeat; }
.how-protect p { font-size: 0.88rem; line-height: 1.5; }
.how-sub { margin: 2rem 0 0.9rem !important; }
.how-info { display: flex; gap: 1.25rem; padding: 1.4rem 1.5rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; box-shadow: 0 2px 10px rgba(15,39,68,0.04); }
.how-ico { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; flex: none; border-radius: 50%; background: var(--cream); color: var(--ink); }
.how-info h3 { font-size: 1.15rem; margin-bottom: 0.5rem; }
.how-info p { font-size: 0.88rem; line-height: 1.6; color: var(--ink); }
.how-cta { position: relative; display: grid; grid-template-columns: minmax(0, 1.5fr) auto minmax(0, 1fr); gap: 2rem; align-items: center; margin-top: 2rem; padding: 1.75rem 0 1.75rem 2.25rem; border-radius: 12px; background: #e9f0f8; overflow: hidden; }
.how-cta h2.serif { margin-bottom: 0.35rem; }
.how-cta-copy p { font-size: 0.92rem; color: var(--ink); }
.how-cta .form-actions { margin-top: 1.1rem; }
.how-perks { list-style: none; display: flex; }
.how-perks li { display: flex; align-items: center; gap: 0.8rem; padding: 0.4rem 1.25rem; font-size: 0.8rem; line-height: 1.35; color: var(--ink); white-space: nowrap; }
.how-perks li + li { border-left: 1px solid #cdd9e6; }
.how-cta-photo { align-self: stretch; min-height: 9rem; margin: -1.75rem 0; background-size: cover; background-position: center; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
@media (max-width: 1100px) {
  .how-owner-head { grid-template-columns: 1fr; gap: 1.5rem; }
  .how-ticks { border-left: none; padding-left: 0; }
  .how-cta { grid-template-columns: 1fr; padding: 1.75rem 1.5rem; }
  .how-cta-photo { display: none; }
  .how-perks { flex-wrap: wrap; }
  .how-perks li { padding-left: 0; }
  .how-perks li + li { border-left: none; }
}
@media (max-width: 900px) {
  .how-steps { grid-template-columns: 1fr; }
  .how-arrow { display: none; }
  .how-ticks li { white-space: normal; }
}
.how-owner-head { grid-template-columns: minmax(0, 1fr) auto 13.5rem; gap: 2rem; }
.how-owner-head h2.serif { font-size: clamp(1.5rem, 2.55vw, 2.05rem); }
.how-ticks { padding-left: 2rem; }
.how-cta { grid-template-columns: minmax(0, 1.7fr) auto minmax(0, 0.8fr); gap: 1.25rem; }
.how-cta h2.serif { font-size: clamp(1.4rem, 2.4vw, 1.8rem); }
.how-cta .form-actions { flex-wrap: nowrap; }
.how-cta .btn-lg { padding: 0.75rem 1.2rem; font-size: 0.88rem; white-space: nowrap; }
.how-perks li { padding: 0.4rem 0.9rem; }

/* === Contacto === */
.contact-hero { min-height: calc(100vh - 72px - 62px); padding: 3.25rem 1.5rem 3.5rem; background-color: #f8fafc; background-size: cover; background-position: center right; }
.contact-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 41rem) auto; gap: 4rem; align-items: start; }
.contact-hero .eyebrow { color: var(--gray-600); letter-spacing: 0.2em; margin-bottom: 0.5rem; }
.contact-hero h1 { font-size: clamp(2.2rem, 4vw, 2.9rem); margin-bottom: 1.1rem; }
.contact-lead { max-width: 33rem; margin-bottom: 1.75rem; font-size: 1.05rem; line-height: 1.7; color: var(--gray-600); }
.contact-card { padding: 1.75rem 1.6rem 1.6rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 14px; box-shadow: 0 10px 34px rgba(15,39,68,0.08); }
.contact-card h2 { font-size: 1.55rem; margin-bottom: 0.3rem; }
.contact-sub { margin-bottom: 1.25rem; font-size: 0.95rem; color: var(--gray-600); }
.contact-card .field label { color: var(--ink); }
.contact-card .field input, .contact-card .field select, .contact-card .field textarea { border-radius: 10px; padding: 0.7rem 0.85rem; color: var(--ink); }
.contact-card textarea { min-height: 5.5rem; resize: vertical; }
.contact-send { display: flex; align-items: center; gap: 1.25rem; margin-top: 1.25rem; flex-wrap: wrap; }
.contact-send small { font-size: 0.78rem; line-height: 1.5; color: var(--gray-600); }
.contact-send .btn-link { font-size: inherit; font-weight: 600; color: var(--ink); }
.contact-tag { position: relative; margin-top: 7.25rem; padding-bottom: 1.6rem; font-size: 0.92rem; font-weight: 500; letter-spacing: 0.22em; line-height: 1.75; text-transform: uppercase; white-space: nowrap; color: var(--accent); text-shadow: 0 0 14px rgba(255,255,255,0.95), 0 0 4px rgba(255,255,255,0.9); }
.contact-tag::after { content: ""; position: absolute; left: 0; bottom: 0.6rem; width: 3rem; height: 2px; background: var(--gold); }
@media (max-width: 1020px) {
  .contact-hero { background-image: none !important; padding: 2.25rem 1.25rem; }
  .contact-inner { grid-template-columns: 1fr; }
  .contact-tag { display: none; }
}
.contact-tag { padding: 0.9rem 1.2rem 1.7rem; border-radius: 8px; background: rgba(255,255,255,0.74); text-shadow: none; }
.contact-tag::after { left: 1.2rem; bottom: 0.9rem; }
/* Fotos de las fichas ciegas: más claras */
.prop-photo img { filter: blur(7px) brightness(1.18) saturate(0.92); }
.prop-photo-link::after { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,0.22); }
.prop-lock { z-index: 1; background: rgba(15,39,68,0.6); }

.toolbar .field:has(input[name="q"]) { min-width: min(24rem, 100%); }
.pager-gap { color: var(--gray-600); padding: 0 0.15rem; }

/* === SEO: migas de pan, contenido previo a la carga, destinos y aviso de cookies === */
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 1.25rem; font-size: 0.82rem; color: var(--gray-600); }
.crumbs li + li::before { content: "›"; margin-right: 0.35rem; color: var(--gray-400); }
.crumbs a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
/* Contenido que escribe el servidor y que la aplicación sustituye al cargar */
/* Versión para buscadores que envía el servidor: no se ve mientras carga la web (dura décimas de segundo).
   Si la web no llegara a cargar, aparece a los 4 s para no dejar la página vacía. */
.prerender { visibility: hidden; animation: prerender-fallback 0s 4s forwards; }
@keyframes prerender-fallback { to { visibility: visible; } }
.prerender h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(1.6rem, 3vw, 2.1rem); line-height: 1.2; color: var(--ink); margin-bottom: 1rem; }
.prerender h2 { font-size: 1.15rem; color: var(--ink); margin: 1.75rem 0 0.6rem; }
.prerender p { max-width: 46rem; color: var(--gray-600); margin-bottom: 0.75rem; }
.prerender ul { list-style: none; display: grid; gap: 0.3rem; color: var(--gray-600); font-size: 0.92rem; }
.prerender a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.prerender dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1.5rem; max-width: 34rem; margin-top: 1rem; font-size: 0.92rem; }
.prerender dt { color: var(--gray-600); }
.prerender dd { font-weight: 600; color: var(--ink); }
.dest-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.5rem; }
.dest-links .chip { font-size: 0.86rem; padding: 0.45rem 1rem; }
.dest-links .chip span { color: var(--gray-600); }
.footer-dest { max-width: 1200px; margin: 0 auto; padding: 1.25rem 1.5rem 0; display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; font-size: 0.82rem; }
.footer-dest strong { flex-basis: 100%; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray-600); }
.footer-dest a { color: var(--gray-600); }
.footer-dest a:hover { color: var(--ink); text-decoration: underline; }
.cookie-banner { position: fixed; left: 1rem; bottom: 1rem; z-index: 150; max-width: 26rem; padding: 1rem 1.1rem; background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px; box-shadow: 0 10px 34px rgba(15,39,68,0.16); font-size: 0.85rem; color: var(--gray-600); }
.cookie-banner div { display: flex; justify-content: flex-end; gap: 0.5rem; margin-top: 0.75rem; }

/* === Cómo funciona (propietarios) === */
.owner-hero { padding: 3rem 1.5rem 2.75rem; }
.owner-hero .opp-hero-inner { align-items: stretch; }
.owner-hero h1 { font-size: clamp(2rem, 3.8vw, 2.85rem); }
.owner-hero .form-actions { margin-top: 1.75rem; }
.how-feats { list-style: none; display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 1.75rem; }
.how-feats li { display: flex; align-items: center; gap: 0.8rem; font-size: 0.88rem; line-height: 1.35; color: var(--ink); }
.how-ico.sm { width: 2.75rem; height: 2.75rem; }
.owner-side { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; gap: 2rem; min-width: 19rem; }
.owner-side .opp-hero-tag { margin: 0; }
.owner-card { display: flex; gap: 1rem; align-self: flex-end; max-width: 19rem; padding: 1.25rem 1.4rem; border-radius: 12px; background: rgba(253,247,234,0.96); box-shadow: 0 8px 26px rgba(15,39,68,0.12); color: var(--ink); }
.owner-card .how-ico { background: var(--cream); }
.owner-card strong { display: block; font-family: var(--serif); font-size: 1.1rem; font-weight: 500; line-height: 1.3; margin-bottom: 0.4rem; }
.owner-card p { font-size: 0.86rem !important; line-height: 1.45; }
.owner-box { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 2.5rem; align-items: center; padding: 2rem 2.25rem; border-radius: 14px; background: #f5f8fb; }
.owner-box .how-ticks { align-self: stretch; align-content: center; }
.owner-box .how-ticks li { white-space: normal; font-size: 0.88rem; }
.owner-box .how-lead strong { font-weight: 600; }
.owner-h2 { margin-top: 2.75rem !important; margin-bottom: 0.4rem !important; }
.owner-sub { margin-bottom: 1.5rem; }
.owner-public { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr); gap: 1.5rem; align-items: stretch; }
.owner-cards { gap: 1.25rem; }
.owner-list { padding: 1.5rem 1.6rem; border-radius: 12px; }
.owner-list.blind { background: #eef3fb; }
.owner-list.full { background: #fdf7ea; }
.owner-list.blind .how-ico { background: #dbe6f6; }
.owner-list header { display: flex; align-items: center; gap: 1.1rem; margin-bottom: 1.1rem; }
.owner-list h3 { font-size: 1.2rem; line-height: 1.3; }
.owner-list h3 small { display: block; font-size: 0.9rem; font-weight: 500; }
.how-checks { list-style: none; display: grid; gap: 0.4rem; }
.how-checks li { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9rem; color: var(--ink); }
.how-checks .icon { color: var(--gold); flex: none; }
.owner-photo { display: flex; flex-direction: column; justify-content: center; gap: 2.5rem; padding: 2rem 1.75rem; border-radius: 12px; background-size: cover; background-position: center; color: var(--ink); font-size: 1rem; line-height: 1.5; }
.owner-photo p:first-child { padding-bottom: 1.5rem; background: linear-gradient(var(--gold), var(--gold)) left bottom / 2rem 2px no-repeat; }
.owner-cta { grid-template-columns: 15rem minmax(0, 1fr) auto; padding: 1.5rem 2rem 1.5rem 0; margin-top: 2rem; background: #f0f4fb; }
.owner-cta .how-cta-photo { margin: -1.5rem 0; clip-path: polygon(0 0, 100% 0, 86% 100%, 0 100%); }
.owner-cta h2.serif { font-size: clamp(1.15rem, 1.9vw, 1.45rem); }
.owner-cta-actions { display: grid; gap: 0.9rem; justify-items: center; }
@media (max-width: 1100px) {
  .owner-box, .owner-public { grid-template-columns: 1fr; }
  .owner-box .how-ticks { border-left: none; padding-left: 0; }
  .owner-side { display: none; }
  .owner-cta { grid-template-columns: 1fr; padding: 1.5rem; }
  .owner-cta-actions { justify-items: start; }
}
.footer-dest { padding: 0 0 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--gray-200); }

/* === Página de inversores === */
.inv-items { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 0; }
.inv-items li { display: flex; gap: 0.9rem; padding: 0 1.25rem; }
.inv-items li:nth-child(3n+1) { padding-left: 0; }
.inv-items li:not(:nth-child(3n+1)) { border-left: 1px solid var(--gray-200); }
.inv-items strong { display: block; font-family: var(--serif); font-size: 1.05rem; font-weight: 500; color: var(--ink); margin-bottom: 0.25rem; }
.inv-items p { font-size: 0.84rem; line-height: 1.45; color: var(--gray-600); }
.owner-photo p.serif { font-size: 1.35rem; line-height: 1.3; }
.owner-photo-note { font-size: 0.9rem; }
.owner-cta .how-perks { margin-top: 1rem; }
.owner-cta .how-perks li:first-child { padding-left: 0; }
.owner-cta .eyebrow { margin-bottom: 0.3rem; font-size: 0.7rem; }
.how-switch { margin-top: 1.5rem; text-align: center; font-size: 0.9rem; color: var(--gray-600); }
@media (max-width: 900px) { .inv-items { grid-template-columns: 1fr; gap: 1.25rem; } .inv-items li { padding: 0; border-left: none !important; } }

/* Menú «Cómo funciona»: no lleva a ninguna página, despliega Propietarios e Inversores */
.how-menu > button { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.45rem 0; border-bottom: 3px solid transparent; }
.how-menu > button.is-active { font-weight: 700; border-bottom-color: var(--accent); }
.how-menu .sub { left: 50%; top: calc(100% + 0.4rem); min-width: 11rem; transform: translate(-50%, 4px); }
.how-menu:hover > .sub, .how-menu:focus-within > .sub { transform: translate(-50%, 0); }
.how-menu .sub::before { content: ""; position: absolute; left: 0; right: 0; top: -0.6rem; height: 0.6rem; }
.how-menu .sub a { padding: 0.5rem 1.1rem; border-bottom: none; font-weight: 500; }
.how-menu .sub a.is-active { font-weight: 700; color: var(--accent); border-bottom: none; }
@media (max-width: 1020px) {
  .how-menu > button { border-bottom: none; padding: 0; }
  .how-menu > button .icon { display: none; }
  .how-menu .sub { transform: none; }
  .how-menu:hover > .sub, .how-menu:focus-within > .sub { transform: none; }
}

/* === Inicio: accesos Comprar / Alquilar / Vender === */
.hero-paths { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.25rem 0; }
.hero-path p { margin-bottom: 0.75rem; font-size: 0.76rem; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold-dark); display: flex; align-items: center; gap: 0.9rem; }
.hero-path:not(.owners) p::before, .hero-path:not(.owners) p::after { content: ""; flex: 1; height: 1.5px; background: var(--gold); }
.hero-path.owners { margin-left: 1.5rem; padding-left: 1.5rem; border-left: 1px solid rgba(15,39,68,0.18); }
.hero-pair { display: flex; border-radius: 10px; background: var(--blue-900); overflow: hidden; }
.hero-pair a, .hero-sell { display: inline-flex; align-items: center; gap: 0.9rem; padding: 1.1rem 1.6rem; font-size: 0.98rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap; transition: background 0.2s; }
.hero-pair a { color: var(--white); }
.hero-pair a + a { position: relative; }
.hero-pair a + a::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: rgba(255,255,255,0.35); }
.hero-pair a:hover { background: var(--blue-700); }
.hero-sell { border: 2px solid var(--blue-900); border-radius: 10px; background: var(--white); color: var(--blue-900); padding: calc(1.1rem - 2px) 1.6rem; }
.hero-sell:hover { background: var(--blue-100); }
.hero-pair .icon:last-child, .hero-sell .icon:last-child { margin-left: 0.4rem; }
.landing-hero .trust { grid-template-columns: repeat(4, max-content); }
.landing-hero .trust li:nth-child(odd) { padding-left: 1.75rem; border-left: 1px solid rgba(15,39,68,0.15); }
.landing-hero .trust li:first-child { padding-left: 0; border-left: none; }
.landing-hero .trust li:first-child .icon { color: var(--gold-dark); }
@media (max-width: 900px) {
  .hero-path.owners { margin-left: 0; padding-left: 0; border-left: none; }
  .hero-pair a, .hero-sell { padding: 0.9rem 1.1rem; font-size: 0.88rem; }
  .landing-hero .trust { grid-template-columns: repeat(2, max-content); }
  .landing-hero .trust li:nth-child(odd) { padding-left: 0; border-left: none; }
}
.hero-paths { flex-wrap: nowrap; width: max-content; max-width: none; }
@media (max-width: 900px) { .hero-paths { flex-wrap: wrap; width: auto; } }

.mode-choice.two { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0.5rem; }
.mode-choice.two strong { text-align: center; }
.mode-choice[hidden] { display: none; }

/* === Alta de un activo por pasos === */
.wiz-progress { margin-bottom: 1.25rem; }
.wiz-progress p { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.4rem; margin-bottom: 0.5rem; font-size: 0.85rem; color: var(--gray-600); }
.wiz-progress strong { color: var(--ink); }
.wiz-progress span { margin-left: auto; display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; }
.wiz-bar { height: 4px; border-radius: 999px; background: var(--gray-200); overflow: hidden; }
.wiz-bar i { display: block; height: 100%; border-radius: 999px; background: var(--ink); transition: width 0.35s ease; }
.wiz-card { padding: 2rem 2rem 1.5rem; }
.wiz-step { animation: wiz-in 0.3s ease; min-height: 12rem; }
@keyframes wiz-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wiz-step { animation: none; } }
.wiz-step h2 { font-size: 1.55rem; margin-bottom: 1.25rem; }
.wiz-lead { margin: -0.5rem 0 1.25rem; font-size: 1rem; color: var(--gray-600); }
.wiz-points { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.5rem; }
.wiz-step .role-choice label { padding: 1rem 1.1rem; align-items: center; font-size: 0.95rem; }
.wiz-step .role-choice small { display: block; margin-top: 0.2rem; font-size: 0.8rem; color: var(--gray-600); }
.wiz-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wiz-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--gray-200); }
.wiz-actions .btn-primary.is-ready { animation: wiz-ready 1.2s ease-out 2; }
@keyframes wiz-ready { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--gold) 70%, transparent); } 100% { box-shadow: 0 0 0 14px transparent; } }
@media (prefers-reduced-motion: reduce) { .wiz-actions .btn-primary.is-ready { animation: none; outline: 3px solid var(--gold); outline-offset: 3px; } }
.wiz-final { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.75rem; }
.wiz-foot { margin-top: 1rem; text-align: center; font-size: 0.85rem; color: var(--gray-600); }
.wiz-private { display: flex; align-items: center; gap: 0.4rem; margin: 0.75rem 0 1rem; font-size: 0.8rem; color: var(--cream-ink); }
.wiz-private-box { display: flex; gap: 1.1rem; margin-bottom: 1.75rem; padding: 1.25rem 1.4rem; border: 1px solid #f0e2c4; border-radius: 12px; background: #fdf7ea; color: var(--ink); }
.wiz-private-box .icon { color: var(--gold-dark); flex: none; margin-top: 0.2rem; }
.wiz-private-box .eyebrow { margin-bottom: 0.2rem; color: var(--cream-ink); font-weight: 700; }
.wiz-private-box strong { display: block; font-size: 1.05rem; margin-bottom: 0.35rem; }
.wiz-private-box p:last-child { font-size: 0.9rem; line-height: 1.55; color: var(--gray-600); }
.wiz-add { display: flex; align-items: flex-end; gap: 0.75rem; flex-wrap: wrap; }
.wiz-add .field { flex: 1; min-width: 14rem; }
.wiz-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.wiz-chip { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.5rem 0.4rem 0.9rem; border: 1px solid var(--gray-200); border-radius: 999px; background: var(--panel); font-size: 0.88rem; color: var(--ink); }
.wiz-chip button { width: 1.5rem; height: 1.5rem; border: none; border-radius: 50%; background: var(--white); color: var(--ink); font-size: 1rem; line-height: 1; cursor: pointer; }
.wiz-chip button:hover { background: var(--red-bg); color: var(--red); }
.wiz-mandate { max-height: 22rem; overflow-y: auto; padding: 1.25rem 1.4rem; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--gray-100); font-size: 0.9rem; }
.wiz-mandate h2 { font-size: 1.2rem; }
.draft-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; margin-bottom: 0.75rem; }
.draft-card small { display: block; margin-top: 0.3rem; }
.mode-choice.two { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 700px) {
  .wiz-card { padding: 1.4rem 1.1rem 1.1rem; }
  .wiz-three, .wiz-step .role-choice { grid-template-columns: 1fr; }
  .wiz-actions { flex-wrap: wrap; }
  .wiz-actions .btn-lg, .wiz-final, .wiz-final .btn { width: 100%; }
  .wiz-progress span { margin-left: 0; flex-basis: 100%; }
}
.section-inner.narrow:has(.wiz-card) { max-width: 46rem; }

/* === Mi perfil inversor === */
.wiz-step .role-choice label { position: relative; }
.wiz-step .role-choice label:has(input[type="checkbox"]:checked)::after { content: "✓"; position: absolute; right: 0.9rem; top: 50%; transform: translateY(-50%); font-weight: 700; color: var(--accent); }
.wiz-step .role-choice label:has(input[type="checkbox"]) { padding-right: 2.2rem; }
.wiz-step .role-choice input[type="checkbox"] { accent-color: var(--blue-900); }
.wiz-count { display: block; margin-top: 0.3rem; text-align: right; font-size: 0.78rem; color: var(--gray-600); }
.wiz-step textarea { width: 100%; min-height: 9rem; }
.inv-summary { display: grid; gap: 0; }
.inv-summary > div { display: grid; grid-template-columns: 11rem minmax(0, 1fr) auto; gap: 1rem; align-items: baseline; padding: 0.8rem 0; border-bottom: 1px solid var(--gray-200); }
.inv-summary span { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray-600); }
.inv-summary strong { font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.inv-card .listing-meta { margin-bottom: 0.5rem; }
@media (max-width: 700px) { .inv-summary > div { grid-template-columns: 1fr auto; } .inv-summary span { grid-column: 1 / -1; } }

/* Bloques separados dentro de un paso del asistente */
.wiz-box { padding: 1.25rem 1.4rem 1.4rem; border: 1px solid var(--gray-200); border-radius: 12px; background: #f5f8fb; }
.wiz-box + .wiz-box { margin-top: 1.25rem; background: #fdf7ea; border-color: #f0e2c4; }
.wiz-box h3 { margin-bottom: 1rem; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink); }
.wiz-box .role-choice label { background: var(--white); }
.wiz-box .field input { background: var(--white); }
/* Las líneas doradas a los lados del rótulo, también en «Para propietarios» */
.hero-path p::before, .hero-path p::after { content: ""; flex: 1; height: 1.5px; background: var(--gold); }

/* === Valoración hotelera orientativa === */
.val-cards .card h3 { font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 0.5rem; }
.val-cards .card p { font-size: 0.9rem; color: var(--gray-600); }
.val-main { text-align: left; padding: 1.75rem 1.9rem; }
.val-label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gray-600); }
.val-range { margin: 0.35rem 0 1.25rem; font-family: var(--serif); font-size: clamp(1.7rem, 4.2vw, 2.6rem); line-height: 1.15; color: var(--ink); }
.val-sub { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; padding-top: 1.1rem; border-top: 1px solid var(--gray-200); }
.val-sub span { display: block; font-size: 0.76rem; color: var(--gray-600); margin-bottom: 0.2rem; }
.val-sub strong { font-size: 1.05rem; color: var(--ink); }
.val-methods { display: grid; gap: 0.6rem; }
.val-methods details { padding: 0.9rem 1.2rem; }
.val-methods summary { display: flex; justify-content: space-between; gap: 1rem; cursor: pointer; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); }
.val-methods summary strong { font-size: 1rem; letter-spacing: 0; white-space: nowrap; }
.val-methods details p, .val-how p { margin-top: 0.75rem; font-size: 0.9rem; color: var(--gray-600); }
.val-how { margin-top: 1rem; padding: 0.9rem 1.2rem; }
.val-how summary { cursor: pointer; font-weight: 600; color: var(--ink); }
.val-reasons { margin: 0.75rem 0 0 1.1rem; display: grid; gap: 0.3rem; font-size: 0.9rem; color: var(--gray-600); }
.val-scen { margin-bottom: 0.75rem; }
.wiz-step .wiz-box + .wiz-box { margin-top: 1rem; }
.wiz-box .check { margin-top: 0.75rem; }
.inv-summary i { display: none; }
dialog.modal:has([name="discount_rate"]) { max-width: 46rem; }
@media (max-width: 700px) { .val-sub { grid-template-columns: 1fr; } }
.val-main .val-range { margin: 0.35rem 0 1.25rem; font-family: var(--serif); font-size: clamp(1.7rem, 4.2vw, 2.6rem); line-height: 1.15; color: var(--ink); }
.val-main .val-label { font-size: 0.75rem; }
.section-inner.narrow:has(.val-main, .val-cards, [data-form="valuation"], [data-form="investor"]) { max-width: 46rem; }

/* Valoración: análisis de sensibilidad */
.val-sens { margin: 0.5rem 0 1.5rem; }
.val-sens > summary { display: inline-flex; list-style: none; cursor: pointer; }
.val-sens > summary::-webkit-details-marker { display: none; }
.val-sens > .card { margin-top: 1rem; padding: 1.5rem 1.6rem; }
.val-sens .card h2 { font-size: 1.4rem; margin-bottom: 0.5rem; }
.val-sens .card > p { margin-top: 0.75rem; font-size: 0.92rem; }
.val-sens .val-sens-title { margin: 1.4rem 0 0.7rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink); }
.val-sens-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.val-matrix { width: 100%; min-width: 30rem; border-collapse: separate; border-spacing: 3px; font-size: 0.86rem; text-align: center; }
.val-matrix th { padding: 0.4rem 0.5rem; font-size: 0.74rem; font-weight: 600; color: var(--gray-600); white-space: nowrap; }
.val-matrix tbody th, .val-matrix thead tr:last-child th:first-child { text-align: left; }
.val-matrix td { padding: 0.65rem 0.4rem; border-radius: 6px; background: var(--gray-100); color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.val-matrix td.down { background: #f6efe2; }
.val-matrix td.up { background: #e8eef6; }
.val-matrix td.na { color: var(--gray-600); }
.val-matrix td.base { background: var(--blue-900); color: var(--white); font-weight: 700; box-shadow: 0 0 0 2px var(--gold); }
.val-matrix td.base small { display: block; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.1em; color: var(--gold); }
.val-sens .val-sens-note { font-size: 0.82rem; }
.val-sens-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.val-sens-cols p { margin-top: 0.75rem; font-size: 0.85rem; }
.val-sens-list { list-style: none; margin: 0; display: grid; gap: 3px; }
.val-sens-list li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.5rem 0.8rem; border-radius: 6px; background: var(--gray-100); font-size: 0.9rem; font-variant-numeric: tabular-nums; }
.val-sens-list li.base { background: var(--blue-900); color: var(--white); }
.val-sens-list li.base span { color: var(--gold); font-weight: 700; letter-spacing: 0.08em; font-size: 0.78rem; align-self: center; }
@media (max-width: 700px) { .val-sens-cols { grid-template-columns: 1fr; } .val-sens > .card { padding: 1.2rem 1rem; } }

/* Valoración: filtros de la tabla de parámetros */
.val-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.75rem; }
.val-filters select, .val-filters input { width: auto; min-width: 9rem; padding: 0.45rem 0.6rem; font-size: 0.85rem; }
tr[hidden] { display: none; }

/* Panel del inversor: varios perfiles */
/* Cada perfil va en su propio recuadro, separado del siguiente. */
.inv-profile { margin-top: 1.5rem; padding: 1.25rem 1.3rem; border: 1px solid var(--gray-200); border-left: 3px solid var(--gold); border-radius: 10px; background: var(--gray-100); }
.inv-card h3 + .inv-profile { margin-top: 1rem; }
.inv-profile.paused { border-left-color: var(--gray-200); }
.inv-profile + .form-actions { margin-top: 1.5rem; }
.inv-profile.paused .listing-meta { opacity: 0.55; }
.inv-profile-name { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.6rem; }
.inv-profile .form-actions { margin-top: 0.75rem; }

/* Financiación: necesidades, coincidencias y contacto */
.fin-need { margin-bottom: 1.25rem; }
.fin-count { margin: 1.5rem 0 0.9rem; font-size: 1rem; }
.fin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; }
.fin-card { padding: 1.1rem 1.2rem; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--white); }
.fin-card .listing-meta { margin: 0.6rem 0; }
.fin-card h3 { margin-bottom: 0.2rem; }
.fin-score { margin: 0.6rem 0 0.3rem; color: var(--ink); }
.fin-score strong { font-family: var(--serif); font-size: 1.5rem; }
.fin-why { margin-bottom: 0.9rem; font-size: 0.88rem; }
.fin-why ul { list-style: none; margin: 0.5rem 0 0; display: grid; gap: 0.25rem; }
.fin-why li span { display: inline-block; width: 1.1rem; font-weight: 700; color: var(--gold-dark); }
.fin-why li.fail span { color: var(--gray-600); }
.fin-contact { margin-top: 0.75rem; padding: 0.9rem 1rem; border-radius: 8px; background: var(--gray-100); }

/* Cabecera: un solo botón de idioma y botón de cuenta solo con el icono */
.lang-switch button { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.45rem 0.6rem; border-radius: 8px; }
.lang-switch button:hover { background: var(--panel); }
.lang-switch button .icon { margin-right: 0; }
.account-btn.icon-only { position: relative; gap: 0.35rem; padding: 0.65rem; border-radius: 50%; }
.account-btn.icon-only .count-badge { position: absolute; top: -0.25rem; right: -0.35rem; }
.site-footer nav a { color: var(--blue-700); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Noticias del mercado: sobrio, tipografía y datos; sin fotos. */
.news-head { max-width: 46rem; margin-bottom: 1.75rem; }
.news-dates { display: flex; flex-wrap: wrap; gap: 0.4rem 2rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gray-200); font-size: 0.85rem; color: var(--gray-600); }
.news-dates strong { color: var(--ink); font-weight: 600; }
.news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 0.6rem; font-size: 0.78rem; color: var(--gray-600); }
.news-cat { font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-dark); }
.news-featured { margin-bottom: 2rem; padding: 2rem 2.2rem; border-left: 3px solid var(--gold); }
.news-featured h2 { margin: 0.2rem 0 0.8rem; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.2; }
.news-featured h2 a, .news-card h3 a { color: var(--ink); }
.news-featured h2 a:hover, .news-card h3 a:hover { color: var(--blue-700); }
.news-featured > p { max-width: 46rem; color: var(--gray-600); }
.news-big { margin: 1rem 0 1.25rem; font-family: var(--serif); font-size: 1.9rem; color: var(--ink); }
.news-search { display: flex; gap: 0.6rem; max-width: 40rem; margin-bottom: 1.25rem; }
.news-search input { flex: 1; }
.tabs .news-archive { width: auto; margin-left: auto; padding: 0.4rem 0.7rem; font-size: 0.82rem; border-radius: 999px; }
.news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.news-card { display: flex; flex-direction: column; padding: 1.5rem 1.6rem; }
.news-card h3 { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; line-height: 1.3; margin-bottom: 0.6rem; }
.news-sum { flex: 1; font-size: 0.92rem; color: var(--gray-600); }
.news-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.3rem 1rem; margin: 1rem 0 0.8rem; padding-top: 0.8rem; border-top: 1px solid var(--gray-200); font-size: 0.8rem; color: var(--gray-600); }
.news-foot strong { color: var(--ink); }
.news-top td:first-child { width: 2rem; color: var(--gray-600); }
.news-note { margin-top: 0.75rem; font-size: 0.8rem; }
.news-body { max-width: 44rem; margin-bottom: 1.5rem; font-size: 1.05rem; line-height: 1.7; }
.news-body p + p { margin-top: 0.9rem; }
.news-facts, .news-insight, .news-source { max-width: 44rem; margin-bottom: 1rem; }
.news-facts h3 { margin-bottom: 0.75rem; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; }
.news-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.9rem; }
.news-insight { border-left: 3px solid var(--gold); background: var(--gray-100); }
.news-insight .eyebrow { margin-bottom: 0.5rem; }
.news-source { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
dialog.modal:has(.news-preview), dialog.modal:has([name="summary_es"]) { max-width: 52rem; }
@media (max-width: 760px) { .news-grid { grid-template-columns: 1fr; } .news-featured { padding: 1.4rem 1.2rem; } .news-search { flex-direction: column; } .tabs .news-archive { margin-left: 0; } }
.news-search input { padding: 0.7rem 0.9rem; }

/* 21 claves para vender mejor: tarjetas numeradas, sin fotos; el resto se despliega con suavidad. */
.keys-head { max-width: 46rem; margin-bottom: 1.5rem; }
.keys-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.key-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.1rem; align-items: start; padding: 1.5rem 1.6rem; }
.key-num { font-family: var(--serif); font-size: 2.4rem; line-height: 1; color: var(--gold); opacity: 0.75; min-width: 2.9rem; }
.key-card h3 { margin-bottom: 0.55rem; font-size: 0.86rem; font-weight: 700; letter-spacing: 0.08em; line-height: 1.4; text-transform: uppercase; color: var(--ink); }
.key-card p { font-size: 0.93rem; line-height: 1.6; color: var(--gray-600); }
.key-card .key-note { margin-top: 0.7rem; padding-top: 0.7rem; border-top: 1px solid var(--gray-200); font-size: 0.85rem; font-style: italic; }
.keys-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.45s ease; }
.keys-more > div { overflow: hidden; min-height: 0; }
.keys-more.is-open { grid-template-rows: 1fr; }
.keys-more .keys-grid { margin-top: 1.25rem; }
.keys-final { margin-top: 2rem; padding: 2.2rem 2.4rem; border: 1px solid #f0e2c4; border-left: 3px solid var(--gold); border-radius: 12px; background: #fdf7ea; }
.keys-final .serif { max-width: 44rem; font-size: clamp(1.25rem, 2.6vw, 1.7rem); line-height: 1.3; color: var(--ink); }
.keys-final p + p { max-width: 44rem; margin: 1rem 0 1.5rem; color: var(--gray-600); }
.keys-toggle { justify-content: center; margin-top: 1.75rem; }
@media (max-width: 760px) { .keys-grid { grid-template-columns: 1fr; } .key-card { padding: 1.25rem 1.2rem; gap: 0.9rem; } .key-num { font-size: 1.9rem; min-width: 2.3rem; } .keys-final { padding: 1.5rem 1.3rem; } }
@media (prefers-reduced-motion: reduce) { .keys-more { transition: none; } }

/* Propietarios: tres accesos en la cabecera (dos claros y «Publicar mi activo» en azul). */
.owner-paths { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; margin-top: 0.5rem; }
.owner-path { display: flex; flex-direction: column; padding: 1.5rem 1.6rem 1.4rem; border: 1px solid var(--blue-900); border-radius: 12px; background: rgba(255,255,255,0.96); color: var(--ink); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.owner-path:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(15,39,68,0.12); }
.owner-path-ico { display: grid; place-items: center; width: 3.6rem; height: 3.6rem; margin-bottom: 1rem; border-radius: 50%; background: #f7efdf; color: var(--blue-900); }
.owner-path strong { font-size: 1.45rem; font-weight: 500; line-height: 1.2; margin-bottom: 0.6rem; max-width: 13rem; }
.owner-path > span:not(.owner-path-ico) { flex: 1; font-size: 0.98rem; line-height: 1.45; color: var(--gray-600); max-width: 17rem; }
.owner-path em { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 1.25rem; font-style: normal; font-weight: 600; color: var(--blue-900); }
.owner-path.is-primary { background: var(--blue-900); color: var(--white); }
.owner-path.is-primary .owner-path-ico { background: rgba(255,255,255,0.12); color: var(--white); }
.owner-path.is-primary > span:not(.owner-path-ico) { color: rgba(255,255,255,0.86); }
.owner-path.is-primary em { color: var(--white); }
@media (max-width: 900px) { .owner-paths { grid-template-columns: 1fr; } .owner-path strong, .owner-path > span:not(.owner-path-ico) { max-width: none; } }
.owner-path strong { color: inherit; }
.owner-path-ico .icon { width: 1.9rem; height: 1.9rem; }
.owner-paths { align-items: stretch; }

/* Propietarios: pasos con el texto plegado tras «+ info». */
.how-step-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.how-step.is-fold h3 { margin-bottom: 0; }
.how-step.is-fold p { margin-top: 0.75rem; }
.step-info { flex: none; padding: 0.3rem 0.7rem; border: 1px solid var(--gray-200); border-radius: 999px; background: var(--white); font: inherit; font-size: 0.8rem; font-weight: 600; color: var(--blue-900); cursor: pointer; }
.step-info:hover { border-color: var(--blue-900); }
#propietarios .opp-hero-inner { grid-template-columns: minmax(0, 1fr); }

/* Inicio: categorías sin recuadro (icono y texto). */
.cat-tiles { display: flex; flex-wrap: wrap; gap: 0.75rem 2.75rem; margin-bottom: 2.5rem; }
.cat-tile { padding: 0; background: none; border: none; border-radius: 0; gap: 0.85rem; }
.cat-tile:hover { box-shadow: none; }
.cat-tile:hover strong { color: var(--blue-700); }
.cat-tile > span:first-of-type { margin-right: 0.5rem; }

/* Propietarios · «Qué ve el público»: tres recuadros de la misma altura; las listas se abren con «+ info». */
.owner-public.is-fold { display: block; }
.owner-cards-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: stretch; }
.owner-cards-3 .owner-list header { margin-bottom: 0; }
.owner-cards-3 .owner-list header .step-info { margin-left: auto; align-self: center; }
.owner-cards-3 .owner-list [id] .how-checks { margin-top: 1.1rem; }
.owner-cards-3 .owner-photo { gap: 1rem; padding: 1.5rem 1.6rem; font-size: 0.92rem; }
@media (max-width: 900px) { .owner-cards-3 { grid-template-columns: 1fr; } }

/* Inicio (cabecera nueva): foto a todo el ancho, buscador en el centro, dos caminos y franja de confianza. */
.hero-v2 { overflow: hidden; }
.hero-v2 .hero-photo { inset: 0; }
.hero-v2 .hero-photo::after { background: linear-gradient(90deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.86) 30%, rgba(255,255,255,0.35) 55%, rgba(255,255,255,0) 72%); }
.hero-v2 .landing-inner { display: block; padding: 3.25rem 1.5rem 3rem; }
.hero-v2 .hero-copy { max-width: 40rem; }
.hero-v2 .hero-copy .eyebrow { letter-spacing: 0.18em; }
.hero-v2 .hero-copy h1 { margin: 0.6rem 0 1rem; }
.hero-v2 .hero-copy .lead { margin-bottom: 0; }
.hero-search { position: relative; max-width: 58rem; margin: 2rem auto 0; padding: 0.9rem 1rem 1rem; border-radius: 14px; background: rgba(255,255,255,0.97); box-shadow: 0 18px 50px rgba(15,39,68,0.16); }
.hero-search-tabs { display: flex; align-items: center; gap: 1.5rem; padding: 0.15rem 0.5rem 0.75rem; margin-bottom: 0.6rem; border-bottom: 1px solid var(--gray-200); font-size: 0.88rem; font-weight: 600; color: var(--gray-600); }
.hero-search-tabs > * { display: inline-flex; align-items: center; gap: 0.45rem; }
.hero-search-tabs .is-active { color: var(--blue-900); box-shadow: 0 0.82rem 0 -0.7rem var(--blue-900); }
.hero-search-tabs a { color: var(--gray-600); }
.hero-search-tabs a:hover { color: var(--blue-900); }
.hero-search-tabs .hero-search-adv { margin-left: auto; font-weight: 500; }
.hero-v2 .hero-search .search-bar { position: static; margin: 0; box-shadow: none; border: none; padding: 0; background: none; }
.hero-v2 .hero-paths { display: flex; flex-wrap: wrap; gap: 1.5rem 2.5rem; width: auto; margin-top: 2.25rem; }
.hero-v2 .hero-path p { margin-bottom: 0.6rem; }
.hero-go { display: inline-flex; align-items: center; gap: 0.75rem; padding: 0.95rem 1.4rem; border: 1px solid var(--blue-900); border-radius: 10px; background: rgba(255,255,255,0.92); color: var(--blue-900); font-size: 0.9rem; font-weight: 700; letter-spacing: 0.06em; transition: background 0.15s ease, transform 0.15s ease; }
.hero-go:hover { transform: translateY(-1px); background: var(--white); }
.hero-go.dark { background: var(--blue-900); color: var(--white); }
.hero-go.dark:hover { background: var(--blue-700); }
.hero-claim { position: absolute; right: 1.5rem; bottom: 2.75rem; margin: 0; font-size: 1.35rem; font-style: italic; line-height: 1.35; color: var(--white); text-shadow: 0 2px 14px rgba(0,0,0,0.35); }
.hero-trust { border-bottom: 1px solid var(--gray-200); background: var(--white); }
.hero-trust ul { list-style: none; max-width: calc(1200px + 3rem); margin: 0 auto; padding: 1.4rem 1.5rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.hero-trust li { display: flex; align-items: center; gap: 0.9rem; padding-right: 1rem; }
.hero-trust li + li { border-left: 1px solid var(--gray-200); padding-left: 1.5rem; }
.hero-trust-ico { display: grid; place-items: center; flex: none; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: #f7efdf; color: var(--gold-dark); }
.hero-trust strong { display: block; font-size: 0.9rem; color: var(--ink); }
.hero-trust small { font-size: 0.8rem; color: var(--gray-600); }
@media (max-width: 900px) {
  .hero-v2 .hero-photo::after { background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.8) 60%, rgba(255,255,255,0.6) 100%); }
  .hero-claim { display: none; }
  .hero-trust ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-trust li + li { border-left: none; padding-left: 0; }
}
@media (max-width: 560px) { .hero-trust ul { grid-template-columns: 1fr; } .hero-search-tabs .hero-search-adv { display: none; } }
.hero-v2 .hero-copy { max-width: 52rem; }
.hero-v2 .hero-copy h1 { font-size: clamp(2.1rem, 4.3vw, 3.35rem); }
.hero-search { max-width: 66rem; }
.hero-v2 .search-bar { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1.15fr) auto; }
.hero-v2 .search-field > span > span { white-space: nowrap; }
@media (max-width: 900px) { .hero-v2 .search-bar { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .hero-v2 .search-bar { grid-template-columns: 1fr; } .hero-v2 .hero-copy h1 br { display: none; } }
/* Inversores: una sola columna en la cabecera y el acceso grande del mismo tamaño que en Propietarios. */
#inversores .opp-hero-inner { grid-template-columns: minmax(0, 1fr); }
#inversores .owner-paths { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { #inversores .owner-paths { grid-template-columns: 1fr; } }
#inversores .owner-paths { margin-top: 1.75rem; }

/* Textos legales: página propia y casilla de aceptación en el alta. */
.legal-page { max-width: 58rem; }
.legal-page h2 { font-family: var(--serif); font-size: clamp(1.8rem, 3.5vw, 2.4rem); font-weight: 500; margin-bottom: 0.5rem; }
.legal-page h3 { margin: 1.75rem 0 0.6rem; font-size: 1.1rem; }
.legal-page p, .legal-page li { line-height: 1.65; }
.legal-page p + p { margin-top: 0.75rem; }
.legal-page ul { margin: 0.6rem 0 0.9rem 1.2rem; }
.legal-page table, .legal-text table { font-size: 0.86rem; }
.legal-page td, .legal-text td { vertical-align: top; }
.legal-accept { margin-top: 1.25rem; align-items: flex-start; }
.legal-accept .btn-link { padding: 0; font: inherit; }
.site-footer nav a { color: var(--blue-700); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Administración · Estadísticas */
.stat-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 1.5rem; }
.stat-chart { display: flex; align-items: flex-end; gap: 3px; height: 9rem; margin-top: 1rem; padding-bottom: 2px; border-bottom: 1px solid var(--gray-200); }
.stat-bar { flex: 1; min-width: 2px; max-width: 2.5rem; border-radius: 3px 3px 0 0; background: var(--blue-900); opacity: 0.85; }
.stat-bar:hover { opacity: 1; background: var(--gold-dark); }
.stat-axis { display: flex; justify-content: space-between; margin-top: 0.4rem; font-size: 0.78rem; }
.stat-split { gap: 2rem; align-items: start; }
.stat-split .table-wrap + .table-wrap { margin-top: 1rem; }
@media (max-width: 900px) { .stat-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Valoración orientativa de su hotel */
.hv-intro { max-width: 46rem; }
.hv-badges { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; margin: 1rem 0 1.5rem; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-dark); }
.hv-badges span + span::before { content: "·"; margin-right: 1.4rem; color: var(--gray-400); }
.hv-phases { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem 1.75rem; margin: 0 0 1.75rem; padding: 0; font-size: 0.92rem; color: var(--gray-600); }
.hv-phases li { display: inline-flex; align-items: center; gap: 0.55rem; }
.hv-phases b { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #f7efdf; color: var(--gold-dark); font-size: 0.82rem; }
.hv-phases.is-steps { margin-bottom: 0.9rem; }
.hv-phases .is-active { color: var(--ink); font-weight: 600; }
.hv-phases .is-active b { background: var(--blue-900); color: var(--white); }
.hv-phases .is-done b { background: var(--gold); color: var(--white); }
.hv-info { margin: -0.35rem 0 0.9rem; font-size: 0.88rem; }
.hv-info summary { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; font-weight: 600; color: var(--blue-700); list-style: none; }
.hv-info summary::-webkit-details-marker { display: none; }
.hv-info p { margin-top: 0.5rem; padding: 0.8rem 1rem; border-radius: 8px; background: var(--gray-100); color: var(--gray-600); line-height: 1.55; }
.hv-note { margin: -0.4rem 0 0.8rem; font-size: 0.83rem; font-style: italic; color: var(--gray-600); }
.hv-other { margin-top: 0.9rem; }
.hv-more { margin-bottom: 1rem; padding: 1rem 1.25rem; }
.hv-more summary { cursor: pointer; font-weight: 600; color: var(--ink); }
.hv-exit { font-size: 0.82rem; color: var(--gray-600); }
.hv-value { margin: 1rem 0 1.25rem; padding: 2rem 2.2rem; border-left: 3px solid var(--gold); }
.hv-big { margin: 0.3rem 0 0.5rem; font-family: var(--serif); font-size: clamp(2.4rem, 6vw, 3.8rem); line-height: 1.05; color: var(--ink); }
.hv-mid { margin: 0.2rem 0 0.5rem; font-family: var(--serif); font-size: 1.8rem; color: var(--ink); }
.hv-cards { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.hv-cards .stat small { display: block; margin-top: 0.3rem; font-size: 0.76rem; color: var(--gray-600); }
.hv-split { gap: 1.25rem; align-items: start; margin: 0.5rem 0 1.25rem; }
.hv-bridge h3, .hv-calc h3, .hv-traits h3, .hv-notes h3 { margin-bottom: 0.8rem; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; }
.hv-row { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid var(--gray-200); font-size: 0.95rem; }
.hv-row.minus span { color: var(--gray-600); }
.hv-row.total { border-bottom: none; border-top: 2px solid var(--ink); margin-top: 0.2rem; font-size: 1.05rem; }
.hv-row.total strong { color: var(--ink); }
.hv-bridge .hv-note, .hv-calc .hv-note { margin: 0.8rem 0 0; }
.hv-capex { margin-bottom: 1.25rem; border-left: 3px solid var(--gray-400); }
.hv-traits { margin-bottom: 1.25rem; }
.hv-notes { gap: 1.25rem; margin-bottom: 2rem; }
.hv-cta { padding: 2rem 2.2rem; border-radius: 12px; background: var(--blue-900); color: var(--white); }
.hv-cta h2 { color: var(--white); margin-bottom: 0.6rem; }
.hv-cta p { color: rgba(255,255,255,0.85); max-width: 44rem; }
.hv-cta .btn-ghost { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.6); }
.hv-cta .wiz-foot .btn-link { color: rgba(255,255,255,0.8); }
@media (max-width: 760px) { .hv-value, .hv-cta { padding: 1.4rem 1.2rem; } }
.hv-result { max-width: 60rem; }
.card.hv-value .hv-big { margin: 0.3rem 0 0.5rem; font-family: var(--serif); font-size: clamp(2.4rem, 6vw, 3.8rem); line-height: 1.05; color: var(--ink); }
.card.hv-capex .hv-mid { margin: 0.2rem 0 0.5rem; font-family: var(--serif); font-size: 1.8rem; color: var(--ink); }
.hv-result .hv-split { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
@media (max-width: 760px) { .hv-result .hv-split { grid-template-columns: 1fr; } }

/* Inicio: dos accesos grandes bajo el buscador, más separados de él. */
.hero-go2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4.5rem; max-width: 58rem; margin: 9rem auto 0; }
.hero-go2-card { display: flex; align-items: center; gap: 1.6rem; padding: 1.5rem 1.9rem; border-radius: 8px; background: rgba(255,255,255,0.94); color: var(--ink); box-shadow: 0 14px 40px rgba(15,39,68,0.18); transition: transform 0.15s ease, box-shadow 0.15s ease; }
.hero-go2-card:hover { transform: translateY(-2px); box-shadow: 0 18px 46px rgba(15,39,68,0.24); }
.hero-go2-card.dark { background: var(--blue-900); color: var(--white); }
.hero-go2-ico { flex: none; color: var(--gold); }
.hero-go2-ico .icon { width: 3rem; height: 3rem; stroke-width: 1.3; }
.hero-go2-text { flex: 1; display: grid; gap: 0.55rem; }
.hero-go2-text strong { font-size: 1.45rem; font-style: italic; font-weight: 400; line-height: 1.2; }
.hero-go2-text small { font-size: 0.85rem; opacity: 0.85; }
.hero-go2-arrow { flex: none; display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border: 1.5px solid var(--gold); border-radius: 50%; color: var(--gold); }
.hero-v2 .landing-inner { padding-bottom: 1.25rem; }
.hero-v2 .hero-claim { bottom: 11rem; }
@media (max-width: 900px) { .hero-go2 { grid-template-columns: 1fr; gap: 1rem; margin-top: 2rem; } .hero-go2-card { padding: 1.2rem 1.3rem; gap: 1rem; } }
.hero-go2-text strong { color: inherit; }
.hero-go2 { max-width: 64rem; gap: 3.5rem; }
.hero-go2-text small { white-space: nowrap; }
.hero-v2 .hero-claim { bottom: 10.9rem; font-size: 1.2rem; }
@media (max-width: 1100px) { .hero-go2-text small { white-space: normal; } }
/* La barra de marca va dentro del pie, a todo el ancho. */
.site-footer { padding: 0; }
.site-footer .footer-inner { padding: 1.25rem 1.5rem; }

/* Móvil: el texto de las cabeceras con foto se lee sobre un velo claro; el botón del asistente ocupa menos. */
@media (max-width: 760px) {
  .opp-hero { position: relative; }
  .opp-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.82) 55%, rgba(255,255,255,0.55) 100%); pointer-events: none; }
  .opp-hero > * { position: relative; }
  .chat-fab { padding: 0.8rem; }
  .chat-fab > span:not(.chat-unread) { display: none; }
  .hero-go2-card { box-shadow: 0 8px 22px rgba(15,39,68,0.16); }
}
@media (max-width: 640px) { .how-hero h1 br { display: none; } }

/* Newsletter (OKADEE WEEKLY): casilla del registro, interruptor del perfil y editor de administración */
.nl-accept { margin-top: 0.75rem; }
.nl-accept small { display: block; color: var(--gray-500, #6b7280); margin-top: 0.2rem; }
.switch-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 0.6rem; cursor: pointer; }
.switch-row small { display: block; color: var(--gray-600); font-size: 0.88rem; margin-top: 0.2rem; }
.nl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.nl-stats .card { display: grid; gap: 0.3rem; }
.nl-stats strong { font-size: 1.15rem; color: var(--blue-900); }
.nl-stats small { color: var(--gray-600); font-size: 0.82rem; }
.nl-subjects { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.nl-subjects .pill { cursor: pointer; border: 1px solid var(--gray-200); background: #fff; text-align: left; white-space: normal; text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 0.85rem; }
.nl-item { display: flex; gap: 1rem; justify-content: space-between; align-items: flex-start; padding: 1rem 0; border-top: 1px solid var(--gray-200); }
.nl-item.is-featured { border-left: 3px solid #b08a45; padding-left: 0.9rem; }
.nl-item h4 { margin: 0.3rem 0; font-size: 1rem; color: var(--blue-900); }
.nl-item p.muted { margin: 0 0 0.35rem; font-size: 0.9rem; }
.nl-item-text { min-width: 0; flex: 1; }
.nl-item-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; justify-content: flex-end; max-width: 16rem; }
dialog.modal.modal-wide { max-width: 46rem; }
dialog.modal.modal-wide .modal-body { max-height: 75vh; }
.nl-preview iframe { width: 100%; height: 65vh; border: 1px solid var(--gray-200); border-radius: 8px; background: #f4f1ea; }
@media (max-width: 720px) {
  .nl-stats { grid-template-columns: 1fr; }
  .nl-item { flex-direction: column; }
  .nl-item-actions { max-width: none; justify-content: flex-start; }
}

/* Quiénes somos: solo piezas nuevas; el resto reutiliza los componentes de Propietarios e Inversores */
.about-sub { max-width: 38rem; margin-bottom: 0.9rem; font-size: 1.12rem; line-height: 1.55; color: var(--ink); font-weight: 500; }
.about-hero .how-lead { max-width: 36rem; }
.about-quote { margin: 0; padding: 1.75rem 0 1.75rem 2.25rem; border-left: 2px solid var(--gold); }
.about-quote p.serif { font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.35; }
.about-asset { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 2.5rem; align-items: center; margin-top: 2.25rem; padding: 0 2.25rem; }
.about-asset h3.serif { font-size: clamp(1.25rem, 2vw, 1.55rem); }
.about-asset p { font-size: 0.95rem; line-height: 1.65; color: var(--gray-600); }
.about-dark { background: var(--blue-900); color: #fff; padding: 3.5rem 1.5rem; }
.about-dark .eyebrow { color: var(--gold); }
.about-dark h2.serif { color: #fff; max-width: 40rem; font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: 1rem; }
.about-dark-lead { max-width: 44rem; font-size: 1rem; line-height: 1.65; color: rgba(255,255,255,0.85); }
.about-areas, .about-pillars { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 2.25rem; }
.about-areas li { display: flex; align-items: center; gap: 0.9rem; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,0.18); font-size: 0.95rem; }
.about-area-ico { display: grid; place-items: center; flex: none; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: rgba(201,162,90,0.16); color: var(--gold); }
.about-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.about-side { padding: 2rem 2.25rem; border-radius: 14px; background: #f5f8fb; }
.about-side h3.serif { margin: 1rem 0 0.6rem; font-size: clamp(1.25rem, 2vw, 1.5rem); }
.about-side p { font-size: 0.95rem; line-height: 1.65; color: var(--ink); }
.about-split { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 3rem; align-items: center; margin-top: 3rem; }
.about-split:first-child { margin-top: 0; }
.about-lead + .about-lead { margin-top: 0.75rem; }
.about-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.5rem; }
.about-chips li { padding: 0.5rem 1rem; border: 1px solid var(--gray-200); border-radius: 999px; background: #fff; font-size: 0.88rem; color: var(--ink); }
.about-note { padding: 2rem; border-radius: 14px; border: 1px solid var(--gray-200); background: #fff; }
.about-note h3.serif { font-size: clamp(1.2rem, 1.9vw, 1.45rem); margin-bottom: 0.75rem; padding-bottom: 0.8rem; background: linear-gradient(var(--gold), var(--gold)) left bottom / 2rem 2px no-repeat; }
.about-note p { font-size: 0.93rem; line-height: 1.65; color: var(--ink); }
.about-note p.muted { margin-top: 0.8rem; color: var(--gray-600); }
.about-access { list-style: none; display: grid; gap: 1rem; margin: 1.5rem 0; }
.about-access li { display: flex; align-items: center; gap: 0.9rem; }
.about-access strong { display: block; font-size: 0.92rem; color: var(--ink); }
.about-access small { font-size: 0.82rem; color: var(--gray-600); }
.about-flow { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0; margin-top: 1.5rem; font-size: 0.85rem; color: var(--gray-600); }
.about-flow li { display: flex; align-items: center; }
.about-flow li + li::before { content: '→'; margin: 0 0.75rem; color: var(--gold); }
.about-flow li:first-child, .about-flow li:last-child { color: var(--ink); font-weight: 600; }
.about-pro { padding-top: 3rem; border-top: 1px solid var(--gray-200); }
.about-fine { margin-top: 1rem; font-size: 0.85rem; line-height: 1.6; color: var(--gray-600); max-width: 40rem; }
.about-markets.serif { margin-top: 1.25rem; font-size: clamp(1.15rem, 1.9vw, 1.4rem); }
.about-tech { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.about-h3 { margin: 1.75rem 0 0.5rem; font-size: 1.05rem; color: var(--ink); }
.about-tech-side { display: grid; gap: 1.75rem; padding: 2rem; border-radius: 14px; background: #f5f8fb; }
.about-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.about-pillars li { display: flex; align-items: center; gap: 0.8rem; font-size: 0.92rem; color: var(--ink); }
.about-pillars .about-area-ico { background: var(--cream); color: var(--ink); }
.about-tech-side .about-quote { padding: 0.25rem 0 0.25rem 1.5rem; }
.about-tech-side .about-quote p.serif { font-size: clamp(1.1rem, 1.8vw, 1.3rem); }
.about-philosophy { text-align: center; }
.about-philosophy .how-lead { margin: 0 auto; }
.about-big.serif { margin: 1.25rem 0 2.5rem; font-size: clamp(1.7rem, 3.6vw, 2.6rem); line-height: 1.3; }
.about-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; text-align: left; }
.about-values > div { padding: 1.75rem 2rem; border-radius: 14px; background: #fff; border: 1px solid var(--gray-200); }
.about-values h3.serif { font-size: 1.25rem; margin-bottom: 0.6rem; }
.about-values p { font-size: 0.93rem; line-height: 1.65; color: var(--ink); }
.about-cta { text-align: left; margin-top: 2.5rem; }
.about-cta .owner-cta-actions { justify-items: stretch; }
.about-sign { display: grid; justify-items: center; gap: 0.35rem; margin-top: 3rem; }
.about-sign img { height: 25px; width: auto; opacity: 0.9; }
.about-sign span { font-size: 0.7rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gray-600); }
.about-sign em.serif { margin-top: 0.4rem; font-style: italic; font-size: 1.05rem; color: var(--ink); }
@media (max-width: 1020px) {
  .about-areas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-split, .about-tech, .about-asset { grid-template-columns: 1fr; gap: 1.75rem; }
  .about-asset { padding: 0; }
}
@media (max-width: 720px) {
  .about-sides, .about-values { grid-template-columns: 1fr; }
  .about-areas li { flex-direction: column; align-items: flex-start; gap: 0.6rem; font-size: 0.9rem; }
  .about-pillars { grid-template-columns: 1fr; }
  .about-side, .about-note, .about-tech-side, .about-values > div { padding: 1.5rem 1.25rem; }
  .about-quote { padding: 1rem 0 1rem 1.25rem; }
  .about-dark { padding: 2.75rem 1.5rem; }
  .about-flow { flex-direction: column; align-items: flex-start; }
  .about-flow li + li::before { content: '↓'; margin: 0 0.6rem 0 0; }
  .about-sub { font-size: 1.02rem; }
}

/* Valoración: «Modificar» el GOP y el cap rate desde el resultado */
.hv-mod-card { position: relative; }
.hv-mod { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.5rem; padding: 0; font-size: 0.82rem; font-weight: 600; color: var(--blue-500); }
.hv-mod .icon { color: var(--gold); }
.hv-restore { margin: -0.25rem 0 1rem; font-size: 0.88rem; }

/* Operaciones comparables (Administración y resultado de la valoración) */
.cmp-stats { margin-bottom: 1.25rem; }
.cmp-actions { margin: 0 0 1.25rem; }
.cmp-filters { margin-bottom: 1.25rem; }
.cmp-filter-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cmp-range { display: flex; align-items: center; gap: 0.4rem; }
.cmp-range input { min-width: 0; }
.cmp-range span { font-size: 0.82rem; color: var(--gray-600); }
.cmp-table td small, .hv-comps td small { display: block; font-size: 0.75rem; color: var(--gray-600); }
.cmp-row-actions { white-space: nowrap; }
.cmp-sheet { grid-template-columns: 1fr; }
.cmp-lead { margin-bottom: 0.75rem; }
.cmp-cols { font-size: 0.82rem; margin-bottom: 1rem; }
.cmp-preview { margin-bottom: 5rem; }
.cmp-preview table { font-size: 0.82rem; }
.cmp-preview td { vertical-align: top; padding: 0.4rem; }
.cmp-preview input, .cmp-preview select, .cmp-preview textarea { min-width: 7rem; padding: 0.35rem 0.45rem; font-size: 0.82rem; }
.cmp-preview td[data-k="hotel_name"] input, .cmp-preview td[data-k="notes"] textarea { min-width: 13rem; }
.cmp-preview td[data-k="rooms"] input { min-width: 4.5rem; width: 4.5rem; }
.cmp-preview .cmp-review { border-color: var(--gold); background: #fdf6e7; }
.cmp-preview td .pill { display: inline-block; margin-top: 0.25rem; }
.cmp-preview tr.is-dup td { background: #fffaf0; }
.cmp-act { min-width: 11rem; }
.cmp-dup { display: block; margin-top: 0.35rem; font-size: 0.75rem; color: #8a5a12; line-height: 1.35; }
.cmp-bar { position: sticky; bottom: 0; display: flex; gap: 0.75rem; flex-wrap: wrap; padding: 0.9rem 0; background: linear-gradient(rgba(247,250,252,0), var(--gray-100) 30%); }
.cmp-wait { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.spinner { width: 1.6rem; height: 1.6rem; flex: none; border: 3px solid var(--gray-200); border-top-color: var(--gold); border-radius: 50%; animation: spin 0.9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.hv-comps, .hv-methods { margin-top: 1.25rem; }
.hv-rel { margin: 0.6rem 0 1rem; font-size: 0.9rem; }
.hv-comp-stats { margin-top: 1rem; max-width: 34rem; }
.hv-row small { display: block; font-size: 0.78rem; color: var(--gray-600); font-weight: 400; }
.hv-range { margin-top: 0.6rem; font-size: 0.95rem; color: var(--ink); }
@media (max-width: 1020px) { .cmp-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .cmp-filter-grid { grid-template-columns: 1fr; } }
.cmp-table td .btn-link { text-align: left; }
.cmp-row-actions .btn + .btn { margin-left: 0.4rem; }
.cmp-bar { background: var(--gray-100); border-top: 1px solid var(--gray-200); }

/* CAP Rates (Administración y resultado de la valoración) */
.cap-inverse { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 1rem; font-size: 0.88rem; color: var(--gray-600); }
.cap-inverse .icon { color: var(--gold); flex: none; }
.cap-table th.cap-central, .cap-table td.cap-central, .modal-body th.cap-central, .modal-body td.cap-central { background: #fbf4e6; }
.cap-table td.cap-central strong { font-size: 1rem; color: var(--blue-900); }
.cap-table td small { display: block; margin-top: 0.3rem; }
.cap-counts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 0.9rem; }
.cap-preview td[data-k="market"] input { min-width: 10rem; }
.cap-preview td[data-k^="cap_"] input { min-width: 4.5rem; width: 5rem; }
.cap-preview th.cap-central, .cap-preview td[data-k="cap_central"] { background: #fbf4e6; }
.cap-preview .cap-flag input, .cap-preview .cap-flag select { border-color: var(--gold); background: #fdf6e7; }
.cap-preview tr.cap-review td { background: #fffaf0; }
.cap-act { min-width: 13rem; }
.cap-act .pill { margin-bottom: 0.35rem; }
.cap-act small { display: block; margin-top: 0.3rem; font-size: 0.75rem; color: var(--gray-600); }
.hv-capref { margin-top: 1.25rem; }
.hv-capref-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 1.5rem; align-items: start; margin: 0.75rem 0 1rem; }
.card.hv-capref .hv-mid { margin: 0.2rem 0 0.4rem; font-family: var(--serif); font-size: 2.2rem; color: var(--blue-900); }
.hv-capref .hv-row { margin: 0; }
.hv-capref .cap-inverse { margin: 0.75rem 0 0; }
@media (max-width: 720px) { .hv-capref-main { grid-template-columns: 1fr; } }
.cmp-stats .stat small { display: block; font-size: 0.78rem; color: var(--gray-600); }

/* Valoración: barra de acciones del resultado (nueva valoración, enviar por email) */
.hv-bar { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0 0 1.5rem; }
.hv-bar .btn:first-child .icon { transform: rotate(180deg); }
.hv-cta + .hv-bar { margin: 1.5rem 0 0; justify-content: center; }
@media (max-width: 520px) { .hv-bar .btn { flex: 1 1 100%; justify-content: center; } }

/* Valoración: pestañas junto al título (Valoración · Valoración 2) */
.hv-titlebar { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.hv-titlebar .eyebrow { margin: 0; }
.hv-tabs { display: inline-flex; gap: 0.25rem; padding: 0.25rem; border: 1px solid var(--gray-200); border-radius: 999px; background: #fff; }
.hv-tabs a { padding: 0.4rem 0.95rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600; color: var(--gray-600); text-decoration: none; }
.hv-tabs a:hover { color: var(--blue-900); }
.hv-tabs a.is-active { background: var(--blue-900); color: #fff; }
/* Valoración 2: PyG, ejercicios y ajustes */
.hv2-files { list-style: none; display: grid; gap: 0.5rem; margin: 0.75rem 0; }
.hv2-files li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; padding: 0.6rem 0.8rem; border: 1px solid var(--gray-200); border-radius: 8px; background: #fff; font-size: 0.9rem; }
.hv2-files li > span:first-child { display: inline-flex; align-items: center; gap: 0.4rem; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.hv2-files small { flex-basis: 100%; color: #9b2c2c; }
.hv2-st { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.82rem; color: var(--gray-600); }
.hv2-st.ready { color: #276749; }
.hv2-st.error { color: #9b2c2c; }
.spinner.sm { width: 0.95rem; height: 0.95rem; border-width: 2px; }
.hv2-review td { vertical-align: top; }
.hv2-review input { min-width: 8.5rem; }
.hv2-review .pill, .hv2-src { display: inline-block; margin: 0.25rem 0.25rem 0 0; font-size: 0.66rem; }
.hv2-calc td { color: var(--gray-600); font-size: 0.88rem; }
.hv2-year { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hv2-year .field label .pill { margin: 0 0 0 0.35rem; vertical-align: middle; }
.hv2-checks { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: center; margin-top: 0.75rem; }
.hv2-checks .check { grid-column: auto; }
.hv2-adj { padding: 0.9rem 0; border-bottom: 1px solid var(--gray-200); }
.hv2-analysis h4 { margin: 1rem 0 0.4rem; font-size: 0.9rem; }
.hv2-analysis td small { display: block; font-size: 0.75rem; color: var(--gray-600); }
@media (max-width: 720px) { .hv2-year { grid-template-columns: 1fr 1fr; } }
@media (max-width: 420px) { .hv2-year { grid-template-columns: 1fr; } }

/* Valoración: botón (i) junto a GOP, NOI y CAP Rate en las casillas del resultado */
.hv-term { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; margin: -0.2rem 0 -0.2rem 0.35rem; padding: 0; border: none; border-radius: 50%; background: none; color: var(--gold); cursor: pointer; vertical-align: middle; }
.hv-term:hover, .hv-term:focus-visible { background: #f7efdf; color: var(--blue-900); outline: none; }

/* ¿Vender el activo o la sociedad? (guía para propietarios e inversores) */
.owner-guide { grid-column: 1 / -1; margin-top: 0.4rem; }
.owner-guide .text-link { display: inline-flex; align-items: center; gap: 0.45rem; font-weight: 600; }
.keys-guide { margin: -0.5rem 0 1.5rem; font-size: 0.95rem; color: var(--gray-600); }
.aos-sub { max-width: 40rem; margin-bottom: 0.9rem; font-size: 1.1rem; line-height: 1.55; color: var(--ink); font-weight: 500; }
.aos-hero .how-lead { max-width: 38rem; }
.aos-chips { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.5rem; }
.aos-chips > span { display: inline-flex; align-items: center; gap: 0.9rem; min-width: 15rem; padding: 0.9rem 1.3rem; border: 1px solid var(--gray-200); border-radius: 12px; background: #fff; box-shadow: 0 2px 10px rgba(15,39,68,0.05); color: var(--blue-900); }
.aos-chips b { display: grid; font-weight: 600; font-size: 0.98rem; }
.aos-chips small { font-weight: 400; font-size: 0.8rem; color: var(--gray-600); }
.aos { padding-top: 3.5rem; }
.aos-part { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1.75rem; }
.aos-part-ico { display: grid; place-items: center; flex: none; width: 4rem; height: 4rem; border-radius: 50%; background: var(--cream); color: var(--ink); }
.aos-part h2.serif { margin: 0; font-size: clamp(1.4rem, 2.6vw, 1.9rem); text-transform: uppercase; letter-spacing: 0.02em; font-weight: 400; }
.aos-part h2 strong { font-weight: 600; }
.aos-part p { margin-top: 0.25rem; font-size: 1.02rem; color: var(--ink); }
.aos-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.aos-card { padding: 1.5rem 1.75rem 1.6rem; border-radius: 14px; border: 1px solid; box-shadow: 0 2px 12px rgba(15,39,68,0.04); }
.aos-card.is-pro { background: #f3f8f3; border-color: #d4e6d5; }
.aos-card.is-con { background: #fcf4f3; border-color: #f0d9d6; }
.aos-card header { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.aos-ico { display: grid; place-items: center; flex: none; width: 3rem; height: 3rem; border-radius: 50%; background: #fff; color: var(--ink); }
.aos-card h4 { display: grid; margin: 0; font-family: var(--serif); font-weight: 500; font-size: 1.12rem; color: var(--blue-900); }
.aos-card h4 em { font-style: normal; font-size: 1.05rem; }
.aos-card.is-pro h4 em { color: #2f6b3a; }
.aos-card.is-con h4 em { color: #a33a2f; }
.aos-list { list-style: none; display: grid; gap: 0.8rem; margin: 0; padding: 0; }
.aos-list li { display: flex; gap: 0.8rem; align-items: flex-start; font-size: 0.95rem; line-height: 1.55; color: var(--ink); }
.aos-ok { display: grid; place-items: center; flex: none; width: 1.4rem; height: 1.4rem; margin-top: 0.1rem; color: #2f7d3d; }
.aos-ko { display: grid; place-items: center; flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; border-radius: 50%; background: #c0392b; color: #fff; font-size: 0.78rem; font-weight: 700; }
.aos-sep { border: none; border-top: 1px solid var(--gray-200); margin: 3.5rem 0 3rem; }
.aos-key { display: flex; gap: 1.5rem; margin: 1rem 0 2.5rem; padding: 1.75rem 2rem; border: 1px solid #e6d3ad; border-radius: 14px; background: #fdf9f1; }
.aos-key-ico { display: grid; place-items: center; flex: none; width: 4rem; height: 4rem; border-radius: 50%; background: #f3e4c6; color: var(--ink); }
.aos-key h3.serif { font-size: 1.35rem; margin-bottom: 1rem; }
.aos-key-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding: 1.25rem 1.5rem; border-radius: 10px; background: #fff; }
.aos-key-cols > div + div { border-left: 1px solid var(--gray-200); padding-left: 1.5rem; }
.aos-key-cols h4 { margin: 0 0 0.4rem; font-family: var(--serif); font-weight: 500; color: #8a5a12; }
.aos-key-cols p { font-size: 0.92rem; line-height: 1.55; margin-top: 0.35rem; }
.aos-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; align-items: start; }
.aos-h3 { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 1rem; font-family: var(--serif); font-weight: 500; font-size: 1.25rem; color: var(--blue-900); }
.aos-acc { border: 1px solid var(--gray-200); border-radius: 10px; background: #fff; margin-bottom: 0.6rem; }
.aos-acc summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.85rem 1.1rem; cursor: pointer; list-style: none; font-size: 0.95rem; font-weight: 500; color: var(--ink); }
.aos-acc summary::-webkit-details-marker { display: none; }
.aos-acc summary span { font-size: 1.2rem; color: var(--gold); transition: transform 0.2s; }
.aos-acc[open] summary span { transform: rotate(45deg); }
.aos-acc > div { padding: 0 1.1rem 1rem; }
.aos-acc p { font-size: 0.92rem; line-height: 1.6; color: var(--gray-600); margin-top: 0.5rem; }
.aos-dots { margin: 0.5rem 0 0 1.2rem; font-size: 0.92rem; line-height: 1.7; color: var(--gray-600); }
.aos-final { display: flex; gap: 1.25rem; padding: 1.75rem; border-radius: 14px; background: #eef3f9; border: 1px solid #dbe5f1; }
.aos-final .aos-key-ico { background: #fff; width: 3.5rem; height: 3.5rem; }
.aos-final h3.serif { font-size: 1.25rem; margin-bottom: 0.75rem; }
.aos-final p { font-size: 0.93rem; line-height: 1.6; color: var(--ink); }
.aos-final-note { margin-top: 1rem; padding: 0.9rem 1.1rem; border-radius: 10px; background: #fff; border: 1px solid #dbe5f1; }
.aos-disclaimer { display: flex; gap: 0.5rem; align-items: flex-start; margin-top: 2.5rem; font-size: 0.8rem; line-height: 1.5; color: var(--gray-600); }
.aos-disclaimer .icon { flex: none; margin-top: 0.1rem; color: var(--blue-500); }
@media (max-width: 860px) {
  .aos-pair, .aos-bottom, .aos-key-cols { grid-template-columns: 1fr; }
  .aos-pair { gap: 1.25rem; }
  .aos-key-cols > div + div { border-left: none; padding-left: 0; border-top: 1px solid var(--gray-200); padding-top: 1.25rem; }
}
@media (max-width: 560px) {
  .aos-card { padding: 1.25rem; }
  .aos-key, .aos-final { flex-direction: column; padding: 1.4rem; }
  .aos-part { align-items: flex-start; }
  .aos-part-ico { width: 3.2rem; height: 3.2rem; }
  .aos-chips > span { min-width: 0; flex: 1 1 100%; }
}

/* Inicio: jerarquía en las tarjetas «Quiero comprar / vender» (el complemento «o alquilar», más discreto) */
.hero-go2-text strong span { display: block; margin-top: 0.15rem; font-size: 0.68em; opacity: 0.75; }
/* Inversores: niveles de verificación */
.verif { margin-top: 3.5rem; }
.verif-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 1.5rem 0 1rem; }
.verif-level { padding: 1.5rem 1.6rem; border: 1px solid var(--gray-200); border-radius: 14px; background: #fff; }
.verif-level.is-top { border-color: #e6d3ad; background: #fdf9f1; }
.verif-level h3.serif { margin: 0.9rem 0 0.7rem; font-size: 1.3rem; }
.verif-level ul { list-style: none; display: grid; gap: 0.6rem; margin: 0; padding: 0; }
.verif-level li { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.93rem; line-height: 1.5; color: var(--ink); }
.verif-level li .icon { flex: none; margin-top: 0.15rem; color: var(--gold); }
@media (max-width: 860px) { .verif-levels { grid-template-columns: 1fr; } }
.hero-trust-link { display: flex; align-items: center; gap: 0.9rem; color: inherit; text-decoration: none; }
.hero-trust-link:hover small { text-decoration: underline; }

/* Inicio: accesos separados a hoteles en venta y en alquiler (el de alquiler solo si hay alguno) */
.hero-ops { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; margin-top: 1rem; font-size: 0.9rem; color: var(--ink); }
.hero-ops a { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.4rem 0.9rem; border-radius: 999px; background: rgba(255,255,255,0.92); color: var(--blue-900); font-weight: 600; text-decoration: none; box-shadow: 0 4px 14px rgba(15,39,68,0.12); }
.hero-ops a:hover { background: #fff; }
.hero-ops b { padding: 0.05rem 0.5rem; border-radius: 999px; background: var(--cream); font-size: 0.8rem; }

/* NDA y Anexos: documento contractual moderno (firma, acuse, expediente) */
.nda-doc { max-width: 820px; margin: 0 auto; padding: 2.25rem 2.5rem; border: 1px solid var(--gray-200); border-radius: 14px; background: #fff; box-shadow: 0 2px 16px rgba(15,39,68,0.05); }
.nda-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-bottom: 1.25rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--gray-200); }
.nda-head img { height: 25px; width: auto; }
.nda-head h1.serif { margin: 0; font-size: clamp(1.35rem, 2.6vw, 1.75rem); text-align: right; }
.nda-head p { margin: 0.2rem 0 0; text-align: right; font-size: 0.85rem; font-weight: 600; color: #8a5a12; }
.nda-asset, .nda-reveal { padding: 1.1rem 1.4rem; border: 1px solid #e6d3ad; border-radius: 10px; background: #fbf8f1; margin-bottom: 1.5rem; }
.nda-asset h2, .nda-reveal h2, .nda-reveal h3 { margin: 0 0 0.7rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #8a5a12; }
.nda-asset dl, .nda-reveal dl, .nda-file-head dl, .nda-sum, .nda-inline, .nda-evid { display: grid; grid-template-columns: minmax(8rem, max-content) 1fr; gap: 0.35rem 1rem; margin: 0; font-size: 0.93rem; }
.nda-asset dt, .nda-reveal dt, .nda-file-head dt, .nda-sum dt, .nda-inline dt, .nda-evid dt { font-weight: 600; color: var(--blue-900); }
.nda-asset dd, .nda-reveal dd, .nda-file-head dd, .nda-sum dd, .nda-inline dd, .nda-evid dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.nda-h { margin: 1.75rem 0 0.8rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #8a5a12; }
.nda-party { margin-bottom: 1.25rem; }
.nda-party h3 { margin: 0 0 0.5rem; font-size: 0.95rem; color: var(--blue-900); }
.nda-party p { margin: 0.2rem 0; font-size: 0.94rem; line-height: 1.55; }
.nda-who { margin: 0.4rem 0 1rem; }
.nda-note { font-size: 0.82rem; margin-top: 0.6rem; }
.nda-clauses section { margin-bottom: 1rem; }
.nda-clauses h3 { margin: 0 0 0.3rem; font-size: 0.95rem; color: var(--blue-900); }
.nda-clauses p { margin: 0; font-size: 0.92rem; line-height: 1.65; text-align: justify; color: var(--ink); }
.nda-sign { margin-top: 2rem; padding-top: 0.5rem; border-top: 1px solid var(--gray-200); }
.nda-sum { margin-bottom: 1.25rem; }
.nda-check { margin: 0.8rem 0; padding: 0.9rem 1rem; border: 1px solid var(--gray-200); border-radius: 10px; background: #fafbfc; font-size: 0.92rem; line-height: 1.5; color: var(--ink); }
.nda-check input { width: 1.15rem; height: 1.15rem; flex: none; margin-top: 0.15rem; }
.nda-pad-wrap { margin: 1.25rem 0 0.5rem; }
.nda-pad { display: block; width: 100%; height: 190px; border: 1.5px dashed #c9b48a; border-radius: 10px; background: #fff; touch-action: none; cursor: crosshair; }
.nda-pad-wrap .btn-link { margin-top: 0.4rem; }
.nda-msg h1.serif { font-size: clamp(1.4rem, 2.8vw, 1.9rem); margin: 0.3rem 0 1rem; }
.nda-revealed .nda-reveal { background: #f3f8f3; border-color: #cfe3d1; }
.ok-notice { border-color: #cfe3d1; background: #f3f8f3; }
.nda-reveal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.nda-file-head { margin-bottom: 1.25rem; }
.nda-docs { list-style: none; display: grid; gap: 0.75rem; margin: 0 0 1rem; padding: 0; }
.nda-docrow { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1rem 1.2rem; border: 1px solid var(--gray-200); border-radius: 10px; background: #fff; }
.nda-docrow > span:first-child { display: flex; align-items: center; gap: 0.8rem; }
.nda-docrow b { display: grid; font-weight: 600; color: var(--blue-900); }
.nda-docrow small { font-weight: 400; color: var(--gray-600); font-size: 0.82rem; }
.nda-docrow .btn + .btn { margin-left: 0.4rem; }
.nda-listing { margin-top: 1.5rem; }
.nda-listing h3 { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.nda-inline { margin: 0.9rem 0; }
.nda-stline { display: grid; grid-template-columns: 8rem 1fr auto; gap: 0.75rem; align-items: baseline; padding: 0.55rem 0; border-bottom: 1px solid var(--gray-200); font-size: 0.92rem; }
.nda-stline small { color: var(--gray-600); }
.nda-actions { margin: 1.25rem 0; }
.nda-counters .stat { text-decoration: none; color: inherit; }
.nda-counters .stat:hover { border-color: var(--gold); }
.nda-deal { margin: 1.25rem 0; }
.nda-alerts { list-style: none; display: grid; gap: 0.5rem; margin: 0.75rem 0 0; padding: 0; font-size: 0.9rem; }
.nda-alerts li.is-error strong { color: #9b2c2c; }
.nda-alerts time { color: var(--gray-600); }
.nda-fields { display: grid; gap: 0.4rem; margin: 0.75rem 0; }
.nda-field { margin: 0; }
.nda-field small { display: block; color: var(--gray-600); font-size: 0.8rem; overflow-wrap: anywhere; }
.nda-evid { margin-bottom: 1rem; font-size: 0.85rem; }
@media (max-width: 640px) {
  .nda-doc { padding: 1.4rem 1.1rem; border-radius: 10px; }
  .nda-head h1.serif, .nda-head p { text-align: left; }
  .nda-asset dl, .nda-reveal dl, .nda-file-head dl, .nda-sum, .nda-inline, .nda-evid { grid-template-columns: 1fr; gap: 0.1rem; }
  .nda-asset dd, .nda-reveal dd, .nda-file-head dd, .nda-sum dd, .nda-inline dd, .nda-evid dd { margin-bottom: 0.45rem; }
  .nda-pad { height: 220px; }
  .nda-reveal-grid { grid-template-columns: 1fr; }
  .nda-stline { grid-template-columns: 1fr; gap: 0.1rem; }
}

/* Alta de cliente (formulario nuevo) y constancia de aceptaciones */
.reg-form .form-grid { row-gap: 1.1rem; }
.reg-hint { grid-column: 1 / -1; margin: -0.6rem 0 0; font-size: 0.82rem; color: var(--gray-600); }
.reg-checks { display: grid; gap: 0.75rem; margin: 1.25rem 0 0.5rem; }
.reg-checks .check { align-items: flex-start; font-size: 0.93rem; color: var(--ink); }
.reg-checks .check input { width: 1.15rem; height: 1.15rem; flex: none; margin-top: 0.12rem; }
.reg-ext { display: inline-flex; vertical-align: -2px; margin-left: 0.25rem; color: var(--gray-600); }
.reg-actions .btn-primary { width: 100%; justify-content: center; }
.reg-actions { flex-direction: column; align-items: stretch; gap: 0.9rem; text-align: center; }
.legal-proof ul { list-style: none; display: grid; gap: 0.7rem; margin: 0.75rem 0 0; padding: 0; }
.legal-proof li { display: flex; gap: 0.6rem; align-items: flex-start; }
.legal-proof li .icon { flex: none; margin-top: 0.15rem; color: #2f7d3d; }
.legal-proof small { display: block; color: var(--gray-600); font-size: 0.82rem; }

/* Final de la valoración: invitación a publicar una ficha ciega */
.sell-blind { margin: 1.5rem 0 1.25rem; border-left: 4px solid var(--gold); }
.sell-blind h2 { margin: 0 0 0.5rem; font-size: 1.5rem; }
.sell-blind .form-actions { margin: 1rem 0 0.75rem; }
.sell-blind .muted { display: flex; gap: 0.4rem; align-items: flex-start; margin: 0; font-size: 0.9rem; }
.sell-blind .muted svg { flex: none; margin-top: 0.2rem; }

/* Alta: pantalla inicial con ejemplo de ficha ciega */
.wiz-intro p { font-size: 1.02rem; line-height: 1.65; }
.wiz-intro-sub { margin: 1.75rem 0 1rem; font-size: 1.35rem; }
.wiz-sample { max-width: 360px; pointer-events: none; user-select: none; }
.wiz-sample-note { font-size: 0.85rem; margin-top: 0.6rem; }
