/* =================================================
   CodeControl — Site Institucional (Light Theme)
   HTML/CSS/JS puro · Mobile-first
   ================================================= */

:root {
  /* Light tech palette */
  --bg: #f7faff;
  --bg-soft: #eef3fb;
  --card: #ffffff;
  --card-2: #f3f6fc;
  --primary: #0066ff;          /* azul vivo */
  --primary-600: #0052cc;
  --primary-50: #e6f0ff;
  --secondary: #16a34a;        /* verde */
  --secondary-50: #e6f7ee;
  --accent: #6d28d9;            /* violeta */
  --accent-50: #f1ebfd;
  --warning: #d97706;
  --text: #0b1b34;
  --text-2: #334158;
  --muted: #5b6b85;
  --border: rgba(11, 27, 52, 0.10);
  --border-strong: rgba(11, 27, 52, 0.18);

  --grad-primary: linear-gradient(120deg, #0066ff, #16a34a);
  --grad-accent:  linear-gradient(135deg, #0066ff, #6d28d9);
  --shadow-sm: 0 2px 8px rgba(11,27,52,.06);
  --shadow-md: 0 8px 24px -8px rgba(11,27,52,.12);
  --shadow-lg: 0 24px 60px -24px rgba(0,102,255,.25);
  --radius: 12px;
  --radius-lg: 16px;
  --radius-xl: 22px;
  --container: 1180px;
}

/* Reset */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body,h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit;width:100%}

body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:
    radial-gradient(ellipse 80% 50% at 90% -10%, rgba(0,102,255,.10), transparent 60%),
    radial-gradient(ellipse 60% 45% at -10% 5%, rgba(109,40,217,.08), transparent 60%);
  background-attachment:fixed;
  overflow-x:hidden;
}
::selection{background:rgba(0,102,255,.20);color:var(--text)}

.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1rem}
@media(min-width:768px){.container{padding-inline:1.5rem}}
.container-sm{max-width:780px}

/* Headings — mobile-first scaling */
h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--text)}
h1{font-size:clamp(1.9rem,7vw,3.6rem);font-weight:800;line-height:1.1}
h2{font-size:clamp(1.5rem,4.5vw,2.5rem)}
h3{font-size:1.1rem}
p{color:var(--text-2)}
.lead{font-size:clamp(.98rem,2.4vw,1.1rem);color:var(--muted);margin-top:1rem;max-width:36rem}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}
.center{text-align:center;justify-content:center}

.grad-text{background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.22em;color:var(--primary);font-weight:700}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.7rem 1.1rem;border-radius:10px;
  font-size:.92rem;font-weight:600;
  border:1px solid transparent;transition:all .2s ease;
  white-space:nowrap;min-height:44px;
}
.btn-lg{padding:.95rem 1.5rem;font-size:1rem;min-height:48px}
.btn-block{width:100%}
.btn-primary{
  background:var(--primary);color:#fff;
  box-shadow:0 6px 18px -6px rgba(0,102,255,.55);
}
.btn-primary:hover{background:var(--primary-600);transform:translateY(-1px);box-shadow:0 10px 24px -8px rgba(0,102,255,.65)}
.btn-outline{border-color:var(--border-strong);color:var(--text);background:#fff}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-ghost{border-color:var(--border);color:var(--text-2)}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}

/* =========== HEADER =========== */
.site-header{
  position:fixed;top:0;inset-inline:0;z-index:50;
  transition:all .3s ease;background:rgba(247,250,255,.7);
  backdrop-filter:blur(8px);
}
.site-header.scrolled{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
@media(min-width:768px){.nav{height:72px}}
.brand{display:flex;align-items:center;gap:.6rem}
.brand-mark{
  width:36px;height:36px;display:grid;place-items:center;
  background:var(--grad-accent);
  color:#fff;border-radius:10px;
  box-shadow:0 6px 18px -6px rgba(0,102,255,.5);
}
.brand-mark svg{width:20px;height:20px}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-text strong{font-size:1rem;color:var(--text)}
.brand-tag{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:2px}
@media(max-width:480px){.brand-tag{display:none}}

.nav-links{display:none}
.nav-cta{display:none;align-items:center;gap:.5rem}
.nav-cta-mobile{display:none}

.hamburger{display:flex;flex-direction:column;gap:5px;padding:.55rem;border:1px solid var(--border-strong);border-radius:8px;background:#fff}
.hamburger span{display:block;width:20px;height:2px;background:var(--text);transition:.3s;border-radius:2px}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile open menu */
.nav-links.open{
  display:flex;flex-direction:column;align-items:stretch;gap:0;
  position:absolute;top:64px;inset-inline:0;
  background:#fff;
  border-top:1px solid var(--border);
  box-shadow:var(--shadow-md);
  padding:.75rem 1rem 1.25rem;
  max-height:calc(100vh - 64px);overflow-y:auto;
}
.nav-links.open a{padding:.9rem .25rem;border-bottom:1px solid var(--border);color:var(--text);font-size:.95rem;font-weight:500}
.nav-links.open .nav-cta-mobile{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:1rem;border:0}
.nav-links.open .nav-cta-mobile a{border:0;padding:0}

@media(min-width:980px){
  .nav-links{display:flex;align-items:center;gap:1.6rem;position:static;background:none;border:0;padding:0;box-shadow:none}
  .nav-links a{font-size:.9rem;color:var(--text-2);transition:color .2s;padding:0;border:0}
  .nav-links a:hover{color:var(--primary)}
  .nav-cta{display:flex}
  .hamburger{display:none}
  .nav-cta-mobile{display:none !important}
}

/* =========== HERO =========== */
.hero{position:relative;padding:6rem 0 3rem;overflow:hidden}
@media(min-width:768px){.hero{padding:9rem 0 5rem}}
.grid-bg{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(0,102,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,102,255,.06) 1px,transparent 1px);
  background-size:32px 32px;
  -webkit-mask-image:radial-gradient(ellipse at top,#000,transparent 70%);
  mask-image:radial-gradient(ellipse at top,#000,transparent 70%);
}
.grid-bg.soft{
  -webkit-mask-image:radial-gradient(ellipse at center,#000,transparent 75%);
  mask-image:radial-gradient(ellipse at center,#000,transparent 75%);
  opacity:.6;
}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2.25rem;align-items:center;position:relative}
@media(min-width:900px){.hero-grid{grid-template-columns:1fr 1fr;gap:3rem}}

.chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.4rem .85rem;border-radius:999px;font-size:.75rem;
  border:1px solid var(--border);background:#fff;color:var(--text-2);
  box-shadow:var(--shadow-sm);
}
.chip-accent{background:var(--accent-50);border-color:rgba(109,40,217,.25);color:var(--accent)}
.dot{
  width:8px;height:8px;border-radius:50%;background:var(--secondary);
  box-shadow:0 0 0 0 rgba(22,163,74,.55);animation:pulse 1.8s ease-out infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(22,163,74,.55)}
  100%{box-shadow:0 0 0 14px transparent}
}
.hero-content h1{margin-top:1.1rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
@media(max-width:480px){.hero-actions .btn{flex:1 1 100%}}
.hero-tags{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;margin-top:1.75rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* Mock panel */
.hero-mockup{position:relative}
.mock-glow{
  position:absolute;inset:-1.5rem;border-radius:32px;z-index:-1;
  background:linear-gradient(120deg,rgba(0,102,255,.18),rgba(109,40,217,.12),rgba(22,163,74,.15));
  filter:blur(60px);
}
.mock-panel{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-xl);
  padding:1.1rem;
  box-shadow:var(--shadow-lg);
}
@media(min-width:768px){.mock-panel{padding:1.4rem}}
.mock-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}
.mock-title{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.92rem}
.mock-meta{font-size:.7rem;color:var(--muted);font-family:'JetBrains Mono',monospace}
.mock-meta.upper{text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;margin-bottom:.2rem}
.mock-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.mock-card{
  border:1px solid var(--border);background:var(--card-2);
  border-radius:10px;padding:.7rem .8rem;
}
.mc-h{display:flex;align-items:center;gap:.4rem;font-size:.7rem;color:var(--muted)}
.mc-v{font-size:.98rem;font-weight:600;margin-top:.15rem;color:var(--text)}
.mc-hint{font-size:.62rem;color:var(--muted);font-family:'JetBrains Mono',monospace;margin-top:.2rem}
.bar{height:6px;border-radius:999px;background:var(--bg-soft);margin-top:.5rem;overflow:hidden}
.bar span{display:block;height:100%;background:var(--grad-primary);transition:width .7s ease}

.mock-term{
  margin-top:1rem;padding:.7rem .85rem;border-radius:10px;
  background:#0b1b34;border:1px solid #0b1b34;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;color:#94a3b8;
  overflow-x:auto;white-space:nowrap;
}
.t-prompt{color:#4ade80;margin-bottom:.25rem}
.t-cyan{color:#38bdf8}
.t-violet{color:#c4b5fd}
.t-divider{border-top:1px solid rgba(255,255,255,.1);margin-top:.5rem;padding-top:.5rem}
.t-white{color:#f1f5f9}

/* =========== SECTIONS =========== */
.section{padding:3.5rem 0}
@media(min-width:768px){.section{padding:6rem 0}}
.section-alt{background:var(--bg-soft);border-block:1px solid var(--border)}
.saas-section{position:relative;overflow:hidden}

.section-head{max-width:42rem;margin-bottom:2rem}
@media(min-width:768px){.section-head{margin-bottom:3rem}}
.section-head.center{margin-inline:auto;text-align:center}
.section-head.split{display:flex;flex-direction:column;gap:.75rem;max-width:none}
@media(min-width:768px){.section-head.split{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:1rem}}
.section-head.split p{max-width:24rem}
.section-head h2{margin-top:.5rem}
.section-head p{margin-top:.85rem}

.grid-3{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:620px){.grid-3{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.grid-3{grid-template-columns:repeat(3,1fr);gap:1.1rem}}

/* Cards */
.card{
  background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1.25rem;
  transition:all .25s ease;
  box-shadow:var(--shadow-sm);
}
@media(min-width:768px){.card{padding:1.5rem}}
.card:hover{border-color:rgba(0,102,255,.35);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.card-icon{
  width:46px;height:46px;display:grid;place-items:center;
  background:var(--primary-50);border:1px solid rgba(0,102,255,.18);
  color:var(--primary);border-radius:11px;
}
.card h3{margin-top:.9rem}
.card p{color:var(--muted);font-size:.92rem;margin-top:.45rem}
.bullets{display:grid;grid-template-columns:1fr 1fr;gap:.3rem .8rem;margin-top:1rem;font-size:.78rem;color:var(--text-2)}
.bullets li{display:flex;align-items:center;gap:.4rem}
.bullets li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--primary);flex:none}

/* SaaS section */
.saas-grid{display:grid;grid-template-columns:1fr;gap:2.25rem;align-items:center;position:relative}
@media(min-width:900px){.saas-grid{grid-template-columns:1fr 1fr;gap:3rem}}
.check-grid{display:grid;grid-template-columns:1fr;gap:.55rem;margin-top:1.25rem;font-size:.9rem;color:var(--text-2)}
@media(min-width:520px){.check-grid{grid-template-columns:1fr 1fr}}
.check-grid li{display:flex;align-items:flex-start;gap:.5rem}
.check-grid li::before{content:"✓";color:var(--secondary);font-weight:700;flex:none}

.plan-box{
  margin-top:1.5rem;display:flex;flex-direction:column;gap:.85rem;
  padding:1.1rem 1.25rem;border-radius:var(--radius-lg);
  background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm);
}
@media(min-width:520px){.plan-box{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}}
.plan-title{font-size:1.2rem;font-weight:600;margin-top:.15rem}
.plan-price{color:var(--secondary);font-size:.85rem;font-weight:500}
.plan-box .btn{flex-shrink:0}

/* SaaS mockup */
.badge-online{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.25rem .65rem;border-radius:999px;font-size:.72rem;
  background:var(--secondary-50);border:1px solid rgba(22,163,74,.3);color:var(--secondary);
}
.saas-mock{display:grid;grid-template-columns:2fr 1fr;gap:.7rem;margin-top:1.1rem}
.saas-big{background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:1rem}
.big-val{font-size:clamp(2rem,7vw,2.6rem);font-weight:700;line-height:1;margin-top:.25rem}
.saas-pump{
  background:var(--card-2);border:1px solid var(--border);border-radius:12px;
  padding:1rem;display:grid;place-items:center;text-align:center;
}
.pump-on{color:var(--secondary);font-weight:600;font-size:.95rem;margin-top:.2rem}

/* Steps */
.steps{display:grid;grid-template-columns:1fr;gap:.85rem}
@media(min-width:520px){.steps{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.steps{grid-template-columns:repeat(5,1fr)}}
.step{
  background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1.25rem 1.1rem;box-shadow:var(--shadow-sm);
  transition:all .2s ease;
}
.step:hover{border-color:rgba(0,102,255,.3);transform:translateY(-2px)}
.step-n{font-family:'JetBrains Mono',monospace;font-size:2rem;font-weight:700;background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;opacity:.85}
.step h3{margin-top:.5rem;font-size:1rem}
.step p{color:var(--muted);font-size:.85rem;margin-top:.45rem}

/* Areas */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
@media(min-width:620px){.areas{grid-template-columns:repeat(3,1fr)}}
@media(min-width:980px){.areas{grid-template-columns:repeat(5,1fr)}}
.area{
  background:#fff;
  border:1px solid var(--border);border-radius:var(--radius);
  padding:1rem;display:flex;flex-direction:column;gap:.6rem;
  transition:all .2s ease;box-shadow:var(--shadow-sm);
}
.area:hover{transform:translateY(-2px);border-color:rgba(0,102,255,.35);box-shadow:var(--shadow-md)}
.area .i{
  width:38px;height:38px;display:grid;place-items:center;
  background:var(--primary-50);border:1px solid rgba(0,102,255,.18);
  color:var(--primary);border-radius:9px;font-size:1.1rem;
}
.area span:last-child{font-size:.86rem;font-weight:500;color:var(--text)}

/* Projects */
.project .tag{
  display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.65rem;
  text-transform:uppercase;letter-spacing:.16em;font-weight:600;
  background:var(--primary-50);border:1px solid rgba(0,102,255,.2);color:var(--primary);
}
.project h3{margin-top:.85rem}

/* Tech */
.tech-list{display:flex;flex-wrap:wrap;gap:.5rem}
.badge{
  padding:.55rem 1rem;border-radius:999px;font-size:.85rem;
  border:1px solid var(--border);background:#fff;color:var(--text-2);
  transition:all .2s ease;
}
.badge:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}

/* Differentials */
.diff-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}
@media(min-width:900px){.diff-grid{grid-template-columns:1fr 1fr;gap:3rem}}
.diff-list{display:grid;grid-template-columns:1fr;gap:.6rem}
@media(min-width:520px){.diff-list{grid-template-columns:1fr 1fr}}
.diff-list li{
  background:#fff;
  border:1px solid var(--border);border-radius:10px;
  padding:.85rem 1rem;font-size:.88rem;color:var(--text-2);
  box-shadow:var(--shadow-sm);
}

/* CTA */
.cta-box{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#0066ff,#6d28d9);
  border:1px solid transparent;border-radius:var(--radius-xl);
  padding:2.5rem 1.25rem;text-align:center;color:#fff;
  box-shadow:var(--shadow-lg);
}
@media(min-width:768px){.cta-box{padding:3.5rem 2rem}}
.cta-box h2{color:#fff}
.cta-box .lead{color:rgba(255,255,255,.9);margin-inline:auto}
.cta-box::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 20% 0%,rgba(255,255,255,.18),transparent 50%);
  z-index:0;
}
.cta-box > *{position:relative;z-index:1}
.cta-box .btn-primary{background:#fff;color:var(--primary);box-shadow:0 6px 18px -6px rgba(0,0,0,.25)}
.cta-box .btn-primary:hover{background:#f1f5f9}
.cta-box .btn-outline{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.cta-box .btn-outline:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:.6rem}
.faq-item{
  background:#fff;
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow-sm);
}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:1rem 1.1rem;display:flex;justify-content:space-between;
  align-items:center;gap:1rem;font-weight:500;color:var(--text);font-size:.95rem;
}
.faq-item summary::-webkit-details-marker{display:none}
.chev{color:var(--primary);transition:transform .3s ease;font-size:.85rem;flex:none}
.faq-item[open] .chev{transform:rotate(180deg)}
.faq-body{padding:0 1.1rem 1.1rem;color:var(--muted);font-size:.92rem}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}
@media(min-width:900px){.contact-grid{grid-template-columns:1fr 1fr;gap:3rem}}
.contact-info{margin-top:1.75rem;display:flex;flex-direction:column;gap:1rem;font-size:.92rem;color:var(--text-2)}
.contact-info li{display:flex;align-items:center;gap:.75rem}
.contact-info a:hover{color:var(--primary)}
.ci-icon{
  width:36px;height:36px;display:grid;place-items:center;
  border-radius:9px;font-size:.95rem;flex:none;
}
.ci-cyan{background:var(--primary-50);border:1px solid rgba(0,102,255,.2);color:var(--primary)}
.ci-green{background:var(--secondary-50);border:1px solid rgba(22,163,74,.25);color:var(--secondary)}
.ci-violet{background:var(--accent-50);border:1px solid rgba(109,40,217,.25);color:var(--accent)}

.form{
  background:#fff;
  border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:1.25rem;display:flex;flex-direction:column;gap:.85rem;
  box-shadow:var(--shadow-md);
}
@media(min-width:768px){.form{padding:1.75rem}}
.form-row{display:grid;grid-template-columns:1fr;gap:.85rem}
@media(min-width:560px){.form-row{grid-template-columns:1fr 1fr}}
.form label{display:flex;flex-direction:column;gap:.4rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.form input,.form select,.form textarea{
  background:var(--bg);border:1px solid var(--border-strong);
  border-radius:8px;padding:.8rem .9rem;font-size:1rem;
  color:var(--text);transition:border-color .2s, box-shadow .2s;
  text-transform:none;letter-spacing:normal;font-weight:400;
}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,102,255,.12)}
.form textarea{resize:vertical;min-height:120px;font-family:inherit}
.form select option{background:#fff;color:var(--text)}
.form-success{
  margin-top:.25rem;padding:.75rem .9rem;border-radius:8px;
  background:var(--secondary-50);border:1px solid rgba(22,163,74,.3);
  color:var(--secondary);font-size:.88rem;font-weight:500;
}

/* Footer */
.site-footer{border-top:1px solid var(--border);background:#fff;padding:2.5rem 0 1.5rem;margin-top:2rem}
@media(min-width:768px){.site-footer{padding:3.5rem 0 1.75rem}}
.footer-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:560px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:2.5rem}}
.footer-brand{grid-column:1/-1}
@media(min-width:980px){.footer-brand{grid-column:auto}}
.footer-brand .brand{margin-bottom:.5rem}
.footer-tag{
  display:inline-flex;align-items:center;gap:.45rem;
  margin-top:1rem;padding:.4rem .8rem;border-radius:999px;font-size:.72rem;
  border:1px solid var(--border);background:var(--bg-soft);color:var(--muted);
}
.site-footer h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--text);margin-bottom:.85rem;font-weight:700}
.site-footer ul{display:flex;flex-direction:column;gap:.55rem}
.site-footer li{font-size:.88rem;color:var(--muted)}
.site-footer a:hover{color:var(--primary)}
.footer-bottom{
  margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;
  font-size:.78rem;color:var(--muted);
}

/* Reveal animation */
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:translateY(0)}
}

/* Touch device tweaks */
@media(hover:none){
  .card:hover,.area:hover,.step:hover,.btn-primary:hover{transform:none}
}

/* =========== ICONS (CSS only) =========== */
.i{display:inline-block;width:1em;height:1em;vertical-align:-.15em;background:currentColor;
   -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
   -webkit-mask-position:center;mask-position:center;
   -webkit-mask-size:contain;mask-size:contain;}
.i-lg{width:1.6em;height:1.6em}

.i-wifi{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.55a11 11 0 0 1 14 0M1.42 9a16 16 0 0 1 21.16 0M8.53 16.11a6 6 0 0 1 6.95 0'/><circle cx='12' cy='20' r='1'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.55a11 11 0 0 1 14 0M1.42 9a16 16 0 0 1 21.16 0M8.53 16.11a6 6 0 0 1 6.95 0'/><circle cx='12' cy='20' r='1'/></svg>");color:var(--secondary)}

.i-wave{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 12h-4l-3 9L9 3l-3 9H2'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 12h-4l-3 9L9 3l-3 9H2'/></svg>");color:var(--primary)}

.i-power{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18.36 6.64a9 9 0 1 1-12.73 0M12 2v10'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18.36 6.64a9 9 0 1 1-12.73 0M12 2v10'/></svg>");color:var(--secondary)}
.i-power.off{color:var(--muted)}

.i-toggle{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='1' y='6' width='22' height='12' rx='6'/><circle cx='17' cy='12' r='3'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='1' y='6' width='22' height='12' rx='6'/><circle cx='17' cy='12' r='3'/></svg>");color:var(--primary)}

.i-server{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='8' rx='2'/><rect x='2' y='13' width='20' height='8' rx='2'/><line x1='6' y1='7' x2='6.01' y2='7'/><line x1='6' y1='17' x2='6.01' y2='17'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='8' rx='2'/><rect x='2' y='13' width='20' height='8' rx='2'/><line x1='6' y1='7' x2='6.01' y2='7'/><line x1='6' y1='17' x2='6.01' y2='17'/></svg>");color:var(--accent)}

.i-chip{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='16' height='16' rx='2'/><rect x='9' y='9' width='6' height='6'/><line x1='9' y1='1' x2='9' y2='4'/><line x1='15' y1='1' x2='15' y2='4'/><line x1='9' y1='20' x2='9' y2='23'/><line x1='15' y1='20' x2='15' y2='23'/><line x1='20' y1='9' x2='23' y2='9'/><line x1='20' y1='14' x2='23' y2='14'/><line x1='1' y1='9' x2='4' y2='9'/><line x1='1' y1='14' x2='4' y2='14'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='4' width='16' height='16' rx='2'/><rect x='9' y='9' width='6' height='6'/><line x1='9' y1='1' x2='9' y2='4'/><line x1='15' y1='1' x2='15' y2='4'/><line x1='9' y1='20' x2='9' y2='23'/><line x1='15' y1='20' x2='15' y2='23'/><line x1='20' y1='9' x2='23' y2='9'/><line x1='20' y1='14' x2='23' y2='14'/><line x1='1' y1='9' x2='4' y2='9'/><line x1='1' y1='14' x2='4' y2='14'/></svg>");color:var(--warning)}

.i-code{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='16 18 22 12 16 6'/><polyline points='8 6 2 12 8 18'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='16 18 22 12 16 6'/><polyline points='8 6 2 12 8 18'/></svg>")}

.i-cloud{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z'/></svg>")}

.i-gauge{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 14l4-4M3.34 19a10 10 0 1 1 17.32 0'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M12 14l4-4M3.34 19a10 10 0 1 1 17.32 0'/></svg>")}

.i-flow{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='6' height='6' rx='1'/><rect x='16' y='15' width='6' height='6' rx='1'/><rect x='9' y='9' width='6' height='6' rx='1'/><path d='M5 9v3h7M19 15v-3h-7'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='6' height='6' rx='1'/><rect x='16' y='15' width='6' height='6' rx='1'/><rect x='9' y='9' width='6' height='6' rx='1'/><path d='M5 9v3h7M19 15v-3h-7'/></svg>")}

.i-bulb{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.9.7 1 1.3 1 2.3v1h6v-1c0-1 .1-1.6 1-2.3A7 7 0 0 0 12 2z'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.9.7 1 1.3 1 2.3v1h6v-1c0-1 .1-1.6 1-2.3A7 7 0 0 0 12 2z'/></svg>")}

.i-factory{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 20V8l5 4V8l5 4V8l5 4V4h3v16H2z'/><path d='M6 20v-4M11 20v-4M16 20v-4'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M2 20V8l5 4V8l5 4V8l5 4V4h3v16H2z'/><path d='M6 20v-4M11 20v-4M16 20v-4'/></svg>")}
.i-store{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9l1-5h16l1 5M3 9v11h18V9M3 9h18M9 13h6'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 9l1-5h16l1 5M3 9v11h18V9M3 9h18M9 13h6'/></svg>")}
.i-home{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12l9-9 9 9v9h-6v-6h-6v6H3z'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12l9-9 9 9v9h-6v-6h-6v6H3z'/></svg>")}
.i-radio{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2'/><path d='M16.24 7.76a6 6 0 0 1 0 8.49M7.76 16.24a6 6 0 0 1 0-8.49M19.07 4.93a10 10 0 0 1 0 14.14M4.93 19.07a10 10 0 0 1 0-14.14'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2'/><path d='M16.24 7.76a6 6 0 0 1 0 8.49M7.76 16.24a6 6 0 0 1 0-8.49M19.07 4.93a10 10 0 0 1 0 14.14M4.93 19.07a10 10 0 0 1 0-14.14'/></svg>")}
.i-monitor{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='14' rx='2'/><line x1='8' y1='21' x2='16' y2='21'/><line x1='12' y1='17' x2='12' y2='21'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='3' width='20' height='14' rx='2'/><line x1='8' y1='21' x2='16' y2='21'/><line x1='12' y1='17' x2='12' y2='21'/></svg>")}
.i-grad{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 10L12 5 2 10l10 5 10-5z'/><path d='M6 12v5c3 3 9 3 12 0v-5'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 10L12 5 2 10l10 5 10-5z'/><path d='M6 12v5c3 3 9 3 12 0v-5'/></svg>")}
.i-list{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='3' width='16' height='18' rx='2'/><line x1='8' y1='8' x2='16' y2='8'/><line x1='8' y1='12' x2='16' y2='12'/><line x1='8' y1='16' x2='13' y2='16'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='3' width='16' height='18' rx='2'/><line x1='8' y1='8' x2='16' y2='8'/><line x1='8' y1='12' x2='16' y2='12'/><line x1='8' y1='16' x2='13' y2='16'/></svg>")}
.i-chart{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='20' x2='12' y2='10'/><line x1='18' y1='20' x2='18' y2='4'/><line x1='6' y1='20' x2='6' y2='16'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><line x1='12' y1='20' x2='12' y2='10'/><line x1='18' y1='20' x2='18' y2='4'/><line x1='6' y1='20' x2='6' y2='16'/></svg>")}
.i-plug{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 2L12 12M9 21a4 4 0 0 1-4-4l3-3 5 5-3 3a1 1 0 0 1-1-1zM7 14l-2 2M19 7l3-3M14 9l3-3'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M22 2L12 12M9 21a4 4 0 0 1-4-4l3-3 5 5-3 3a1 1 0 0 1-1-1zM7 14l-2 2M19 7l3-3M14 9l3-3'/></svg>")}
