/* Estética negra APEX */
:root {
  --bg: #0a0a0a;
  --bg-soft: #101010;
  --text: #f2f6f7;
  --muted: #a7b0b3;
  --accent: #17bebb; /* turquesa principal */
  --accent-2: #0d8f90; /* turquesa profundo */
  --danger: #e74c3c;
  --success: #2ecc71;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color: var(--text);
  line-height: 1.6;
  /* Fondo con profundidad: gradientes suaves + grilla sutil */
  background:
    radial-gradient(120% 60% at 50% -20%, rgba(23,190,187,0.08), rgba(0,0,0,0) 70%),
    linear-gradient(180deg, rgba(13,143,144,0.06), rgba(0,0,0,0) 60%),
    repeating-linear-gradient(0deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 1px, transparent 1px, transparent 42px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 1px, transparent 1px, transparent 42px),
    var(--bg);
  background-attachment: fixed, fixed, fixed, fixed, fixed;
}

a { color: var(--accent); text-decoration: none; }
a:hover { color: #e6c17e; }

.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.section { padding: 40px 0; }

/* Paneles claros dentro de secciones para mejorar legibilidad */
.section .container {
  background: linear-gradient(180deg, rgba(23,190,187,0.06), var(--bg-soft));
  border: 1px solid #111;
  border-radius: 12px;
  padding: 20px 24px; /* añade padding vertical sobre el existente */
  box-shadow: 0 8px 22px rgba(0,0,0,0.35);
}

/* Header / Nav */
.header {
  position: sticky; top: 0; z-index: 10;
  background: rgba(0,0,0,0.85);
  border-bottom: 1px solid #111;
  backdrop-filter: saturate(180%) blur(8px);
}
.nav { display: flex; align-items: center; gap: 24px; padding: 12px 0; }
.nav .brand { display: flex; align-items: center; gap: 12px; font-weight: 600; }
.nav img.logo { height: 36px; width: auto; border-radius: 4px; }
.nav .links { margin-left: auto; display: flex; gap: 16px; }
.nav .auth { display: flex; gap: 8px; }

/* Hero */
.hero {
  padding: 80px 0 56px;
  background: linear-gradient(180deg, rgba(23,190,187,0.12), rgba(0,0,0,0) 60%);
}
.hero h1 { font-size: 42px; margin: 16px 0 8px; }
.hero p { color: var(--muted); margin: 0; }
.hero .cta { margin-top: 24px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; justify-content: center; }
.hero .container { text-align: center; }

/* Logo en hero grande */
.logo-hero { height: 200px; width: auto; border-radius: 8px; }

/* Miniaturas para tarjetas */
.thumb { width: 100%; height: 140px; object-fit: cover; border-radius: 10px; border: 1px solid #111; margin-bottom: 10px; }

/* Buttons */
.btn { display: inline-block; padding: 10px 16px; border-radius: 6px; border: 1px solid #222; transition: all .2s; font-weight: 600; position: relative; overflow: hidden; text-align: center; vertical-align: middle; white-space: nowrap; }
.btn-primary { background: linear-gradient(90deg, var(--accent), #17a7a7); color: #081314; border-color: var(--accent-2); }
.btn-primary:hover { filter: brightness(1.08); transform: translateY(-1px); }
.btn-outline { background: transparent; color: var(--text); border-color: #2a2a2a; }
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }
.btn-danger { background: var(--danger); color: #111; border-color: #a93226; }

/* Cards */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.card { background: var(--bg-soft); border: 1px solid #111; border-radius: 10px; padding: 16px; transition: all .2s ease; }
.card:hover { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(23,190,187,.25), 0 12px 30px rgba(0,0,0,.45); transform: translateY(-2px); background: linear-gradient(180deg, rgba(23,190,187,.08), var(--bg-soft)); }
.card h3 { margin: 0 0 8px; }
.card p { color: var(--muted); }

/* Forms */
.form { max-width: 520px; margin: 0 auto; background: var(--bg-soft); border: 1px solid #111; border-radius: 10px; padding: 16px; }
.label { display: block; margin-bottom: 4px; color: var(--muted); }
.input, .select { width: 100%; padding: 10px; border-radius: 8px; border: 1px solid #222; background: #0a0a0a; color: var(--text); }
.input:focus, .select:focus { outline: none; border-color: var(--accent); }
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grid-contact{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.contact-cards{display:grid;grid-template-columns:1fr;gap:12px}
.contact-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #111;border-radius:10px;background:linear-gradient(180deg, rgba(23,190,187,.06), var(--bg-soft));transition:all .2s}
.contact-card:hover{border-color:var(--accent);box-shadow:0 0 0 2px rgba(23,190,187,.25),0 12px 30px rgba(0,0,0,.45);transform:translateY(-2px)}
.contact-icon{width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1px solid #132b2c;box-shadow:inset 0 0 0 2px rgba(23,190,187,.18)}
.contact-icon .icon{width:22px;height:22px;stroke:#e6f6f6;fill:none}
.bg-whatsapp{background:radial-gradient(100% 100% at 30% 20%, #25d366 0%, #0d8f90 100%)}
.bg-email{background:linear-gradient(135deg, #17bebb, #0d8f90)}
.bg-instagram{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af,#515bd4)}
.form-intro{margin-bottom:12px}
.form-intro h3{margin:0 0 6px}
.btn-lg{padding:12px 18px;font-size:1.02rem}
@media (max-width: 900px){
  .grid-contact{grid-template-columns:1fr}
}
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Tables */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid #111; padding: 10px; text-align: left; }
.table th { color: var(--muted); font-weight: 600; }
.table .actions { display: flex; gap: 8px; }

/* Footer */
.footer { border-top: 1px solid #111; padding: 24px 0; color: var(--muted); }

/* Utilities */
.center { text-align: center; }
.muted { color: var(--muted); }
.spacer { height: 8px; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mt-5 { margin-top: 40px; }
/* Nuevas secciones para landing */
.banner{background:#0e0e0e;border:1px solid #111;border-radius:12px;padding:24px}
.grid-2{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:center}
.image-cover{width:100%;border-radius:12px;border:1px solid #111}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.kpis .card{border-color:#132b2c;background:#0c0c0c; transition: all .2s ease;}
.kpis .card:hover{ border-color: var(--accent); box-shadow: 0 0 0 2px rgba(23,190,187,.25), 0 12px 30px rgba(0,0,0,.45); transform: translateY(-2px); background: linear-gradient(180deg, rgba(23,190,187,.10), #0c0c0c);}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(23,190,187,.12);color:var(--accent);border:1px solid rgba(23,190,187,.35);font-weight:600}
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.contact-left{background:var(--bg-soft);border:1px solid #111;border-radius:12px;padding:16px}
.contact-right{background:var(--bg-soft);border:1px solid #111;border-radius:12px;padding:16px}
.contact-form{max-width:unset;margin:0;height:100%;display:flex;flex-direction:column}
.partners{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.partner{opacity:.8;transition:opacity .2s}
.partner:hover{opacity:1}
.cta-section{padding:36px;background:linear-gradient(180deg, rgba(23,190,187,0.10), rgba(0,0,0,0));border:1px solid #111;border-radius:12px;text-align:center}
.ticker{background:#0c0c0c;border-bottom:1px solid #111}
.testimonial{background:#0f0f0f;border:1px solid #111;border-radius:12px;padding:16px}
/* Background candles overlay */
.bg-candles {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}
/* Ensure content sits above background overlay */
header, .ticker, main, section, footer {
  position: relative;
  z-index: 1;
}
.nav .social{display:flex;gap:12px}
.nav .social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #222;border-radius:999px;color:#e6f6f6;opacity:.85;transition:all .2s}
.nav .social a:hover{border-color:var(--accent);color:var(--accent);opacity:1;transform:translateY(-1px)}
.nav .social .icon{width:22px;height:22px}
/* Tooltip QR para Instagram en el header */
.nav .social a.instagram{position:relative}
.nav .social a.instagram .qr-tooltip{position:absolute;top:36px;left:50%;transform:translateX(-50%);width:160px;padding:8px;background:#0c0c0c;border:1px solid #111;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.45);display:none;z-index:20}
.nav .social a.instagram .qr-tooltip img{width:100%;height:auto;display:block;border-radius:6px}
.nav .social a.instagram:hover .qr-tooltip{display:block}

/* Tooltip QR para Instagram en tarjeta de contacto */
.contact-icon.bg-instagram{position:relative}
.contact-icon.bg-instagram .qr-tooltip{position:absolute;top:-6px;left:52px;width:160px;padding:8px;background:#0c0c0c;border:1px solid #111;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.45);display:none;z-index:20}
.contact-card:hover .contact-icon.bg-instagram .qr-tooltip{display:block}
@media (max-width: 900px){
  .grid-contact{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
}
@media (max-width: 700px){
  .form .row{grid-template-columns:1fr}
}
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Tables */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid #111; padding: 10px; text-align: left; }
.table th { color: var(--muted); font-weight: 600; }
.table .actions { display: flex; gap: 8px; }

/* Footer */
.footer { border-top: 1px solid #111; padding: 24px 0; color: var(--muted); }

/* Utilities */
.center { text-align: center; }
.muted { color: var(--muted); }
.spacer { height: 8px; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mt-5 { margin-top: 40px; }
/* Nuevas secciones para landing */
.banner{background:#0e0e0e;border:1px solid #111;border-radius:12px;padding:24px}
.grid-2{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:center}
.image-cover{width:100%;border-radius:12px;border:1px solid #111}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.kpis .card{border-color:#132b2c;background:#0c0c0c; transition: all .2s ease;}
.kpis .card:hover{ border-color: var(--accent); box-shadow: 0 0 0 2px rgba(23,190,187,.25), 0 12px 30px rgba(0,0,0,.45); transform: translateY(-2px); background: linear-gradient(180deg, rgba(23,190,187,.10), #0c0c0c);}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(23,190,187,.12);color:var(--accent);border:1px solid rgba(23,190,187,.35);font-weight:600}
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.contact-left{background:var(--bg-soft);border:1px solid #111;border-radius:12px;padding:16px}
.contact-form{max-width:unset;margin:0}
.partners{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.partner{opacity:.8;transition:opacity .2s}
.partner:hover{opacity:1}
.cta-section{padding:36px;background:linear-gradient(180deg, rgba(23,190,187,0.10), rgba(0,0,0,0));border:1px solid #111;border-radius:12px;text-align:center}
.ticker{background:#0c0c0c;border-bottom:1px solid #111}
.testimonial{background:#0f0f0f;border:1px solid #111;border-radius:12px;padding:16px}
/* Background candles overlay */
.bg-candles {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}
/* Ensure content sits above background overlay */
header, .ticker, main, section, footer {
  position: relative;
  z-index: 1;
}
@media (max-width: 640px){
  .nav{flex-wrap:wrap}
}
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Tables */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid #111; padding: 10px; text-align: left; }
.table th { color: var(--muted); font-weight: 600; }
.table .actions { display: flex; gap: 8px; }

/* Footer */
.footer { border-top: 1px solid #111; padding: 24px 0; color: var(--muted); }

/* Utilities */
.center { text-align: center; }
.muted { color: var(--muted); }
.spacer { height: 8px; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mt-5 { margin-top: 40px; }
/* Nuevas secciones para landing */
.banner{background:#0e0e0e;border:1px solid #111;border-radius:12px;padding:24px}
.grid-2{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:center}
.image-cover{width:100%;border-radius:12px;border:1px solid #111}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.kpis .card{border-color:#132b2c;background:#0c0c0c; transition: all .2s ease;}
.kpis .card:hover{ border-color: var(--accent); box-shadow: 0 0 0 2px rgba(23,190,187,.25), 0 12px 30px rgba(0,0,0,.45); transform: translateY(-2px); background: linear-gradient(180deg, rgba(23,190,187,.10), #0c0c0c);}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(23,190,187,.12);color:var(--accent);border:1px solid rgba(23,190,187,.35);font-weight:600}
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.contact-left{background:var(--bg-soft);border:1px solid #111;border-radius:12px;padding:16px}
.contact-form{max-width:unset;margin:0}
.partners{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.partner{opacity:.8;transition:opacity .2s}
.partner:hover{opacity:1}
.cta-section{padding:36px;background:linear-gradient(180deg, rgba(23,190,187,0.10), rgba(0,0,0,0));border:1px solid #111;border-radius:12px;text-align:center}
.ticker{background:#0c0c0c;border-bottom:1px solid #111}
.testimonial{background:#0f0f0f;border:1px solid #111;border-radius:12px;padding:16px}
/* Background candles overlay */
.bg-candles {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}
/* Ensure content sits above background overlay */
header, .ticker, main, section, footer {
  position: relative;
  z-index: 1;
}
@media (max-width: 640px){
  .nav{flex-wrap:wrap}
}
.form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Tables */
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { border-bottom: 1px solid #111; padding: 10px; text-align: left; }
.table th { color: var(--muted); font-weight: 600; }
.table .actions { display: flex; gap: 8px; }

/* Footer */
.footer { border-top: 1px solid #111; padding: 24px 0; color: var(--muted); }

/* Utilities */
.center { text-align: center; }
.muted { color: var(--muted); }
.spacer { height: 8px; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 32px; }
.mt-5 { margin-top: 40px; }
/* Nuevas secciones para landing */
.banner{background:#0e0e0e;border:1px solid #111;border-radius:12px;padding:24px}
.grid-2{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;align-items:center}
.image-cover{width:100%;border-radius:12px;border:1px solid #111}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.kpis .card{border-color:#132b2c;background:#0c0c0c; transition: all .2s ease;}
.kpis .card:hover{ border-color: var(--accent); box-shadow: 0 0 0 2px rgba(23,190,187,.25), 0 12px 30px rgba(0,0,0,.45); transform: translateY(-2px); background: linear-gradient(180deg, rgba(23,190,187,.10), #0c0c0c);}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:rgba(23,190,187,.12);color:var(--accent);border:1px solid rgba(23,190,187,.35);font-weight:600}
.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.contact-left{background:var(--bg-soft);border:1px solid #111;border-radius:12px;padding:16px}
.contact-form{max-width:unset;margin:0}
.partners{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.partner{opacity:.8;transition:opacity .2s}
.partner:hover{opacity:1}
.cta-section{padding:36px;background:linear-gradient(180deg, rgba(23,190,187,0.10), rgba(0,0,0,0));border:1px solid #111;border-radius:12px;text-align:center}
.ticker{background:#0c0c0c;border-bottom:1px solid #111}
.testimonial{background:#0f0f0f;border:1px solid #111;border-radius:12px;padding:16px}
/* Background candles overlay */
.bg-candles {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 0;
}
/* Ensure content sits above background overlay */
header, .ticker, main, section, footer {
  position: relative;
  z-index: 1;
}
/* Responsive overrides: ensure KPIs stack correctly */
 .kpis{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

/* Services: uniform image sizes and responsive stacking */
.service-rows{display:grid;gap:24px}
.service-row{align-items:center}
.section#services .service-row{display:grid}
.section#services .service-row.grid-2{grid-template-columns:1fr 1fr}
.service-row.grid-2{gap:16px}
.service-row .image-cover{
  aspect-ratio: 16 / 10;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid #111;
}
@media (min-width: 1025px){
  /* Desktop: fix uniform image height across all service rows */
  #services .service-row .image-cover{height: 300px}
}
@media (max-width: 1024px){
  /* Ensure single column for service rows on tablets/mobiles */
  .service-row.grid-2{grid-template-columns:1fr !important}
}
@media (max-width: 700px){
  /* Give images comfortable height on small phones */
  .service-row .image-cover{aspect-ratio: 4 / 3}
}
/* Global responsive stacking to ensure images go above/below text */
@media (max-width: 1024px){
  .grid-2{grid-template-columns:1fr !important;align-items:start}
}
@media (max-width: 700px){
  /* Provide comfortable mobile height for images inside two-column grids */
  .grid-2 .image-cover{height:clamp(220px,36vh,320px);object-fit:cover}
}