*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --navy:        #1b2547;
  --navy-mid:    #2a3660;
  --navy-light:  #3d4f7c;
  --silver:      #8a90a8;
  --silver-light:#b8bdd0;
  --white:       #ffffff;
  --off-white:   #f4f5f8;
  --light:       #eef0f5;
  --text:        #2c3050;
  --text-muted:  #6b7280;
}
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--off-white); color:var(--text); overflow-x:hidden; }

/* TOPBAR */
.topbar { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:0 2rem; height:76px; background:rgba(27,37,71,0.97); backdrop-filter:blur(14px); border-bottom:1px solid rgba(255,255,255,0.07); }
.topbar-logo img { height:56px; width:auto; background:var(--white); padding:5px 12px; border-radius:3px; display:block; }
.topbar-info { display:flex; align-items:center; gap:2rem; }
.topbar-info a { color:rgba(255,255,255,0.55); text-decoration:none; font-size:0.8rem; transition:color 0.2s; }
.topbar-info a:hover { color:var(--white); }

/* MENU */
.menu-toggle { position:fixed; top:1.2rem; right:1.5rem; z-index:300; width:44px; height:44px; background:var(--navy); border:none; border-radius:3px; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.menu-toggle span { display:block; width:22px; height:2px; background:var(--white); transition:all 0.35s cubic-bezier(.4,0,.2,1); transform-origin:center; }
.menu-toggle.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.menu-toggle.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.sidebar-overlay { position:fixed; inset:0; z-index:200; background:rgba(11,16,40,0.55); backdrop-filter:blur(4px); opacity:0; pointer-events:none; transition:opacity 0.35s; }
.sidebar-overlay.active { opacity:1; pointer-events:all; }
.sidebar { position:fixed; top:0; right:-360px; z-index:250; width:300px; height:100%; background:var(--navy); display:flex; flex-direction:column; transition:right 0.4s cubic-bezier(.4,0,.2,1); overflow:hidden; }
.sidebar.open { right:0; }
.sidebar-header { padding:1.8rem 2rem 1.4rem; border-bottom:1px solid rgba(255,255,255,0.08); }
.sidebar-header img { height:60px; width:auto; background:var(--white); padding:8px 14px; border-radius:4px; display:block; max-width:100%; }
.sidebar-nav { flex:1; overflow-y:auto; padding:1.2rem 0; }
.sidebar-nav a { display:flex; align-items:center; gap:0.9rem; padding:0.9rem 2rem; color:rgba(255,255,255,0.72); text-decoration:none; font-size:0.9rem; border-left:3px solid transparent; transition:all 0.2s; }
.sidebar-nav a:hover { color:var(--white); background:rgba(255,255,255,0.06); border-left-color:var(--silver-light); }
.sidebar-nav a.active { color:var(--white); background:rgba(255,255,255,0.08); border-left-color:var(--silver-light); }
.nav-icon { font-size:1rem; width:22px; text-align:center; }
.sidebar-divider { height:1px; background:rgba(255,255,255,0.07); margin:0.4rem 2rem; }
.sidebar-footer { padding:1.4rem 2rem 2rem; border-top:1px solid rgba(255,255,255,0.08); }
.sidebar-footer .btn-cta { display:block; width:100%; background:var(--white); color:var(--navy); text-align:center; padding:0.85rem; border-radius:3px; font-weight:600; font-size:0.85rem; letter-spacing:0.04em; text-decoration:none; transition:background 0.2s; }
.sidebar-footer .btn-cta:hover { background:var(--silver-light); }
.sidebar-contact-mini { margin-top:1rem; font-size:0.78rem; color:rgba(255,255,255,0.38); line-height:1.8; }

/* COMÚN */
section { padding:6rem 7%; }
.section-label { display:inline-flex; align-items:center; gap:0.6rem; font-size:0.7rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--navy-light); font-weight:500; margin-bottom:1rem; }
.section-label::before { content:''; width:22px; height:1px; background:var(--navy-light); }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(1.7rem,2.8vw,2.4rem); font-weight:700; line-height:1.2; color:var(--navy); margin-bottom:1rem; }
.section-sub { font-size:0.95rem; color:var(--text-muted); line-height:1.75; max-width:560px; }
.btn-primary { background:var(--white); color:var(--navy); padding:0.85rem 2rem; font-size:0.875rem; font-weight:600; border:none; border-radius:3px; cursor:pointer; text-decoration:none; letter-spacing:0.04em; transition:all 0.25s; display:inline-block; font-family:'DM Sans',sans-serif; }
.btn-primary:hover { background:var(--silver-light); transform:translateY(-2px); }
.btn-ghost { background:transparent; color:rgba(255,255,255,0.75); padding:0.85rem 2rem; font-size:0.875rem; border:1px solid rgba(255,255,255,0.2); border-radius:3px; cursor:pointer; text-decoration:none; letter-spacing:0.04em; transition:all 0.25s; display:inline-block; }
.btn-ghost:hover { border-color:var(--silver-light); color:var(--white); transform:translateY(-2px); }

/* FOOTER */
footer { background:var(--navy); padding:2rem 7%; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; border-top:1px solid rgba(255,255,255,0.06); }
footer img { height:48px; width:auto; background:var(--white); padding:5px 12px; border-radius:3px; display:block; }
footer p { font-size:0.78rem; color:rgba(255,255,255,0.35); }
.footer-links { display:flex; gap:1.5rem; }
.footer-links a { color:rgba(255,255,255,0.4); text-decoration:none; font-size:0.78rem; transition:color 0.2s; }
.footer-links a:hover { color:var(--white); }

/* IMÁGENES RESPONSIVE - regla global */
img { max-width: 100%; height: auto; display: block; }

/* FOOTER TRUST BADGE */
.footer-trust { display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.trust-badge {
  display:inline-flex; align-items:center; gap:0.4rem;
  background:rgba(16,185,129,0.15);
  border:1px solid rgba(16,185,129,0.4);
  color:#10b981;
  font-size:0.72rem; font-weight:600;
  padding:0.35rem 0.8rem; border-radius:20px;
  letter-spacing:0.04em;
}

/* WHATSAPP */
.whatsapp-btn { position:fixed; bottom:2rem; right:2rem; z-index:150; width:54px; height:54px; border-radius:50%; background:#25d366; box-shadow:0 4px 20px rgba(37,211,102,0.4); display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:1.6rem; transition:transform 0.2s, box-shadow 0.2s; }
.whatsapp-btn:hover { transform:scale(1.1); box-shadow:0 6px 28px rgba(37,211,102,0.5); }

/* ANIMATIONS */
.fade-up { opacity:0; transform:translateY(28px); transition:opacity 0.65s ease, transform 0.65s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* RESPONSIVE */
@media (max-width:960px) { section { padding:4rem 6%; } .topbar-info { display:none; } }
