<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Band Of Coders — Diseño Web Estratégico</title>

<!-- SEO Primary -->
<meta name="description" content="Construimos sitios web que convierten visitas en clientes. Diseño web estratégico, desarrollo técnico, SEO y copywriting en un solo equipo. Desde $18,000 MXN.">
<meta name="robots" content="index, follow">
<meta name="author" content="Band Of Coders">
<link rel="canonical" href="https://bandofcoders.mx/">

<!-- Hreflang — versiones de idioma -->
<link rel="alternate" hreflang="es" href="https://bandofcoders.mx/">
<link rel="alternate" hreflang="en" href="https://bandofcoders.mx/en.html">
<link rel="alternate" hreflang="x-default" href="https://bandofcoders.mx/">

<!-- Open Graph (redes sociales) -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://bandofcoders.mx/">
<meta property="og:title" content="Band Of Coders — Diseño Web Estratégico">
<meta property="og:description" content="No construimos sitios web. Construimos máquinas de ventas digitales. Estrategia, diseño, desarrollo y SEO en un solo equipo.">
<meta property="og:image" content="https://bandofcoders.mx/logo.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="200">
<meta property="og:locale" content="es_MX">
<meta property="og:site_name" content="Band Of Coders">

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Band Of Coders — Diseño Web Estratégico">
<meta name="twitter:description" content="No construimos sitios web. Construimos máquinas de ventas digitales.">
<meta name="twitter:image" content="https://bandofcoders.mx/logo.png">

<!-- Schema.org JSON-LD -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://bandofcoders.mx/#organization",
      "name": "Band Of Coders",
      "url": "https://bandofcoders.mx/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://bandofcoders.mx/logo.png"
      },
      "contactPoint": {
        "@type": "ContactPoint",
        "telephone": "+52-55-2555-5540",
        "email": "info@bandofcoders.mx",
        "contactType": "customer service",
        "areaServed": ["MX","US","LA"],
        "availableLanguage": ["Spanish","English"]
      },
      "address": {
        "@type": "PostalAddress",
        "addressCountry": "MX",
        "addressLocality": "Ciudad de México"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://bandofcoders.mx/#website",
      "url": "https://bandofcoders.mx/",
      "name": "Band Of Coders",
      "publisher": { "@id": "https://bandofcoders.mx/#organization" },
      "inLanguage": ["es","en"]
    },
    {
      "@type": "ProfessionalService",
      "@id": "https://bandofcoders.mx/#service",
      "name": "Band Of Coders — Diseño Web Estratégico",
      "description": "Agencia de diseño web, desarrollo, SEO y marketing digital. Construimos sitios web que generan clientes reales.",
      "url": "https://bandofcoders.mx/",
      "provider": { "@id": "https://bandofcoders.mx/#organization" },
      "areaServed": "Latinoamérica",
      "hasOfferCatalog": {
        "@type": "OfferCatalog",
        "name": "Paquetes de diseño web",
        "itemListElement": [
          {
            "@type": "Offer",
            "name": "Paquete Profesionista",
            "price": "18000",
            "priceCurrency": "MXN",
            "description": "Landing page completa con copywriting, SEO básico, dominio y hosting."
          },
          {
            "@type": "Offer",
            "name": "Paquete PYME",
            "price": "24000",
            "priceCurrency": "MXN",
            "description": "Sitio web completo hasta 6 secciones, SEO técnico, Analytics y soporte 6 meses."
          },
          {
            "@type": "Offer",
            "name": "Paquete Corporativo",
            "price": "42000",
            "priceCurrency": "MXN",
            "description": "Sitio multipágina personalizado con integraciones CRM y soporte prioritario 12 meses."
          }
        ]
      }
    }
  ]
}
</script>

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@0,300;0,400;0,700;1,300;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=DM+Mono:wght@300;400&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --black:#080808;
  --off-black:#0e0e0e;
  --surface:#141414;
  --surface2:#1a1a1a;
  --border:#ffffff0d;
  --border2:#ffffff18;
  --gold:#E52525;
  --gold-dim:#E5252555;
  --white:#f7f2ee;
  --muted:#897870;
  --muted2:#554540;
  --serif:'Merriweather',Georgia,serif;
  --sans:'DM Sans',sans-serif;
  --mono:'DM Mono',monospace;
}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.7;overflow-x:hidden;cursor:none}

/* CUSTOM CURSOR */
.cursor{position:fixed;width:8px;height:8px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:9999;transition:transform .15s ease;mix-blend-mode:difference}
.cursor-ring{position:fixed;width:36px;height:36px;border:1px solid var(--gold-dim);border-radius:50%;pointer-events:none;z-index:9998;transition:transform .35s cubic-bezier(.25,.46,.45,.94),opacity .3s}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.5rem 4rem;display:flex;justify-content:space-between;align-items:center;mix-blend-mode:normal}
nav::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,var(--black) 0%,transparent 100%);z-index:-1;pointer-events:none}
.nav-logo{display:flex;align-items:center;text-decoration:none}
.nav-logo img{height:38px;width:auto;display:block}
.nav-links{display:flex;gap:2rem;list-style:none}
.nav-links a{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s}
.nav-links a:hover{color:var(--white)}
.nav-cta{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;color:var(--gold);border:1px solid var(--gold-dim);padding:.5rem 1.25rem;text-decoration:none;transition:all .3s;text-transform:uppercase}
.nav-cta:hover{background:var(--gold);color:var(--black)}
.nav-cta-wa{background:#25D366;color:#fff!important;border-color:#25D366;display:inline-flex;align-items:center;gap:.5rem}
.nav-cta-wa:hover{background:#1da851!important;border-color:#1da851!important;color:#fff!important}
.nav-cta-wa i{font-size:1em}
.btn-whatsapp{background:#25D366!important;color:#fff!important}
.btn-whatsapp:hover{background:#1da851!important;color:#fff!important}
.btn-whatsapp i{font-size:1.15em;margin-left:.5rem;vertical-align:middle}

/* CANVAS */
#hero-canvas{position:absolute;inset:0;width:100%;height:100%}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;opacity:0;transform:translateY(20px);animation:fadeUp .8s .3s forwards}
.hero h1{font-family:var(--serif);font-size:clamp(3rem,6vw,5.5rem);font-weight:300;line-height:1.1;letter-spacing:-.02em;margin-bottom:1.5rem;opacity:0;transform:translateY(30px);animation:fadeUp 1s .5s forwards}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero h1 strong{font-weight:700}
.hero-sub{font-size:1.1rem;font-weight:300;color:var(--muted);max-width:520px;line-height:1.8;margin-bottom:3rem;opacity:0;transform:translateY(20px);animation:fadeUp .8s .8s forwards}
.hero-ctas{display:flex;gap:1.5rem;align-items:center;opacity:0;animation:fadeUp .8s 1s forwards}
.btn-gold{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;background:var(--gold);color:var(--black);padding:.9rem 2.5rem;text-decoration:none;font-weight:400;transition:all .3s}
.btn-gold:hover{background:var(--white)}
.btn-ghost{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--muted2);padding-bottom:2px;transition:all .3s}
.btn-ghost:hover{color:var(--white);border-color:var(--white)}
.hero-scroll{position:absolute;bottom:3rem;left:4rem;display:flex;align-items:center;gap:1rem;opacity:0;animation:fadeUp .8s 1.3s forwards}
.scroll-line{width:60px;height:1px;background:var(--gold-dim);position:relative;overflow:hidden}
.scroll-line::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--gold);animation:scrollLine 2s 2s infinite}
.scroll-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted2)}
.hero-number{position:absolute;right:4rem;bottom:3rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;color:var(--muted2);opacity:0;animation:fadeUp .8s 1.3s forwards}

/* HERO TWO-COLUMN */
.hero-content{position:relative;z-index:2;padding:0 4rem;max-width:1200px;margin:0 auto;width:100%}
.hero-left{position:relative;z-index:3;max-width:600px}
.hero-right{position:absolute;right:-2rem;top:50%;transform:translateY(-50%);width:48%;pointer-events:none;opacity:0;animation:fadeUp 1.4s 1s forwards;z-index:1}
#hero-abstract{width:100%;height:auto;opacity:.85}
@keyframes svgBarGrow{0%,100%{transform:scaleY(.65);opacity:.5}50%{transform:scaleY(1);opacity:1}}
@keyframes svgCtaPulse{0%,100%{opacity:.55}50%{opacity:.92}}
@keyframes svgCursorBlink{0%,49%{opacity:.8}50%,100%{opacity:0}}
.svg-bar{transform-box:fill-box;transform-origin:bottom center;animation:svgBarGrow 2.4s ease-in-out infinite}
.svg-bar-1{animation-delay:0s}.svg-bar-2{animation-delay:.35s}.svg-bar-3{animation-delay:.7s}.svg-bar-4{animation-delay:1.05s}
.svg-cta-btn{animation:svgCtaPulse 2s ease-in-out infinite}
.svg-cursor{animation:svgCursorBlink 1.1s step-end infinite}

@media(max-width:900px){
  .hero-right{display:none}
}

/* MARQUEE */
.marquee-section{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.2rem 0;overflow:hidden;background:var(--off-black)}
.marquee-track{display:flex;gap:0;white-space:nowrap;animation:marquee 25s linear infinite}
.marquee-item{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted2);padding:0 2.5rem;border-right:1px solid var(--border2)}
.marquee-item span{color:var(--gold);margin-right:.5rem}

/* SECTIONS COMMON */
section{padding:8rem 4rem}
.section-inner{max-width:1200px;margin:0 auto}
.section-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}
.section-label::before{content:'';display:inline-block;width:30px;height:1px;background:var(--gold)}
h2.section-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);font-weight:300;line-height:1.15;letter-spacing:-.02em;margin-bottom:1.5rem}
h2.section-title em{font-style:italic;color:var(--gold)}

/* REVEAL ANIMATIONS */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.25,.46,.45,.94),transform .9s cubic-bezier(.25,.46,.45,.94)}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .9s cubic-bezier(.25,.46,.45,.94),transform .9s cubic-bezier(.25,.46,.45,.94)}
.reveal-left.visible{opacity:1;transform:none}
.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.delay-4{transition-delay:.4s}.delay-5{transition-delay:.5s}.delay-6{transition-delay:.6s}

/* PROBLEM SECTION */
.problem-section{background:var(--off-black)}
.problem-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:4rem;border:1px solid var(--border)}
.problem-card{background:var(--off-black);padding:3rem;transition:background .4s}
.problem-card:hover{background:var(--surface)}
.problem-num{font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;color:var(--muted2);margin-bottom:1.5rem}
.problem-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:400;margin-bottom:1rem;line-height:1.3}
.problem-card p{font-size:.9rem;color:var(--muted);line-height:1.8}
.problem-intro{font-size:1.1rem;color:var(--muted);max-width:600px;line-height:1.8}

/* SOLUTION */
.solution-section{background:var(--black);position:relative;overflow:hidden}
.solution-section::before{content:'';position:absolute;top:-200px;right:-200px;width:600px;height:600px;background:radial-gradient(circle,#E525250a 0%,transparent 70%);pointer-events:none}
.solution-cols{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start;margin-top:5rem}
.solution-text p{font-size:1rem;color:var(--muted);line-height:1.9;margin-bottom:1.5rem}
.solution-text p strong{color:var(--white);font-weight:400}
.differentiators{display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.diff-item{padding:2rem 2.5rem;border-bottom:1px solid var(--border);transition:background .3s}
.diff-item:last-child{border-bottom:none}
.diff-item:hover{background:var(--surface)}
.diff-num{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;color:var(--gold);margin-bottom:.75rem}
.diff-item h3{font-family:var(--serif);font-size:1rem;font-weight:400;margin-bottom:.5rem;letter-spacing:.01em}
.diff-item p{font-size:.85rem;color:var(--muted);line-height:1.7}

/* PROCESS */
.process-section{background:var(--off-black)}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:4rem;border:1px solid var(--border)}
.process-step{padding:2.5rem 2rem;border-right:1px solid var(--border);position:relative;transition:background .3s}
.process-step:last-child{border-right:none}
.process-step:hover{background:var(--surface2)}
.process-step::after{content:'';position:absolute;bottom:0;left:2rem;right:2rem;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.process-step:hover::after{transform:scaleX(1)}
.step-num{font-family:var(--mono);font-size:2.5rem;font-weight:300;color:var(--border2);line-height:1;margin-bottom:1.5rem;display:block}
.step-agent{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.process-step h3{font-family:var(--serif);font-size:.95rem;font-weight:400;margin-bottom:.75rem;line-height:1.3}
.process-step p{font-size:.8rem;color:var(--muted);line-height:1.7}
.process-timeline{font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;color:var(--muted2);margin-top:1rem;border-top:1px solid var(--border);padding-top:.75rem}
.process-row2{display:grid;grid-template-columns:repeat(5,1fr);gap:0;border:1px solid var(--border);border-top:none}
.process-row2 .process-step{border-right:1px solid var(--border)}
.process-row2 .process-step:last-child{border-right:none}

/* CREW */
.crew-section{background:var(--black);position:relative}
.crew-intro{font-size:1.05rem;color:var(--muted);max-width:600px;line-height:1.8;margin-top:1rem;margin-bottom:4rem}
.crew-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.crew-card{background:var(--black);padding:2.5rem 2rem;transition:background .4s,transform .4s;cursor:default;position:relative;overflow:hidden}
.crew-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:0;background:linear-gradient(to top,var(--surface2),transparent);transition:height .4s}
.crew-card:hover::before{height:100%}
.crew-card:hover{background:var(--off-black)}
.crew-initial{font-size:1.8rem;color:var(--border2);margin-bottom:1.5rem;transition:color .3s,transform .3s;position:relative;z-index:1;display:block}
.crew-card:hover .crew-initial{color:var(--gold);transform:scale(1.12)}
.crew-role-tag{font-family:var(--mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;position:relative;z-index:1}
.crew-card h3{font-family:var(--serif);font-size:1rem;font-weight:400;margin-bottom:.75rem;position:relative;z-index:1}
.crew-card .crew-role{font-size:.78rem;color:var(--muted);line-height:1.5;margin-bottom:1rem;position:relative;z-index:1}
.crew-quote{font-size:.78rem;color:var(--muted2);line-height:1.6;font-style:italic;border-top:1px solid var(--border);padding-top:1rem;margin-top:auto;display:none;position:relative;z-index:1}
.crew-card:hover .crew-quote{display:block}

/* CASOS */
.cases-section{background:var(--off-black)}
.cases-intro{font-size:1rem;color:var(--muted);max-width:580px;line-height:1.8;margin-bottom:4rem}
.cases-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.case-item{display:grid;grid-template-columns:200px 1fr 1fr;gap:0;border-bottom:1px solid var(--border);transition:background .3s}
.case-item:last-child{border-bottom:none}
.case-item:hover{background:var(--surface2)}
.case-industry{padding:2.5rem;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center}
.case-industry span{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;display:block}
.case-industry h3{font-family:var(--serif);font-size:1rem;font-weight:400}
.case-problem{padding:2.5rem;border-right:1px solid var(--border)}
.case-result{padding:2.5rem}
.case-label{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted2);margin-bottom:.75rem;display:block}
.case-problem p,.case-result p{font-size:.85rem;color:var(--muted);line-height:1.75}
.case-result p strong{color:var(--white);font-weight:400}

/* PRICING */
.pricing-section{background:var(--black);position:relative;overflow:hidden}
.pricing-section::before{content:'';position:absolute;bottom:-300px;left:-200px;width:700px;height:700px;background:radial-gradient(circle,#E5252507 0%,transparent 70%);pointer-events:none}
.pricing-intro{font-size:1rem;color:var(--muted);max-width:560px;line-height:1.8;margin-bottom:4rem}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.pricing-card{background:var(--black);padding:3.5rem 3rem;position:relative;transition:background .4s}
.pricing-card:hover{background:var(--surface)}
.pricing-card.featured{background:var(--surface);border-left:1px solid var(--gold-dim);border-right:1px solid var(--gold-dim)}
.pricing-tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;display:block}
.pricing-card h3{font-family:var(--serif);font-size:1.4rem;font-weight:300;margin-bottom:.5rem}
.pricing-for{font-size:.82rem;color:var(--muted);margin-bottom:2.5rem;line-height:1.6}
.pricing-price{font-family:var(--mono);font-size:2.8rem;font-weight:300;color:var(--white);line-height:1;margin-bottom:.25rem}
.pricing-price sub{font-size:.9rem;vertical-align:baseline}
.pricing-tax{font-family:var(--mono);font-size:.65rem;color:var(--muted2);margin-bottom:3rem;letter-spacing:.1em}
.pricing-features{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin-bottom:3rem;border-top:1px solid var(--border);padding-top:2rem}
.pricing-features li{font-size:.85rem;color:var(--muted);padding-left:1.25rem;position:relative;line-height:1.5}
.pricing-features li::before{content:'—';position:absolute;left:0;color:var(--gold);font-family:var(--mono)}
.pricing-features li.highlight{color:var(--white)}
.pricing-cta{display:block;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:1rem;border:1px solid var(--border2);color:var(--muted);text-decoration:none;transition:all .3s}
.pricing-cta:hover,.pricing-card.featured .pricing-cta{border-color:var(--gold);color:var(--gold)}
.pricing-card.featured .pricing-cta:hover{background:var(--gold);color:var(--black)}

/* PRICING DISCOUNT TIP */
.pricing-discount{display:flex;align-items:center;gap:1.5rem;background:var(--surface);border:1px solid var(--border2);border-left:3px solid var(--gold);padding:1.5rem 2rem;margin-top:2rem;font-size:.88rem;color:var(--muted);line-height:1.7;flex-wrap:wrap}
.pricing-discount>.pd-icon{font-size:1.5rem;color:var(--gold);flex-shrink:0}
.pricing-discount strong{color:var(--white);font-weight:400}
.pricing-discount-cta{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:#25D366;text-decoration:none;border:1px solid rgba(37,211,102,.3);padding:.55rem 1.1rem;white-space:nowrap;transition:all .3s;flex-shrink:0;display:inline-flex;align-items:center;gap:.4rem}
.pricing-discount-cta:hover{background:#25D366;color:#000}
/* PARA QUIEN */
.fit-section{background:var(--off-black)}
.fit-cols{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);margin-top:4rem}
.fit-col{background:var(--off-black);padding:3.5rem}
.fit-col h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}
.fit-col h3 em{color:var(--gold);font-style:normal}
.fit-list{list-style:none;display:flex;flex-direction:column;gap:1rem}
.fit-list li{font-size:.9rem;color:var(--muted);padding-left:1.5rem;position:relative;line-height:1.7}
.fit-list.yes li::before{content:'✓';position:absolute;left:0;color:var(--gold);font-family:var(--mono);font-size:.8rem}
.fit-list.no li::before{content:'×';position:absolute;left:0;color:var(--muted2);font-family:var(--mono)}

/* COMPARE */
.compare-section{background:var(--black)}
.compare-table{width:100%;border-collapse:collapse;margin-top:4rem;font-size:.85rem}
.compare-table th{font-family:var(--mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);color:var(--muted);font-weight:400;text-align:left}
.compare-table th:first-child{color:var(--white)}
.compare-table td{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:middle}
.compare-table tr:last-child td{border-bottom:none}
.compare-table td:first-child{color:var(--white);font-weight:400}
.check{color:var(--gold);font-family:var(--mono)}
.cross{color:var(--muted2);font-family:var(--mono)}
.compare-table .boc-col{color:var(--white)}
.compare-table thead th.boc-head{color:var(--gold);border-bottom:1px solid var(--gold-dim)}
.compare-table tbody tr:hover td{background:var(--surface)}

/* FAQ */
.faq-section{background:var(--off-black)}
.faq-cols{display:grid;grid-template-columns:1fr 2fr;gap:8rem;align-items:start;margin-top:5rem}
.faq-sticky{position:sticky;top:8rem}
.faq-sticky p{font-size:.95rem;color:var(--muted);line-height:1.8;margin-top:1rem}
.faq-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border);overflow:hidden}
.faq-item:last-child{border-bottom:none}
.faq-q{padding:2rem 2.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:var(--serif);font-size:.95rem;font-weight:400;transition:color .3s;gap:2rem}
.faq-q:hover{color:var(--gold)}
.faq-icon{font-family:var(--mono);font-size:1.2rem;color:var(--gold-dim);flex-shrink:0;transition:transform .3s}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.25,.46,.45,.94)}
.faq-item.open .faq-a{max-height:300px}
.faq-a-inner{padding:0 2.5rem 2rem;font-size:.88rem;color:var(--muted);line-height:1.85}

/* CTA FINAL */
.cta-section{background:var(--black);text-align:center;position:relative;overflow:hidden}
.cta-section::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:800px;height:800px;background:radial-gradient(circle,#E525250b 0%,transparent 65%);pointer-events:none}
#cta-canvas{position:absolute;inset:0;opacity:.4}
.cta-inner{position:relative;z-index:2;max-width:700px;margin:0 auto}
.cta-inner h2{font-family:var(--serif);font-size:clamp(2.2rem,4vw,3.8rem);font-weight:300;line-height:1.15;letter-spacing:-.02em;margin-bottom:1.5rem}
.cta-inner h2 em{font-style:italic;color:var(--gold)}
.cta-inner p{font-size:1rem;color:var(--muted);line-height:1.8;max-width:480px;margin:0 auto 3rem}
.cta-badges{display:flex;justify-content:center;gap:2.5rem;margin-top:2.5rem}
.cta-badge{font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted2)}
.cta-badge span{display:block;font-size:.55rem;color:var(--muted2);margin-bottom:.25rem}

/* CONTACT FORM */
.contact-section{background:var(--off-black)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start;margin-top:5rem}
.contact-info h3{font-family:var(--serif);font-size:1.5rem;font-weight:300;margin-bottom:1rem}
.contact-info p{font-size:.9rem;color:var(--muted);line-height:1.8;margin-bottom:2.5rem}
.contact-detail{display:flex;flex-direction:column;gap:1rem;margin-bottom:3rem}
.contact-detail-item{font-family:var(--mono);font-size:1rem;letter-spacing:.1em;color:var(--muted);display:flex;align-items:center;gap:.75rem}
.contact-detail-item::before{content:'→';color:var(--gold)}
.form{display:flex;flex-direction:column;gap:0;border:1px solid var(--border)}
.form-group{border-bottom:1px solid var(--border)}
.form-group:last-child{border-bottom:none}
.form-group label{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:1.25rem 1.5rem .25rem;transition:color .3s}
.form-group input,.form-group textarea,.form-group select{width:100%;background:transparent;border:none;outline:none;padding:.5rem 1.5rem 1.25rem;font-family:var(--sans);font-size:.9rem;color:var(--white);font-weight:300;resize:none}
.form-group select option{background:var(--off-black)}
.form-group:focus-within{background:var(--surface2)}
.form-group:focus-within label{color:var(--white)}
.form-submit{background:var(--gold);color:var(--black);border:none;padding:1.25rem 2.5rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .3s;align-self:start;margin-top:1.5rem}
.form-submit:hover{background:var(--white)}
.form-note{font-size:.78rem;color:var(--muted2);margin-top:1rem;line-height:1.6}

/* FOOTER */
footer{background:var(--off-black);border-top:1px solid var(--border);padding:5rem 4rem 3rem}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:5rem;margin-bottom:5rem}
.footer-brand h3{font-family:var(--serif);font-size:1.3rem;font-weight:700;margin-bottom:.75rem}
.footer-brand h3 span{color:var(--gold)}
.footer-brand p{font-size:.85rem;color:var(--muted);line-height:1.8;max-width:280px}
.footer-col h4{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.footer-col a{font-size:.85rem;color:var(--muted);text-decoration:none;transition:color .3s}
.footer-col a:hover{color:var(--white)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2.5rem;border-top:1px solid var(--border)}
.footer-legal{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--muted2)}
.footer-legal a{color:var(--muted2);text-decoration:none;transition:color .3s}
.footer-legal a:hover{color:var(--white)}
.footer-tax{font-family:var(--mono);font-size:.6rem;color:var(--muted2);letter-spacing:.1em}

/* KEYFRAMES */
@keyframes fadeUp{to{opacity:1;transform:none}}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes scrollLine{0%{left:-100%}100%{left:100%}}
@keyframes floatBadge{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.hero-badge-1{animation:floatBadge 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.hero-badge-2{animation:floatBadge 5.5s ease-in-out infinite 0.8s reverse;transform-box:fill-box;transform-origin:center}

/* SCROLLBAR */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--black)}
::-webkit-scrollbar-thumb{background:var(--muted2);border-radius:2px}

/* MOBILE BASIC */
@media(max-width:900px){
  nav{padding:1.5rem 2rem}
  .nav-links{display:none}
  section{padding:5rem 2rem}
  nav{padding:1.5rem 2rem}
  .hero-content{padding:0 2rem}
  .hero-scroll,.hero-number{left:2rem;right:2rem}
  .problem-grid{grid-template-columns:1fr}
  .solution-cols{grid-template-columns:1fr;gap:3rem}
  .process-grid,.process-row2{grid-template-columns:1fr 1fr}
  .process-step{border-right:none;border-bottom:1px solid var(--border)}
  .crew-grid{grid-template-columns:repeat(2,1fr)}
  .pricing-grid{grid-template-columns:1fr}
  .fit-cols{grid-template-columns:1fr}
  .faq-cols{grid-template-columns:1fr;gap:2rem}
  .contact-grid{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr 1fr}
  .compare-table{font-size:.75rem}
  .cases-list .case-item{grid-template-columns:1fr}
  .case-industry{border-right:none;border-bottom:1px solid var(--border)}
  .case-problem{border-right:none;border-bottom:1px solid var(--border)}
}
</style>
</head>
<body>

<div class="cursor" id="cursor"></div>
<div class="cursor-ring" id="cursor-ring"></div>

<!-- NAV -->
<nav>
  <a href="#" class="nav-logo"><img src="logo.png" alt="Band Of Coders"></a>
  <ul class="nav-links">
    <li><a href="#proceso">Proceso</a></li>
    <li><a href="#crew">Equipo</a></li>
    <li><a href="#paquetes">Paquetes</a></li>
    <li><a href="#faq">FAQ</a></li>
    <li><a href="#contacto">Contacto</a></li>
    <li><a href="en.html" style="color:var(--gold);letter-spacing:.14em">EN ↗</a></li>
  </ul>
  <a href="https://api.whatsapp.com/send?phone=5215525555540" class="nav-cta nav-cta-wa" target="_blank" rel="noopener">Solicitar información <i class="fa-brands fa-whatsapp"></i></a>
</nav>

<!-- HERO -->
<section class="hero" id="hero">
  <canvas id="hero-canvas"></canvas>
  <div class="hero-content">
    <div class="hero-left">
      <div class="hero-tag">Diseño Web · Desarrollo · IA Aplicada · Estrategia Digital</div>
      <h1>Tu sitio web debería<br>ser tu <em>mejor</em><br><strong>vendedor.</strong></h1>
      <p class="hero-sub">Combinamos inteligencia artificial, estrategia de marketing y desarrollo de élite para construir presencias digitales que no solo se ven bien — que convierten visitas en clientes reales.</p>
      <div class="hero-ctas">
        <a href="#contacto" class="btn-gold">Quiero un sitio que venda</a>
        <a href="#proceso" class="btn-ghost">Ver cómo funciona</a>
      </div>
    </div>
    <div class="hero-right">
      <svg id="hero-abstract" viewBox="0 0 420 520" fill="none" xmlns="http://www.w3.org/2000/svg">

        <!-- Browser frame -->
        <rect x="30" y="74" width="360" height="306" rx="6" stroke="#E52525" stroke-width="0.8" stroke-opacity="0.45"/>
        <rect x="30" y="74" width="360" height="36" rx="6" fill="#E52525" fill-opacity="0.05"/>
        <line x1="30" y1="110" x2="390" y2="110" stroke="#E52525" stroke-width="0.4" stroke-opacity="0.2"/>
        <!-- Browser dots -->
        <circle cx="51" cy="92" r="4" stroke="#E52525" stroke-width="0.9" stroke-opacity="0.5"/>
        <circle cx="64" cy="92" r="4" stroke="#554540" stroke-width="0.9"/>
        <circle cx="77" cy="92" r="4" stroke="#554540" stroke-width="0.9"/>
        <!-- URL bar -->
        <rect x="92" y="83" width="222" height="16" rx="3" stroke="#ffffff" stroke-width="0.5" stroke-opacity="0.08" fill="#ffffff" fill-opacity="0.02"/>
        <circle cx="100" cy="91" r="2" fill="#E52525" opacity="0.4"/>
        <rect x="107" y="88" width="130" height="4" rx="1" fill="#554540" opacity="0.35"/>

        <!-- Nav inside browser -->
        <rect x="44" y="118" width="32" height="5" rx="1" fill="#554540" opacity="0.45"/>
        <rect x="84" y="118" width="24" height="5" rx="1" fill="#554540" opacity="0.3"/>
        <rect x="116" y="118" width="28" height="5" rx="1" fill="#554540" opacity="0.3"/>
        <rect x="152" y="118" width="22" height="5" rx="1" fill="#554540" opacity="0.25"/>
        <rect x="339" y="114" width="37" height="12" rx="1" stroke="#E52525" stroke-width="0.8" stroke-opacity="0.5"/>
        <rect x="344" y="118" width="27" height="3" rx="0.5" fill="#E52525" opacity="0.35"/>
        <line x1="30" y1="132" x2="390" y2="132" stroke="#ffffff" stroke-width="0.3" stroke-opacity="0.05"/>

        <!-- Hero area inside browser -->
        <rect x="30" y="132" width="360" height="80" fill="#E52525" fill-opacity="0.025"/>
        <rect x="44" y="146" width="185" height="8" rx="1.5" fill="#f7f2ee" opacity="0.22"/>
        <rect x="44" y="160" width="145" height="8" rx="1.5" fill="#f7f2ee" opacity="0.16"/>
        <rect x="44" y="174" width="162" height="8" rx="1.5" fill="#f7f2ee" opacity="0.12"/>
        <rect x="44" y="192" width="128" height="4" rx="1" fill="#554540" opacity="0.3"/>
        <!-- CTA button (orange filled) -->
        <rect class="svg-cta-btn" x="44" y="202" width="86" height="13" rx="2" fill="#E52525" opacity="0.65"/>
        <!-- Cursor blink en URL bar -->
        <rect class="svg-cursor" x="244" y="88" width="1.5" height="10" rx="0.5" fill="#E52525" opacity="0.7"/>

        <!-- 3 Cards grid -->
        <line x1="30" y1="226" x2="390" y2="226" stroke="#ffffff" stroke-width="0.3" stroke-opacity="0.04"/>
        <rect x="38" y="233" width="104" height="76" rx="3" stroke="#ffffff" stroke-width="0.6" stroke-opacity="0.07"/>
        <rect x="152" y="233" width="104" height="76" rx="3" stroke="#ffffff" stroke-width="0.6" stroke-opacity="0.07"/>
        <rect x="266" y="233" width="104" height="76" rx="3" stroke="#ffffff" stroke-width="0.6" stroke-opacity="0.07"/>
        <!-- Card lines col 1 -->
        <rect x="47" y="245" width="50" height="6" rx="1" fill="#554540" opacity="0.42"/>
        <rect x="47" y="256" width="78" height="3.5" rx="1" fill="#554540" opacity="0.22"/>
        <rect x="47" y="264" width="64" height="3.5" rx="1" fill="#554540" opacity="0.18"/>
        <rect x="47" y="277" width="36" height="6" rx="1" fill="#E52525" opacity="0.28"/>
        <!-- Card lines col 2 -->
        <rect x="161" y="245" width="50" height="6" rx="1" fill="#554540" opacity="0.42"/>
        <rect x="161" y="256" width="74" height="3.5" rx="1" fill="#554540" opacity="0.22"/>
        <rect x="161" y="264" width="58" height="3.5" rx="1" fill="#554540" opacity="0.18"/>
        <rect x="161" y="277" width="36" height="6" rx="1" fill="#E52525" opacity="0.28"/>
        <!-- Card lines col 3 -->
        <rect x="275" y="245" width="50" height="6" rx="1" fill="#554540" opacity="0.42"/>
        <rect x="275" y="256" width="74" height="3.5" rx="1" fill="#554540" opacity="0.22"/>
        <rect x="275" y="264" width="58" height="3.5" rx="1" fill="#554540" opacity="0.18"/>
        <rect x="275" y="277" width="36" height="6" rx="1" fill="#E52525" opacity="0.28"/>

        <!-- Bottom text rows -->
        <rect x="38" y="322" width="218" height="4.5" rx="1" fill="#554540" opacity="0.16"/>
        <rect x="38" y="332" width="176" height="4.5" rx="1" fill="#554540" opacity="0.12"/>
        <rect x="38" y="342" width="196" height="4.5" rx="1" fill="#554540" opacity="0.12"/>
        <rect x="38" y="352" width="158" height="4.5" rx="1" fill="#554540" opacity="0.09"/>

        <!-- Bar chart bottom right (inside browser) -->
        <rect class="svg-bar svg-bar-1" x="306" y="336" width="13" height="27" rx="1.5" fill="#E52525" opacity="0.18"/>
        <rect class="svg-bar svg-bar-2" x="323" y="326" width="13" height="37" rx="1.5" fill="#E52525" opacity="0.26"/>
        <rect class="svg-bar svg-bar-3" x="340" y="315" width="13" height="48" rx="1.5" fill="#E52525" opacity="0.36"/>
        <rect class="svg-bar svg-bar-4" x="357" y="304" width="13" height="59" rx="1.5" fill="#E52525" opacity="0.48"/>

        <!-- Floating badge 1 — Contactos (top right) -->
        <g class="hero-badge-1">
          <rect x="290" y="10" width="124" height="54" rx="5" fill="#0e0e0e" stroke="#E52525" stroke-width="0.8" stroke-opacity="0.45"/>
          <polyline points="306,52 306,34" stroke="#E52525" stroke-width="1.3" stroke-linecap="round" stroke-opacity="0.65"/>
          <polyline points="301,39 306,31 311,39" stroke="#E52525" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" stroke-opacity="0.65" fill="none"/>
          <text x="320" y="28" font-family="'DM Mono',monospace" font-size="7.5" fill="#E52525" opacity="0.55" letter-spacing="1.5">CONTACTOS</text>
          <text x="320" y="44" font-family="'DM Mono',monospace" font-size="17" fill="#f7f2ee" opacity="0.75" font-weight="300">+47%</text>
          <text x="320" y="57" font-family="'DM Mono',monospace" font-size="7" fill="#554540" opacity="0.6">último trimestre</text>
        </g>

        <!-- Floating badge 2 — SEO (bottom left) -->
        <g class="hero-badge-2">
          <rect x="4" y="406" width="146" height="54" rx="5" fill="#0e0e0e" stroke="#E52525" stroke-width="0.8" stroke-opacity="0.38"/>
          <circle cx="24" cy="433" r="9" stroke="#E52525" stroke-width="1" stroke-opacity="0.5"/>
          <line x1="30" y1="440" x2="36" y2="447" stroke="#E52525" stroke-width="1.4" stroke-linecap="round" stroke-opacity="0.5"/>
          <text x="44" y="420" font-family="'DM Mono',monospace" font-size="7.5" fill="#E52525" opacity="0.5" letter-spacing="1.5">POSICIÓN</text>
          <text x="44" y="437" font-family="'DM Mono',monospace" font-size="17" fill="#f7f2ee" opacity="0.7" font-weight="300">Top 3</text>
          <text x="44" y="452" font-family="'DM Mono',monospace" font-size="7" fill="#554540" opacity="0.55">Google · búsquedas clave</text>
        </g>

        <!-- Decorative crosses -->
        <line x1="11" y1="86" x2="19" y2="94" stroke="#E52525" stroke-width="1" stroke-opacity="0.22" stroke-linecap="round"/>
        <line x1="19" y1="86" x2="11" y2="94" stroke="#E52525" stroke-width="1" stroke-opacity="0.22" stroke-linecap="round"/>
        <line x1="398" y1="372" x2="406" y2="380" stroke="#E52525" stroke-width="1" stroke-opacity="0.18" stroke-linecap="round"/>
        <line x1="406" y1="372" x2="398" y2="380" stroke="#E52525" stroke-width="1" stroke-opacity="0.18" stroke-linecap="round"/>

        <!-- Dot trails -->
        <circle cx="411" cy="192" r="2.5" fill="#E52525" opacity="0.28"/>
        <circle cx="411" cy="206" r="2" fill="#E52525" opacity="0.18"/>
        <circle cx="411" cy="218" r="1.5" fill="#E52525" opacity="0.12"/>
        <circle cx="14" cy="202" r="1.5" fill="#554540" opacity="0.45"/>
        <circle cx="14" cy="214" r="1.5" fill="#554540" opacity="0.32"/>
        <circle cx="14" cy="226" r="1.5" fill="#554540" opacity="0.22"/>

        <!-- Dashed connector lines -->
        <line x1="352" y1="64" x2="352" y2="74" stroke="#E52525" stroke-width="0.7" stroke-opacity="0.18" stroke-dasharray="2,2"/>
        <line x1="77" y1="380" x2="77" y2="394" stroke="#E52525" stroke-width="0.7" stroke-opacity="0.14" stroke-dasharray="2,2"/>

        <!-- Small diamond accent -->
        <path d="M402 464 L408 471 L402 478 L396 471 Z" stroke="#E52525" stroke-width="0.8" stroke-opacity="0.2" fill="none"/>
      </svg>
    </div>
  </div>
  <div class="hero-scroll">
    <div class="scroll-line"></div>
    <span class="scroll-label">Scroll</span>
  </div>
  <div class="hero-number">BOC — 2025</div>
</section>

<!-- MARQUEE -->
<div class="marquee-section">
  <div class="marquee-track" id="marquee">
    <span class="marquee-item"><span>✦</span> Diseño Web Estratégico</span>
    <span class="marquee-item"><span>✦</span> Desarrollo Técnico Avanzado</span>
    <span class="marquee-item"><span>✦</span> Copywriting que Convierte</span>
    <span class="marquee-item"><span>✦</span> SEO & Tráfico Orgánico</span>
    <span class="marquee-item"><span>✦</span> Dominio + Hosting + Correo</span>
    <span class="marquee-item"><span>✦</span> Soporte 365 Días</span>
    <span class="marquee-item"><span>✦</span> IA Aplicada al Marketing</span>
    <span class="marquee-item"><span>✦</span> Diseño Web Estratégico</span>
    <span class="marquee-item"><span>✦</span> Desarrollo Técnico Avanzado</span>
    <span class="marquee-item"><span>✦</span> Copywriting que Convierte</span>
    <span class="marquee-item"><span>✦</span> SEO & Tráfico Orgánico</span>
    <span class="marquee-item"><span>✦</span> Dominio + Hosting + Correo</span>
    <span class="marquee-item"><span>✦</span> Soporte 365 Días</span>
    <span class="marquee-item"><span>✦</span> IA Aplicada al Marketing</span>
  </div>
</div>

<!-- PROBLEMA -->
<section class="problem-section" id="problema">
  <div class="section-inner">
    <div class="section-label reveal">El problema</div>
    <h2 class="section-title reveal delay-1">Tienes un sitio web.<br>Pero no tienes <em>clientes.</em></h2>
    <p class="problem-intro reveal delay-2">No es culpa tuya. La industria del diseño web lleva años vendiendo la idea de que un sitio bonito es suficiente. No lo es. Un sitio web sin estrategia es como poner un local en medio del desierto: perfectamente decorado, pero invisible.</p>
    <div class="problem-grid">
      <div class="problem-card reveal delay-1">
        <div class="problem-num">01</div>
        <h3>"Se ve bien, pero no dice nada."</h3>
        <p>Imágenes hermosas, diseño moderno, pero cuando alguien llega no entiende qué haces ni por qué debe elegirte. En 8 segundos decide irse. Y se va.</p>
      </div>
      <div class="problem-card reveal delay-2">
        <div class="problem-num">02</div>
        <h3>"Google no te encuentra."</h3>
        <p>El 75% de los usuarios nunca pasa de la primera página. Si tu sitio no está optimizado desde su arquitectura, estás invisible. Y en internet, lo que no aparece, no existe.</p>
      </div>
      <div class="problem-card reveal delay-3">
        <div class="problem-num">03</div>
        <h3>"Demasiados proveedores, demasiado caos."</h3>
        <p>Hosting aquí, dominio allá, diseñador freelance que tardó tres meses, correo que nunca funcionó bien. Fricciones, costos duplicados, tiempo perdido.</p>
      </div>
      <div class="problem-card reveal delay-4">
        <div class="problem-num">04</div>
        <h3>"Tu competencia sí aparece."</h3>
        <p>Mientras buscas soluciones, tus competidores capturan la demanda que debería llegar a ti. Cada semana sin presencia digital sólida es negocio perdido.</p>
      </div>
    </div>
  </div>
</section>

<!-- SOLUCIÓN -->
<section class="solution-section" id="solucion">
  <div class="section-inner">
    <div class="section-label reveal">El enfoque Band Of Coders</div>
    <h2 class="section-title reveal delay-1">No construimos sitios web.<br>Construimos <em>máquinas de ventas</em> digitales.</h2>
    <div class="solution-cols">
      <div class="solution-text reveal-left">
        <p>La diferencia está en lo que hacemos antes de abrir un programa de diseño. Antes de crear un solo elemento o escribir una línea de código, investigamos a fondo tu empresa, tu industria, tus clientes ideales y tu competencia directa.</p>
        <p>Sabemos exactamente qué necesita escuchar tu cliente para decidir contactarte. Qué palabras usa cuando busca en Google. Qué objeciones tiene antes de comprometerse. Y construimos tu sitio con toda esa información integrada desde el principio.</p>
        <p>El resultado no es un sitio genérico de agencia. Es una <strong>herramienta hecha para vender tu negocio específico</strong>, en tu mercado, a tus clientes.</p>
      </div>
      <div class="differentiators reveal delay-2">
        <div class="diff-item">
          <div class="diff-num">01 — Estrategia</div>
          <h3>Investigación antes que diseño</h3>
          <p>Estudiamos tu mercado, tus competidores y a tu cliente ideal antes de tomar cualquier decisión creativa. Sin suposiciones. Sin plantillas genéricas.</p>
        </div>
        <div class="diff-item">
          <div class="diff-num">02 — Marketing</div>
          <h3>Marketing en el ADN</h3>
          <p>Cada sección, cada titular, cada botón tiene un objetivo comercial. No decoramos. Persuadimos. No informamos. Convertimos.</p>
        </div>
        <div class="diff-item">
          <div class="diff-num">03 — Servicio</div>
          <h3>Un solo equipo. Todo resuelto.</h3>
          <p>Dominio, hosting, correo, diseño, desarrollo, SEO, soporte. Todo bajo un mismo techo. Sin coordinar proveedores.</p>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- PROCESO -->
<section class="process-section" id="proceso">
  <div class="section-inner">
    <div class="section-label reveal">El proceso</div>
    <h2 class="section-title reveal delay-1">De cero a un sitio que vende.<br><em>Así funciona.</em></h2>
    <div class="process-grid reveal delay-2">
      <div class="process-step">
        <span class="step-num">01</span>
        <div class="step-agent">Esteban</div>
        <h3>Sesión de descubrimiento</h3>
        <p>Entendemos tu negocio, objetivos y diferenciadores.</p>
        <div class="process-timeline">1–2 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">02</span>
        <div class="step-agent">Isaac</div>
        <h3>Investigación de mercado profunda</h3>
        <p>Competidores, palabras clave y oportunidades identificadas.</p>
        <div class="process-timeline">2–3 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">03</span>
        <div class="step-agent">Isaac + Esteban</div>
        <h3>Estrategia & arquitectura</h3>
        <p>Estructura del sitio con lógica de conversión, no de estética.</p>
        <div class="process-timeline">1–2 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">04</span>
        <div class="step-agent">David</div>
        <h3>Copywriting estratégico</h3>
        <p>Cada palabra escrita para que el cliente quiera contactarte.</p>
        <div class="process-timeline">3–5 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">05</span>
        <div class="step-agent">Juan</div>
        <h3>Diseño UI/UX</h3>
        <p>Experiencia visual que genera confianza desde el primer segundo.</p>
        <div class="process-timeline">4–6 días</div>
      </div>
    </div>
    <div class="process-row2 reveal delay-3">
      <div class="process-step">
        <span class="step-num">06</span>
        <div class="step-agent">Andrés</div>
        <h3>Desarrollo técnico</h3>
        <p>Rápido, seguro, escalable. Compatible con cualquier dispositivo.</p>
        <div class="process-timeline">5–8 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">07</span>
        <div class="step-agent">Randy</div>
        <h3>SEO & optimización</h3>
        <p>Estructura técnica para que Google te encuentre y te posicione.</p>
        <div class="process-timeline">2–3 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">08</span>
        <div class="step-agent">Kenji</div>
        <h3>Control de calidad</h3>
        <p>Revisión exhaustiva. Velocidad, consistencia, funcionalidad.</p>
        <div class="process-timeline">1–2 días</div>
      </div>
      <div class="process-step">
        <span class="step-num">09</span>
        <div class="step-agent">Andrés</div>
        <h3>Lanzamiento & configuración</h3>
        <p>Dominio, hosting, correo configurados. Sitio publicado.</p>
        <div class="process-timeline">1 día</div>
      </div>
      <div class="process-step">
        <span class="step-num">10</span>
        <div class="step-agent">Todo el Crew</div>
        <h3>Soporte continuo</h3>
        <p>Disponibles 365 días al año para lo que necesites.</p>
        <div class="process-timeline">Permanente</div>
      </div>
    </div>
    <p style="font-family:var(--mono);font-size:.7rem;color:var(--muted2);margin-top:2rem;letter-spacing:.1em" class="reveal delay-4">Tiempo total promedio: 3 a 5 semanas desde el primer contacto hasta el lanzamiento.</p>
  </div>
</section>

<!-- CREW -->
<section class="crew-section" id="crew">
  <div class="section-inner">
    <div class="section-label reveal">El equipo</div>
    <h2 class="section-title reveal delay-1">No trabajas con una agencia.<br>Trabajas con <em>siete especialistas</em>.</h2>
    <p class="crew-intro reveal delay-2">Cada proyecto activa a todo el Crew. Siete especialistas con roles distintos, trabajando en paralelo desde el primer día. La profundidad de un equipo completo, la velocidad de uno que trabaja diferente.</p>
    <div class="crew-grid reveal delay-2">
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-bullseye"></i>
        <div class="crew-role-tag">Dirección</div>
        <h3>Esteban</h3>
        <p class="crew-role">Director de Proyecto & Estándares</p>
        <div class="crew-quote">"La mediocridad no es una opción. Si no eleva tu marca, no entra."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-chart-line"></i>
        <div class="crew-role-tag">Análisis</div>
        <h3>Isaac</h3>
        <p class="crew-role">Analista de Negocio & Mercado</p>
        <div class="crew-quote">"La base de un buen sitio no es el diseño. Es el entendimiento."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-pen-nib"></i>
        <div class="crew-role-tag">Copy</div>
        <h3>David</h3>
        <p class="crew-role">Redactor Publicitario Senior</p>
        <div class="crew-quote">"Las palabras correctas no se sienten como publicidad. Se sienten como la respuesta que buscabas."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-code"></i>
        <div class="crew-role-tag">Desarrollo</div>
        <h3>Andrés</h3>
        <p class="crew-role">Arquitecto Técnico & Full-Stack</p>
        <div class="crew-quote">"La magia real no está en lo que ves. Está en lo que nunca falla."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-palette"></i>
        <div class="crew-role-tag">Diseño</div>
        <h3>Juan</h3>
        <p class="crew-role">Diseñador UI/UX & Experiencia Visual</p>
        <div class="crew-quote">"Lo más difícil del diseño no es hacer algo que se vea bien. Es hacer que algo complejo se sienta simple."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-shield-halved"></i>
        <div class="crew-role-tag">Calidad</div>
        <h3>Kenji</h3>
        <p class="crew-role">Control de Calidad & Optimización</p>
        <div class="crew-quote">"Los detalles que nadie nota cuando están bien son exactamente los que todos notan cuando están mal."</div>
      </div>
      <div class="crew-card">
        <i class="crew-initial fa-solid fa-arrow-trend-up"></i>
        <div class="crew-role-tag">SEO</div>
        <h3>Randy</h3>
        <p class="crew-role">Estratega de SEO & Tráfico Orgánico</p>
        <div class="crew-quote">"No consigo tráfico genérico. Consigo el tráfico que se convierte en clientes."</div>
      </div>
    </div>
  </div>
</section>

<!-- CASOS -->
<section class="cases-section" id="casos">
  <div class="section-inner">
    <div class="section-label reveal">Casos de éxito</div>
    <h2 class="section-title reveal delay-1">Lo hemos hecho antes.<br><em>En tu industria.</em></h2>
    <p class="cases-intro reveal delay-2">Cada industria tiene su lenguaje, su cliente y sus particularidades. Conocerlas hace toda la diferencia entre un sitio genérico y uno que realmente funciona.</p>
    <div class="cases-list reveal delay-3">
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Restaurante / Café</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Atraer clientes nuevos y comunicar la experiencia antes de que lleguen al local. Un menú en PDF y fotos de Instagram no son suficientes para convertir buscadores en comensales.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Más reservas directas</strong>, reducción de la dependencia de plataformas de terceros con comisiones y un canal propio que comunica la experiencia antes de la visita.</p>
        </div>
      </div>
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Clínica / Salud</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Generar confianza antes de la primera cita. En salud, la credibilidad lo es todo. Un sitio descuidado aleja pacientes antes de que siquiera llamen.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Reducción de llamadas de consulta básica</strong> y aumento en agendamiento directo desde el sitio. Los pacientes llegan ya con contexto e intención real.</p>
        </div>
      </div>
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Inmobiliaria</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Mostrar propiedades de forma atractiva y capturar prospectos calificados, no curiosos que hacen perder tiempo a los asesores de ventas.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Prospectos mejor calificados</strong> y reducción del tiempo que los asesores dedicaban a filtrar contactos sin intención real de compra o renta.</p>
        </div>
      </div>
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Consultoría</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Explicar servicios intangibles de manera que el cliente los entienda y los valore antes de pedir una cotización que luego no cierra.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Prospectos que llegan a la primera reunión ya con contexto</strong>, reduciendo el tiempo de cierre y filtrando a quienes no estaban listos para invertir.</p>
        </div>
      </div>
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Comercio Local</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Competir con grandes cadenas y marketplaces sin perder la identidad local que fideliza a los clientes habituales.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Canal digital propio independiente</strong> de comisiones de terceros y aumento de visitas al local físico desde búsquedas locales en Google.</p>
        </div>
      </div>
      <div class="case-item">
        <div class="case-industry">
          <span>Industria</span>
          <h3>Academia / Educación</h3>
        </div>
        <div class="case-problem">
          <span class="case-label">El reto</span>
          <p>Comunicar el valor de un programa formativo en un mercado saturado de opciones y convertir visitantes en inscripciones concretas.</p>
        </div>
        <div class="case-result">
          <span class="case-label">El resultado</span>
          <p><strong>Aumento en la tasa de contacto</strong> y reducción de mensajes de consulta repetitiva que el equipo tenía que responder manualmente.</p>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- PRECIOS -->
<section class="pricing-section" id="paquetes">
  <div class="section-inner">
    <div class="section-label reveal">Inversión</div>
    <h2 class="section-title reveal delay-1">Elige el paquete que se ajusta<br>a tu <em>momento de negocio.</em></h2>
    <p class="pricing-intro reveal delay-2">Sin sorpresas, sin letras chicas. Aquí está exactamente lo que incluye cada paquete y cuánto cuesta. Todos los precios más IVA.</p>
    <div class="pricing-grid reveal delay-3">

      <div class="pricing-card">
        <span class="pricing-tag">01 — Para empezar fuerte</span>
        <h3>Profesionista</h3>
        <p class="pricing-for">Médicos, abogados, coaches, consultores y profesionistas independientes que necesitan credibilidad digital inmediata.</p>
        <div class="pricing-price"><sub>$</sub>18,000</div>
        <div class="pricing-tax">MXN + IVA · Pago único</div>
        <ul class="pricing-features">
          <li class="highlight">1 landing page completa</li>
          <li>Diseño responsive (móvil, tablet, escritorio)</li>
          <li>Copywriting estratégico incluido</li>
          <li>Dominio .com o .mx por 1 año</li>
          <li>Hosting profesional por 1 año</li>
          <li class="highlight">1 cuenta de correo profesional</li>
          <li>SEO básico de lanzamiento</li>
          <li>Formulario de contacto + WhatsApp</li>
          <li>Soporte técnico 3 meses</li>
          <li>Entrega: 2 a 3 semanas</li>
        </ul>
        <a href="#contacto" class="pricing-cta">Comenzar con este paquete →</a>
      </div>

      <div class="pricing-card featured">
        <span class="pricing-tag">02 — El más elegido</span>
        <h3>PYME</h3>
        <p class="pricing-for">Pequeñas y medianas empresas con operación establecida que necesitan un sitio completo orientado a capturar prospectos.</p>
        <div class="pricing-price"><sub>$</sub>24,000</div>
        <div class="pricing-tax">MXN + IVA · Pago único</div>
        <ul class="pricing-features">
          <li class="highlight">Hasta 6 secciones completas</li>
          <li>Diseño con identidad visual definida</li>
          <li>Copywriting estratégico completo</li>
          <li>Dominio .com o .mx por 1 año</li>
          <li>Hosting de mayor capacidad por 1 año</li>
          <li class="highlight">Hasta 5 cuentas de correo profesional</li>
          <li>SEO completo (técnico + contenido)</li>
          <li>Google Analytics integrado</li>
          <li>Captura de leads + WhatsApp + Redes</li>
          <li>Soporte técnico 6 meses</li>
          <li>Entrega: 3 a 5 semanas</li>
        </ul>
        <a href="#contacto" class="pricing-cta">Comenzar con este paquete →</a>
      </div>

      <div class="pricing-card">
        <span class="pricing-tag">03 — Para crecer sin límites</span>
        <h3>Corporativo</h3>
        <p class="pricing-for">Empresas con mayor complejidad, múltiples líneas de negocio o que necesitan funcionalidades avanzadas e integraciones.</p>
        <div class="pricing-price"><sub>$</sub>42,000</div>
        <div class="pricing-tax">MXN + IVA · Cotización personalizada</div>
        <ul class="pricing-features">
          <li class="highlight">Sitio multipágina sin límite de secciones</li>
          <li>Desarrollo completamente personalizado</li>
          <li>Copywriting estratégico completo</li>
          <li>Hosting de alto rendimiento</li>
          <li class="highlight">Hasta 20 cuentas de correo profesional</li>
          <li>SEO avanzado + estrategia de contenido</li>
          <li>Integraciones con CRM y sistemas externos</li>
          <li>Panel de administración de contenido</li>
          <li>Informe de rendimiento al mes del lanzamiento</li>
          <li>Soporte prioritario 12 meses</li>
        </ul>
        <a href="#contacto" class="pricing-cta">Agendar llamada de cotización →</a>
      </div>

    </div>
    <div class="pricing-discount reveal delay-4">
      <i class="fa-solid fa-video pd-icon"></i>
      <div>
        <strong>¿Quieres un descuento?</strong> Agenda una <strong>videollamada de diagnóstico gratuita</strong> o una <strong>visita a domicilio</strong> y obtén hasta un <strong>10% de descuento</strong> en cualquier paquete. Sin compromisos, sin costo.
      </div>
      <a href="https://api.whatsapp.com/send?phone=5215525555540&text=Hola%2C%20me%20interesa%20agendar%20una%20videollamada%20para%20obtener%20el%20descuento" class="pricing-discount-cta" target="_blank" rel="noopener">
        Agendar ahora <i class="fa-brands fa-whatsapp"></i>
      </a>
    </div>
    <p style="font-family:var(--mono);font-size:.65rem;color:var(--muted2);margin-top:1.5rem;letter-spacing:.08em;text-align:center" class="reveal delay-4">Todos los precios en pesos mexicanos más IVA (16%). Renovación anual de dominio y hosting disponible con descuento para clientes activos.</p>
  </div>
</section>

<!-- PARA QUIÉN -->
<section class="fit-section" id="fit">
  <div class="section-inner">
    <div class="section-label reveal">¿Es para ti?</div>
    <h2 class="section-title reveal delay-1">Trabajamos con personas que toman en serio<br>su <em>crecimiento digital.</em></h2>
    <div class="fit-cols reveal delay-2">
      <div class="fit-col">
        <h3><em>Para ti</em> si...</h3>
        <ul class="fit-list yes">
          <li>Eres profesionista independiente y quieres que internet consiga clientes mientras tú trabajas</li>
          <li>Tienes una empresa y tu sitio actual no genera prospectos ni ventas</li>
          <li>Estás lanzando un negocio y quieres empezar con la imagen correcta desde el primer día</li>
          <li>Estás cansado de coordinar múltiples proveedores sin resultados claros</li>
          <li>Quieres saber exactamente en qué se invierte tu dinero y qué esperar a cambio</li>
        </ul>
      </div>
      <div class="fit-col">
        <h3>No es para ti si...</h3>
        <ul class="fit-list no">
          <li>Solo necesitas algo temporal sin ambiciones comerciales reales</li>
          <li>Buscas el precio más bajo del mercado sin importar el resultado</li>
          <li>No tienes disposición para compartir información sobre tu negocio y objetivos</li>
        </ul>
      </div>
    </div>
  </div>
</section>

<!-- COMPARACIÓN -->
<section class="compare-section" id="comparacion">
  <div class="section-inner">
    <div class="section-label reveal">¿Por qué nosotros?</div>
    <h2 class="section-title reveal delay-1">Hay muchas formas de hacer un sitio web.<br><em>Esta es la diferencia.</em></h2>
    <div style="overflow-x:auto">
    <table class="compare-table reveal delay-2">
      <thead>
        <tr>
          <th>Característica</th>
          <th class="boc-head">Band Of Coders</th>
          <th>Freelancer</th>
          <th>Agencia Tradicional</th>
          <th>Hazlo tú mismo</th>
        </tr>
      </thead>
      <tbody>
        <tr><td>Análisis de mercado con IA</td><td class="boc-col check">✓ Incluido</td><td class="cross">Rara vez</td><td class="cross">Extra</td><td class="cross">No</td></tr>
        <tr><td>Copywriting estratégico</td><td class="boc-col check">✓ Incluido</td><td class="cross">No</td><td class="cross">Extra</td><td class="cross">No</td></tr>
        <tr><td>Diseño enfocado en ventas</td><td class="boc-col check">✓ Siempre</td><td class="cross">Variable</td><td class="cross">Variable</td><td class="cross">No</td></tr>
        <tr><td>Desarrollo técnico avanzado</td><td class="boc-col check">✓ Siempre</td><td class="cross">Depende</td><td class="check">✓</td><td class="cross">No</td></tr>
        <tr><td>SEO desde el inicio</td><td class="boc-col check">✓ Incluido</td><td class="cross">Extra</td><td class="cross">Extra</td><td class="cross">No</td></tr>
        <tr><td>Dominio + Hosting + Correo</td><td class="boc-col check">✓ Todo incluido</td><td class="cross">No</td><td class="cross">Extra</td><td class="cross">Manual</td></tr>
        <tr><td>Soporte 365 días</td><td class="boc-col check">✓ Incluido</td><td class="cross">No</td><td class="cross">Con costo</td><td class="cross">Solo tú</td></tr>
        <tr><td>Un solo punto de contacto</td><td class="boc-col check">✓ Siempre</td><td class="check">✓</td><td class="cross">No siempre</td><td class="cross">—</td></tr>
        <tr><td>Tiempo de entrega</td><td class="boc-col">3–5 semanas</td><td>Impredecible</td><td>2–4 meses</td><td>Indefinido</td></tr>
      </tbody>
    </table>
    </div>
  </div>
</section>

<!-- FAQ -->
<section class="faq-section" id="faq">
  <div class="section-inner">
    <div class="faq-cols">
      <div class="faq-sticky reveal-left">
        <div class="section-label">Preguntas frecuentes</div>
        <h2 class="section-title">Resolvemos<br>tus dudas<br><em>antes</em> de que<br>las hagas.</h2>
        <p>Si tienes alguna pregunta que no esté aquí, escríbenos. Respondemos en menos de 24 horas.</p>
      </div>
      <div class="faq-list reveal delay-2">
        <div class="faq-item">
          <div class="faq-q">¿Cuánto tiempo tarda el proyecto? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Profesionista: 2 a 3 semanas. PYME: 3 a 5 semanas. Corporativo: varía según alcance. Todo queda definido antes de empezar. Sin sorpresas.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿Necesito saber de tecnología? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Para nada. Nos encargamos de todo lo técnico. Tu único trabajo es contarnos sobre tu empresa y tus objetivos. Nosotros hacemos el resto.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿El dominio y el hosting están incluidos? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Sí, en todos los paquetes incluimos el registro del dominio y el hosting por el primer año. La renovación anual tiene un costo adicional con descuento preferencial para clientes activos.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿El sitio va a aparecer en Google desde el primer día? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">El SEO es un proceso de mediano plazo. Construimos el sitio correctamente desde el inicio para que Google lo entienda y lo indexe. Los resultados orgánicos generalmente se consolidan entre 3 y 6 meses después del lanzamiento.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿Puedo empezar con Profesionista y subir a PYME después? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Sí. Podemos escalar tu sitio cuando tu negocio lo requiera. El costo de la actualización se cotiza en su momento tomando en cuenta lo que ya se construyó.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿Pueden rediseñar mi sitio actual? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Sí. El proceso es el mismo: empezamos con análisis y estrategia, no con el diseño. Rediseñar bien requiere entender primero por qué el sitio actual no está funcionando.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿Trabajan con contrato? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Sí. Todo queda por escrito: alcance, tiempos, entregables y condiciones de pago. Sin ambigüedades.</div></div>
        </div>
        <div class="faq-item">
          <div class="faq-q">¿Qué plataforma usan para construir los sitios? <span class="faq-icon">+</span></div>
          <div class="faq-a"><div class="faq-a-inner">Usamos la tecnología más adecuada para cada caso: desde WordPress hasta desarrollo completamente personalizado. La decisión siempre está justificada por los objetivos del proyecto, no por conveniencia.</div></div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- CTA FINAL -->
<section class="cta-section" id="cta">
  <canvas id="cta-canvas"></canvas>
  <div class="section-inner">
    <div class="cta-inner">
      <div class="section-label reveal" style="justify-content:center">Da el primer paso</div>
      <h2 class="reveal delay-1">Tu negocio ya está listo<br>para crecer. ¿Tu presencia<br>digital <em>también</em>?</h2>
      <p class="reveal delay-2">Cada día que pasa sin una presencia digital estratégica es un cliente que encontró a tu competencia antes que a ti. El segundo mejor momento es hoy.</p>
      <div class="hero-ctas reveal delay-3" style="justify-content:center">
        <a href="https://api.whatsapp.com/send?phone=5215525555540" class="btn-gold btn-whatsapp" target="_blank" rel="noopener">Comenzar mi proyecto ahora <i class="fa-brands fa-whatsapp"></i></a>
        <a href="#faq" class="btn-ghost">Tengo una pregunta</a>
      </div>
      <div class="cta-badges reveal delay-4">
        <div class="cta-badge"><span>Compromiso</span>Primera consulta sin costo</div>
        <div class="cta-badge"><span>Respuesta</span>En menos de 24 horas</div>
        <div class="cta-badge"><span>Proceso</span>Sin compromiso</div>
      </div>
    </div>
  </div>
</section>

<!-- CONTACTO -->
<section class="contact-section" id="contacto">
  <div class="section-inner">
    <div class="section-label reveal">Contacto</div>
    <h2 class="section-title reveal delay-1">Cuéntanos<br>sobre tu <em>proyecto.</em></h2>
    <div class="contact-grid">
      <div class="contact-info reveal-left delay-1">
        <h3>Estamos listos<br>cuando tú lo estés.</h3>
        <p>Completa el formulario y en menos de 24 horas un miembro del equipo se pone en contacto contigo para entender tu proyecto y explicarte cómo podemos ayudarte.</p>
        <div class="contact-detail">
          <div class="contact-detail-item">info@bandofcoders.mx</div>
          <div class="contact-detail-item">+52 (55) 2555 5540</div>
          <div class="contact-detail-item">México · Servicio en toda América</div>
        </div>
        <p style="font-size:.82rem;color:var(--muted2);line-height:1.7">Tu información es confidencial. No compartimos datos con terceros ni enviamos spam.</p>
      </div>
      <div class="reveal delay-2">
        <form class="form" id="contact-form" action="send.php" method="POST" novalidate>
          <!-- Honeypot anti-spam (oculto) -->
          <div style="display:none" aria-hidden="true">
            <input type="text" name="website" tabindex="-1" autocomplete="off">
          </div>
          <div class="form-group">
            <label for="f-nombre">Nombre completo *</label>
            <input id="f-nombre" type="text" name="nombre" placeholder="Tu nombre" required maxlength="100" autocomplete="name">
          </div>
          <div class="form-group">
            <label for="f-empresa">Empresa o nombre profesional *</label>
            <input id="f-empresa" type="text" name="empresa" placeholder="Tu empresa" required maxlength="150" autocomplete="organization">
          </div>
          <div class="form-group">
            <label for="f-email">Correo electrónico *</label>
            <input id="f-email" type="email" name="email" placeholder="tu@correo.com" required maxlength="200" autocomplete="email">
          </div>
          <div class="form-group">
            <label for="f-telefono">WhatsApp / Teléfono</label>
            <input id="f-telefono" type="tel" name="telefono" placeholder="+52 (55) 0000 0000" maxlength="30" autocomplete="tel">
          </div>
          <div class="form-group">
            <label for="f-paquete">Paquete de interés</label>
            <select id="f-paquete" name="paquete">
              <option value="">Selecciona un paquete</option>
              <option value="Profesionista — $18,000 MXN">Profesionista — $18,000 MXN</option>
              <option value="PYME — $24,000 MXN">PYME — $24,000 MXN</option>
              <option value="Corporativo — $42,000 MXN">Corporativo — $42,000 MXN</option>
              <option value="No lo sé aún, necesito orientación">No lo sé aún, necesito orientación</option>
            </select>
          </div>
          <div class="form-group">
            <label for="f-mensaje">¿Cuál es tu objetivo principal? *</label>
            <textarea id="f-mensaje" name="mensaje" rows="4" placeholder="Cuéntanos sobre tu negocio y lo que esperas del sitio web..." required minlength="10" maxlength="3000"></textarea>
          </div>
          <div id="form-feedback" style="display:none;padding:.9rem 1.5rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;margin-top:.5rem"></div>
          <button type="submit" class="form-submit" id="form-btn">Enviar mensaje →</button>
          <p class="form-note">Respuesta garantizada en menos de 24 horas · Lunes a viernes</p>
        </form>
      </div>
    </div>
  </div>
</section>

<!-- FOOTER -->
<footer>
  <div class="footer-inner">
    <div class="footer-top">
      <div class="footer-brand">
        <a href="#" style="display:inline-block;margin-bottom:1.25rem"><img src="logo.png" alt="Band Of Coders" style="height:34px;width:auto;display:block;opacity:.9"></a>
        <p>Donde tu presencia en internet deja de ser un pendiente y se convierte en tu herramienta de crecimiento más poderosa.</p>
      </div>
      <div class="footer-col">
        <h4>Servicios</h4>
        <ul>
          <li><a href="#">Diseño Web</a></li>
          <li><a href="#">Desarrollo</a></li>
          <li><a href="#">Copywriting</a></li>
          <li><a href="#">SEO</a></li>
          <li><a href="#">Hosting & Dominio</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Paquetes</h4>
        <ul>
          <li><a href="#paquetes">Profesionista — $18K</a></li>
          <li><a href="#paquetes">PYME — $24K</a></li>
          <li><a href="#paquetes">Corporativo — $42K</a></li>
        </ul>
      </div>
      <div class="footer-col">
        <h4>Empresa</h4>
        <ul>
          <li><a href="#proceso">Cómo funciona</a></li>
          <li><a href="#crew">El Crew</a></li>
          <li><a href="#casos">Casos de éxito</a></li>
          <li><a href="#faq">FAQ</a></li>
          <li><a href="#contacto">Contacto</a></li>
        </ul>
      </div>
    </div>
    <div class="footer-bottom">
      <div class="footer-legal">© 2025 Band Of Coders. Todos los derechos reservados. · <a href="#">Política de privacidad</a> · <a href="#">Términos de servicio</a></div>
      <div class="footer-tax">Precios más IVA (16%)</div>
    </div>
  </div>
</footer>

<script>
// CUSTOM CURSOR
const cursor=document.getElementById('cursor'),ring=document.getElementById('cursor-ring');
let mx=0,my=0,rx=0,ry=0;
document.addEventListener('mousemove',e=>{mx=e.clientX;my=e.clientY;cursor.style.left=mx-4+'px';cursor.style.top=my-4+'px'});
(function animRing(){rx+=(mx-rx)*.12;ry+=(my-ry)*.12;ring.style.left=rx-18+'px';ring.style.top=ry-18+'px';requestAnimationFrame(animRing)})();
document.querySelectorAll('a,button,.faq-q,.crew-card,.problem-card,.process-step').forEach(el=>{
  el.addEventListener('mouseenter',()=>{cursor.style.transform='scale(2.5)';ring.style.opacity='0.4'});
  el.addEventListener('mouseleave',()=>{cursor.style.transform='scale(1)';ring.style.opacity='1'});
});

// HERO CANVAS — Floating geometric particles
(function(){
  const hc=document.getElementById('hero-canvas');
  const hctx=hc.getContext('2d');
  function resizeHC(){hc.width=hc.offsetWidth;hc.height=hc.offsetHeight}
  resizeHC();
  window.addEventListener('resize',resizeHC);
  const particles=[];
  for(let i=0;i<60;i++){
    particles.push({
      x:Math.random()*hc.width,y:Math.random()*hc.height,
      vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3,
      size:Math.random()*1.5+.3,
      opacity:Math.random()*.4+.05,
      shape:Math.floor(Math.random()*3)
    });
  }
  function drawParticle(p){
    hctx.save();
    hctx.globalAlpha=p.opacity;
    hctx.strokeStyle='#E52525';
    hctx.lineWidth=.5;
    hctx.translate(p.x,p.y);
    if(p.shape===0){hctx.beginPath();hctx.arc(0,0,p.size*4,0,Math.PI*2);hctx.stroke()}
    else if(p.shape===1){hctx.beginPath();const s=p.size*5;hctx.moveTo(0,-s);hctx.lineTo(s,s);hctx.lineTo(-s,s);hctx.closePath();hctx.stroke()}
    else{const s=p.size*4;hctx.beginPath();hctx.rect(-s,-s,s*2,s*2);hctx.stroke()}
    hctx.restore();
  }
  function connectParticles(){
    for(let i=0;i<particles.length;i++){
      for(let j=i+1;j<particles.length;j++){
        const dx=particles[i].x-particles[j].x,dy=particles[i].y-particles[j].y;
        const d=Math.sqrt(dx*dx+dy*dy);
        if(d<120){
          hctx.beginPath();
          hctx.globalAlpha=(1-d/120)*.06;
          hctx.strokeStyle='#E52525';
          hctx.lineWidth=.4;
          hctx.moveTo(particles[i].x,particles[i].y);
          hctx.lineTo(particles[j].x,particles[j].y);
          hctx.stroke();
        }
      }
    }
  }
  function animHero(){
    hctx.clearRect(0,0,hc.width,hc.height);
    particles.forEach(p=>{
      p.x+=p.vx;p.y+=p.vy;
      if(p.x<0||p.x>hc.width)p.vx*=-1;
      if(p.y<0||p.y>hc.height)p.vy*=-1;
      drawParticle(p);
    });
    connectParticles();
    requestAnimationFrame(animHero);
  }
  animHero();
})();

// ABSTRACT HERO CANVAS — removed, replaced by SVG illustration
(function(){
  const ac = document.getElementById('hero-abstract');
  if(!ac || ac.tagName !== 'CANVAS') return;
  const actx = ac.getContext('2d');
  const AW = 420, AH = 520;
  ac.width = AW; ac.height = AH;
  const cx = AW / 2, cy = AH / 2 - 20;
  let t = 0;
  const rings = [
    { r: 60,  speed: 0.0007, nodes: 3, phase: 0 },
    { r: 110, speed: -0.0005, nodes: 4, phase: 1.1 },
    { r: 162, speed: 0.0004, nodes: 5, phase: 0.5 },
    { r: 205, speed: -0.0003, nodes: 3, phase: 2.1 },
  ];
  const sineLines = [
    { amp: 28, freq: 0.018, speed: 0.022, yOff: cy - 90,  phase: 0,   alpha: 0.10 },
    { amp: 18, freq: 0.022, speed: -0.016, yOff: cy + 30,  phase: 1.4, alpha: 0.07 },
    { amp: 35, freq: 0.013, speed: 0.013, yOff: cy + 140, phase: 2.8, alpha: 0.08 },
  ];
  function drawAbstract() {
    actx.clearRect(0, 0, AW, AH);
    sineLines.forEach(l => {
      actx.beginPath();
      for (let x = 0; x <= AW; x += 2) {
        const y = l.yOff + Math.sin(x * l.freq + t * l.speed + l.phase) * l.amp;
        x === 0 ? actx.moveTo(x, y) : actx.lineTo(x, y);
      }
      actx.strokeStyle = `rgba(229,37,37,${l.alpha})`;
      actx.lineWidth = 1;
      actx.stroke();
    });
    rings.forEach((ring, ri) => {
      const angle = t * ring.speed;
      actx.beginPath();
      actx.arc(cx, cy, ring.r, 0, Math.PI * 2);
      actx.strokeStyle = `rgba(229,37,37,${0.07 + ri * 0.015})`;
      actx.lineWidth = 0.8;
      actx.stroke();
      const nodePositions = [];
      for (let n = 0; n < ring.nodes; n++) {
        const a = angle + ring.phase + (n / ring.nodes) * Math.PI * 2;
        const nx = cx + Math.cos(a) * ring.r;
        const ny = cy + Math.sin(a) * ring.r;
        nodePositions.push({ x: nx, y: ny });
        const pulse = 0.7 + 0.3 * Math.sin(t * 0.002 + n * 1.3 + ri);
        actx.beginPath();
        actx.arc(nx, ny, 2.5 * pulse, 0, Math.PI * 2);
        actx.fillStyle = `rgba(229,37,37,${0.35 + 0.2 * pulse})`;
        actx.fill();
        actx.beginPath();
        actx.arc(nx, ny, 6 * pulse, 0, Math.PI * 2);
        actx.strokeStyle = `rgba(229,37,37,${0.08 * pulse})`;
        actx.lineWidth = 1;
        actx.stroke();
      }
      if (ring.nodes >= 3) {
        for (let n = 0; n < ring.nodes; n++) {
          const pa = nodePositions[n];
          const pb = nodePositions[(n + 1) % ring.nodes];
          const bmx = (pa.x + pb.x) / 2 + Math.cos(t * 0.0008 + n) * 12;
          const bmy = (pa.y + pb.y) / 2 + Math.sin(t * 0.0008 + n) * 12;
          actx.beginPath();
          actx.moveTo(pa.x, pa.y);
          actx.quadraticCurveTo(bmx, bmy, pb.x, pb.y);
          actx.strokeStyle = `rgba(229,37,37,0.06)`;
          actx.lineWidth = 0.7;
          actx.stroke();
        }
      }
    });
    const r0n = rings[0].nodes, r2n = rings[2].nodes;
    for (let i = 0; i < 2; i++) {
      const aIn  = t * rings[0].speed + rings[0].phase + (i / r0n) * Math.PI * 2;
      const aOut = t * rings[2].speed + rings[2].phase + (i / r2n) * Math.PI * 2;
      actx.beginPath();
      actx.moveTo(cx + Math.cos(aIn)  * rings[0].r, cy + Math.sin(aIn)  * rings[0].r);
      actx.lineTo(cx + Math.cos(aOut) * rings[2].r, cy + Math.sin(aOut) * rings[2].r);
      actx.strokeStyle = 'rgba(229,37,37,0.05)';
      actx.lineWidth = 0.6;
      actx.stroke();
    }
    const cp = 0.6 + 0.4 * Math.sin(t * 0.0015);
    actx.beginPath();
    actx.arc(cx, cy, 5 * cp, 0, Math.PI * 2);
    actx.fillStyle = `rgba(229,37,37,${0.5 * cp})`;
    actx.fill();
    actx.beginPath();
    actx.arc(cx, cy, 14 * cp, 0, Math.PI * 2);
    actx.strokeStyle = `rgba(229,37,37,${0.08 * cp})`;
    actx.lineWidth = 1;
    actx.stroke();
    actx.beginPath();
    actx.arc(cx, cy, 28 * cp, 0, Math.PI * 2);
    actx.strokeStyle = `rgba(229,37,37,${0.04 * cp})`;
    actx.lineWidth = 0.8;
    actx.stroke();
    t++;
    requestAnimationFrame(drawAbstract);
  }
  drawAbstract();
})();

// CTA CANVAS
(function(){
  const cc=document.getElementById('cta-canvas');
  if(!cc) return;
  const cctx=cc.getContext('2d');
  function resizeCC(){cc.width=cc.offsetWidth;cc.height=cc.offsetHeight}
  resizeCC();
  window.addEventListener('resize',resizeCC);
  const ctaRings=[];
  for(let i=0;i<5;i++){ctaRings.push({r:50+i*80,speed:.0003+i*.0001,angle:Math.random()*Math.PI*2,opacity:.06-i*.008})}
  function animCta(){
    cctx.clearRect(0,0,cc.width,cc.height);
    const cx=cc.width/2,cy=cc.height/2;
    ctaRings.forEach(ring=>{
      ring.angle+=ring.speed;
      cctx.beginPath();
      cctx.globalAlpha=ring.opacity;
      cctx.strokeStyle='#E52525';
      cctx.lineWidth=.8;
      cctx.arc(cx,cy,ring.r,0,Math.PI*2);
      cctx.stroke();
      const px=cx+Math.cos(ring.angle)*ring.r,py=cy+Math.sin(ring.angle)*ring.r;
      cctx.beginPath();cctx.globalAlpha=ring.opacity*3;
      cctx.fillStyle='#E52525';
      cctx.arc(px,py,2,0,Math.PI*2);cctx.fill();
    });
    requestAnimationFrame(animCta);
  }
  animCta();
})();

// SCROLL REVEAL
const revealEls=document.querySelectorAll('.reveal,.reveal-left');
const observer=new IntersectionObserver(entries=>{
  entries.forEach(e=>{if(e.isIntersecting){e.target.classList.add('visible');observer.unobserve(e.target)}});
},{threshold:.12,rootMargin:'0px 0px -60px 0px'});
revealEls.forEach(el=>observer.observe(el));

// FAQ ACCORDION
document.querySelectorAll('.faq-q').forEach(q=>{
  q.addEventListener('click',()=>{
    const item=q.parentElement;
    const wasOpen=item.classList.contains('open');
    document.querySelectorAll('.faq-item').forEach(i=>i.classList.remove('open'));
    if(!wasOpen)item.classList.add('open');
  });
});

// NAV SCROLL
window.addEventListener('scroll',()=>{
  const nav=document.querySelector('nav');
  nav.style.background=window.scrollY>80?'rgba(8,8,8,0.95)':'transparent';
  nav.style.backdropFilter=window.scrollY>80?'blur(20px)':'none';
  nav.style.borderBottom=window.scrollY>80?'1px solid rgba(255,255,255,0.05)':'none';
  nav.style.transition='all .4s';
});

// SMOOTH SCROLL
document.querySelectorAll('a[href^="#"]').forEach(a=>{
  a.addEventListener('click',e=>{
    e.preventDefault();
    const target=document.querySelector(a.getAttribute('href'));
    if(target)target.scrollIntoView({behavior:'smooth',block:'start'});
  });
});
</script>

<!-- FORM AJAX -->
<script>
(function(){
  var form = document.getElementById('contact-form');
  var btn  = document.getElementById('form-btn');
  var fb   = document.getElementById('form-feedback');
  if(!form) return;

  function showFeedback(msg, ok){
    fb.textContent = msg;
    fb.style.display = 'block';
    fb.style.background = ok ? 'rgba(37,211,102,.08)' : 'rgba(229,37,37,.08)';
    fb.style.color = ok ? '#25D366' : 'var(--gold)';
    fb.style.border = '1px solid ' + (ok ? 'rgba(37,211,102,.25)' : 'rgba(229,37,37,.25)');
  }

  function validateClient(){
    var nombre  = form.nombre.value.trim();
    var empresa = form.empresa.value.trim();
    var email   = form.email.value.trim();
    var mensaje = form.mensaje.value.trim();
    var emailRx = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;
    if(nombre.length < 2)        { showFeedback('Por favor escribe tu nombre completo.', false); return false; }
    if(empresa.length < 2)       { showFeedback('Por favor escribe tu empresa o nombre profesional.', false); return false; }
    if(!emailRx.test(email))     { showFeedback('El correo electrónico no parece válido.', false); return false; }
    if(mensaje.length < 10)      { showFeedback('Cuéntanos un poco más sobre tu proyecto (mínimo 10 caracteres).', false); return false; }
    return true;
  }

  form.addEventListener('submit', function(e){
    e.preventDefault();
    if(!validateClient()) return;
    btn.disabled = true;
    btn.textContent = 'Enviando…';
    var data = new FormData(form);
    fetch('send.php', { method:'POST', body: data })
      .then(function(r){ return r.json(); })
      .then(function(res){
        if(res.success){
          showFeedback('✓ ' + (res.message || '¡Mensaje enviado! Te contactamos pronto.'), true);
          form.reset();
          btn.textContent = 'Mensaje enviado ✓';
        } else {
          showFeedback(res.error || 'Error al enviar. Intenta de nuevo.', false);
          btn.disabled = false;
          btn.textContent = 'Enviar mensaje →';
        }
      })
      .catch(function(){
        showFeedback('Error de conexión. Intenta de nuevo o escríbenos por WhatsApp.', false);
        btn.disabled = false;
        btn.textContent = 'Enviar mensaje →';
      });
  });
})();
</script>
</body>
</html>
