:root{
    --navy:#0A1628;
    --navy-soft:#132538;
    --gold:#F5A623;
    --cream:#FBF7F1;
    --teal:#0F3D3E;
    --coral:#FF6B4A;
    --ink-70: rgba(10,22,40,.7);
    --cream-70: rgba(251,247,241,.72);
    --radius: 2px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--cream);
    color:var(--navy);
    font-family:'Work Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Montserrat', sans-serif;
    font-weight:900;
    letter-spacing:-0.01em;
    line-height:1.02;
    color:var(--navy);
  }
  .mono{
    font-family:'Space Mono', monospace;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-size:.72rem;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  section{position:relative;}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(251,247,241,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(10,22,40,.08);
  }
  nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 28px; max-width:1180px; margin:0 auto;
  }
  .brand{
    font-family:'Montserrat', sans-serif; font-weight:900; font-size:1.15rem;
    letter-spacing:-.01em;
  }
  .brand span{color:var(--gold);}
  .navlinks{display:flex; gap:32px; align-items:center;}
  .navlinks a{
    font-size:.82rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
    color:var(--navy); position:relative; padding-bottom:3px;
  }
  .navlinks a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold);
    transition:width .25s ease;
  }
  .navlinks a:hover::after{width:100%;}
  .navcta{
    background:var(--navy); color:var(--cream)!important; padding:10px 18px;
    font-size:.78rem; font-weight:700; letter-spacing:.04em;
  }
  .navcta::after{display:none;}
  .navcta:hover{background:var(--gold); color:var(--navy)!important;}
  .navToggle{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
  .navToggle span{width:24px; height:2px; background:var(--navy);}

  /* ---------- HERO ---------- */
  .hero{
    padding:64px 0 0;
    background:linear-gradient(180deg, var(--cream) 0%, var(--cream) 60%, var(--navy) 60%, var(--navy) 100%);
  }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr .95fr; gap:0; align-items:stretch;
  }
  .hero-copy{padding:20px 0 64px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    color:var(--teal); margin-bottom:22px;
  }
  .eyebrow::before{content:''; width:26px; height:2px; background:var(--gold); display:inline-block;}
  .hero-copy h1{
    font-size:clamp(2.4rem, 4.6vw, 3.7rem);
    margin-bottom:22px;
  }
  .hero-copy h1 em{
    font-style:normal; color:var(--gold);
  }
  .hero-copy p.lede{
    font-size:1.08rem; color:var(--ink-70); max-width:460px; margin-bottom:32px;
  }
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:15px 26px; font-weight:700; font-size:.85rem;
    letter-spacing:.03em; text-transform:uppercase;
    border:2px solid var(--navy); transition:all .2s ease;
  }
  .btn-solid{background:var(--navy); color:var(--cream);}
  .btn-solid:hover{background:var(--gold); border-color:var(--gold); color:var(--navy);}
  .btn-ghost{background:transparent; color:var(--navy);}
  .btn-ghost:hover{background:var(--navy); color:var(--cream);}

  .hero-video{
    position:relative;
    background:var(--navy-soft);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    clip-path:polygon(9% 0, 100% 0, 100% 100%, 0% 100%);
  }
  .hero-video::before{
    content:'';
    position:absolute; inset:0;
    background:
      repeating-linear-gradient(115deg, rgba(245,166,35,.07) 0px, rgba(245,166,35,.07) 1px, transparent 1px, transparent 34px);
  }
  .video-frame{
    position:relative; z-index:2; width:78%; aspect-ratio:9/16; max-height:520px;
    border:3px solid var(--gold);
    background:#000;
    display:flex; align-items:center; justify-content:center;
    box-shadow:-18px 18px 0 rgba(245,166,35,.18);
  }
  .video-frame iframe{width:100%; height:100%; border:0;}
  .video-caption{
    position:absolute; z-index:2; bottom:26px; left:0; right:0; text-align:center;
    color:var(--cream); font-family:'Space Mono',monospace; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  }

  /* ---------- TICKER (signature element) ---------- */
  .ticker-band{
    background:var(--navy); border-top:1px solid rgba(245,166,35,.25); border-bottom:1px solid rgba(245,166,35,.25);
    overflow:hidden; padding:14px 0;
  }
  .ticker-track{
    display:flex; gap:0; width:max-content;
    animation:scrollTicker 32s linear infinite;
  }
  @keyframes scrollTicker{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  .ticker-item{
    display:flex; align-items:center; gap:14px;
    color:var(--cream); font-family:'Montserrat',sans-serif; font-weight:800;
    font-size:1rem; padding:0 30px; white-space:nowrap;
  }
  .ticker-item .dot{color:var(--gold); font-size:1.2rem;}

  /* ---------- SECTION HEADERS ---------- */
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
    margin-bottom:44px; flex-wrap:wrap;
  }
  .section-head .mono{color:var(--gold); display:block; margin-bottom:10px;}
  .section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
  .section-head p{color:var(--ink-70); max-width:360px; font-size:.95rem;}

  /* ---------- SOBRE MI ---------- */
  .about{padding:96px 0;}
  .about-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center;}
  .photo-block{
    background:var(--teal); aspect-ratio:4/5; position:relative;
    display:flex; align-items:flex-end; padding:22px;
    border:2px solid var(--navy);
  }
  .photo-block .tag{
    background:var(--gold); color:var(--navy); padding:8px 14px;
    font-family:'Space Mono',monospace; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  }
  .about-body p{color:var(--ink-70); margin-bottom:18px; font-size:1.02rem;}
  .stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; row-gap:28px; margin-top:36px;}
  .stat{border-left:3px solid var(--gold); padding-left:14px;}
  .stat .num{font-family:'Montserrat',sans-serif; font-weight:900; font-size:2rem; color:var(--navy);}
  .stat .lbl{color:var(--ink-70); font-size:.82rem;}

  /* ---------- SERVICIOS ---------- */
  .services{padding:96px 0; background:var(--navy); color:var(--cream);}
  .services .section-head h2, .services .section-head p{color:var(--cream);}
  .services .section-head p{color:var(--cream-70);}
  .svc-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:rgba(245,166,35,.2);}
  .svc-card{
    background:var(--navy); padding:34px 28px; transition:background .2s ease;
  }
  .svc-card:hover{background:var(--navy-soft);}
  .svc-card .n{font-family:'Space Mono',monospace; color:var(--gold); font-size:.78rem; margin-bottom:16px; display:block;}
  .svc-card h3{font-size:1.25rem; margin-bottom:12px; color:var(--cream);}
  .svc-card p{color:var(--cream-70); font-size:.92rem;}

  /* ---------- TESTIMONIOS ---------- */
  .testimonials{padding:96px 0;}
  .test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .test-card{background:#fff; border:1px solid rgba(10,22,40,.1);}
  .test-video{
    aspect-ratio:9/16; background:var(--navy-soft); position:relative;
    display:flex; align-items:center; justify-content:center; overflow:hidden;
  }
  .test-video iframe{width:100%; height:100%; border:0;}
  .play-badge{
    width:52px; height:52px; border-radius:50%; background:var(--gold);
    display:flex; align-items:center; justify-content:center; z-index:2;
  }
  .play-badge::after{
    content:''; width:0; height:0; border-top:9px solid transparent; border-bottom:9px solid transparent;
    border-left:14px solid var(--navy); margin-left:3px;
  }
  .test-body{padding:22px;}
  .test-body p{font-size:.92rem; color:var(--ink-70); font-style:italic; margin-bottom:14px;}
  .test-name{font-weight:700; font-size:.9rem;}
  .test-loc{color:var(--gold); font-size:.78rem; font-family:'Space Mono',monospace; text-transform:uppercase;}

  /* ---------- BLOG ---------- */
  .blog{padding:96px 0; background:var(--cream);}
  .blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  .post-card{background:#fff; border:1px solid rgba(10,22,40,.1);}
  .post-thumb{aspect-ratio:16/10; background:var(--teal); position:relative;}
  .post-thumb .cat{
    position:absolute; top:14px; left:14px; background:var(--gold); color:var(--navy);
    font-family:'Space Mono',monospace; font-size:.68rem; padding:5px 10px; letter-spacing:.05em; text-transform:uppercase;
  }
  .post-body{padding:22px;}
  .post-body .date{color:var(--ink-70); font-size:.78rem; font-family:'Space Mono',monospace; margin-bottom:10px; display:block;}
  .post-body h3{font-size:1.12rem; margin-bottom:10px; line-height:1.25;}
  .post-body p{color:var(--ink-70); font-size:.88rem; margin-bottom:14px;}
  .read-more{font-weight:700; font-size:.8rem; color:var(--navy); border-bottom:2px solid var(--gold);}

  /* ---------- VLOGS ---------- */
  .vlogs{padding:96px 0; background:var(--navy);}
  .vlogs .section-head h2, .vlogs .section-head p{color:var(--cream);}
  .vlogs .section-head p{color:var(--cream-70);}
  .vlog-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  .vlog-card{aspect-ratio:9/16; background:var(--navy-soft); position:relative; overflow:hidden; border:1px solid rgba(245,166,35,.25);}
  .vlog-card iframe{width:100%; height:100%; border:0;}

  /* ---------- CONTACT ---------- */
  .contact{padding:110px 0; text-align:center;}
  .contact h2{font-size:clamp(2rem,4.5vw,3.2rem); margin-bottom:18px;}
  .contact p{color:var(--ink-70); max-width:520px; margin:0 auto 36px; font-size:1.05rem;}
  .contact-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
  .lang-note{
    margin-top:28px; display:inline-flex; gap:8px; align-items:center;
    font-family:'Space Mono',monospace; font-size:.75rem; letter-spacing:.05em; text-transform:uppercase; color:var(--teal);
  }
  .lang-note .dot{width:8px; height:8px; border-radius:50%; background:var(--gold);}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy); color:var(--cream-70); padding:44px 0 28px;}
  .foot-grid{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
  .foot-brand{font-family:'Montserrat',sans-serif; font-weight:900; color:var(--cream); font-size:1.1rem;}
  .foot-brand span{color:var(--gold);}
  .foot-links{display:flex; gap:24px; flex-wrap:wrap;}
  .foot-links a{font-size:.82rem;}
  .foot-links a:hover{color:var(--gold);}
  .foot-bottom{
    margin-top:30px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1);
    font-size:.75rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  }

  @media (max-width:900px){
    .navlinks{display:none;}
    .navlinks.open{
      display:flex; flex-direction:column; gap:0;
      position:absolute; top:100%; left:0; right:0;
      background:var(--cream); border-top:1px solid rgba(10,22,40,.08);
      border-bottom:1px solid rgba(10,22,40,.08);
      padding:6px 28px 18px; box-shadow:0 12px 24px rgba(10,22,40,.08);
    }
    .navlinks.open a{padding:14px 0; border-bottom:1px solid rgba(10,22,40,.06); width:100%;}
    .navlinks.open a.navcta{margin-top:10px; text-align:center; border-bottom:none;}
    .navToggle{display:flex; position:relative; z-index:60;}
    .navToggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .navToggle.active span:nth-child(2){opacity:0;}
    .navToggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
    .navToggle span{transition:transform .2s ease, opacity .2s ease;}
    .hero-grid{grid-template-columns:1fr;}
    .hero-video{clip-path:none; padding:30px 0;}
    .about-grid, .svc-grid, .test-grid, .blog-grid{grid-template-columns:1fr;}
    .vlog-grid{grid-template-columns:repeat(2,1fr);}
    .stat-row{grid-template-columns:1fr;}
  }

/* ================= PAGE HEADER (páginas internas) ================= */
.page-hero{
  padding:64px 0 56px; background:var(--navy); color:var(--cream);
  border-bottom:3px solid var(--gold);
}
.page-hero .mono{color:var(--gold); display:block; margin-bottom:14px;}
.page-hero h1{color:var(--cream); font-size:clamp(2rem,4vw,3rem); margin-bottom:14px;}
.page-hero p{color:var(--cream-70); max-width:560px; font-size:1.02rem;}
.breadcrumb{font-family:'Space Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--cream-70); margin-bottom:18px;}
.breadcrumb a{color:var(--gold);}

/* ================= FILTER TABS ================= */
.filter-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:44px;}
.filter-tab{
  padding:10px 20px; border:2px solid var(--navy); font-family:'Space Mono',monospace;
  font-size:.75rem; text-transform:uppercase; letter-spacing:.05em; cursor:pointer;
  background:transparent; color:var(--navy); transition:all .2s ease;
}
.filter-tab.active, .filter-tab:hover{background:var(--navy); color:var(--cream);}

/* ================= VIDEO PORTAL (galería de casas) ================= */
.video-portal{padding:80px 0;}
.portal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.portal-card{background:#fff; border:1px solid rgba(10,22,40,.1); overflow:hidden;}
.portal-video{aspect-ratio:9/16; background:var(--navy-soft); position:relative;}
.portal-video iframe{width:100%; height:100%; border:0;}
.portal-info{padding:20px;}
.portal-info .price{
  font-family:'Montserrat',sans-serif; font-weight:900; color:var(--gold); font-size:1.3rem; margin-bottom:6px;
}
.portal-info h3{font-size:1.02rem; margin-bottom:8px;}
.portal-info .meta{
  display:flex; gap:14px; color:var(--ink-70); font-size:.8rem; font-family:'Space Mono',monospace;
  margin-bottom:10px; flex-wrap:wrap;
}
.portal-info .loc{color:var(--teal); font-size:.85rem; margin-bottom:4px;}
.upload-cta{
  margin-top:60px; text-align:center; background:var(--cream); border:2px dashed var(--gold);
  padding:50px 30px;
}
.upload-cta h3{font-size:1.3rem; margin-bottom:10px;}
.upload-cta p{color:var(--ink-70); max-width:480px; margin:0 auto 24px;}

/* ================= REVIEWS / OPINIONES ================= */
.reviews-section{padding:80px 0; background:var(--navy);}
.reviews-summary{
  display:flex; align-items:center; gap:40px; margin-bottom:56px; flex-wrap:wrap;
  padding-bottom:40px; border-bottom:1px solid rgba(245,166,35,.25);
}
.big-rating{font-family:'Montserrat',sans-serif; font-weight:900; font-size:4.5rem; color:var(--gold); line-height:1;}
.stars{color:var(--gold); font-size:1.4rem; letter-spacing:2px; margin-bottom:6px;}
.reviews-summary .rcount{color:var(--cream-70); font-size:.88rem; font-family:'Space Mono',monospace;}
.review-sources{display:flex; gap:16px; flex-wrap:wrap;}
.source-pill{
  border:1px solid rgba(245,166,35,.4); color:var(--cream); padding:8px 16px;
  font-family:'Space Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em;
}
.review-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px;}
.review-card{background:var(--navy-soft); padding:26px; border-left:3px solid var(--gold);}
.review-card .stars{font-size:.95rem; margin-bottom:12px;}
.review-card p{color:var(--cream-70); font-size:.94rem; margin-bottom:16px; font-style:italic;}
.review-card .who{display:flex; justify-content:space-between; align-items:center;}
.review-card .rname{color:var(--cream); font-weight:700; font-size:.88rem;}
.review-card .rsrc{color:var(--gold); font-family:'Space Mono',monospace; font-size:.7rem; text-transform:uppercase;}

/* ================= CLIENTES / HISTORIAS ================= */
.stories-section{padding:80px 0;}
.story-card{
  display:grid; grid-template-columns:.4fr .6fr; gap:0; margin-bottom:36px;
  background:#fff; border:1px solid rgba(10,22,40,.1); overflow:hidden;
}
.story-card:nth-child(even){grid-template-columns:.6fr .4fr;}
.story-card:nth-child(even) .story-photo{order:2;}
.story-photo{
  background:var(--teal); position:relative; min-height:320px;
  display:flex; align-items:flex-end; padding:20px;
}
.story-photo .tag{
  background:var(--gold); color:var(--navy); padding:7px 12px; font-family:'Space Mono',monospace;
  font-size:.68rem; text-transform:uppercase; letter-spacing:.05em;
}
.story-content{padding:36px;}
.story-content .loc-tag{color:var(--gold); font-family:'Space Mono',monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; display:block;}
.story-content h3{font-size:1.4rem; margin-bottom:14px;}
.story-content p{color:var(--ink-70); font-size:.96rem; margin-bottom:10px;}
.story-content .quote{
  border-left:3px solid var(--gold); padding-left:16px; margin:18px 0; font-style:italic; color:var(--navy);
}
.upload-story-cta{
  margin-top:20px; text-align:center; background:var(--navy); color:var(--cream);
  padding:56px 30px;
}
.upload-story-cta h3{color:var(--cream); font-size:1.3rem; margin-bottom:10px;}
.upload-story-cta p{color:var(--cream-70); max-width:480px; margin:0 auto 24px;}

@media (max-width:900px){
  .portal-grid, .review-grid{grid-template-columns:1fr;}
  .story-card, .story-card:nth-child(even){grid-template-columns:1fr;}
  .story-card:nth-child(even) .story-photo{order:0;}
  .reviews-summary{gap:24px;}
}

/* ================= CREDENTIALS / STATS BAND ================= */
.credentials-band{
  background:var(--navy); border-top:1px solid rgba(245,166,35,.2);
}
.cred-grid{
  display:grid; grid-template-columns:repeat(4,1fr);
  max-width:1180px; margin:0 auto;
}
.cred-item{
  padding:30px 24px; text-align:center; border-right:1px solid rgba(245,166,35,.15);
}
.cred-item:last-child{border-right:none;}
.cred-item .cnum{
  font-family:'Montserrat',sans-serif; font-weight:900; color:var(--gold); font-size:1.7rem; line-height:1;
}
.cred-item .clbl{
  color:var(--cream-70); font-family:'Space Mono',monospace; font-size:.68rem;
  text-transform:uppercase; letter-spacing:.05em; margin-top:8px;
}

/* ================= EQUAL HOUSING / FAIR HOUSING ================= */
.fair-housing{
  display:flex; align-items:center; gap:10px; color:var(--cream-70);
  font-size:.72rem; line-height:1.5;
}
.fh-icon{
  width:26px; height:26px; border:1.5px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  font-family:'Montserrat',sans-serif; font-weight:900; color:var(--gold); font-size:.85rem;
}
.legal-line{
  border-top:1px solid rgba(255,255,255,.08); margin-top:18px; padding-top:16px;
  font-size:.7rem; color:var(--cream-70); line-height:1.6; max-width:900px;
}

/* ================= BLOG FULL PAGE GRID ================= */
.blog-full{padding:80px 0;}
.blog-full .blog-grid{grid-template-columns:repeat(3,1fr);}
.blog-featured{
  display:grid; grid-template-columns:1fr 1fr; gap:0; margin-bottom:56px;
  background:var(--navy); color:var(--cream);
}
.blog-featured .bf-img{background:var(--teal); min-height:340px; position:relative;}
.blog-featured .bf-img .cat{
  position:absolute; top:18px; left:18px; background:var(--gold); color:var(--navy);
  font-family:'Space Mono',monospace; font-size:.7rem; padding:6px 12px; text-transform:uppercase; letter-spacing:.05em;
}
.blog-featured .bf-body{padding:40px;}
.blog-featured .bf-body .date{color:var(--gold); font-family:'Space Mono',monospace; font-size:.75rem; margin-bottom:14px; display:block;}
.blog-featured .bf-body h2{color:var(--cream); font-size:1.7rem; margin-bottom:16px;}
.blog-featured .bf-body p{color:var(--cream-70); margin-bottom:22px;}

@media (max-width:900px){
  .cred-grid{grid-template-columns:repeat(2,1fr);}
  .cred-item{border-right:none; border-bottom:1px solid rgba(245,166,35,.15);}
  .blog-featured{grid-template-columns:1fr;}
  .blog-full .blog-grid{grid-template-columns:1fr;}
}
