@font-face {
  font-family: "DM Serif Display";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("media/fonts/dm-serif-display-regular.ttf") format("truetype");
}

@font-face {
  font-family: "DM Serif Display";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("media/fonts/dm-serif-display-italic.ttf") format("truetype");
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("media/fonts/manrope-400.ttf") format("truetype");
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("media/fonts/manrope-500.ttf") format("truetype");
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("media/fonts/manrope-600.ttf") format("truetype");
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("media/fonts/manrope-700.ttf") format("truetype");
}

@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("media/fonts/manrope-800.ttf") format("truetype");
}

/* ATLAS HABITABLE — arquitectura editorial española: caliza, azul tinta y el acento Teja lettings. */

:root { --ink:#132A3A; --ink-2:#284558; --paper:#F7F3EA; --paper-2:#EEE7D9; --line:#D7D0C3; --teja:#D85D39; --teja-dark:#B9482B; --sand:#DCCCA9; --green:#6C806B; --white:#FFFEFA; --serif:"DM Serif Display", Georgia, serif; --sans:"Manrope", Arial, sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.55; }
body, button, input, select { font-family:var(--sans); }
a { color:inherit; text-decoration:none; }
button, a { -webkit-tap-highlight-color:transparent; }
button { border:0; cursor:pointer; }
img { display:block; max-width:100%; }
.shell { width:min(1280px, calc(100% - 48px)); margin:0 auto; }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.portal-root { min-height:100vh; }

/* Header: no ancestor carries overflow or transform; sticky behavior is intentionally preserved. */
.sale-ribbon { position:relative; z-index:20; background:var(--teja); color:var(--white); font-size:12px; font-weight:700; letter-spacing:.01em; }
.sale-ribbon-inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.sale-ribbon p { margin:0; } .sale-ribbon-label { opacity:.72; text-transform:uppercase; font-size:10px; letter-spacing:.11em; margin-right:5px; }
.sale-ribbon-link { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; text-decoration:underline; text-underline-offset:3px; }
.site-header { position:sticky; top:0; z-index:30; background:rgba(255,254,250,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(12px); }
.header-inner { height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand, .footer-brand { display:flex; align-items:center; gap:9px; flex-shrink:0; }
.logo-mark { width:34px; height:34px; object-fit:contain; }
/* Cabecera de marca prioritaria: el dominio se muestra al 150 % sin alterar la escala del pie. */
.site-header .logo-mark { width:51px; height:51px; }
.brand-type { font-family:var(--serif); font-size:calc(27px * 1.5); letter-spacing:-.06em; line-height:1; }.brand-type span,.footer-brand span span { color:var(--teja); }
.brand-strap { border-left:1px solid var(--line); margin-left:2px; padding-left:10px; color:#61717B; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.desktop-nav { display:flex; gap:21px; align-items:center; margin-left:auto; }.nav-link { color:#50616C; font-size:13px; font-weight:700; position:relative; padding:28px 0 25px; transition:color .18s ease; }.nav-link:after { content:""; height:3px; position:absolute; left:0; right:0; bottom:-1px; background:var(--teja); transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }.nav-link:hover,.nav-link.active { color:var(--ink); }.nav-link:hover:after,.nav-link.active:after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:13px; }.header-cta,.footer-sale-link { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:800; }.header-cta { padding:9px 12px; background:var(--ink); color:var(--white); transition:background .18s ease, transform .18s ease; }.header-cta:hover { background:var(--teja); transform:translateY(-2px); }.menu-button { display:none; background:transparent; color:var(--ink); padding:4px; }
.mobile-menu { background:var(--white); border-top:1px solid var(--line); box-shadow:0 17px 35px rgba(19,42,58,.13); }.mobile-menu-inner { padding:16px 0 22px; }.mobile-nav-link { padding:14px 0; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:13px; font-family:var(--serif); font-size:25px; }.mobile-nav-link span { width:24px; color:var(--teja); font-family:var(--sans); font-size:10px; font-weight:800; }.mobile-nav-link svg { margin-left:auto; transform:rotate(-90deg); }.mobile-sale { display:flex; align-items:center; justify-content:space-between; margin-top:17px; color:var(--teja); font-weight:800; }

.hero { border-bottom:1px solid var(--line); background:var(--paper); }.hero-grid { display:grid; grid-template-columns:1.03fr .97fr; min-height:584px; }.hero-copy { padding:77px 60px 65px 0; display:flex; flex-direction:column; justify-content:center; }.hero h1 { font-family:var(--serif); font-size:clamp(54px,6.5vw,88px); font-weight:400; letter-spacing:-.055em; line-height:.94; max-width:690px; margin:14px 0 26px; }.hero h1 em { color:var(--teja); font-style:normal; }.hero-lead { max-width:530px; color:#50616C; font-size:17px; margin:0 0 31px; }.eyebrow { color:var(--ink-2); display:flex; align-items:center; gap:8px; font-size:10px; font-weight:800; letter-spacing:.13em; margin:0; text-transform:uppercase; }.eyebrow span { display:block; width:24px; height:3px; background:var(--teja); }
.hero-actions { display:flex; align-items:center; gap:21px; flex-wrap:wrap; }.button-primary,.button-secondary { display:inline-flex; gap:8px; align-items:center; justify-content:center; min-height:46px; padding:0 18px; font-size:13px; font-weight:800; transition:transform .18s ease, background .18s ease, color .18s ease; }.button-primary { background:var(--teja); color:var(--white); }.button-primary:hover { background:var(--teja-dark); transform:translateY(-2px); }.button-secondary { border-bottom:2px solid var(--ink); padding-left:0; padding-right:0; }.button-secondary:hover { color:var(--teja); border-color:var(--teja); }.button-primary:active,.button-secondary:active { transform:scale(.97); }
.hero-visual { position:relative; min-height:510px; background-color:#D6D1C7; background-image:linear-gradient(90deg, rgba(19,42,58,.12), transparent 45%), url("media/lettings-hero-urban-rental.webp"); background-size:cover; background-position:center; }.hero-index-card { position:absolute; left:-43px; bottom:42px; width:286px; padding:22px; background:var(--ink); color:var(--white); box-shadow:13px 13px 0 var(--teja); }.card-route { display:flex; align-items:center; justify-content:space-between; color:#C3D2D8; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }.card-route span:first-child:before { content:""; width:7px; height:7px; background:var(--teja); display:inline-block; margin-right:7px; }.hero-index-card h3 { font-family:var(--serif); font-size:32px; font-weight:400; letter-spacing:-.04em; line-height:1; margin:17px 0 16px; }.index-reading { display:grid; grid-template-columns:1fr 1fr; padding-top:15px; border-top:1px solid rgba(255,255,255,.22); }.index-reading p { margin:0; color:#B9C8CE; font-size:11px; }.index-reading strong { display:block; margin-bottom:2px; color:var(--white); font-size:15px; }.index-note { display:block; margin-top:15px; color:#B9C8CE; font-size:10px; }

.section { padding:94px 0; }.section.tinted { background:var(--paper-2); }.section.dark { background:var(--ink); color:var(--white); }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:42px; }.section-heading h2 { max-width:760px; margin:12px 0 0; font-family:var(--serif); font-size:clamp(36px,4.3vw,58px); font-weight:400; letter-spacing:-.05em; line-height:.98; }.section-description { max-width:615px; margin:18px 0 0; color:#546670; font-size:15px; }.text-link { display:inline-flex; align-items:center; gap:7px; border-bottom:1px solid currentColor; padding-bottom:3px; color:var(--teja); font-size:12px; font-weight:800; white-space:nowrap; }.text-link:hover { color:var(--ink); }

.decision-grid { display:grid; grid-template-columns:1.05fr 1fr 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.decision-card { min-height:245px; padding:27px 27px 25px; border-right:1px solid var(--line); display:flex; flex-direction:column; transition:background .18s ease; }.decision-card:last-child { border-right:0; }.decision-card:hover { background:var(--white); }.decision-number { color:var(--teja); font-size:11px; font-weight:800; letter-spacing:.12em; }.decision-card h3 { font-family:var(--serif); font-size:28px; font-weight:400; letter-spacing:-.04em; line-height:1; margin:47px 0 11px; }.decision-card p { color:#5A6A73; font-size:13px; margin:0 0 18px; }.decision-card a { display:inline-flex; align-items:center; gap:6px; margin-top:auto; font-size:12px; font-weight:800; }.decision-card a:hover { color:var(--teja); }
.city-strip { display:grid; grid-template-columns:1.6fr repeat(4,1fr); min-height:285px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.city-main { padding:31px 34px; background-image:linear-gradient(120deg,rgba(19,42,58,.8),rgba(19,42,58,.1)),url("media/lettings-neighborhood-courtyard.webp"); background-position:center; background-size:cover; color:var(--white); display:flex; flex-direction:column; justify-content:end; }.city-main .eyebrow { color:#E4D5C9; }.city-main h3 { font-family:var(--serif); font-weight:400; font-size:43px; letter-spacing:-.04em; margin:10px 0 7px; }.city-main p { margin:0; font-size:12px; max-width:275px; }.city-chip { background:var(--white); border-right:1px solid var(--line); padding:27px 20px; display:flex; flex-direction:column; justify-content:space-between; transition:background .18s ease; }.city-chip:last-child{border-right:0}.city-chip:hover{background:var(--teja); color:var(--white)}.city-chip small { color:var(--teja); font-weight:800; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }.city-chip:hover small { color:#FFE0D5; }.city-chip strong { font-family:var(--serif); font-weight:400; font-size:27px; letter-spacing:-.04em; }.city-chip span { font-size:11px; color:#6A7980; }.city-chip:hover span { color:#FFE0D5; }
.data-layout { display:grid; grid-template-columns:1.17fr .83fr; gap:24px; }.data-feature { min-height:430px; padding:35px; background:var(--ink); color:var(--white); display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }.data-feature:after { content:""; position:absolute; right:-74px; bottom:-94px; width:280px; height:280px; border:1px solid #477080; border-radius:50%; box-shadow:0 0 0 38px transparent,0 0 0 39px #477080,0 0 0 77px transparent,0 0 0 78px #477080; opacity:.5; }.data-feature h3 { position:relative; z-index:1; max-width:470px; margin:17px 0; font-family:var(--serif); font-weight:400; font-size:43px; letter-spacing:-.045em; line-height:.98; }.data-feature p { position:relative; z-index:1; max-width:430px; margin:0; color:#BBD0D7; font-size:14px; }.data-route { position:relative; z-index:1; display:flex; align-items:end; justify-content:space-between; border-top:1px solid rgba(255,255,255,.27); padding-top:22px; }.data-route strong { font-family:var(--serif); font-size:57px; font-weight:400; letter-spacing:-.06em; line-height:.8; }.data-route span { max-width:166px; color:#BBD0D7; font-size:11px; }.data-side { display:grid; gap:24px; }.data-small { padding:27px; background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }.data-small.teja { background:var(--teja); border-color:var(--teja); color:var(--white); }.data-small h3 { font-family:var(--serif); font-size:29px; font-weight:400; letter-spacing:-.04em; line-height:1; margin:21px 0 10px; }.data-small p { margin:0; color:#5B6B74; font-size:12px; }.data-small.teja p { color:#FFE0D5; }.data-small .stat { font-family:var(--serif); font-size:43px; letter-spacing:-.05em; line-height:1; }.data-small .stat-label { color:inherit; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.guide-feature { display:grid; grid-template-columns:.85fr 1.15fr; background:var(--white); border:1px solid var(--line); }.guide-image { min-height:410px; background-image:linear-gradient(0deg,rgba(19,42,58,.19),transparent 60%),url("media/lettings-contract-table.webp"); background-position:center; background-size:cover; }.guide-copy { padding:45px 49px; }.guide-copy h3 { max-width:540px; margin:15px 0 16px; font-family:var(--serif); font-size:42px; font-weight:400; letter-spacing:-.045em; line-height:1; }.guide-copy > p { color:#52636C; font-size:15px; max-width:540px; }.checklist { margin:28px 0 30px; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }.checklist li { padding-top:10px; border-top:1px solid var(--line); color:#304853; font-size:12px; font-weight:700; }.checklist li:before { content:"→"; margin-right:7px; color:var(--teja); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.service-card { min-height:207px; padding:25px; background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .18s ease,box-shadow .18s ease; }.service-card:hover { transform:translateY(-4px); box-shadow:8px 8px 0 var(--sand); }.service-card .service-icon { width:34px; height:34px; display:grid; place-items:center; background:var(--paper-2); color:var(--teja); }.service-card h3 { margin:24px 0 7px; font-family:var(--serif); font-size:27px; font-weight:400; letter-spacing:-.04em; line-height:1; }.service-card p { color:#5B6C74; font-size:12px; margin:0; }.service-card a { margin-top:auto; font-size:11px; font-weight:800; }.service-card a:hover{color:var(--teja)}
.owners-banner { padding:72px 0; background:#BFC9B4; }.owners-inner { display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:70px; }.owners-banner h2 { margin:12px 0 15px; max-width:590px; font-family:var(--serif); font-size:clamp(42px,5vw,66px); font-weight:400; letter-spacing:-.05em; line-height:.96; }.owners-banner p { max-width:520px; margin:0; color:#3F5854; }.owner-points { padding:0; margin:0; list-style:none; border-top:1px solid rgba(19,42,58,.32); }.owner-points li { display:flex; align-items:center; justify-content:space-between; gap:17px; padding:13px 0; border-bottom:1px solid rgba(19,42,58,.32); font-size:13px; font-weight:700; }.owner-points li span { color:#52675E; font-size:11px; font-weight:500; text-align:right; }

.page-hero { padding:82px 0 57px; background:var(--paper); border-bottom:1px solid var(--line); }.page-hero-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:70px; align-items:end; }.page-hero h1 { margin:14px 0 0; max-width:760px; font-family:var(--serif); font-size:clamp(49px,6.4vw,78px); font-weight:400; letter-spacing:-.055em; line-height:.94; }.page-hero p { max-width:450px; margin:0; color:#54656E; font-size:15px; }.route-trail { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-bottom:20px; color:#65757D; font-size:11px; font-weight:800; }.route-trail a:hover { color:var(--teja); }.page-hero .index-cue { border-left:3px solid var(--teja); padding:11px 0 11px 16px; }.page-hero .index-cue strong { display:block; font-size:13px; }.page-hero .index-cue span { font-size:12px; color:#68787F; }
.filter-bar { margin-top:-29px; position:relative; z-index:2; padding:12px 16px; background:var(--white); box-shadow:0 11px 24px rgba(19,42,58,.11); border:1px solid var(--line); display:flex; align-items:center; gap:14px; }.filter-bar label { color:#67777F; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }.filter-bar select { flex:1; max-width:310px; padding:10px 34px 10px 11px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font-size:13px; outline-color:var(--teja); }
.atlas-band { display:grid; grid-template-columns:125px minmax(190px,.7fr) minmax(230px,.9fr) minmax(260px,1.1fr); align-items:stretch; margin-top:28px; min-height:118px; background:var(--white); border:1px solid var(--line); position:relative; overflow:hidden; }.atlas-band-meta { padding:17px; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; }.atlas-code { color:var(--teja); font-size:11px; font-weight:800; letter-spacing:.11em; }.atlas-coordinates { color:#66767E; font-size:9px; letter-spacing:.06em; }.atlas-route-map { color:#617C79; background-color:#E2E8E0; background-image:linear-gradient(90deg,rgba(19,42,58,.12) 1px,transparent 1px),linear-gradient(rgba(19,42,58,.12) 1px,transparent 1px); background-size:23px 23px; position:relative; }.atlas-route-map svg { position:absolute; inset:0; width:100%; height:100%; }.atlas-route-map circle { fill:var(--teja); stroke:var(--paper); stroke-width:2; }.atlas-band-copy { padding:17px 20px; border-right:1px solid var(--line); }.atlas-band-copy p { margin:0; color:#64747C; font-size:11px; line-height:1.35; }.atlas-band-copy .atlas-band-title { color:var(--ink); font-family:var(--serif); font-size:23px; letter-spacing:-.03em; line-height:1; margin-bottom:8px; }.atlas-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0; padding:0; list-style:none; }.atlas-steps li { padding:18px 13px; border-right:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; gap:5px; }.atlas-steps li:last-child{border:0}.atlas-steps b { color:var(--teja); font-size:10px; }.atlas-steps span { font-size:10px; font-weight:800; line-height:1.2; }.atlas-band-dark { border-color:#355464; background:var(--ink); color:var(--white); }.atlas-band-dark .atlas-band-meta,.atlas-band-dark .atlas-band-copy,.atlas-band-dark .atlas-steps li { border-color:rgba(255,255,255,.18); }.atlas-band-dark .atlas-coordinates,.atlas-band-dark .atlas-band-copy p { color:#BBD0D7; }.atlas-band-dark .atlas-band-copy .atlas-band-title { color:var(--white); }.atlas-band-dark .atlas-route-map { background-color:#244454; background-image:linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px); color:#A9C4C5; }
.city-list { display:grid; grid-template-columns:1.15fr .85fr .85fr; border-top:1px solid var(--line); border-left:1px solid var(--line); }.city-list-card { min-height:265px; padding:26px; background:var(--white); border-right:1px solid var(--line); border-bottom:1px solid var(--line); position:relative; display:flex; flex-direction:column; overflow:hidden; }.city-list-card:first-child { grid-column:span 2; min-height:300px; background-color:var(--ink); color:var(--white); }.city-list-card:first-child:before { content:""; position:absolute; width:118%; height:100%; inset:0; background:linear-gradient(110deg,rgba(19,42,58,.87),rgba(19,42,58,.34)),url("media/lettings-neighborhood-courtyard.webp") center/cover; }.city-list-card:hover { background:var(--ink); color:var(--white); }.city-list-card:after { content:""; position:absolute; width:170px; height:170px; right:-75px; bottom:-95px; border:1px solid var(--sand); border-radius:50%; opacity:.75; }.city-list-card > * { position:relative; z-index:1; }.city-list-card small { color:var(--teja); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.11em; }.city-list-card h3 { margin:41px 0 8px; font-family:var(--serif); font-size:36px; font-weight:400; letter-spacing:-.05em; line-height:1; }.city-list-card p { margin:0; color:#607078; font-size:12px; max-width:260px; }.city-list-card:first-child p,.city-list-card:hover p { color:#C8D9D9; }.city-list-card a { margin-top:auto; display:flex; gap:6px; align-items:center; font-size:11px; font-weight:800; }
.info-columns { display:grid; grid-template-columns:1fr 1fr; gap:52px; }.editorial-list { border-top:1px solid var(--line); }.editorial-list article { display:grid; grid-template-columns:54px 1fr auto; align-items:center; gap:17px; padding:20px 0; border-bottom:1px solid var(--line); }.editorial-list article > span { color:var(--teja); font-size:11px; font-weight:800; }.editorial-list h3 { margin:0 0 5px; font-family:var(--serif); font-size:25px; font-weight:400; letter-spacing:-.035em; line-height:1; }.editorial-list p { margin:0; color:#607078; font-size:12px; }.editorial-list a { color:var(--teja); }.editorial-list a:hover { color:var(--ink); }
.index-board { display:grid; grid-template-columns:1.08fr .92fr; border:1px solid var(--line); background:var(--white); }.index-map { min-height:370px; padding:32px; background-color:#DDE4DE; background-image:linear-gradient(90deg,rgba(19,42,58,.12) 1px,transparent 1px),linear-gradient(rgba(19,42,58,.12) 1px,transparent 1px); background-size:45px 45px; position:relative; overflow:hidden; }.index-map:after { content:""; position:absolute; inset:24px; border:1px solid rgba(19,42,58,.25); clip-path:polygon(0 34%,35% 17%,62% 42%,100% 12%,100% 54%,71% 74%,38% 60%,0 88%); }.map-label { position:absolute; z-index:1; padding:5px 8px; background:var(--ink); color:var(--white); font-size:10px; font-weight:800; }.map-label.one { left:22%; top:25%; }.map-label.two { left:59%; top:46%; background:var(--teja); }.map-label.three { left:33%; bottom:20%; }.index-panel { padding:31px; display:flex; flex-direction:column; }.index-panel h3 { margin:12px 0 7px; font-family:var(--serif); font-size:36px; font-weight:400; letter-spacing:-.04em; line-height:1; }.index-panel > p { margin:0; color:#5D6D75; font-size:13px; }.meter-list { margin-top:23px; }.meter-row { display:grid; grid-template-columns:1fr 80px; align-items:center; gap:12px; margin-bottom:14px; }.meter-row span { font-size:11px; font-weight:800; }.meter { height:7px; background:var(--paper-2); position:relative; }.meter i { display:block; height:100%; background:var(--teja); }.meter-row small { color:#6B7A80; font-size:10px; text-align:right; }.panel-source { margin-top:auto; padding-top:17px; border-top:1px solid var(--line); font-size:10px; color:#69787F; }
.guide-grid { display:grid; grid-template-columns:1.18fr .82fr .85fr; gap:16px; }.guide-card { min-height:290px; padding:26px; background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; }.guide-card:first-child,.guide-card:nth-child(4) { grid-column:span 2; }.guide-card:nth-child(3n+1) { background:var(--ink); border-color:var(--ink); color:var(--white); }.guide-card .eyebrow { font-size:9px; }.guide-card h3 { margin:42px 0 10px; font-family:var(--serif); font-size:31px; font-weight:400; letter-spacing:-.04em; line-height:1; }.guide-card p { margin:0; color:#607078; font-size:12px; }.guide-card:nth-child(3n+1) p { color:#BBD0D7; }.guide-card a { margin-top:auto; font-size:11px; font-weight:800; }.guide-card a:hover{color:var(--teja)}
.tool-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:16px; }.tool-card { min-height:278px; padding:28px; background:var(--white); border:1px solid var(--line); display:flex; flex-direction:column; }.tool-card.featured { grid-row:span 2; min-height:572px; background:var(--teja); border-color:var(--teja); color:var(--white); position:relative; overflow:hidden; }.tool-card.featured:after { content:""; position:absolute; width:350px; height:350px; right:-180px; bottom:-150px; border:1px dashed #FFE3D6; border-radius:50%; box-shadow:0 0 0 36px transparent,0 0 0 37px rgba(255,255,255,.25); }.tool-card > * { position:relative; z-index:1; }.tool-card h3 { margin:42px 0 10px; font-family:var(--serif); font-size:37px; font-weight:400; letter-spacing:-.05em; line-height:.98; }.tool-card p { color:#607078; font-size:12px; margin:0; }.tool-card.featured p { color:#FFE3D6; }.tool-card a { margin-top:auto; font-size:12px; font-weight:800; display:flex; align-items:center; gap:6px; }.tool-card a:hover { opacity:.7; }
.directory-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }.filter-tag { border:1px solid var(--line); padding:8px 11px; background:var(--white); color:#50616B; font-size:11px; font-weight:800; }.filter-tag.active,.filter-tag:hover { background:var(--ink); color:var(--white); border-color:var(--ink); }.directory-list { border-top:1px solid var(--line); }.directory-entry { display:grid; grid-template-columns:1.25fr .8fr .7fr auto; gap:20px; align-items:center; padding:21px 0; border-bottom:1px solid var(--line); }.directory-entry .entry-title { display:flex; align-items:center; gap:12px; }.entry-logo { width:31px; height:31px; background:var(--paper-2); color:var(--teja); display:grid; place-items:center; font-family:var(--serif); font-size:17px; }.directory-entry h3 { margin:0; font-family:var(--serif); font-size:24px; font-weight:400; letter-spacing:-.035em; line-height:1; }.directory-entry p { margin:4px 0 0; color:#69787F; font-size:11px; }.entry-tag { color:#4C6564; font-size:11px; font-weight:800; }.entry-coverage { color:#65757D; font-size:11px; }.directory-entry a { display:flex; gap:5px; align-items:center; color:var(--teja); font-size:11px; font-weight:800; white-space:nowrap; }
.property-layout { display:grid; grid-template-columns:1fr .85fr; gap:24px; }.owner-story { padding:44px; background:var(--ink); color:var(--white); }.owner-story h2 { margin:13px 0 18px; font-family:var(--serif); font-size:49px; font-weight:400; letter-spacing:-.05em; line-height:.96; }.owner-story > p { color:#BBD0D7; max-width:530px; }.owner-path { margin-top:30px; border-top:1px solid rgba(255,255,255,.25); }.owner-path div { display:grid; grid-template-columns:45px 1fr; gap:12px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.25); }.owner-path b { color:var(--teja); font-size:11px; }.owner-path span { font-size:12px; }.owner-aside { background:#BFC9B4; padding:36px; }.owner-aside h3 { font-family:var(--serif); font-size:37px; font-weight:400; letter-spacing:-.04em; line-height:1; margin:15px 0; }.owner-aside p { color:#405953; font-size:13px; }.owner-aside a { display:inline-flex; gap:7px; align-items:center; color:var(--ink); font-size:12px; font-weight:800; border-bottom:1px solid var(--ink); padding-bottom:4px; }
.article-wrap { display:grid; grid-template-columns:180px minmax(0,710px) 230px; gap:50px; padding:70px 0 100px; }.article-side { font-size:11px; color:#6B7980; }.article-side .side-label { color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.article-side ul { padding:11px 0 0; margin:0; list-style:none; }.article-side li { padding:7px 0; border-bottom:1px solid var(--line); }.article-main h1 { margin:12px 0 19px; font-family:var(--serif); font-size:clamp(45px,5.2vw,70px); font-weight:400; letter-spacing:-.055em; line-height:.95; }.article-dek { color:#50616A; font-size:19px; line-height:1.45; }.article-meta { display:flex; gap:14px; color:#68777F; font-size:11px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:11px 0; margin:27px 0; }.article-main h2 { font-family:var(--serif); font-size:35px; font-weight:400; letter-spacing:-.04em; line-height:1; margin:35px 0 13px; }.article-main p { font-size:15px; color:#344B57; }.article-main blockquote { margin:28px 0; padding:19px 23px; border-left:4px solid var(--teja); background:var(--paper-2); font-family:var(--serif); font-size:24px; line-height:1.1; }.article-callout { padding:24px; background:var(--ink); color:var(--white); }.article-callout h3 { margin:0 0 8px; font-family:var(--serif); font-weight:400; font-size:28px; }.article-callout p { color:#C4D3D7; font-size:12px; }.article-callout a { color:#FFB9A2; font-size:12px; font-weight:800; }.article-aside-card { padding:20px; background:var(--white); border:1px solid var(--line); }.article-aside-card h3 { font-family:var(--serif); font-size:26px; font-weight:400; line-height:1; margin:10px 0; }.article-aside-card p { font-size:12px; color:#65757C; }.article-aside-card a { color:var(--teja); font-size:11px; font-weight:800; }
.home-guide-graphic { min-height:410px; position:relative; background-color:#DDE4DE; background-image:linear-gradient(90deg,rgba(19,42,58,.13) 1px,transparent 1px),linear-gradient(rgba(19,42,58,.13) 1px,transparent 1px); background-size:34px 34px; overflow:hidden; }.home-guide-graphic:before { content:""; position:absolute; inset:15% -23% -12% 9%; border:2px solid var(--ink); opacity:.7; clip-path:polygon(0 69%,20% 47%,40% 53%,58% 18%,75% 35%,100% 11%,100% 41%,78% 60%,61% 47%,41% 81%,23% 74%,0 93%); }.home-guide-graphic:after { content:"Contrato / anexos / estado"; position:absolute; left:28px; bottom:26px; padding:7px 9px; background:var(--ink); color:var(--white); font-size:10px; font-weight:800; letter-spacing:.07em; }.home-guide-point { position:absolute; z-index:2; width:13px; height:13px; border-radius:50%; background:var(--teja); border:2px solid var(--paper); }.home-guide-point.one{left:35%;top:39%}.home-guide-point.two{left:63%;top:22%}.home-guide-point.three{left:76%;top:57%}
.sale-page { background:var(--paper); }.sale-hero { padding:76px 0 100px; border-bottom:1px solid var(--line); }.sale-hero-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:74px; align-items:start; }.sale-hero h1 { max-width:710px; margin:15px 0 18px; font-family:var(--serif); font-size:clamp(53px,6vw,82px); font-weight:400; letter-spacing:-.06em; line-height:.92; }.sale-hero h1 em { font-style:normal; color:var(--teja); }.sale-hero p { max-width:590px; color:#506069; font-size:17px; }.sale-form-card { padding:30px; background:var(--ink); color:var(--white); box-shadow:13px 13px 0 var(--teja); }.sale-form-card h2 { margin:12px 0 8px; font-family:var(--serif); font-size:37px; font-weight:400; letter-spacing:-.04em; line-height:1; }.sale-form-card > p { color:#BBD0D7; font-size:13px; }.sale-form-card .email-form { margin-top:21px; display:block; }.sale-form-card .email-form input { width:100%; margin-bottom:10px; }.sale-form-card .email-form button { width:100%; }.email-form input { min-height:45px; padding:0 13px; border:1px solid var(--line); background:var(--white); color:var(--ink); outline-color:var(--teja); font-size:13px; }.email-form button { min-height:45px; padding:0 15px; display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--teja); color:var(--white); font-size:12px; font-weight:800; }.email-form button:hover { background:var(--teja-dark); }.email-form.compact { display:flex; margin-top:20px; }.email-form.compact input { flex:1; min-width:0; }.form-note { color:#BBD0D7!important; font-size:11px!important; margin:10px 0 0!important; }.sale-stats { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }.sale-stats div { padding:25px 18px 0 0; }.sale-stats div + div { border-left:1px solid var(--line); padding-left:21px; }.sale-stats strong { display:block; color:var(--teja); font-family:var(--serif); font-size:32px; font-weight:400; letter-spacing:-.05em; line-height:1; }.sale-stats span { color:#617078; font-size:11px; }.business-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.business-card { min-height:263px; padding:25px; background:var(--white); border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.business-card small { color:var(--teja); font-size:10px; font-weight:800; letter-spacing:.11em; }.business-card h3 { margin:46px 0 9px; font-family:var(--serif); font-size:29px; font-weight:400; letter-spacing:-.04em; line-height:1; }.business-card p { margin:0; color:#607078; font-size:12px; }.sale-contact-band { padding:63px 0; background:#BFC9B4; }.sale-contact-band h2 { max-width:760px; margin:0; font-family:var(--serif); font-size:clamp(39px,5vw,62px); font-weight:400; letter-spacing:-.05em; line-height:.96; }.sale-contact-band a { display:inline-flex; align-items:center; gap:7px; margin-top:22px; padding-bottom:4px; border-bottom:2px solid var(--ink); font-size:14px; font-weight:800; }

.site-footer { background:var(--ink); color:var(--white); }.footer-top { display:grid; grid-template-columns:1.7fr .78fr .88fr 1.15fr; gap:30px; padding:56px 0 48px; }.footer-brand .logo-mark { width:37px; height:37px; }.footer-brand { font-family:var(--serif); font-size:31px; letter-spacing:-.06em; }.footer-brand-block > p { max-width:310px; margin:16px 0; color:#BBD0D7; font-size:13px; }.footer-mail { display:inline-flex; align-items:center; gap:7px; color:#F0DED0; font-size:12px; font-weight:700; }.footer-column { display:flex; flex-direction:column; gap:8px; }.footer-label { margin:0 0 8px; color:#8AA4AE; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.footer-column a { color:#E7EFED; font-size:12px; }.footer-column a:hover { color:#FFB9A2; }.footer-contact p:not(.footer-label) { margin:0; color:#BBD0D7; font-size:12px; }.footer-sale-link { margin-top:11px; color:#FFB9A2!important; }.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 0; border-top:1px solid rgba(255,255,255,.18); color:#8EA6AF; font-size:10px; }.footer-bottom p { margin:0; }.footer-location { display:flex; align-items:center; gap:5px; }

@media (max-width:1050px) { .desktop-nav{gap:13px}.header-cta{display:none}.hero-grid{grid-template-columns:1fr .8fr}.city-strip{grid-template-columns:1.45fr repeat(4,1fr)}.city-chip{padding:19px 13px}.data-layout{grid-template-columns:1fr}.data-side{grid-template-columns:1fr 1fr}.footer-top{grid-template-columns:1.5fr 1fr 1fr}.footer-contact{grid-column:1/-1}.article-wrap{grid-template-columns:140px minmax(0,1fr);gap:30px}.article-aside{display:none} }
@media (max-width:760px) { .shell{width:min(100% - 32px,1280px)}.sale-ribbon-inner{min-height:43px}.sale-ribbon p{line-height:1.24}.sale-ribbon-label{opacity:1;margin:0}.sale-ribbon-detail,.sale-ribbon-link svg{display:none}.sale-ribbon-link{font-size:10px}.header-inner{height:66px}.brand-type{font-size:25px}.brand-strap{display:none}.desktop-nav{display:none}.menu-button{display:block}.hero-grid,.page-hero-grid,.owners-inner,.sale-hero-grid{grid-template-columns:1fr;gap:0}.hero-copy{padding:56px 0 42px}.hero h1{font-size:53px}.hero-lead{font-size:15px}.hero-visual{min-height:345px;margin:0 -16px;background-position:58% center}.hero-index-card{left:16px;bottom:24px;width:min(280px,calc(100% - 35px));padding:18px;box-shadow:9px 9px 0 var(--teja)}.hero-index-card h3{font-size:29px}.section{padding:64px 0}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:39px}.section-action{margin-top:17px}.decision-grid,.city-strip,.data-side,.guide-feature,.service-grid,.city-list,.info-columns,.index-board,.guide-grid,.tool-grid,.property-layout,.business-grid{grid-template-columns:1fr}.atlas-band{grid-template-columns:92px 1fr;margin-top:19px}.atlas-band-meta{border-bottom:1px solid var(--line)}.atlas-route-map{min-height:104px}.atlas-band-copy{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line)}.atlas-steps{grid-column:1/-1}.atlas-steps li{min-height:74px}.atlas-band-dark .atlas-band-meta,.atlas-band-dark .atlas-band-copy{border-color:rgba(255,255,255,.18)}.decision-card{min-height:190px;border-right:0;border-bottom:1px solid var(--line)}.decision-card:last-child{border-bottom:0}.decision-card h3{margin-top:30px}.city-strip{min-height:0}.city-main{min-height:250px}.city-chip{min-height:120px;border-right:0;border-bottom:1px solid var(--line)}.city-chip:last-child{border-bottom:0}.data-feature{min-height:360px;padding:27px}.data-feature h3{font-size:38px}.data-small{min-height:200px}.guide-image{min-height:245px}.home-guide-graphic{min-height:245px}.guide-copy{padding:30px 24px}.guide-copy h3{font-size:37px}.checklist{grid-template-columns:1fr}.service-card{min-height:175px}.owners-inner{gap:29px}.page-hero{padding:58px 0 46px}.page-hero h1{font-size:51px}.page-hero-grid{gap:26px}.filter-bar{margin-top:-21px;display:block}.filter-bar label{display:block;margin-bottom:7px}.filter-bar select{width:100%;max-width:none}.city-list-card,.city-list-card:first-child{min-height:225px;grid-column:auto}.info-columns{gap:42px}.editorial-list article{grid-template-columns:36px 1fr auto;gap:9px}.editorial-list h3{font-size:22px}.index-map{min-height:300px}.index-panel{padding:27px}.guide-card,.guide-card:first-child,.guide-card:nth-child(4){min-height:245px;grid-column:auto}.tool-card,.tool-card.featured{min-height:222px;grid-row:auto}.directory-entry{grid-template-columns:1fr auto;gap:12px}.directory-entry .entry-tag,.directory-entry .entry-coverage{display:none}.owner-story{padding:29px}.owner-story h2{font-size:42px}.owner-aside{padding:29px}.article-wrap{grid-template-columns:1fr;padding:48px 0 65px}.article-side{display:none}.article-main h1{font-size:49px}.article-dek{font-size:17px}.article-main blockquote{font-size:22px}.sale-hero{padding:55px 0 69px}.sale-hero-grid{gap:42px}.sale-hero h1{font-size:56px}.sale-stats{grid-template-columns:1fr}.sale-stats div,.sale-stats div+div{border-left:0;border-bottom:1px solid var(--line);padding:18px 0}.sale-stats div:last-child{border-bottom:0}.footer-top{grid-template-columns:1fr 1fr;gap:36px 20px}.footer-brand-block{grid-column:1/-1}.footer-contact{grid-column:1/-1}.footer-bottom{display:block;line-height:1.6}.footer-location{margin-top:5px} }
@media (prefers-reduced-motion:no-preference){.section,.hero-copy,.page-hero{animation:rise .45s cubic-bezier(.23,1,.32,1) both}.section:nth-of-type(2){animation-delay:.04s}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}

.icon-lucide {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.mobile-menu[hidden],
.sale-form-card .form-note[hidden] {
  display: none;
}

.menu-button {
  font-size: 0;
}

.menu-button::before {
  content: "☰";
  font-size: 23px;
}

.menu-button.is-open::before {
  content: "×";
  font-size: 29px;
  line-height: 0.7;
}

.guide-copy > .button-primary {
  margin-top: 0;
}

.owner-story > .button-primary {
  margin-top: 25px;
}

.site-footer a:focus-visible,
.site-header a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid var(--teja);
  outline-offset: 3px;
}

@media (max-width: 760px) {
  .mobile-menu .mobile-nav-link > span:last-child {
    margin-left: auto;
    color: var(--teja);
    font-size: 22px;
  }
}
