/**
 * Destiny Luxury — Single Property Premium Stylesheet
 * Optimización de rendimiento de caché perimetral.
 */

:root {
  --dark:        #0B172A;
  --darker:      #050b14;
  --mid:         #0f1f38;
  --card-bg:     #111e35;
  --gold:        #C5A059;
  --gold-light:  #e0c58d;
  --gold-dim:    rgba(197,160,89,.15);
  --gold-border: rgba(197,160,89,.2);
  --text:        #F4F4F4;
  --text-mid:    #cbd5e1;
  --text-dim:    #94A3B8;
  --text-faint:  rgba(226,232,240,.4);
  --serif:       var(--font-heading,'Playfair Display',serif);
  --sans:        var(--font-body,'Outfit',sans-serif);
  --radius:      10px;
  --transition:  all .35s ease;
}

.sp-wrap { background: var(--dark); }
.sp-container { max-width: 1160px; margin: 0 auto; padding: 0 30px; }
.sp-container--narrow { max-width: 760px; }

/* ── HEADER HERO ── */
.sp-header { position: relative; min-height: 88vh; display: flex; align-items: flex-end; background-size: cover; background-position: center top; background-color: var(--darker); padding: 0; overflow: hidden; }
.sp-header-native-bg { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center top !important; z-index: 0; pointer-events: none; image-rendering: -webkit-optimize-contrast; }
.sp-header-overlay { position: absolute; inset: 0; background: linear-gradient( to bottom, rgba(5,11,20,.35) 0%, rgba(5,11,20,.45) 40%, rgba(5,11,20,.82) 75%, rgba(5,11,20,1)   100% ); z-index: 1; }
.sp-header-grain { position: absolute; inset: 0; z-index: 2; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E"); opacity: .03; pointer-events: none; }
.sp-header-content { position: relative; z-index: 3; padding-top: 140px; padding-bottom: 72px; width: 100%; }
.sp-eyebrow { font-size:.68rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:12px;display:flex;align-items:center;gap:7px; }
.sp-title { font-family:var(--serif);font-size:clamp(2.6rem,5.5vw,4.2rem);font-weight:700;color:#fff;line-height:1.05;margin-bottom:18px;letter-spacing:-.5px;max-width:780px; }
.sp-subtitle { font-size:1rem;color:rgba(203,213,225,.7);margin-bottom:36px;max-width:560px;line-height:1.7;font-weight:300; }
.sp-hero-badge { margin-top:24px; }
.sp-hero-badge span { display:inline-block;background:var(--gold);color:var(--darker);font-size:.62rem;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:7px 18px;border-radius:30px; }

/* ── SPECS BAR ── */
.specbar { display:flex;flex-wrap:wrap;background:rgba(255,255,255,.03);border:1px solid var(--gold-border);border-radius:var(--radius);margin-bottom:28px;overflow:hidden; }
.specbar-item { display:flex;align-items:center;gap:13px;padding:18px 26px;flex:1;min-width:180px;border-right:1px solid rgba(197,160,89,.08);transition:background .2s; }
.specbar-item:last-child { border-right:none; }
.specbar-item:hover { background:rgba(197,160,89,.04); }
.specbar-item i { font-size:1.1rem;color:var(--gold);flex-shrink:0; }
.specbar-label { display:block;font-size:.6rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint);margin-bottom:3px; }
.specbar-value { display:block;font-size:.82rem;font-weight:600;color:#fff; }

/* ── SECTIONS BASE ── */
.sp-section { padding:72px 0;border-top:1px solid rgba(197,160,89,.07); }
.sp-section-title { font-family:var(--serif);font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;color:#fff;margin-bottom:38px;line-height:1.2;display:flex;align-items:center;gap:16px; }
.sp-section-title::after { content:'';flex:1;height:1px;background:linear-gradient(to right,rgba(197,160,89,.25),transparent); }

/* ── DESCRIPCIÓN + FICHA ── */
.desc-top { display:grid;grid-template-columns:1fr 1.6fr;gap:60px;align-items:start;margin-bottom:0; }
.desc-col-title { position:sticky;top:100px; }
.desc-tagline { font-size:.85rem;color:var(--gold);margin-top:14px;line-height:1.6;font-style:italic;opacity:.85; }
.desc-col-text { font-size:.97rem;line-height:1.95;color:var(--text-dim);font-weight:300; }
.kd-grid { display:grid;grid-template-columns:1fr 1fr; }
.kd-card { background:var(--card-bg);border:1px solid var(--gold-border);border-radius:var(--radius);overflow:hidden; }
.kd-card-header { padding:20px 24px 16px;border-bottom:1px solid rgba(197,160,89,.1);font-family:var(--serif);font-size:1rem;color:var(--gold);display:flex;align-items:center;gap:9px; }
.kd-row { display:flex;justify-content:space-between;align-items:center;padding:13px 24px;border-bottom:1px solid rgba(197,160,89,.05);gap:14px;transition:background .2s; }
.kd-grid .kd-row:nth-child(odd) { border-right:1px solid rgba(197,160,89,.05); }
.kd-row:last-child,.kd-grid .kd-row:nth-last-child(-n+2) { border-bottom:none; }
.kd-row:hover { background:rgba(197,160,89,.03); }
.kd-label { font-size:.65rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);flex-shrink:0; }
.kd-value { font-size:.83rem;font-weight:600;color:var(--text);text-align:right; }

/* ── AMENIDADES — BENTO GRID ── */
.am-eyebrow { display:block;font-size:.65rem;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:14px; }
.am-subtitle { font-size:.75rem;color:rgba(240,236,228,.3);margin:-6px 0 0;letter-spacing:.5px; }
.sp-section--amenities em { font-style:italic;color:var(--gold); }
.amenities-bento { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:36px; }
.cell { background:rgba(11,23,42,.55);border:1px solid rgba(197,160,89,.1);border-radius:14px;padding:22px 20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:default;transition:border-color .3s,background .3s,box-shadow .3s;display:flex;flex-direction:column;justify-content:flex-end;min-height:140px;position:relative;overflow:hidden; }
.cell:hover { border-color:rgba(197,160,89,.35);background:rgba(11,23,42,.8);box-shadow:0 8px 32px rgba(0,0,0,.35); }
.cell-wide  { grid-column:span 2; }
.cell-tall  { grid-row:span 2;min-height:300px; }
.cell-accent { background:rgba(11,23,42,.55);border-color:rgba(197,160,89,.2); }
.cell-icon-wrap { width:36px;height:36px;margin-bottom:14px;opacity:.55;transition:opacity .3s;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.cell:hover .cell-icon-wrap { opacity:1; }
.cell-icon-wrap i { font-size:1.1rem;color:var(--gold); flex-shrink:0;}
.cell-name { font-size:.82rem;color:#e8e2d8;font-weight:500;line-height:1.3;margin-bottom:4px; }
.cell-cat  { font-size:.62rem;color:rgba(197,160,89,.4);letter-spacing:1.5px;text-transform:uppercase; }
.cell-num  { position:absolute;top:16px;right:18px;font-size:.62rem;color:rgba(197,160,89,.18);letter-spacing:1px;transition:color .3s; }
.cell:hover .cell-num { color:rgba(197,160,89,.55); }
.gold-line { width:28px;height:1px;background:var(--gold);margin-bottom:16px;opacity:.5;transition:width .3s,opacity .3s; }
.cell:hover .gold-line { width:44px;opacity:1; }

/* ── 🔥 SECCIÓN EXCLUSIVA: CTA IMPACT SLIM INLINE ── */
.sp-section--impact-inline { padding: 20px 0; border: none; }
.impact-inline-bar {
    background: rgba(5, 11, 20, 0.6);
    border: 1px solid var(--gold-border);
    border-left: 3px solid var(--gold);
    border-radius: 6px;
    padding: 24px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2);
    position: relative;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.impact-inline-text { flex: 1; }
.impact-inline-eyebrow { font-size: 0.6rem; letter-spacing: 2px; color: var(--gold); text-transform: uppercase; margin-bottom: 4px; display: block; font-weight: 500; }
.impact-inline-title { font-family: var(--serif); font-size: 1.35rem; font-weight: 600; color: #fff; margin: 0 0 6px 0; line-height: 1.2; }
.impact-inline-title em { font-style: italic; color: var(--gold-light); font-weight: 400; }
.impact-inline-desc { font-size: 0.85rem; color: var(--text-dim); font-weight: 300; line-height: 1.5; margin: 0; }

/* ── MEDIA TABS & GALERÍA APPLE ── */
.media-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:16px; }
.media-tabs { display:flex;gap:8px;flex-wrap:wrap; }
.tab-btn { background:rgba(255,255,255,.04);border:1px solid rgba(197,160,89,.15);color:rgba(226,232,240,.5);padding:9px 20px;border-radius:30px;font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:8px;font-family:var(--sans); }
.tab-btn:hover,.tab-btn.active { background:var(--gold);border-color:var(--gold);color:var(--darker); }
.tab-panel { display:none; }
.tab-panel.active { display:block; }
.apple-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.apple-cell { position: relative; overflow: hidden; display: block; cursor: zoom-in; background: var(--card-bg); border-radius: 12px; aspect-ratio: 4 / 3; }
.apple-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.25,.46,.45,.94); display: block; }
.apple-cell:hover img { transform: scale(1.06); }
.apple-zoom { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(5,11,20,.3); opacity: 0; transition: opacity .25s; border-radius: 12px; }
.apple-zoom i { color: #fff; font-size: 1.3rem; }
.apple-cell:hover .apple-zoom { opacity: 1; }
.apple-count { text-align: center; font-size: .65rem; letter-spacing: 2px; text-transform: uppercase; color: var(--text-faint); margin-top: 14px; }
.plans-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:12px; }
.plan-item { position:relative;overflow:hidden;display:block;border-radius:8px;background:var(--card-bg);border:1px solid var(--gold-border);aspect-ratio:4/3; }
.plan-item img { width:100%;height:100%;object-fit:cover;transition:transform .45s; }
.plan-item:hover img { transform:scale(1.06); }
.plan-label { position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,rgba(0,0,0,.8));font-size:.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:1px; }
.plan-item:hover .photo-overlay { opacity:1; }
.video-wrap { position:relative;width:100%;padding-bottom:56.25%;border-radius:12px;overflow:hidden;background:var(--darker);border:1px solid var(--gold-border); }
.video-wrap iframe,.video-wrap video { position:absolute;inset:0;width:100%;height:100%; }

/* ── UBICACIÓN & MAPA ── */
.location-grid { display:grid;grid-template-columns:1fr 1.5fr;gap:50px;align-items:start; }
.address-tag { font-size:.62rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:8px; }
.address-text { font-family:var(--serif);font-size:1.25rem;color:#fff;line-height:1.5;margin-bottom:18px; }
.directions-btn { display:inline-flex;align-items:center;gap:9px;background:rgba(197,160,89,.1);border:1px solid rgba(197,160,89,.3);color:var(--gold);padding:10px 20px;border-radius:30px;font-size:.72rem;font-weight:600;letter-spacing:.5px;margin-bottom:36px;transition:var(--transition); }
.directions-btn:hover { background:var(--gold);color:var(--darker); }
.location-meta { display:flex;flex-direction:column;gap:0; }
.lm-row { display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(197,160,89,.07); }
.lm-row:last-child { border-bottom:none; }
.lm-label { font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);display:flex;align-items:center;gap:8px; }
.lm-label i { color:var(--gold);font-size:.75rem; }
.lm-val { font-size:.82rem;font-weight:500;color:var(--text-mid); }
.map-wrap { height:380px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--gold-border);background:var(--card-bg); }
.map-placeholder { width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:linear-gradient(135deg,#0a1525,#0f1f38); }
.map-placeholder i { font-size:2.5rem;color:var(--gold);opacity:.5; }
.map-placeholder p { font-size:.75rem;color:var(--text-dim);letter-spacing:1px;text-transform:uppercase; }
.map-placeholder a { font-size:.7rem;color:var(--gold);letter-spacing:1px;text-transform:uppercase;border:1px solid var(--gold-border);padding:8px 18px;border-radius:20px; }

/* ── PLAN DE PAGO ── */
.payment-steps { display:grid;grid-template-columns:repeat(4,1fr);gap:20px; }
.payment-step { background:var(--card-bg);border:1px solid var(--gold-border);border-radius:var(--radius);padding:30px 24px;position:relative;overflow:hidden;transition:var(--transition); }
.payment-step::before { content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(to right,var(--gold),transparent);opacity:0;transition:opacity .3s; }
.payment-step:hover::before { opacity:1; }
.payment-step:hover { transform:translateY(-4px); }
.step-num { font-family:var(--serif);font-size:3rem;color:rgba(197,160,89,.1);font-weight:700;line-height:1;margin-bottom:12px; }
.step-title { font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--gold);margin-bottom:6px; }
.step-text { font-size:.85rem;color:var(--text-dim);line-height:1.55; }
.step-pct { font-family:var(--serif);font-size:1.6rem;color:var(--gold-light);font-weight:700;margin-top:10px; }

/* ── CONTENEDOR ENVOLVENTE DEL FORMULARIO ZOHO ── */
.form-section { padding:80px 0;background:linear-gradient(180deg,var(--dark) 0%,var(--darker) 100%);border-top:1px solid rgba(197,160,89,.07);position:relative; }
.form-section::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(197,160,89,.04) 0%,transparent 70%);pointer-events:none; }
.form-label { font-size:.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:14px; }
.form-title { font-family:var(--serif);font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:700;color:#fff;text-align:center;margin-bottom:12px;line-height:1.15; }
.form-title em { color:var(--gold-light);font-style:italic; }
.form-subtitle { font-size:.9rem;color:var(--text-dim);text-align:center;margin-bottom:50px;font-weight:300; }

/* ── BOTONES GLOBALES NATIVOS ── */
.submit-btn, .impact-inline-btn {
    background: var(--gold); color: var(--darker); border: none; padding: 14px 28px; font-family: var(--sans); font-size: 0.68rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; border-radius: 3px; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; transition: all 0.3s ease;
}
.submit-btn:hover, .impact-inline-btn:hover { background: var(--gold-light); transform: translateX(3px); box-shadow: 0 5px 15px rgba(197,160,89,0.2); }

/* ── INTERFAZ BREADCRUMBS ── */
.breadcrumbs { font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:rgba(226,232,240,.4);margin-bottom:20px;display:flex;align-items:center;flex-wrap:wrap;gap:2px; }
.breadcrumbs a { color:rgba(197,160,89,.65); }
.breadcrumbs a:hover { color:var(--gold); }
.breadcrumbs .bc-sep { margin:0 6px;color:rgba(226,232,240,.25); }
.breadcrumbs span { color:rgba(255,255,255,.55); }

.sp-wrap::before { content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.025;pointer-events:none;z-index:9999; }
.reveal { opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }

/* ── 🕵️‍♂️ BLINDAJE ANTI-PROPAGANDA DE ZOHO FORMS ── */
div[id*="PoweredBy"], .zf-poweredBy, [class*="poweredBy"] {
    display: none !important; visibility: hidden !important; opacity: 0 !important; height: 0 !important; padding: 0 !important; margin: 0 !important; border: none !important;
}

/* ── SYSTEM RESPONSIVE MEDIA QUERIES ── */
@media (max-width:1024px) {
    .desc-top { grid-template-columns:1fr; gap:28px; }
    .desc-col-title { position:static; }
    .kd-grid { grid-template-columns:1fr 1fr; }
    .location-grid { grid-template-columns:1fr; }
    .map-wrap { height:300px; }
    .payment-steps { grid-template-columns:1fr 1fr; }
    .amenities-bento { grid-template-columns:repeat(3,1fr); }
    .cell-wide { grid-column:span 2; }
    .cell-tall { grid-row:span 1;min-height:140px; }
}
@media (max-width: 900px) {
    .impact-inline-bar { flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px; }
    .impact-inline-btn { width: 100%; box-sizing: border-box; justify-content: center; }
}
@media (max-width:768px) {
    .apple-grid { grid-template-columns: 1fr 1fr; }
    .sp-header { min-height: 70vh; }
    .sp-header-content { padding-top: 100px; padding-bottom: 50px; }
    .sp-title { font-size: clamp(1.9rem,7vw,2.6rem); }
    .sp-subtitle { display: none; }
    .desc-top { grid-template-columns:1fr; }
    .kd-grid { grid-template-columns:1fr; }
    .kd-grid .kd-row:nth-child(odd) { border-right:none; }
    .kd-grid .kd-row:nth-last-child(-n+2) { border-bottom:1px solid rgba(197,160,89,.05); }
    .kd-grid .kd-row:last-child { border-bottom:none; }
    .specbar { flex-direction:column; }
    .specbar-item { border-right:none;border-bottom:1px solid rgba(197,160,89,.08); }
    .amenities-bento { grid-template-columns:repeat(2,1fr); }
    .cell-wide { grid-column:span 2; }
    .cell-tall { grid-row:span 1;min-height:140px; }
    .sp-full-bleed { padding:0 16px; }
    .payment-steps { grid-template-columns:1fr; }
    .form-grid { grid-template-columns:1fr; }
    .plans-grid { grid-template-columns:repeat(2,1fr); }
    .sp-container { padding:0 20px; }
}
@media (max-width: 768px) {
    .sp-header { min-height: 100svh; background-position: center center; align-items: flex-end; }
    .sp-header-content { padding-top: 80px; padding-bottom: 40px; padding-left: 20px; padding-right: 20px; }
    .breadcrumbs { position: relative; z-index: 10; padding-top: 16px; }
    .sp-title { font-size: clamp(1.6rem, 6vw, 2.2rem); }
    .sp-subtitle { display: block; font-size: 0.85rem; }
}
@media (max-width: 768px) {
    .amenities-bento { grid-template-columns: repeat(2, 1fr) !important; gap: 8px; }
    .cell-wide { grid-column: span 1 !important; }
    .cell-tall { grid-row: span 1 !important; min-height: 120px !important; }
    .cell-accent.cell-wide { grid-column: span 2 !important; }
    .cell { min-height: 110px; padding: 16px 14px; }
    .cell-name { font-size: 0.78rem; }
    .cell-cat { display: none; }
}
@media (max-width: 480px) {
    .specbar { border-radius: 8px; }
    .specbar-item { padding: 14px 16px; gap: 10px; }
    .specbar-value { font-size: 0.85rem; }
}