/* =============================================================
   Rafael Díaz — Asesoría Patrimonial
   style.css
   ============================================================= */

:root{
  --navy: #0a0f3d;
  --navy-2: #141b5e;
  --navy-soft: #2a3170;
  --cream: #f6f2ea;
  --cream-2: #fffdf8;
  --ink: #1c1b2e;
  --ink-soft: #55536b;
  --rose: #e31c6e;
  --rose-dark: #b9155a;
  --gold: #c9a227;
  --line: rgba(10,15,61,0.12);
  --radius: 2px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Public Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  color:var(--navy);
  margin:0 0 .5em;
  line-height:1.12;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em; color:var(--ink-soft);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.mono{font-family:'IBM Plex Mono', monospace;}
.wrap{max-width:1440px; margin:0 auto; padding:0 clamp(20px, 4vw, 64px);}
section{padding:104px 0;}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rose);
  font-weight:600;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--rose);
  display:inline-block;
}

/* ---------- BOTONES ---------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:15px 30px;
  border-radius:999px;
  font-family:'Public Sans', sans-serif;
  font-weight:600;
  font-size:15px;
  cursor:pointer;
  border:1.5px solid transparent;
  isolation:isolate;
  overflow:hidden;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.btn::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s cubic-bezier(.65,0,.35,1);
}
.btn:hover{transform:translateY(-3px) scale(1.02);}
.btn:hover::before{transform:scaleX(1);}
.btn:active{transform:translateY(-1px) scale(.98);}
.btn:focus-visible{outline:3px solid var(--gold); outline-offset:3px;}

.btn-primary{background:var(--rose); color:#fff; box-shadow:0 6px 20px -8px rgba(227,28,110,.55);}
.btn-primary::before{background:linear-gradient(100deg, var(--rose-dark), var(--rose));}
.btn-primary:hover{box-shadow:0 10px 28px -8px rgba(227,28,110,.7);}

.btn-ghost{background:transparent; color:var(--cream-2); border-color:rgba(255,255,255,.35);}
.btn-ghost::before{background:rgba(255,255,255,.14);}
.btn-ghost:hover{border-color:#fff;}

.btn-outline{background:transparent; color:var(--navy); border-color:var(--navy);}
.btn-outline::before{background:var(--navy);}
.btn-outline:hover{color:#fff;}

/* ---------- NAV ---------- */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(10,15,61,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.logo{
  display:flex; align-items:center; gap:12px;
  color:#fff;
}
.logo-mark{
  flex:none;
  height:40px;
  width:auto;
}
.logo-word{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:19px;
  display:flex; flex-direction:column; line-height:1.05;
}
.logo-word span{
  font-family:'IBM Plex Mono', monospace;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  margin-top:3px;
}
.nav-links{display:flex; gap:34px; align-items:center;}
.nav-links a{
  color:rgba(255,255,255,.82);
  font-size:14.5px;
  font-weight:500;
  transition:color .2s ease;
}
.nav-links a:hover{color:#fff;}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:24px; height:2px; background:#fff; margin:5px 0;}

/* ---------- HERO ---------- */
.hero{
  background:radial-gradient(120% 140% at 78% -10%, var(--navy-soft) 0%, var(--navy) 46%, #060a2b 100%);
  color:#fff;
  padding:100px 0 64px;
  position:relative;
  overflow:hidden;
}
.hero .wrap{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:56px;
  align-items:center;
}
.hero h1{
  color:#fff;
  font-size:clamp(38px, 4.6vw, 60px);
  margin-bottom:22px;
}
.hero h1 em{
  font-style:normal;
  color:var(--gold);
}
.hero .lede{
  color:rgba(255,255,255,.78);
  font-size:17.5px;
  max-width:46ch;
  margin-bottom:34px;
}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:44px;}
.hero-pillars{
  display:flex; gap:28px; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.14);
  padding-top:26px;
}
.hero-pillars div{display:flex; gap:10px; align-items:flex-start; max-width:210px;}
.hero-pillars .mark{color:var(--rose); font-size:16px; margin-top:1px;}
.hero-pillars p{margin:0; color:rgba(255,255,255,.75); font-size:13.5px;}

.hero-image{
  position:relative; width:100%; max-width:480px; margin-left:auto;
  aspect-ratio:4/5;
  border-radius:6px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  background:var(--navy-2);
  opacity:0; animation:fadein .9s ease .2s forwards;
}
.hero-image img{
  width:100%; height:100%; object-fit:cover; object-position:center top;
}
.hero-image .corner{
  position:absolute; width:22px; height:22px; border:1.2px solid rgba(201,162,39,.7); z-index:2;
}
.hero-image .corner.tl{top:16px; left:16px; border-right:none; border-bottom:none;}
.hero-image .corner.br{bottom:16px; right:16px; border-left:none; border-top:none;}
@keyframes fadein{to{opacity:1;}}
@media (prefers-reduced-motion: reduce){ .hero-image{animation:none; opacity:1;} }

/* ---------- SECTION HEADERS ---------- */
.section-head{max-width:640px; margin-bottom:56px;}
.section-head h2{font-size:clamp(28px,3vw,38px);}
.section-head p{font-size:16px; max-width:52ch;}

/* ---------- QUIENES SOMOS ---------- */
.about{background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.about .wrap{display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center;}
.about-photo{
  aspect-ratio:4/5;
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  background:var(--navy);
}
.about-photo img{width:100%; height:100%; object-fit:cover;}
.about-copy blockquote{
  font-family:'Fraunces', serif;
  font-size:22px;
  color:var(--navy);
  font-weight:500;
  border-left:2px solid var(--rose);
  padding-left:22px;
  margin:28px 0;
}
.pillars-list{display:grid; gap:16px; margin-top:26px;}
.pillars-list div{display:flex; gap:12px; align-items:flex-start;}
.pillars-list .mark{
  width:22px; height:22px; border-radius:50%;
  background:var(--rose); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; margin-top:1px;
}
.pillars-list p{margin:0; color:var(--ink); font-size:15px;}

/* ---------- PRODUCTOS ---------- */
.products{background:var(--cream);}
.product-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.product-card{
  position:relative;
  isolation:isolate;
  background:var(--navy);
  padding:34px 28px;
  min-height:420px;
  display:flex; flex-direction:column; gap:16px;
  color:#fff;
  overflow:hidden;
}
.product-card::before{
  /* Imagen de fondo por categoría — ver rutas img/Ahorro.png, img/salud.png, img/Auto.png, img/vida.png */
  content:"";
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
  transform:scale(1.04);
  transition:transform .6s ease;
}
.product-card::after{
  content:"";
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(190deg, rgba(10,15,61,.55) 0%, rgba(10,15,61,.88) 62%, rgba(10,15,61,.97) 100%);
  transition:background .3s ease;
}
.product-card:hover::before{transform:scale(1.1);}
.product-card:hover::after{background:linear-gradient(190deg, rgba(227,28,110,.35) 0%, rgba(10,15,61,.88) 62%, rgba(10,15,61,.97) 100%);}
.card-invest::before{background-image:url('img/ahorro.jpg');}
.card-health::before{background-image:url('img/salud.jpg');}
.card-auto::before{background-image:url('img/auto.jpg');}
.card-vida::before{background-image:url('img/vida.jpg');}
.card-solar::before {background-image:url('img/panel_sol.jpg');}
.product-card .num{font-family:'IBM Plex Mono', monospace; color:var(--gold); font-size:13px; font-weight:600;}
.product-card h3{font-size:19px; margin-bottom:2px; color:#fff;}
.product-card .tag{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.04em;
  color:rgba(255,255,255,.55); text-transform:uppercase; margin-bottom:6px;
}
.product-card ul{list-style:none; margin:auto 0 0; padding:0; display:grid; gap:8px;}
.product-card li{
  font-size:13.5px; color:rgba(255,255,255,.78); padding-left:16px; position:relative;
}
.product-card li::before{
  content:""; position:absolute; left:0; top:8px;
  width:6px; height:1px; background:var(--gold);
}
.product-card .cta{
  margin-top:18px; font-size:13.5px; font-weight:600; color:var(--gold);
  display:inline-flex; align-items:center; gap:6px;
}
.product-card .pending{
  font-size:12px; font-family:'IBM Plex Mono', monospace; color:var(--gold);
  text-transform:uppercase; letter-spacing:.05em;
}
.product-card p{color:rgba(255,255,255,.72);}

/* ---------- CRECIMIENTO / COMPARATIVA ---------- */
.growth{background:var(--navy); color:#fff;}
.growth .section-head h2{color:#fff;}
.growth .section-head p{color:rgba(255,255,255,.68);}
.growth-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.benefit-row{display:flex; gap:18px; padding:22px 0; border-top:1px solid rgba(255,255,255,.14);}
.benefit-row:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.benefit-row .n{font-family:'IBM Plex Mono', monospace; color:var(--gold); font-size:14px; flex:none; width:34px;}
.benefit-row h4{color:#fff; font-size:16.5px; margin-bottom:4px;}
.benefit-row p{color:rgba(255,255,255,.65); font-size:14px; margin:0;}

.proj-caption{
  text-align:left; font-family:'IBM Plex Mono', monospace; font-size:11.5px;
  letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.5);
  margin-bottom:28px; display:block;
}
.proj-chart{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:14px; height:300px; padding-top:10px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.proj-col{
  flex:1; display:flex; flex-direction:column; align-items:center;
  justify-content:flex-end; height:100%; gap:10px;
}
.proj-col .amt{
  font-family:'IBM Plex Mono', monospace; font-weight:600; color:var(--gold);
  font-size:clamp(13px,1.4vw,16px); opacity:0; transform:translateY(6px);
  transition:opacity .5s ease, transform .5s ease;
}
.proj-col.in .amt{opacity:1; transform:none;}
.proj-bar-wrap{
  width:100%; max-width:52px; height:100%; display:flex; align-items:flex-end;
  background:rgba(255,255,255,.06); border-radius:5px 5px 0 0; overflow:hidden;
}
.proj-bar-wrap i{
  display:block; width:100%; height:0%; border-radius:5px 5px 0 0;
  background:linear-gradient(180deg, var(--gold), var(--rose));
  transition:height 1.1s cubic-bezier(.22,.8,.28,1);
}
.proj-col.in .proj-bar-wrap i{height:var(--h);}
.proj-col .age{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:rgba(255,255,255,.55);
  margin-top:2px;
}
.proj-note{font-size:12px; color:rgba(255,255,255,.42); margin-top:20px;}
.growth-cta{margin-top:34px;}

/* ---------- ALIADOS ---------- */
.allies{background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.allies .wrap{text-align:center;}
.allies .section-head{margin-left:auto; margin-right:auto; text-align:center;}
.allies-row{
  display:flex; justify-content:center; align-items:center; gap:18px; flex-wrap:wrap; margin-top:12px;
}
.ally-badge{
  border:1px solid var(--line);
  padding:20px 30px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:140px;
  height:70px;
}
.ally-badge img{
  max-width:100%;
  max-height:36px;
  width:auto;
  object-fit:contain;
}


/* ---------- FAQ ---------- */
.faq{background:var(--cream);}
.faq-cols{display:grid; grid-template-columns:1fr 1fr; gap:48px;}
.faq-col-label{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--rose); margin-bottom:18px; display:block; font-weight:600;
}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%; text-align:left; background:none; border:none; cursor:pointer;
  padding:18px 0; display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-family:'Fraunces', serif; font-size:16.5px; color:var(--navy); font-weight:500;
}
.faq-q .plus{
  flex:none; width:20px; height:20px; position:relative; color:var(--rose);
}
.faq-q .plus::before, .faq-q .plus::after{
  content:""; position:absolute; background:var(--rose); top:50%; left:50%; transform:translate(-50%,-50%);
}
.faq-q .plus::before{width:12px; height:1.5px;}
.faq-q .plus::after{width:1.5px; height:12px; transition:transform .25s ease;}
.faq-item.open .faq-q .plus::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-a p{padding-bottom:18px; margin:0; font-size:14.5px;}
.faq-a ul{margin:0 0 18px; padding-left:18px; font-size:14.5px; color:var(--ink-soft);}
.faq-a li{margin-bottom:6px;}

/* ---------- CONTACTO ---------- */
.contact{background:var(--navy-2); color:#fff;}
.contact .wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:64px;}
.contact h2{color:#fff;}
.contact p{color:rgba(255,255,255,.75);}

form.contact-form{background:#fff; border-radius:var(--radius); padding:38px; color:var(--ink);}
form.contact-form p{color:var(--ink-soft);}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field.full{grid-column:1 / -1;}
.field label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);}
.field input, .field select, .field textarea{
  border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px;
  font-family:'Public Sans', sans-serif; font-size:14.5px; color:var(--ink); background:var(--cream);
}
.field input::placeholder, .field textarea::placeholder{color:var(--ink-soft); opacity:.55;}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--rose); outline-offset:1px;}
.field textarea{resize:vertical; min-height:90px;}
.form-foot{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:6px; flex-wrap:wrap;}
.form-note{font-size:12px; color:var(--ink-soft); max-width:32ch;}

/* ---------- FOOTER ---------- */
footer.site{background:var(--navy); color:rgba(255,255,255,.55); padding-top:72px;}
footer .foot-grid{
  display:grid; grid-template-columns:1.3fr .8fr .8fr 1fr; gap:48px;
  padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1);
}
footer .foot-logo{font-family:'Fraunces', serif; color:#fff; font-size:18px; margin-bottom:14px; display:block;}
footer .foot-tag{font-size:13.5px; max-width:34ch; color:rgba(255,255,255,.5);}
footer .foot-col-label{
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px; display:block; font-weight:600;
}
footer .foot-links{display:flex; flex-direction:column; gap:11px; font-size:14px;}
footer .foot-links a:hover{color:#fff;}
footer .foot-info{display:flex; flex-direction:column; gap:16px;}
footer .info-row{display:flex; gap:12px; align-items:flex-start;}
footer .info-row .ic{flex:none; width:30px; height:30px; border:1px solid rgba(255,255,255,.24); border-radius:50%; display:flex; align-items:center; justify-content:center;}
footer .info-row .val{font-size:13.5px; color:rgba(255,255,255,.75); line-height:1.5;}
footer .social-row{display:flex; gap:10px; margin-top:6px;}
footer .social-ic{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  transition:background .25s ease, border-color .25s ease, transform .25s ease;
}
footer .social-ic svg{width:16px; height:16px;}
footer .social-ic:hover{background:var(--rose); border-color:var(--rose); transform:translateY(-3px);}
footer .foot-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;
  padding:26px 0;
}
footer .foot-bottom-links{display:flex; gap:22px; font-size:12.5px;}
footer .foot-bottom-links a{color:rgba(255,255,255,.55);}
footer .foot-bottom-links a:hover{color:#fff; text-decoration:underline;}
footer .copyright{font-size:12.5px; color:rgba(255,255,255,.4);}

/* ---------- MODAL TÉRMINOS ---------- */
.modal-overlay{
  position:fixed; inset:0; background:rgba(6,9,33,.72); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; z-index:200; padding:24px;
}
.modal-overlay.open{display:flex;}
.modal-box{
  background:var(--cream-2); color:var(--ink); max-width:720px; width:100%;
  max-height:82vh; overflow-y:auto; border-radius:6px; padding:44px;
  position:relative;
}
.modal-box h3{font-size:22px; margin-bottom:4px;}
.modal-box .modal-updated{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; margin-bottom:26px; display:block;}
.modal-box h4{font-size:14.5px; margin:26px 0 8px; color:var(--navy);}
.modal-box p, .modal-box li{font-size:13.5px; color:var(--ink-soft);}
.modal-box ul{padding-left:18px; margin:0 0 1em;}
.modal-close{
  position:absolute; top:20px; right:20px; width:34px; height:34px; border-radius:50%;
  border:1px solid var(--line); background:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.modal-close:hover{background:var(--line);}

/* scroll reveal */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1; transform:none; transition:none;} *,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important;}}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .hero .wrap{grid-template-columns:1fr;}
  .hero-image{max-width:360px; margin:0 auto;}
  .about .wrap{grid-template-columns:1fr;}
  .about-photo{max-width:320px; margin:0 auto;}
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .product-card[style*="span 4"]{grid-column:span 2 !important;}
  .growth-grid{grid-template-columns:1fr; gap:40px;}
  .faq-cols{grid-template-columns:1fr;}
  .contact .wrap{grid-template-columns:1fr;}
  footer .foot-grid{grid-template-columns:1fr 1fr; row-gap:36px;}
}
@media (max-width: 700px){
  .nav-links, .nav-cta .btn-ghost{display:none;}
  .nav-toggle{display:block;}
  section{padding:72px 0;}
  .hero{padding:88px 0 56px;}
  .product-grid{grid-template-columns:1fr;}
  .product-card[style*="span 4"]{grid-column:span 1 !important;}
  .form-row{grid-template-columns:1fr;}
  .proj-chart{height:230px;}
  .proj-bar-wrap{max-width:36px;}
  footer .foot-grid{grid-template-columns:1fr; gap:32px;}
  footer .foot-bottom{flex-direction:column; align-items:flex-start;}
  .modal-box{padding:30px 24px;}
}

/* Respeta preferencia de movimiento reducido para animaciones de entrada */
@media (prefers-reduced-motion: reduce){
  .hero-image{animation:none; opacity:1;}
}
