/* =====================================================================
   Raquel Duarte Bienes Raíces — estilos
   Paleta del logo: dorado #C6A14B, gris oscuro #3C3C3B, negro #111111, blanco
   ===================================================================== */
:root {
  --ink:      #111111;   /* negro RD */
  --ink-2:    #3C3C3B;   /* gris oscuro RD */
  --taupe:    #3C3C3B;   /* gris oscuro RD (encabezado, banda) */
  --taupe-2:  #5a5a58;
  --bronze:   #C6A14B;   /* dorado RD */
  --bronze-2: #A8852F;   /* dorado oscuro (hover, firmas) */
  --cream:    #f8f6f1;
  --sand:     #efece5;
  --paper:    #ffffff;
  --text:     #3C3C3B;
  --muted:    #76746f;
  --line:     #e4e0d7;
  --wa:       #25d366;
  --radius:   6px;
  --shadow:   0 10px 30px -12px rgba(17, 17, 17, .25);
  --brand:    'Cinzel', 'Cormorant Garamond', Georgia, serif;
  --serif:    'Cormorant Garamond', Georgia, serif;
  --sans:     'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --script:   'Parisienne', cursive;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 15px/1.7 var(--sans); color: var(--text); background: var(--paper); }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--bronze-2); }
button, input, select, textarea { font: inherit; color: inherit; }
.wrap { width: min(1200px, 100% - 32px); margin-inline: auto; }
.ic { flex: none; }

/* ---------- Tipografía ---------- */
.h1 { font: 500 clamp(2rem, 4.5vw, 3.2rem)/1.1 var(--serif); margin: 0; color: #fff; letter-spacing: .01em; }
.h1--dark { color: var(--ink); }
.h2 { font: 500 clamp(1.7rem, 3.4vw, 2.5rem)/1.15 var(--serif); margin: 0 0 .6em; color: var(--ink); }
.h3 { font: 600 1.35rem/1.25 var(--serif); margin: 1.6em 0 .7em; color: var(--ink); }
.eyebrow, .caps { font: 500 .72rem/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--bronze-2); margin: 0 0 .8em; }
.eyebrow--light { color: #e3cd94; }
.lead { font: 400 1.35rem/1.5 var(--serif); color: var(--ink); }
.script { font: 400 clamp(1.8rem, 3.5vw, 2.6rem)/1.15 var(--script); color: #fff; margin: .4em 0 0; }
.script--dark { color: var(--ink-2); transform: rotate(-4deg); transform-origin: left; }
.signature { font: 400 2rem/1 var(--script); color: var(--bronze-2); margin: .8em 0 1em; }
.prose p { margin: 0 0 1em; }
.rule { border: 0; border-top: 1px solid var(--bronze); width: 70px; margin: 1.6em 0; }

/* ---------- Bloque de marca (réplica del vinilo) ---------- */
.brand-block { display: inline-flex; flex-direction: column; align-items: center; text-align: center; color: var(--ink); }
.brand-block__name { font: 500 clamp(2.1rem, 5.4vw, 3.6rem)/1 var(--brand); text-transform: uppercase; letter-spacing: .02em; }
.brand-block__sub { display: flex; align-items: center; gap: .8em; font: 500 .9rem/1 var(--sans); letter-spacing: .45em; text-transform: uppercase; margin-top: .6em; }
.brand-block__sub::before, .brand-block__sub::after { content: ''; width: 2.4em; height: 1px; background: currentColor; opacity: .7; }
.brand-block__place { font: 500 .66rem/1 var(--sans); letter-spacing: .4em; text-transform: uppercase; margin-top: .9em; opacity: .85; }
.brand-block--light { color: #fff; }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .85em 1.6em; border: 1px solid var(--ink); background: var(--ink); color: #fff;
  font: 500 .78rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; border-radius: var(--radius); cursor: pointer; transition: .2s; white-space: nowrap; }
.btn:hover { background: var(--bronze-2); border-color: var(--bronze-2); color: #fff; }
.btn--sm { padding: .65em 1.1em; font-size: .7rem; }
.btn--ghost { background: transparent; color: var(--ink); }
.btn--ghost:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn--light { background: #fff; color: var(--ink); border-color: #fff; }
.btn--wa { background: var(--wa); border-color: var(--wa); color: #fff; }
.btn--wa:hover { background: #1ebe5b; border-color: #1ebe5b; }
.btn--block { width: 100%; }
.link-arrow { display: inline-flex; align-items: center; gap: .5em; font: 500 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--bronze-2); }
.link-arrow:hover .ic { transform: translateX(4px); }
.link-arrow .ic { transition: .2s; }

/* ---------- Topbar + header ---------- */
.topbar { background: var(--ink); color: #d2d1cc; font-size: .75rem; }
.topbar__in { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; }
.topbar span, .topbar a { display: inline-flex; align-items: center; gap: .4em; }
.topbar__r { display: flex; gap: 1.4rem; }
.topbar a:hover { color: #fff; }

.header { position: sticky; top: 0; z-index: 50; background: var(--taupe); color: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.08); transition: box-shadow .2s; }
.header.is-scrolled { box-shadow: 0 8px 24px -12px rgba(0,0,0,.35); }
.header__in { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 78px; }
.logo { display: flex; align-items: center; gap: .9rem; color: #fff; }
.logo:hover { color: #fff; }
.logo__iso { height: 54px; width: auto; padding-right: .9rem; border-right: 1px solid rgba(255,255,255,.35); box-sizing: content-box; }
.brand-block__iso { height: 120px; width: auto; margin-bottom: 1.1rem; }
.footer .brand-block__iso { height: 70px; margin-bottom: .8rem; }
.about__foto { object-fit: cover; object-position: center 20%; }
.logo__txt { display: flex; flex-direction: column; line-height: 1.1; }
.logo__txt strong { font: 500 1.25rem/1 var(--brand); text-transform: uppercase; letter-spacing: .04em; }
.logo__txt small { font: 500 .58rem/1 var(--sans); letter-spacing: .3em; text-transform: uppercase; margin-top: .45em; opacity: .9; }
.nav { display: flex; align-items: center; gap: 1.6rem; }
.nav a:not(.btn) { font: 500 .72rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; padding: .5em 0; border-bottom: 1px solid transparent; }
.nav a:not(.btn):hover, .nav a.is-active { color: #fff; border-color: #fff; }
.nav__cta { background: var(--wa); border-color: var(--wa); }
.nav-toggle { display: none; background: none; border: 0; color: #fff; padding: .4rem; cursor: pointer; }

.flash { padding: .9rem 0; background: #e8f3ea; color: #25633a; font-weight: 500; }
.flash--error { background: #f8e6e3; color: #8b2f21; }

/* ---------- Hero ---------- */
.hero { position: relative; min-height: min(88vh, 760px); display: grid; align-items: center; color: #fff; isolation: isolate; overflow: hidden; }
.hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(17,17,17,.5) 0%, rgba(17,17,17,.55) 55%, rgba(17,17,17,.8) 100%); }
.hero__in { padding: 4rem 0; display: grid; gap: 2.4rem; justify-items: center; text-align: center; }
.hero__brand { display: flex; flex-direction: column; align-items: center; }
.hero__iso { height: 90px; width: auto; margin-bottom: 1.2rem; }
.hero__eyebrow { font: 500 .8rem/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--bronze); margin: 0 0 1rem; }
.hero__title { font: 500 clamp(2.4rem, 6vw, 4.4rem)/1.08 var(--serif); color: #fff; margin: 0; letter-spacing: .005em; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.hero__rule { display: block; width: 90px; height: 2px; background: var(--bronze); margin: 1.5rem 0 1.3rem; }
.hero__sub { font-size: clamp(1rem, 1.6vw, 1.15rem); color: rgba(255,255,255,.92); margin: 0 0 1.8rem; max-width: 34em; }
.btn--gold { background: var(--bronze); border-color: var(--bronze); color: #111; font-weight: 600; }
.btn--gold:hover { background: var(--bronze-2); border-color: var(--bronze-2); color: #fff; }

/* ---------- Buscador ---------- */
.search { width: 100%; }
.search--hero { max-width: 980px; background: rgba(255,255,255,.97); color: var(--text); border-radius: var(--radius); padding: 1.1rem; box-shadow: var(--shadow); text-align: left; }
.search__tabs { display: flex; gap: .4rem; margin-bottom: .9rem; flex-wrap: wrap; }
.search__tabs input { position: absolute; opacity: 0; pointer-events: none; }
.search__tabs span { display: block; padding: .55em 1.1em; border: 1px solid var(--line); border-radius: 99px; font: 500 .72rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: .2s; }
.search__tabs input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.search__tabs input:focus-visible + span { outline: 2px solid var(--bronze); outline-offset: 2px; }
.search--hero .search__row { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: .8rem; align-items: end; }

.fld { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.fld > span { font: 500 .66rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.fld input, .fld select, .fld textarea { width: 100%; padding: .75em .9em; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; outline: none; transition: border-color .2s; }
.fld select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2376746f' stroke-width='1.5'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .9em center; padding-right: 2.2em; }
.fld input:focus, .fld select:focus, .fld textarea:focus { border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(198,161,75,.15); }
.fld--dual > div { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.search--hero .btn { height: 46px; }

.search--side .search__row { display: grid; gap: 1rem; }
.search--side > .fld { margin-bottom: 1rem; }
.link-reset { text-align: center; font-size: .78rem; color: var(--muted); text-decoration: underline; }

/* ---------- Vitrina (réplica del local) ---------- */
.vitrina { background: var(--ink); padding: 14px 0; }
.vitrina__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 14px; }
.vitrina__panel { padding: clamp(2rem, 4vw, 3.2rem); border-radius: 2px; }
.vitrina__panel--light { background: linear-gradient(160deg, #fdfcf9 0%, #efece5 100%); display: flex; flex-direction: column; justify-content: center; }
.vitrina__panel--dark { background: linear-gradient(180deg, rgba(17,17,17,.6), rgba(17,17,17,.85)), url('https://images.unsplash.com/photo-1766513997564-8c5396f17716?auto=format&fit=crop&w=1200&q=60') center/cover; color: #fff; display: flex; flex-direction: column; align-items: center; text-align: center; }
.svc-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.svc-list a { display: flex; align-items: center; gap: 1rem; font: 500 .82rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--ink); }
.svc-list a:hover { color: var(--bronze-2); }
.svc-ic { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #C6A14B; color: var(--ink); flex: none; }
.svc-ic--lg { width: 64px; height: 64px; }
.vitrina__addr { display: flex; flex-direction: column; align-items: center; }
.vitrina__street { font: 500 clamp(2rem, 4vw, 2.8rem)/1 var(--serif); padding-bottom: .35em; margin-bottom: .6em; border-bottom: 1px solid rgba(255,255,255,.6); }
.vitrina__addr .caps { color: #fff; letter-spacing: .35em; font-size: .85rem; }
.posters { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; width: min(100%, 460px); margin: 2rem 0; }
.poster { position: relative; background: #fff; padding: 7px 7px 0; box-shadow: 0 6px 20px rgba(0,0,0,.35); color: var(--ink); transition: transform .25s; }
.poster:hover { transform: translateY(-4px); color: var(--ink); }
.poster img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.poster__cap { display: block; padding: .7em .3em .8em; font: 600 .66rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.poster__cap small { display: block; font-weight: 400; font-size: .58rem; color: var(--muted); letter-spacing: .1em; }
.poster__n { position: absolute; top: 12px; right: 12px; min-width: 26px; height: 26px; padding: 0 6px; display: grid; place-items: center; border-radius: 99px; background: var(--ink); color: #fff; font-size: .7rem; font-weight: 600; }
.vitrina__claim { color: #fff; letter-spacing: .35em; margin: auto 0 0; padding-top: 1rem; border-top: 1px solid var(--bronze); }

/* ---------- Secciones ---------- */
.section { padding: clamp(3rem, 7vw, 5.5rem) 0; }
.section--tight { padding-top: 2rem; }
.section--sand { background: var(--sand); }
.section__head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; }
.section__head .h2 { margin: 0; }
.page-head { background: linear-gradient(rgba(17,17,17,.7), rgba(17,17,17,.75)), url('https://images.unsplash.com/photo-1616959313137-186688889054?auto=format&fit=crop&w=1800&q=60') center 60%/cover; padding: clamp(3rem, 8vw, 5rem) 0; }

/* ---------- Tarjetas ---------- */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s; }
.card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.card__img { position: relative; display: block; overflow: hidden; aspect-ratio: 4/3; background: var(--sand); }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.card:hover .card__img img { transform: scale(1.05); }
.tag { position: absolute; top: 12px; left: 12px; background: rgba(17,17,17,.88); color: #fff; font: 600 .62rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; padding: .6em .9em; border-radius: 3px; }
.tag--alt { left: auto; right: 12px; background: var(--bronze); }
.card__body { padding: 1.1rem 1.2rem 1.2rem; display: flex; flex-direction: column; flex: 1; }
.card__meta { font: 500 .66rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--bronze-2); margin: 0 0 .4rem; }
.card__title { font: 600 1.3rem/1.2 var(--serif); margin: 0 0 .8rem; color: var(--ink); }
.specs { list-style: none; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; color: var(--muted); font-size: .85rem; }
.specs li { display: inline-flex; align-items: center; gap: .35em; }
.card__foot { margin-top: auto; padding-top: .9rem; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.price { font: 600 1.35rem/1 var(--serif); color: var(--ink); }
.code { font-size: .7rem; letter-spacing: .1em; color: var(--muted); }
.empty { text-align: center; padding: 3rem 1rem; background: var(--cream); border-radius: var(--radius); }

/* ---------- Nosotros / valores ---------- */
.about { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.about__img { position: relative; }
.about__img img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius); }
.about__badge { position: absolute; right: -14px; bottom: 28px; background: var(--ink); color: #fff; padding: 1.1rem 1.4rem; display: flex; align-items: center; gap: .8rem; border-radius: var(--radius); box-shadow: var(--shadow); }
.about__badge strong { font: 500 3rem/1 var(--serif); color: #C6A14B; }
.about__badge span { font: 500 .66rem/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.about--page { align-items: start; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; text-align: center; }
.value .svc-ic { width: 60px; height: 60px; }
.value h3 { font: 600 1.35rem/1.2 var(--serif); margin: 1rem 0 .4rem; color: var(--ink); }
.value p { margin: 0; color: var(--muted); }

.cta { background: var(--taupe); color: #fff; padding: clamp(2.6rem, 6vw, 4rem) 0; }
.cta__in { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.cta .h2 { color: #fff; margin-bottom: .3em; }
.cta p:last-child { margin: 0; opacity: .9; }

/* ---------- Listado ---------- */
.listing { display: grid; grid-template-columns: 290px 1fr; gap: 2rem; align-items: start; }
.listing__side { position: sticky; top: 100px; background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem; }
.listing__side-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.listing__side-head .h3 { margin: 0; }
.icon-btn { display: none; background: none; border: 0; cursor: pointer; padding: .3rem; }
.toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.4rem; flex-wrap: wrap; }
.toolbar p { margin: 0; }
.toolbar__filters { display: none; }
.toolbar__sort { display: flex; align-items: center; gap: .6rem; font-size: .8rem; color: var(--muted); }
.toolbar__sort select { padding: .5em 2em .5em .8em; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.pager { display: flex; gap: .4rem; justify-content: center; margin-top: 2.4rem; }
.pager a { min-width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--radius); }
.pager a.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- Ficha ---------- */
.crumbs { font-size: .78rem; color: var(--muted); margin-bottom: 1.4rem; }
.crumbs a:hover { text-decoration: underline; }
.detail-head { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: 1.4rem; flex-wrap: wrap; }
.detail-loc { display: flex; align-items: center; gap: .4em; color: var(--muted); margin: .6rem 0 0; }
.detail-price { font: 600 clamp(1.7rem, 3vw, 2.3rem)/1 var(--serif); color: var(--ink); background: var(--cream); border: 1px solid var(--line); padding: .5em .8em; border-radius: var(--radius); }
.gallery__main { position: relative; aspect-ratio: 16/9; background: var(--sand); border-radius: var(--radius); overflow: hidden; cursor: zoom-in; }
.gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.gallery__nav { position: absolute; top: 50%; translate: 0 -50%; width: 46px; height: 46px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); font-size: 1.8rem; line-height: 1; cursor: pointer; box-shadow: var(--shadow); }
.gallery__nav--prev { left: 14px; } .gallery__nav--next { right: 14px; }
.gallery__count { position: absolute; right: 14px; bottom: 14px; background: rgba(17,17,17,.8); color: #fff; font-size: .75rem; padding: .3em .8em; border-radius: 99px; }
.gallery__thumbs { display: flex; gap: .6rem; margin-top: .6rem; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.gallery__thumbs button { flex: 0 0 110px; aspect-ratio: 4/3; padding: 0; border: 2px solid transparent; border-radius: 4px; overflow: hidden; cursor: pointer; opacity: .65; transition: .2s; }
.gallery__thumbs button.is-active, .gallery__thumbs button:hover { opacity: 1; border-color: var(--bronze); }
.gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.detail { display: grid; grid-template-columns: 1fr 360px; gap: 2.6rem; margin-top: 2rem; align-items: start; }
.specs--big { gap: 1rem; margin-bottom: 1rem; }
.specs--big li { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: .8rem 1rem; gap: .7rem; color: var(--text); }
.specs--big .ic { color: var(--bronze-2); }
.checks { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .5rem 1rem; }
.checks li { display: flex; align-items: center; gap: .5em; }
.checks .ic { color: var(--bronze); }
.datasheet { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; margin: 0; }
.datasheet div { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.datasheet dt { color: var(--muted); } .datasheet dd { margin: 0; font-weight: 500; text-align: right; }
.map { border-radius: var(--radius); overflow: hidden; aspect-ratio: 16/8; background: var(--sand); }
.map iframe { width: 100%; height: 100%; border: 0; }
.map--wide { border-radius: 0; aspect-ratio: auto; height: 380px; }
.detail__side { position: sticky; top: 100px; }
.contact-box { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: 1.6rem; }
.contact-box .h3 { margin-top: 0; }
.contact-box__or { text-align: center; color: var(--muted); font-size: .8rem; margin: 1rem 0; }

/* ---------- Formularios ---------- */
.form { display: grid; gap: .9rem; }
.form__2 { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; }
.form__3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: .9rem; }
.form__msg { margin: 0; font-size: .88rem; min-height: 1em; }
.form__msg.is-ok { color: #25633a; } .form__msg.is-error { color: #8b2f21; }
.form .rule { margin: .4rem 0; }
.hp { position: absolute; left: -9999px; }

/* ---------- Servicios / páginas ---------- */
.services { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
.service { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 2rem; scroll-margin-top: 110px; }
.service .h3 { margin-top: 1rem; }
.types { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.type { display: flex; justify-content: space-between; align-items: center; padding: 1.4rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); font: 600 1.3rem/1 var(--serif); color: var(--ink); }
.type:hover { border-color: var(--bronze); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.steps { padding-left: 1.2rem; display: grid; gap: .8rem; }
.steps li::marker { color: var(--bronze); font-weight: 600; }
.contact-list { list-style: none; padding: 0; margin: 1.6rem 0 2rem; display: grid; gap: 1.1rem; }
.contact-list li { display: flex; gap: 1rem; align-items: center; }

/* ---------- Footer ---------- */
.footer { background: var(--ink); color: #c9c8c3; font-size: .88rem; }
.footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.4fr; gap: 2.4rem; padding: 4rem 0 3rem; }
.footer .brand-block { align-items: flex-start; text-align: left; }
.footer .brand-block__name { font-size: 2.2rem; }
.footer .brand-block__sub { font-size: .7rem; }
.footer__claim { font: italic 400 1.15rem/1.4 var(--serif); margin: 1.4rem 0 0; color: #e3cd94; }
.footer h4 { font: 500 .72rem/1 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: #fff; margin: .4rem 0 1.2rem; }
.footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.footer a:hover { color: #fff; }
.footer__contact li { display: flex; gap: .6rem; align-items: flex-start; }
.footer__contact .ic { margin-top: .25em; color: var(--bronze); }
.footer__social { display: flex; gap: .8rem; margin-top: 1.2rem; }
.footer__social a { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; }
.footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.2rem 0; font-size: .75rem; }
.footer__bottom .wrap { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.footer__bottom .caps { color: #e3cd94; margin: 0; }

.wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: transform .2s; }
.wa-float:hover { color: #fff; transform: scale(1.08); }

.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(17,17,17,.94); display: grid; place-items: center; padding: 2rem; }
.lightbox[hidden] { display: none; }
.lightbox img { max-height: 90vh; width: auto; border-radius: 4px; }
.lightbox__close { position: absolute; top: 16px; right: 16px; background: none; border: 0; color: #fff; cursor: pointer; }

/* =====================================================================
   Responsive
   ===================================================================== */
@media (max-width: 1080px) {
  .nav { gap: 1.1rem; }
  .grid { grid-template-columns: repeat(2, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .detail { grid-template-columns: 1fr 320px; }
}

@media (max-width: 960px) {
  .nav-toggle { display: block; }
  .nav { position: fixed; inset: 0 0 0 auto; width: min(320px, 85vw); background: var(--ink); flex-direction: column; align-items: stretch; gap: 0; padding: 5rem 1.6rem 2rem; transform: translateX(100%); transition: transform .3s; z-index: 70; }
  .nav.is-open { transform: none; box-shadow: -20px 0 60px rgba(0,0,0,.4); }
  .nav a:not(.btn) { padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.1); font-size: .8rem; }
  .nav a.is-active { color: #C6A14B; }
  .nav__cta { margin-top: 1.4rem; }
  .nav-toggle[aria-expanded="true"] { position: relative; z-index: 80; }

  .vitrina__grid { grid-template-columns: 1fr; }
  .listing { grid-template-columns: 1fr; }
  .listing__side { position: fixed; inset: 0; z-index: 90; border-radius: 0; overflow-y: auto; transform: translateY(100%); transition: transform .3s; }
  .listing__side.is-open { transform: none; }
  .icon-btn, .toolbar__filters { display: inline-flex; }
  .detail { grid-template-columns: 1fr; }
  .detail__side { position: static; }
  .about, .split { grid-template-columns: 1fr; }
  .about__img img { aspect-ratio: 16/10; }
  .about__badge { right: 12px; }
  .types { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
  body { font-size: 14.5px; }
  .topbar__in > span:first-child { display: none; }
  .topbar__in { justify-content: center; }
  .topbar__r { gap: 1rem; flex-wrap: wrap; justify-content: center; }
  .header__in { min-height: 66px; }
  .logo__iso { height: 42px; padding-right: .7rem; }
  .brand-block__iso { height: 90px; }
  .logo__txt strong { font-size: 1.1rem; }
  .logo__txt small { font-size: .5rem; letter-spacing: .22em; }
  .hero { min-height: auto; }
  .hero__in { padding: 3rem 0; }
  .hero__iso { height: 70px; }
  .search--hero .search__row { grid-template-columns: 1fr 1fr; }
  .search--hero .search__row .btn { grid-column: 1 / -1; }
  .grid, .grid--2, .values, .services, .datasheet { grid-template-columns: 1fr; }
  .form__2 { grid-template-columns: 1fr; }
  .form__3 { grid-template-columns: repeat(3, 1fr); }
  .footer__grid { grid-template-columns: 1fr; gap: 2rem; }
  .specs--big li { flex: 1 1 45%; }
  .gallery__main { aspect-ratio: 4/3; }
  .gallery__nav { width: 38px; height: 38px; font-size: 1.5rem; }
  .map { aspect-ratio: 4/3; }
  .cta__in .btn { width: 100%; }
  .wa-float { width: 52px; height: 52px; right: 14px; bottom: 14px; }
}

@media (max-width: 420px) {
  .search--hero .search__row { grid-template-columns: 1fr; }
  .types { grid-template-columns: 1fr; }
  .posters { gap: 10px; }
}


/* ---------- Popup de captación ---------- */
.check { display: flex; gap: .6rem; align-items: flex-start; font-size: .82rem; color: var(--muted); cursor: pointer; line-height: 1.45; }
.check input { margin-top: .2em; accent-color: var(--ink); width: 16px; height: 16px; flex: none; }
.lpop { position: fixed; right: 20px; bottom: 20px; z-index: 95; width: min(400px, calc(100vw - 32px)); animation: leadIn .45s cubic-bezier(.2,.8,.2,1); }
.lpop[hidden] { display: none; }
@keyframes leadIn { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.lpop__card { position: relative; background: var(--paper); border: 1px solid var(--line); border-top: 4px solid var(--bronze); border-radius: 10px; box-shadow: 0 24px 60px -18px rgba(17,17,17,.45); padding: 1.4rem 1.4rem 1.1rem; max-height: calc(100vh - 40px); overflow-y: auto; }
.lpop__close { position: absolute; top: 10px; right: 10px; background: none; border: 0; color: var(--muted); cursor: pointer; padding: 4px; border-radius: 50%; }
.lpop__close:hover { background: var(--sand); color: var(--ink); }
.lpop__head { display: flex; gap: .9rem; align-items: center; margin-bottom: .6rem; padding-right: 1.6rem; }
.lpop__lg { flex: none; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--taupe); }
.lpop__lg img { height: 32px; width: auto; }
.lpop__eyebrow { font: 500 .6rem/1.3 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--bronze-2); margin: 0 0 .25rem; }
.lpop__title { font: 600 1.35rem/1.15 var(--serif); color: var(--ink); margin: 0; }
.lpop__txt { font-size: .86rem; color: var(--text); margin: 0 0 1rem; }
.lpop__form { display: grid; gap: .75rem; }
.lpop__form[hidden] { display: none; }
.lpop__chips { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.lpop__chips legend { font: 500 .64rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-bottom: .45rem; padding: 0; }
.lpop__chips input { position: absolute; opacity: 0; pointer-events: none; }
.lpop__chips span { display: block; padding: .5em .95em; border: 1px solid var(--line); border-radius: 99px; font-size: .78rem; cursor: pointer; background: #fff; transition: .15s; }
.lpop__chips input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.lpop__chips input:focus-visible + span { outline: 2px solid var(--bronze); outline-offset: 2px; }
.lpop__tel { display: grid; grid-template-columns: 104px 1fr; gap: .4rem; }
.lpop__tel select { padding-right: 1.8em; background-position: right .6em center; }
.lpop__2 { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.lpop .fld input, .lpop .fld select { padding: .65em .8em; }
.lpop__legal { font-size: .68rem; color: var(--muted); margin: 0; line-height: 1.45; text-align: center; }
.lpop__legal a { text-decoration: underline; }
.lpop__ok { text-align: center; display: grid; gap: .7rem; justify-items: center; padding: .6rem 0 .2rem; }
.lpop__ok[hidden] { display: none; }
.lpop__ok .lpop__txt { margin: 0; }
.lpop-open .wa-float { opacity: 0; pointer-events: none; }
@media (max-width: 560px) {
  .lpop { right: 0; left: 0; bottom: 0; width: 100%; }
  .lpop__card { border-radius: 16px 16px 0 0; border-left: 0; border-right: 0; border-bottom: 0; max-height: 88vh; padding: 1.2rem 1.1rem calc(1rem + env(safe-area-inset-bottom)); }
  .lpop::before { content: ''; position: fixed; inset: 0; background: rgba(17,17,17,.35); z-index: -1; }
  .lpop__2 { grid-template-columns: 1fr; }
}


/* ---------- Qué hacemos (portada) ---------- */
.qh__in { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.qh__intro { position: sticky; top: 120px; }
.qh__intro p:not(.eyebrow) { color: var(--muted); margin: 0 0 1.4rem; }
.qh__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.qh-card { position: relative; background: #fff; padding: 1.8rem 1.5rem 1.6rem; color: var(--text); transition: background .2s; }
.qh-card::before { content: ''; position: absolute; left: 0; top: 0; height: 3px; width: 0; background: var(--bronze); transition: width .3s; }
.qh-card:hover { background: var(--cream); color: var(--text); }
.qh-card:hover::before { width: 100%; }
.qh-card__ic { display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid var(--bronze); border-radius: 50%; color: var(--bronze-2); margin-bottom: 1.1rem; transition: background .2s, color .2s; }
.qh-card:hover .qh-card__ic { background: var(--bronze); color: #111; }
.qh-card h3 { font: 600 1.25rem/1.2 var(--serif); color: var(--ink); margin: 0 0 .45rem; }
.qh-card p { margin: 0; font-size: .86rem; line-height: 1.55; color: var(--muted); }

/* ---------- Tipos de propiedad (portada) ---------- */
.tipos { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.tipo { position: relative; display: block; aspect-ratio: 3/4; border-radius: 10px; overflow: hidden; color: #fff; background: var(--ink-2); isolation: isolate; }
.tipo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .6s; }
.tipo::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(17,17,17,0) 35%, rgba(17,17,17,.85) 100%); }
.tipo:hover { color: #fff; }
.tipo:hover img { transform: scale(1.06); }
.tipo__txt { position: absolute; left: 1.3rem; right: 1.3rem; bottom: 3.2rem; }
.tipo__txt strong { display: block; font: 500 1.55rem/1.1 var(--serif); }
.tipo__txt small { display: block; font-size: .78rem; opacity: .85; margin-top: .3rem; }
.tipo__n { position: absolute; left: 1.3rem; bottom: 1.2rem; font: 600 .66rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--bronze); }
@media (max-width: 1080px) {
  .qh__in { grid-template-columns: 1fr; }
  .qh__intro { position: static; }
  .tipos { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .qh__grid { grid-template-columns: repeat(2, 1fr); }
  .qh-card { padding: 1.4rem 1.1rem; }
  .tipos { grid-template-columns: repeat(2, 1fr); }
  .tipo { aspect-ratio: 4/5; }
  .tipo:last-child:nth-child(odd) { grid-column: 1 / -1; aspect-ratio: 16/9; }
}
@media (max-width: 460px) {
  .qh__grid { grid-template-columns: 1fr; }
  .qh-card { display: grid; grid-template-columns: 48px 1fr; column-gap: 1rem; }
  .qh-card__ic { grid-row: span 2; margin: 0; }
  .tipos { grid-template-columns: 1fr 1fr; gap: .7rem; }
  .tipo__txt strong { font-size: 1.3rem; }
  .tipo__txt small { display: none; }
  .tipo__txt { bottom: 2.6rem; left: 1rem; }
  .tipo__n { left: 1rem; }
}


/* ---------- Reseñas de Google ---------- */
.resenas__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2rem; }
.resenas__head .h2 { margin: 0; }
.resenas__score { display: flex; align-items: center; gap: .8rem; background: #fff; border: 1px solid var(--line); border-radius: 99px; padding: .55rem 1.2rem .55rem .7rem; }
.resenas__score .g-logo { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--cream); }
.resenas__num { font: 500 2rem/1 var(--serif); color: var(--ink); }
.resenas__score > span:last-child { display: flex; flex-direction: column; gap: .15rem; }
.resenas__score small { font-size: .72rem; color: var(--muted); letter-spacing: .04em; }
.stars { display: inline-flex; gap: 2px; color: var(--bronze); }
.resenas__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.resena { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 1.6rem 1.5rem 1.3rem; display: flex; flex-direction: column; gap: 1rem; position: relative; }
.resena::after { content: '\201C'; position: absolute; right: 1.2rem; top: .4rem; font: 400 4.5rem/1 var(--serif); color: var(--bronze); opacity: .25; }
.resena__txt { margin: 0; font-size: .92rem; line-height: 1.65; color: var(--text); flex: 1; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.resena__autor { display: flex; align-items: center; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.resena__autor img, .resena__ini { width: 40px; height: 40px; border-radius: 50%; flex: none; object-fit: cover; }
.resena__ini { display: grid; place-items: center; background: var(--ink-2); color: var(--bronze); font: 500 1.1rem/1 var(--serif); }
.resena__autor strong { display: block; font-size: .88rem; color: var(--ink); }
.resena__autor small { font-size: .72rem; color: var(--muted); }
.resenas__acciones { display: flex; align-items: center; justify-content: center; gap: 1.6rem; flex-wrap: wrap; margin-top: 2rem; }
@media (max-width: 960px) {
  .resenas__list { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: min(82%, 340px); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .6rem; margin-inline: -16px; padding-inline: 16px; }
  .resena { scroll-snap-align: start; }
}


/* ---------- Primer aniversario ---------- */
.aniv { background: var(--ink-2); color: #e9e7e2; }
.aniv .h2 { color: #fff; }
.aniv__in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.aniv__txt p:not(.eyebrow) { color: rgba(255,255,255,.82); margin: 0 0 1.1rem; }
.aniv__txt .btn { margin-top: .8rem; }
.aniv__grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: clamp(110px, 11vw, 160px); gap: 10px; }
.aniv__foto { display: block; overflow: hidden; border-radius: 8px; background: #2b2b2a; }
.aniv__foto:first-child { grid-column: span 2; grid-row: span 2; }
.aniv__foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.aniv__foto:hover img { transform: scale(1.05); }
.aniv-intro { max-width: 760px; margin: 0 auto 2.6rem; text-align: center; font-size: 1.05rem; }
.aniv-intro .signature { margin-bottom: 0; }
.galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.galeria__item { display: block; aspect-ratio: 3/2; overflow: hidden; border-radius: 8px; background: var(--sand); }
.galeria__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s, opacity .3s; }
.galeria__item:hover img { transform: scale(1.05); }
.visor__nav { position: absolute; top: 50%; translate: 0 -50%; width: 52px; height: 52px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; }
.visor__nav:hover { background: var(--bronze); color: #111; }
.visor__nav--prev { left: 16px; } .visor__nav--next { right: 16px; }
.visor__n { position: absolute; bottom: 16px; left: 50%; translate: -50% 0; color: #fff; font-size: .8rem; letter-spacing: .15em; }
#visor img { max-width: 100%; max-height: 86vh; object-fit: contain; }
@media (max-width: 960px) { .aniv__in { grid-template-columns: 1fr; } }
@media (max-width: 560px) {
  .aniv__grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 120px; }
  .aniv__foto:first-child { grid-column: span 2; grid-row: span 2; }
  .aniv__foto:nth-child(6) { display: none; }
  .galeria { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .visor__nav { width: 42px; height: 42px; font-size: 1.6rem; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
