/* Schmith Capital Group — visual premium. No contiene lógica de datos. */
:root {
  --blue: #101318;
  --blue2: #d2ad70;
  --pale: #211e18;
  --gold: #c9a46a;
  --ink: #eeeae2;
  --muted: #aaa69f;
  --bg: #0b0c0f;
  --paper: #14161a;
  --line: #302f2b;
  --shadow: 0 24px 70px rgba(0, 0, 0, .34);
  --radius: 18px;
}

html { scroll-padding-top: 92px; }
body {
  color: var(--ink);
  background:
    radial-gradient(ellipse at 78% 8%, rgba(201,164,106,.075), transparent 32rem),
    radial-gradient(ellipse at 3% 46%, rgba(201,164,106,.035), transparent 34rem),
    var(--bg);
  font-family: var(--font-body, "DM Sans", Arial, sans-serif);
}
::selection { color: #111; background: #d8b77f; }
.topline {
  color: #d6d0c5;
  background: #08090b;
  border-bottom: 1px solid rgba(201,164,106,.22);
  letter-spacing: .055em;
}
.topline a { color: #e1c28d; }
.nav {
  position: sticky;
  top: 0;
  z-index: 900;
  height: 88px;
  background: rgba(11,12,15,.91);
  border-bottom: 1px solid rgba(201,164,106,.17);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.brand { color: #f1ece2; }
.brandmark { width: 160px; height: 58px; }
.brand small { color: #c0b7a8; }
.navlinks { color: #d1cbc0; gap: clamp(15px, 2.4vw, 31px); }
.navlinks a:not(.navcta) { transition: color .2s ease; }
.navlinks a:not(.navcta):hover, .footlinks a:hover { color: var(--gold); }
.navcta, .btn {
  border: 1px solid var(--gold);
  border-radius: 999px;
  padding: 13px 21px;
  background: var(--gold);
  color: #171512;
  box-shadow: 0 7px 26px rgba(201,164,106,.12);
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.navcta:hover, .btn:hover {
  color: #111;
  background: #dfc28f;
  box-shadow: 0 10px 34px rgba(201,164,106,.25);
  transform: translateY(-2px);
}
.btn.gold { color: #171512; background: var(--gold); }
.btn.light { color: #e9dfcc; background: rgba(255,255,255,.045); border-color: rgba(201,164,106,.45); }
.hero { padding: 20px 0 74px; }
.hero-panel {
  min-height: min(690px, calc(100svh - 135px));
  min-height: clamp(520px, 72vh, 720px);
  border: 1px solid rgba(201,164,106,.3);
  border-radius: 13px;
  background-image:
    linear-gradient(90deg, rgba(8,9,11,.96) 0%, rgba(8,9,11,.79) 43%, rgba(8,9,11,.21) 100%),
    var(--hero-image, radial-gradient(ellipse at 75% 42%, #34302a 0%, #1b1b1a 35%, #111316 72%));
  background-position: center, center 54%;
  background-size: cover, cover;
  box-shadow: 0 34px 90px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.025);
}
.hero-panel::after {
  position: absolute;
  inset: 0;
  pointer-events: none;
  content: "";
  background: linear-gradient(0deg, rgba(8,9,11,.53), transparent 36%), radial-gradient(ellipse at 81% 20%, rgba(201,164,106,.14), transparent 30%);
}
.hero-content { position: relative; z-index: 1; padding: 72px 7%; max-width: 760px; }
.eyebrow, .kicker { color: var(--gold); letter-spacing: .24em; }
.eyebrow { font-size: 10px; }
.hero h1 {
  color: #f6f1e8;
  font: 400 clamp(52px, 7.2vw, 88px)/.99 Georgia, "Times New Roman", serif;
  letter-spacing: -.045em;
  max-width: 760px;
  text-wrap: balance;
  text-shadow: 0 8px 42px rgba(0,0,0,.35);
}
.hero p { color: #d2cdc3; font-size: 16px; line-height: 1.85; max-width: 510px; }
.hero-actions { gap: 24px; }
.text-link { color: #f1e5d0; border-bottom: 1px solid rgba(201,164,106,.55); padding: 0 0 5px; }
.hero-controls { color: #f3eadb; }
.hero-controls button, .news-controls button {
  border-color: rgba(201,164,106,.52);
  background: rgba(11,12,15,.65);
  color: var(--gold);
  transition: background .2s, transform .2s;
}
.hero-controls button:hover, .news-controls button:hover { background: rgba(201,164,106,.2); transform: scale(1.06); }
.hero-auto-note { color: #c7bda9; }
.searchbox {
  width: min(1080px, calc(100% - 64px));
  margin-top: -39px;
  padding: 21px;
  background: rgba(20,22,26,.97);
  border: 1px solid rgba(201,164,106,.3);
  border-radius: 13px;
  box-shadow: 0 25px 70px rgba(0,0,0,.4);
  backdrop-filter: blur(16px);
}
.field label { color: #c0b5a4; letter-spacing: .1em; }
.field select, .field input, .field textarea {
  color: #f1ece3;
  background: #0f1114;
  border-color: #35332e;
  border-radius: 8px;
}
.field select:focus, .field input:focus, .field textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,164,106,.14); }
.field input::placeholder, .field textarea::placeholder { color: #77736d; }
.section { padding: 92px 0; }
.sectionhead { margin-bottom: 32px; }
.section h2, .contact h2, .split h2 {
  color: #f0ebe2;
  font: 400 clamp(34px, 4.6vw, 51px)/1.08 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.sectionhead p { color: #aaa69f; font-size: 13px; line-height: 1.7; }
.subtle-link { color: #e0c28f; border-color: rgba(201,164,106,.65); }
.subtle-link:hover { color: #f4dfb8; }
#inmuebles { padding-top: 76px; }
.cards { gap: 21px; align-items: stretch; }
.card {
  position: relative;
  background: linear-gradient(145deg, #191b1f, #111316 75%);
  border: 1px solid rgba(201,164,106,.17);
  border-radius: 12px;
  box-shadow: 0 14px 36px rgba(0,0,0,.22);
  transition: transform .38s cubic-bezier(.2,.75,.25,1), border-color .3s, box-shadow .3s;
}
.card:hover { transform: translateY(-7px); border-color: rgba(201,164,106,.6); box-shadow: 0 25px 56px rgba(0,0,0,.43), 0 0 24px rgba(201,164,106,.055); }
.photo { height: 250px; background-color: #242321; transition: background-size .8s ease; }
.card:hover .photo { background-size: 108% auto; }
.photo::after { content: ""; position: absolute; inset: 40% 0 0; pointer-events: none; background: linear-gradient(0deg, rgba(8,9,11,.38), transparent); }
.badge { z-index: 1; color: #191713; background: #e1c28f; border-radius: 3px; letter-spacing: .11em; }
.badge.new-build { color: #e7d4ae; background: rgba(16,19,24,.87); border: 1px solid rgba(201,164,106,.45); }
.heart { z-index: 2; color: #dfd8cc; background: rgba(11,12,15,.8); border: 1px solid rgba(255,255,255,.12); }
.heart.active { color: #e5828b; }
.cardbody { padding: 20px; }
.price { color: #e4c48d; font: 500 25px Georgia, "Times New Roman", serif; letter-spacing: -.02em; }
.price small { color: #aaa69f; }
.location { color: #b8b1a5; }
.card h3 { color: #f0ece4; font-size: 16px; font-weight: 600; }
.specs { border-color: rgba(255,255,255,.1); color: #aaa69f; }
.card-links span { color: #d1c5b2; background: #22211e; }
.card-links button { color: #e1c28f; }
.notice { color: #918c83; }
.empty { color: #b7b1a6; background: #15171a; border-color: #504532; }
.news-section {
  width: 100%;
  max-width: none;
  padding: 96px max(22px, calc((100% - 1180px)/2));
  background: linear-gradient(110deg, rgba(201,164,106,.04), transparent 56%), #101114;
  border-top: 1px solid rgba(201,164,106,.12);
  border-bottom: 1px solid rgba(201,164,106,.12);
}
.news-section .wrap { width: 100%; }
.news-card { background: #181a1e; border-color: rgba(201,164,106,.2); box-shadow: 0 22px 70px rgba(0,0,0,.27); }
.news-media { background: #0d0f11; }
.news-media img, .news-media video, .news-media iframe { filter: saturate(.88); transition: filter .35s; }
.news-card:hover .news-media img { filter: saturate(1); }
.news-copy { color: #eeeae2; background: linear-gradient(145deg, #1b1d21, #131518); }
.news-meta { color: #c9a46a; }
.news-copy h3 { color: #f0ebe2; font: 400 clamp(27px, 3vw, 39px)/1.15 Georgia, "Times New Roman", serif; }
.news-copy p { color: #b4b0a8; line-height: 1.8; }
.news-empty { color: #b6afa2; background: radial-gradient(ellipse at 70% 25%, rgba(201,164,106,.12), transparent 42%), #121417; }
.news-controls { color: #e9dfcc; }
.split {
  color: #f0ebe2;
  background: radial-gradient(ellipse at 90% 15%, rgba(201,164,106,.15), transparent 34%), linear-gradient(135deg, #1b1c1d, #101216 72%);
  border: 1px solid rgba(201,164,106,.25);
  border-radius: 13px;
  padding: 58px 6%;
  box-shadow: 0 26px 72px rgba(0,0,0,.24);
}
.split:after { color: rgba(201,164,106,.035); }
.split .kicker { color: #d8b77f; }
.split h2 { color: #f1ece2; }
.split p { color: #b9b4ab; }
.point { border-color: rgba(201,164,106,.19); background: rgba(255,255,255,.025); transition: border-color .25s, transform .25s, background .25s; }
.point:hover { transform: translateX(4px); border-color: rgba(201,164,106,.48); background: rgba(201,164,106,.055); }
.point i { color: #e1c28f; background: rgba(201,164,106,.12); }
.point small { color: #aaa69f; }
.services { gap: 18px; }
.service {
  min-height: 190px;
  padding: 28px;
  color: #eeeae2;
  background: linear-gradient(145deg, #191b1f, #121417);
  border: 1px solid rgba(201,164,106,.19);
  border-radius: 12px;
  transition: transform .35s cubic-bezier(.2,.75,.25,1), border-color .25s, box-shadow .25s;
}
.service:hover { transform: translateY(-6px); border-color: rgba(201,164,106,.58); box-shadow: 0 18px 46px rgba(0,0,0,.28); }
.service .icon { color: #d3ad70; }
.service h3 { color: #f0ebe2; font: 400 22px Georgia, "Times New Roman", serif; }
.service p { color: #aaa69f; line-height: 1.8; }
.contact { gap: clamp(30px, 6vw, 84px); }
.contact h2 { max-width: 520px; }
.contact-info p { color: #b0aca4; line-height: 1.85; }
.contactline { color: #e3c791; }
.contactline > span { color: #dfbd83; background: rgba(201,164,106,.1); border: 1px solid rgba(201,164,106,.18); }
.contactline b { color: #eeeae2; }
.contactline small { color: #aaa69f; }
.form {
  color: #eeeae2;
  background: linear-gradient(145deg, #191b1f, #121417);
  border: 1px solid rgba(201,164,106,.24);
  border-radius: 13px;
  padding: clamp(20px, 3vw, 32px);
  box-shadow: 0 25px 70px rgba(0,0,0,.3);
}
.form-intro strong { color: #f0ebe2; }
.form-intro span { color: #aaa69f; }
.intent-question { color: #d6c6aa; }
.intent-card { color: #e9e3d9; background: #111316; border-color: #38352f; transition: border-color .2s, background .2s, transform .2s; }
.intent-card:hover { transform: translateY(-2px); border-color: rgba(201,164,106,.58); }
.intent-card.selected { color: #f4e7ce; background: rgba(201,164,106,.09); border-color: var(--gold); box-shadow: inset 0 0 0 1px rgba(201,164,106,.16); }
.intent-icon { color: var(--gold); }
.intent-copy small { color: #a9a39a; }
.request-section-heading { color: #eeeae2; border-bottom-color: rgba(255,255,255,.12); }
.request-section-heading small { color: #aaa69f; }
.consent-field { color: #c9c3b9; }
.consent-field input { accent-color: var(--gold); }
.privacy-note { color: #b7b1a6; }
.privacy-note a { color: #e1c28f; }
.status { color: #dfc28f; }
.footer {
  color: #c9c3b9;
  background: #08090b;
  border-top: 1px solid rgba(201,164,106,.22);
  padding-top: 45px;
}
.footer .brand { color: #f1ece2; }
.footer .brandmark { filter: none; }
.footer p { color: #918c83; }
.footlinks { color: #c9c3b9; }
.copyright { color: #88847d; border-color: rgba(255,255,255,.1); }
.admin-link { color: #a79d8b; }
.admin-link:hover { color: #e1c28f; }

/* Los paneles de gestión siguen siendo claros para facilitar su uso. */
#adminModal .admin-shell { background: #111317; color: #eeeae2; border: 1px solid rgba(201,164,106,.35); }
#adminModal .admin-head, #adminModal .admin-panel { background: #191b1f; border-color: #35332e; }
#adminModal .admin-head h2, #adminModal .admin-panel h3, #adminModal .admin-listing h4 { color: #f0ebe2; }
#adminModal .admin-head p, #adminModal .admin-muted, #adminModal .admin-meta, #adminModal .admin-foot { color: #aaa69f; }
#adminModal .admin-warning { color: #e0d1b4; background: #282319; border-color: rgba(201,164,106,.4); }
#adminModal .admin-field label { color: #c7b99f; }
#adminModal .admin-field input, #adminModal .admin-field select, #adminModal .admin-field textarea, #adminModal .json-area { color: #eeeae2; background: #101216; border-color: #3a3832; }
#adminModal .admin-field input:focus, #adminModal .admin-field select:focus, #adminModal .admin-field textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,164,106,.14); }
#adminModal .admin-field input::placeholder, #adminModal .admin-field textarea::placeholder { color: #77736d; }
#adminModal .close, #adminModal .mini-actions button { color: #e1c28f; background: #111316; border-color: #504735; }
#adminModal .admin-listing { border-color: #35332e; background: #131518; }
#adminModal .admin-thumb { background-color: #242321; color: #c9a46a; }
#adminModal .photo-preview, #adminModal .media-preview { color: #aaa69f; border-color: #4a4437; }
#adminModal .media-item { border-color: #35332e; background: #131518; }
#adminModal .media-item select { color: #eeeae2; background: #101216; border-color: #3a3832; }
#adminModal .admin-status { color: #a9d5b9; }

.legal-modal { background: rgba(4,5,7,.86); backdrop-filter: blur(10px); }
.legal-modal-card, .cookie-dialog-card, .cookie-banner {
  color: #eeeae2;
  background: #17191d;
  border-color: rgba(201,164,106,.3);
  box-shadow: 0 28px 90px rgba(0,0,0,.55);
}
.legal-modal-head { color: #f0ebe2; border-color: #35332e; }
.legal-modal-content { color: #c4beb3; }
.legal-modal-content h1, .legal-modal-content h2, .legal-modal-content h3 { color: #e1c28f; }
.legal-modal-content a, .cookie-copy a, .cookie-dialog-card > a { color: #e1c28f; }
.cookie-copy strong, .cookie-dialog-card h2 { color: #f0ebe2; }
.cookie-copy p, .cookie-dialog-card > p:not(.kicker) { color: #b4aea4; }
.cookie-category { color: #eeeae2; border-color: #35332e; }
.cookie-category small { color: #aaa69f; }
.cookie-category input { accent-color: var(--gold); }
.cookie-btn { color: #e7dcc8; background: #111316; border-color: #504735; }
.cookie-btn.primary, .cookie-btn[data-cookie-choice="reject"] { color: #171512; background: var(--gold); border-color: var(--gold); }
.gallery-modal { background: rgba(4,5,7,.92); backdrop-filter: blur(12px); }
.gallery-shell { color: #eeeae2; background: #15171a; border: 1px solid rgba(201,164,106,.32); box-shadow: 0 30px 90px rgba(0,0,0,.6); }
.gallery-shell > header { border-color: #35332e; }
.gallery-shell h2, .gallery-doc { color: #e1c28f; }
.gallery-doc { border-color: #39362f; }
.gallery-doc span, .gallery-video small { color: #aaa69f; }
.gallery-doc:hover { border-color: var(--gold); }
.gallery-content { display: grid; gap: 15px; }
.gallery-summary { display: grid; gap: 10px; padding: 16px 18px; border: 1px solid rgba(201,164,106,.24); border-radius: 11px; background: linear-gradient(130deg, rgba(201,164,106,.08), transparent 60%), #111316; }
.gallery-summary p { margin: 0; color: #e9e2d6; font-size: 14px; }
.gallery-summary .specs { padding-top: 10px; }
.admin-category-badge { width: fit-content; padding: 6px 9px; border: 1px solid rgba(201,164,106,.38); border-radius: 999px; color: #e1c28f; background: rgba(201,164,106,.08); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.gallery-content > p { margin: 0 !important; color: #b4aea4 !important; line-height: 1.75 !important; }
.gallery-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 1px 1px 5px; }
.gallery-tabs button { flex: 0 0 auto; padding: 8px 12px; border: 1px solid #484237; border-radius: 999px; color: #c8c0b2; background: #111316; font-size: 11px; }
.gallery-tabs button.active, .gallery-tabs button:hover { color: #171512; background: #d2ad70; border-color: #d2ad70; }
.gallery-stage { position: relative; display: grid; place-items: center; min-height: 260px; overflow: hidden; border: 1px solid rgba(201,164,106,.23); border-radius: 12px; background: radial-gradient(ellipse at 50% 45%, #242321, #0b0c0f 75%); }
.gallery-stage > img, .gallery-stage > video, .gallery-stage > iframe { display: block; width: 100%; height: min(58vh, 540px); min-height: 260px; object-fit: contain; border: 0; background: transparent; }
.gallery-stage-nav { position: absolute; z-index: 5; top: 50%; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(225,194,143,.55); border-radius: 50%; color: #f0e6d5; background: rgba(8,9,11,.72); backdrop-filter: blur(10px); font-size: 25px; transform: translateY(-50%); }
.gallery-stage-nav.prev { left: 14px; }
.gallery-stage-nav.next { right: 14px; }
.gallery-caption { display: flex; justify-content: space-between; gap: 12px; color: #aaa69f; font-size: 10px; }
.gallery-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 7px; }
.gallery-thumbs button { flex: 0 0 76px; width: 76px; height: 58px; display: grid; place-items: center; overflow: hidden; padding: 0; border: 1px solid #403b31; border-radius: 8px; color: #e1c28f; background: #101216; }
.gallery-thumbs button.active { border-color: #d2ad70; box-shadow: inset 0 0 0 1px #d2ad70; }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.gallery-content > div:last-child .btn { margin-top: 2px; }
.gallery-stage-nav { color: #f0ebe2; background: rgba(8,9,11,.76); border-color: rgba(201,164,106,.45); }
.close { color: #e1c28f; background: #111316; border-color: #504735; }

@keyframes schmith-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) {
  .hero-content { animation: schmith-rise .8s cubic-bezier(.2,.7,.25,1) both; }
  .btn:active, .navcta:active { transform: scale(.98); }
}
:focus-visible { outline: 2px solid #e1c28f; outline-offset: 3px; }

@media (max-width: 900px) {
  .nav { height: 80px; }
  .brandmark { width: 137px; }
  .hero-panel { min-height: 570px; }
}
@media (max-width: 720px) {
  .news-section { padding: 62px 14px; }
}
@media (max-width: 600px) {
  html { scroll-padding-top: 75px; }
  .nav { height: 72px; }
  .brandmark { width: 112px; height: 43px; }
  .hero { padding: 0 0 55px; }
  .hero-panel { min-height: 490px; border-radius: 0 0 12px 12px; background-position: center, 58% center; }
  .hero-content { padding: 40px 24px; }
  .hero h1 { font-size: clamp(46px, 13vw, 64px); letter-spacing: -.045em; }
  .hero p { font-size: 14px; }
  .searchbox { width: calc(100% - 22px); margin-top: -27px; padding: 13px; }
  .section { padding: 64px 0; }
  .cards { gap: 15px; }
  .photo { height: 235px; }
  .split { padding: 34px 23px; }
  .form { padding: 20px 16px; }
  .cookie-banner { color: #eeeae2; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Scroll snapping y transición de secciones en capas. */
:root { --scg-nav-height: 88px; }
html.vault-cascade {
  scroll-snap-type: y mandatory;
  scroll-padding-top: var(--scg-nav-height);
}
#inicio.vault-cascade > .vault-section {
  position: relative;
  min-height: calc(100svh - var(--scg-nav-height));
  scroll-snap-align: start;
  scroll-snap-stop: always;
  scroll-margin-top: 0;
  transform: scale(var(--vault-scale, 1));
  transform-origin: center top;
  clip-path: inset(var(--curtain-top, 0%) 0 0 0);
  box-shadow: 0 34px 86px rgba(0,0,0,.36);
  filter: blur(var(--vault-blur, 0px)) brightness(var(--vault-brightness, 1));
  transition: transform .18s linear, filter .18s linear, clip-path .12s linear;
  will-change: transform, filter;
}
#inicio.vault-cascade > .vault-section:not(:last-child) { position: sticky; top: var(--scg-nav-height); }
#inicio.vault-cascade > .vault-section:nth-child(1) { z-index: 1; }
#inicio.vault-cascade > .vault-section:nth-child(2) { z-index: 2; }
#inicio.vault-cascade > .vault-section:nth-child(3) { z-index: 3; }
#inicio.vault-cascade > .vault-section:nth-child(4) { z-index: 4; }
#inicio.vault-cascade > .vault-section:nth-child(5) { z-index: 5; }
#inicio.vault-cascade > .vault-section:nth-child(6) { z-index: 6; }

/* Pulso táctil spring: encoge al mantener y rebota al soltar. */
:where(button, a, [role="button"], .card, .service, .intent-card, .property-details, .gallery-doc) {
  transform-origin: center;
  transition: scale .46s cubic-bezier(.34, 1.56, .64, 1);
}
:where(button, a, [role="button"], .card, .service, .intent-card, .property-details, .gallery-doc):active {
  scale: .92;
  transition-duration: .14s;
  transition-timing-function: cubic-bezier(.3, 0, .2, 1);
}

/* Enfoque de la cartera: selección al 110%, resto al 90%. */
#cards { align-items: center; overflow: visible; }
#cards .card { position: relative; cursor: pointer; }
#cards.is-focused .card:not(.is-selected) {
  scale: .9;
  opacity: .58;
  filter: saturate(.72);
}
#cards .card.is-selected {
  z-index: 30;
  scale: 1.1;
  opacity: 1;
  filter: none;
  border-color: rgba(225,194,143,.82);
  box-shadow: 0 28px 72px rgba(0,0,0,.52), 0 0 0 1px rgba(201,164,106,.2);
}
#cards .card:focus-visible { outline: 2px solid #e1c28f; outline-offset: 5px; }
.property-details {
  position: absolute;
  z-index: 4;
  right: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 13px;
  border: 1px solid rgba(225,194,143,.7);
  border-radius: 999px;
  color: #f3e6cd;
  background: rgba(12,13,15,.62);
  backdrop-filter: blur(13px);
  -webkit-backdrop-filter: blur(13px);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.property-details:hover { color: #111; background: rgba(225,194,143,.94); }
.property-details span:last-child { font-size: 15px; }

@media (max-width: 900px) {
  :root { --scg-nav-height: 80px; }
  #cards .card.is-selected { scale: 1.06; }
  #cards.is-focused .card:not(.is-selected) { scale: .94; opacity: .68; }
}
@media (max-width: 600px) {
  :root { --scg-nav-height: 72px; }
  html.vault-cascade { scroll-snap-type: y proximity; }
  #inicio.vault-cascade > .vault-section:not(:last-child) { position: relative; top: auto; }
  #inicio.vault-cascade > .vault-section { min-height: calc(100svh - var(--scg-nav-height)); }
  #cards .card.is-selected { scale: 1.025; }
  #cards.is-focused .card:not(.is-selected) { scale: .975; opacity: .78; }
  .property-details { right: 9px; bottom: 9px; padding: 9px 11px; font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  html.vault-cascade { scroll-snap-type: none; }
  #inicio.vault-cascade > .vault-section { position: relative !important; top: auto !important; transform: none !important; filter: none !important; clip-path: none !important; box-shadow: none; will-change: auto; }
  #cards .card, #cards .card.is-selected, #cards.is-focused .card:not(.is-selected) { scale: 1; opacity: 1; filter: none; }
}

/* Full-page scroll editorial: una pantalla cada vez, sin capas ni fondos superpuestos. */
:root { --page-progress-width: 0%; --scg-nav-height: 88px; }
html.cinematic-scroll {
  scroll-snap-type: y mandatory;
  scroll-padding-top: var(--scg-nav-height);
  scroll-behavior: smooth;
}
#inicio.cinematic-scroll { perspective: none; }
#inicio.cinematic-scroll > .cinematic-page {
  position: relative !important;
  top: auto !important;
  min-height: calc(100svh - var(--scg-nav-height));
  height: auto;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  scroll-margin-top: 0;
  transform: none !important;
  filter: none !important;
  opacity: 0;
  translate: 0 22px;
  transition: opacity .58s ease, translate .68s cubic-bezier(.2,.7,.25,1);
  will-change: opacity, translate;
}
#inicio.cinematic-scroll > .cinematic-page.is-visible { opacity: 1; translate: 0 0; }
#inicio.cinematic-scroll > .cinematic-page:not(.hero) {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
#inicio.cinematic-scroll > #actualidad { align-items: center; }
#inicio.cinematic-scroll > #actualidad > .wrap { width: min(1180px, calc(100% - 42px)); }
#inicio.cinematic-scroll > .hero.cinematic-page { justify-content: center; }
.nav { isolation: isolate; }
.nav::after {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: -1px;
  left: 0;
  width: var(--page-progress-width, 0%);
  height: 2px;
  content: "";
  background: linear-gradient(90deg, #9b8152, #e3c68f);
  pointer-events: none;
  transition: width .14s linear;
}
@media (max-width: 900px) {
  :root { --scg-nav-height: 80px; }
  html.cinematic-scroll { scroll-snap-type: y proximity; }
  #inicio.cinematic-scroll > .cinematic-page { min-height: calc(100svh - var(--scg-nav-height)); }
}
@media (max-width: 600px) {
  :root { --scg-nav-height: 72px; }
  html.cinematic-scroll { scroll-snap-type: y proximity; scroll-behavior: auto; }
  #inicio.cinematic-scroll > .cinematic-page { min-height: calc(100svh - var(--scg-nav-height)); translate: 0 12px; }
  #inicio.cinematic-scroll > .cinematic-page.is-visible { translate: 0 0; }
  #inicio.cinematic-scroll > #actualidad > .wrap { width: calc(100% - 28px); }
}
@media (prefers-reduced-motion: reduce) {
  html.cinematic-scroll { scroll-behavior: auto; }
  #inicio.cinematic-scroll > .cinematic-page,
  #inicio.cinematic-scroll > .cinematic-page.is-visible {
    opacity: 1;
    translate: none;
    transition: none;
    will-change: auto;
  }
  .nav::after { transition: none; }
}


/* Espacio destacado para las promociones de obra nueva. */
.new-build-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: radial-gradient(ellipse at 85% 14%, rgba(201,164,106,.11), transparent 31rem), linear-gradient(132deg, #101216 0%, #171817 52%, #111316 100%);
  border-top: 1px solid rgba(201,164,106,.24);
  border-bottom: 1px solid rgba(201,164,106,.24);
}
.new-build-wrap { position: relative; z-index: 1; }
.new-build-intro { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 30px; }
.new-build-copy { max-width: 770px; }
.new-build-kicker { color: #d8b77f !important; }
.new-build-copy h2 { color: #f0ebe2 !important; max-width: 780px; font: 400 clamp(38px,5vw,62px)/1.02 Georgia,"Times New Roman",serif !important; letter-spacing: -.04em !important; }
.new-build-copy p { max-width: 610px; color: #aaa69f; line-height: 1.8; font-size: 14px; }
.new-build-count-wrap { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; padding: 13px 16px; border: 1px solid rgba(201,164,106,.3); border-radius: 13px; color: #d7c7aa; background: rgba(201,164,106,.055); }
.new-build-count { color: #e3c68f; font: 400 31px/1 Georgia,serif; }
.new-build-count-wrap small { font-size: 9px; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.new-build-featured-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.new-build-featured-grid[hidden], .new-build-empty[hidden], .new-build-all-link[hidden] { display: none !important; }
.new-build-feature-card { overflow: hidden; background: linear-gradient(145deg,#1b1d20,#111316 76%); border-color: rgba(201,164,106,.25); transition: transform .35s cubic-bezier(.2,.75,.25,1), border-color .3s, box-shadow .3s; }
.new-build-feature-card:hover { transform: translateY(-5px); border-color: rgba(225,194,143,.72); box-shadow: 0 24px 58px rgba(0,0,0,.42); }
.new-build-feature-photo { height: clamp(210px,23vw,285px); background: radial-gradient(ellipse at 50% 45%,#34302a,#141518 72%); }
.new-build-feature-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.25,1); }
.new-build-feature-card:hover .new-build-feature-photo > img { transform: scale(1.035); }
.new-build-feature-badge { color: #211c13; background: #e0c28f; }
.new-build-operation { position: absolute; z-index: 2; right: 13px; top: 13px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; color: #f2eadc; background: rgba(12,13,15,.6); backdrop-filter: blur(10px); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.new-build-visual-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: rgba(225,194,143,.62); font: 11px/1.5 Georgia,serif; letter-spacing: .22em; background: radial-gradient(ellipse at 50% 42%,rgba(201,164,106,.16),transparent 40%); }
.new-build-feature-body { display: flex; flex-direction: column; min-height: 235px; }
.new-build-card-meta { margin-bottom: 8px; color: #c9a46a; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.new-build-feature-body h3 { min-height: 42px; margin: 0 0 8px; color: #f0ebe2; font: 400 21px/1.2 Georgia,"Times New Roman",serif; }
.new-build-feature-body .price { margin-bottom: 12px; color: #e3c68f; font-size: 20px; }
.new-build-feature-body .specs { min-height: 35px; border-color: rgba(255,255,255,.1); color: #aaa69f; }
.new-build-card-actions { display: grid; gap: 9px; margin-top: auto; padding-top: 18px; }
.new-build-gallery-button, .new-build-contact-button { display: flex; justify-content: center; align-items: center; min-height: 42px; padding: 10px 14px; border: 1px solid rgba(201,164,106,.52); border-radius: 999px; color: #e9d7b5; background: rgba(201,164,106,.08); font-size: 11px; font-weight: 700; transition: background .2s,color .2s,transform .25s; }
.new-build-gallery-button:hover, .new-build-contact-button:hover { color: #171512; background: #d2ad70; }
.new-build-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 21px; }
.new-build-footer p { margin: 0; color: #918c83; font-size: 11px; line-height: 1.6; }
.new-build-all-link { flex: 0 0 auto; }
.new-build-empty { display: flex; align-items: center; gap: 20px; padding: 22px 25px; border: 1px solid rgba(201,164,106,.25); border-radius: 15px; background: rgba(255,255,255,.025); }
.new-build-empty-mark { display: grid; flex: 0 0 46px; place-items: center; width: 46px; height: 46px; border-radius: 50%; color: #e3c68f; background: rgba(201,164,106,.1); font-size: 24px; }
.new-build-empty strong { color: #eeeae2; font: 400 21px Georgia,serif; }
.new-build-empty p { margin: 6px 0 0; color: #aaa69f; font-size: 12px; line-height: 1.65; }
.new-build-empty .btn { flex: 0 0 auto; }
.new-build-hero-link { display: inline-flex; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid rgba(225,194,143,.48); color: #e5c991 !important; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.new-build-hero-link span:last-child { font-size: 15px; transition: transform .2s; }
.new-build-hero-link:hover span:last-child { transform: translateY(3px); }
.nav-new-build-link { color: #e3c68f !important; }
#inicio.cinematic-scroll > #obra-nueva.cinematic-page { justify-content: center; }
@media (max-width: 900px) {
  .new-build-featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nav-new-build-link { display: none; }
  .new-build-intro { align-items: flex-start; }
}
@media (max-width: 600px) {
  .new-build-section { padding: 58px 0 !important; }
  .new-build-wrap { width: calc(100% - 28px); }
  .new-build-intro { display: block; margin-bottom: 22px; }
  .new-build-copy h2 { font-size: clamp(36px,11vw,48px) !important; }
  .new-build-count-wrap { width: fit-content; margin-top: 14px; }
  .new-build-featured-grid { grid-template-columns: 1fr; gap: 14px; }
  .new-build-feature-photo { height: 230px; }
  .new-build-feature-body { min-height: 0; }
  .new-build-footer { align-items: flex-start; flex-direction: column; }
  .new-build-empty { align-items: flex-start; flex-direction: column; padding: 19px; }
  .new-build-empty .btn { width: 100%; }
  .new-build-hero-link { font-size: 9px; }
}

/* Dirección visual inspirada en la referencia: obsidiana, oro y fotografía editorial. */
:root {
  --lux-obsidian: #07080a;
  --lux-panel: #101114;
  --lux-panel-raised: #151619;
  --lux-gold: #d4af37;
  --lux-gold-soft: #ead48b;
  --lux-white: #f5f2eb;
  --lux-muted: #b4b0a8;
  --scg-nav-height: 82px;
}
html { scroll-padding-top: var(--scg-nav-height); }
body {
  color: var(--lux-white);
  background: var(--lux-obsidian);
  font-family: var(--font-body, "DM Sans"), Arial, sans-serif;
}
body::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: radial-gradient(ellipse at 78% 20%, rgba(212,175,55,.055), transparent 42rem);
}
.topline { display: none; }
header.wrap.nav {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1100;
  width: 100%;
  max-width: none;
  height: var(--scg-nav-height);
  margin: 0;
  padding: 0 max(26px, calc((100vw - 1370px)/2));
  color: var(--lux-white);
  background: linear-gradient(180deg, rgba(7,8,10,.92), rgba(7,8,10,.63));
  border-bottom: 1px solid rgba(212,175,55,.2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: background .3s ease, border-color .3s ease;
}
header.wrap.nav.nav-scrolled { background: rgba(7,8,10,.94); border-color: rgba(212,175,55,.32); }
.nav::after { height: 2px; background: var(--lux-gold); box-shadow: 0 0 14px rgba(212,175,55,.32); }
.brand { color: var(--lux-white); gap: 10px; }
.brandmark { width: 122px; height: 47px; background-position: center; }
.brand b { color: var(--lux-white); letter-spacing: .11em; }
.brand small { color: #c8b991; letter-spacing: .18em; }
.navlinks { color: #d4d0c6; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; gap: clamp(14px, 2vw, 27px); }
.navlinks a:not(.navcta) { padding: 11px 0; transition: color .2s ease; }
.navlinks a:not(.navcta):hover, .navlinks a[aria-current="location"] { color: var(--lux-gold-soft); }
.navcta, .btn { border: 1px solid rgba(212,175,55,.55); border-radius: 999px; background: var(--lux-gold); color: #10100d; box-shadow: 0 8px 25px rgba(0,0,0,.16); }
.navcta { padding: 12px 17px; background: rgba(212,175,55,.11); color: var(--lux-gold-soft); }
.navcta:hover { background: var(--lux-gold); color: #10100d; }
.btn { font-size: 11px; letter-spacing: .075em; text-transform: uppercase; transition: transform .28s cubic-bezier(.2,.75,.25,1), background .25s, color .25s, border-color .25s; }
.btn:hover { color: #11100d; background: #e6c85f; transform: translateY(-2px); }
.btn.gold { color: #11100d; background: var(--lux-gold); }
.btn.light { color: var(--lux-gold-soft); border-color: rgba(212,175,55,.35); background: rgba(212,175,55,.08); }
.btn:active, .navcta:active, .property-details:active, .new-build-gallery-button:active, .new-build-contact-button:active { transform: scale(.96); }
#inicio { background: var(--lux-obsidian); }
#inicio.cinematic-scroll > .cinematic-page { scroll-margin-top: 0; }
#inicio.cinematic-scroll > .cinematic-page:not(.hero) { padding-top: clamp(72px, 9vh, 112px); padding-bottom: clamp(72px, 9vh, 112px); }
#inicio.cinematic-scroll > #actualidad { padding-left: max(24px, calc((100vw - 1280px)/2)); padding-right: max(24px, calc((100vw - 1280px)/2)); }
.hero.cinematic-page, .hero {
  position: relative;
  display: block;
  width: 100%;
  max-width: none;
  min-height: 100svh;
  height: 100svh;
  margin: 0;
  padding: 0;
  overflow: clip;
  background: var(--lux-obsidian);
}
.hero-panel {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  min-height: 100%;
  border: 0;
  border-radius: 0;
  background-color: #171615;
  background-image:
    linear-gradient(90deg, rgba(7,8,10,.86) 0%, rgba(7,8,10,.67) 38%, rgba(7,8,10,.19) 76%, rgba(7,8,10,.35) 100%),
    linear-gradient(0deg, rgba(7,8,10,.8), transparent 43%),
    var(--hero-image),
    url("https://images.unsplash.com/photo-1600596542815-ffad4c1539a9?auto=format&fit=crop&w=2400&q=85");
  background-position: center, center, center 55%, center 55%;
  background-size: cover;
  background-repeat: no-repeat;
}
.hero-panel::after {
  background: linear-gradient(0deg, rgba(7,8,10,.14), transparent 47%), radial-gradient(ellipse at 85% 13%, rgba(212,175,55,.12), transparent 35%);
}
.hero-content {
  position: relative;
  z-index: 1;
  width: min(760px, 64vw);
  max-width: 760px;
  padding: 120px 0 150px max(7vw, calc((100vw - 1370px)/2));
  color: var(--lux-white);
}
.eyebrow, .kicker { color: var(--lux-gold-soft); font-size: 9px; letter-spacing: .26em; }
.hero h1, .section h2, .contact h2, .new-build-copy h2, .news-copy h3 {
  color: var(--lux-white);
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.035em;
}
.hero h1 { max-width: 720px; font-size: clamp(54px, 7.2vw, 104px); line-height: .99; margin-bottom: 20px; }
.hero p { color: rgba(245,242,235,.82); max-width: 490px; font-size: 15px; line-height: 1.8; }
.hero-actions { flex-wrap: wrap; gap: 14px 25px; }
.hero-actions .btn { min-height: 48px; padding-inline: 24px; }
.hero-actions .text-link { color: #f0e9d7; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 0; margin-top: 32px; }
.hero-trust-item { display: grid; gap: 5px; min-width: 148px; padding: 0 21px; border-left: 1px solid rgba(212,175,55,.42); }
.hero-trust-item:first-child { padding-left: 0; border-left: 0; }
.hero-trust-item strong { color: var(--lux-white); font: 400 17px/1.2 "Playfair Display", Georgia, serif; }
.hero-trust-item span { color: #c5beb0; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.hero-controls { margin-top: 19px; color: #ded6c4; }
.hero-controls button { color: var(--lux-gold-soft); border-color: rgba(212,175,55,.35); background: rgba(10,10,10,.45); }
.searchbox {
  position: absolute;
  z-index: 3;
  right: max(4vw, calc((100vw - 1440px)/2));
  bottom: 34px;
  width: min(1250px, calc(100% - 9vw));
  margin: 0;
  padding: 15px;
  color: var(--lux-white);
  border: 1px solid rgba(212,175,55,.38);
  border-radius: 15px;
  background: rgba(13,14,15,.7);
  box-shadow: 0 24px 65px rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.searchgrid { grid-template-columns: repeat(5, minmax(0,1fr)) auto; gap: 10px; }
.searchbox .field label { color: #cbbd98; font-size: 8px; letter-spacing: .14em; }
.searchbox .field select, .searchbox .field input {
  height: 43px;
  color: var(--lux-white);
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.055);
}
.searchbox .field select option { color: #171717; }
.searchbox .field input::placeholder { color: #9d978a; }
.searchbox .btn { height: 43px; padding-inline: 17px; font-size: 9px; }
.section { color: var(--lux-white); }
.sectionhead { margin-bottom: 30px; }
.section h2, .contact h2 { font-size: clamp(38px,5vw,64px); line-height: 1.04; letter-spacing: -.035em; }
.sectionhead p, .notice { color: #a8a398; }
.subtle-link { color: var(--lux-gold-soft); border-color: rgba(212,175,55,.55); }
#inmuebles { background: radial-gradient(ellipse at 84% 15%, rgba(212,175,55,.06), transparent 35rem), #0a0b0d; }
#inmuebles .sectionhead { align-items: end; }
.cards { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; perspective: none; }
.card, .service, .news-card {
  color: var(--lux-white);
  border: 1px solid rgba(212,175,55,.22);
  background: linear-gradient(145deg,rgba(25,26,28,.96),rgba(13,14,16,.98));
  box-shadow: 0 20px 56px rgba(0,0,0,.22);
  backdrop-filter: blur(12px);
}
.card { border-radius: 15px; transition: transform .45s cubic-bezier(.2,.75,.25,1), border-color .3s, box-shadow .3s, opacity .3s, filter .32s ease; }
.card:hover { border-color: rgba(212,175,55,.68); box-shadow: 0 28px 66px rgba(0,0,0,.38); transform: translateY(-5px); }
.cards.is-focused .card:not(.is-selected) { opacity: .68; filter: none; transform: scale(.985); }
.cards.is-focused .card.is-selected { z-index: 2; opacity: 1; filter: none; transform: scale(1.025); border-color: var(--lux-gold); box-shadow: 0 28px 80px rgba(0,0,0,.5); }
.photo { height: clamp(220px,24vw,315px); background-color: #171715; }
.photo::after { background: linear-gradient(0deg,rgba(0,0,0,.42),transparent 54%); }
.badge { color: #15130d; background: var(--lux-gold-soft); font-size: 8px; letter-spacing: .12em; }
.badge.new-build { top: 47px; color: #efdfb6; background: rgba(9,10,11,.69); border: 1px solid rgba(212,175,55,.4); }
.heart { color: var(--lux-white); background: rgba(8,9,10,.68); border: 1px solid rgba(212,175,55,.25); backdrop-filter: blur(9px); }
.cardbody { padding: 21px; }
.price { color: var(--lux-gold-soft); font: 400 25px/1.2 "Playfair Display", Georgia, serif; }
.price small { color: #a8a398; }
.location { color: #b3ada1; font-size: 10px; letter-spacing: .08em; }
.card h3 { color: var(--lux-white); font: 400 21px/1.25 "Playfair Display", Georgia, serif; }
.specs { color: #b4b0a8; border-color: rgba(255,255,255,.1); }
.cardbody p { color: #aaa69f !important; }
.property-details { color: #f3e6bd; border-color: rgba(212,175,55,.75); background: rgba(13,14,15,.72); box-shadow: inset 0 0 0 1px rgba(212,175,55,.13); backdrop-filter: blur(14px); }
.empty, .news-empty { color: #c8c1b4; border-color: rgba(212,175,55,.3); background: rgba(255,255,255,.035); }
.news-section { background: linear-gradient(120deg,rgba(212,175,55,.035),transparent 58%), #101113; border-color: rgba(212,175,55,.15); }
.news-card { border-radius: 16px; overflow: hidden; }
.news-media { background: #090a0b; }
.news-copy { color: var(--lux-white); background: linear-gradient(145deg,#191a1d,#111214); }
.news-copy h3 { font-size: clamp(30px,3.8vw,49px); }
.news-copy p { color: #b4b0a8; line-height: 1.8; }
.news-meta { color: var(--lux-gold-soft); }
.split {
  color: var(--lux-white);
  border: 1px solid rgba(212,175,55,.27);
  border-radius: 18px;
  background: radial-gradient(ellipse at 85% 8%,rgba(212,175,55,.13),transparent 35%),linear-gradient(135deg,#18191b,#0e0f11 75%);
}
.split h2 { color: var(--lux-white); font: 400 clamp(38px,5vw,61px)/1.02 "Playfair Display",Georgia,serif; }
.split p { color: #c0bbb0; }
.split .kicker { color: var(--lux-gold-soft); }
.point { border-color: rgba(212,175,55,.21); background: rgba(255,255,255,.035); }
.point i { color: var(--lux-gold-soft); background: rgba(212,175,55,.1); }
.point small { color: #bab4a8; }
.services { gap: 18px; }
.service { min-height: 222px; padding: 27px; border-radius: 15px; transition: transform .32s cubic-bezier(.2,.75,.25,1),border-color .28s,background .28s; }
.service:hover { transform: translateY(-5px); border-color: rgba(212,175,55,.68); background: linear-gradient(145deg,#202023,#121315); }
.service .icon, .service h3 { color: var(--lux-gold-soft); }
.service h3 { font: 400 22px/1.25 "Playfair Display",Georgia,serif; }
.service p { color: #b4b0a8; }
#contacto { background: radial-gradient(ellipse at 12% 23%,rgba(212,175,55,.055),transparent 36rem),#0a0b0d; }
.contact { gap: clamp(35px,7vw,100px); }
.contact h2 { max-width: 540px; }
.contact-info > p, .contactline small { color: #b4b0a8; }
.contactline { color: var(--lux-white); }
.contactline > span { color: var(--lux-gold-soft); border: 1px solid rgba(212,175,55,.22); background: rgba(212,175,55,.07); }
.form { color: var(--lux-white); border: 1px solid rgba(212,175,55,.25); border-radius: 16px; background: linear-gradient(145deg,rgba(24,25,27,.96),rgba(14,15,17,.98)); box-shadow: 0 25px 75px rgba(0,0,0,.25); }
.form-intro h3, .form-intro strong { color: var(--lux-white); }
.form-intro p, .form-intro small { color: #b4b0a8; }
.form .field label { color: #d2c193; }
.form .field input, .form .field select, .form .field textarea {
  color: var(--lux-white);
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.045);
}
.form .field select option { color: #171717; }
.form .field input::placeholder, .form .field textarea::placeholder { color: #918b80; }
.form .field input:focus, .form .field select:focus, .form .field textarea:focus { border-color: rgba(212,175,55,.72); box-shadow: 0 0 0 3px rgba(212,175,55,.11); }
.form .consent, .form label:has(input[type="checkbox"]) { color: #c6c0b5; }
.form input[type="checkbox"] { accent-color: var(--lux-gold); }
.form a { color: var(--lux-gold-soft); }
.status { color: var(--lux-gold-soft); }
.footer { color: #d4d0c6; background: #07080a; border-top: 1px solid rgba(212,175,55,.23); }
.footer .brand { color: #f5f2eb; }
.footer .brandmark { filter: none; }
.footer p, .copyright { color: #9d988c; }
.footlinks a:hover, .admin-link:hover { color: var(--lux-gold-soft); }
.admin-link { color: #c9c1b0; }
.new-build-section {
  min-height: calc(100svh - var(--scg-nav-height));
  overflow: visible;
  border-top: 1px solid rgba(212,175,55,.22);
  border-bottom: 1px solid rgba(212,175,55,.22);
  background: radial-gradient(ellipse at 86% 12%,rgba(212,175,55,.12),transparent 36rem),linear-gradient(132deg,#111214,#171716 52%,#0d0e10);
}
.new-build-feature-card { border-color: rgba(212,175,55,.3); }
.new-build-feature-card:hover { border-color: rgba(234,212,139,.78); }
.new-build-kicker, .new-build-card-meta { color: var(--lux-gold-soft) !important; }
.new-build-feature-card .price { color: var(--lux-gold-soft); }
.new-build-gallery-button, .new-build-contact-button { border-color: rgba(212,175,55,.54); color: #efdfb6; background: rgba(212,175,55,.075); }
.new-build-gallery-button:hover, .new-build-contact-button:hover { color: #11100d; background: var(--lux-gold); }
.modal, .gallery-modal, .legal-modal { background: rgba(3,4,5,.82); backdrop-filter: blur(12px); }
.modal { z-index: 1400; }
.gallery-modal { z-index: 1450; }
.legal-modal { z-index: 1550; }
.admin-shell, .gallery-shell, .legal-modal-card, .cookie-dialog-card {
  color: var(--lux-white);
  border: 1px solid rgba(212,175,55,.3);
  border-radius: 16px;
  background: linear-gradient(145deg,#17181a,#0d0e10);
  box-shadow: 0 30px 100px rgba(0,0,0,.58);
}
.admin-head, .gallery-shell > header, .legal-modal-head { color: var(--lux-white); border-color: rgba(212,175,55,.2); background: #141517; }
.admin-head h2, .gallery-shell h2, .legal-modal-head strong, .admin-grid h3, .admin-panel h3 { color: var(--lux-white); }
.admin-head p, .admin-shell p, .admin-shell label, .admin-meta { color: #b7b1a5; }
.admin-warning { color: #e0d2ad; border-color: rgba(212,175,55,.32); background: rgba(212,175,55,.08); }
.admin-panel, .admin-listing, .media-item, .gallery-doc { color: var(--lux-white); border-color: rgba(255,255,255,.11); background: rgba(255,255,255,.035); }
.admin-field input, .admin-field select, .admin-field textarea, .admin-shell input, .admin-shell select, .admin-shell textarea { color: #f5f2eb; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.055); }
.close { color: var(--lux-gold-soft); border-color: rgba(212,175,55,.34); background: #111214; }
.legal-modal-content { color: var(--lux-white); }
.legal-modal-content h1, .legal-modal-content h2, .legal-modal-content h3 { color: var(--lux-white); }
.legal-modal-content p, .legal-modal-content li, .legal-modal-content .muted { color: #c1bbaf; }
.legal-modal-content a { color: var(--lux-gold-soft); }
.cookie-banner, .cookie-dialog-card { color: var(--lux-white); border-color: rgba(212,175,55,.32); background: rgba(16,17,19,.97); }
.cookie-copy strong, .cookie-dialog-card h2 { color: var(--lux-white); }
.cookie-copy p, .cookie-category { color: #c4beb1; }
.cookie-copy a, .cookie-dialog-card > a { color: var(--lux-gold-soft); }
.cookie-btn { color: var(--lux-white); border-color: rgba(212,175,55,.38); background: rgba(255,255,255,.04); }
.cookie-btn.primary, .cookie-btn[data-cookie-choice="reject"] { color: #11100d; border-color: var(--lux-gold); background: var(--lux-gold); }
.cookie-category { border-color: rgba(255,255,255,.12); }
.cookie-category input { accent-color: var(--lux-gold); }
.mobile-nav-toggle { display: none; }
@media (max-width: 900px) {
  :root { --scg-nav-height: 74px; }
  header.wrap.nav { padding-inline: 22px; }
  .brandmark { width: 112px; height: 43px; }
  .mobile-nav-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(212,175,55,.42); border-radius: 50%; background: rgba(10,11,12,.78); }
  .mobile-nav-toggle span { position: absolute; width: 16px; height: 1px; background: var(--lux-gold-soft); transition: transform .22s, opacity .22s; }
  .mobile-nav-toggle span:first-child { transform: translateY(-4px); }
  .mobile-nav-toggle span:last-child { transform: translateY(4px); }
  .mobile-nav-toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
  .mobile-nav-toggle[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }
  .navlinks { display: none; }
  header.mobile-open .navlinks {
    position: fixed;
    top: calc(var(--scg-nav-height) + 8px);
    right: 14px;
    display: flex;
    width: min(320px, calc(100vw - 28px));
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
    padding: 15px;
    border: 1px solid rgba(212,175,55,.34);
    border-radius: 14px;
    background: rgba(12,13,15,.97);
    box-shadow: 0 24px 70px rgba(0,0,0,.48);
    backdrop-filter: blur(18px);
  }
  .navlinks a:not(.navcta) { padding: 13px 10px; border-bottom: 1px solid rgba(255,255,255,.08); }
  .navlinks .navcta { justify-content: center; margin-top: 7px; }
  .hero-content { width: min(740px, 85vw); padding-left: 7vw; }
  .hero h1 { font-size: clamp(52px,9vw,83px); }
  .searchbox { right: 4vw; width: 92vw; }
  .searchgrid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .new-build-featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  :root { --scg-nav-height: 66px; }
  header.wrap.nav { padding-inline: 16px; }
  .hero.cinematic-page, .hero { height: auto; min-height: 100svh; overflow: visible; padding-bottom: 20px; }
  .hero-panel { position: absolute; min-height: 100%; background-position: center,center,62% center,62% center; }
  .hero-content { width: 100%; max-width: 100%; min-height: 76svh; padding: 108px 23px 32px; display: flex; flex-direction: column; justify-content: center; }
  .hero h1 { max-width: 520px; font-size: clamp(48px,14vw,70px); line-height: 1; }
  .hero p { max-width: 410px; font-size: 13px; }
  .hero-trust { gap: 13px 0; margin-top: 24px; }
  .hero-trust-item { min-width: 0; flex: 1 1 30%; padding-inline: 10px; }
  .hero-trust-item strong { font-size: 13px; }
  .hero-trust-item span { font-size: 7px; }
  .searchbox { position: relative; right: auto; bottom: auto; width: calc(100% - 28px); margin: 0 auto; padding: 12px; }
  .searchgrid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .searchbox .field:last-of-type { grid-column: 1 / -1; }
  .searchbox .btn { grid-column: 1 / -1; }
  #inicio.cinematic-scroll > .cinematic-page:not(.hero) { padding: 70px 0; }
  #inicio.cinematic-scroll > #actualidad { padding-inline: 14px; }
  .section { padding: 66px 0; }
  .sectionhead { align-items: flex-start; flex-direction: column; }
  .section h2, .contact h2 { font-size: clamp(36px,10vw,49px); }
  .cards, .new-build-featured-grid, .services { grid-template-columns: 1fr; }
  .photo { height: 250px; }
  .cards.is-focused .card.is-selected { transform: scale(1.01); }
  .split { padding: 34px 23px; }
  .contact { grid-template-columns: 1fr; gap: 23px; }
  .form { padding: 21px 16px; }
  .formgrid { grid-template-columns: 1fr; }
  .form .field.full { grid-column: auto; }
  .footrow, .copyright { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html.cinematic-scroll { scroll-behavior: auto; }
  .cinematic-page, .card, .service, .btn { transition-duration: .01ms !important; }
}

/* Cortina editorial para navegación entre secciones y respuesta táctil. */
#sectionCurtain {
  position: fixed;
  z-index: 2200;
  inset: 0;
  display: grid;
  overflow: hidden;
  pointer-events: none;
  visibility: hidden;
}
#sectionCurtain.active { visibility: visible; pointer-events: none; }
.curtain-panel {
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 13px;
  width: 100%;
  height: 100%;
  color: var(--lux-white);
  border-bottom: 2px solid var(--lux-gold);
  background: radial-gradient(ellipse at 50% 43%,rgba(212,175,55,.1),transparent 37%),linear-gradient(138deg,#07080a,#131416 52%,#090a0b);
  box-shadow: 0 16px 44px rgba(212,175,55,.16);
  transform: translate3d(0,-102%,0);
  will-change: transform;
}
#sectionCurtain.active .curtain-panel { animation: schmith-curtain-sweep .82s cubic-bezier(.77,0,.175,1) both; }
.curtain-mark { color: var(--lux-gold-soft); font: 400 20px/1 "Playfair Display",Georgia,serif; letter-spacing: .28em; text-transform: uppercase; }
.curtain-rule { width: 58px; height: 1px; background: var(--lux-gold); }
@keyframes schmith-curtain-sweep {
  0% { transform: translate3d(0,-102%,0); }
  42% { transform: translate3d(0,0,0); }
  56% { transform: translate3d(0,0,0); }
  100% { transform: translate3d(0,102%,0); }
}
.btn, .navcta, .property-details, .new-build-gallery-button, .new-build-contact-button, .close, .cookie-btn {
  transition: transform .34s cubic-bezier(.34,1.36,.64,1), color .22s ease, background-color .22s ease, border-color .22s ease, box-shadow .22s ease;
}
@media (hover:hover) and (pointer:fine) {
  .btn:hover, .navcta:hover, .property-details:hover, .new-build-gallery-button:hover, .new-build-contact-button:hover, .close:hover, .cookie-btn:hover { transform: scale(1.055); }
  .cards { overflow: visible; }
  .cards .card { position: relative; z-index: 0; }
  .cards.is-hovering .card:not(.is-hovered), .new-build-featured-grid.is-hovering .new-build-feature-card:not(.is-hovered), .cards.is-focused .card:not(.is-selected) {
    z-index: 0;
    opacity: .58;
    filter: blur(3px) saturate(.78);
    transform: scale(.94);
  }
  .cards.is-hovering .card.is-hovered, .new-build-featured-grid.is-hovering .new-build-feature-card.is-hovered, .cards.is-focused .card.is-selected {
    z-index: 3;
    opacity: 1;
    filter: none;
    transform: scale(1.055);
    box-shadow: 0 28px 78px rgba(0,0,0,.5),0 0 0 1px rgba(212,175,55,.65);
  }
  .new-build-featured-grid { overflow: visible; }
  .new-build-feature-card { position: relative; }
  .new-build-feature-card:hover { z-index: 2; transform: scale(1.035); }
}
@media (hover:none), (prefers-reduced-motion: reduce) {
  .cards.is-hovering .card:not(.is-hovered), .new-build-featured-grid.is-hovering .new-build-feature-card:not(.is-hovered), .cards.is-focused .card:not(.is-selected) { opacity: 1; filter: none; transform: none; }
  .cards.is-hovering .card.is-hovered, .new-build-featured-grid.is-hovering .new-build-feature-card.is-hovered, .cards.is-focused .card.is-selected { transform: none; }
  #sectionCurtain.active .curtain-panel { animation-duration: .01ms; }
}

/* Ficha ampliada, disponibilidad, favoritos y acceso de contacto. */
.availability-badge {
  position: absolute;
  z-index: 3;
  left: 13px;
  bottom: 13px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: calc(100% - 26px);
  padding: 8px 11px;
  overflow: hidden;
  border: 1px solid rgba(234,212,139,.5);
  border-radius: 999px;
  color: #f4e6bc;
  background: rgba(9,10,11,.76);
  backdrop-filter: blur(12px);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .1em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.availability-badge::before { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; content: ""; background: currentColor; }
.availability-available { color: #c8e7cb; border-color: rgba(148,204,154,.42); }
.availability-reserved { color: #efd99b; }
.availability-sold { color: #d2c3c3; border-color: rgba(210,195,195,.32); }
.availability-consult { color: #f4e6bc; }
.favorite-nav-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 38px;
  padding: 8px 11px;
  color: #f2e8cc;
  border: 1px solid rgba(212,175,55,.28);
  border-radius: 999px;
  background: rgba(212,175,55,.055);
  cursor: pointer;
  font: inherit;
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.favorite-nav-button:hover { color: #fff0bc; border-color: rgba(212,175,55,.7); }
.favorite-nav-button b { display: grid; min-width: 19px; height: 19px; place-items: center; border-radius: 50%; color: #12110d; background: var(--lux-gold); font-size: 9px; }
.favorite-nav-button:active, .favorite-remove:active, .favorite-open-detail:active { transform: scale(.96); }
.favorites-modal[hidden] { display: none; }
.favorites-modal {
  position: fixed;
  z-index: 1700;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(3,4,5,.84);
  backdrop-filter: blur(13px);
}
.favorites-panel {
  width: min(760px,100%);
  max-height: min(84vh,800px);
  overflow: auto;
  padding: 24px;
  border: 1px solid rgba(212,175,55,.32);
  border-radius: 17px;
  color: var(--lux-white);
  background: linear-gradient(145deg,#191a1c,#0d0e10);
  box-shadow: 0 32px 100px rgba(0,0,0,.62);
}
.favorites-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-bottom: 15px; border-bottom: 1px solid rgba(212,175,55,.2); }
.favorites-head h2 { margin: 0; color: var(--lux-white); font: 400 31px/1.1 "Playfair Display",Georgia,serif; }
.favorites-head p { margin: 6px 0 0; color: #aaa69f; font-size: 11px; }
.favorites-list { display: grid; gap: 10px; padding: 17px 0; }
.favorite-row { display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: 14px; padding: 10px; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(255,255,255,.035); }
.favorite-row img, .favorite-placeholder { width: 100px; height: 72px; object-fit: cover; border-radius: 8px; background: #1a1b1c; }
.favorite-placeholder { display: grid; place-items: center; color: var(--lux-gold-soft); }
.favorite-row h3 { margin: 0 0 5px; color: var(--lux-white); font: 400 17px/1.2 "Playfair Display",Georgia,serif; }
.favorite-row p { margin: 0; color: #aaa69f; font-size: 10px; line-height: 1.55; }
.favorite-row-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.favorite-open-detail, .favorite-remove { padding: 8px 10px; border: 1px solid rgba(212,175,55,.38); border-radius: 999px; color: #e9d9b3; background: rgba(212,175,55,.055); cursor: pointer; font-size: 9px; }
.favorite-remove { color: #bbb3a6; border-color: rgba(255,255,255,.16); background: transparent; }
.favorites-empty { padding: 30px 18px; color: #b8b1a4; border: 1px dashed rgba(212,175,55,.28); border-radius: 12px; text-align: center; font-size: 12px; line-height: 1.7; }
.favorites-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.1); }
.favorites-foot small { color: #a8a195; font-size: 10px; }
.gallery-summary { color: var(--lux-white); border: 1px solid rgba(212,175,55,.24); border-radius: 12px; background: rgba(212,175,55,.045); }
.gallery-summary > p { color: #e3dbc8 !important; }
.property-detail-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.property-detail-actions a, .property-detail-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 13px;
  color: #f1e2b9;
  border: 1px solid rgba(212,175,55,.48);
  border-radius: 999px;
  background: rgba(212,175,55,.075);
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.property-detail-actions .detail-map { color: #c7c0b3; border-color: rgba(255,255,255,.17); background: rgba(255,255,255,.035); }
.gallery-availability { display: inline-flex; align-items: center; gap: 7px; margin: 9px 0 0; color: var(--lux-gold-soft); font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.availability-editor { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.1); }
.availability-editor label { color: #c8bd9f !important; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.availability-editor select { min-height: 33px; padding: 5px 8px; border-radius: 8px; }
.availability-save { min-height: 32px; padding: 6px 10px; border: 1px solid rgba(212,175,55,.48); border-radius: 8px; color: #ead9ac; background: rgba(212,175,55,.08); cursor: pointer; font-size: 9px; }
.availability-feedback { color: #c3bdaf; font-size: 9px; }
.whatsapp-float {
  position: fixed;
  z-index: 800;
  right: 18px;
  bottom: 20px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 16px;
  border: 1px solid rgba(197,222,190,.45);
  border-radius: 999px;
  color: #f5f5ed;
  background: rgba(22,40,29,.9);
  box-shadow: 0 12px 35px rgba(0,0,0,.34);
  backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: transform .3s cubic-bezier(.34,1.36,.64,1),background .2s,border-color .2s;
}
.whatsapp-float:hover { transform: scale(1.055); border-color: rgba(197,222,190,.8); background: rgba(30,58,39,.98); }
.whatsapp-float svg { width: 18px; height: 18px; fill: currentColor; }
@media (max-width: 900px) {
  .favorite-nav-button { justify-content: center; min-height: 40px; padding: 10px 12px; }
  .favorite-row { grid-template-columns: 82px 1fr; }
  .favorite-row img, .favorite-placeholder { width: 82px; height: 64px; }
  .favorite-row-actions { grid-column: 2; justify-content: flex-start; }
}
@media (max-width: 600px) {
  .favorites-panel { max-height: 88vh; padding: 17px; }
  .favorites-head h2 { font-size: 27px; }
  .favorite-row { grid-template-columns: 74px 1fr; gap: 10px; }
  .favorite-row img, .favorite-placeholder { width: 74px; height: 58px; }
  .favorite-row h3 { font-size: 15px; }
  .favorite-row-actions { grid-column: 1 / -1; }
  .favorites-foot { align-items: flex-start; flex-direction: column; }
  .whatsapp-float { right: 14px; bottom: 14px; width: 48px; height: 48px; min-height: 48px; justify-content: center; padding: 0; }
  .whatsapp-float span { display: none; }
}
@media (max-width: 900px) {
  header.mobile-open .navlinks a:not(.navcta) { display: flex; }
  .navlinks .favorite-nav-button { width: 100%; justify-content: flex-start; min-height: 44px; border-radius: 9px; }
}
.availability-editor { grid-column: 1 / -1; }

/* Selector de objetivo del formulario: tarjetas sobrias, legibles y accesibles. */
.form .field .intent-question {
  display: block;
  margin: 0 0 12px;
  color: var(--lux-gold-soft);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.form .field .intent-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.form .field .intent-card {
  position: relative;
  display: grid;
  grid-template-rows: 36px auto;
  align-content: start;
  gap: 13px;
  min-width: 0;
  min-height: 125px;
  margin: 0;
  padding: 14px 34px 14px 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 11px;
  color: #eee9df;
  background: linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  cursor: pointer;
  letter-spacing: normal;
  text-align: left;
  text-transform: none;
  transition: transform .28s cubic-bezier(.2,.75,.25,1), border-color .24s, background .24s, box-shadow .24s;
}
.form .field .intent-card:hover {
  transform: translateY(-2px);
  border-color: rgba(234,212,139,.48);
  background: linear-gradient(145deg,rgba(212,175,55,.075),rgba(255,255,255,.025));
}
.form .field .intent-card.selected {
  border-color: rgba(234,212,139,.78);
  background: linear-gradient(145deg,rgba(212,175,55,.12),rgba(212,175,55,.035) 72%);
  box-shadow: inset 0 0 0 1px rgba(212,175,55,.13), 0 9px 24px rgba(0,0,0,.12);
}
.form .field .intent-card:focus-within { outline: 2px solid rgba(234,212,139,.72); outline-offset: 3px; }
.form .field .intent-card input[type="radio"] {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  appearance: none;
}
.form .field .intent-card::after {
  position: absolute;
  top: 13px;
  right: 13px;
  display: grid;
  width: 17px;
  height: 17px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.27);
  border-radius: 50%;
  color: #14130f;
  background: transparent;
  content: "";
  font-size: 10px;
  font-weight: 800;
  transition: background .2s, border-color .2s, transform .2s;
}
.form .field .intent-card.selected::after { content: "✓"; border-color: var(--lux-gold-soft); background: var(--lux-gold-soft); transform: scale(1.02); }
.form .field .intent-card .intent-icon {
  display: grid;
  width: 36px;
  height: 36px;
  flex: none;
  place-items: center;
  border: 1px solid rgba(212,175,55,.23);
  border-radius: 9px;
  color: var(--lux-gold-soft);
  background: rgba(212,175,55,.07);
}
.form .field .intent-card .intent-icon svg { display: block; width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.form .field .intent-card .intent-copy { display: block; min-width: 0; }
.form .field .intent-card .intent-copy b {
  display: block;
  margin: 0;
  color: #f4f0e8;
  font: 500 14px/1.25 "Playfair Display", Georgia, serif;
  letter-spacing: .005em;
  text-transform: none;
}
.form .field .intent-card.selected .intent-copy b { color: #f3dfae; }
.form .field .intent-card .intent-copy small {
  display: block;
  margin-top: 5px;
  color: #a9a49b;
  font: 400 10px/1.45 var(--font-body, "DM Sans"), sans-serif;
  letter-spacing: 0;
  text-transform: none;
}
@media (max-width: 640px) {
  .form .field .intent-options { grid-template-columns: 1fr; gap: 8px; }
  .form .field .intent-card { grid-template-columns: 38px minmax(0,1fr); grid-template-rows: auto; align-items: center; gap: 12px; min-height: 72px; padding: 11px 42px 11px 12px; }
  .form .field .intent-card .intent-copy b { font-size: 15px; }
  .form .field .intent-card .intent-copy small { margin-top: 3px; }
}
.form .field .intent-options { position: relative; overflow: visible; isolation: isolate; }
.form .field .intent-options:has(.intent-card.selected) .intent-card { z-index: 0; transform: scale(.9); }
.form .field .intent-options:has(.intent-card.selected) .intent-card.selected { z-index: 2; transform: scale(1.2); }
.form .field .intent-options:has(.intent-card.selected) .intent-card:not(.selected):hover { transform: scale(.9) translateY(-1px); }
.form .field .intent-options:has(.intent-card.selected) .intent-card.selected:hover { transform: scale(1.2) translateY(-1px); }

/* Las tarjetas de servicios comparten el mismo foco de escala que la selección del formulario. */
.services { position: relative; isolation: isolate; overflow: visible; }
.services .service {
  position: relative;
  z-index: 0;
  transform: scale(1);
  transform-origin: center;
  opacity: 1;
  transition: transform .34s cubic-bezier(.2,.75,.25,1), opacity .28s, border-color .28s, box-shadow .28s, background .28s;
  cursor: pointer;
}
.services.is-hovering .service:not(.is-hovered),
.services.has-selection:not(.is-hovering) .service:not(.is-selected),
.services:has(.service:focus-visible) .service:not(:focus-visible) { transform: scale(.9); opacity: .84; }
.services.is-hovering .service.is-hovered,
.services.has-selection:not(.is-hovering) .service.is-selected,
.services:has(.service:focus-visible) .service:focus-visible { z-index: 3; transform: scale(1.2); opacity: 1; }
.services .service:focus-visible { outline: 1px solid rgba(234,212,139,.8); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .services .service { transition: none; } }

/* Navegación editorial: micro movimiento y línea dorada, sin alterar su alineación. */
.navlinks { position: relative; isolation: isolate; gap: clamp(15px, 1.8vw, 25px); }
.navlinks > a:not(.navcta) {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 11px 0;
  color: #c7c1b6;
  transition: color .24s ease, transform .28s cubic-bezier(.2,.75,.25,1);
}
.navlinks > a:not(.navcta)::after {
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--lux-gold-soft), transparent);
  content: "";
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .28s cubic-bezier(.2,.75,.25,1);
}
.navlinks > a:not(.navcta):hover,
.navlinks > a:not(.navcta)[aria-current="location"] { color: #f0dfba; transform: translateY(-1px); }
.navlinks > a:not(.navcta):hover::after,
.navlinks > a:not(.navcta)[aria-current="location"]::after { transform: scaleX(1); }
.navlinks > a.nav-new-build-link { color: #e5cb91; }
.navlinks .favorite-nav-button {
  min-height: 36px;
  padding: 7px 11px;
  color: #ddd4bf;
  border-color: rgba(212,175,55,.3);
  background: linear-gradient(135deg,rgba(212,175,55,.08),rgba(255,255,255,.025));
  font-size: 9px;
  transition: color .24s, border-color .24s, background .24s, box-shadow .24s, transform .28s;
}
.navlinks .favorite-nav-button:hover { color: #fff0c7; border-color: rgba(234,212,139,.72); background: rgba(212,175,55,.12); box-shadow: 0 5px 18px rgba(212,175,55,.1); transform: translateY(-1px); }
.navlinks .navcta { min-height: 40px; padding: 10px 16px; transition: color .24s, border-color .24s, background .24s, box-shadow .24s, transform .28s; }
.navlinks .navcta:hover { color: #11100d; border-color: var(--lux-gold-soft); background: linear-gradient(135deg,#ead48b,#c39c39); box-shadow: 0 8px 26px rgba(212,175,55,.18); transform: translateY(-1px); }
.navlinks > :focus-visible { outline: 1px solid rgba(234,212,139,.82); outline-offset: 4px; border-radius: 3px; }
@media (max-width: 900px) {
  header.mobile-open .navlinks > a:not(.navcta) { min-height: 42px; }
  .navlinks .favorite-nav-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .navlinks > a:not(.navcta), .navlinks .favorite-nav-button, .navlinks .navcta { transition: none; }
  .navlinks > a:not(.navcta):hover, .navlinks > a:not(.navcta)[aria-current="location"], .navlinks .favorite-nav-button:hover, .navlinks .navcta:hover { transform: none; }
}

/* Remate Ultra Premium: foco claro en cartera y respuesta táctil equilibrada. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .btn:hover, .navcta:hover, .property-details:hover,
  .new-build-gallery-button:hover, .new-build-contact-button:hover,
  .close:hover, .cookie-btn:hover {
    box-shadow: 0 12px 34px rgba(212,175,55,.2), 0 3px 12px rgba(0,0,0,.22);
    filter: brightness(1.045);
  }

  #cards.is-hovering .card:not(.is-hovered),
  #cards.is-focused .card:not(.is-selected),
  #newBuildFeaturedGrid.is-hovering .new-build-feature-card:not(.is-hovered) {
    z-index: 0;
    scale: 1;
    opacity: .68;
    filter: blur(2px) saturate(.82);
    transform: scale(.96);
    transition: transform .42s cubic-bezier(.2,.8,.2,1), opacity .34s ease,
      filter .34s ease, box-shadow .34s ease;
  }

  #cards.is-hovering .card.is-hovered,
  #cards.is-focused .card.is-selected,
  #newBuildFeaturedGrid.is-hovering .new-build-feature-card.is-hovered {
    z-index: 4;
    scale: 1;
    opacity: 1;
    filter: none;
    transform: translateY(-3px) scale(1.075);
    border-color: rgba(225,194,143,.82);
    box-shadow: 0 28px 78px rgba(0,0,0,.5), 0 0 0 1px rgba(212,175,55,.42);
    transition: transform .46s cubic-bezier(.2,.8,.2,1), opacity .34s ease,
      filter .34s ease, box-shadow .34s ease, border-color .34s ease;
  }
}

/* El toque en móvil también selecciona una vivienda, sin blur ni saltos grandes. */
@media (hover: none) and (prefers-reduced-motion: no-preference) {
  #cards.is-focused .card:not(.is-selected) {
    scale: 1;
    opacity: .76;
    filter: saturate(.88);
    transform: scale(.975);
  }
  #cards.is-focused .card.is-selected {
    scale: 1;
    opacity: 1;
    filter: none;
    transform: scale(1.025);
  }
}

/* El pulso de pulsación no se duplica entre la escala individual y el transform. */
:where(button, a, [role="button"], .card, .service, .intent-card, .property-details, .gallery-doc):active {
  scale: .97;
}
.btn:active, .navcta:active, .property-details:active,
.new-build-gallery-button:active, .new-build-contact-button:active,
.close:active, .cookie-btn:active {
  transform: scale(.95);
  filter: brightness(1.04);
  transition-duration: .12s;
}

@media (prefers-reduced-motion: reduce) {
  #cards.is-hovering .card, #cards.is-focused .card,
  #newBuildFeaturedGrid.is-hovering .new-build-feature-card {
    scale: 1;
    opacity: 1;
    filter: none;
    transform: none;
  }
}

/* Las secciones de ancho limitado ahora llevan el fondo hasta ambos bordes. */
#inicio > .section.wrap {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
#inicio > .section.wrap > .sectionhead,
#inicio > .section.wrap > .cards,
#inicio > .section.wrap > .notice,
#inicio > .section.wrap > .services,
#inicio > .section.wrap > .contact {
  width: min(1180px, calc(100% - 42px));
  max-width: 1180px;
  margin-inline: auto;
}
#inicio > #inmuebles {
  background: radial-gradient(ellipse at 84% 15%, rgba(212,175,55,.045), transparent 36rem),
    linear-gradient(180deg, #0b0c0f 0%, #0d0e10 48%, #0b0c0f 100%);
}
#inicio > .news-section {
  border-top: 0;
  border-bottom: 0;
  background: radial-gradient(ellipse at 78% 24%, rgba(212,175,55,.04), transparent 38rem),
    linear-gradient(180deg, #0b0c0f 0%, #0d0e10 50%, #0b0c0f 100%);
}
#inicio > .new-build-section {
  border-top: 0;
  border-bottom: 0;
  background: radial-gradient(ellipse at 85% 18%, rgba(212,175,55,.075), transparent 35rem),
    linear-gradient(180deg, #0b0c0f 0%, #101113 48%, #0b0c0f 100%);
}


/* CRM bulk import: a review-first admin workflow, matching the Schmith dark/gold dashboard. */
.crm-importer{margin:14px 0 20px;padding:17px;border:1px solid rgba(212,175,55,.25);border-radius:15px;background:linear-gradient(145deg,rgba(212,175,55,.055),rgba(255,255,255,.018));color:#f0ebe2}
.crm-importer [hidden]{display:none!important}
.crm-import-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.crm-import-heading h4{margin:4px 0 5px;color:#f0ebe2;font:500 19px/1.2 Georgia,"Times New Roman",serif}
.crm-import-heading p,.crm-preview-title p{margin:0;color:#aaa69f;font-size:11px;line-height:1.6}
.crm-import-kicker{color:#d8b77f;font-size:9px;font-weight:800;letter-spacing:.15em}
.crm-template-btn{flex:0 0 auto}
.crm-dropzone{position:relative;display:flex;align-items:center;gap:13px;min-height:70px;padding:13px 15px;border:1px dashed rgba(212,175,55,.45);border-radius:11px;background:rgba(12,13,15,.5);cursor:pointer;transition:border-color .2s,background .2s}
.crm-dropzone:hover,.crm-dropzone:focus-within{border-color:#d6b962;background:rgba(212,175,55,.08)}
.crm-dropzone>span:not(.crm-upload-icon){pointer-events:none}
.crm-dropzone strong,.crm-dropzone small,.crm-import-options strong,.crm-import-options small{display:block}
.crm-dropzone strong{color:#f0ebe2;font-size:12px}
.crm-dropzone small,.crm-import-options small{margin-top:4px;color:#aaa69f;font-size:10px;line-height:1.45}
.crm-dropzone input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.crm-upload-icon{display:grid;place-items:center;width:37px;height:37px;border:1px solid rgba(212,175,55,.32);border-radius:10px;color:#e5c991;font-size:22px;flex:0 0 auto}
.crm-import-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.crm-import-options>label{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid rgba(255,255,255,.09);border-radius:9px;background:rgba(255,255,255,.025);cursor:pointer}
.crm-import-options input{flex:0 0 auto;margin:2px 0 0;accent-color:#c9a44e}
.crm-import-options strong{color:#e4ded2;font-size:10px}
.crm-import-note{margin:10px 0 0;color:#a7a198;font-size:10px;line-height:1.6}
.crm-mapping,.crm-preview{margin-top:14px;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:rgba(8,9,11,.42)}
.crm-preview-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:11px}
.crm-preview-title h5{margin:0 0 4px;color:#eee8dc;font-size:12px}
.crm-preview-title>span:not(.crm-preview-badge){color:#b9aa84;font-size:9px;white-space:nowrap}
.crm-preview-badge{padding:5px 7px;border:1px solid rgba(212,175,55,.28);border-radius:999px;color:#d8bd81;font-size:8px;font-weight:800;letter-spacing:.1em;white-space:nowrap}
.crm-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.crm-map-field{min-width:0}
.crm-map-field>span{display:block;margin:0 0 5px;color:#c6b78f;font-size:9px;font-weight:800;letter-spacing:.045em}
#adminModal .crm-map-field select{width:100%;min-width:0;height:36px;padding:0 8px;border:1px solid #393833;border-radius:7px;background:#17181b;color:#eeeae2;font-size:10px}
.crm-table-scroll{max-width:100%;overflow:auto;border:1px solid rgba(255,255,255,.09);border-radius:8px}
.crm-table-scroll table{width:100%;min-width:610px;border-collapse:collapse}
.crm-table-scroll th,.crm-table-scroll td{padding:8px 9px;border-bottom:1px solid rgba(255,255,255,.075);text-align:left;color:#d9d3c8;font-size:9px;vertical-align:top}
.crm-table-scroll th{position:sticky;top:0;background:#202124;color:#c8b784;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.crm-table-scroll tr:last-child td{border-bottom:0}
.crm-table-scroll td strong,.crm-table-scroll td small{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crm-table-scroll td strong{color:#f1ece1;font-size:10px}
.crm-table-scroll td small{margin-top:3px;color:#a5a097;font-size:9px}
.crm-row-state{display:inline-block;max-width:150px;padding:4px 6px;border-radius:99px;font-size:8px;line-height:1.4}
.crm-row-state.ready{background:rgba(77,154,112,.14);color:#a5d5b5}
.crm-row-state.duplicate{background:rgba(204,166,74,.14);color:#e0c97d}
.crm-row-state.invalid{background:rgba(205,95,83,.14);color:#e6aaa2}
.crm-more-rows{text-align:center!important;color:#a7a198!important}
.crm-preview-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.crm-preview-actions .btn{font-size:10px;padding:9px 12px}
.crm-preview-actions .btn:disabled{opacity:.45;cursor:not-allowed}
.crm-import-status{min-height:0;margin-top:0;color:#c9bd9f;font-size:10px;line-height:1.55}
.crm-import-status:not(:empty){margin-top:10px}
.crm-import-status[data-kind="success"]{color:#a5d5b5}
.crm-import-status[data-kind="error"]{color:#e6aaa2}
.crm-import-status[data-kind="progress"]{color:#dfc578}
@media(max-width:740px){.crm-import-heading{align-items:flex-start;flex-direction:column}.crm-template-btn{width:100%}.crm-mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.crm-importer{padding:12px}.crm-import-options{grid-template-columns:1fr}.crm-mapping-grid{grid-template-columns:1fr 1fr}.crm-preview-title{flex-direction:column}.crm-preview-badge{align-self:flex-start}}

/* Ajustes finales para pantallas táctiles y tabletas: conserva todas las funciones y evita desbordamientos. */
@media (min-width: 601px) and (max-width: 900px) {
  #inicio > .section.wrap > .sectionhead,
  #inicio > .section.wrap > .cards,
  #inicio > .section.wrap > .notice,
  #inicio > .section.wrap > .services,
  #inicio > .section.wrap > .contact { width: calc(100% - 48px); }
  .hero-content { width: min(700px, 78vw); padding-left: 6vw; }
  .hero h1 { font-size: clamp(58px, 8vw, 82px); }
  .searchbox { width: 92vw; right: 4vw; padding: 13px; }
  .searchgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
  .searchbox .btn { width: 100%; }
  .cards, .new-build-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service { min-height: 190px; }
  .contact { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 28px; }
  .form { padding: 21px; }
  .split { grid-template-columns: 1fr 1fr; gap: 26px; padding: 42px 5%; }
  .crm-import-options { grid-template-columns: 1fr; }
  .card, .service, .news-card { -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (max-width: 740px) {
  .crm-import-options { grid-template-columns: 1fr; }
  .crm-import-options > label { min-height: 54px; padding: 12px; }
  .crm-import-options input { width: 18px; height: 18px; }
  .crm-preview-actions .btn { min-height: 44px; }
}

@media (max-width: 600px) {
  html, body { max-width: 100%; overflow-x: clip; }
  .wrap { width: calc(100% - 32px); }
  #inicio > .section.wrap > .sectionhead,
  #inicio > .section.wrap > .cards,
  #inicio > .section.wrap > .notice,
  #inicio > .section.wrap > .services,
  #inicio > .section.wrap > .contact { width: calc(100% - 32px); }
  header.wrap.nav { min-height: 66px; }
  .mobile-nav-toggle, .btn, .navcta, .property-details,
  .new-build-gallery-button, .new-build-contact-button { min-height: 44px; }
  .hero-content { min-height: 72svh; padding: 98px 20px 26px; }
  .hero h1 { font-size: clamp(46px, 13vw, 64px); letter-spacing: -.045em; }
  .hero-actions { align-items: stretch; gap: 13px; }
  .hero-actions .btn { width: fit-content; max-width: 100%; }
  .hero-actions .text-link { min-height: 34px; display: inline-flex; align-items: center; }
  .hero-trust-item { flex: 1 1 33.333%; padding-inline: 7px; }
  .hero-trust-item strong { font-size: 12px; }
  .hero-trust-item span { font-size: 7px; letter-spacing: .09em; }
  .searchbox { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .section { padding-block: 56px; }
  .section h2, .contact h2 { font-size: clamp(35px, 10vw, 48px); }
  .cards, .new-build-featured-grid, .services { gap: 13px; }
  .photo { height: clamp(210px, 64vw, 270px); }
  .cardbody { padding: 18px; }
  .form { padding: 19px 15px; }
  .form .field .intent-options { gap: 20px; padding: 16px 10px; }
  .form .field .intent-options:has(.intent-card.selected) .intent-card { transform: scale(.9); }
  .form .field .intent-options:has(.intent-card.selected) .intent-card.selected { transform: scale(1.2); }
  .form .field .intent-options:has(.intent-card.selected) .intent-card:not(.selected):hover { transform: scale(.9); }
  .form .field .intent-options:has(.intent-card.selected) .intent-card.selected:hover { transform: scale(1.2); }
  .services { padding-inline: 12px; gap: 22px; }
  .admin-shell, .gallery-shell, .legal-modal-card, .cookie-dialog-card { max-width: calc(100vw - 20px); }
  .crm-importer { padding: 13px; }
  .crm-import-options > label { align-items: center; }
  .crm-mapping-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .whatsapp-float { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); }
}

/* El estado de publicación del CRM queda claro antes de confirmar la importación. */
.crm-import-options .crm-publish-choice {
  border-color: rgba(212,175,55,.45);
  background: linear-gradient(135deg,rgba(212,175,55,.09),rgba(255,255,255,.025));
  transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.crm-import-options .crm-publish-choice.is-active {
  border-color: rgba(234,212,139,.82);
  background: linear-gradient(135deg,rgba(212,175,55,.2),rgba(212,175,55,.065));
  box-shadow: inset 0 0 0 1px rgba(212,175,55,.12);
}
.crm-publish-choice strong { color: #f1dfb5; }
.crm-publish-state { display: inline-block; margin-top: 7px; color: #b8b1a3; font-size: 10px; font-style: normal; line-height: 1.45; }
.crm-publish-choice.is-active .crm-publish-state { color: #ead48b; font-weight: 700; }
@media (prefers-reduced-motion: reduce) {
  .crm-import-options .crm-publish-choice { transition: none; }
}

/* Responsive polish: tablet, phone and compact desktop. */
@media (min-width: 601px) and (max-width: 1100px) {
  :root { --scg-nav-height: 72px; }
  header.wrap.nav { padding-inline: clamp(18px, 3vw, 30px); }
  .mobile-nav-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(212,175,55,.42); border-radius: 50%; background: rgba(10,11,12,.78); }
  .mobile-nav-toggle span { position: absolute; width: 16px; height: 1px; background: var(--lux-gold-soft); transition: transform .22s, opacity .22s; }
  .mobile-nav-toggle span:first-child { transform: translateY(-4px); }
  .mobile-nav-toggle span:last-child { transform: translateY(4px); }
  .mobile-nav-toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
  .mobile-nav-toggle[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }
  .navlinks { display: none; }
  header.mobile-open .navlinks { position: fixed; top: calc(var(--scg-nav-height) + 8px); right: 18px; display: flex; width: min(360px, calc(100vw - 36px)); align-items: stretch; flex-direction: column; gap: 4px; padding: 15px; border: 1px solid rgba(212,175,55,.34); border-radius: 14px; background: rgba(12,13,15,.98); box-shadow: 0 24px 70px rgba(0,0,0,.48); backdrop-filter: blur(18px); }
  header.mobile-open .navlinks a:not(.navcta) { display: flex; min-height: 44px; align-items: center; padding: 12px 10px; border-bottom: 1px solid rgba(255,255,255,.08); }
  header.mobile-open .navlinks .favorite-nav-button { width: 100%; justify-content: flex-start; }
  .navlinks .navcta { justify-content: center; margin-top: 7px; }
  .hero.cinematic-page, .hero { display: flex; flex-direction: column; height: auto; min-height: 0; overflow: visible; padding: 0 0 26px; }
  .hero-panel { position: absolute; inset: 0; height: auto; min-height: 100%; }
  .hero-content { width: min(760px, 88vw); min-height: 62svh; padding: calc(var(--scg-nav-height) + 56px) 5vw 38px; }
  .hero h1 { font-size: clamp(52px, 7.2vw, 78px); }
  .searchbox { position: relative; right: auto; bottom: auto; width: calc(100% - 48px); margin: 0 auto; }
  .searchgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .searchbox .btn { grid-column: 1 / -1; width: 100%; }
  .cards, .services, .new-build-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 28px; }
  .form .field .intent-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
}

@media (max-width: 600px) {
  :root { --scg-nav-height: 64px; }
  header.wrap.nav { padding-inline: max(14px, env(safe-area-inset-left)); }
  .brandmark { width: 100px; height: 40px; }
  .mobile-nav-toggle { flex: 0 0 44px; min-width: 44px; min-height: 44px; }
  .hero.cinematic-page, .hero { min-height: 0; padding-bottom: 22px; }
  .hero-content { min-height: 70svh; padding: calc(var(--scg-nav-height) + 30px) 20px 28px; }
  .hero h1 { max-width: 12ch; font-size: clamp(44px, 12.5vw, 60px); line-height: 1.02; overflow-wrap: break-word; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-trust-item { min-width: 0; padding-inline: 8px; }
  .searchbox { width: calc(100% - 28px); margin: 0 auto; }
  .searchgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .searchbox .field { min-width: 0; }
  .searchbox .field select, .searchbox .field input { min-width: 0; font-size: 13px; }
  .searchbox .field:last-of-type, .searchbox .btn { grid-column: 1 / -1; }
  .sectionhead > *, .new-build-intro > *, .new-build-footer > * { min-width: 0; max-width: 100%; }
  .news-card { grid-template-columns: 1fr; }
  .news-media, .news-media img, .news-media video, .news-media iframe { min-height: 220px; }
  .form .field .intent-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 12px 4px; }
  .form .field .intent-options:has(.intent-card.selected) .intent-card.selected,
  .form .field .intent-options:has(.intent-card.selected) .intent-card.selected:hover { transform: none; }
  .form .field .intent-card { min-width: 0; padding-inline: 6px; }
  .cookie-banner { left: max(10px, env(safe-area-inset-left)); right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); width: auto; max-width: none; }
  .gallery-shell, .admin-shell, .legal-modal-card, .cookie-dialog-card { width: calc(100vw - 20px); max-height: calc(100svh - 20px); overflow-y: auto; }
  .gallery-stage img, .gallery-stage video, .gallery-stage iframe { height: min(48svh, 460px); min-height: 210px; }
}

@media (min-width: 1101px) and (max-width: 1350px) {
  header.wrap.nav { padding-inline: 28px; }
  .navlinks { gap: clamp(11px, 1.35vw, 18px); font-size: 9px; }
  .searchbox { width: min(1180px, calc(100% - 56px)); }
  .searchgrid { gap: 8px; }
  .searchbox .field select, .searchbox .field input { padding-inline: 9px; }
}

@media (hover: none) and (pointer: coarse) {
  .cards.is-focused .card:not(.is-selected), .new-build-feature-card:hover { opacity: 1; filter: none; transform: none; }
  .btn, .navcta, .heart, .property-details, .new-build-gallery-button, .new-build-contact-button { touch-action: manipulation; }
}


/* Desktop hero: prevent a tall headline from sitting under the fixed header. */
@media (min-width: 1101px) {
  .hero-content {
    width: min(1120px, 100%);
    max-width: 1120px;
    padding: calc(var(--scg-nav-height) + 30px) 0 190px max(7vw, calc((100vw - 1370px) / 2));
  }
  .hero h1 {
    max-width: 920px;
    font-size: clamp(58px, 5.25vw, 86px);
    line-height: 1.02;
    letter-spacing: -.04em;
  }
  .hero-panel { align-items: center; }
}

@media (min-width: 1101px) and (max-height: 820px) {
  .hero-content { padding-top: calc(var(--scg-nav-height) + 18px); padding-bottom: 150px; }
  .hero h1 { font-size: clamp(56px, 4.9vw, 76px); margin-bottom: 14px; }
  .hero p { margin-bottom: 18px; }
  .hero-trust { margin-top: 20px; }
}

/* Schmith editorial finish: calm luxury, readable content and consistent responsive rhythm. */
:root {
  --scg-content-width: 1240px;
  --scg-gold-line: rgba(212,175,55,.22);
  --scg-surface: rgba(18,19,21,.94);
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { color: #11100d; background: #ead48b; }

header.wrap.nav {
  padding-left: max(22px, calc((100vw - var(--scg-content-width)) / 2));
  padding-right: max(22px, calc((100vw - var(--scg-content-width)) / 2));
  background: linear-gradient(180deg, rgba(7,8,10,.96), rgba(7,8,10,.86));
  border-bottom-color: rgba(212,175,55,.22);
}
.brandmark { background-size: contain; }
.navlinks .favorite-nav-button { border-radius: 999px; }
.navlinks .navcta { min-height: 44px; }
.navlinks > a:focus-visible, .navlinks button:focus-visible,
.btn:focus-visible, .property-details:focus-visible,
.new-build-gallery-button:focus-visible, .new-build-contact-button:focus-visible,
.heart:focus-visible, .mobile-nav-toggle:focus-visible {
  outline: 2px solid #ead48b;
  outline-offset: 3px;
}

.hero-panel {
  background-image:
    linear-gradient(90deg, rgba(7,8,10,.84) 0%, rgba(7,8,10,.63) 37%, rgba(7,8,10,.12) 76%, rgba(7,8,10,.24) 100%),
    linear-gradient(0deg, rgba(7,8,10,.62), transparent 45%),
    var(--hero-image),
    url("https://images.unsplash.com/photo-1600596542815-ffad4c1539a9?auto=format&fit=crop&w=2400&q=85");
  background-position: center, center, center 55%, center 55%;
  background-size: cover;
}
.hero-panel::after {
  background: radial-gradient(ellipse at 78% 14%, rgba(212,175,55,.13), transparent 34%), linear-gradient(0deg, rgba(7,8,10,.12), transparent 42%);
}
.hero-content { isolation: isolate; }
.hero .eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.hero .eyebrow::before { width: 28px; height: 1px; background: currentColor; content: ""; }
.hero h1 { text-wrap: balance; }
.hero p { max-width: 510px; color: rgba(245,242,235,.86); }
.hero-actions .btn { min-height: 50px; }
.hero-actions .text-link { min-height: 42px; display: inline-flex; align-items: center; }
.hero-trust-item strong { font-size: 16px; }
.searchbox {
  border-color: rgba(212,175,55,.42);
  background: rgba(13,14,16,.94);
  box-shadow: 0 24px 70px rgba(0,0,0,.38), 0 1px 0 rgba(255,255,255,.035) inset;
}
.searchbox .field select, .searchbox .field input { transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.searchbox .field select:hover, .searchbox .field input:hover { border-color: rgba(212,175,55,.42); background: rgba(255,255,255,.075); }
.searchbox .btn { min-height: 44px; }

.section { padding-block: clamp(72px, 7vw, 104px); }
.sectionhead { gap: clamp(18px, 3vw, 36px); }
.sectionhead .kicker { display: inline-flex; align-items: center; gap: 10px; }
.sectionhead .kicker::after { width: 28px; height: 1px; background: currentColor; content: ""; }
.sectionhead p { max-width: 560px; }
#inmuebles, #actualidad, #nosotros, #servicios, #contacto { position: relative; }
#inmuebles { background: radial-gradient(ellipse at 88% 0%, rgba(212,175,55,.055), transparent 38rem), linear-gradient(180deg,#0a0b0d,#0d0e10 55%,#0a0b0d); }
#actualidad { background: linear-gradient(180deg, #0d0e10, #111214 50%, #0d0e10); }
#nosotros { background: radial-gradient(ellipse at 10% 22%,rgba(212,175,55,.045),transparent 36rem),#0b0c0e; }
#servicios { background: linear-gradient(180deg,#0b0c0e,#101113 50%,#0b0c0e); }
#contacto { background: radial-gradient(ellipse at 12% 14%,rgba(212,175,55,.065),transparent 38rem),linear-gradient(180deg,#0b0c0e,#101113); }

.cards { gap: clamp(14px, 1.8vw, 24px); }
.card, .service, .news-card, .form { border-color: rgba(212,175,55,.2); }
.card { overflow: hidden; }
.card:hover { border-color: rgba(234,212,139,.68); }
.card:focus-within { border-color: rgba(234,212,139,.68); box-shadow: 0 0 0 2px rgba(234,212,139,.14), 0 28px 66px rgba(0,0,0,.38); }
.photo { background-position: center; }
.badge { border-radius: 999px; padding: 8px 11px; }
.heart { width: 42px; height: 42px; display: grid; place-items: center; }
.cardbody { padding: clamp(18px, 2vw, 24px); }
.price { font-size: clamp(23px, 2vw, 28px); }
.card h3 { text-wrap: pretty; }
.card .property-details { min-height: 44px; }
.news-card { overflow: hidden; }
.news-copy { padding: clamp(24px, 4vw, 52px); }
.news-copy h3 { text-wrap: balance; }
.split { border-radius: 20px; }
.point { border-radius: 13px; }
.service { border-radius: 17px; }
.service .icon { display: inline-grid; width: 46px; height: 46px; place-items: center; border: 1px solid rgba(212,175,55,.27); border-radius: 14px; background: rgba(212,175,55,.08); }
.service:hover { border-color: rgba(234,212,139,.68); }
.form { border-radius: 20px; }
.form .btn { min-height: 48px; }
.contactline > span { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 13px; }
.footer { padding-top: 48px; }
.cookie-banner { border-radius: 18px; box-shadow: 0 20px 68px rgba(0,0,0,.55); }

@media (min-width: 1101px) {
  .hero-content { padding-bottom: 205px; }
  .hero-trust { margin-top: 26px; }
  .sectionhead { margin-bottom: 38px; }
}
@media (min-width: 601px) and (max-width: 1100px) {
  header.wrap.nav { padding-inline: clamp(18px, 3vw, 30px); }
  .section { padding-block: clamp(62px, 7vw, 82px); }
  .sectionhead { margin-bottom: 28px; }
  .hero-content { min-height: 60svh; padding-top: calc(var(--scg-nav-height) + 42px); padding-bottom: 34px; }
  .hero-panel { background-position: center,center,62% center,62% center; }
  .cards, .services, .new-build-featured-grid { gap: 16px; }
  .photo { height: clamp(210px, 29vw, 285px); }
  .service { min-height: 0; padding: 23px; }
  .news-copy { padding: 28px; }
  .contact { align-items: start; }
  .form { padding: 23px; }
}
@media (max-width: 600px) {
  header.wrap.nav { padding-inline: max(14px, env(safe-area-inset-left)); }
  .hero-panel { background-position: center,center,64% center,64% center; }
  .hero-content { min-height: 68svh; padding: calc(var(--scg-nav-height) + 24px) 20px 25px; }
  .hero .eyebrow { margin-bottom: 14px; font-size: 9px; letter-spacing: .18em; }
  .hero h1 { max-width: 13ch; font-size: clamp(42px, 11.5vw, 56px); line-height: 1.03; }
  .hero p { font-size: 14px; line-height: 1.7; }
  .hero-actions { gap: 10px; }
  .hero-actions .btn { min-height: 48px; }
  .hero-trust { margin-top: 19px; }
  .hero-trust-item { padding-inline: 7px; }
  .hero-trust-item strong { font-size: 11px; }
  .hero-trust-item span { font-size: 6px; letter-spacing: .07em; }
  .searchbox { padding: 13px; border-radius: 16px; }
  .searchbox .field label { min-height: 22px; font-size: 8px; }
  .searchbox .field select, .searchbox .field input { height: 44px; }
  .section { padding-block: 58px; }
  .sectionhead { margin-bottom: 23px; }
  .section h2, .contact h2 { font-size: clamp(34px, 9.4vw, 46px); }
  .cards, .services, .new-build-featured-grid { gap: 14px; }
  .photo { height: clamp(220px, 68vw, 290px); }
  .cardbody { padding: 18px; }
  .card h3 { font-size: 20px; }
  .news-copy { padding: 23px 20px; }
  .news-media, .news-media img, .news-media video, .news-media iframe { min-height: 205px; }
  .split { padding: 31px 22px; }
  .service { min-height: 0; padding: 22px; }
  .contact { gap: 23px; }
  .form { padding: 20px 16px; }
  .footer { padding-top: 36px; }
  .cookie-banner { border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Mobile and tablet structural correction: normal document flow, natural section heights. */
@media (max-width: 1100px) {
  html.cinematic-scroll {
    scroll-snap-type: none;
    scroll-padding-top: var(--scg-nav-height);
    scroll-behavior: smooth;
  }
  #inicio.cinematic-scroll > .cinematic-page {
    min-height: 0 !important;
    height: auto !important;
    scroll-snap-align: none;
    scroll-snap-stop: normal;
    opacity: 1;
    translate: none !important;
    transition: none;
    will-change: auto;
  }
  #inicio.cinematic-scroll > .cinematic-page:not(.hero) {
    display: block;
    min-height: 0 !important;
    justify-content: initial;
    padding-block: clamp(54px, 8vw, 78px);
  }
  .hero.cinematic-page, .hero {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
    padding: 0 0 28px;
  }
  .hero-panel {
    position: relative;
    inset: auto;
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    min-height: 0;
    overflow: hidden;
    align-items: center;
    border: 0;
    border-radius: 0;
  }
  .hero-content {
    width: min(840px, 100%);
    max-width: 840px;
    min-height: min(650px, 68svh);
    padding: calc(var(--scg-nav-height) + 38px) clamp(26px, 5vw, 64px) 42px;
  }
  .hero h1 { max-width: 15ch; font-size: clamp(48px, 6.8vw, 76px); }
  .searchbox {
    position: relative;
    inset: auto;
    right: auto;
    bottom: auto;
    width: calc(100% - 48px);
    margin: -18px auto 0;
  }
}

@media (max-width: 600px) {
  :root { --scg-nav-height: 64px; }
  html.cinematic-scroll { scroll-behavior: auto; }
  .hero.cinematic-page, .hero { padding-bottom: 20px; }
  .hero-panel { background-position: center, center, 64% center, 64% center; }
  .hero-content {
    width: 100%;
    max-width: 100%;
    min-height: min(590px, 68svh);
    padding: calc(var(--scg-nav-height) + 26px) 20px 32px;
  }
  .hero .eyebrow { margin-bottom: 13px; font-size: 9px; letter-spacing: .16em; }
  .hero h1 { max-width: 13ch; font-size: clamp(40px, 10.7vw, 48px); line-height: 1.04; }
  .hero p { max-width: 440px; font-size: 14px; line-height: 1.65; }
  .hero-actions { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 10px 18px; }
  .hero-actions .btn { min-height: 46px; padding-inline: 17px; }
  .hero-actions .text-link, .hero-actions .new-build-hero-link { min-height: 40px; font-size: 9px; }
  .hero-trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px 0; margin-top: 20px; }
  .hero-trust-item { min-width: 0; padding-inline: 10px; }
  .hero-trust-item:nth-child(odd) { padding-left: 0; border-left: 0; }
  .hero-trust-item:last-child { grid-column: 1 / -1; }
  .hero-trust-item strong { font-size: 12px; }
  .hero-trust-item span { font-size: 7px; letter-spacing: .09em; }
  .searchbox {
    width: calc(100% - 28px);
    margin: -12px auto 0;
    padding: 13px;
    border-radius: 16px;
  }
  .searchgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .searchbox .field { min-width: 0; }
  .searchbox .field label { min-height: 20px; font-size: 8px; }
  .searchbox .field select, .searchbox .field input { width: 100%; min-width: 0; height: 44px; padding-inline: 9px; font-size: 12px; }
  .searchbox .field:last-of-type, .searchbox .btn { grid-column: 1 / -1; }
  #inicio.cinematic-scroll > .cinematic-page:not(.hero) { padding: 52px 0; }
  #inicio.cinematic-scroll > #actualidad { padding-inline: 14px; }
  .section { padding-block: 52px; }
  .sectionhead { align-items: flex-start; flex-direction: column; gap: 12px; }
  .sectionhead > *, .new-build-intro > *, .new-build-footer > * { min-width: 0; max-width: 100%; }
  .section h2, .contact h2 { font-size: clamp(32px, 9vw, 43px); }
  .cards, .new-build-featured-grid, .services { grid-template-columns: 1fr; gap: 14px; }
  .photo { height: clamp(210px, 65vw, 270px); }
  .cardbody { padding: 18px; }
  .card h3 { font-size: 20px; }
  .news-card { grid-template-columns: 1fr; }
  .news-media, .news-media img, .news-media video, .news-media iframe { min-height: 200px; }
  .split { grid-template-columns: 1fr; gap: 18px; padding: 28px 20px; }
  .contact { grid-template-columns: 1fr; gap: 21px; }
  .form { padding: 19px 15px; }
  .formgrid { grid-template-columns: 1fr; }
  .form .field.full { grid-column: auto; }
  .footrow, .copyright { align-items: flex-start; flex-direction: column; }
  .cookie-banner { left: max(10px, env(safe-area-inset-left)); right: max(10px, env(safe-area-inset-right)); bottom: max(10px, env(safe-area-inset-bottom)); width: auto; max-width: none; }
  .gallery-shell, .admin-shell, .legal-modal-card, .cookie-dialog-card { width: calc(100vw - 20px); max-height: calc(100svh - 20px); overflow-y: auto; }
}

/* Private workspace accordions: clear hierarchy, easy to collapse, usable on touch. */
.admin-workspace-toolbar {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 2px;
  padding: 13px 15px;
  border: 1px solid rgba(212,175,55,.23);
  border-radius: 13px;
  background: linear-gradient(120deg,rgba(212,175,55,.075),rgba(255,255,255,.025));
}
.admin-workspace-toolbar > div:first-child { display: grid; gap: 3px; }
.admin-workspace-toolbar strong { color: #f0e8d6; font-size: 12px; }
.admin-workspace-toolbar span { color: #aba69c; font-size: 10px; }
.admin-workspace-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.admin-workspace-actions button {
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid rgba(212,175,55,.32);
  border-radius: 9px;
  color: #e7d6ae;
  background: rgba(255,255,255,.035);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
}
.admin-workspace-actions button:hover { border-color: rgba(234,212,139,.75); background: rgba(212,175,55,.09); }
.admin-foldout {
  grid-column: 1 / -1;
  min-width: 0;
  padding: 0;
  overflow: hidden;
}
.admin-foldout > summary { list-style: none; }
.admin-foldout > summary::-webkit-details-marker,
.admin-subfoldout > summary::-webkit-details-marker { display: none; }
.admin-foldout-summary {
  display: flex;
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 19px;
  cursor: pointer;
  user-select: none;
}
.admin-foldout-summary:hover { background: rgba(212,175,55,.045); }
.admin-foldout-copy { display: grid; min-width: 0; gap: 4px; }
.admin-foldout-summary h3 { margin: 0; color: #f0e8d6; font-size: 16px; }
.admin-foldout-summary .admin-muted { margin: 0; color: #a9a398; font-size: 10px; }
.admin-foldout-chevron {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  place-items: center;
  border: 1px solid rgba(212,175,55,.28);
  border-radius: 50%;
  color: #e2c688;
}
.admin-foldout-chevron::before { content: "+"; font-size: 20px; line-height: 1; }
.admin-foldout[open] > .admin-foldout-summary .admin-foldout-chevron::before,
.admin-subfoldout[open] > .admin-subfoldout-summary .admin-foldout-chevron::before { content: "−"; }
.admin-foldout-content { padding: 0 19px 20px; }
.admin-foldout-content > .admin-actions:first-child { margin-top: 0; }
.admin-subfoldout {
  margin: 14px 0 0;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.018);
  overflow: hidden;
}
.admin-subfoldout-summary {
  display: flex;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  color: #eee8dc;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.admin-subfoldout-summary > span:first-child { font-size: 12px; font-weight: 700; }
.admin-subfoldout-summary small { margin-left: auto; color: #a8a195; font-size: 9px; }
.admin-subfoldout-summary .admin-foldout-chevron { width: 27px; height: 27px; flex-basis: 27px; }
.admin-subfoldout > :not(summary) { margin-right: 12px; margin-left: 12px; }
.admin-subfoldout > :last-child { margin-bottom: 12px; }
.admin-foldout summary:focus-visible, .admin-subfoldout summary:focus-visible,
.admin-workspace-actions button:focus-visible { outline: 2px solid #ead48b; outline-offset: 3px; }
#adminModal .admin-foldout-content .crm-importer { margin-top: 0; }
#adminModal .admin-foldout-content .admin-foldout-content > .admin-foot { margin-top: 12px; }
@media (max-width: 740px) {
  .admin-workspace-toolbar { align-items: flex-start; flex-direction: column; }
  .admin-workspace-actions { width: 100%; }
  .admin-workspace-actions button { flex: 1 1 auto; min-height: 42px; }
  .admin-foldout-summary { min-height: 64px; padding: 12px 14px; }
  .admin-foldout-content { padding: 0 13px 15px; }
  .admin-subfoldout-summary { flex-wrap: wrap; }
  .admin-subfoldout-summary small { flex: 1 1 calc(100% - 42px); order: 3; margin-left: 0; }
}
