/* Fuentes servidas desde este servidor, sin peticiones a terceros.
   Los .woff2 y sus licencias OFL viven en assets/fonts/; la nota de licencia viaja
   con cada fuente, como exige la OFL 1.1. Manrope va como fuente variable (eje wght
   400-800) en un solo fichero. Los unicode-range son los que publica Google Fonts para
   el subconjunto latin, copiados literalmente. */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/playfair-display-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/playfair-display-500-italic.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dm-mono-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* --muted y --on-accent son el mismo gris en dos superficies: --muted esta pensado para
   --paper y el blanco (4.61:1) y se apaga sobre --lime (3.58:1) y --sand (3.64:1), que
   necesitan --on-accent (6.21:1 y 6.32:1). --muted-dark es el equivalente para el pie
   oscuro: 5.81:1 sobre --footer-bg. Los tres cumplen AA, que es lo que pide un texto de
   11 px; el que no cumplia era #717a72, con 4.15:1. */
:root{--ink:#171b19;--paper:#f5f4ef;--white:#fff;--line:#d7d8d2;--lime:#d4e24e;--sand:#e5d9c4;--muted:#69706c;--on-accent:#454c48;--muted-dark:#8a938a;--sold:#b23b2e;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}.shell{max-width:1440px;margin:auto;padding:0 34px}.eyebrow{font:500 11px/1.2 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--ink);border-radius:99px;font-weight:700;font-size:13px;transition:.25s}.btn:hover{background:var(--ink);color:white}.btn--light{border-color:white;color:white}.btn--light:hover{background:white;color:var(--ink)}.arrow{font-size:19px;line-height:10px}.site-header{position:absolute;z-index:5;left:0;right:0;color:white;padding:25px 0}.site-header .shell{display:flex;align-items:center;justify-content:space-between}.brand{font-size:25px;font-weight:800;letter-spacing:-.08em}.brand span{color:var(--lime)}.main-nav{display:flex;gap:28px;align-items:center;font-size:12px;font-weight:700}.main-nav a{opacity:.74}.main-nav a:hover,.main-nav a.active{opacity:1}.language{display:none;font:500 11px 'DM Mono',monospace;border:1px solid rgba(255,255,255,.5);border-radius:20px;padding:7px 10px;background:transparent;color:inherit}.menu-toggle{display:none;background:transparent;border:0;color:inherit;font-size:24px}.hero{min-height:760px;color:white;position:relative;background:#151815;display:flex;align-items:end;overflow:hidden}.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,17,15,.72),rgba(13,17,15,.13) 65%),linear-gradient(0deg,rgba(13,17,15,.55),transparent 45%)}.hero img{position:absolute;inset:0;height:100%;z-index:0}.hero-content{position:relative;z-index:1;padding:150px 0 64px;width:min(880px,100%)}h1{font-size:clamp(48px,7.3vw,108px);line-height:.94;letter-spacing:-.075em;margin:20px 0 28px;font-weight:700}h1 em{font-family:'Playfair Display',serif;font-weight:500}.hero p{line-height:1.7;max-width:450px;margin:0 0 32px;color:rgba(255,255,255,.88)}.hero-meta{position:absolute;right:34px;bottom:70px;z-index:1;font:500 11px 'DM Mono',monospace;writing-mode:vertical-rl;letter-spacing:.1em}.intro{padding:125px 34px;display:grid;grid-template-columns:1fr 1.6fr;gap:9%;align-items:start}.intro h2,.heading{font-size:clamp(34px,4.3vw,60px);line-height:1.02;letter-spacing:-.065em;margin:16px 0 0}.intro p{font-size:21px;line-height:1.55;letter-spacing:-.025em;margin:0}.intro .btn{margin-top:29px}.band{background:var(--ink);color:white;padding:95px 0}.band-grid{display:grid;grid-template-columns:1fr 1fr;gap:5%}.band h2{font-size:clamp(35px,4vw,58px);line-height:1.02;letter-spacing:-.065em;margin:17px 0}.band p{line-height:1.7;color:#d1d5cf;max-width:420px}.numbers{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #535752;margin-top:70px}.numbers div{padding:21px 10px 0 0}.numbers div+div{border-left:1px solid #535752;padding-left:20px}.numbers strong{font-size:39px;letter-spacing:-.06em}.numbers span{display:block;color:#aeb3ac;font-size:12px;margin-top:7px}.section{padding:110px 0}.section-top{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:42px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:white;min-height:410px;display:flex;flex-direction:column}.card-image{height:275px;overflow:hidden}.card-image img{height:100%;transition:transform .5s}.card:hover img{transform:scale(1.05)}.card-text{padding:18px 20px 23px}.card-text h3{font-size:20px;letter-spacing:-.05em;margin:5px 0}.card-text p{font-size:13px;color:var(--muted);margin:0}.feature{display:grid;grid-template-columns:1.05fr .95fr;margin:0}.feature-image{position:relative;overflow:hidden;min-height:620px}.feature-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.feature-copy{padding:82px 10% 50px;background:var(--sand);display:flex;flex-direction:column;align-items:start}.feature-copy h2{font-size:clamp(37px,4.5vw,63px);line-height:1;letter-spacing:-.07em;margin:15px 0 25px}.feature-copy p{line-height:1.75;max-width:400px}.feature-copy .btn{margin-top:auto}.contact-strip{background:var(--lime);padding:75px 0}.contact-strip .shell{display:flex;justify-content:space-between;align-items:end;gap:40px}.contact-strip h2{font-size:clamp(38px,5vw,70px);line-height:.98;letter-spacing:-.075em;margin:15px 0 0}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.contact-note{font:500 11px/1.4 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0}.site-footer{background:#111512;color:white;padding:65px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding-bottom:63px}.site-footer .brand{font-size:32px}.site-footer p,.site-footer a{font-size:13px;color:#b9bdb8;line-height:1.85}.footer-title{font:500 11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted-dark);margin-bottom:16px}.footer-bottom{border-top:1px solid #353a36;padding-top:20px;display:flex;justify-content:space-between;color:var(--muted-dark);font-size:11px}.home-hero{min-height:100vh}.home-hero .hero-content{padding-bottom:75px}.home-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--paper)}.service-link{height:510px;position:relative;color:white;overflow:hidden;display:flex;align-items:end;padding:32px}.service-link::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,14,12,.8),transparent 65%)}.service-link img{position:absolute;inset:0;height:100%;transition:.6s}.service-link:hover img{transform:scale(1.05)}.service-link span{position:relative;z-index:1;font:500 11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em}.service-link h2{position:relative;z-index:1;font-size:clamp(33px,3.4vw,49px);letter-spacing:-.07em;line-height:1;margin:9px 0 0}.service-link .arrow{position:absolute;z-index:1;right:30px;bottom:35px}.home-intro{max-width:930px;padding:130px 0}.home-intro h2{font-size:clamp(38px,5.2vw,72px);line-height:1.04;letter-spacing:-.075em;margin:18px 0}.home-intro em{font-family:'Playfair Display',serif;font-weight:500}.project-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.project-grid img{height:470px}.project-grid img:last-child{margin-top:100px;height:370px}.page-nav{display:flex;gap:22px;margin-top:34px;font-size:13px;font-weight:700}.page-nav a{border-bottom:1px solid transparent}.page-nav a:hover{border-color:currentColor}
@media(max-width:760px){.shell{padding:0 20px}.site-header{padding:18px 0}.main-nav{display:none;position:absolute;top:67px;right:20px;left:20px;padding:20px;background:#171b19;flex-direction:column;align-items:start}.main-nav.open{display:flex}.menu-toggle{display:block}.language{display:none}.hero{min-height:670px}.hero-content{padding:125px 0 42px}.hero-meta{display:none}.intro,.band-grid,.feature,.footer-grid{grid-template-columns:1fr;gap:30px}.intro{padding:80px 20px}.intro p{font-size:18px}.band,.section{padding:75px 0}.numbers{margin-top:40px}.cards{grid-template-columns:1fr}.card{min-height:0}.card-image{height:250px}.feature-image{height:390px;min-height:390px}.feature-copy{padding:55px 30px;min-height:430px}.contact-strip .shell{display:block}.contact-strip .btn{margin-top:30px}.home-grid{grid-template-columns:1fr}.service-link{height:350px}.home-intro{padding:80px 0}.project-grid{grid-template-columns:1fr}.project-grid img,.project-grid img:last-child{height:300px;margin:0}.footer-bottom{gap:10px;flex-wrap:wrap}}

/* Contraste reforzado en fotografías: la imagen permanece luminosa fuera del área de lectura. */
.site-header{background:linear-gradient(180deg,rgba(8,12,10,.62),transparent)}
.main-nav a{text-shadow:0 1px 8px #000;opacity:.86}.language{background:rgba(0,0,0,.25);border-color:rgba(255,255,255,.72)}
.hero::before{z-index:1;background:linear-gradient(90deg,rgba(9,13,11,.92) 0%,rgba(9,13,11,.79) 38%,rgba(9,13,11,.29) 73%,rgba(9,13,11,.15)),linear-gradient(0deg,rgba(9,13,11,.74),transparent 54%)}
.hero-content{z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.7)}.hero p{color:#fff;font-weight:500}.hero .btn--light{background:rgba(8,12,10,.48);backdrop-filter:blur(4px)}.hero .btn--light:hover{background:white;color:var(--ink);border-color:white;backdrop-filter:none}.hero-meta{z-index:2;text-shadow:0 2px 9px #000}
.service-link{ text-shadow:0 2px 11px rgba(0,0,0,.85)}.service-link::after{background:linear-gradient(0deg,rgba(7,10,8,.94) 0%,rgba(7,10,8,.62) 44%,rgba(7,10,8,.08) 80%)}.service-link span{color:#f4f6e4}
@media(max-width:760px){.hero-content{padding:125px 0 42px}}

.listing-hero{background:var(--ink);color:white;padding:162px 0 62px}.listing-hero h1{font-size:clamp(46px,6vw,84px);margin:13px 0 0}.breadcrumb{font:500 11px 'DM Mono',monospace;letter-spacing:.08em;color:#bfc5bd}.breadcrumb a{color:var(--lime)}.search-area{background:white;border-bottom:1px solid var(--line);padding:32px 0 28px}.operation-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.operation-tab{font:700 13px Manrope,sans-serif;border:1px solid var(--line);padding:12px 17px;border-radius:99px;background:white;cursor:pointer}.operation-tab:hover,.operation-tab[aria-selected="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}.filter-form{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:10px}.filter-field{position:relative}.filter-field label{position:absolute;top:8px;left:14px;font:500 9px 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);pointer-events:none}.filter-field select,.filter-field input{width:100%;height:58px;padding:21px 14px 7px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink);font:600 13px Manrope,sans-serif}.filter-submit{height:58px;border:0;border-radius:4px;background:var(--lime);padding:0 24px;font:800 13px Manrope,sans-serif;cursor:pointer}.listing-content{padding:60px 0 110px}.listing-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.listing-count{font-size:13px;color:var(--muted)}.listing-sort{border:0;background:transparent;font:600 12px Manrope,sans-serif}.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.property{background:white}.property[hidden]{display:none}.property-photo{height:255px;position:relative;overflow:hidden}.property-photo img{height:100%;transition:transform .45s}.property:hover .property-photo img{transform:scale(1.04)}.property-tag{position:absolute;top:13px;left:13px;background:white;padding:7px 9px;font:500 10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em}.property-info{padding:19px 20px 21px}.property-location{font:500 10px 'DM Mono',monospace;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.property h2{font-size:20px;letter-spacing:-.055em;margin:7px 0 15px}.property-details{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:13px;font-size:12px;color:#575d58}.property-tag--vendido{background:var(--sold);color:#fff}.property-price--vendido{text-decoration:line-through;color:var(--muted)}.property-price{font-size:15px;font-weight:800;letter-spacing:-.04em;margin-left:auto;color:var(--ink)}.empty-results{display:none;padding:70px 0;text-align:center}.empty-results.visible{display:block}.empty-results h2{font-size:34px;letter-spacing:-.06em;margin:0 0 8px}.empty-results p{color:var(--muted)}
@media(max-width:760px){.listing-hero{padding:120px 0 42px}.filter-form{grid-template-columns:1fr 1fr}.filter-field:first-child,.filter-submit{grid-column:span 2}.listing-content{padding:42px 0 75px}.property-grid{grid-template-columns:1fr}.listing-bar{align-items:start;gap:15px}.operation-tabs{flex-wrap:nowrap;overflow:auto;padding-bottom:5px}.operation-tab{white-space:nowrap}}

.architecture-archive-hero{background:linear-gradient(120deg,#171b19 0%,#23261f 58%,#d4e24e 58%,#d4e24e 100%)}.architecture-archive-hero p{max-width:600px;line-height:1.7;color:#dbe0d7;margin:20px 0 0}.archive-controls{background:white;border-bottom:1px solid var(--line);padding:24px 0}.archive-controls .shell{display:flex;align-items:center;justify-content:space-between;gap:24px}.archive-tabs{display:flex;gap:8px;flex-wrap:wrap}.archive-tab{border:1px solid var(--line);background:white;border-radius:99px;padding:12px 18px;font:800 13px Manrope,sans-serif;cursor:pointer}.archive-tab:hover,.archive-tab[aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:white}.archive-summary{display:flex;gap:18px;align-items:center;font:500 11px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.archive-summary span:first-child{color:var(--ink)}.archive-list{padding:58px 0 112px}.portfolio-item h2{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.portfolio-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.portfolio-item{background:white;min-height:430px}.portfolio-item[hidden]{display:none}.portfolio-item--wide{grid-column:span 2}.portfolio-item a{display:grid;height:100%;grid-template-rows:255px 1fr}.portfolio-photo{overflow:hidden;background:#d9ddd2}.portfolio-photo img{height:100%;transition:transform .55s}.portfolio-item:hover .portfolio-photo img{transform:scale(1.045)}.portfolio-copy{padding:22px 24px 24px;display:flex;flex-direction:column}.portfolio-copy span{font:500 10px 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.portfolio-copy h2{font-size:25px;line-height:1.02;letter-spacing:-.06em;margin:10px 0 14px}.portfolio-copy p{font-size:13px;line-height:1.65;color:#555d57;margin:0 0 20px}.portfolio-copy small{margin-top:auto;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}.portfolio-item--wide .portfolio-copy h2{font-size:34px}@media(max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}.portfolio-item--wide{grid-column:span 2}.archive-controls .shell{align-items:start;flex-direction:column}.archive-summary{flex-wrap:wrap}}@media(max-width:760px){.architecture-archive-hero{background:#171b19}.portfolio-grid{grid-template-columns:1fr}.portfolio-item--wide{grid-column:auto}.portfolio-item{min-height:0}.portfolio-item a{grid-template-rows:230px auto}.portfolio-item--wide .portfolio-copy h2,.portfolio-copy h2{font-size:24px}.archive-summary{display:block}.archive-summary span{display:block;margin-top:8px}}

.property{cursor:pointer}.detail-main{padding:142px 0 95px}.detail-breadcrumb{font:500 11px 'DM Mono',monospace;letter-spacing:.08em;color:var(--muted);margin-bottom:30px}.detail-breadcrumb a{color:var(--ink)}.detail-header{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end;margin-bottom:40px}.detail-header h1{font-size:clamp(42px,5.8vw,80px);margin:12px 0 0}.detail-price{text-align:right}.detail-price strong{display:block;font-size:27px;letter-spacing:-.06em}.detail-price span{font-size:13px;color:var(--muted)}.detail-price .detail-sold{display:inline-block;background:var(--sold);color:#fff;padding:7px 9px;font:500 10px/1 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}.detail-price--vendido strong{text-decoration:line-through;text-decoration-thickness:2px;color:var(--muted)}.detail-gallery{display:grid;grid-template-columns:1.6fr .8fr;grid-template-rows:250px 250px;gap:14px}.detail-gallery img{height:100%}.detail-gallery img:first-child{grid-row:span 2}.detail-gallery--grid{grid-template-columns:repeat(4,1fr);grid-template-rows:none}.detail-gallery--grid img{height:auto;width:100%;aspect-ratio:4/3;object-fit:cover}.detail-gallery--grid img:first-child{grid-row:auto}.detail-body{display:grid;grid-template-columns:1.25fr .75fr;gap:11%;padding:82px 0}.detail-body--facts{grid-template-columns:1fr;gap:0;padding:82px 0}.detail-body--facts .detail-facts{max-width:660px}.detail-description{font-size:21px;line-height:1.58;letter-spacing:-.025em}.detail-description p+ p{font-size:15px;line-height:1.8;letter-spacing:0}.detail-facts{border-top:1px solid var(--line)}.detail-fact{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.detail-fact span{color:var(--muted)}.detail-action{background:var(--sand);padding:38px;margin-top:30px}.contact-strip .eyebrow,.feature-copy .eyebrow,.detail-action .eyebrow{color:var(--on-accent)}.detail-action h2{font-size:28px;line-height:1;letter-spacing:-.06em;margin:8px 0 20px}.detail-action p{font-size:13px;line-height:1.6}.detail-action .btn{margin-top:10px}.detail-contact-alt{margin-top:14px}.detail-contact-alt a{border-bottom:1px solid var(--line)}.detail-contact-alt a:hover{border-color:var(--ink)}@media(max-width:760px){.detail-main{padding:112px 0 60px}.detail-header,.detail-body{grid-template-columns:1fr;gap:25px}.detail-body--facts{gap:0;padding:52px 0}.detail-price{text-align:left}.detail-gallery{grid-template-columns:1fr 1fr;grid-template-rows:210px 130px}.detail-gallery--single{grid-template-columns:1fr;grid-template-rows:290px}.detail-gallery--grid{grid-template-columns:repeat(2,1fr);grid-template-rows:none}.detail-body{padding:52px 0}.detail-description{font-size:18px}}

/* Entrada de página: fundido de imágenes y desplazamiento sutil de los textos del hero. */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
main img{animation:fadeIn .9s ease both}
.hero-content .eyebrow,.hero-content h1,.hero-content p,.hero-content .btn--light,.hero-meta{animation:fadeUp .7s cubic-bezier(.22,.61,.36,1) both}
.hero-content .eyebrow{animation-delay:.15s}
.hero-content h1{animation-delay:.25s}
.hero-content p{animation-delay:.4s}
.hero-content .btn--light{animation-delay:.55s}
.hero-meta{animation-delay:.65s}
.listing-hero .breadcrumb,.architecture-archive-hero p,.detail-breadcrumb{animation:fadeUp .7s ease .15s both}
@media(prefers-reduced-motion:reduce){main img,.hero-content .eyebrow,.hero-content h1,.hero-content p,.hero-content .btn--light,.hero-meta,.listing-hero .breadcrumb,.architecture-archive-hero p,.detail-breadcrumb{animation:none}}

/* Revelado de texto al hacer scroll: fundido y pequeño desplazamiento. */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.22,.61,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Páginas legales: aviso legal y política de cookies. */
.legal-hero{background:var(--ink);color:white;padding:172px 0 70px}.legal-hero h1{font-size:clamp(46px,6vw,84px);letter-spacing:-.07em;line-height:1;margin:13px 0 0}.legal-hero p{max-width:640px;line-height:1.7;color:#c6cbc4;margin:20px 0 0}.legal-hero .eyebrow{color:var(--lime)}.legal-hero h1,.legal-hero p{animation:fadeUp .7s cubic-bezier(.22,.61,.36,1) both}.legal-hero p{animation-delay:.15s}
.legal-main{padding:84px 0 112px}.legal-main .shell{max-width:880px}.legal-main h2{font-size:clamp(24px,2.6vw,34px);letter-spacing:-.055em;line-height:1.05;margin:58px 0 18px}.legal-main h2:first-child{margin-top:0}.legal-main p{font-size:15px;line-height:1.8;color:#3c423e;margin:0 0 18px}.legal-main p.lead{font-size:19px;line-height:1.6;letter-spacing:-.02em;color:var(--ink);margin-bottom:22px}.legal-main ul{list-style:none;padding:0;margin:0 0 20px}.legal-main li{font-size:15px;line-height:1.75;color:#3c423e;padding:15px 0;border-bottom:1px solid var(--line)}.legal-main li strong{display:block;margin-bottom:4px}.legal-main a{text-decoration:underline}.legal-main a:hover{opacity:.7}
.legal-attribution{background:var(--sand);border-radius:var(--radius);padding:36px;margin-top:44px}.legal-attribution h2{margin-top:0}.legal-attribution ul{margin-bottom:0}
.footer-bottom .legal-links{display:flex;gap:16px;align-items:center}.footer-bottom .legal-links a{color:#b9bdb8}.footer-bottom .legal-links a:hover{color:white}
@media(max-width:760px){.legal-hero{padding:132px 0 46px}.legal-main{padding:56px 0 74px}.legal-attribution{padding:26px 22px}.footer-bottom .legal-links{width:100%}}

/* Galería de inmuebles de arquitectura (inmuebles.html). */
.filter-form--galeria{grid-template-columns:1fr 1fr 1.5fr auto}
.property-link{display:block;height:100%}
.inmuebles-teaser .shell{display:grid;grid-template-columns:1fr 1.1fr;gap:8%;align-items:center}
.inmuebles-teaser h2{font-size:clamp(35px,4.2vw,58px);line-height:1.02;letter-spacing:-.065em;margin:17px 0 0;color:white}
.inmuebles-teaser p{line-height:1.7;color:#d1d5cf;max-width:440px;margin:0 0 26px}
.inmuebles-teaser .btn--light{background:rgba(8,12,10,.35)}
@media(max-width:760px){.filter-form--galeria{grid-template-columns:1fr 1fr}.filter-form--galeria .filter-field:last-of-type{grid-column:span 2}.inmuebles-teaser .shell{grid-template-columns:1fr;gap:22px}}

/* Ficha de inmueble: foto de cabecera destacada y visor modal de fotos.
   Dos modificadores independientes sobre .detail-gallery--grid: `--destacada` da
   doble ancho y doble alto a la primera foto; `--zoom` convierte cada foto en un
   botón que abre el visor. Las fichas que no los llevan no cambian. */
.detail-gallery--destacada>:first-child{grid-column:span 2;grid-row:span 2}

/* Ficha de proyecto con una sola foto publicada: la rejilla de .detail-gallery
   está dimensionada para tres, así que una columna evita un hueco vacío sin
   tener que repetir la imagen. */
.detail-gallery--single{grid-template-columns:1fr;grid-template-rows:430px}
.detail-gallery--single img:first-child{grid-row:span 1}
.detail-gallery--zoom>*{display:block;width:100%;height:auto;aspect-ratio:4/3;margin:0;padding:0;border:0;background:none;overflow:hidden;cursor:zoom-in;position:relative}
.detail-gallery--zoom>img{height:auto;width:100%;aspect-ratio:4/3;object-fit:cover}
.detail-gallery--zoom img{width:100%;height:100%;object-fit:cover}
.detail-gallery--destacada>:first-child img{object-position:center 40%}
.detail-gallery--zoom>*:hover img{transform:scale(1.04)}
.detail-gallery--zoom>*:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.detail-gallery--zoom>*:focus-visible img{transform:none}
.photo-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:100vw;max-height:100vh;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden}
.photo-dialog::backdrop{background:rgba(8,12,10,.95)}
.photo-dialog[open]{display:grid;grid-template-rows:1fr auto;justify-items:center;align-items:center;gap:16px;padding:70px 76px 30px}
.photo-dialog-image{width:100%;height:100%;min-width:0;min-height:0;max-width:min(100%,var(--foto-ancho,100%));max-height:min(100%,var(--foto-alto,100%));object-fit:contain;border-radius:2px}
.photo-dialog-caption{font:500 12px 'DM Mono',monospace;letter-spacing:.08em;color:#c6cbc4;margin:0;text-align:center}
.photo-dialog-close,.photo-dialog-prev,.photo-dialog-next{position:absolute;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(8,12,10,.5);color:#fff;font-size:20px;line-height:1;cursor:pointer;transition:border-color .2s ease,background .2s ease}
.photo-dialog-close:hover,.photo-dialog-prev:hover,.photo-dialog-next:hover{border-color:var(--lime);background:rgba(8,12,10,.85)}
.photo-dialog-close:focus-visible,.photo-dialog-prev:focus-visible,.photo-dialog-next:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.photo-dialog-close{top:20px;right:20px;font-size:26px}
.photo-dialog-prev{top:50%;left:20px;margin-top:-23px;font-size:24px}
.photo-dialog-next{top:50%;right:20px;margin-top:-23px;font-size:24px}
.photo-dialog button[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.detail-gallery--zoom>*:hover img{transform:none}}
@media(max-width:760px){
.detail-gallery--destacada>:first-child{grid-column:span 2;grid-row:span 1}
.photo-dialog[open]{padding:64px 16px 22px;gap:12px}
.photo-dialog-prev,.photo-dialog-next{top:auto;bottom:16px;margin-top:0}
.photo-dialog-prev{left:16px}
.photo-dialog-next{right:16px}
.photo-dialog-caption{padding:0 64px}
}
