/* =============================================================
   TERRANOVA — Luxury Real Estate · styles.css  (Azul Marino)
   ============================================================= */

/* 1. TOKENS */
:root {
  --navy:      #0E2747;   /* azul marino profundo (base oscura) */
  --navy-2:    #0A1C34;
  --navy-3:    #14365F;   /* card sobre oscuro */
  --steel:     #1E456F;
  --steel-2:   #2E5B89;
  --white:     #FFFFFF;
  --bone:      #F4F6FA;   /* off-white frío */
  --bone-2:    #E7ECF3;
  --gold:      #C7A56A;
  --gold-soft: #D9BE8A;
  --gold-deep: #9C7C40;

  --ink:       #0E2440;
  --ink-mute:  #51607A;
  --cream:     #EAF0F8;
  --cream-mute:#9FB1CC;

  --line-dark:  rgba(199,165,106,.20);
  --line-light: rgba(14,39,71,.12);

  --serif: "Playfair Display", Georgia, serif;
  --sans:  "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);

  --gutter: clamp(20px, 5vw, 64px);
  --maxw: 1280px;
  --nav-h: 76px;
}
@property --sun-y { syntax: "<length>"; inherits: false; initial-value: 0px; }

/* 2. RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: var(--sans); font-size: 16px; line-height: 1.65;
  color: var(--ink); background: var(--bone);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: clip; overscroll-behavior-y: none;
}
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; border: 0; background: none; }
ul { list-style: none; padding: 0; }
p { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: balance; line-height: 1.04; letter-spacing: -0.01em; font-weight: 500; }
::selection { background: var(--gold); color: var(--navy); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 3px; }
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 9999; padding: .6rem 1rem; background: var(--navy); color: var(--gold); border-radius: 8px; font-weight: 500; }
.skip-link:focus { top: 1rem; }

/* 3. TYPOGRAPHY UTILITIES */
.display { font-family: var(--serif); font-weight: 500; font-size: clamp(2.1rem, 6vw, 4.2rem); line-height: 1.02; letter-spacing: -0.015em; color: var(--ink); }
.display em { font-style: italic; color: var(--steel); }
.display--light { color: var(--cream); }
.display--light em { color: var(--gold); }
.kicker { font-size: .72rem; letter-spacing: .28em; text-transform: uppercase; font-weight: 500; color: var(--ink-mute); margin-bottom: 1.2rem; display: flex; align-items: center; gap: .8rem; }
.kicker::before { content: ""; width: 28px; height: 1px; background: var(--gold); }
.kicker--light { color: var(--cream-mute); }
.lede { font-size: clamp(1rem, 1.4vw, 1.15rem); color: var(--ink-mute); max-width: 46ch; line-height: 1.75; }
.lede--light { color: var(--cream-mute); }

/* 4. BUTTONS */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: 1rem 1.9rem; font-size: .82rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; border-radius: 2px; transition: transform .5s var(--ease-out), background .4s var(--ease-out), color .4s var(--ease-out), border-color .4s var(--ease-out); position: relative; overflow: hidden; }
.btn span { position: relative; z-index: 1; }
.btn-gold { background: var(--gold); color: var(--navy); }
.btn-gold:hover { background: var(--gold-soft); transform: translateY(-2px); }
.btn-dark { background: var(--navy); color: var(--cream); }
.btn-dark:hover { background: var(--steel); transform: translateY(-2px); }
.btn-line-light { border: 1px solid rgba(234,240,248,.45); color: var(--cream); }
.btn-line-light:hover { background: var(--cream); color: var(--navy); border-color: var(--cream); transform: translateY(-2px); }
.btn-block { width: 100%; }

/* 5. REVEAL */
.reveal { opacity: 0; transform: translateY(34px); transition: opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-split] { opacity: 1; transform: none; }

/* 6. SPLASH */
.splash { position: fixed; inset: 0; z-index: 9000; background: var(--navy); display: grid; place-items: center; animation: splashOut .9s var(--ease-out) 2.2s forwards; }
.splash.is-hidden { animation: splashOut .9s var(--ease-out) forwards; }
.splash-mark { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.splash-mark svg { width: 64px; height: 64px; opacity: 0; transform: translateY(12px); animation: fadeUp .8s var(--ease-out) .15s forwards; }
.splash-word { font-size: .8rem; letter-spacing: .55em; color: var(--cream-mute); padding-left: .55em; opacity: 0; animation: fadeIn 1s var(--ease-out) .6s forwards; }
.splash-line { width: 120px; height: 1px; background: rgba(199,165,106,.2); overflow: hidden; }
.splash-line i { display: block; height: 100%; width: 100%; background: var(--gold); transform: scaleX(0); transform-origin: left; animation: lineGrow 1.6s var(--ease-out) .4s forwards; }
@keyframes splashOut { to { opacity: 0; visibility: hidden; } }
@keyframes fadeUp { to { opacity: 1; transform: none; } }
@keyframes fadeIn { to { opacity: 1; } }
@keyframes lineGrow { to { transform: scaleX(1); } }

/* 7. CURSOR */
.cursor { position: fixed; inset: 0; z-index: 8000; pointer-events: none; opacity: 0; transition: opacity .3s; }
.cursor.is-ready { opacity: 1; }
.cursor-ring, .cursor-dot { position: absolute; top: 0; left: 0; border-radius: 50%; transform: translate(-50%, -50%); }
.cursor-ring { width: 34px; height: 34px; border: 1px solid rgba(199,165,106,.6); transition: width .3s var(--ease-out), height .3s var(--ease-out), background .3s; }
.cursor-dot { width: 5px; height: 5px; background: var(--gold); }
.cursor.is-hover .cursor-ring { width: 52px; height: 52px; background: rgba(199,165,106,.08); }

/* 8. NAV */
.nav { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; transition: background .5s var(--ease-out), backdrop-filter .5s; }
.nav-inner { height: var(--nav-h); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-inline: var(--gutter); max-width: 1480px; margin-inline: auto; }
.brand { display: flex; align-items: center; gap: .6rem; color: var(--cream); }
.brand-logo { width: 34px; height: 34px; flex-shrink: 0; }
.brand-text { line-height: 1; }
.brand-name { font-family: var(--serif); font-size: 1.15rem; letter-spacing: .12em; color: var(--cream); display: block; }
.brand-tag { font-size: .52rem; letter-spacing: .3em; color: var(--gold); display: block; margin-top: 2px; }
.nav-links { display: none; gap: 2rem; }
.nav-links a { font-size: .82rem; letter-spacing: .04em; color: var(--cream); opacity: .85; position: relative; transition: opacity .3s; }
.nav-links a::after { content: ""; position: absolute; left: 0; bottom: -5px; width: 0; height: 1px; background: var(--gold); transition: width .4s var(--ease-out); }
.nav-links a:hover { opacity: 1; }
.nav-links a:hover::after { width: 100%; }
.nav-cta { display: none; padding: .65rem 1.3rem; border: 1px solid rgba(234,240,248,.4); color: var(--cream); font-size: .76rem; letter-spacing: .12em; text-transform: uppercase; border-radius: 2px; transition: background .4s var(--ease-out), color .4s; }
.nav-cta:hover { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.nav.is-solid { background: rgba(10,28,52,.85); backdrop-filter: blur(14px) saturate(1.1); border-bottom: 1px solid var(--line-dark); }
.nav-burger { display: flex; flex-direction: column; gap: 5px; width: 34px; height: 34px; align-items: center; justify-content: center; }
.nav-burger span { width: 22px; height: 1.5px; background: var(--cream); transition: transform .4s var(--ease-out), opacity .3s; }
.nav.is-open .nav-burger span:first-child { transform: translateY(3.5px) rotate(45deg); }
.nav.is-open .nav-burger span:last-child { transform: translateY(-3px) rotate(-45deg); }
.nav-mobile { position: fixed; inset: 0; top: 0; background: var(--navy); display: flex; flex-direction: column; justify-content: center; gap: 1.4rem; padding: 2rem var(--gutter); transform: translateY(-100%); transition: transform .6s var(--ease-out), visibility .6s; z-index: -1; visibility: hidden; }
.nav.is-open .nav-mobile { transform: translateY(0); visibility: visible; }
.nav-mobile a { font-family: var(--serif); font-size: 2rem; color: var(--cream); }
.nav-mobile a:hover { color: var(--gold); }
.nav-mobile-cta { font-family: var(--sans) !important; font-size: .9rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--gold) !important; margin-top: 1rem; }

/* 9. HERO + escena Costa Rica (hora azul) */
.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; background: var(--navy); }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero-scene { position: absolute; inset: 0; z-index: 0; }
.hero-sky { position: absolute; inset: 0; background: radial-gradient(120% 70% at 72% 90%, rgba(201,168,117,.55) 0%, rgba(201,168,117,0) 40%), linear-gradient(180deg, #061224 0%, #0E2747 30%, #1E456F 56%, #4a5a72 76%, #c9a875 100%); }
.hero-sun { position: absolute; left: 68%; bottom: 12%; width: 210px; height: 210px; border-radius: 50%; background: radial-gradient(circle, rgba(255,244,224,.9) 0%, rgba(231,201,150,.5) 40%, rgba(231,201,150,0) 70%); filter: blur(2px); transform: translateY(var(--sun-y)); animation: sunRise 6s var(--ease-out) forwards, sunGlow 7s ease-in-out 6s infinite alternate; }
@keyframes sunRise { from { --sun-y: 90px; opacity: .2; } to { --sun-y: 0px; opacity: 1; } }
@keyframes sunGlow { to { filter: blur(6px); opacity: .8; } }
.hero-range { position: absolute; left: 0; width: 100%; }
.hero-range--far  { bottom: 32%; opacity: .6; }
.hero-range--far path  { fill: #2a3f5c; }
.hero-range--mid  { bottom: 18%; opacity: .85; }
.hero-range--mid path  { fill: #16314f; }
.hero-range--near { bottom: 8%; }
.hero-range--near path { fill: #0a1a30; }
.hero-foreground { position: absolute; left: 0; bottom: 0; width: 100%; height: 38%; }
.hero-foreground svg { width: 100%; height: 100%; }
.hero-mist { position: absolute; left: -10%; right: -10%; bottom: 20%; height: 24%; background: linear-gradient(180deg, rgba(220,230,245,0) 0%, rgba(220,230,245,.2) 60%, rgba(220,230,245,0) 100%); filter: blur(14px); animation: mistDrift 16s ease-in-out infinite alternate; }
@keyframes mistDrift { from { transform: translateX(-3%); } to { transform: translateX(4%); } }
.hero-grain { position: absolute; inset: 0; opacity: .45; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"); }
.hero-tint { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,18,36,.4) 0%, rgba(6,18,36,0) 30%, rgba(6,18,36,.2) 60%, rgba(6,18,36,.82) 100%); }
.hero-inner { position: relative; z-index: 2; padding-bottom: clamp(4rem, 12vh, 9rem); max-width: var(--maxw); }
.hero-title { font-family: var(--serif); color: var(--cream); font-size: clamp(2.6rem, 7.5vw, 6.2rem); line-height: 1.02; letter-spacing: -0.02em; margin-bottom: 1.6rem; }
.hero-title em { font-style: italic; color: var(--gold); }
.hero-sub { color: var(--cream-mute); font-size: clamp(1.02rem, 1.6vw, 1.3rem); max-width: 40ch; line-height: 1.7; margin-bottom: 2.4rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.hero-scroll { position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%); z-index: 2; display: flex; flex-direction: column; align-items: center; gap: .6rem; color: var(--cream-mute); font-size: .68rem; letter-spacing: .25em; text-transform: uppercase; }
.hero-scroll i { width: 1px; height: 40px; background: linear-gradient(var(--gold), transparent); animation: scrollPulse 2.2s ease-in-out infinite; }
@keyframes scrollPulse { 0%,100% { transform: scaleY(.4); opacity: .4; transform-origin: top; } 50% { transform: scaleY(1); opacity: 1; transform-origin: top; } }

/* 10. SECTION HEADS */
.section-head { text-align: center; max-width: 660px; margin: 0 auto clamp(2.5rem, 5vw, 4.5rem); }
.section-head .kicker { justify-content: center; }
.section-head--left { text-align: left; margin-inline: 0; }
.section-head--left .kicker { justify-content: flex-start; }
.section-sub { color: var(--ink-mute); margin-top: 1rem; font-size: 1.02rem; }

/* 11. EXPERIENCE */
.experience { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.exp-grid { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.exp-points { margin-top: 2.2rem; display: grid; gap: 1.1rem; }
.exp-points li { display: flex; gap: 1rem; align-items: baseline; font-size: 1rem; color: var(--ink); border-top: 1px solid var(--line-light); padding-top: 1.1rem; }
.exp-points li span { font-family: var(--serif); color: var(--gold-deep); font-size: .9rem; min-width: 2ch; }
.exp-media { position: relative; }
.exp-scene { aspect-ratio: 4/5; border-radius: 3px; position: relative; overflow: hidden; display: grid; place-items: center; box-shadow: 0 40px 80px -40px rgba(10,28,52,.55); }
.exp-media figcaption { margin-top: 1rem; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); }
.play { width: 76px; height: 76px; border-radius: 50%; border: 1px solid rgba(244,246,250,.55); background: rgba(10,28,52,.22); backdrop-filter: blur(4px); display: grid; place-items: center; transition: transform .5s var(--ease-out), background .4s; }
.play i { width: 0; height: 0; border-left: 16px solid var(--cream); border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-left: 4px; }
.exp-media:hover .play, .tst:hover .play { transform: scale(1.1); background: rgba(199,165,106,.4); }

/* 12. METRICS */
.metrics { background: var(--navy); color: var(--cream); padding: clamp(4rem, 9vw, 7rem) 0; }
.metrics-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem 1rem; text-align: center; }
.metric-num { font-family: var(--serif); font-size: clamp(2.4rem, 6vw, 3.8rem); color: var(--gold); display: block; line-height: 1; }
.metric-label { font-size: .82rem; letter-spacing: .06em; color: var(--cream-mute); margin-top: .7rem; display: block; }

/* 13. PROPERTIES */
.properties { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.prop-stage { display: grid; gap: clamp(1.2rem, 2.5vw, 2rem); grid-template-columns: 1fr; }
.prop { border-radius: 3px; overflow: hidden; background: var(--navy); }
.prop-link { display: block; position: relative; height: 100%; }
.prop-scene { aspect-ratio: 16/11; position: relative; overflow: hidden; transition: transform 1.2s var(--ease-out); }
.prop:hover .prop-scene { transform: scale(1.05); }
.prop-scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,28,52,0) 35%, rgba(7,18,36,.86) 100%); }
.prop-tag { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: var(--gold); color: var(--navy); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; padding: .35rem .7rem; border-radius: 2px; }
.prop-body { position: absolute; bottom: 0; left: 0; right: 0; padding: clamp(1.4rem, 3vw, 2.2rem); color: var(--cream); z-index: 1; }
.prop-type { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.prop-name { font-family: var(--serif); font-size: clamp(1.5rem, 3.2vw, 2.3rem); margin: .35rem 0 .1rem; }
.prop-zone { color: var(--cream-mute); font-size: .92rem; }
.prop-meta { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid rgba(234,240,248,.2); font-size: .86rem; color: var(--cream); align-items: center; }
.prop-price { margin-left: auto; font-family: var(--serif); font-size: 1.15rem; color: var(--gold-soft); }
.prop--feature .prop-scene { aspect-ratio: 16/9; }
.prop-all { text-align: center; margin-top: clamp(2rem, 4vw, 3rem); }

/* 14. INVENTORY */
.inventory { padding: clamp(4rem, 9vw, 7rem) 0; background: var(--navy-2); color: var(--cream); }
.inventory .display { color: var(--cream); }
.inventory .display em { color: var(--gold); }
.cat-list { margin-top: 2.5rem; border-top: 1px solid var(--line-dark); }
.cat a { display: flex; align-items: center; gap: 1.5rem; padding: clamp(1.3rem, 3vw, 2.1rem) 0; border-bottom: 1px solid var(--line-dark); transition: padding-left .5s var(--ease-out), color .4s; }
.cat a:hover { padding-left: 1.2rem; }
.cat-name { font-family: var(--serif); font-size: clamp(1.5rem, 4vw, 2.4rem); min-width: 9ch; transition: color .4s; }
.cat a:hover .cat-name { color: var(--gold); }
.cat-note { color: var(--cream-mute); font-size: .92rem; flex: 1; }
.cat-arrow { width: 34px; height: 34px; border: 1px solid var(--line-dark); border-radius: 50%; position: relative; flex-shrink: 0; transition: background .4s, border-color .4s; }
.cat-arrow::before { content: ""; position: absolute; width: 11px; height: 1px; background: var(--cream); top: 50%; left: 50%; transform: translate(-50%,-50%); }
.cat-arrow::after { content: ""; position: absolute; width: 6px; height: 6px; border-top: 1px solid var(--cream); border-right: 1px solid var(--cream); top: 50%; left: 56%; transform: translate(-50%,-50%) rotate(45deg); }
.cat a:hover .cat-arrow { background: var(--gold); border-color: var(--gold); }

/* 15. ZONES */
.zones { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.zones-grid { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
.zone-detail { margin-top: 2.4rem; padding: 1.6rem 1.8rem; background: var(--white); border: 1px solid var(--line-light); border-radius: 3px; box-shadow: 0 20px 50px -35px rgba(10,28,52,.4); }
.zone-detail h3 { font-family: var(--serif); font-size: 1.5rem; color: var(--ink); margin-bottom: .4rem; }
.zone-detail p { color: var(--ink-mute); font-size: .95rem; }
.zones-map { position: relative; aspect-ratio: 1/.9; }
.zones-svg { width: 100%; height: 100%; }
.zone-pins { position: absolute; inset: 0; }
.zone-pins li { position: absolute; transform: translate(-50%,-50%); }
.zone-pin { display: flex; align-items: center; gap: .5rem; font-size: .76rem; color: var(--ink); cursor: pointer; transition: color .3s; }
.zone-pin .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--gold); transition: transform .3s var(--ease-out); }
.zone-pin:hover .dot, .zone-pin.is-active .dot { transform: scale(1.5); animation: pinPulse 1.8s ease-out infinite; }
.zone-pin.is-active { color: var(--steel); font-weight: 600; }
@keyframes pinPulse { 0% { box-shadow: 0 0 0 0 rgba(199,165,106,.45);} 100% { box-shadow: 0 0 0 14px rgba(199,165,106,0);} }

/* 16. ADVISORS */
.advisors { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--navy); color: var(--cream); }
.advisors .display { color: var(--cream); }
.advisors .display em { color: var(--gold); }
.advisor-grid { display: grid; grid-template-columns: 1fr; gap: 1.6rem; }
.advisor { background: var(--navy-3); border: 1px solid var(--line-dark); border-radius: 3px; padding: 1.6rem; transition: transform .5s var(--ease-out), border-color .4s; }
.advisor:hover { border-color: rgba(199,165,106,.45); }
.advisor-photo { aspect-ratio: 4/5; border-radius: 2px; margin-bottom: 1.3rem; display: grid; place-items: center; overflow: hidden; }
.advisor-ini { font-family: var(--serif); font-size: 2.6rem; color: rgba(234,240,248,.6); }
.advisor h3 { font-family: var(--serif); font-size: 1.35rem; color: var(--cream); }
.advisor-role { color: var(--gold); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; margin: .3rem 0 1rem; }
.advisor-meta { display: grid; gap: .5rem; border-top: 1px solid var(--line-dark); padding-top: 1rem; }
.advisor-meta li { font-size: .86rem; color: var(--cream-mute); }

/* 17. TESTIMONIALS */
.testimonials { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.tst-row { display: grid; grid-template-columns: 1fr; gap: 1.6rem; }
.tst { background: var(--white); border: 1px solid var(--line-light); border-radius: 3px; overflow: hidden; transition: transform .5s var(--ease-out), box-shadow .5s; }
.tst:hover { box-shadow: 0 30px 70px -45px rgba(10,28,52,.4); }
.tst-media { aspect-ratio: 16/10; position: relative; display: grid; place-items: center; }
.tst blockquote { font-family: var(--serif); font-style: italic; font-size: 1.15rem; line-height: 1.5; color: var(--ink); padding: 1.6rem 1.6rem .4rem; }
.tst-name { padding: 0 1.6rem; font-weight: 600; font-size: .95rem; margin-top: .8rem; }
.tst-result { padding: 0 1.6rem 1.6rem; color: var(--steel); font-size: .82rem; letter-spacing: .04em; }

/* 18. LEAD */
.lead { padding: clamp(5rem, 12vw, 9rem) 0; background: linear-gradient(150deg, var(--navy-2) 0%, var(--steel) 100%); color: var(--cream); position: relative; overflow: hidden; }
.lead::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 60% at 15% 10%, rgba(199,165,106,.2), transparent 60%); }
.lead-grid { position: relative; display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center; }
.lead-form { background: rgba(6,18,36,.34); border: 1px solid rgba(199,165,106,.24); border-radius: 4px; padding: clamp(1.6rem, 3vw, 2.4rem); backdrop-filter: blur(6px); }
.field { position: relative; margin-bottom: 1.1rem; }
.field input, .field textarea { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(234,240,248,.3); padding: 1.1rem 0 .5rem; color: var(--cream); font-size: 1rem; transition: border-color .4s; }
.field textarea { resize: vertical; }
.field label { position: absolute; left: 0; top: 1.1rem; color: var(--cream-mute); font-size: 1rem; pointer-events: none; transition: transform .3s var(--ease-out), color .3s, font-size .3s; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--gold); }
.field input:focus + label, .field textarea:focus + label,
.field input:not(:placeholder-shown) + label, .field textarea:not(:placeholder-shown) + label { transform: translateY(-1.5rem); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }
.lead-fine { font-size: .76rem; color: var(--cream-mute); margin-top: 1rem; text-align: center; }
.btn-check { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 30; stroke-dashoffset: 30; display: none; }
.btn.is-sent { background: var(--steel); color: var(--cream); }
.btn.is-sent .btn-label { display: none; }
.btn.is-sent .btn-check { display: block; animation: drawCheck .6s var(--ease-out) forwards; }
@keyframes drawCheck { to { stroke-dashoffset: 0; } }

/* 19. CONTACT */
.contact { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.contact-grid { display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: start; }
.contact-info { margin-top: 2.4rem; border-top: 1px solid var(--line-light); }
.contact-info li { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line-light); align-items: baseline; }
.contact-info li span { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-mute); }
.contact-info li a, .contact-info li p { font-size: 1rem; color: var(--ink); }
.contact-info li a:hover { color: var(--steel); }
.contact-form { background: var(--white); border: 1px solid var(--line-light); border-radius: 4px; padding: clamp(1.6rem, 3vw, 2.4rem); box-shadow: 0 30px 70px -50px rgba(10,28,52,.4); }
.contact-form .field input, .contact-form .field textarea { color: var(--ink); border-bottom-color: var(--line-light); }
.contact-form .field label { color: var(--ink-mute); }
.contact-form .field input:focus + label, .contact-form .field textarea:focus + label,
.contact-form .field input:not(:placeholder-shown) + label, .contact-form .field textarea:not(:placeholder-shown) + label { color: var(--steel); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }

/* 20. FOOTER */
.footer { background: var(--navy-2); color: var(--cream); padding: clamp(3.5rem, 7vw, 5.5rem) 0 2.5rem; }
.footer-inner { display: grid; gap: 2rem; }
.footer-brand { display: flex; align-items: center; gap: 1rem; }
.footer-brand svg { width: 50px; height: 50px; }
.footer-tag { color: var(--cream-mute); max-width: 32ch; font-size: .95rem; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 1.4rem; }
.footer-nav a { font-size: .85rem; color: var(--cream-mute); transition: color .3s; }
.footer-nav a:hover { color: var(--gold); }
.footer-legal { color: rgba(159,177,204,.55); font-size: .78rem; border-top: 1px solid var(--line-dark); padding-top: 1.8rem; }

/* 21. WHATSAPP */
.wa { position: fixed; right: clamp(16px, 3vw, 28px); bottom: clamp(16px, 3vw, 28px); z-index: 2000; display: flex; flex-direction: column; align-items: flex-end; gap: .8rem; }
.wa-btn { width: 58px; height: 58px; border-radius: 50%; background: var(--steel); box-shadow: 0 14px 34px -12px rgba(6,18,36,.7); display: grid; place-items: center; transition: transform .4s var(--ease-out), background .4s; }
.wa-btn svg { width: 30px; height: 30px; fill: var(--gold); }
.wa-btn:hover { transform: scale(1.08); background: var(--gold); }
.wa-btn:hover svg { fill: var(--navy); }
.wa-panel { background: var(--white); border: 1px solid var(--line-light); border-radius: 12px; padding: 1rem; width: min(82vw, 290px); box-shadow: 0 24px 60px -30px rgba(10,28,52,.5); transform-origin: bottom right; animation: waIn .4s var(--ease-out); }
.wa-title { font-size: .82rem; color: var(--ink-mute); margin-bottom: .8rem; padding: 0 .3rem; }
.wa-opt { display: block; padding: .7rem .8rem; border-radius: 8px; font-size: .9rem; color: var(--ink); background: var(--bone); margin-bottom: .5rem; transition: background .3s, color .3s; }
.wa-opt:hover { background: var(--steel); color: var(--cream); }
@keyframes waIn { from { opacity: 0; transform: scale(.9) translateY(8px); } }

/* 22. SCENES (gradientes en familia azul marino) */
.scene-rohrmoser { background: linear-gradient(155deg,#0e2747 0%,#1e456f 45%,#5a6f86 75%,#c7a56a 100%); }
.scene-curridabat{ background: linear-gradient(155deg,#0a1c34 0%,#16314f 45%,#48607e 74%,#b89a5e 100%); }
.scene-paseocolon{ background: linear-gradient(155deg,#112e50 0%,#23507c 45%,#6b7d92 74%,#c7a56a 100%); }
.scene-lindora   { background: linear-gradient(155deg,#0e2747 0%,#2a4a3c 45%,#6f7a52 74%,#c7a56a 100%); }
.scene-moravia   { background: linear-gradient(155deg,#0a1c34 0%,#1e456f 45%,#46566e 72%,#9c7c40 100%); }
.scene-apto      { background: linear-gradient(155deg,#061224 0%,#16314f 45%,#3a4a60 70%,#b08a4a 100%); }
.scene-ocean     { background: linear-gradient(155deg,#061a2e 0%,#10405a 40%,#2e6b78 68%,#cdb07a 100%); }
.scene-portrait  { background: linear-gradient(150deg,#0e2747 0%,#1e456f 55%,#5a6f86 100%); }
.scene-tst-1     { background: linear-gradient(155deg,#0e2747 0%,#2e5b89 55%,#9c7c40 100%); }
.scene-tst-2     { background: linear-gradient(155deg,#0a1c34 0%,#1e456f 55%,#c7a56a 100%); }
.scene-tst-3     { background: linear-gradient(155deg,#112e50 0%,#2e5b89 55%,#b08a4a 100%); }
.prop-scene::before, .exp-scene::before, .tst-media::before { content: ""; position: absolute; inset: 0; opacity: .45; mix-blend-mode: soft-light; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }

/* 23. RESPONSIVE */
@media (min-width: 720px) {
  .metrics-grid { grid-template-columns: repeat(4, 1fr); }
  .prop-stage { grid-template-columns: 1fr 1fr; }
  .prop--feature { grid-column: 1 / -1; }
  .advisor-grid { grid-template-columns: repeat(3, 1fr); }
  .tst-row { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 960px) {
  .nav-links { display: flex; }
  .nav-cta { display: inline-flex; }
  .nav-burger { display: none; }
  .exp-grid { grid-template-columns: 1.05fr .95fr; }
  .zones-grid { grid-template-columns: 1fr 1fr; }
  .lead-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .footer-inner { grid-template-columns: 1.4fr 1fr; align-items: center; }
  .footer-legal { grid-column: 1 / -1; }
}
@media (min-width: 1280px) {
  .prop-stage { grid-template-columns: repeat(3, 1fr); }
  .prop--feature { grid-column: 1 / -1; }
}

/* 24. REDUCED MOTION */
@media (prefers-reduced-motion: reduce) {
  .hero-mist, .hero-sun { animation: none; }
  .hero-scroll i { animation: none; }
  .zone-pin .dot { animation: none; }
}


/* ============================================================
   24. NUEVO LOGO (lockup real)
   ============================================================ */
.brand-logo-img { height: 50px; width: auto; display: block; }
.splash-logo-img { width: 132px; height: auto; opacity: 0; transform: translateY(12px); animation: fadeUp .9s var(--ease-out) .15s forwards; }
.footer-logo-img { width: 188px; height: auto; margin-bottom: 1rem; }
@media (max-width: 520px){ .brand-logo-img { height: 38px; } }

/* ============================================================
   25. EXPLORE ANTES DE VISITAR
   ============================================================ */
.explore { padding: clamp(5rem, 12vw, 9rem) 0; background: linear-gradient(165deg, #061224 0%, var(--navy) 45%, var(--navy-2) 100%); color: var(--cream); position: relative; overflow: hidden; }
.explore::before { content:""; position:absolute; inset:0; background: radial-gradient(80% 60% at 80% 0%, rgba(199,165,106,.16) 0%, rgba(199,165,106,0) 55%); pointer-events:none; }
.explore .section-head { position: relative; }
.exp-cards { display: grid; gap: clamp(1rem, 2.5vw, 1.6rem); grid-template-columns: 1fr; position: relative; }
@media (min-width: 860px){ .exp-cards { grid-template-columns: repeat(3, 1fr); } }
.exp-card { position: relative; border: 1px solid var(--line-dark); border-radius: 4px; overflow: hidden; background: rgba(255,255,255,.02); transition: transform .6s var(--ease-out), border-color .5s, box-shadow .6s; min-height: 340px; display: flex; flex-direction: column; justify-content: flex-end; }
.exp-card:hover { transform: translateY(-6px); border-color: rgba(199,165,106,.45); box-shadow: 0 40px 80px -50px rgba(0,0,0,.8); }
.exp-card-scene { position: absolute; inset: 0; z-index: 0; }
.exp-card-scene::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(6,18,36,.15) 0%, rgba(6,18,36,.55) 55%, rgba(6,18,36,.94) 100%); }
.scene-tour { background: linear-gradient(150deg,#061a2e 0%,#10405a 42%,#2e6b78 70%,#cdb07a 100%); }
.scene-calc { background: linear-gradient(150deg,#0a1c34 0%,#14365F 45%,#2E5B89 72%,#9c7c40 100%); }
.scene-advisory { background: linear-gradient(150deg,#0e2747 0%,#1e456f 48%,#5a6f86 76%,#c7a56a 100%); }
.exp-card-scene::before { content:""; position:absolute; inset:0; opacity:.4; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }
.exp-card-body { position: relative; z-index: 1; padding: 1.8rem 1.6rem; }
.exp-badge { display: inline-flex; align-items: center; gap: .5rem; font-size: .62rem; letter-spacing: .22em; text-transform: uppercase; color: var(--navy); background: var(--gold); padding: .35rem .7rem; border-radius: 2px; margin-bottom: 1rem; font-weight: 600; }
.exp-card h3 { font-family: var(--serif); font-size: 1.5rem; color: var(--white); margin-bottom: .5rem; }
.exp-card p { font-size: .92rem; color: var(--cream-mute); line-height: 1.6; margin-bottom: 1.2rem; }
.exp-card-link { display: inline-flex; align-items: center; gap: .6rem; font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); font-weight: 500; }
.exp-card-link i { width: 26px; height: 1px; background: var(--gold); transition: width .4s var(--ease-out); display:inline-block; }
.exp-card:hover .exp-card-link i { width: 40px; }
.exp-play { position: absolute; top: 1.6rem; right: 1.6rem; z-index: 2; width: 60px; height: 60px; border-radius: 50%; border: 1px solid rgba(244,246,250,.5); background: rgba(10,28,52,.3); backdrop-filter: blur(4px); display: grid; place-items: center; transition: transform .5s var(--ease-out), background .4s; }
.exp-card:hover .exp-play { transform: scale(1.08); background: rgba(199,165,106,.4); }
.exp-play i { width:0;height:0;border-left:13px solid var(--cream);border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:3px; }
.exp-360 { position:absolute; top:1.6rem; left:1.6rem; z-index:2; font-size:.62rem; letter-spacing:.2em; color:var(--white); border:1px solid rgba(244,246,250,.4); padding:.3rem .55rem; border-radius:40px; }

/* ============================================================
   26. CALCULADORA DE INVERSIÓN
   ============================================================ */
.calc { padding: clamp(5rem, 12vw, 9rem) 0; background: var(--bone); }
.calc-grid { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1000px){ .calc-grid { grid-template-columns: 1.05fr .95fr; } }
.calc-panel { background: var(--white); border: 1px solid var(--line-light); border-radius: 6px; padding: clamp(1.6rem, 3vw, 2.4rem); box-shadow: 0 40px 90px -60px rgba(14,39,71,.4); }
.calc-panel h3 { font-family: var(--serif); font-size: 1.35rem; color: var(--ink); margin-bottom: .3rem; }
.calc-panel .calc-note { font-size: .82rem; color: var(--ink-mute); margin-bottom: 1.8rem; }
.calc-field { margin-bottom: 1.35rem; }
.calc-field-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .5rem; }
.calc-field label { font-size: .78rem; letter-spacing: .04em; color: var(--ink); font-weight: 500; }
.calc-val { font-family: var(--sans); font-size: .92rem; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }
.calc-input-wrap { position: relative; display:flex; align-items:center; }
.calc-input-wrap .pre { position:absolute; left:.85rem; font-size:.9rem; color:var(--ink-mute); pointer-events:none; }
.calc-input-wrap input[type="number"] { width: 100%; padding: .75rem .9rem .75rem 1.6rem; border: 1px solid var(--line-light); border-radius: 3px; font: inherit; font-size: .95rem; color: var(--ink); background: var(--bone); transition: border-color .3s, background .3s; font-variant-numeric: tabular-nums; }
.calc-input-wrap input.no-pre { padding-left: .9rem; }
.calc-input-wrap input:focus { outline: none; border-color: var(--gold); background: #fff; }
.calc-input-wrap .suf { position:absolute; right:.85rem; font-size:.82rem; color:var(--ink-mute); pointer-events:none; }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 3px; background: var(--bone-2); border-radius: 3px; margin-top: .85rem; cursor: pointer; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--navy); border: 3px solid var(--gold); cursor: pointer; transition: transform .25s var(--ease-out); }
input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.18); }
input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--navy); border: 3px solid var(--gold); cursor: pointer; }
.calc-derived { display:flex; justify-content:space-between; padding:.9rem 0 0; border-top:1px solid var(--line-light); margin-top:.4rem; font-size:.84rem; color:var(--ink-mute); }
.calc-derived strong { color: var(--navy); font-variant-numeric: tabular-nums; }

/* Results */
.calc-results { background: linear-gradient(165deg, var(--navy) 0%, var(--navy-2) 100%); color: var(--cream); border-radius: 6px; padding: clamp(1.8rem, 3vw, 2.6rem); position: relative; overflow: hidden; box-shadow: 0 40px 90px -50px rgba(10,28,52,.7); }
.calc-results::before { content:""; position:absolute; top:-30%; right:-20%; width:60%; height:80%; background: radial-gradient(circle, rgba(199,165,106,.18) 0%, rgba(199,165,106,0) 70%); }
.calc-results h3 { font-family: var(--serif); font-size: 1.35rem; color: var(--white); margin-bottom: 1.6rem; position: relative; }
.calc-hero-metric { position: relative; display: flex; align-items: center; gap: 1.6rem; padding-bottom: 1.6rem; margin-bottom: 1.6rem; border-bottom: 1px solid var(--line-dark); }
.calc-donut { flex-shrink: 0; width: 116px; height: 116px; position: relative; }
.calc-donut svg { transform: rotate(-90deg); }
.calc-donut-label { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; }
.calc-donut-label b { font-family: var(--serif); font-size: 1.5rem; color: var(--gold); display: block; line-height: 1; font-variant-numeric: tabular-nums; }
.calc-donut-label span { font-size: .58rem; letter-spacing: .2em; color: var(--cream-mute); text-transform: uppercase; }
.calc-hero-copy .lbl { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: var(--cream-mute); margin-bottom: .35rem; }
.calc-hero-copy .big { font-family: var(--serif); font-size: clamp(1.7rem, 4vw, 2.3rem); color: var(--white); line-height: 1; font-variant-numeric: tabular-nums; }
.calc-hero-copy .sub { font-size: .82rem; color: var(--cream-mute); margin-top: .5rem; }
.calc-out-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line-dark); border: 1px solid var(--line-dark); border-radius: 4px; overflow: hidden; position: relative; }
.calc-out { background: var(--navy); padding: 1.05rem 1.1rem; }
.calc-out .k { font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--cream-mute); margin-bottom: .35rem; }
.calc-out .v { font-family: var(--serif); font-size: 1.28rem; color: var(--white); font-variant-numeric: tabular-nums; line-height: 1; }
.calc-out .v.pos { color: #7FC8A0; }
.calc-out .v.neg { color: #E08A7A; }
.calc-cta { margin-top: 1.8rem; position: relative; display: grid; gap: .7rem; }
@media (min-width: 480px){ .calc-cta { grid-template-columns: 1fr 1fr; } }
.calc-cta .btn { width: 100%; }
.calc-disclaimer { font-size: .68rem; color: var(--cream-mute); margin-top: 1.1rem; line-height: 1.5; position: relative; opacity: .8; }

/* ============================================================
   27. PÁGINA DE PROPIEDAD (detalle)
   ============================================================ */
.pd-main { padding-top: var(--nav-h); }
.pd-hero { position: relative; }
.pd-gallery { display: grid; gap: 6px; grid-template-columns: 1fr; }
@media (min-width: 760px){ .pd-gallery { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; } .pd-gallery .g-main { grid-row: 1 / 3; } }
.g-cell { position: relative; overflow: hidden; min-height: 200px; }
.g-main { min-height: 380px; }
.g-cell::before { content:""; position:absolute; inset:0; opacity:.4; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }
.g-cell::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,28,52,0) 55%, rgba(7,18,36,.5) 100%); }
.g-360 { position:absolute; top:1rem; left:1rem; z-index:2; font-size:.62rem; letter-spacing:.2em; color:#fff; border:1px solid rgba(255,255,255,.45); padding:.3rem .55rem; border-radius:40px; }
.g-play { position:absolute; inset:0; z-index:2; display:grid; place-items:center; }
.g-play i { width:78px;height:78px;border-radius:50%;border:1px solid rgba(244,246,250,.6);background:rgba(10,28,52,.25);backdrop-filter:blur(4px);display:grid;place-items:center;transition:transform .5s var(--ease-out),background .4s; }
.g-play i::after { content:"";width:0;height:0;border-left:18px solid #fff;border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px; }
.g-play:hover i { transform:scale(1.08); background:rgba(199,165,106,.4); }
.g-more { position:absolute; right:1rem; bottom:1rem; z-index:2; font-size:.72rem; letter-spacing:.1em; color:#fff; background:rgba(10,28,52,.55); border:1px solid rgba(255,255,255,.3); padding:.45rem .8rem; border-radius:40px; backdrop-filter:blur(4px); }

.pd-wrap { padding: clamp(2.5rem,6vw,4.5rem) 0; }
.pd-grid { display:grid; gap: clamp(2rem,5vw,4rem); grid-template-columns:1fr; }
@media (min-width:1000px){ .pd-grid { grid-template-columns: 1.6fr .9fr; align-items:start; } }
.pd-crumb { font-size:.74rem; letter-spacing:.06em; color:var(--ink-mute); margin-bottom:1.4rem; }
.pd-crumb a:hover { color:var(--gold); }
.pd-tag { display:inline-block; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--navy); background:var(--gold); padding:.35rem .7rem; border-radius:2px; font-weight:600; margin-bottom:1rem; }
.pd-title { font-family:var(--serif); font-size:clamp(1.9rem,4.5vw,3rem); color:var(--ink); line-height:1.05; margin-bottom:.5rem; }
.pd-zone { color:var(--ink-mute); font-size:1.02rem; margin-bottom:1.6rem; }
.pd-specs { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-light); border:1px solid var(--line-light); border-radius:5px; overflow:hidden; margin-bottom:2rem; }
@media (min-width:560px){ .pd-specs { grid-template-columns:repeat(4,1fr); } }
.pd-spec { background:var(--white); padding:1.1rem 1rem; }
.pd-spec .k { font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:.35rem; }
.pd-spec .v { font-family:var(--serif); font-size:1.2rem; color:var(--ink); line-height:1; }
.pd-body h2 { font-family:var(--serif); font-size:1.4rem; color:var(--ink); margin:2rem 0 .8rem; }
.pd-body p { color:var(--ink-mute); margin-bottom:1rem; line-height:1.8; }
.pd-feat { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.2rem 0 0; }
.pd-feat span { font-size:.8rem; color:var(--ink); border:1px solid var(--line-light); border-radius:40px; padding:.45rem .9rem; }
.pd-map { margin-top:2.2rem; border-radius:6px; overflow:hidden; border:1px solid var(--line-light); }
.pd-map iframe { width:100%; height:340px; border:0; display:block; filter:grayscale(.2) contrast(1.02); }

.pd-aside { position:sticky; top:calc(var(--nav-h) + 18px); }
.pd-card { background:var(--white); border:1px solid var(--line-light); border-radius:6px; padding:1.8rem; box-shadow:0 40px 90px -60px rgba(14,39,71,.4); }
.pd-price-k { font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); }
.pd-price { font-family:var(--serif); font-size:2.1rem; color:var(--navy); line-height:1; margin:.3rem 0 1.4rem; }
.pd-card .btn { width:100%; margin-bottom:.7rem; }
.pd-card-info { margin-top:1.2rem; padding-top:1.2rem; border-top:1px solid var(--line-light); font-size:.84rem; color:var(--ink-mute); }
.pd-card-info li { margin-bottom:.5rem; display:flex; justify-content:space-between; gap:1rem; }
.pd-card-info li span:last-child { color:var(--ink); text-align:right; }
.pd-related { padding: clamp(3rem,7vw,6rem) 0; background:var(--bone); border-top:1px solid var(--line-light); }

/* ============================================================
   PÁGINA DE PROPIEDAD v2 (orden: título, video, fotos, descripción,
   mapa, contacto, whatsapp, logo grande)
   ============================================================ */
/* 1 · TÍTULO / HERO */
.pv-hero { position: relative; min-height: 78svh; display: flex; align-items: flex-end; overflow: hidden; background: var(--navy); padding-bottom: clamp(2.5rem,6vw,5rem); }
.pv-hero-bg { position: absolute; inset: 0; z-index: 0; }
.pv-hero-bg::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(6,18,36,.55) 0%, rgba(6,18,36,.2) 35%, rgba(6,18,36,.9) 100%); }
.pv-hero-bg::before { content:""; position:absolute; inset:0; z-index:1; opacity:.4; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }
.pv-hero-inner { position: relative; z-index: 2; }
.pv-crumb { font-size:.74rem; letter-spacing:.08em; color:var(--cream-mute); margin-bottom:1.2rem; }
.pv-crumb a:hover { color:var(--gold); }
.pv-tag { display:inline-block; font-size:.64rem; letter-spacing:.22em; text-transform:uppercase; color:var(--navy); background:var(--gold); padding:.4rem .8rem; border-radius:2px; font-weight:600; margin-bottom:1.1rem; }
.pv-title { font-family:var(--serif); font-size:clamp(2.1rem,5.5vw,4rem); color:var(--white); line-height:1.02; letter-spacing:-.015em; margin-bottom:.6rem; }
.pv-sub { color:var(--cream); font-size:1.05rem; opacity:.85; margin-bottom:1.8rem; }
.pv-pricerow { display:flex; flex-wrap:wrap; align-items:baseline; gap:1.4rem; }
.pv-price-list { font-size:1.05rem; color:var(--cream-mute); text-decoration:line-through; }
.pv-price-now { font-family:var(--serif); font-size:clamp(1.8rem,4vw,2.6rem); color:var(--gold); line-height:1; }
.pv-price-note { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cream-mute); }

/* section frame */
.pv-sec { padding: clamp(4rem,9vw,7rem) 0; }
.pv-sec--dark { background: var(--navy); color: var(--cream); }
.pv-sec--bone { background: var(--bone); }
.pv-sec--white { background: var(--white); }
.pv-eyebrow { font-size:.7rem; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; display:flex; align-items:center; gap:.7rem; }
.pv-eyebrow::before { content:""; width:30px; height:1px; background:var(--gold); }
.pv-h2 { font-family:var(--serif); font-size:clamp(1.7rem,3.6vw,2.5rem); line-height:1.06; margin-bottom:1.6rem; }
.pv-sec--dark .pv-h2 { color:var(--white); }

/* 2 · VIDEO */
.pv-video-frame { position:relative; border-radius:6px; overflow:hidden; aspect-ratio:16/9; background:linear-gradient(155deg,#0e2747 0%,#2a4a3c 45%,#6f7a52 74%,#c7a56a 100%); box-shadow:0 50px 110px -60px rgba(0,0,0,.8); }
.pv-video-frame video, .pv-video-frame iframe { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border:0; }
.pv-video-frame::after { content:""; position:absolute; inset:0; background:radial-gradient(60% 60% at 50% 50%, rgba(6,18,36,.1), rgba(6,18,36,.6)); pointer-events:none; }
.pv-video-cta { position:absolute; inset:0; z-index:2; display:grid; place-items:center; }
.pv-video-cta i { width:92px;height:92px;border-radius:50%;border:1px solid rgba(244,246,250,.6);background:rgba(10,28,52,.28);backdrop-filter:blur(5px);display:grid;place-items:center;transition:transform .5s var(--ease-out),background .4s; }
.pv-video-cta:hover i { transform:scale(1.08); background:rgba(199,165,106,.42); }
.pv-video-cta i::after { content:"";width:0;height:0;border-left:22px solid #fff;border-top:14px solid transparent;border-bottom:14px solid transparent;margin-left:6px; }
.pv-video-note { position:absolute; left:1.2rem; bottom:1.1rem; z-index:2; font-size:.7rem; letter-spacing:.12em; color:#fff; background:rgba(10,28,52,.5); border:1px solid rgba(255,255,255,.28); padding:.4rem .8rem; border-radius:40px; backdrop-filter:blur(4px); }

/* 3 · FOTOS */
.pv-gallery { display:grid; gap:8px; grid-template-columns:repeat(2,1fr); }
@media (min-width:760px){ .pv-gallery { grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; } .pv-gallery .big { grid-column:span 2; grid-row:span 2; } }
.pv-shot { position:relative; overflow:hidden; border-radius:4px; min-height:150px; background:linear-gradient(155deg,#0e2747 0%,#2a4a3c 45%,#6f7a52 74%,#c7a56a 100%); }
.pv-shot img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pv-shot::before { content:""; position:absolute; inset:0; opacity:.4; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }
.pv-shot .ph { position:absolute; left:.8rem; bottom:.7rem; font-size:.64rem; letter-spacing:.1em; color:#fff; opacity:.85; }

/* 4 · DESCRIPCIÓN */
.pv-desc-grid { display:grid; gap:clamp(2rem,5vw,4rem); grid-template-columns:1fr; }
@media (min-width:980px){ .pv-desc-grid { grid-template-columns:1.5fr .85fr; align-items:start; } }
.pv-desc h3 { font-family:var(--serif); font-size:1.35rem; color:var(--ink); margin:1.8rem 0 .7rem; }
.pv-desc p { color:var(--ink-mute); line-height:1.85; margin-bottom:1rem; }
.pv-pay { border:1px solid var(--line-light); border-radius:6px; overflow:hidden; margin:1.2rem 0; }
.pv-pay-opt { padding:1.2rem 1.3rem; border-bottom:1px solid var(--line-light); }
.pv-pay-opt:last-child { border-bottom:0; }
.pv-pay-opt .t { font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:.4rem; }
.pv-pay-opt .a { font-family:var(--serif); font-size:1.4rem; color:var(--navy); }
.pv-pay-opt small { color:var(--ink-mute); }
.pv-check { display:grid; gap:.75rem; margin-top:.5rem; }
.pv-check li { display:flex; gap:.7rem; align-items:flex-start; color:var(--ink); font-size:.95rem; }
.pv-check li::before { content:""; flex-shrink:0; width:18px; height:18px; margin-top:2px; border-radius:50%; background:var(--gold); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/64% no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/64% no-repeat; }
.pv-facts { background:var(--white); border:1px solid var(--line-light); border-radius:6px; padding:1.6rem; box-shadow:0 40px 90px -60px rgba(14,39,71,.4); position:sticky; top:calc(var(--nav-h) + 16px); }
.pv-facts h4 { font-family:var(--serif); font-size:1.1rem; color:var(--ink); margin-bottom:1rem; }
.pv-facts ul li { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--line-light); font-size:.9rem; }
.pv-facts ul li:last-child { border-bottom:0; }
.pv-facts ul li span:first-child { color:var(--ink-mute); }
.pv-facts ul li span:last-child { color:var(--ink); font-weight:500; text-align:right; }
.pv-facts .btn { width:100%; margin-top:1.2rem; }

/* 5 · MAPA */
.pv-map { border-radius:6px; overflow:hidden; border:1px solid var(--line-light); box-shadow:0 40px 90px -60px rgba(14,39,71,.4); }
.pv-map iframe { width:100%; height:440px; border:0; display:block; }
.pv-loc { color:var(--ink-mute); margin-top:1.2rem; line-height:1.7; max-width:60ch; }

/* 6 · CONTACTO (reusa .contact-form/.field del sistema) */
.pv-contact-grid { display:grid; gap:clamp(2rem,5vw,3.5rem); grid-template-columns:1fr; }
@media (min-width:900px){ .pv-contact-grid { grid-template-columns:1fr 1fr; align-items:center; } }
.pv-contact-info li { margin-bottom:1.1rem; }
.pv-contact-info span { display:block; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cream-mute); margin-bottom:.3rem; }
.pv-contact-info a, .pv-contact-info p { color:var(--white); font-size:1.05rem; }

/* 7 · WHATSAPP band */
.pv-wa-band { background:linear-gradient(150deg, var(--navy-2) 0%, var(--steel) 100%); color:var(--cream); text-align:center; }
.pv-wa-band .pv-h2 { color:var(--white); }
.pv-wa-opts { display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:1.6rem; }

/* 8 · LOGO GRANDE */
.pv-logo-sec { background:var(--navy); text-align:center; padding: clamp(4rem,10vw,8rem) 0; }
.pv-logo-sec img { width:min(560px,80vw); height:auto; margin:0 auto; }
.pv-logo-sec .tag { margin-top:1.4rem; font-size:.74rem; letter-spacing:.32em; text-transform:uppercase; color:var(--cream-mute); }

/* 3b · CARRUSEL COVERFLOW (fotos) */
.pv-carousel { position:relative; margin-top:.5rem; }
.pv-car-stage { position:relative; height:clamp(260px,44vw,520px); }
.pv-car-slide { position:absolute; top:0; left:50%; width:min(60%,720px); height:100%; border-radius:6px; overflow:hidden; cursor:pointer;
  transform:translateX(-50%) scale(1); opacity:1; z-index:3;
  transition:transform .8s var(--ease-out), opacity .8s var(--ease-out), filter .8s var(--ease-out);
  box-shadow:0 50px 110px -55px rgba(10,28,52,.75); }
.pv-car-slide .ph { position:absolute; left:1rem; bottom:.9rem; font-size:.68rem; letter-spacing:.1em; color:#fff; opacity:.85; }
.pv-car-slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pv-car-slide.is-center { transform:translateX(-50%) scale(1); opacity:1; z-index:3; filter:none; }
.pv-car-slide.is-left   { transform:translateX(calc(-50% - 50%)) scale(.74); opacity:.5; z-index:2; filter:brightness(.65) saturate(.9); }
.pv-car-slide.is-right  { transform:translateX(calc(-50% + 50%)) scale(.74); opacity:.5; z-index:2; filter:brightness(.65) saturate(.9); }
.pv-car-slide.is-hidden { transform:translateX(-50%) scale(.55); opacity:0; z-index:1; pointer-events:none; }
@media (max-width:640px){
  .pv-car-slide { width:74%; }
  .pv-car-slide.is-left  { transform:translateX(calc(-50% - 58%)) scale(.7); }
  .pv-car-slide.is-right { transform:translateX(calc(-50% + 58%)) scale(.7); }
}
.pv-car-btn { position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:54px; height:54px; border-radius:50%;
  display:grid; place-items:center; background:rgba(255,255,255,.7); border:1px solid var(--line-light);
  backdrop-filter:blur(6px); transition:background .4s var(--ease-out), border-color .4s, transform .4s var(--ease-out); }
.pv-car-btn:hover { background:var(--gold); border-color:var(--gold); transform:translateY(-50%) scale(1.06); }
.pv-car-btn svg { width:20px; height:20px; stroke:var(--navy); stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.pv-car-prev { left:clamp(.25rem,3vw,2.5rem); }
.pv-car-next { right:clamp(.25rem,3vw,2.5rem); }
.pv-car-dots { display:flex; gap:.5rem; justify-content:center; margin-top:1.8rem; }
.pv-car-dot { width:8px; height:8px; border-radius:50%; background:var(--bone-2); border:0; transition:background .4s, width .4s; cursor:pointer; }
.pv-car-dot.is-active { background:var(--gold); width:24px; border-radius:40px; }

/* fondos placeholder de los slides (se ocultan al poner <img>) */
.pv-car-slide { background:linear-gradient(155deg,#0e2747 0%,#2a4a3c 45%,#6f7a52 74%,#c7a56a 100%); }
.pv-car-slide:nth-child(2){ background:linear-gradient(150deg,#0a1c34 0%,#1e456f 45%,#46566e 72%,#9c7c40 100%); }
.pv-car-slide:nth-child(3){ background:linear-gradient(160deg,#061a2e 0%,#10405a 42%,#2e6b78 70%,#cdb07a 100%); }
.pv-car-slide:nth-child(4){ background:linear-gradient(150deg,#112e50 0%,#23507c 45%,#6b7d92 74%,#c7a56a 100%); }
.pv-car-slide:nth-child(5){ background:linear-gradient(155deg,#0e2747 0%,#2a4a3c 50%,#8a8a55 78%,#c7a56a 100%); }
.pv-car-slide::before { content:""; position:absolute; inset:0; opacity:.4; mix-blend-mode:soft-light; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.45'/%3E%3C/svg%3E"); }
.pv-car-slide img { position:relative; z-index:1; }
