@font-face {
  font-family: 'Libre Baskerville';
  src: url('/assets/fonts/LibreBaskerville-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Libre Baskerville';
  src: url('/assets/fonts/LibreBaskerville-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('/assets/fonts/Raleway-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('/assets/fonts/Raleway-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Raleway';
  src: url('/assets/fonts/Raleway-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

:root {
  --ink: #111111;
  --ink-soft: #222222;
  --paper: #f9f9f9;
  --white: #ffffff;
  --sand: #e9c48c;
  --green: #004441;
  --gray: #777777;
  --line: #e5e5e5;
  --serif: 'Libre Baskerville', Georgia, serif;
  --sans: 'Raleway', Arial, sans-serif;
  --gutter: 1.25rem;
  --sticky-height: 7.2rem;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  padding: 0 0 calc(var(--sticky-height) + env(safe-area-inset-bottom, 0px));
  background: var(--green);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body.dialog-open { overflow: hidden; }

img { display: block; max-width: 100%; }

a { color: inherit; text-decoration: none; }

button, input, select, textarea { font: inherit; }

button, a { -webkit-tap-highlight-color: transparent; }

button { cursor: pointer; }

button:disabled { cursor: wait; opacity: .6; }

address { font-style: normal; }

.page-shell { width: min(100% - (var(--gutter) * 2), 1200px); margin: 0 auto; }

.site-header { position: absolute; inset: 0 0 auto; z-index: 20; padding: 1.1rem 0; color: var(--white); }

.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }

.brand { display: inline-flex; align-items: center; }

.brand img { width: auto; height: 2.3rem; }

.brand-lockup { display: inline-flex; min-width: 0; align-items: center; gap: .7rem; }

.brand-lockup__rosbaco { width: auto; height: 2.3rem; }

.brand-lockup__cinco { width: auto; height: 2.3rem; object-fit: contain; }

.brand-lockup__divider { width: 1px; height: 1.7rem; background: rgba(255, 255, 255, .55); }

.site-nav { display: none; align-items: center; gap: 1.5rem; }

.site-nav a, .header-cta { font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }

.site-nav a { opacity: .8; transition: opacity .25s ease; }

.site-nav a:hover { opacity: 1; }

.header-cta { border-bottom: 1px solid var(--sand); padding-bottom: .35rem; color: var(--white); }

.hero { position: relative; display: flex; align-items: flex-end; min-height: min(760px, 92svh); overflow: hidden; background: var(--green); color: var(--white); }

.hero__media, .hero__veil { position: absolute; inset: 0; }

.hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 58% center; opacity: 0; transition: opacity 1.2s cubic-bezier(.2, .7, .2, 1); }

.hero__media.is-loaded img { opacity: 1; }

.hero__veil { background: linear-gradient(90deg, rgba(0, 0, 0, .72), rgba(0, 0, 0, .25) 70%, rgba(0, 0, 0, .5)); }

.hero__content { position: relative; z-index: 1; padding-top: 8rem; padding-bottom: 4.5rem; }

.hero__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .7rem 1.5rem; margin-bottom: 2rem; border-top: 1px solid rgba(255, 255, 255, .35); padding-top: .75rem; color: rgba(255, 255, 255, .88); font-size: .68rem; font-weight: 600; letter-spacing: .13em; line-height: 1.4; text-transform: uppercase; text-shadow: 0 2px 10px rgba(0, 0, 0, .6); }

.hero__copy { max-width: 44rem; }

.eyebrow { margin: 0 0 .9rem; color: var(--ink); font-size: .68rem; font-weight: 600; letter-spacing: .18em; line-height: 1.4; text-transform: uppercase; }
.hero .eyebrow { color: var(--sand); }

.hero .eyebrow { text-shadow: 0 2px 10px rgba(0, 0, 0, .55); }

h1, h2, h3, p { margin-top: 0; }

h1, h2, h3 { font-family: var(--serif); font-weight: 400; }

h1 { margin-bottom: 1.3rem; font-size: clamp(2.7rem, 12vw, 5.4rem); letter-spacing: -.04em; line-height: 1.05; }

.hero__copy h1 { text-shadow: 0 4px 24px rgba(0, 0, 0, .75), 0 2px 6px rgba(0, 0, 0, .5); }

h1 em { color: var(--sand); font-style: italic; }

.hero__lead { max-width: 38rem; margin-bottom: 1.8rem; color: rgba(255, 255, 255, .92); font-size: 1.05rem; line-height: 1.7; text-shadow: 0 2px 14px rgba(0, 0, 0, .68); }

/* Lazy images progressive fade-in */
.js img[loading="lazy"] {
  opacity: 0;
  transition: opacity 0.55s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: opacity;
}

.js img[loading="lazy"].is-loaded {
  opacity: 1;
}

.hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }

.button { display: inline-flex; min-height: 3.1rem; align-items: center; justify-content: center; gap: .8rem; border: 1px solid transparent; border-radius: 0; padding: .85rem 1.2rem; font-size: .72rem; font-weight: 600; letter-spacing: .13em; line-height: 1.2; text-align: center; text-transform: uppercase; transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease; }

.button:hover { transform: translateY(-2px); }

.button--primary { background: var(--sand); color: var(--ink); }

.button--primary:hover { background: var(--green); border-color: var(--sand); color: var(--sand); }

.button--dark { background: var(--green); color: var(--white); }

.button--dark:hover { background: var(--ink-soft); color: var(--sand); }

.button--submit { width: 100%; margin-top: 1rem; }

.text-link { display: inline-flex; gap: .55rem; border-bottom: 1px solid currentColor; padding-bottom: .35rem; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.text-link--light { color: var(--white); }

.technical-section { background: var(--green); color: var(--white); padding: 4.5rem 0; }

.section-heading { max-width: 44rem; margin-bottom: 2.25rem; }

.section-heading h2 { margin-bottom: .8rem; font-size: clamp(2rem, 8vw, 3.2rem); line-height: 1.15; }

.section-heading > p:last-child { color: var(--gray); font-size: 1.05rem; }

.section-heading--inverse > p:last-child { color: rgba(255, 255, 255, .7); }

.metric-grid { display: grid; border-top: 1px solid rgba(255, 255, 255, .2); }

.metric { min-height: 10rem; border-bottom: 1px solid rgba(255, 255, 255, .2); padding: 1.4rem 0 1.5rem; }

.metric__label { margin-bottom: 1.5rem; color: var(--sand); font-size: .68rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }

.metric__value { margin-bottom: .35rem; font-family: var(--serif); font-size: clamp(2rem, 8vw, 3.25rem); line-height: 1; }

.metric__copy { max-width: 17rem; margin-bottom: 0; color: rgba(255, 255, 255, .66); font-size: .88rem; line-height: 1.5; }

.technical-notes { margin: 2rem 0 0; color: rgba(255, 255, 255, .62); font-size: .82rem; line-height: 1.7; }

.experience-section { background: var(--paper); }

.checkerboard { display: grid; }

.media-tile { min-height: 20rem; margin: 0; overflow: hidden; background: #d9d7d3; }

.media-tile img { width: 100%; height: 100%; min-height: 20rem; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }

.media-tile:hover img, .editorial-media:hover img { transform: scale(1.035); }

.feature-tile { min-height: 20rem; padding: 2.8rem var(--gutter); }

.feature-tile--gold { display: flex; flex-direction: column; justify-content: center; background: var(--sand); color: var(--ink); }

.feature-tile--gold .eyebrow { color: var(--ink); }

.feature-tile--gold h2, .feature-tile--dark h2 { margin-bottom: 1rem; font-size: clamp(2rem, 8vw, 3.3rem); line-height: 1.1; }

.feature-tile--gold > p:not(.eyebrow) { max-width: 34rem; margin-bottom: 0; font-family: var(--serif); font-size: 1.1rem; font-style: italic; line-height: 1.65; }

.feature-mark { align-self: flex-end; margin-top: 2rem; font-size: .68rem; font-weight: 600; letter-spacing: .2em; }

.feature-tile--dark { background: var(--green); color: var(--white); }

.feature-tile--dark .eyebrow, .section-heading--inverse .eyebrow { color: var(--sand); }

.amenity-carousel { justify-content: space-between; gap: 1.25rem; }

.amenity-carousel__viewport { margin-top: .25rem; }

.amenity-carousel__slides { overflow: hidden; border: 1px solid rgba(255, 255, 255, .24); }

.amenity-slide { margin: 0; animation: amenity-slide-in .35s ease both; }

.amenity-slide[hidden] { display: none; }

.amenity-slide img { width: 100%; aspect-ratio: 1.5; object-fit: cover; opacity: 1; }

.js .amenity-slide img { opacity: 1; }

.amenity-slide figcaption { margin: 0; border-top: 1px solid rgba(255, 255, 255, .24); padding: .65rem .8rem; color: rgba(255, 255, 255, .84); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.amenity-carousel__controls { display: grid; grid-template-columns: 2.5rem 1fr 2.5rem; align-items: center; gap: .7rem; margin-top: .75rem; }

.amenity-carousel__controls p { margin: 0; color: rgba(255, 255, 255, .62); font-size: .68rem; font-weight: 600; letter-spacing: .13em; text-align: center; }

.amenity-carousel__control { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, .34); background: transparent; color: var(--white); font-size: 1.15rem; line-height: 1; }

.amenity-carousel__control:hover { border-color: var(--sand); color: var(--sand); }

.editorial-section, .typology-section, .location-section { padding: 5rem 0; }

.editorial-section { background: var(--paper); }

.editorial-grid, .location-grid { display: grid; gap: 2.25rem; }
.location-grid { grid-template-columns: minmax(0, 1fr); }
.location-grid > * { min-width: 0; }

.editorial-copy h2, .location-copy h2 { margin-bottom: 1.2rem; font-size: clamp(2.1rem, 9vw, 3.8rem); line-height: 1.13; }

.editorial-copy > p:not(.eyebrow):not(.editorial-signature), .location-copy > p { color: #4c4c4c; font-size: 1.02rem; line-height: 1.75; }

.editorial-signature { margin: 1.8rem 0 0; font-family: var(--serif); font-size: 1.5rem; font-style: italic; }

.editorial-media { min-height: 22rem; margin: 0; overflow: hidden; background: #dedbd6; }

.editorial-media img { width: 100%; height: 100%; min-height: 22rem; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }

.typology-section { background: #efeeee; }

.typology-explorer { border: 1px solid var(--ink); background: var(--white); }

.typology-tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--ink); }

.typology-tabs button { min-height: 3.4rem; border: 0; border-right: 1px solid var(--ink); background: var(--white); color: var(--gray); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.typology-tabs button:last-child { border-right: 0; }

.typology-tabs button[aria-selected="true"] { background: var(--green); color: var(--white); }

.typology-panel { display: grid; gap: 2rem; padding: 2rem var(--gutter); }

.typology-panel h3 { margin-bottom: .8rem; font-size: clamp(2rem, 8vw, 3.1rem); line-height: 1.1; }

.typology-panel > div > p:last-child { max-width: 38rem; margin-bottom: 0; color: #4c4c4c; font-size: 1rem; line-height: 1.7; }

.typology-panel.is-changing > div, .typology-panel.is-changing .typology-facts { opacity: .35; transform: translateY(.2rem); }

.typology-panel > div, .typology-facts { transition: opacity .2s ease, transform .2s ease; }

.typology-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .25rem; }

.typology-actions .button { flex: 1 1 12rem; }

.button--outline { border-color: var(--ink); background: var(--white); color: var(--ink); }

.button--outline:hover { background: var(--green); color: var(--white); }

.typology-facts { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--line); }

.typology-facts div { border-bottom: 1px solid var(--line); padding: 1rem 0; }

.typology-facts div:nth-child(odd) { margin-right: 1rem; }

.typology-facts dt { margin-bottom: .25rem; color: var(--gray); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

.typology-facts dd { margin: 0; font-family: var(--serif); font-size: 1.1rem; }

.location-section { background: var(--white); }

.location-copy address { margin: 1.5rem 0; border-left: 2px solid var(--green); padding-left: 1rem; font-family: var(--serif); font-size: 1.25rem; line-height: 1.6; }

.location-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin: 0; padding: 0; list-style: none; }

.location-list li { border-top: 1px solid var(--line); padding: .7rem 0; color: #4c4c4c; font-size: .86rem; }

.map-card { margin: 0; border: 1px solid var(--ink); background: #e4e2df; }

.map-frame { position: relative; }

.map-canvas { position: relative; width: 100%; min-height: 21rem; aspect-ratio: 1.35; overflow: hidden; background: linear-gradient(135deg, #e9c48c 0%, #f4efe6 52%, #dfe8e4 100%); }

.map-status { position: absolute; z-index: 1; inset: auto 1rem 1rem; width: fit-content; max-width: calc(100% - 2rem); margin: 0; border: 1px solid rgba(0, 68, 65, .2); background: rgba(255, 255, 255, .94); padding: .6rem .8rem; color: var(--ink); font-size: .72rem; font-weight: 600; letter-spacing: .06em; }

.map-canvas.is-loaded ~ .map-status { display: none; }

.map-legend { position: absolute; z-index: 1; top: 1rem; left: 1rem; display: none; gap: .8rem; border: 1px solid rgba(0, 68, 65, .18); background: rgba(255, 255, 255, .95); padding: .65rem .8rem; color: var(--ink); font-size: .68rem; font-weight: 600; letter-spacing: .04em; }

.map-canvas.has-developments ~ .map-legend { display: flex; }

.map-legend__item { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }

.map-legend__logo { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; object-fit: contain; }

.rosbaco-map-marker { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; border: 2px solid var(--green); border-radius: 50%; background: var(--white); box-shadow: 0 2px 8px rgba(0, 0, 0, .28); }

.rosbaco-map-marker img { display: block; width: 1.65rem; height: 1.65rem; object-fit: contain; }

.rosbaco-map-featured { display: inline-flex; width: max-content; flex-direction: column; align-items: center; gap: .35rem; }

.rosbaco-map-featured .rosbaco-map-marker { width: 3.4rem; height: 3.4rem; border: 3px solid var(--sand); box-shadow: 0 0 0 3px rgba(255, 255, 255, .95), 0 6px 18px rgba(0, 0, 0, .32); }

.rosbaco-map-featured .rosbaco-map-marker img { width: 2.3rem; height: 2.3rem; }

.rosbaco-map-featured__label { display: block; border: 1px solid var(--sand); border-radius: .3rem; background: var(--green); padding: .35rem .65rem; box-shadow: 0 3px 12px rgba(0, 0, 0, .28); color: var(--white); font-size: .65rem; font-weight: 600; letter-spacing: .08em; line-height: 1.2; text-align: center; text-transform: uppercase; white-space: nowrap; }

.map-card figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--ink); padding: .8rem 1rem; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.map-card figcaption a { color: var(--ink); }

.conversion-band { background: var(--sand); padding: 4.5rem 0 calc(5rem + env(safe-area-inset-bottom, 0px)); }

.conversion-band__inner { max-width: 48rem; }

.conversion-band h2 { margin-bottom: .8rem; font-size: clamp(2.4rem, 10vw, 4.5rem); line-height: 1.06; }

.conversion-band__inner > p:not(.eyebrow) { max-width: 34rem; margin-bottom: 1.7rem; font-size: 1.05rem; }

.site-footer { background: var(--green); color: var(--white); padding: 2.5rem 0 calc(2.5rem + env(safe-area-inset-bottom, 0px)); }

.site-footer__inner { display: grid; gap: 1.5rem; }

.site-footer__copyright { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .15); text-align: center; }

.site-footer__copyright p { margin: 0; color: rgba(255, 255, 255, .45); font-size: .7rem; letter-spacing: .1em; line-height: 1.6; }

.footer-credit { display: inline-flex; align-items: center; gap: .5rem; margin-top: .8rem; color: rgba(255, 255, 255, .35); font-size: .62rem; letter-spacing: .08em; text-decoration: none; transition: color .25s ease; }

.footer-credit:hover { color: rgba(255, 255, 255, .6); }

.footer-credit__logo { width: auto; height: 1rem; opacity: .4; transition: opacity .25s ease; }

.footer-credit:hover .footer-credit__logo { opacity: .65; }

.brand-lockup--footer .brand-lockup__rosbaco { height: 2.5rem; }

.brand-lockup--footer .brand-lockup__cinco { height: 2.5rem; }

.footer-project { margin-bottom: .65rem; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }

.footer-legal { max-width: 34rem; margin: 0; color: rgba(255, 255, 255, .55); font-size: .75rem; line-height: 1.55; }

.sticky-cta { position: fixed; inset: auto 0 0; z-index: 40; display: grid; grid-template-columns: 1fr 1.35fr; grid-template-rows: auto auto; row-gap: .35rem; min-height: var(--sticky-height); padding: .45rem .65rem calc(.45rem + env(safe-area-inset-bottom, 0px)); background: rgba(0, 68, 65, .97); color: var(--white); }

.sticky-cta a, .sticky-cta button { display: flex; min-height: 2.75rem; align-items: center; justify-content: center; gap: .55rem; border: 0; border-right: 1px solid rgba(255, 255, 255, .2); background: transparent; color: inherit; font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }

.sticky-cta button { border: 0; background: var(--sand); color: var(--ink); }

.sticky-cta__icon { width: 1.45rem; height: 1.45rem; object-fit: contain; }

.sticky-cta__status { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: .2rem .55rem; margin: 0; border-top: 1px solid rgba(255, 255, 255, .2); padding-top: .35rem; color: rgba(255, 255, 255, .72); font-size: .58rem; letter-spacing: .08em; line-height: 1.35; text-align: center; text-transform: uppercase; }

.sticky-cta__status-label { color: var(--sand); font-weight: 600; }

.lead-dialog { width: min(100% - 1.5rem, 760px); max-height: min(100dvh - 2rem, 820px); margin: auto; border: 0; padding: 0; background: transparent; color: var(--ink); }

.lead-dialog::backdrop { background: rgba(0, 0, 0, .76); }

.lead-dialog__surface { display: flex; flex-direction: column; max-height: min(100dvh - 2rem, 820px); overflow-y: auto; border-top: 4px solid var(--sand); background: var(--paper); padding: 1.25rem var(--gutter) 1.5rem; animation: dialog-in .35s ease both; }

.brochure-dialog { position: fixed; inset: 0; width: 100%; height: 100svh; max-width: none; max-height: none; margin: 0; border: 0; padding: 0; background: transparent; color: var(--ink); }

.brochure-dialog::backdrop { background: rgba(0, 0, 0, .76); }

.brochure-dialog__surface { position: relative; display: flex; height: 100%; min-height: 0; flex-direction: column; border-top: 4px solid var(--sand); background: var(--paper); padding: 1rem var(--gutter) calc(var(--sticky-height) + .75rem + env(safe-area-inset-bottom, 0px)); animation: dialog-in .35s ease both; }

.brochure-dialog__header { display: flex; flex: 0 0 auto; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }

.brochure-dialog__header h2 { margin-bottom: .35rem; font-size: clamp(2rem, 8vw, 3.1rem); line-height: 1.08; }

.brochure-dialog__header p:last-child { max-width: 34rem; margin-bottom: 0; color: #555; font-size: .95rem; }

.brochure-dialog__viewer { min-height: 0; flex: 1 1 auto; border: 1px solid var(--ink); background: #e5e2dc; overflow-y: auto; -webkit-overflow-scrolling: touch; }

.pdf-pages { display: flex; flex-direction: column; align-items: center; gap: 2px; background: #525659; }

.pdf-pages canvas { display: block; width: 100%; height: auto; }

.pdf-page-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: #464a4d;
  position: relative;
  overflow: hidden;
}

.pdf-page-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: rgba(255, 255, 255, 0.45);
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pdf-page-slot.is-rendered .pdf-page-placeholder {
  display: none;
}

/* PDF Loading State */
.pdf-loader {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  padding: 4.5rem 1.5rem;
  min-height: 420px;
  background: #1e2022;
  color: #f5f2eb;
  text-align: center;
  transition: opacity .4s ease, visibility .4s ease;
}

.pdf-loader.is-hidden {
  display: none !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.pdf-loader__spinner {
  width: 48px;
  height: 48px;
  border: 3px solid rgba(0, 68, 65, .22);
  border-top-color: var(--sand);
  border-radius: 50%;
  animation: pdf-spin .85s cubic-bezier(.6, .2, .4, .8) infinite;
}

@keyframes pdf-spin {
  to { transform: rotate(360deg); }
}

.pdf-loader__text {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.15rem;
  letter-spacing: .02em;
  color: #f7f4ed;
  margin: 0;
}

.pdf-loader__bar {
  width: min(260px, 80%);
  height: 4px;
  background: rgba(255, 255, 255, .15);
  border-radius: 2px;
  overflow: hidden;
  position: relative;
}

.pdf-loader__progress {
  width: 35%;
  height: 100%;
  background: linear-gradient(90deg, var(--sand), #d8b681);
  border-radius: 2px;
  animation: pdf-bar-indeterminate 1.4s ease-in-out infinite;
  transition: width .2s ease;
}

@keyframes pdf-bar-indeterminate {
  0% { transform: translateX(-100%); width: 25%; }
  50% { width: 60%; }
  100% { transform: translateX(320%); width: 25%; }
}

.pdf-loader__subtext {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
}

.brochure-dialog__sticky-cta { position: absolute; inset: auto 0 0; width: 100%; border-top: 1px solid rgba(255, 255, 255, .22); border-right: 0; border-bottom: 0; border-left: 0; }

.lead-dialog__header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }

.lead-dialog__header h2 { margin-bottom: .4rem; font-size: clamp(1.6rem, 5vw, 2.4rem); line-height: 1.08; }

.lead-dialog__header p:last-child { max-width: 34rem; margin-bottom: 0; color: #555; font-size: .88rem; }

.dialog-close { width: 2.7rem; height: 2.7rem; flex: 0 0 auto; border: 1px solid var(--ink); background: transparent; color: var(--ink); font-size: 1.8rem; line-height: 1; }

.form-grid { display: grid; gap: .85rem; }

.field { min-width: 0; display: flex; flex-direction: column; gap: .45rem; }

.field label, .radio-fieldset legend { color: var(--gray); font-size: .68rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }

.field input, .field select, .field textarea { width: 100%; border: 0; border-bottom: 1.5px solid #d4d4d4; border-radius: 0; background: var(--white); padding: .6rem .1rem; color: var(--ink); font-size: .95rem; outline: 0; }

.field textarea { min-height: 4rem; resize: vertical; }

.field input:focus, .field select:focus, .field textarea:focus { border-bottom-color: var(--green); }

.field.is-error input, .field.is-error select, .field.is-error textarea { border-bottom-color: #aa2020; }

.radio-fieldset { border: 0; margin: 0; padding: 0; }

.radio-fieldset legend { margin-bottom: .6rem; padding: 0; }

.radio-options { display: flex; gap: 1.25rem; }

.radio-options label { display: flex; align-items: center; gap: .45rem; color: var(--ink); font-size: .95rem; font-weight: 400; letter-spacing: 0; text-transform: none; }

.radio-options input { accent-color: var(--ink); }

.form-message { margin: .6rem 0 0; color: #9f1b1b; font-size: .84rem; }

.reveal { opacity: 0; transform: translateY(1.25rem); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }

.reveal--delay { transition-delay: .12s; }

.reveal.is-visible { opacity: 1; transform: none; }

@keyframes dialog-in { from { opacity: 0; transform: translateY(1.5rem); } to { opacity: 1; transform: none; } }

@keyframes amenity-slide-in { from { opacity: 0; transform: translateX(.65rem); } to { opacity: 1; transform: none; } }

@media (min-width: 640px) {
  :root { --gutter: 2rem; --sticky-height: 7rem; }

  .hero__actions { flex-direction: row; align-items: center; }

  .form-grid { grid-template-columns: 1fr 1fr; gap: .9rem 1.5rem; }

  .field--full { grid-column: 1 / -1; }

  .lead-dialog__surface { padding: 1.5rem 2.5rem 1.8rem; }
}

@media (max-width: 639px) {
  .lead-dialog { inset: 0; width: 100%; max-width: none; max-height: none; height: 100dvh; margin: 0; }

  .lead-dialog__surface { display: flex; flex-direction: column; justify-content: center; max-height: none; height: 100%; padding: 1rem var(--gutter) 1.2rem; }

  .lead-dialog__header { margin-bottom: .7rem; }

  .lead-dialog__header h2 { margin-bottom: .25rem; font-size: 1.65rem; }

  .lead-dialog__header p:last-child { font-size: .82rem; }

  .form-grid { gap: .55rem; }

  .field label, .radio-fieldset legend { font-size: .62rem; margin-bottom: 0; }

  .field input, .field select { padding: .5rem .1rem; font-size: .92rem; }

  .field textarea { min-height: 2.8rem; font-size: .92rem; padding: .5rem .1rem; }

  .radio-options { gap: .8rem; }

  .radio-options label { font-size: .88rem; }

  .button--submit { margin-top: .6rem; min-height: 2.7rem; padding: .65rem 1rem; }

  .form-message { margin-top: .4rem; font-size: .78rem; }

  .dialog-close { width: 2.2rem; height: 2.2rem; font-size: 1.4rem; }

  .eyebrow { margin-bottom: .4rem; }
}

@media (min-width: 768px) {
  :root { --gutter: 3rem; --sticky-height: 5.2rem; }

  body { padding-bottom: calc(var(--sticky-height) + 1.5rem); }

  .site-nav { display: flex; }

  .hero__content { padding-bottom: 6rem; }

  .metric-grid { grid-template-columns: repeat(2, 1fr); }

  .metric { padding: 1.7rem 1.5rem 1.7rem 0; }

  .metric:nth-child(odd) { border-right: 1px solid rgba(255, 255, 255, .2); }

  .metric:nth-child(even) { padding-left: 1.5rem; }

  .editorial-grid, .location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 4rem; }

  .editorial-section, .typology-section, .location-section { padding: 7rem 0; }

  .typology-panel { grid-template-columns: 1.2fr .8fr; align-items: end; padding: 3.5rem; }

  .typology-actions { grid-column: 1 / -1; }

  .site-footer__inner { grid-template-columns: 1fr 1.5fr; align-items: center; }

  .sticky-cta { right: 0; bottom: 0; left: 0; width: 100%; border: 1px solid rgba(255, 255, 255, .22); border-right: 0; border-bottom: 0; border-left: 0; padding: .35rem var(--gutter) calc(.35rem + env(safe-area-inset-bottom, 0px)); }
}

@media (min-width: 1024px) {
  :root { --gutter: 4rem; }

  .hero__content { padding-top: 10rem; padding-bottom: 8rem; }

  .checkerboard { grid-template-columns: 1fr 1fr; }

  .media-tile, .feature-tile { min-height: 34rem; }

  .media-tile img { min-height: 34rem; }

  .feature-tile { padding: 5rem; }

  .technical-section { padding: 7rem 0; }

  .conversion-band { padding: 7rem 0 calc(8rem + env(safe-area-inset-bottom, 0px)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }

  .reveal { opacity: 1; transform: none; }
}

:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }

.site-header :focus-visible, .technical-section :focus-visible, .feature-tile--dark :focus-visible, .site-footer :focus-visible, .sticky-cta :focus-visible { outline-color: var(--sand); }

/* MOOD Montañeses */
:root {
  --ink: #281d1b;
  --ink-soft: #4a2622;
  --paper: #f7f3ee;
  --sand: #e9d6c4;
  --green: #781711;
  --gray: #716a65;
  --line: #ded6d0;
  --sans: 'Raleway', Arial, sans-serif;
  --serif: 'Libre Baskerville', Georgia, serif;
  --sticky-height: 4.2rem;
}

.skip-link { position: fixed; z-index: 100; top: -5rem; left: 1rem; background: var(--white); padding: .75rem 1rem; color: var(--ink); }
.skip-link:focus { top: 1rem; }
.no-js .reveal { opacity: 1; transform: none; }
.site-header { padding: 1.4rem 0; }
.site-header__inner { width: min(100% - 2.5rem, 1400px); }
.site-header .brand-lockup__rosbaco { height: 2.15rem; }
.brand-lockup__montaneses { width: auto; height: 2.3rem; object-fit: contain; }
.brand-lockup--footer .brand-lockup__montaneses { height: 2.5rem; }
.site-nav { display: none; }
.site-nav a, .header-cta { text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.header-cta { white-space: nowrap; }
.hero { width: 100%; background: #2d2424; }
.hero__media img { object-position: 50% 58%; }
.hero__veil { background: linear-gradient(180deg, rgba(15, 8, 8, .5), transparent 38%), linear-gradient(90deg, rgba(27, 9, 8, .82), rgba(27, 9, 8, .32) 72%), linear-gradient(0deg, rgba(27, 9, 8, .45), transparent 50%); }
.hero__copy { max-width: min(44rem, 100%); }
.hero__copy h1 { font-size: clamp(2.45rem, 10vw, 5.4rem); }
.hero__lead { max-width: 35rem; }

.mood-intro { padding: 5rem 0 0; background: var(--green); color: var(--white); }
.mood-intro__grid { display: grid; gap: 2rem; padding-bottom: 4.5rem; }
.mood-intro .eyebrow, .mood-smart .eyebrow, .conversion-band .eyebrow { color: var(--sand); }
.mood-intro h2 { max-width: 55rem; margin-bottom: 0; font-size: clamp(2.5rem, 6.5vw, 5.3rem); line-height: 1.13; }
.mood-intro h2 em, .mood-smart h2 em, .conversion-band h2 em { color: var(--sand); font-weight: 400; }
.mood-intro__copy { max-width: 30rem; }
.mood-intro__copy p { color: rgba(255,255,255,.83); font-size: 1rem; line-height: 1.8; }
.mood-intro__copy .button { margin-top: .75rem; }
.mood-stats { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid rgba(255,255,255,.3); }
.mood-stats div { display: flex; min-height: 9rem; flex-direction: column; justify-content: center; gap: .2rem; border-bottom: 1px solid rgba(255,255,255,.3); }
.mood-stats div:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.3); }
.mood-stats div:nth-child(even) { padding-left: 1.2rem; }
.mood-stats strong { font-family: var(--serif); font-size: clamp(2.2rem, 7vw, 4rem); font-weight: 400; line-height: 1.1; }
.mood-stats span { color: var(--sand); font-size: .68rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.mood-project-facts { margin: 0 auto; border-top: 1px solid rgba(255,255,255,.3); padding-top: 1rem; padding-bottom: 1rem; color: rgba(255,255,255,.75); font-size: .68rem; font-weight: 600; letter-spacing: .11em; text-align: center; text-transform: uppercase; }
.mood-project-facts span { padding: 0 .5rem; color: var(--sand); }

.mood-lifestyle, .mood-smart { display: grid; background: var(--paper); }
.mood-lifestyle__image, .mood-smart__image { min-height: 25rem; margin: 0; overflow: hidden; }
.mood-lifestyle__image img, .mood-smart__image img { width: 100%; height: 100%; min-height: 25rem; object-fit: cover; }
.mood-lifestyle__copy, .mood-smart__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 4rem var(--gutter); }
.mood-lifestyle h2, .mood-smart h2, .mood-section-title h2, .mood-spaces h2, .location-copy h2 { max-width: 40rem; margin-bottom: 1.4rem; font-size: clamp(2.2rem, 5vw, 4.1rem); line-height: 1.14; }
.mood-lifestyle h2 em, .mood-section-title h2 em, .mood-spaces h2 em, .location-copy h2 em, .typology-section h2 em { color: var(--green); }
.mood-lifestyle__copy > p:not(.eyebrow), .mood-smart__copy > p:not(.eyebrow) { max-width: 35rem; color: #514b46; line-height: 1.8; }
.mood-lifestyle .text-link { margin-top: .7rem; color: var(--green); }

.mood-essentials { padding: 5rem 0; background: #eae2db; }
.mood-section-title { margin-bottom: 2.5rem; }
.essentials-grid { display: grid; gap: 1px; background: #cbbcb1; border: 1px solid #cbbcb1; }
.essential-card { min-height: 16rem; background: var(--paper); padding: 2rem; }
.essential-card span { color: var(--green); font-size: .67rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.essential-card h3 { margin: 2.2rem 0 .7rem; font-size: 1.55rem; line-height: 1.25; }
.essential-card p { max-width: 20rem; margin-bottom: 0; color: #5f5752; font-size: .9rem; line-height: 1.7; }

.mood-spaces { background: var(--paper); padding: 5rem 0; }
.mood-spaces__heading { display: grid; gap: 1rem; margin-bottom: 2rem; }
.mood-spaces__heading > p { max-width: 25rem; align-self: end; color: #5f5752; line-height: 1.75; }
.mood-spaces__grid { display: grid; gap: 1rem; }
.mood-spaces__grid figure { position: relative; height: 24rem; margin: 0; overflow: hidden; background: #d3cbc1; }
.mood-spaces__grid img { width: 100%; height: 100%; object-fit: cover; }
.mood-spaces__grid figcaption { position: absolute; bottom: 1rem; left: 1rem; background: rgba(247,243,238,.94); padding: .55rem .8rem; color: var(--green); font-size: .68rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.amenity-line { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 1.5rem; border-top: 1px solid var(--green); }
.amenity-line span { border-bottom: 1px solid var(--line); padding: 1rem .5rem 1rem 0; color: var(--green); font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

.mood-smart { background: var(--green); color: var(--white); }
.mood-smart__copy > p:not(.eyebrow) { color: rgba(255,255,255,.8); }
.mood-smart__copy ul { display: grid; gap: .5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.mood-smart__copy li { border-top: 1px solid rgba(255,255,255,.25); padding-top: .5rem; color: var(--sand); font-size: .86rem; }

.typology-section { padding: 5rem 0; background: #ede5de; }
.typology-section .section-heading { max-width: 47rem; }
.typology-section .section-heading h2 { font-size: clamp(2.2rem, 5vw, 4rem); }
.typology-explorer { border-color: #b9a89d; }
.typology-tabs { border-color: #b9a89d; }
.typology-tabs button { border-color: #b9a89d; }
.typology-tabs button[aria-selected="true"] { background: var(--green); }
.units-image { margin: 1rem 0 0; height: 17rem; overflow: hidden; }
.units-image img { width: 100%; height: 100%; object-fit: cover; }

.location-section { padding: 5rem 0; background: var(--paper); }
.location-grid { display: grid; gap: 2.5rem; }
.location-copy address { border-color: var(--green); }
.map-canvas { min-height: 22rem; background: #ece7e1 url('/desarrollos/montaneses/mapa-ubicacion.webp') 76% center / cover no-repeat; }
.map-card { border-color: #c1b5aa; }
.map-card figcaption { border-color: #c1b5aa; }
.map-card figcaption a:hover { color: var(--green); text-decoration: underline; }

.conversion-band { background: var(--green); color: var(--white); padding: 5rem 0 calc(5rem + env(safe-area-inset-bottom, 0px)); }
.conversion-band__inner { max-width: 60rem; }
.conversion-band__inner > p:not(.eyebrow) { color: rgba(255,255,255,.8); }
.conversion-band .button { margin: .25rem .6rem .25rem 0; }
.conversion-band .button--outline { border-color: var(--sand); background: transparent; color: var(--sand); }
.conversion-band .button--outline:hover { background: var(--sand); color: var(--green); }
.site-footer { background: #39120f; }
.sticky-cta { grid-template-columns: 1fr 1.15fr; grid-template-rows: 1fr; row-gap: 0; background: #5f130e; }
.sticky-cta__status { display: none; }
.brochure-dialog__surface { background: var(--paper); }
.lead-dialog__surface { background: var(--paper); }

@media (max-width: 639px) {
  .site-header { padding: .7rem 0; }
  .site-header .brand-lockup { gap: .45rem; }
  .site-header .brand-lockup__rosbaco, .site-header .brand-lockup__montaneses { height: 1.6rem; }
  .site-header .brand-lockup__divider { height: 1.25rem; }
  .header-cta { font-size: .6rem; }
  .hero__copy h1 { font-size: clamp(2.4rem, 10vw, 3.4rem); }
  .brand-lockup--footer .brand-lockup__rosbaco, .brand-lockup--footer .brand-lockup__montaneses { height: 2rem; }
  .mood-intro { padding-top: 3.5rem; }
  .mood-intro__grid { padding-bottom: 3rem; }
  .mood-spaces__grid .mood-spaces__side { height: 19rem; }
  .typology-tabs button { font-size: .57rem; letter-spacing: .03em; padding: .4rem; }
  .map-card figcaption { flex-direction: column; gap: .3rem; }
  .lead-dialog__surface { justify-content: flex-start; overflow-y: auto; }
}

@media (min-width: 640px) {
  .essentials-grid { grid-template-columns: repeat(2,1fr); }
  .mood-spaces__grid { grid-template-columns: 1.3fr .7fr; }
  .mood-spaces__grid figure { height: 31rem; }
  .amenity-line { grid-template-columns: repeat(4,1fr); }
}

@media (min-width: 768px) {
  .mood-intro__grid { grid-template-columns: 1.4fr .6fr; gap: 4rem; padding-bottom: 5rem; }
  .mood-stats { grid-template-columns: repeat(4,1fr); }
  .mood-stats div { border-right: 1px solid rgba(255,255,255,.3); border-bottom: 0; padding: 1rem 1.2rem; }
  .mood-stats div:first-child { padding-left: 0; }
  .mood-stats div:last-child { border-right: 0; }
  .mood-lifestyle, .mood-smart { grid-template-columns: 1fr 1fr; }
  .mood-lifestyle__image, .mood-lifestyle__image img, .mood-smart__image, .mood-smart__image img { min-height: 40rem; }
  .mood-lifestyle__copy, .mood-smart__copy { padding: 5rem max(var(--gutter), calc((100vw - 1200px) / 2)); }
  .mood-spaces__heading { grid-template-columns: 1fr 1fr; }
  .location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; }
  .units-image { height: 25rem; }
}

@media (min-width: 1024px) {
  .site-nav { display: flex; }
  .mood-essentials, .mood-spaces, .typology-section, .location-section { padding-top: 7rem; padding-bottom: 7rem; }
  .essentials-grid { grid-template-columns: repeat(4,1fr); }
  .essential-card { min-height: 19rem; }
  .mood-spaces__grid figure { height: 37rem; }
}

@media (max-width: 767px) {
  .hero { min-height: calc(100svh - var(--sticky-height)); }
  .hero__content { padding-top: 7.25rem; padding-bottom: calc(var(--sticky-height) + 2.5rem); }
  .hero__meta { gap: .35rem 1rem; }
  .hero__media img { object-position: 50% 55%; }
}
