/* Del Norte: fotografía, proporción y una paleta mineral cálida. */
:root { --canvas:#faf8f4; --paper:#faf8f4; --white:#fffdf9; --stone:#f1e9dd; --ink:#24211e; --muted:rgb(36 33 30 / 76%); --subtle:var(--muted); --line:rgb(36 33 30 / 14%); --accent:#e30613; --accent-dark:#bd101b; --accent-text:#c31420; --accent-wash:#f7e4df; --surface-warm:#e7d8c4; --radius-control:2px; --radius-surface:var(--radius-control); --font:'Plus Jakarta Sans',sans-serif; --display-font:var(--font); --button-height:58px; --button-padding:16px 22px; --button-weight:600; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:112px; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:var(--font); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
::selection { background:#dfd6c6; color:var(--ink); }
button, input, select, textarea { font:inherit; }
button, a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; padding:0; border:0; background:transparent; color:inherit; transition:color .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
a { color:inherit; text-decoration:none; transition:color .22s ease,border-color .22s ease,background-color .22s ease,box-shadow .22s ease,transform .22s ease; }
img { display:block; max-width:100%; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
h1,h2,h3,p,figure { margin:0; }
.material-symbols-outlined { font-family:'Material Symbols Outlined'; font-weight:400; font-style:normal; font-size:22px; line-height:1; display:inline-block; white-space:nowrap; direction:ltr; -webkit-font-smoothing:antialiased; }
.site-container { width:calc(100% - 128px); max-width:1280px; margin-inline:auto; }
.eyebrow { display:block; font-size:12px; line-height:1.5; letter-spacing:.07em; font-weight:600; color:var(--muted); text-transform:uppercase; }
.brand-dot { display:inline-block; width:6px; height:6px; background:var(--accent); border-radius:var(--radius-control); flex:none; }
.button-primary { display:inline-flex; gap:22px; align-items:center; justify-content:space-between; padding:var(--button-padding); min-height:var(--button-height); background:var(--accent); color:var(--paper); border:1px solid var(--accent-dark); border-radius:var(--radius-control); font-size:14px; font-weight:var(--button-weight); box-shadow:0 6px 16px rgb(145 14 23 / 12%), inset 0 1px 0 rgb(255 255 255 / 12%); transition:background .22s,box-shadow .22s,transform .22s; }
.button-primary:hover { background:var(--accent-dark); box-shadow:0 8px 20px rgb(145 14 23 / 16%); transform:translateY(-1px); }
.button-primary .material-symbols-outlined { font-size:21px; }
.text-link { color:var(--ink); display:inline-flex; align-items:center; gap:14px; font-size:14px; font-weight:500; padding-bottom:5px; border-bottom:1px solid var(--line); }
.text-link:hover { border-color:var(--accent); color:var(--accent); }
.text-link .material-symbols-outlined { font-size:18px; transition:transform .22s ease; }
.text-link:hover .material-symbols-outlined { transform:translate(2px,-1px); }
.skip-link { position:fixed; z-index:100; left:20px; top:-80px; padding:15px; background:var(--paper); }
.skip-link:focus { top:12px; }
/* La marca original se conserva; el emblema se encuadra con CSS. */
.site-header { position:sticky; top:0; z-index:50; background:var(--canvas); border-bottom:1px solid var(--line); transition:background-color .25s,box-shadow .25s; }
.site-header.is-scrolled { background:var(--canvas); backdrop-filter:none; box-shadow:0 8px 24px rgb(48 46 42 / 8%); }
.header-inner { height:104px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:inline-flex; align-items:center; gap:13px; flex:none; }
.main-navigation { display:flex; align-items:center; gap:34px; }
.main-navigation a { position:relative; font-size:22px; color:var(--muted); padding:8px 0; transition:color .22s ease; }
.main-navigation a::after { content:""; position:absolute; left:0; right:0; bottom:3px; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }
.main-navigation a:hover { color:var(--ink); }
.main-navigation a:hover::after, .main-navigation a:focus-visible::after { transform:scaleX(1); }
.menu-toggle { display:none; }
.header-contact { display:inline-flex; align-items:center; justify-content:center; gap:12px; flex:none; min-height:44px; padding:10px 16px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-control); font-size:14px; font-weight:500; }
.header-contact:hover { border-color:var(--ink); }
@media (min-width:1024px) {
  .header-menu-group { position:absolute; top:50%; left:calc(44vw - max(64px, calc(50vw - 640px))); display:flex; align-items:center; gap:16px; transform:translateY(-50%); }
  .site-header .main-navigation { position:static; top:auto; left:auto; transform:none; margin-left:0; gap:20px; white-space:nowrap; }
}
@media (min-width:1200px) and (max-width:1399px) {
  .site-header .main-navigation { gap:12px; }
  .site-header .main-navigation > a, .site-header .nav-dropdown > summary { font-size:18px; }
}
@media (min-width:1024px) and (max-width:1199px) {
  .header-menu-group { gap:10px; }
  .site-header .main-navigation { gap:6px; }
  .site-header .main-navigation > a, .site-header .nav-dropdown > summary { font-size:16px; }
  .header-contact { padding-inline:10px; font-size:12px; gap:8px; }
}
@media (max-width:1023px) { .header-contact { display:none; } .header-menu-group { display:contents; } }
/* La portada compone texto, imagen y ficha de una propiedad real como una sola escena. */
.hero-section { padding:0; background:var(--stone); }
.hero-layout { width:100%; max-width:none; display:grid; grid-template-columns:minmax(0,44%) minmax(0,56%); gap:0; align-items:stretch; min-height:clamp(600px,42vw,740px); border:0; padding:0; }
.hero-copy { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; padding:32px 48px 64px clamp(64px,7vw,136px); background:var(--stone); }
.hero-copy > .eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:36px; }
.hero-copy h1 { max-width:100%; font-size:clamp(54px,5vw,76px); line-height:1.06; font-weight:600; letter-spacing:-.065em; }
.hero-copy h1::after { content:none; }
.hero-copy h1 span { display:inline-block; color:var(--ink); font-family:var(--display-font); font-size:1.04em; line-height:1.05; font-style:italic; font-weight:500; letter-spacing:-.055em; }
.hero-description { max-width:430px; font-size:17px; line-height:1.8; color:#5b554d; margin-top:32px; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:34px; }
.hero-figure { position:relative; min-width:0; min-height:clamp(600px,42vw,740px); margin:0; overflow:hidden; }
.hero-image { position:absolute; inset:0; overflow:hidden; background:var(--stone); }
.hero-image > img { width:100%; height:100%; object-fit:cover; object-position:60% 56%; filter:saturate(.98) contrast(1.06); transition:transform .3s cubic-bezier(.2,.7,.2,1),filter .3s ease; }
.hero-figure::after { content:""; position:absolute; z-index:1; inset:0; pointer-events:none; background:linear-gradient(90deg,rgb(24 22 20 / 16%) 0%,transparent 22%),linear-gradient(180deg,rgb(24 22 20 / 4%) 0%,transparent 38%,rgb(24 22 20 / 40%) 100%); }
.hero-figure:hover .hero-image > img, .hero-figure:focus-within .hero-image > img { transform:scale(1.035); }
.hero-image-button { position:static; z-index:1; width:50px; height:50px; flex:none; display:grid; place-items:center; background:var(--accent); color:var(--paper); border-radius:var(--radius-control); transition:transform .22s ease,background .22s ease,box-shadow .22s ease; }
.hero-image-button:hover { background:var(--accent-dark); transform:translate(2px,-2px); }
.hero-figure figcaption { position:absolute; z-index:2; left:28px; bottom:28px; right:28px; display:flex; justify-content:space-between; gap:15px; align-items:center; padding:18px 20px; background:rgb(42 39 35 / 90%); color:var(--paper); border-radius:var(--radius-control); }
.hero-figure figcaption > div > span:last-child { display:block; font-size:16px; font-weight:600; margin-top:4px; }
.hero-figure figcaption .eyebrow { font-size:12px; letter-spacing:.045em; color:#eee7de; font-weight:500; }
.caption-separator { color:#b9ada0; padding:0 8px; }
/* El catálogo toma el centro de la página, sin cajas ni rótulos sobre las fotos. */
.catalog-section { background:var(--paper); padding:112px 0 118px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:48px; margin-bottom:38px; }
.section-heading h2, .services-intro h2, .owners-heading h2, .about-layout h2 { font-size:48px; font-weight:700; line-height:1.13; letter-spacing:-.055em; margin-top:16px; }
.headline-accent { color:var(--ink); font-family:var(--font); font-weight:inherit; font-style:normal; letter-spacing:inherit; }
.hero-copy > .eyebrow, .section-heading .eyebrow, .services-intro > .eyebrow, .owners-copy > .eyebrow, .about-layout > div > .eyebrow { color:var(--accent-text); font-weight:600; }
.owners-heading > .eyebrow { color:var(--accent-text); font-weight:700; }
.section-heading .eyebrow, .services-intro > .eyebrow, .owners-copy > .eyebrow, .owners-heading > .eyebrow, .about-layout > div > .eyebrow { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:700; letter-spacing:.12em; }
.section-heading .eyebrow::before, .services-intro > .eyebrow::before, .owners-copy > .eyebrow::before, .owners-heading > .eyebrow::before, .about-layout > div > .eyebrow::before { content:""; width:24px; height:1px; flex:none; background:currentColor; }
.section-description { font-size:16px; line-height:1.75; color:var(--muted); margin-top:17px; max-width:560px; }
.catalog-tabs { display:flex; gap:24px; flex:none; padding-bottom:3px; }
.catalog-tab { padding:9px 0 10px; color:var(--muted); font-size:15px; border-bottom:1px solid transparent; }
.catalog-tab.active { border-color:var(--accent); color:var(--accent); }
.catalog-tab span { display:inline-block; margin-left:5px; color:var(--subtle); font-size:10px; vertical-align:super; }
.search-console { background:#f4f0e9; border:1px solid var(--line); border-radius:var(--radius-control); padding:24px; }
.property-search { display:grid; grid-template-columns:1fr 1fr .8fr auto; align-items:center; gap:25px; }
.search-field { border-right:1px solid var(--line); padding-right:24px; min-width:0; }
.search-field label { display:block; color:var(--muted); font-size:12px; margin-bottom:6px; letter-spacing:.06em; }
.search-field select { width:100%; border:0; padding:0 26px 0 0; border-radius:var(--radius-control); background-color:transparent; color:var(--ink); font-size:15px; font-weight:500; box-shadow:none; cursor:pointer; }
.search-field select:focus { box-shadow:none; }
.search-submit { display:flex; align-items:center; justify-content:center; gap:10px; background:var(--accent); color:var(--paper); min-height:var(--button-height); padding:var(--button-padding); border:1px solid var(--accent-dark); border-radius:var(--radius-control); font-size:14px; font-weight:var(--button-weight); box-shadow:0 6px 16px rgb(145 14 23 / 12%); transition:background .22s,box-shadow .22s,transform .22s; }
.search-submit .material-symbols-outlined { font-size:19px; }
.catalog-meta { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:23px 0 30px; font-size:12px; color:var(--muted); }
.catalog-options { display:flex; align-items:center; gap:22px; }
.catalog-options label { display:flex; align-items:center; gap:8px; cursor:pointer; }
.catalog-options input { width:14px; height:14px; accent-color:var(--ink); border:1px solid #aaa093; border-radius:var(--radius-control); }
.catalog-options button { text-decoration:underline; text-underline-offset:4px; }
.property-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 30px; align-items:stretch; }
.property-card { position:relative; display:flex; flex-direction:column; min-width:0; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--white); transition:border-color .22s ease; }
.property-card:hover, .property-card:focus-within { border-color:#aaa093; }
.property-photo { width:100%; aspect-ratio:1.38; overflow:hidden; border-radius:var(--radius-control); background:var(--stone); }
.photo-button { display:block; width:100%; height:100%; }
.property-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.96) contrast(1.02); transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.property-card:hover .property-photo img, .property-card:focus-within .property-photo img { transform:scale(1.035); }
.property-body { flex:1; display:flex; flex-direction:column; padding:29px 31px 30px; }
.property-caption { display:block; }
.property-location { color:var(--muted); font-weight:600; font-size:13px; line-height:1.5; letter-spacing:.02em; text-transform:uppercase; }
.property-badge { position:absolute; top:18px; right:18px; z-index:1; flex:none; max-width:calc(100% - 36px); white-space:nowrap; font-size:13px; color:var(--ink); font-weight:700; letter-spacing:.08em; text-transform:uppercase; background:rgb(250 248 244 / 94%); padding:10px 14px; line-height:1.4; border:1px solid rgb(255 255 255 / 72%); border-radius:var(--radius-control); box-shadow:0 7px 20px rgb(35 31 27 / 22%); backdrop-filter:blur(8px); }
.property-badge.rented { color:var(--muted); background:rgb(250 248 244 / 96%); }
.property-title { font-family:var(--font); font-size:28px; line-height:1.21; font-weight:700; letter-spacing:-.045em; margin-top:17px; }
.property-title button { text-align:left; }
.property-title button:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.property-specs { display:flex; flex-wrap:wrap; gap:0; margin-top:12px; font-size:15px; color:var(--ink); font-weight:600; line-height:1.7; }
.property-specs > span + span::before { content:'·'; padding:0 10px; color:#b7aa9a; }
.property-specs > span { display:inline-flex; align-items:center; gap:4px; }
.property-specs > span > .material-symbols-outlined { font-size:15px; color:var(--muted); }
.property-occupancy { font-size:14px; line-height:1.6; color:var(--muted); margin-top:8px; }
.property-footer-wrap { padding-top:22px; margin-top:auto; }
.property-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding-top:17px; }
.price-label { display:block; font-size:13px; letter-spacing:.02em; color:var(--subtle); line-height:1.7; text-transform:uppercase; }
.property-price { display:flex; align-items:baseline; gap:8px; color:var(--ink); font-size:30px; font-weight:700; letter-spacing:-.04em; line-height:1.3; }
.price-currency { color:var(--muted); font-size:.48em; font-weight:700; letter-spacing:.08em; white-space:nowrap; }
.price-amount { font-variant-numeric:tabular-nums; white-space:nowrap; }
.card-button { color:var(--ink); display:inline-flex; align-items:center; gap:12px; font-size:14px; font-weight:600; }
.card-button .material-symbols-outlined { display:grid; place-items:center; font-size:20px; width:42px; height:42px; border:1px solid var(--line); border-radius:var(--radius-control); transition:background-color .22s ease,border-color .22s ease,transform .22s ease; }
.card-button .material-symbols-outlined { color:var(--accent); border-color:#e8b8b5; }
.card-button:hover .material-symbols-outlined { background:var(--accent-wash); }
.catalog-bottom { display:flex; justify-content:space-between; align-items:center; gap:32px; margin-top:40px; padding-top:27px; border-top:1px solid var(--line); }
.catalog-disclaimer { font-size:12px; line-height:1.8; color:var(--muted); }
.catalog-bottom .text-link { flex:none; font-size:13px; }
.empty-results { grid-column:1/-1; text-align:center; padding:55px 24px; background:var(--canvas); }
.empty-results h3 { font-size:25px; font-weight:500; margin-bottom:12px; letter-spacing:-.03em; }
.empty-results p { font-size:15px; color:var(--muted); max-width:550px; margin:0 auto 24px; }
/* Menos secciones repetidas, más claridad en el recorrido. */
.services-section { position:relative; isolation:isolate; overflow:hidden; padding:88px 0; background:var(--ink); color:var(--paper); }
.services-section::before { content:none; }
.services-section::after { content:none; }
.services-layout { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:104px; align-items:start; }
.services-intro > .eyebrow { color:#f17b80; }
.services-intro h2 { font-size:56px; line-height:1.09; max-width:520px; }
.services-intro .section-description { max-width:430px; color:#ded7ce; }
.services-intro .text-link { margin-top:29px; }
.services-section .text-link { color:var(--paper); border-color:#746e67; }
.services-section .text-link:hover { color:#ff8b90; border-color:#ff8b90; }
.service-row { display:grid; grid-template-columns:1fr 46px; align-items:center; gap:28px; padding:34px 0; border-top:1px solid rgb(250 248 244 / 20%); transition:background .22s ease,border-color .22s ease; }
.service-row:first-child { padding-top:34px; }
.service-row:last-of-type { border-bottom:1px solid rgb(250 248 244 / 20%); }
.service-row h3 { font-size:29px; line-height:1.22; font-weight:600; letter-spacing:-.04em; transition:color .22s ease; }
.service-row p { max-width:410px; font-size:15px; line-height:1.75; color:#eee7de; margin-top:10px; }
.service-row > .material-symbols-outlined { width:46px; height:46px; display:grid; place-items:center; margin:0; font-size:23px; color:#ff8b90; border:1px solid rgb(250 248 244 / 25%); border-radius:var(--radius-control); transition:transform .22s ease,background .22s ease,border-color .22s ease; }
.service-row:hover h3 { color:#ff8b90; }
.service-row:hover > .material-symbols-outlined { transform:translate(2px,-2px); background:rgb(255 255 255 / 6%); border-color:#ff8b90; }
.service-row:hover { background:linear-gradient(90deg,transparent,rgb(255 255 255 / 2.5%)); }
.service-note { font-size:12px; line-height:1.8; color:#d0c7bd; margin-top:19px; }
.owners-section { position:relative; background:var(--stone); padding:72px 0; }
.owners-section::before { content:none; }
.owners-layout { position:relative; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); gap:72px; align-items:center; padding:0; }
.owners-heading h2 { max-width:620px; font-size:clamp(38px,4vw,54px); line-height:1.1; letter-spacing:-.055em; }
.owners-copy { border-left:1px solid rgb(48 46 42 / 20%); padding-left:36px; }
.owners-copy > p { color:var(--ink); font-size:18px; line-height:1.75; max-width:470px; }
.owners-copy .button-primary { margin-top:26px; }
.owners-note { display:block; font-size:13px; color:#504a42; margin-top:14px; }
.about-section { padding:96px 0; background:var(--paper); }
.about-layout { display:grid; grid-template-columns:1fr 1.05fr .65fr; gap:58px; align-items:start; }
.about-layout h2 { font-size:38px; }
.about-copy p { color:var(--muted); font-size:15px; line-height:1.85; }
.about-copy p + p { margin-top:16px; }
.about-copy .text-link { margin-top:24px; }
.about-milestone { padding-top:6px; }
.about-milestone > strong { display:block; margin-top:12px; font-size:28px; font-weight:600; line-height:1.2; letter-spacing:-.035em; }
.about-milestone > p { margin-top:12px; max-width:26ch; color:var(--muted); font-size:14px; line-height:1.7; }
@media (min-width:640px) and (max-width:1023px) {
  .about-milestone { grid-column:2; }
}
.about-address { border-left:1px solid var(--line); padding-left:28px; padding-top:6px; }
.about-address > .material-symbols-outlined { color:var(--muted); font-size:27px; }
.about-address p { margin-top:13px; font-size:18px; }
.about-address p strong { font-size:14px; font-weight:400; color:var(--muted); }
.about-address > span:last-child { display:block; font-size:14px; margin-top:12px; color:var(--muted); }
/* Contacto consistente con el resto de la página. */
.contact-section { background:var(--stone); padding:96px 0 100px; }
.contact-section .section-heading { margin-bottom:58px; }
.contact-intro { padding-bottom:4px; }
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:96px; align-items:start; }
.contact-office h3 { font-size:26px; font-weight:500; letter-spacing:-.025em; margin-top:10px; }
.contact-office > p { font-size:15px; color:var(--muted); margin-top:4px; }
.contact-office .hours-note { font-size:13px; margin-top:13px; }
.contact-channels { display:grid; grid-template-columns:1fr 1fr; gap:24px 28px; margin-top:34px; }
.contact-channels > div { min-width:0; }
.contact-channels .eyebrow { font-size:12px; margin-bottom:12px; }
.contact-channels a, .contact-email { display:grid; grid-template-columns:36px minmax(0,1fr) auto 16px; align-items:center; gap:12px; min-height:76px; margin-top:10px; padding:14px; color:var(--ink); background:var(--white); border:1px solid rgb(36 33 30 / 14%); border-radius:var(--radius-control); box-shadow:0 3px 10px rgb(36 33 30 / 3%); }
.contact-channel-icon { display:grid; place-items:center; width:36px; height:36px; font-size:19px; color:#16834f; background:#e8f4ed; border-radius:50%; }
.contact-channel-copy { display:grid; min-width:0; gap:2px; line-height:1.35; }
.contact-channel-copy strong { font-size:14px; font-weight:600; }
.contact-channel-copy small { color:var(--muted); font-size:12px; }
.contact-channel-label { padding:5px 8px; color:#146b41; background:#e8f4ed; border-radius:999px; font-size:11px; line-height:1.3; font-weight:600; white-space:nowrap; }
.contact-channels a .contact-channel-arrow, .contact-email .contact-channel-arrow { justify-self:end; font-size:16px; color:var(--muted); }
.contact-emails { display:grid; gap:12px; margin-top:24px; }
.contact-email { width:100%; min-height:72px; margin-top:0; overflow-wrap:anywhere; font-size:13px; }
.contact-email-address { min-width:0; overflow-wrap:anywhere; }
.contact-email .contact-channel-label { color:#65543d; background:#f1e9dd; }
@media (max-width:639px) {
  .contact-emails .contact-email { grid-template-columns:28px minmax(0,1fr) 16px; gap:8px; padding:12px; }
  .contact-email .contact-channel-icon { grid-column:1; grid-row:1; width:28px; height:28px; font-size:17px; }
  .contact-email .contact-channel-label { grid-column:2; grid-row:1; justify-self:start; }
  .contact-email .contact-channel-arrow { grid-column:3; grid-row:1; }
  .contact-email .contact-email-address { grid-column:1 / -1; grid-row:2; font-size:clamp(10.5px,3vw,13px); white-space:nowrap; overflow-wrap:normal; }
}
.contact-map { position:relative; margin-top:32px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-control); overflow:hidden; }
.contact-map iframe { display:block; width:100%; height:100%; border:0; }
.contact-map-header { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px 30px; }
.contact-map-header h3 { margin:8px 0 4px; font-size:24px; font-weight:500; letter-spacing:-.025em; }
.contact-map-header p { color:var(--muted); font-size:14px; }
.contact-map-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; }
.contact-map-actions a { display:inline-flex; justify-content:center; align-items:center; gap:10px; min-height:44px; padding:11px 16px; background:var(--accent); color:var(--paper); font-size:14px; border-radius:var(--radius-control); }
.contact-map-actions a:hover { background:var(--accent-dark); }
.contact-map-actions .contact-map-open { background:transparent; color:var(--ink); padding-inline:0; text-decoration:underline; text-underline-offset:4px; }
.contact-map-actions .contact-map-open:hover { color:var(--accent); background:transparent; }
.contact-map-actions .material-symbols-outlined { font-size:18px; }
.contact-map-canvas { height:clamp(300px,30vw,420px); border-top:1px solid var(--line); }
.contact-map > a { position:absolute; right:12px; bottom:12px; display:flex; align-items:center; gap:18px; background:var(--paper); padding:10px 15px; border-radius:var(--radius-control); font-size:12px; box-shadow:0 4px 14px rgb(48 46 42 / 14%); }
.contact-map > a:hover { background:#fffdf9; transform:translateY(-2px); }
.contact-map > a .material-symbols-outlined { font-size:17px; }
.contact-form { padding:34px 36px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-control); }
.contact-form h3 { font-size:23px; font-weight:600; letter-spacing:-.025em; margin-bottom:30px; }
.contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-field { margin-bottom:22px; min-width:0; }
.form-field label { display:block; font-size:13px; color:var(--ink); margin-bottom:8px; }
.form-field input, .form-field textarea, .form-field select { width:100%; background:#f5f0e8; border:1px solid #bfb3a3; border-radius:var(--radius-control); padding:12px 13px; color:var(--ink); font-size:16px; box-shadow:inset 0 1px 2px rgb(48 46 42 / 4%); transition:border-color .22s,background-color .22s,box-shadow .22s; }
.form-field select { padding-right:25px; }
.form-field input::placeholder, .form-field textarea::placeholder { color:var(--muted); }
.form-field textarea { resize:vertical; min-height:110px; }
.form-field input:hover, .form-field textarea:hover, .form-field select:hover { border-color:#998c7b; background:#faf7f1; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { border-color:var(--accent); background:var(--white); box-shadow:0 0 0 3px rgb(227 6 19 / 12%); outline:none; }
.contact-form .button-primary { width:100%; margin-top:0; }
.form-note { font-size:13px; line-height:1.75; color:var(--muted); margin-top:14px; }
.site-footer { padding:46px 0 24px; background:var(--ink); color:#f8f3eb; }
.site-footer .footer-links, .site-footer .footer-social > span:last-child, .site-footer .footer-bottom { color:#eee7de; }
.site-footer .footer-bottom { border-color:#746c63; }
.footer-main { display:grid; grid-template-columns:1fr .85fr .55fr .85fr; gap:48px; align-items:center; padding-bottom:42px; }
.footer-main > p { font-size:20px; font-weight:400; line-height:1.4; letter-spacing:-.025em; }
.footer-links { display:flex; flex-direction:column; gap:9px; font-size:13px; color:var(--muted); }
.footer-social-links { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.footer-social { display:block; font-size:13px; line-height:1.55; }
.footer-social-icon { width:18px; height:18px; display:inline-block; vertical-align:-4px; margin-right:8px; color:currentColor; }
.footer-social > .material-symbols-outlined { font-size:17px; vertical-align:middle; margin-left:7px; }
.footer-social > span:last-child { display:block; font-size:13px; color:var(--muted); margin-top:8px; }
.site-footer .footer-links a:hover, .site-footer .footer-social:hover, .site-footer .footer-bottom a:hover { color:#fffdf9; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; font-size:13px; color:var(--muted); border-top:1px solid var(--line); padding-top:22px; }
.footer-bottom a { display:flex; align-items:center; gap:10px; }
.footer-bottom .material-symbols-outlined { font-size:15px; }
@media (max-width:639px) {
  .site-footer { padding:32px 0 24px; }
  .site-footer .footer-main { grid-template-columns:minmax(0,1fr); align-items:start; gap:20px; padding-bottom:24px; }
  .site-footer .footer-main > p { font-size:18px; line-height:1.5; }
  .site-footer .footer-main > p br { display:none; }
  .site-footer .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; padding-top:16px; border-top:1px solid rgb(248 243 235 / 18%); font-size:14px; }
  .site-footer .footer-links a { min-height:44px; display:flex; align-items:center; }
  .site-footer .footer-social-links { gap:20px; padding-top:20px; border-top:1px solid rgb(248 243 235 / 18%); }
  .site-footer .footer-social { display:block; width:100%; min-height:44px; font-size:14px; line-height:1.5; }
  .site-footer .footer-social > span:last-child { margin-top:4px; padding-left:26px; font-size:12px; }
  .site-footer .footer-bottom { align-items:flex-start; gap:8px; padding-top:18px; font-size:12px; }
}
.floating-contact { position:fixed; right:24px; bottom:22px; z-index:40; display:block; width:64px; height:64px; overflow:hidden; border-radius:var(--radius-control); box-shadow:0 6px 22px rgb(35 53 33 / 22%); transition:transform .2s,box-shadow .2s,opacity .2s; }
.floating-contact:hover { transform:translateY(-3px); box-shadow:0 10px 26px rgb(35 53 33 / 27%); }
.floating-contact img { position:absolute; left:-25%; top:-25%; width:150%; height:150%; max-width:none; object-fit:cover; }
.button-outline { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-height:var(--button-height); padding:var(--button-padding); border:1px solid #b8a99a; border-radius:var(--radius-control); font-size:14px; font-weight:var(--button-weight); transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
.button-outline:hover { background:var(--paper); border-color:var(--ink); box-shadow:0 7px 18px rgb(48 46 42 / 8%); transform:translateY(-1px); }
.hero-actions { gap:14px; }
.hero-actions > .button-primary, .hero-actions > .button-outline { min-width:164px; min-height:54px; padding:14px 20px; gap:24px; font-size:15px; box-shadow:none; }
.hero-actions > .button-primary:hover { box-shadow:none; }
.hero-owner-link { flex-basis:100%; width:fit-content; flex-grow:0; margin-top:10px; }
.hero-owner-outline { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:8px 0; color:var(--ink); background:transparent; border:0; border-radius:0; box-shadow:none; font-size:14px; font-weight:500; }
.hero-owner-outline > span:first-child { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.hero-owner-outline .material-symbols-outlined { font-size:18px; transition:transform .22s ease; }
.hero-owner-outline:hover { color:var(--accent-text); text-decoration:none; background:transparent; border-color:transparent; box-shadow:none; }
.hero-owner-outline:hover .material-symbols-outlined { transform:translate(2px,-2px); }
.selection-section { padding:88px 0 48px; background:var(--paper); }
.editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:28px; margin-top:36px; }
.editorial-card { transition:transform .28s ease; }
.editorial-card:hover, .editorial-card:focus-within { transform:translateY(-4px); }
.editorial-photo { position:relative; width:100%; overflow:hidden; background:var(--stone); display:block; border:1px solid rgb(48 46 42 / 8%); border-radius:var(--radius-control); box-shadow:0 14px 34px rgb(48 46 42 / 10%); transition:box-shadow .28s ease; }
.editorial-card:hover .editorial-photo, .editorial-card:focus-within .editorial-photo { box-shadow:0 22px 46px rgb(48 46 42 / 16%); }
.editorial-photo img { width:100%; height:auto; object-fit:cover; transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.editorial-photo:hover img, .editorial-card:focus-within .editorial-photo img { transform:scale(1.035); }
.editorial-photo-action { position:absolute; bottom:20px; right:20px; background:var(--paper); border-radius:var(--radius-control); width:46px; height:46px; display:grid; place-items:center; color:var(--accent); font-family:'Material Symbols Outlined'; font-size:24px; }
.editorial-card:hover .editorial-photo-action, .editorial-card:focus-within .editorial-photo-action { background:#fffdf9; transform:translate(2px,-2px); box-shadow:0 6px 18px rgb(48 46 42 / 14%); }
.editorial-caption { padding-top:24px; border-bottom:1px solid var(--line); padding-bottom:24px; }
.editorial-caption .eyebrow { color:#a80f19; font-size:12px; font-weight:700; letter-spacing:.045em; line-height:1.5; }
.editorial-caption h3 { font-size:clamp(27px,2.2vw,32px); font-weight:600; letter-spacing:-.045em; line-height:1.2; margin-top:9px; }
.editorial-caption h3 button { text-align:left; }
.editorial-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:15px; color:var(--ink); font-size:15px; line-height:1.4; }
.editorial-meta strong { display:inline-flex; align-items:center; min-height:36px; padding:6px 12px; background:var(--accent); color:var(--paper); font-size:17px; font-weight:700; letter-spacing:-.02em; }
.editorial-meta span { display:inline-flex; align-items:center; min-height:36px; padding:6px 11px; background:var(--canvas); border:1px solid var(--line); color:var(--ink); }
.editorial-meta .editorial-status { background:#f6e9db; border-color:#e7d7c2; font-size:13px; font-weight:600; }
.editorial-meta-note { color:var(--muted); font-weight:500; }
.selection-bottom { display:flex; justify-content:flex-end; align-items:center; gap:40px; border-top:1px solid var(--line); margin-top:54px; padding-top:24px; }
.selection-bottom p { color:var(--muted); font-size:13px; max-width:430px; }
.selection-bottom > div { display:flex; gap:30px; flex:none; }
.selection-bottom .text-link { color:var(--accent); border-bottom:0; }
.selection-bottom .text-link, .selection-bottom .text-link:hover { text-decoration:none; }
.selection-bottom .catalog-link-label { text-decoration:underline; text-underline-offset:4px; }
.selection-bottom .text-link:hover { color:var(--accent-dark); }
#seleccion .selection-bottom > div { gap:16px; }
#seleccion .selection-bottom .text-link { min-height:48px; max-width:100%; gap:12px; padding:10px 12px; border-radius:var(--radius-control); font-size:16px; line-height:1.5; }
#seleccion .selection-bottom .material-symbols-outlined { font-size:20px; text-decoration:none; }
@media (hover:hover) and (pointer:fine) {
  #seleccion .selection-bottom .text-link:hover { background:rgb(227 6 19 / 5%); }
}
@media (max-width:639px) {
  .about-milestone { padding-top:20px; border-top:1px solid var(--line); }
  .about-milestone > strong { font-size:26px; }
  .about-milestone > strong br { display:none; }
  #seleccion .selection-bottom > div { gap:4px 12px; }
}
.catalog-page .catalog-section { padding-top:70px; }
.catalog-page .section-heading h1 { font-size:clamp(40px,4vw,58px); font-weight:700; line-height:1.15; letter-spacing:-.055em; margin-top:16px; }
@media(max-width:900px) { .editorial-grid { gap:30px; } .selection-bottom { align-items:flex-start; flex-direction:column; gap:20px; } }
@media(max-width:600px) { .selection-section { padding:60px 0; } .editorial-grid { grid-template-columns:1fr; gap:32px; margin-top:30px; } .editorial-caption h3 { font-size:25px; } .selection-bottom { margin-top:32px; } .selection-bottom > div { flex-wrap:wrap; gap:22px; } .hero-actions .button-outline { width:100%; } .hero-owner-link { margin-top:6px; } .catalog-page .catalog-section { padding-top:40px; } }
/* Ficha: mantiene galerías, datos y controles accesibles existentes. */
.property-dialog { width:min(1200px,calc(100vw - 64px)); max-height:calc(100dvh - 64px); padding:0; border:0; border-radius:var(--radius-control); background:var(--paper); color:var(--ink); overflow:auto; }
.property-dialog::backdrop { background:rgb(28 30 25 / 65%); }
.detail-layout { display:grid; grid-template-columns:1.15fr 1fr; }
.detail-gallery { min-width:0; background:var(--stone); padding:20px; }
.gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:16px; font-size:12px; color:var(--muted); }
.icon-button { width:36px; height:36px; display:grid; place-items:center; background:var(--paper); border-radius:var(--radius-control); }
.gallery-stage { position:relative; height:min(58vh,580px); background:#e0ddd4; }
.gallery-stage img { width:100%; height:100%; object-fit:contain; }
.gallery-arrow { position:absolute; z-index:1; top:50%; transform:translateY(-50%); width:38px; height:38px; display:grid; place-items:center; background:var(--paper); border-radius:var(--radius-control); }
#gallery-prev { left:10px; } #gallery-next { right:10px; }
.gallery-thumbnails { display:flex; gap:8px; overflow-x:auto; padding:14px 0 5px; scrollbar-width:thin; }
.gallery-thumbnails button { flex:0 0 64px; height:64px; border:2px solid transparent; overflow:hidden; }
.gallery-thumbnails button[aria-current="true"] { border-color:var(--ink); }
.gallery-thumbnails img { width:100%; height:100%; object-fit:cover; }
@media (min-width:1024px) {
  .property-dialog .detail-gallery {
    position:sticky;
    top:0;
    align-self:start;
    height:calc(100dvh - 64px);
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
  }
  .property-dialog .gallery-stage { height:auto; min-height:0; }
  .property-dialog .gallery-thumbnails { min-width:0; }
}
.detail-content { padding:40px 34px; font-size:14px; line-height:1.75; }
.detail-eyebrow { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); letter-spacing:.06em; }
.detail-content h2 { font-size:31px; line-height:1.2; font-weight:500; letter-spacing:-.04em; margin:16px 0 10px; }
.detail-address { color:var(--muted); font-size:13px; }
.detail-price { font-size:30px; font-weight:500; letter-spacing:-.025em; font-variant-numeric:tabular-nums; margin-top:22px; }
.detail-occupancy { padding:13px 14px; background:var(--canvas); border-left:2px solid var(--accent); margin-top:21px; font-size:13px; }
.detail-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:20px 0; margin:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.detail-facts strong { display:flex; align-items:center; gap:7px; font-size:20px; font-weight:500; }
.detail-facts strong .material-symbols-outlined { font-size:18px; color:var(--muted); }
.detail-facts span { font-size:12px; color:var(--muted); }
.detail-summary { color:var(--muted); }
.bathroom-icon { display:inline-block; width:1em; height:1em; flex-shrink:0; font-size:18px; vertical-align:middle; }
.property-specs .bathroom-icon { font-size:15px; color:var(--muted); }
.detail-facts .bathroom-icon { color:var(--muted); }
.detail-amenities .bathroom-icon { margin-top:3px; color:var(--accent); }
.detail-rent-label { margin-top:22px; color:var(--muted); font-size:12px; }
.detail-rent-label + .detail-price { margin-top:2px; }
.detail-content .detail-amenities { list-style:none; padding-left:0; display:grid; gap:10px; }
.detail-amenities li { display:flex; align-items:flex-start; gap:10px; }
.detail-amenities .material-symbols-outlined { flex-shrink:0; font-size:18px; line-height:1.4; color:var(--accent); }
.detail-rental-section { border-top:1px solid var(--line); margin-top:24px; padding-top:4px; }
.detail-rental-section li { margin-bottom:6px; }
.detail-extra-costs { background:var(--canvas); border:1px solid var(--line); border-radius:var(--radius-control); padding:16px 18px; }
.detail-content .detail-extra-costs h3 { margin-top:0; }
.detail-extra-costs p { color:var(--muted); font-size:13px; margin-bottom:10px; }
.detail-content h3 { font-size:15px; font-weight:500; margin:23px 0 10px; }
.detail-content ul { list-style:disc; padding-left:18px; color:var(--muted); }
.detail-conditions, .detail-source { margin-top:17px; color:var(--muted); font-size:12px; line-height:1.8; }
.detail-source a { text-decoration:underline; text-underline-offset:3px; }
.detail-contact { width:100%; display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:var(--button-height); padding:var(--button-padding); background:var(--accent); color:var(--paper); margin-top:24px; font-size:14px; font-weight:var(--button-weight); border:1px solid var(--accent-dark); border-radius:var(--radius-control); box-shadow:0 6px 16px rgb(145 14 23 / 12%); transition:background .22s,box-shadow .22s,transform .22s; }
.detail-contact:hover { background:var(--accent-dark); box-shadow:0 8px 20px rgb(145 14 23 / 16%); transform:translateY(-1px); }
body.dialog-open { overflow:hidden; }
/* El mismo lenguaje visual se adapta sin otro tema para móvil. */
@media (max-width:1279px) {
  .hero-layout { gap:0; }
  .hero-copy { padding-left:5vw; }
  .hero-copy h1 { font-size:clamp(58px,6vw,78px); }
  .main-navigation { gap:24px; }
  .services-layout, .contact-layout { gap:64px; }
  .owners-layout { gap:64px; }
  .about-layout { gap:36px; }
  .footer-main { gap:30px; }
}
@media (max-width:1023px) {
  .site-container { width:calc(100% - 64px); }
  .header-inner { height:94px; gap:22px; }
  .brand-logo { width:100px; height:100px; }
  .main-navigation { display:none; }
  .menu-toggle { width:40px; height:40px; display:grid; place-items:center; }
  .main-navigation.mobile-open { display:flex; flex-wrap:wrap; position:absolute; top:94px; left:0; right:0; padding:22px 32px; background:var(--canvas); border-bottom:1px solid var(--line); gap:18px 26px; }
  .hero-layout { grid-template-columns:44% 56%; gap:0; min-height:600px; }
  .hero-copy { padding:32px 30px 50px 32px; }
  .hero-figure { min-height:600px; margin-right:0; }
  .hero-copy h1 { font-size:clamp(44px,5.7vw,58px); }
  .hero-description { font-size:15px; line-height:1.75; }
  .hero-image { aspect-ratio:auto; }
  .hero-image > img { object-position:63% 55%; }
  .hero-figure figcaption { left:20px; right:20px; bottom:20px; padding:14px 16px; }
  .hero-figure figcaption > div > span:last-child { font-size:14px; }
  .hero-image-button { width:44px; height:44px; }
  .property-search { grid-template-columns:1fr 1fr; gap:22px; }
  .search-field:nth-child(2) { border-right:0; }
  .catalog-meta { align-items:flex-start; }
  .catalog-options { flex-direction:column; align-items:flex-end; gap:10px; }
  .section-heading h2 { font-size:38px; }
  .property-grid { gap:44px 28px; }
  .property-title { font-size:24px; }
  .services-layout, .contact-layout { gap:40px; }
  .services-intro h2, .owners-heading h2 { font-size:38px; }
  .owners-layout { gap:36px; padding:34px 32px; }
  .owners-copy { padding-left:25px; }
  .about-layout { grid-template-columns:1fr 1fr; }
  .about-address { grid-column:2; border:0; padding:0; }
  .contact-form { padding:28px 24px; }
  .contact-form-row, .contact-channels { grid-template-columns:1fr; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .detail-layout { grid-template-columns:1fr; }
}
@media (max-width:639px) {
  html { scroll-padding-top:92px; }
  .site-container { width:calc(100% - 40px); }
  .header-inner { height:90px; gap:14px; }
  .brand-logo { width:85px; height:85px; }
      .brand { gap:8px; }
  .menu-toggle { width:44px; height:44px; flex:none; }
  .main-navigation.mobile-open { top:90px; padding:22px 20px; }
  .main-navigation a { font-size:18px; }
  .hero-section { padding:0; }
  .hero-layout { grid-template-columns:1fr; gap:0; }
  .hero-copy { padding:42px 20px 39px; }
  .hero-copy > .eyebrow { font-size:10px; letter-spacing:.07em; margin-bottom:23px; }
  .hero-copy h1 { font-size:clamp(48px,13.5vw,60px); line-height:1.05; letter-spacing:-.06em; }
  .hero-copy h1 span { font-size:1.12em; }
  .hero-description { font-size:15px; line-height:1.7; margin-top:22px; max-width:350px; }
  .hero-actions { gap:17px; margin-top:25px; }
  .hero-actions .button-primary, .hero-actions .button-outline { width:100%; min-height:58px; padding:16px 20px; font-size:14px; }
  .hero-actions .text-link { font-size:13px; }
  .hero-figure { min-height:445px; }
  .hero-image { aspect-ratio:auto; }
  .hero-image > img { object-position:58% 58%; }
  .hero-image-button { width:42px; height:42px; }
  .hero-figure figcaption { left:15px; right:15px; bottom:15px; padding:12px 13px; }
  .hero-figure figcaption > div > span:last-child { font-size:13px; }
  .hero-figure figcaption .eyebrow { font-size:10px; }
  .catalog-section { padding:48px 0; }
  .section-heading { flex-direction:column; align-items:flex-start; gap:24px; margin-bottom:25px; }
  .section-heading h2, .services-intro h2, .owners-heading h2, .about-layout h2 { font-size:35px; line-height:1.2; margin-top:14px; }
  .eyebrow { font-size:10px; }
  .section-description { font-size:14px; line-height:1.75; margin-top:14px; }
  .section-description br { display:none; }
  .catalog-tabs { gap:28px; }
  .catalog-tab { font-size:14px; min-height:44px; }
  .search-console { padding:20px 16px; }
  .property-search { grid-template-columns:1fr; gap:15px; }
  .search-field, .search-field:nth-child(2) { border-right:0; border-bottom:1px solid var(--line); padding-right:0; padding-bottom:12px; }
  .search-field label { font-size:12px; }
  .search-field select { font-size:15px; padding-right:24px; }
  .search-submit { width:100%; font-size:14px; gap:8px; }
  .search-submit .material-symbols-outlined { font-size:17px; }
  .catalog-meta { flex-direction:column; gap:13px; padding:20px 0 26px; font-size:12px; }
  .catalog-options { width:100%; flex-direction:row; align-items:center; justify-content:space-between; gap:8px; }
  .property-grid { grid-template-columns:1fr; gap:40px; }
  .property-body { padding:18px 18px 20px; }
  .property-caption { gap:10px; }
  .property-location { font-size:13px; letter-spacing:.04em; }
  .property-badge { top:12px; right:12px; max-width:calc(100% - 24px); padding:8px 10px; font-size:12px; }
  .property-title { font-size:25px; }
  .property-specs { font-size:12px; margin-top:10px; }
  .property-specs > span + span::before { padding:0 7px; }
  .property-occupancy { font-size:12px; }
  .property-price { font-size:26px; }
  .price-label { font-size:13px; }
  .card-button { gap:8px; font-size:12px; }
  .card-button .material-symbols-outlined { width:34px; height:34px; }
  .catalog-bottom { flex-direction:column; align-items:flex-start; gap:23px; margin-top:28px; }
  .catalog-disclaimer { font-size:12px; }
  .services-section { padding:64px 0; }
  .services-layout { grid-template-columns:1fr; gap:38px; }
  .services-intro .text-link { margin-top:20px; }
  .service-row { gap:14px; padding:26px 18px; }
  .service-row:first-child { padding-top:26px; }
  .service-row h3 { font-size:24px; }
  .service-row p { font-size:13px; }
  .owners-section { padding:44px 0; }
  .owners-layout { grid-template-columns:1fr; gap:24px; padding:28px 22px; }
  .owners-copy { border-left:0; border-top:1px solid rgb(48 46 42 / 20%); padding:22px 0 0; }
  .owners-copy > p { font-size:15px; }
  .owners-copy .button-primary { width:100%; }
  .about-section { padding:56px 0; }
  .about-layout { grid-template-columns:1fr; gap:25px; }
  .about-copy p { font-size:14px; }
  .about-address { grid-column:auto; display:grid; grid-template-columns:minmax(0,1fr); row-gap:4px; border-top:1px solid var(--line); padding-top:25px; }
  .about-address p { grid-column:1; margin:0; font-size:17px; line-height:1.5; }
  .about-address > span:last-child { grid-column:1; margin-top:0; }
  .contact-section { padding:56px 0; }
  .contact-section .section-heading { margin-bottom:30px; gap:8px; }
  .contact-layout { grid-template-columns:1fr; gap:32px; }
  .contact-channels { grid-template-columns:1fr; gap:24px; }
  .contact-channels a { font-size:14px; }
  .contact-channels a .material-symbols-outlined { font-size:16px; }
  .contact-office > p { font-size:14px; }
  .contact-map { height:auto; }
  .contact-form { padding:25px 20px; }
  .contact-form h3 { font-size:21px; }
  .contact-form-row { grid-template-columns:1fr; gap:0; }
  .form-field input, .form-field select, .form-field textarea { font-size:16px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:27px 20px; padding-bottom:28px; }
  .footer-main > p { font-size:18px; }
  .footer-social { font-size:12px; }
  .footer-social > span:last-child { font-size:12px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:11px; }
  .floating-contact { right:16px; bottom:16px; width:56px; height:56px; }
  .property-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 20px); }
  .detail-gallery { padding:14px; }
  .gallery-stage { height:43vh; }
  .detail-content { padding:27px 22px; }
  .detail-content h2 { font-size:27px; }
  .detail-facts { gap:8px; }
}

/* Navegación compacta con acceso directo a las familias de propiedades. */
.nav-dropdown { position:relative; }
.nav-dropdown > summary { display:flex; align-items:center; gap:3px; list-style:none; cursor:pointer; position:relative; padding:8px 0; color:var(--muted); font-size:22px; }
.nav-dropdown > summary::-webkit-details-marker { display:none; }
.nav-dropdown > summary .material-symbols-outlined { font-size:18px; transition:transform .2s ease; }
.nav-dropdown[open] > summary .material-symbols-outlined { transform:rotate(180deg); }
.nav-dropdown > summary:hover, .nav-dropdown[open] > summary { color:var(--ink); }
.nav-dropdown-menu { position:absolute; top:calc(100% + 14px); left:-18px; z-index:60; min-width:220px; display:grid; gap:2px; padding:9px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-control); box-shadow:0 18px 38px rgb(48 46 42 / 13%); }
.main-navigation .nav-dropdown-menu a { display:block; padding:10px 11px; border-radius:var(--radius-control); color:var(--muted); font-size:13px; }
.main-navigation .nav-dropdown-menu a::after { display:none; }
.main-navigation .nav-dropdown-menu a:hover { background:var(--stone); color:var(--ink); }
.main-navigation .nav-dropdown-menu a:focus-visible { outline-offset:1px; }
.main-navigation.mobile-open .nav-dropdown { flex-basis:100%; }
.main-navigation.mobile-open .nav-dropdown-menu { position:static; min-width:0; margin-top:6px; box-shadow:none; }
  .main-navigation.mobile-open .nav-dropdown > summary { font-size:18px; }

/* Fichas de portada y catálogo comparten el mismo dato y estado editorial. */
.property-card .property-photo { position:relative; }
.property-card .photo-button { position:relative; overflow:hidden; }
.property-operation-badge { position:absolute; left:16px; bottom:16px; padding:8px 13px; background:rgb(38 35 31 / 82%); color:#fffdf9; border:1px solid rgb(255 255 255 / 42%); border-radius:var(--radius-control); box-shadow:0 7px 18px rgb(24 22 20 / 24%); font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; backdrop-filter:blur(6px); }
.property-caption { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:9px; }
.property-status { display:inline-flex; align-items:center; width:fit-content; padding:5px 9px; background:#f4eadb; border:1px solid #e4d2b9; color:#514536; border-radius:var(--radius-control); font-size:11px; font-weight:700; line-height:1.4; }
.property-price { flex-wrap:wrap; gap:6px 9px; }
.price-suffix { color:var(--muted); font-size:.48em; font-weight:600; letter-spacing:0; white-space:nowrap; }
.property-footer .price-label { max-width:260px; }
.property-pathways { padding:0 0 80px; background:var(--paper); }
.pathways-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.pathway-card { min-height:128px; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:24px 28px; border:1px solid var(--line); border-radius:var(--radius-control); background:transparent; }
.pathway-card::after { content:none; }
.pathway-card .eyebrow { color:var(--accent-text); }
.pathway-card h2 { margin-top:7px; max-width:80%; font-size:clamp(23px,2.5vw,34px); line-height:1.2; letter-spacing:-.045em; }
.pathway-card > .material-symbols-outlined { position:absolute; right:24px; bottom:24px; width:42px; height:42px; display:grid; place-items:center; border:1px solid #c7b5a1; border-radius:var(--radius-control); color:var(--accent); background:rgb(255 253 249 / 68%); transition:transform .22s ease,background .22s ease; }
.pathway-card:hover { background:var(--stone); border-color:#aaa093; }
.pathway-card:hover > .material-symbols-outlined { transform:translate(2px,-2px); background:var(--white); }
.catalog-category-links { display:flex; flex-wrap:wrap; gap:18px 24px; }

/* Las categorías de desarrollos usan una plantilla de datos, sin inventar lotes. */
.development-section { min-height:65vh; padding:92px 0 104px; background:var(--paper); }
.development-heading { max-width:760px; margin-bottom:48px; }
.development-heading h1, .service-page-heading h1 { margin-top:16px; font-size:clamp(44px,6vw,72px); line-height:1.05; letter-spacing:-.065em; font-weight:700; }
.development-heading .eyebrow, .service-page-heading .eyebrow { color:var(--accent-text); }
.development-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.development-grid.development-full-list { grid-template-columns:1fr; gap:32px; }
.development-card { min-height:260px; display:flex; flex-direction:column; align-items:flex-start; padding:30px; border:1px solid var(--line); border-radius:var(--radius-control); background:linear-gradient(145deg,var(--white),#f3ede4); box-shadow:0 12px 30px rgb(48 46 42 / 5%); }
.development-index { color:var(--accent-text); font-size:11px; font-weight:700; letter-spacing:.13em; }
.development-card h2 { margin-top:26px; font-size:clamp(26px,3vw,38px); line-height:1.15; letter-spacing:-.05em; }
.development-card p { color:var(--muted); font-size:14px; line-height:1.7; margin-top:11px; }
.development-card .text-link { margin-top:auto; padding-top:24px; }
.development-note, .development-pending { color:var(--muted); font-size:14px; line-height:1.8; }
.development-note { margin-top:24px; }
.development-detail { min-height:340px; display:grid; grid-template-columns:.42fr 1fr; gap:50px; padding:38px; border:1px solid var(--line); border-radius:var(--radius-control); background:linear-gradient(130deg,#f3eadf,#fffdf9 72%); box-shadow:0 18px 42px rgb(48 46 42 / 8%); }
.development-mark { color:#d7c4ac; font-family:var(--display-font); font-size:clamp(100px,16vw,220px); line-height:.9; }
.development-detail-copy { align-self:center; }
.development-location { color:var(--muted); font-size:14px; margin-bottom:15px; }
.development-pending { margin:24px 0; padding:18px 20px; background:rgb(255 253 249 / 78%); border-left:2px solid var(--accent); }
.development-detail .button-primary { margin-top:8px; }
.development-back { margin-top:25px; }
.development-contact { display:flex; justify-content:space-between; align-items:center; gap:28px; margin-top:58px; padding:25px 0 0; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }

.service-page-heading { padding:92px 0 68px; background:linear-gradient(115deg,#eee2d2,#f7f2eb); }
.service-page-heading .section-description { max-width:630px; }
.service-detail-section { padding:76px 0 98px; background:var(--paper); }
.service-detail-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:78px; align-items:start; }
.service-detail-layout h2, .administration-layout h2 { margin-top:16px; font-size:clamp(34px,4.2vw,54px); line-height:1.12; letter-spacing:-.055em; }
.service-detail-layout > div > p:not(.eyebrow), .administration-layout > div > p:not(.eyebrow) { margin-top:20px; color:var(--muted); font-size:15px; line-height:1.8; }
.service-detail-layout .service-terms-note, .administration-layout .service-terms-note { padding-left:15px; border-left:2px solid var(--accent); font-size:13px !important; }
.administration-section { padding:84px 0; background:var(--stone); }
.administration-layout { display:flex; justify-content:space-between; align-items:center; gap:48px; }
.administration-layout > div { max-width:680px; }
.administration-layout .button-primary { flex:none; }

@media (max-width:1023px) {
  .service-detail-layout { grid-template-columns:1fr 1fr; gap:38px; }
  .development-detail { grid-template-columns:.3fr 1fr; gap:30px; }
}
@media (max-width:639px) {
  .main-navigation.mobile-open .nav-dropdown { flex-basis:100%; }
  .nav-dropdown-menu { left:0; right:0; }
  .property-pathways { padding:0 0 58px; }
  .pathways-grid, .development-grid { grid-template-columns:1fr; gap:14px; }
  .pathway-card { min-height:148px; padding:22px; }
  .development-section { padding:52px 0 64px; }
  .development-heading { margin-bottom:30px; }
  .development-heading h1, .service-page-heading h1 { font-size:42px; }
  .development-card { min-height:220px; padding:24px; }
  .development-detail { min-height:0; grid-template-columns:1fr; gap:15px; padding:25px 22px; }
  .development-mark { font-size:80px; }
  .development-contact, .administration-layout { flex-direction:column; align-items:flex-start; }
  .development-contact { gap:18px; margin-top:36px; }
  .development-contact .button-primary, .administration-layout .button-primary { width:100%; }
  .service-page-heading { padding:54px 0 42px; }
  .service-detail-section { padding:50px 0 64px; }
  .service-detail-layout { grid-template-columns:1fr; gap:30px; }
  .service-detail-layout h2, .administration-layout h2 { font-size:35px; }
  .administration-section { padding:54px 0; }
  .property-operation-badge { left:11px; bottom:11px; max-width:calc(100% - 22px); padding:7px 10px; font-size:11px; }
  .property-footer { align-items:flex-start; }
  .property-footer .card-button { flex:none; margin-left:auto; }
  .catalog-category-links { gap:15px 20px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }


/* El estado cerrado conserva una jerarquía más discreta que una venta. */
.property-card-rented .property-price { color:var(--muted); }
.search-submit:hover { background:var(--accent-dark); box-shadow:0 8px 20px rgb(145 14 23 / 16%); transform:translateY(-1px); }

/* Logo original completo: proporciones y letras conservadas. */
.brand-logo { width:112px; height:112px; object-fit:contain; mix-blend-mode:multiply; transition:filter .25s,transform .25s; }
.site-header .brand-logo { clip-path:inset(0 0 3px); }
.site-header.is-scrolled .brand-logo { filter:drop-shadow(0 2px 3px rgb(48 46 42 / 13%)); transform:translateY(-1px); }
.site-header.is-scrolled .main-navigation a { color:var(--ink); }
.site-footer .brand-logo { width:104px; height:104px; mix-blend-mode:normal; border-radius:var(--radius-control); box-shadow:0 0 0 1px rgba(255,255,255,.1); }
.site-footer .footer-logo { display:block; width:144px; height:auto; }
@media (max-width:639px) { .site-footer .footer-logo { width:120px; } }
.brand-lockup { display:flex; align-items:center; gap:10px; flex:none; width:196px; height:68px; }
.site-footer .brand-lockup { --footer-logo-scale:1; box-sizing:content-box; width:calc(212px * var(--footer-logo-scale)); height:calc(76px * var(--footer-logo-scale)); gap:calc(10px * var(--footer-logo-scale)); padding:8px 10px; background:var(--paper); border-radius:var(--radius-control); }
.site-footer .brand-logo-mark { width:calc(70px * var(--footer-logo-scale)); height:calc(76px * var(--footer-logo-scale)); }
.site-footer .brand-logo-mark img { width:calc(145.5px * var(--footer-logo-scale)); left:calc(-35.5px * var(--footer-logo-scale)); top:calc(-26.5px * var(--footer-logo-scale)); }
.site-footer .brand-logo-wordmark { width:calc(132px * var(--footer-logo-scale)); height:calc(44px * var(--footer-logo-scale)); }
.site-footer .brand-logo-wordmark img { width:calc(189.6px * var(--footer-logo-scale)); left:calc(-36px * var(--footer-logo-scale)); top:calc(-131.9px * var(--footer-logo-scale)); }
@media (max-width:639px) {
  .site-footer .brand-lockup { --footer-logo-scale:.7; }
  .site-footer .footer-main > .brand { grid-column:1 / -1; justify-self:start; }
}
@media (max-width:380px) { .site-footer .brand-lockup { --footer-logo-scale:.64; } }
.brand-logo-crop { position:relative; display:block; flex:none; overflow:hidden; mix-blend-mode:multiply; }
.brand-logo-crop img { position:absolute; display:block; max-width:none; height:auto; }
.brand-logo-mark { width:64px; height:68px; }
.brand-logo-mark img { width:145.5px; left:-38.5px; top:-29.5px; }
.brand-logo-wordmark { width:122px; height:38px; }
.brand-logo-wordmark img { width:189.6px; left:-38.9px; top:-133.9px; }
.property-card-rented .card-button { color:var(--muted); }
@media (max-width:1023px) { .brand-logo { width:84px; height:84px; } }
@media (max-width:1023px) {
  .brand-lockup { gap:8px; width:172px; height:62px; }
  .brand-logo-mark { width:58px; height:61px; }
  .brand-logo-mark img { width:131.9px; left:-34.9px; top:-26.7px; }
  .brand-logo-wordmark { width:106px; height:32px; }
  .brand-logo-wordmark img { width:164.8px; left:-33.8px; top:-116.3px; }
}
@media (max-width:639px) {
  html { scroll-padding-top:106px; }
  .brand-logo { width:80px; height:80px; }
  .site-footer .brand-logo { width:100px; height:100px; }
  .brand-lockup { gap:5px; width:141px; height:51px; }
  .brand-logo-mark { width:48px; height:51px; }
  .brand-logo-mark img { width:109.8px; left:-29px; top:-22.1px; }
  .brand-logo-wordmark { width:88px; height:27px; }
  .brand-logo-wordmark img { width:136.8px; left:-28.1px; top:-96.6px; }
  .property-location, .price-label { font-size:13px; }
  .property-specs, .property-occupancy { font-size:13px; }
  .footer-social, .footer-bottom { font-size:13px; }
}
@media (max-width:380px) {
  .brand-lockup { gap:4px; width:130px; height:47px; }
  .brand-logo-mark { width:44px; height:47px; }
  .brand-logo-mark img { width:100px; left:-26.4px; top:-20.3px; }
  .brand-logo-wordmark { width:82px; height:25px; }
  .brand-logo-wordmark img { width:127.4px; left:-26.1px; top:-89.9px; }
  .header-inner { gap:10px; }
}

/* Selección de portada: tres publicaciones, con igual jerarquía. */
.hero-layout { width:100%; }
.hero-office .hero-image > img { object-position:100% 60%; filter:none; }
.hero-office .hero-image > img.hero-carousel-layer { position:absolute; inset:0; opacity:0; transform:scale(1.045) translateX(1%); transition:opacity .9s ease,transform 1.2s cubic-bezier(.22,.61,.36,1); will-change:opacity,transform; }
.hero-office .hero-image > img.hero-carousel-layer.is-active { opacity:1; transform:scale(1) translateX(0); }
@media (prefers-reduced-motion:reduce) { .hero-office .hero-image > img.hero-carousel-layer { transition:none; transform:none; } }
.editorial-grid .property-card { border:0; border-radius:var(--radius-control); background:transparent; }
.editorial-grid .property-photo { aspect-ratio:4 / 3; border-radius:var(--radius-control); }
.editorial-grid .property-body { padding:22px 0 0; }
.editorial-grid .property-title { font-size:23px; font-weight:600; line-height:1.3; margin-top:10px; }
.editorial-grid .property-location { font-size:12px; letter-spacing:.02em; }
.editorial-grid .property-specs { font-size:14px; font-weight:400; }
.editorial-grid .property-specs > span + span::before { padding:0 6px; }
.editorial-grid .property-price { font-size:27px; font-weight:600; }
.editorial-grid .property-footer { gap:12px; }
.editorial-grid .card-button { min-height:44px; font-size:13px; gap:8px; }
.editorial-grid .card-button .material-symbols-outlined { width:36px; height:36px; }
.property-operation-badge { box-shadow:none; font-size:11px; letter-spacing:.07em; }
.button-primary, .button-primary:hover, .button-outline:hover, .search-submit, .search-submit:hover { box-shadow:none; }
.site-header.is-scrolled { box-shadow:none; }
.property-grid:has(> .property-card:only-child) { grid-template-columns:minmax(0,640px); justify-content:center; }
.floating-contact { position:fixed; display:block; width:48px; height:48px; right:max(16px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); }
.icon-button, .gallery-arrow, .menu-toggle { width:44px; height:44px; }
.catalog-tab, .catalog-options button { min-height:44px; }
.property-title button { min-height:44px; }
.gallery-toolbar, .detail-address, .detail-facts span, .detail-conditions, .detail-source { font-size:14px; }
.whatsapp-ready { margin-top:18px; font-size:14px; }
.administration-actions { display:grid; gap:12px; justify-items:stretch; flex:none; }
.development-card-copy { display:flex; flex-direction:column; align-items:flex-start; flex:1; }
.development-card-with-image { grid-column:1 / -1; display:grid; grid-template-columns:.8fr 1fr; padding:0; overflow:hidden; background:var(--white); box-shadow:none; }
.development-card-with-image .development-card-copy { padding:36px; justify-content:center; }
.development-image { margin:0; min-width:0; background:var(--stone); }
.development-image img { width:100%; height:auto; }
.development-image figcaption { padding:10px 16px; color:var(--muted); font-size:13px; }
.development-gallery { min-width:0; background:var(--stone); align-self:start; }
.development-gallery-stage { position:relative; }
.development-gallery-stage > .photo-button { height:auto; }
.development-gallery-stage img { display:block; width:100%; height:auto; max-height:720px; object-fit:contain; }
.development-gallery-stage > video { display:block; width:100%; height:auto; max-height:720px; aspect-ratio:3 / 4; object-fit:contain; background:var(--ink); }
.development-land .development-gallery-stage { aspect-ratio:4 / 3; }
.development-land .development-gallery-stage > .photo-button { height:100%; }
.development-land .development-gallery-stage img { height:100%; max-height:none; object-fit:cover; }
.development-land .development-gallery-stage > video { height:100%; max-height:none; aspect-ratio:auto; }
.development-land.development-detail-with-image > .development-detail-copy { padding:28px 32px; }
.development-land .development-detail-copy > h2 { font-size:clamp(28px,2vw,34px); line-height:1.2; }
.development-land .development-facts { margin-block:16px; font-size:14px; line-height:1.6; }
.development-land .development-facts li { margin-block:4px; }
.development-land .development-financing { margin-top:18px; padding-top:18px; }
.development-land .development-financing ul { font-size:14px; line-height:1.6; }
.development-land .development-financing li { margin-block:4px; }
@media (max-width:639px) {
  .development-land.development-detail-with-image > .development-detail-copy { padding:24px; }
}
.development-gallery-prev { left:12px; }
.development-gallery-next { right:12px; }
.development-gallery-caption { padding:14px 16px 8px; color:var(--muted); font-size:13px; }
.development-gallery-thumbnails { display:flex; gap:8px; padding:8px 16px 16px; overflow-x:auto; }
.development-gallery-thumbnails button { position:relative; width:56px; height:76px; flex:none; border:2px solid transparent; }
.development-video-badge { position:absolute; inset:0; display:grid; place-items:center; color:#fff; background:rgb(0 0 0 / 35%); font-size:20px; }
.development-gallery-thumbnails button[aria-current="true"] { border-color:var(--accent); }
.development-gallery-thumbnails img { width:100%; height:100%; object-fit:cover; }
.development-viewer { width:min(1000px,calc(100vw - 24px)); height:calc(100dvh - 24px); padding:54px 16px 42px; border:0; border-radius:var(--radius-control); background:var(--paper); overflow:hidden; }
.development-viewer::backdrop { background:rgb(28 30 25 / 75%); }
.development-viewer > img { width:100%; height:100%; object-fit:contain; }
.development-viewer > video { width:100%; height:100%; object-fit:contain; background:var(--ink); }
.development-viewer > .icon-button { position:absolute; right:12px; top:8px; }
.development-viewer > p { position:absolute; left:16px; right:16px; bottom:10px; text-align:center; color:var(--muted); font-size:13px; }
.development-card-with-image .development-image img { max-height:540px; object-fit:contain; }
.development-card .development-card-price { color:var(--ink); font-size:28px; font-weight:600; }
.development-detail-with-image { grid-template-columns:.95fr 1.05fr; padding:0; overflow:hidden; background:var(--white); box-shadow:none; }
.development-detail-with-image .development-detail-copy { padding:36px; }
.development-price { font-size:38px; font-weight:600; letter-spacing:-.04em; margin:8px 0 24px; }
.development-facts, .development-financing ul { padding-left:20px; color:var(--muted); line-height:1.8; font-size:15px; }
.development-facts li, .development-financing li { margin:8px 0; }
.development-financing { padding:24px 0; margin-top:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.development-financing h2 { font-size:24px; font-weight:600; line-height:1.3; }
.development-financing > p { color:var(--muted); margin-top:8px; font-size:14px; }
.development-delivery { margin-top:24px; }
.development-delivery strong { display:block; margin-top:8px; font-size:20px; font-weight:600; }
@media (max-width:639px) {
  .development-card-with-image, .development-detail-with-image { grid-template-columns:1fr; gap:0; }
  .development-card-with-image .development-card-copy, .development-detail-with-image .development-detail-copy { padding:24px; }
  .development-price { font-size:32px; }
  .development-detail-with-image .button-primary { width:100%; }
}
.whatsapp-ready .text-link { min-height:44px; }
.search-field label, .catalog-meta, .catalog-disclaimer { font-size:14px; }
@media (min-width:640px) and (max-width:1023px) {
  .editorial-grid { gap:20px; }
  .editorial-grid .property-footer { flex-direction:column; align-items:flex-start; }
  .editorial-grid .property-title { font-size:21px; }
  .owners-layout { padding:0; gap:36px; }
}
@media (min-width:640px) and (max-width:767px) {
  .editorial-grid { grid-template-columns:1fr; }
  .editorial-grid .property-card { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .editorial-grid .property-body { padding:0; }
}
@media (max-width:639px) {
  .hero-layout { min-height:0; }
  .hero-copy h1 { font-size:clamp(44px,12vw,60px); }
  .hero-figure { min-height:360px; }
  .hero-copy > .eyebrow { font-size:11px; }
  .hero-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .hero-actions > .button-primary, .hero-actions > .button-outline { min-width:0; width:100%; min-height:52px; padding:12px; gap:8px; font-size:13px; white-space:nowrap; }
  .hero-actions > .button-primary .material-symbols-outlined, .hero-actions > .button-outline .material-symbols-outlined { font-size:18px; }
  .hero-owner-link { grid-column:1 / -1; margin-top:4px; }
  .selection-section { padding:56px 0 36px; }
  .editorial-grid { grid-template-columns:1fr; gap:38px; margin-top:28px; }
  .editorial-grid .property-title { font-size:24px; }
  .editorial-grid .property-location { font-size:13px; }
  .editorial-grid .property-footer { flex-direction:row; align-items:center; }
  .owners-layout { padding:0; }
  .owners-heading h2 { font-size:36px; }
  .property-pathways { padding-bottom:56px; }
  .pathway-card { min-height:112px; }
  .footer-links a, .footer-social, .footer-bottom a { min-height:44px; display:flex; align-items:center; }
  .footer-social { display:block; }
  .hero-figure figcaption .eyebrow { font-size:11px; }
  .form-field label, .form-note { font-size:14px; }
  .contact-channels a { min-height:36px; }
}

/* Dirección final: fotografía protagonista, tipografía única y controles esenciales. */
:root { --accent-secondary:#ffb900; --accent-secondary-text:#916000; --accent-secondary-wash:#fff1ce; }
.hero-copy h1 { font-weight:700; }
.hero-description, .section-description, .property-location, .property-specs, .owners-note { color:var(--muted); }
.hero-copy > .eyebrow { gap:0; }
.hero-figure::after { content:none; }
.hero-office .hero-image { bottom:80px; }
.hero-figure figcaption { left:0; right:0; bottom:0; height:80px; padding:16px 28px; background:var(--stone); color:var(--ink); }
.hero-figure figcaption .eyebrow { color:var(--muted); font-size:10px; letter-spacing:.08em; }
.hero-figure figcaption > div > span:last-child { font-size:14px; font-weight:500; }
.hero-office-link { display:grid; gap:2px; }
.hero-office-link > span:last-child { font-size:14px; font-weight:500; }
.office-arrow { display:inline-block; margin-left:10px; transition:transform .25s ease; }
.hero-office-link:hover .office-arrow { transform:translate(2px,-2px); }
.hero-image-button { width:auto; height:auto; gap:10px; display:inline-flex; color:var(--ink); background:transparent; font-size:13px; }
.hero-image-button span { font-size:20px; transition:transform .25s ease; }
.hero-image-button:hover { color:var(--accent-text); background:transparent; transform:none; box-shadow:none; }
.hero-image-button:hover span { transform:translate(2px,-2px); }
.button-primary, .button-outline, .search-submit { justify-content:center; box-shadow:none; }
.button-primary { border-color:var(--accent); }
.button-outline { border-color:rgb(36 33 30 / 30%); background:transparent; }
.button-primary:hover, .search-submit:hover { background:var(--accent-dark); transform:none; box-shadow:none; }
.button-outline:hover { background:transparent; border-color:var(--ink); transform:none; box-shadow:none; }
.hero-actions > .button-primary, .hero-actions > .button-outline { min-width:150px; }
.section-heading .eyebrow::before, .services-intro > .eyebrow::before, .owners-heading > .eyebrow::before, .owners-copy > .eyebrow::before, .about-layout > div > .eyebrow::before { content:none; }
.text-link { position:relative; border-bottom:0; }
.text-link .material-symbols-outlined { transition:transform .25s ease; }
.text-link:hover .material-symbols-outlined { transform:translate(2px,-2px); }
.selection-section { padding:96px 0 64px; }
.editorial-grid { gap:32px; }
.property-card, .editorial-grid .property-card { border:0; background:var(--white); box-shadow:none; overflow:hidden; transform:none; }
.property-photo, .editorial-grid .property-photo { aspect-ratio:4 / 3; border:0; border-radius:var(--radius-control); }
.property-photo img { filter:none; transition:transform .5s cubic-bezier(.22,.61,.36,1); }
.property-card:hover .property-photo img, .property-card:focus-within .property-photo img { transform:scale(1.025); }
.property-body, .editorial-grid .property-body { padding:24px; }
.property-caption { justify-content:flex-start; gap:8px 12px; }
.property-operation-badge { position:static; padding:0; background:transparent; color:var(--accent-text); border:0; box-shadow:none; backdrop-filter:none; font-size:10px; font-weight:600; letter-spacing:.12em; }
.property-card[data-card-operation="alquiler"] { --card-accent:var(--accent-secondary-text); }
.property-card[data-card-operation="alquiler"] .property-operation-badge { color:var(--card-accent); }
.property-location, .editorial-grid .property-location { font-size:10px; font-weight:500; letter-spacing:.025em; line-height:1.6; }
.property-title, .editorial-grid .property-title { margin-top:16px; font-size:24px; font-weight:600; line-height:1.3; }
.property-title button { min-height:0; }
.property-specs, .editorial-grid .property-specs { flex-wrap:nowrap; margin-top:12px; font-size:13px; font-weight:400; white-space:nowrap; }
.property-specs > span + span::before, .editorial-grid .property-specs > span + span::before { padding:0 6px; color:var(--muted); }
.property-occupancy { font-size:12px; line-height:1.7; margin-top:12px; }
.occupancy-badge { display:inline-flex; align-items:flex-start; align-self:flex-start; width:fit-content; gap:6px; max-width:100%; padding:3px 7px; border:1px solid rgb(94 79 61 / 12%); border-radius:3px; background:#f5f0e8; color:#48413a; font-size:12px; font-weight:400; line-height:1.5; text-align:left; white-space:normal; }
.occupancy-badge::before { content:""; width:5px; height:5px; margin-top:calc((1.5em - 5px) / 2); border-radius:50%; background:#8b7964; flex:none; }
.occupancy-badge > span { min-width:0; overflow-wrap:anywhere; word-break:normal; }
.property-footer-wrap { padding-top:28px; }
.property-footer, .editorial-grid .property-footer { display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding-top:0; border:0; }
.property-price, .editorial-grid .property-price { color:var(--ink); font-size:34px; font-weight:700; gap:6px 8px; }
.price-currency { color:var(--ink); font-size:13px; font-weight:600; letter-spacing:.03em; }
.price-suffix { font-size:12px; font-weight:400; }
.card-button, .editorial-grid .card-button { min-height:44px; gap:12px; font-size:13px; font-weight:500; }
.property-footer .card-button { margin-left:0; }
.card-arrow { display:inline-block; font-size:22px; line-height:1; font-weight:400; transition:transform .25s ease; }
.card-button .material-symbols-outlined, .editorial-grid .card-button .material-symbols-outlined { width:auto; height:auto; border:0; background:transparent; color:inherit; }
.card-button:hover { color:var(--accent-text); }
.card-button:hover .card-arrow { transform:translate(3px,-3px); }
.selection-bottom { border:0; margin-top:32px; padding-top:0; }
.property-pathways { padding-bottom:96px; }
.pathways-grid { gap:32px; }
.pathway-card { min-height:170px; padding:36px; background:var(--stone); border:1px solid transparent; box-shadow:none; }
.pathway-card .eyebrow { font-size:10px; letter-spacing:.1em; color:var(--muted); }
.pathway-card h2 { max-width:calc(100% - 36px); margin-top:12px; font-size:32px; font-weight:500; }
.pathway-arrow { position:absolute; right:36px; bottom:36px; font-size:28px; line-height:1; transition:transform .25s ease; }
.pathway-card:nth-child(2) { --pathway-accent:var(--accent-secondary-text); }
.pathway-card:is(:hover,:focus-visible) { color:var(--pathway-accent,var(--accent-text)); background:var(--stone); border-color:transparent; transform:none; box-shadow:none; }
.pathway-card:hover .pathway-arrow { transform:translate(3px,-3px); }
.services-section, .owners-section, .about-section, .contact-section { padding-block:96px; }
.services-layout { gap:80px; }
.service-row { padding:28px 0; --service-accent:var(--accent); --service-glow:rgb(227 6 19 / 8%); }
.service-row:nth-of-type(even) { --service-accent:var(--accent-secondary); --service-glow:rgb(255 185 0 / 8%); }
.service-row:focus-visible { outline-color:var(--service-accent); }
.service-row:first-child { padding-top:28px; }
.service-row > .material-symbols-outlined { width:auto; height:auto; border:0; background:transparent; color:var(--paper); transition:color .25s ease,transform .25s ease; }
.service-row:hover { background:transparent; }
.service-row:is(:hover,:focus-visible) > .material-symbols-outlined { color:var(--service-accent); background:transparent; border:0; transform:translate(2px,-2px); }
.service-row h3 { font-size:27px; }
.service-row:is(:hover,:focus-visible) h3 { color:var(--service-accent); }
.service-row:is(:hover,:focus-visible) { border-color:var(--service-accent); }
.services-intro > .eyebrow { color:var(--paper); }
.owners-copy, .about-address { border-left:0; padding-left:0; }
.contact-layout { gap:96px; }
.contact-form { padding:44px; border:0; background:var(--white); }
.contact-form-row { gap:24px; }
.form-field { margin-bottom:28px; }
.form-field label { font-size:12px; font-weight:500; }
.form-field input, .form-field textarea, .form-field select { background:transparent; border:1px solid var(--line); padding:14px; box-shadow:none; }
.form-field input:hover, .form-field textarea:hover, .form-field select:hover { border-color:rgb(36 33 30 / 35%); background:transparent; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { background:transparent; border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.contact-form .button-primary { min-height:58px; }
.form-note, .whatsapp-ready { font-size:12px; color:var(--muted); }
.development-card, .development-detail, .service-page-heading { background:var(--stone); box-shadow:none; }
.development-card-copy, .development-detail-with-image .development-detail-copy, .development-card-with-image .development-card-copy { padding:40px; }
.development-financing { border-bottom:0; padding-bottom:0; }
.development-building .development-title { margin:10px 0 12px; font-size:clamp(28px,3vw,42px); font-weight:600; line-height:1.12; letter-spacing:-.04em; }
.development-building .development-location { margin:0; font-size:14px; line-height:1.6; color:var(--muted); }
.development-price-block { margin:24px 0; }
.development-building .development-price { margin:6px 0 0; font-size:28px; line-height:1.2; }
.development-fact-groups { display:grid; gap:20px; padding-top:24px; border-top:1px solid var(--line); }
.development-fact-group h3 { margin:0 0 8px; font-size:16px; font-weight:600; line-height:1.4; }
.development-fact-group ul { margin:0; padding-left:18px; list-style:disc; color:var(--muted); font-size:15px; line-height:1.65; }
.development-fact-group li { margin:4px 0; padding-left:2px; }
.development-building .development-financing { margin-top:28px; padding-top:24px; }
.development-building .development-financing h3 { margin:0; font-size:22px; font-weight:600; line-height:1.3; }
.development-financing .development-financing-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0 0; padding:0; list-style:none; counter-reset:financing-step; }
.development-financing .development-financing-steps > li { margin:0; padding:14px 12px; min-width:0; background:var(--paper); border:1px solid var(--line); counter-increment:financing-step; }
.development-step-title { display:block; color:var(--ink); font-size:13px; line-height:1.45; font-weight:500; }
.development-step-title::before { content:counter(financing-step,decimal-leading-zero) " · "; color:var(--accent); }
.development-financing-steps strong { display:block; margin:12px 0 8px; color:var(--ink); font-size:clamp(19px,1.65vw,25px); font-weight:600; line-height:1.2; letter-spacing:-.025em; }
.development-financing-steps p { margin:0; font-size:13px; line-height:1.6; }
.development-financing .development-financing-notes { margin:14px 0 0; padding-left:18px; list-style:disc; font-size:13px; line-height:1.6; }
.development-financing .development-financing-notes li { margin:6px 0; }
.development-building { row-gap:0; }
.development-building-bottom { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:40px; margin:0 40px; padding:28px 0 36px; border-top:1px solid var(--line); }
.development-building-bottom .development-financing { margin:0; padding:0; border:0; }
.development-building-inquiry { padding-left:28px; border-left:1px solid var(--line); align-self:start; }
.development-building-inquiry .development-delivery { margin-top:0; }
.development-building-inquiry .development-note { margin-top:20px; }
@media (max-width:899px) {
  .development-building-bottom { grid-template-columns:1fr; gap:24px; margin:0 24px; padding:24px 0; }
  .development-building-inquiry { padding:24px 0 0; border-left:0; border-top:1px solid var(--line); }
}
@media (max-width:1099px) {
  .development-financing .development-financing-steps { grid-template-columns:1fr; }
  .development-financing .development-financing-steps > li { padding:14px 16px; }
  .development-financing-steps strong { margin:8px 0 6px; font-size:24px; }
}
@media (max-width:639px) {
  .development-gallery-stage img, .development-gallery-stage > video { max-height:none; }
  .development-gallery-caption { padding-top:12px; padding-bottom:4px; }
  .development-building .development-price { font-size:24px; }
  .development-price-block { margin-block:20px; }
}
.brand:hover .brand-logo { transform:none; }
.site-footer .brand-logo { box-shadow:none; }
.floating-contact { display:block; background:transparent; border-radius:50%; box-shadow:0 6px 22px rgb(35 53 33 / 22%); }
.floating-contact:hover { background:transparent; transform:translateY(-2px); box-shadow:0 8px 24px rgb(35 53 33 / 25%); }
@media (max-width:1023px) {
  .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
  .services-layout { gap:48px; }
  .contact-layout { gap:48px; }
  .property-title, .editorial-grid .property-title { font-size:23px; }
}
@media (max-width:767px) {
  .editorial-grid { grid-template-columns:1fr; gap:32px; }
  .editorial-grid .property-card { display:flex; }
  .editorial-grid .property-body { padding:24px; }
  .services-section, .owners-section, .about-section, .contact-section { padding-block:64px; }
  .selection-section { padding:64px 0 48px; }
  .property-pathways { padding-bottom:64px; }
  .pathway-card { min-height:148px; padding:28px; }
  .pathway-card h2 { font-size:28px; }
  .pathway-arrow { right:28px; bottom:28px; }
  .contact-form { padding:30px 24px; }
  .contact-layout { gap:48px; }
  .hero-figure figcaption { padding:14px 20px; }
  .hero-image-button { font-size:12px; gap:6px; }
  .hero-figure figcaption > div > span:last-child { font-size:12px; }
  .hero-office-link > span:last-child { font-size:13px; }
  .hero-actions > .button-primary, .hero-actions > .button-outline { min-width:0; }
  .development-detail-with-image .development-detail-copy, .development-card-with-image .development-card-copy { padding:28px 24px; }
}
@media (max-width:359px) { .property-specs, .editorial-grid .property-specs { font-size:12px; } }
/* Hover visible y breve, conservando las superficies y controles minimalistas. */
.property-card, .editorial-grid .property-card { transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease; }
.property-title button { transition:color .25s ease; }
.service-row h3 { transition:color .25s ease,transform .25s ease; }
.contact-channels .contact-channel-arrow,
.footer-social .material-symbols-outlined { transition:transform .25s ease; }
.button-primary, .button-outline, .search-submit { position:relative; isolation:isolate; overflow:hidden; }
.button-primary::after, .button-outline::after, .search-submit::after { content:""; position:absolute; inset:-40% auto -40% 0; width:45%; background:linear-gradient(100deg,transparent,rgb(255 253 249 / 28%),transparent); transform:translateX(-160%) skewX(-15deg); opacity:0; pointer-events:none; }
.gallery-thumbnails button, .development-gallery-thumbnails button { transition:transform .25s ease,border-color .25s ease; }
@media (prefers-reduced-motion:no-preference) {
  .button-primary::after, .button-outline::after, .search-submit::after { transition:transform .65s ease,opacity .15s ease; }
  .button-primary:hover::after, .button-outline:hover::after, .search-submit:hover::after { transform:translateX(400%) skewX(-15deg); opacity:1; }
  .button-primary:hover, .search-submit:hover, .hero-actions > .button-primary:hover { transform:translateY(-4px); box-shadow:0 10px 24px rgb(145 14 23 / 20%); }
  .button-outline:hover { transform:translateY(-4px); background:var(--accent-secondary-wash); border-color:var(--accent-secondary-text); box-shadow:0 10px 20px rgb(36 33 30 / 10%); }
  .button-primary:active, .button-outline:active, .search-submit:active, .hero-actions > .button-primary:active { transform:translateY(-1px) scale(.98); }
  .contact-channels a:hover .contact-channel-arrow,
  .footer-social:hover .material-symbols-outlined { transform:translate(3px,-3px); }
  .property-card:hover, .editorial-grid .property-card:hover { transform:translateY(-8px); box-shadow:0 18px 36px rgb(36 33 30 / 12%); }
  .property-card:hover .property-photo img { transform:scale(1.075); }
  .property-card:hover .property-title button, .property-card:hover .card-button { color:var(--card-accent,var(--accent-text)); }
  .property-card:hover .card-arrow { transform:translate(6px,-4px); }
  .hero-office:hover .hero-image > img.hero-carousel-layer.is-active { transform:scale(1.05); }
  .hero-office-link:hover .office-arrow { transform:translate(5px,-3px); }
  .pathway-card:hover .pathway-arrow { transform:translate(6px,-4px); }
  .text-link:hover, .hero-owner-link:hover { color:var(--accent-text); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
  .service-row:hover { background:linear-gradient(90deg,transparent,var(--service-glow)); }
  .service-row:hover h3 { transform:translateX(6px); }
  .service-row:hover > .material-symbols-outlined { transform:translate(6px,-4px); }
  .contact-channels a:hover, .contact-email:hover { color:var(--accent-text); }
  .footer-links a:hover, .footer-social:hover { transform:translateX(4px); }
  .gallery-thumbnails button:hover, .development-gallery-thumbnails button:hover { transform:translateY(-2px); border-color:var(--accent); }
  .form-field input:hover, .form-field textarea:hover, .form-field select:hover { background:var(--paper); box-shadow:0 0 0 3px rgb(36 33 30 / 3%); }
  .floating-contact:hover { transform:translateY(-4px) scale(1.12) rotate(-4deg); box-shadow:0 0 0 5px rgb(37 211 102 / 12%),0 10px 26px rgb(35 53 33 / 24%); }
}
/* Contacto: áreas primero, formulario y correspondencia como segundo nivel. */
#contacto.contact-redesign .section-heading { margin-bottom:40px; }
.contact-area-heading h3 { font-size:28px; font-weight:600; line-height:1.25; letter-spacing:-.035em; }
.contact-area-heading p { margin-top:8px; color:var(--muted); font-size:15px; }
.contact-area-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; gap:20px; margin-top:24px; }
.contact-area-card { min-width:0; display:flex; flex-direction:column; padding:18px; border:1px solid var(--line); background:var(--white); border-radius:var(--radius-control); }
.contact-area-card h4 { min-height:44px; margin:0 0 12px; font-size:16px; font-weight:500; line-height:1.45; }
.contact-area-people { display:grid; align-content:start; border-top:1px solid var(--line); }
.contact-area-person { display:grid; grid-template-columns:32px minmax(0,1fr) 16px; align-items:center; gap:10px; min-height:62px; padding-block:10px; }
.contact-area-person + .contact-area-person { border-top:1px solid var(--line); }
.contact-area-symbol { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#16704e; background:#e8f2eb; }
.contact-area-icon { width:20px; height:20px; }
.contact-area-person-copy { min-width:0; display:grid; gap:3px; line-height:1.4; }
.contact-area-person-copy strong { font-size:15px; font-weight:500; }
.contact-area-person-copy > span { color:var(--muted); font-size:13px; white-space:nowrap; }
.contact-area-arrow { color:var(--muted); font-size:20px; }
.contact-area-person:focus-visible, .contact-correspondence-link:focus-visible { outline-offset:3px; }
.contact-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:40px; margin-top:32px; padding-top:32px; border-top:1px solid var(--line); align-items:start; }
.contact-workspace > .contact-secondary { grid-column:1; grid-row:1; }
.contact-workspace > .contact-form { grid-column:2; grid-row:1; }
#contacto.contact-redesign .contact-form { margin:0; padding:32px; min-width:0; }
#contacto.contact-redesign .contact-form h3 { margin-bottom:8px; font-size:25px; line-height:1.3; }
.contact-form-intro { margin-bottom:28px; font-size:14px; color:var(--muted); line-height:1.6; }
.contact-redesign .contact-form-row { column-gap:20px; row-gap:0; }
.contact-secondary { min-width:0; }
.contact-secondary > h3 { margin:4px 0 12px; font-size:25px; font-weight:600; line-height:1.3; letter-spacing:-.035em; }
.contact-correspondence-link { display:grid; gap:5px; padding-block:16px; border-bottom:1px solid var(--line); }
.contact-correspondence-label { font-size:13px; color:var(--muted); }
.contact-correspondence-address { min-width:0; font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
.contact-redesign > .site-container > .contact-map { margin-top:40px; }
.contact-area-card { transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease; }
.contact-area-card h4 { transition:color .22s ease; }
.contact-area-symbol { transition:background-color .22s ease,transform .22s ease; }
.contact-area-arrow { transition:color .22s ease,transform .22s ease; }
.contact-correspondence-address { transition:color .22s ease,transform .22s ease; }
.contact-area-card:focus-within { border-color:rgb(36 33 30 / 28%); box-shadow:0 6px 18px rgb(36 33 30 / 5%); }
.contact-area-card.is-pointer-hovered { transform:translateY(-5px); border-color:rgb(195 20 32 / 32%); box-shadow:0 12px 28px rgb(36 33 30 / 10%),inset 0 2px 0 rgb(195 20 32 / 65%); }
.contact-area-card.is-pointer-hovered h4 { color:var(--accent-text); }
.contact-area-card.is-pointer-hovered .contact-area-symbol { background:#dcece1; transform:scale(1.08); }
.contact-area-card.is-pointer-hovered .contact-area-arrow { color:var(--accent-text); transform:translate(3px,-3px); }
@media (hover:hover) and (pointer:fine) {
  .contact-area-card:hover { transform:translateY(-5px); border-color:rgb(195 20 32 / 24%); box-shadow:0 12px 28px rgb(36 33 30 / 9%),inset 0 2px 0 rgb(195 20 32 / 55%); }
  .contact-area-card:hover h4 { color:var(--accent-text); }
  .contact-area-card:hover .contact-area-symbol { background:#dcece1; transform:scale(1.05); }
  .contact-area-card:hover .contact-area-arrow { color:var(--accent-text); transform:translate(3px,-3px); }
  .contact-area-person:hover .contact-area-symbol { transform:scale(1.1); }
  .contact-correspondence-link:hover { border-bottom-color:rgb(36 33 30 / 32%); }
  .contact-correspondence-link:hover .contact-correspondence-address { transform:translateX(3px); }
  .contact-area-person:hover strong, .contact-area-person:hover .contact-area-arrow, .contact-correspondence-link:hover .contact-correspondence-address { color:var(--accent-text); }
}
@media (prefers-reduced-motion:reduce) {
  .contact-area-card, .contact-area-card h4, .contact-area-symbol, .contact-area-arrow, .contact-correspondence-address { transition:none; }
  .contact-area-card:hover, .contact-area-card:hover .contact-area-symbol, .contact-area-card:hover .contact-area-arrow, .contact-area-person:hover .contact-area-symbol, .contact-area-person:hover .contact-area-arrow, .contact-correspondence-link:hover .contact-correspondence-address { transform:none; }
  .contact-area-card.is-pointer-hovered, .contact-area-card.is-pointer-hovered .contact-area-symbol, .contact-area-card.is-pointer-hovered .contact-area-arrow { transform:none; }
}
@media (min-width:1280px) {
  .contact-area-grid { grid-template-columns:1fr 1.15fr 1fr 1.7fr; }
  .contact-area-card:last-child .contact-area-people { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .contact-area-card:last-child .contact-area-person { grid-template-columns:28px minmax(0,1fr) 12px; gap:8px; }
  .contact-area-card:last-child .contact-area-symbol { width:28px; height:28px; }
  .contact-area-card:last-child .contact-area-person + .contact-area-person { border-top:0; border-left:1px solid var(--line); padding-left:12px; }
}
@media (max-width:1279px) {
  .contact-area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .contact-workspace { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:28px; }
}
@media (max-width:767px) {
  #contacto.contact-redesign .section-heading { margin-bottom:28px; }
  .contact-area-heading h3 { font-size:24px; }
  .contact-area-grid { gap:12px; margin-top:20px; }
  .contact-area-card { padding:16px; }
  .contact-workspace { grid-template-columns:1fr; gap:32px; margin-top:28px; padding-top:28px; }
  .contact-workspace > .contact-form, .contact-workspace > .contact-secondary { grid-column:auto; grid-row:auto; }
  #contacto.contact-redesign .contact-form { padding:24px; }
  #contacto.contact-redesign .contact-form h3, .contact-secondary > h3 { font-size:23px; }
  .contact-correspondence-address { font-size:15px; }
}
@media (max-width:479px) {
  .contact-area-grid { grid-template-columns:1fr; }
  .contact-area-card h4 { min-height:0; margin-bottom:10px; }
  .contact-area-person { min-height:62px; }
  #contacto.contact-redesign .contact-form { padding:24px 20px; }
}
@media (prefers-reduced-motion:reduce) {
  .property-card:hover .property-photo img, .property-card:focus-within .property-photo img,
  .card-button:hover .card-arrow, .pathway-card:hover .pathway-arrow,
  .hero-image-button:hover span, .hero-office-link:hover .office-arrow, .service-row:hover > .material-symbols-outlined { transform:none; }
}

/* Navegación móvil en panel vertical, opaco y desplazable; WhatsApp permanece a mano. */
@media (max-width:1023px) {
  .main-navigation.mobile-open {
    top:calc(100% + 1px);
    left:0;
    right:0;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:0;
    max-height:calc(100vh - 96px);
    max-height:calc(100dvh - 96px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:8px 32px 16px;
    background:var(--canvas);
    border-bottom:1px solid var(--line);
    box-shadow:0 14px 28px rgb(36 33 30 / 12%);
  }
  .main-navigation.mobile-open > a,
  .main-navigation.mobile-open .nav-dropdown > summary {
    display:flex;
    align-items:center;
    min-height:50px; font-size:18px;
    padding:12px 0;
    border-bottom:1px solid var(--line);
  }
  .main-navigation.mobile-open > a::after { display:none; }
  .main-navigation.mobile-open .nav-dropdown { width:100%; }
  .main-navigation.mobile-open .nav-dropdown-menu {
    gap:0;
    margin:0;
    padding:4px 0 12px 12px;
  }
  .main-navigation.mobile-open .nav-dropdown-menu a { min-height:44px; padding:10px 8px; }
  .floating-contact {
    z-index:60;
    width:58px;
    height:58px;
    right:calc(16px + env(safe-area-inset-right));
    bottom:calc(16px + env(safe-area-inset-bottom));
  }
}
@media (max-width:639px) {
  .main-navigation.mobile-open { padding-inline:20px; }
}
.floating-contact {
  display:grid;
  place-items:center;
  color:#fff;
  width:56px;
  height:56px;
  overflow:hidden;
  border:1px solid rgb(255 255 255 / 78%);
  border-radius:50%;
  background:#25d366;
  box-shadow:0 8px 22px rgb(18 82 42 / 28%);
}
.floating-contact img { display:none; }
.floating-contact .floating-contact-icon { display:block; flex:none; width:32px; height:32px; fill:#fff; }
.floating-contact:focus-visible { outline:3px solid #128c7e; outline-offset:4px; }
@media (max-width:767px) {
  .floating-contact {
    z-index:60;
    right:calc(16px + env(safe-area-inset-right, 0px));
    bottom:calc(16px + env(safe-area-inset-bottom, 0px));
  }
  .hero-image-button { min-width:44px; min-height:44px; }
  .contact-channels a { min-height:72px; }
  .search-field select { min-height:44px; }
}
@media (max-width:400px) {
  .property-specs, .editorial-grid .property-specs { flex-wrap:wrap; white-space:normal; }
  .hero-actions { grid-template-columns:minmax(0,1fr); }
  .hero-owner-link { grid-column:1; }
}

/* Mapa de contacto a todo el ancho, debajo de las dos columnas. */
.contact-layout { row-gap: 52px; }
.contact-layout > .contact-map {
  grid-column: 1 / -1;
  margin-top: 0;
  height: auto;
}
@media (max-width: 767px) {
  .contact-layout { row-gap: 40px; }
  .contact-map-header { align-items:flex-start; flex-direction:column; gap:20px; padding:22px 20px; }
  .contact-map-actions { width:100%; }
  .contact-map-canvas { height:300px; }
}

/* Alinea el borde del logo con el contenido de la portada. */
.header-inner > .brand { margin-left: calc(clamp(64px, 7vw, 136px) - max(64px, calc(50vw - 640px))); }
@media (max-width: 1023px) {
  .header-inner > .brand { margin-left: 0; }
}

/* Acciones de portada diferenciadas para quienes buscan y quienes publican. */
.hero-actions { display:block; width:min(100%, 390px); }
.hero-explore { width:100%; }
.hero-action-label { margin-bottom:12px; color:var(--muted); font-size:12px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.hero-action-buttons { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hero-action-buttons > .button-primary, .hero-action-buttons > .button-outline { width:100%; min-width:0; min-height:54px; justify-content:center; padding:14px 12px; font-size:14px; white-space:nowrap; }
.hero-owner { display:flex; flex-direction:column; align-items:flex-start; gap:4px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); }
.hero-owner-label { color:var(--ink); font-size:14px; font-weight:600; }
.hero-owner-link { display:inline-flex; align-items:center; gap:10px; width:fit-content; flex-basis:auto; margin-top:0; padding:4px 0; color:var(--accent-text); font-size:15px; font-weight:500; }
.hero-owner-link > span:first-child { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.hero-owner-link .material-symbols-outlined { font-size:18px; transition:transform .22s ease; }
.hero-owner-link:hover .material-symbols-outlined { transform:translate(2px,-2px); }
@media (max-width: 639px) {
  .hero-actions { width:100%; }
  .hero-action-buttons > .button-primary, .hero-action-buttons > .button-outline { min-height:52px; padding:12px 8px; font-size:13px; }
  .hero-owner { margin-top:22px; padding-top:16px; }
}

/* Hero y encabezado con márgenes compartidos y altura ajustada al contenido. */
:root { --hero-content-inset:clamp(64px,7vw,112px); }
.header-inner { height:88px; gap:24px; }
.main-navigation { gap:clamp(20px,2vw,28px); }
.header-inner > .brand { margin-left:calc(var(--hero-content-inset) - max(64px, calc(50vw - 640px))); }
@media (min-width:1024px) {
  .header-inner { position:relative; }
  .main-navigation {
    position:absolute;
    top:50%;
    left:calc(44vw - max(64px, calc(50vw - 640px)));
    transform:translateY(-50%);
  }
}
@media (min-width:1024px) and (max-width:1199px) {
  .main-navigation { gap:8px; }
  .main-navigation a, .nav-dropdown > summary { font-size:18px; }
}
.hero-layout {
  grid-template-columns:minmax(0,44%) minmax(0,56%);
  min-height:clamp(660px,46vw,790px);
}
.hero-copy {
  justify-content:center;
  padding:48px clamp(48px,4vw,64px) 48px var(--hero-content-inset);
}
.hero-copy > .eyebrow { margin-bottom:16px; }
.hero-copy h1 { max-width:13ch; font-size:clamp(46px,4.3vw,62px); line-height:1.04; }
.hero-description { max-width:36rem; margin-top:24px; font-size:16px; line-height:1.7; }
.hero-actions { width:min(100%,390px); margin-top:24px; }
.hero-action-label { margin-bottom:8px; }
.hero-action-buttons { gap:12px; }
.hero-action-buttons > .button-primary, .hero-action-buttons > .button-outline { min-height:52px; padding:12px; font-size:14px; }
.hero-owner { margin-top:8px; padding-top:16px; }
.hero-owner-label { font-size:13px; }
.hero-figure { min-height:0; align-self:stretch; }
.hero-office .hero-image { bottom:88px; }
.hero-figure figcaption { height:88px; padding:16px clamp(18px,2.2vw,30px); }
@media (max-width: 1279px) {
  :root { --hero-content-inset:5vw; }
}
@media (max-width: 1023px) {
  :root { --hero-content-inset:32px; }
  .header-inner { height:80px; gap:18px; }
  .header-inner > .brand { margin-left:0; }
  .main-navigation.mobile-open { max-height:calc(100vh - 82px); max-height:calc(100dvh - 82px); }
  .hero-layout { grid-template-columns:minmax(0,42%) minmax(0,58%); }
  .hero-copy { padding:32px 32px 32px var(--hero-content-inset); }
  .hero-copy h1 { font-size:clamp(40px,5vw,54px); }
  .hero-figure figcaption { padding-inline:20px; }
}
@media (max-width: 767px) {
  :root { --hero-content-inset:32px; }
  .hero-layout { grid-template-columns:minmax(0,1fr); min-height:0; }
  .hero-copy { padding:32px var(--hero-content-inset) 24px; }
  .hero-copy h1 { max-width:14ch; font-size:clamp(42px,7vw,56px); }
  .hero-description { max-width:38rem; }
  .hero-actions { width:min(100%,390px); }
  .hero-figure { height:auto; aspect-ratio:1.55 / 1; min-height:0; }
  .hero-office .hero-image { bottom:88px; }
}
@media (max-width: 639px) {
  :root { --hero-content-inset:20px; }
  .header-inner { height:76px; gap:12px; }
  .header-inner > .brand { margin-left:0; }
  .hero-copy { padding:32px var(--hero-content-inset) 8px; }
  .hero-copy > .eyebrow { margin-bottom:16px; }
  .hero-copy h1 { max-width:14ch; font-size:clamp(42px,11vw,48px); }
  .hero-description { margin-top:24px; font-size:15px; }
  .hero-actions { margin-top:24px; }
  .hero-owner { margin-top:8px; padding-top:16px; }
  .hero-figure { width:100%; aspect-ratio:1.08 / 1; min-height:360px; }
  .hero-image > img { object-position:58% 58%; }
  .hero-figure figcaption { padding-inline:18px; }
}

/* Proporciones del inicio: contenido más amplio sin desplazar la fotografía. */
@media (min-width:1280px) {
  .home-main > section:not(#inicio) > .site-container,
  .home-main ~ .site-footer > .site-container,
  .development-page > section > .site-container,
  .development-page ~ .site-footer > .site-container,
  .service-page > section > .site-container,
  .service-page ~ .site-footer > .site-container { width:calc(100% - 128px); max-width:1440px; }
}
.development-detail-with-image > .development-detail-copy { align-self:start; }
.development-card-with-image > .development-card-copy { justify-content:flex-start; }
.service-page .service-detail-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:64px; }
.service-page .service-detail-layout h2 { max-width:16ch; font-size:clamp(34px,3.2vw,48px); }
.service-page .contact-form { padding:32px; }
.service-page .contact-form h3 { margin-bottom:24px; }
.service-page .contact-form-row { column-gap:18px; row-gap:0; }
.service-page .form-field { margin-bottom:20px; }
.service-page .form-field label { font-size:13px; }
.service-page .form-field input, .service-page .form-field select { min-height:48px; padding:12px; }
.service-page .form-field textarea { min-height:112px; padding:12px; }
.service-page .contact-form .button-primary { min-height:52px; }
.valuation-intro { min-width:0; }
.valuation-steps { display:grid; gap:14px; margin:28px 0 0; padding:0; list-style:none; counter-reset:valuation-step; }
.valuation-steps li { display:flex; align-items:baseline; gap:12px; color:var(--muted); font-size:14px; line-height:1.65; counter-increment:valuation-step; }
.valuation-steps li::before { content:counter(valuation-step,decimal-leading-zero); color:var(--accent-text); font-size:12px; font-weight:500; flex:none; }
.valuation-contact { display:grid; justify-items:start; gap:8px; margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.valuation-contact > span { color:var(--muted); font-size:13px; }
.valuation-contact .text-link { font-size:16px; min-height:44px; }
@media (min-width:768px) {
  .service-page-heading { padding:72px 0 56px; }
  .service-detail-section { padding:64px 0 72px; }
}
@media (max-width:1023px) {
  .service-page .service-detail-layout { gap:32px; }
}
@media (max-width:767px) {
  .service-page .service-detail-layout { grid-template-columns:1fr; gap:28px; }
  .service-page .contact-form { padding:24px; }
  .service-page .service-detail-layout h2 { font-size:35px; }
}
@media (min-width:1024px) {
  #inicio .hero-copy h1 { max-width:11ch; font-size:clamp(54px,4.8vw,84px); line-height:1.06; text-wrap:balance; }
}
@media (min-width:768px) {
  .home-main #seleccion .property-title { min-height:2.6em; }
  .home-main #seleccion .property-footer-wrap { margin-top:auto; padding-top:20px; }
}

/* Ritmo de espaciado refinado para el inicio. */
#inicio .hero-copy { padding-top:42px; padding-bottom:42px; }
#inicio .hero-copy > .eyebrow { margin-bottom:16px; }
#inicio .hero-description { max-width:36rem; margin-top:16px; font-size:15px; line-height:1.7; }
#inicio .hero-owner { margin-top:16px; padding-top:16px; }
#inicio .hero-actions > .button-primary, #propietarios .button-primary { font-weight:700; }
#inicio .hero-actions > .button-primary:hover, #propietarios .button-primary:hover {
  background:var(--accent-dark);
  border-color:var(--accent-dark);
  box-shadow:0 10px 22px rgb(145 14 23 / 24%);
  transform:translateY(-2px);
}
@media (hover:none), (pointer:coarse) {
  #inicio .hero-action-buttons > .button-primary,
  #inicio .hero-action-buttons > .button-primary:hover {
    background:var(--accent);
    border-color:var(--accent);
    box-shadow:none;
    transform:none;
  }
  #inicio .hero-action-buttons > .button-outline,
  #inicio .hero-action-buttons > .button-outline:hover {
    background:transparent;
    border-color:rgb(36 33 30 / 30%);
    box-shadow:none;
    transform:none;
  }
  #inicio .hero-action-buttons > a::after { content:none; }
  #inicio .hero-action-buttons > a:active { transform:scale(.98); }
}
#seleccion.selection-section { padding-bottom:56px; }
#seleccion .property-body { padding:18px 20px 20px; }
#seleccion .property-title { margin-top:12px; }
#seleccion .property-specs { margin-top:8px; }
#seleccion .property-footer-wrap { margin-top:8px; padding-top:8px; }
#seleccion .property-footer { gap:12px; }
#seleccion .property-price { font-size:36px; font-weight:700; }
#seleccion .card-button {
  margin-left:-12px;
  padding:8px 12px;
  border-radius:var(--radius-control);
  transition:color .2s ease,background-color .2s ease;
}
#seleccion .property-card:hover .property-photo img,
#seleccion .property-card:focus-within .property-photo img { transform:scale(1.03); }
#seleccion .property-card:is(:hover,:focus-within) .card-button { color:var(--paper); background:var(--accent); }
#seleccion .selection-bottom { margin-top:24px; }
#servicios.services-section { padding-block:80px; }
#servicios .services-layout { gap:64px; }
#servicios .service-row { padding-block:24px; }
#servicios .service-row:first-child { padding-top:24px; }
#propietarios.owners-section { padding-block:80px; }
#propietarios .owners-layout { gap:56px; }
#propietarios .owners-copy .button-primary { margin-top:16px; }
#contacto.contact-section { padding-block:80px; }
#contacto .contact-layout { column-gap:72px; row-gap:40px; }
#contacto .contact-channels { gap:16px 24px; margin-top:24px; }
#contacto .contact-channels .eyebrow { margin-bottom:8px; }
#contacto .contact-channels a { min-height:68px; margin-top:8px; padding:12px; }
#contacto .contact-emails { gap:8px; margin-top:16px; }
#contacto .contact-email { min-height:64px; }
#contacto .contact-form { margin-top:-16px; padding:32px 36px 40px; }
#contacto .contact-form h3 { margin-bottom:24px; }
#seleccion .section-heading .eyebrow,
#servicios .services-intro > .eyebrow,
#nosotros .about-layout > div:first-child > .eyebrow,
#contacto .section-heading .eyebrow { font-size:11px; opacity:1; }
.property-location, .editorial-grid .property-location { font-size:11px; }
.hero-figure figcaption .eyebrow, .pathway-card .eyebrow { font-size:11px; }
.contact-redesign input::placeholder, .contact-redesign textarea::placeholder { color:var(--muted); opacity:1; }
.site-footer { padding:32px 0 20px; }
.footer-main { gap:32px; padding-bottom:32px; }
@media (max-width:767px) {
  #inicio .hero-copy { padding-top:24px; padding-bottom:8px; }
  #seleccion.selection-section { padding-bottom:40px; }
  #seleccion .property-body { padding:18px; }
  #seleccion .selection-bottom { margin-top:24px; }
  #servicios.services-section { padding-block:44px; }
  #servicios .services-layout { gap:24px; }
  #servicios .services-intro .text-link { margin-top:18px; }
  #servicios .service-row, #servicios .service-row:first-child { padding-block:16px; }
  #servicios .service-row p { margin-top:6px; }
  #propietarios.owners-section { padding-block:36px; }
  #propietarios .owners-layout { gap:14px; padding:0; }
  #propietarios .owners-copy { padding-top:0; }
  #propietarios .owners-copy .button-primary { margin-top:12px; }
  #propietarios .owners-note { margin-top:10px; }
  #nosotros.about-section { padding-block:40px; }
  #nosotros .about-layout { gap:18px; }
  #nosotros .about-copy p + p { margin-top:12px; }
  #nosotros .about-address { padding-top:0; }
  #nosotros .about-address p { margin-top:0; }
  #contacto.contact-section { padding-block:56px; }
  #contacto .contact-layout { column-gap:32px; row-gap:32px; }
  #contacto .contact-channels { row-gap:16px; }
  #contacto .contact-emails { gap:8px; margin-top:16px; }
  #contacto .contact-form { margin-top:0; padding:24px; }
  .site-footer { padding:28px 0 18px; }
  .footer-main { gap:20px 16px; padding-bottom:24px; }
}
@media (prefers-reduced-motion:reduce) {
  #inicio .hero-actions > .button-primary:hover, #propietarios .button-primary:hover { transform:none; }
  #seleccion .property-card:hover .property-photo img,
  #seleccion .property-card:focus-within .property-photo img { transform:none; }
}
/* Hero inmersivo: fotografía a todo el ancho y contenido superpuesto. */
.home-immersive .header-inner > .brand { margin-left:0; }
@media (min-width:1024px) {
  .home-immersive .header-inner { width:calc(100% - 2 * var(--hero-content-inset)); max-width:none; }
  .home-immersive .header-menu-group { position:static; margin-left:auto; transform:none; }
  .home-immersive .main-navigation { position:static; margin:0; transform:none; }
}
#inicio.hero-full { background:var(--ink); }
#inicio.hero-full .hero-layout { position:relative; isolation:isolate; display:flex; align-items:center; min-height:clamp(720px,43vw,820px); }
#inicio.hero-full .hero-figure { position:absolute; z-index:0; inset:0; width:100%; height:100%; max-width:100%; min-width:0; min-height:0; aspect-ratio:auto; }
#inicio.hero-full .hero-image { inset:0; background:var(--ink); }
#inicio.hero-full .hero-image > img { object-position:100% 50%; filter:none; }
#inicio.hero-full .hero-figure::after { content:""; z-index:1; background:linear-gradient(90deg,rgb(14 18 21 / 84%) 0%,rgb(14 18 21 / 70%) 31%,rgb(14 18 21 / 35%) 60%,rgb(14 18 21 / 15%) 100%),linear-gradient(0deg,rgb(14 18 21 / 52%),transparent 32%); }
#inicio.hero-full .hero-copy { z-index:2; width:min(100%,780px); padding:64px 32px 112px var(--hero-content-inset); background:transparent; color:var(--paper); }
#inicio.hero-full .hero-copy > .eyebrow { color:var(--paper); margin:0; font-size:12px; letter-spacing:.12em; }
#inicio.hero-full .hero-region { margin-top:6px; color:rgb(250 248 244 / 90%); font-size:18px; }
#inicio.hero-full .hero-copy h1 { max-width:12ch; margin-top:26px; color:var(--paper); font-size:clamp(56px,4.2vw,78px); line-height:1.05; text-wrap:initial; }
#inicio.hero-full .hero-description { max-width:53ch; margin-top:24px; color:var(--paper); font-size:17px; line-height:1.7; }
#inicio.hero-full .hero-actions { width:min(100%,450px); margin-top:28px; }
#inicio.hero-full .hero-explore { width:100%; }
#inicio.hero-full .hero-action-buttons { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#inicio.hero-full .hero-action-buttons > a { display:flex; align-items:center; justify-content:center; gap:12px; min-height:54px; padding:12px 16px; font-size:16px; }
#inicio.hero-full .hero-action-buttons > .button-outline { color:var(--paper); background:transparent; border-color:rgb(250 248 244 / 65%); }
#inicio.hero-full .hero-owner { width:100%; margin-top:12px; padding-top:20px; border-top-color:rgb(250 248 244 / 30%); }
#inicio.hero-full .hero-owner-label { color:var(--paper); font-size:14px; }
#inicio.hero-full .hero-owner-link { color:var(--paper); font-size:16px; }
#inicio.hero-full .hero-figure figcaption { z-index:2; inset:auto var(--hero-content-inset) 28px auto; width:fit-content; height:auto; padding:0; background:transparent; color:var(--paper); }
#inicio.hero-full .hero-office-link { gap:6px; }
#inicio.hero-full .hero-office-link .eyebrow { color:var(--paper); font-size:11px; }
#inicio.hero-full .hero-office-link > span:last-child { color:var(--paper); font-size:14px; }
@media (hover:hover) and (pointer:fine) {
  #inicio.hero-full .hero-action-buttons > .button-outline:hover { background:rgb(250 248 244 / 12%); border-color:var(--paper); }
  #inicio.hero-full .hero-owner-link:hover { color:#fff; }
}
@media (max-width:1023px) {
  #inicio.hero-full .hero-copy { width:min(100%,650px); padding-left:32px; }
  #inicio.hero-full .hero-copy h1 { font-size:60px; }
  #inicio.hero-full .hero-figure::after { background:linear-gradient(90deg,rgb(14 18 21 / 87%),rgb(14 18 21 / 55%) 60%,rgb(14 18 21 / 30%)),linear-gradient(0deg,rgb(14 18 21 / 65%),transparent 40%); }
}
@media (max-width:639px) {
  #inicio.hero-full .hero-layout { min-height:740px; }
  #inicio.hero-full .hero-copy { width:100%; padding:40px 20px 142px; }
  #inicio.hero-full .hero-copy > .eyebrow { font-size:11px; }
  #inicio.hero-full .hero-region { font-size:16px; }
  #inicio.hero-full .hero-copy h1 { margin-top:24px; font-size:clamp(44px,11vw,56px); }
  #inicio.hero-full .hero-description { margin-top:20px; font-size:15px; }
  #inicio.hero-full .hero-actions { margin-top:24px; }
  #inicio.hero-full .hero-action-buttons { gap:10px; }
  #inicio.hero-full .hero-action-buttons > a { min-height:52px; gap:8px; padding:12px 8px; font-size:15px; }
  #inicio.hero-full .hero-owner { margin-top:10px; padding-top:18px; }
  #inicio.hero-full .hero-owner-label { font-size:13px; }
  #inicio.hero-full .hero-owner-link { font-size:15px; }
  #inicio.hero-full .hero-image > img { object-position:100% 50%; }
  #inicio.hero-full .hero-figure::after { background:linear-gradient(90deg,rgb(14 18 21 / 87%),rgb(14 18 21 / 61%)),linear-gradient(0deg,rgb(14 18 21 / 78%),transparent 45%); }
  #inicio.hero-full .hero-figure figcaption { left:20px; right:88px; bottom:24px; width:auto; }
  #inicio.hero-full .hero-office-link > span:last-child { font-size:13px; }
}
@media (prefers-reduced-motion:reduce) {
  #inicio.hero-full .hero-image > img { transform:none; }
}

/* Hero compacto como la propuesta: fondo continuo, texto superpuesto y sin zoom. */
#inicio.hero-full .hero-layout { min-height:clamp(640px,40vw,760px); }
#inicio.hero-full .hero-image > img,
#inicio.hero-full .hero-image > img.hero-carousel-layer {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:none;
}
#inicio.hero-full .hero-copy { padding-top:48px; padding-bottom:96px; }
#inicio.hero-full .hero-copy h1 { font-size:clamp(52px,4vw,72px); }
@media (max-width:639px) {
  #inicio.hero-full .hero-layout { min-height:700px; }
  #inicio.hero-full .hero-copy { padding:36px 20px 124px; }
  #inicio.hero-full .hero-copy h1 { font-size:clamp(42px,11vw,54px); }
}

/* Dos pesos tipográficos para dar ritmo al mensaje principal. */
#inicio.hero-full .hero-copy h1 { line-height:1.04; }
#inicio.hero-full .hero-copy h1 .hero-title-intro {
  display:block;
  color:inherit;
  font-family:inherit;
  font-size:inherit;
  font-style:normal;
  font-weight:400;
  line-height:inherit;
  letter-spacing:inherit;
}
#inicio.hero-full .hero-copy h1 .hero-title-focus {
  display:block;
  font-weight:700;
}

/* Ilustraciones editoriales para los accesos a desarrollos. */
.pathway-card:has(.pathway-illustration) { min-height:196px; overflow:hidden; padding:28px 32px; }
.pathway-card:has(.pathway-illustration) .eyebrow,
.pathway-card:has(.pathway-illustration) h2 { position:relative; z-index:1; max-width:48%; }
.pathway-card:has(.pathway-illustration) h2 { font-size:clamp(24px,2vw,30px); }
.pathway-illustration { position:absolute; right:48px; top:50%; width:40%; height:170px; object-fit:contain; transform:translateY(-50%); pointer-events:none; }
.pathway-card:has(.pathway-illustration) .pathway-arrow { z-index:1; right:22px; bottom:22px; }
@media (max-width:1023px) {
  .pathway-card:has(.pathway-illustration) { min-height:180px; padding:24px; }
  .pathway-illustration { right:34px; height:148px; }
}
@media (max-width:479px) {
  .pathway-card:has(.pathway-illustration) { min-height:172px; padding:20px; }
  .pathway-card:has(.pathway-illustration) h2 { max-width:48%; font-size:24px; }
  .pathway-illustration { right:26px; width:39%; height:132px; }
  .pathway-card:has(.pathway-illustration) .pathway-arrow { right:16px; bottom:16px; font-size:24px; }
}

/* Cada toma mantiene un encuadre propio en escritorio y móvil. */
#inicio.hero-full .hero-image > img { object-position:var(--hero-photo-position,100% 50%); }
@media (max-width:639px) {
  #inicio.hero-full .hero-image > img { object-position:var(--hero-photo-mobile-position,28% 50%); }
}

/* Recorridos de propiedades: controles nativos y selección junto a las fotos. */
#gallery-video { width:100%; height:100%; object-fit:contain; background:var(--ink); }
.gallery-stage > [hidden] { display:none; }
.gallery-thumbnails button { position:relative; }
.property-video-badge { position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:22px; background:rgb(0 0 0 / 20%); text-shadow:0 1px 4px rgb(0 0 0 / 65%); }

/* Aprovechar todo el ancho y priorizar los elementos importantes de cada toma. */
#inicio.hero-full .hero-figure::after {
  background:linear-gradient(90deg,rgb(14 18 21 / 74%) 0%,rgb(14 18 21 / 60%) 32%,rgb(14 18 21 / 25%) 65%,rgb(14 18 21 / 12%) 100%),linear-gradient(0deg,rgb(14 18 21 / 45%),transparent 35%);
}
@media (max-width:639px) {
  #inicio.hero-full .hero-figure::after { background:linear-gradient(90deg,rgb(14 18 21 / 48%),rgb(14 18 21 / 12%)),linear-gradient(180deg,rgb(14 18 21 / 25%) 0%,transparent 62%,rgb(14 18 21 / 48%) 100%); }
  #inicio.hero-full .hero-copy { text-shadow:0 1px 4px rgb(0 0 0 / 45%); }
}

/* Algo más de alto permite conservar fachada, acceso y rótulos del cartel. */
@media (min-width:1200px) {
  #inicio.hero-full .hero-layout { min-height:clamp(680px,43.75vw,840px); }
}

/* En móvil, un marco menos alargado conserva más ancho de las fotografías. */
@media (max-width:639px) {
  #inicio.hero-full .hero-layout { min-height:620px; }
  #inicio.hero-full .hero-copy { padding:28px 20px 112px; }
  #inicio.hero-full .hero-copy h1 { margin-top:20px; font-size:clamp(40px,10.5vw,52px); }
  #inicio.hero-full .hero-description { margin-top:16px; }
  #inicio.hero-full .hero-actions { margin-top:20px; }
}

/* La ciudad destaca en los encabezados de edificios en pozo. */
.development-building-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.development-building-heading .development-city { color:var(--accent-text); font-size:20px; font-weight:700; line-height:1.3; letter-spacing:.02em; }

/* Datos catastrales en filas para facilitar su lectura. */
.detail-cadastral { margin:0; }
.detail-cadastral > div { display:grid; grid-template-columns:minmax(90px,1fr) minmax(0,1.5fr); gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }
.detail-cadastral dt { color:var(--muted); }
.detail-cadastral dd { margin:0; overflow-wrap:anywhere; font-weight:500; }
