:root{
  --primary:#EE5534;--primary-dark:#D8431F;--primary-light:#FF8A5C;--primary-soft:rgba(238,85,52,.1);
  --black:#0B0B0B;--dark:#161616;--dark-2:#202020;--white:#fff;--off:#FAF7F5;
  --gray:#5c5c5c;--gray-light:#737373;--border:#EAE4E0;
  --green:#67C23A;--orange:#F58A3C;--red:#F04747;--blue:#6EB6FF;
  --grad:linear-gradient(135deg,#EE5534,#FF8A5C);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--white);color:var(--black);line-height:1.6;overflow-x:hidden}
a{text-decoration:none;color:inherit}ul{list-style:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:6px}
::selection{background:var(--primary);color:#fff}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:5px}
.container{max-width:1200px;margin:0 auto;padding:0 2rem}

/* ===== NAVBAR ===== */
.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,.94);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:.3s}
.navbar.scrolled{box-shadow:0 4px 30px rgba(0,0,0,.08)}
.nav-container{max-width:1200px;margin:0 auto;padding:.9rem 2rem;display:flex;justify-content:space-between;align-items:center}
.logo{display:flex;align-items:center;gap:.7rem}
.logo-mark{display:inline-flex;flex-direction:column;gap:4px}
.logo-mark i{position:relative;width:44px;height:11px;border-radius:6px;background:linear-gradient(#5A5A5A,#5A5A5A) right 5px center/14px 5px no-repeat,#3D3D3D}
.logo-mark i::before,.logo-mark i::after{content:'';position:absolute;top:2.5px;width:6px;height:6px;border-radius:50%}
.logo-mark i::before{left:5px}.logo-mark i::after{left:14px}
.logo-mark .g::before,.logo-mark .g::after{background:var(--green)}
.logo-mark .o::before,.logo-mark .o::after{background:var(--orange)}
.logo-mark .r::before,.logo-mark .r::after{background:var(--red)}
.logo-text{font-size:1.35rem;font-weight:900;letter-spacing:-.5px;line-height:1;color:var(--black)}
.logo-text .apostrophe{color:var(--primary)}
.logo-tagline{display:block;font-size:.55rem;font-weight:700;letter-spacing:1.5px;color:var(--gray);margin-top:3px}
.nav-links{display:flex;gap:1.7rem;align-items:center}
.nav-links>li{position:relative}
.nav-links a{font-weight:600;font-size:.95rem;color:var(--gray);transition:.3s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--black)}
.dropdown-toggle{background:none;border:0;font:inherit;font-weight:600;font-size:.95rem;color:var(--gray);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:.3s}
.dropdown-toggle:hover{color:var(--black)}
.dropdown-toggle i{font-size:.7rem;transition:.3s}
.dropdown.open .dropdown-toggle i{transform:rotate(180deg)}
.dropdown-menu{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 15px 40px rgba(0,0,0,.1);padding:.6rem;min-width:240px;opacity:0;visibility:hidden;transform:translateY(10px);transition:.3s}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu,.dropdown.open .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:flex;align-items:center;gap:.7rem;padding:.6rem .8rem;border-radius:10px;font-size:.9rem}
.dropdown-menu a:hover{background:var(--off);color:var(--primary)}
.dropdown-menu i{color:var(--primary);width:16px}
.btn-nav{padding:.6rem 1.4rem;background:var(--grad);border-radius:50px;color:#fff!important;font-weight:700}
.btn-nav:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(238,85,52,.4)}
.menu-toggle{display:none;flex-direction:column;cursor:pointer;gap:5px;background:none;border:0;padding:.5rem}
.menu-toggle span{width:25px;height:3px;background:var(--black);border-radius:2px;transition:.3s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ===== BOTONES ===== */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;border-radius:50px;font-weight:700;font-size:1rem;transition:.3s;border:2px solid transparent;cursor:pointer}
.btn-primary{background:var(--grad);color:#fff}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 15px 40px rgba(238,85,52,.4)}
.btn-dark{border-color:var(--black);color:var(--black)}
.btn-dark:hover{background:var(--black);color:#fff;transform:translateY(-3px)}
.btn-white{border-color:#fff;color:#fff}
.btn-white:hover{background:#fff;color:var(--black);transform:translateY(-3px)}
.btn-whatsapp{border-color:#25D366;color:#25D366}
.btn-whatsapp:hover{background:#25D366;color:#fff;transform:translateY(-3px)}

/* ===== ELEMENTOS MARCA ===== */
.dots{display:inline-flex;gap:4px}
.dots span{width:8px;height:8px;border-radius:50%}
.dots span:nth-child(1){background:var(--green)}.dots span:nth-child(2){background:var(--orange)}.dots span:nth-child(3){background:var(--red)}
.hero-badge,.section-tag{display:inline-flex;align-items:center;gap:.6rem;padding:.5rem 1.1rem;background:var(--primary-soft);border:1px solid rgba(238,85,52,.3);border-radius:50px;font-size:.85rem;color:var(--primary-dark);margin-bottom:1.2rem;font-weight:700}
.chip-new{background:var(--black);color:#fff;border:none;font-size:.7rem;padding:.25rem .7rem;border-radius:50px;letter-spacing:1px}

/* ===== HERO HOME ===== */
.hero{min-height:100vh;display:flex;align-items:center;position:relative;padding:8rem 0 5rem;overflow:hidden;background:#fff}
.hero-bg{position:absolute;inset:0}
.hero-bg::before{content:'';position:absolute;top:-30%;right:-15%;width:800px;height:800px;background:radial-gradient(circle,rgba(238,85,52,.12) 0%,transparent 70%);border-radius:50%;animation:float 8s ease-in-out infinite}
.hero-grid-pattern{position:absolute;inset:0;background-image:linear-gradient(rgba(11,11,11,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(11,11,11,.03) 1px,transparent 1px);background-size:50px 50px}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-30px)}}
.hero-content{max-width:1200px;margin:0 auto;padding:0 2rem;position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.hero h1{font-size:3.5rem;font-weight:900;line-height:1.08;margin-bottom:1.5rem;letter-spacing:-2px}
.highlight{background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero p{font-size:1.15rem;color:var(--gray);margin-bottom:2rem;max-width:500px;line-height:1.8}
.hero-buttons{display:flex;gap:1rem;flex-wrap:wrap}
.hero-visual{display:flex;justify-content:center}
.hero-graphic{position:relative;width:100%;max-width:500px}
.code-window{background:var(--dark);border:1px solid #2A2A2A;border-radius:16px;overflow:hidden;box-shadow:0 25px 60px rgba(0,0,0,.25);animation:codeFloat 6s ease-in-out infinite}
@keyframes codeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}
.code-header{display:flex;align-items:center;padding:1rem 1.5rem;background:var(--dark-2);border-bottom:1px solid #2A2A2A;gap:.5rem}
.code-dot{width:12px;height:12px;border-radius:50%}
.code-dot.green{background:var(--green)}.code-dot.orange{background:var(--orange)}.code-dot.red{background:var(--red)}
.code-title{margin-left:auto;font-size:.75rem;color:#666;font-family:'Courier New',monospace}
.code-body{overflow-x:auto;text-align:left;padding:1.5rem;font-family:'Courier New',monospace;font-size:.85rem;line-height:1.9;color:#D4D4D4}
.code-line{display:block;opacity:0;animation:typeLine .5s ease forwards}
.code-line:nth-child(1){animation-delay:.4s}.code-line:nth-child(2){animation-delay:.8s}.code-line:nth-child(3){animation-delay:1.2s}.code-line:nth-child(4){animation-delay:1.6s}.code-line:nth-child(5){animation-delay:2s}.code-line:nth-child(6){animation-delay:2.4s}.code-line:nth-child(7){animation-delay:2.8s}.code-line:nth-child(8){animation-delay:3.2s}
@keyframes typeLine{to{opacity:1}}
.code-keyword{color:var(--primary)}.code-function{color:var(--orange)}.code-string{color:var(--green)}.code-variable{color:#E5C07B}.code-comment{color:#666;font-style:italic}
.floating-badge{position:absolute;background:#fff;border:1px solid var(--border);border-radius:12px;padding:.8rem 1.2rem;display:flex;align-items:center;gap:.7rem;box-shadow:0 10px 30px rgba(0,0,0,.12);animation:badgeFloat 4s ease-in-out infinite}
.floating-badge.badge-1{top:-20px;right:-20px}
.floating-badge.badge-2{bottom:-20px;left:-20px;animation-delay:2s}
@keyframes badgeFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.floating-badge i{font-size:1.4rem}
.floating-badge .badge-text{font-size:.8rem;font-weight:700}
.floating-badge .badge-sub{font-size:.7rem;color:var(--gray-light)}

/* ===== PAGE HERO (subpáginas) ===== */
.page-hero{background:var(--black);padding:10.5rem 0 5rem;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;top:-40%;right:-10%;width:700px;height:700px;background:radial-gradient(circle,rgba(238,85,52,.18) 0%,transparent 70%);border-radius:50%}
.page-hero .container{position:relative;z-index:1}
.breadcrumb{font-size:.85rem;color:#777;margin-bottom:1.5rem;font-weight:600}
.breadcrumb a{color:#999}.breadcrumb a:hover{color:var(--primary)}
.breadcrumb span{color:var(--primary)}
.page-hero h1{color:#fff;font-size:3rem;font-weight:900;letter-spacing:-1.5px;line-height:1.1;margin-bottom:1.2rem;max-width:800px}
.page-hero p{color:#999;font-size:1.15rem;max-width:700px;line-height:1.8;margin-bottom:2rem}
.page-hero .hero-buttons{margin-top:.5rem}

/* ===== STATS ===== */
.stats{padding:4rem 0;background:var(--black)}
.stats-container{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.stat-item{text-align:center}
.stat-number{font-size:2.8rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-label{color:#999;font-size:.95rem;font-weight:500}

/* ===== SECCIONES ===== */
.section{padding:6.5rem 0}
.section-alt{background:var(--off)}
.section-dark{background:var(--black)}
.section-dark .section-header h2{color:#fff}
.section-dark .section-header p{color:#999}
.section-header{text-align:center;max-width:750px;margin:0 auto 4rem}
.section-header h2{font-size:2.6rem;font-weight:900;letter-spacing:-1.5px;line-height:1.15;margin-bottom:1rem}
.section-header p{color:var(--gray);font-size:1.1rem;line-height:1.8}

/* ===== SERVICIOS / FEATURES ===== */
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.service-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:2.5rem;transition:.4s;position:relative;overflow:hidden}
.service-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:var(--card-accent,var(--primary));transform:scaleX(0);transition:.4s}
.service-card:hover::before{transform:scaleX(1)}
.service-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(0,0,0,.08)}
.service-card h3{font-size:1.4rem;font-weight:800;margin-bottom:.8rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.service-card p{color:var(--gray);line-height:1.8;margin-bottom:1.5rem}
.service-icon{width:62px;height:62px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:1.5rem}
.service-link{color:var(--primary);font-weight:700;font-size:.95rem}
.service-link:hover{text-decoration:underline}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.feature-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:2rem;transition:.3s}
.feature-card:hover{transform:translateY(-5px);border-color:var(--primary);box-shadow:0 10px 30px rgba(238,85,52,.1)}
.feature-card i{font-size:1.8rem;color:var(--primary);margin-bottom:1rem}
.feature-card h4{font-size:1.05rem;font-weight:800;margin-bottom:.5rem}
.feature-card p{color:var(--gray);font-size:.9rem}
.check-list li{display:flex;gap:.8rem;margin-bottom:.9rem;color:var(--gray);font-weight:500}
.check-list i{color:var(--primary);margin-top:5px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.two-col h2{font-size:2.2rem;font-weight:900;letter-spacing:-1px;margin-bottom:1.2rem}
.two-col .lead{color:var(--gray);font-size:1.05rem;line-height:1.8;margin-bottom:1.8rem}
.types-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.type-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:1.4rem 1rem;text-align:center;transition:.3s;font-weight:700;font-size:.9rem}
.type-card i{display:block;font-size:1.6rem;color:var(--primary);margin-bottom:.7rem}
.type-card:hover{transform:translateY(-5px);border-color:var(--primary)}

/* ===== PROCESO ===== */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative}
.process-grid::before{content:'';position:absolute;top:45px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.4}
.process-step{text-align:center;position:relative;z-index:1}
.step-number{width:80px;height:80px;border-radius:50%;background:var(--dark);border:2px solid var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:900;color:var(--primary);margin:0 auto 1.3rem;transition:.3s}
.process-step:hover .step-number{background:var(--primary);color:#fff;transform:scale(1.1);box-shadow:0 10px 30px rgba(238,85,52,.4)}
.process-step h3{font-size:1.15rem;font-weight:800;margin-bottom:.5rem;color:#fff}
.process-step p{color:#999;font-size:.9rem}

/* ===== PARTNER SN WHITE ===== */
.partner-band{background:var(--black);padding:4.5rem 0;position:relative;overflow:hidden}
.partner-band::before{content:'';position:absolute;top:-50%;left:-10%;width:500px;height:500px;background:radial-gradient(circle,rgba(110,182,255,.12) 0%,transparent 70%);border-radius:50%}
.partner-inner{display:flex;align-items:center;justify-content:space-between;gap:3rem;flex-wrap:wrap;position:relative;z-index:1}
.sn-logo-box{display:flex;align-items:center;gap:1rem;flex-shrink:0}
.sn-logo-icon{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#fff,#cfe8ff);display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#0B0B0B}
.sn-logo{font-weight:900;font-size:1.5rem;color:#fff;letter-spacing:1px;line-height:1.1}
.sn-logo span{display:block;font-size:.7rem;font-weight:700;letter-spacing:3px;color:var(--blue)}
.partner-text{flex:1;min-width:280px}
.partner-text h3{color:#fff;font-size:1.4rem;font-weight:800;margin-bottom:.5rem}
.partner-text p{color:#999;font-size:.95rem;max-width:560px}

/* ===== PROYECTOS ===== */
.filter-bar{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-bottom:3rem}
.filter-btn{padding:.55rem 1.3rem;border-radius:50px;border:2px solid var(--border);background:#fff;font-weight:700;font-size:.85rem;color:var(--gray);cursor:pointer;transition:.3s;font-family:inherit}
.filter-btn.active,.filter-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.project-card{background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden;transition:.4s}
.project-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(0,0,0,.1)}
.project-card.hidden{display:none}
.portfolio-img{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff;overflow:hidden;background:var(--off)}
.portfolio-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .6s ease}
.project-card:hover .portfolio-img img{transform:scale(1.04)}
.g1{background:linear-gradient(135deg,#EE5534,#FF8A5C)}.g2{background:linear-gradient(135deg,#0B0B0B,#333)}
.g3{background:linear-gradient(135deg,#F04747,#EE5534)}.g4{background:linear-gradient(135deg,#67C23A,#2e8b1a)}
.portfolio-info{padding:1.5rem}
.portfolio-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}
.portfolio-tag,.portfolio-tech{display:inline-block;padding:.3rem .9rem;background:var(--primary-soft);border-radius:50px;font-size:.72rem;color:var(--primary-dark);font-weight:700}
.portfolio-tech{background:var(--off);color:var(--gray);border:1px solid var(--border)}
.portfolio-info .service-link{display:inline-block;margin-top:.9rem;font-size:.88rem}
.portfolio-info h3{font-size:1.15rem;font-weight:800;margin-bottom:.4rem}
.portfolio-info p{color:var(--gray);font-size:.88rem;line-height:1.7}

/* ===== BANNER LANZAMIENTO ===== */
.launch-banner{background:var(--black);border-radius:24px;padding:3.5rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;position:relative;overflow:hidden}
.launch-banner::before{content:'';position:absolute;top:-60%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(238,85,52,.25) 0%,transparent 70%);border-radius:50%}
.launch-banner h3{color:#fff;font-size:1.8rem;font-weight:900;margin-bottom:.6rem;position:relative}
.launch-banner p{color:#999;max-width:560px;position:relative}
.launch-banner .btn{position:relative}

/* ===== CTA ===== */
.cta-box{max-width:900px;margin:0 auto;background:var(--black);border-radius:24px;padding:4.5rem 3rem;text-align:center;position:relative;overflow:hidden}
.cta-box::before{content:'';position:absolute;top:-50%;left:-20%;width:500px;height:500px;background:radial-gradient(circle,rgba(238,85,52,.25) 0%,transparent 70%);border-radius:50%}
.cta-box>*{position:relative;z-index:1}
.cta-box .dots{justify-content:center;margin-bottom:1.5rem}.cta-box .dots span{width:10px;height:10px}
.cta-box h2{color:#fff;font-size:2.5rem;font-weight:900;margin-bottom:1rem;letter-spacing:-1px}
.cta-box p{color:#999;font-size:1.1rem;margin-bottom:2.2rem;max-width:520px;margin-left:auto;margin-right:auto}
.cta-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ===== CONTACTO ===== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.contact-info h3{font-size:1.7rem;font-weight:800;margin-bottom:1rem}
.contact-info>p{color:var(--gray);margin-bottom:2rem;line-height:1.8}
.contact-methods{display:flex;flex-direction:column;gap:1.4rem}
.contact-method{display:flex;align-items:center;gap:1rem}
.contact-method-icon{width:52px;height:52px;border-radius:14px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:1.2rem;flex-shrink:0}
.contact-method-text h4{font-size:.95rem;font-weight:700}
.contact-method-text p{color:var(--gray);font-size:.95rem}
.contact-form{background:#fff;border:1px solid var(--border);border-radius:20px;padding:2.5rem;box-shadow:0 15px 40px rgba(0,0,0,.05)}
.form-group{margin-bottom:1.4rem}
.form-group label{display:block;font-size:.9rem;font-weight:700;margin-bottom:.5rem}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:.9rem 1.2rem;background:var(--off);border:2px solid var(--border);border-radius:12px;color:var(--black);font-size:1rem;font-family:inherit;transition:.3s}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px rgba(238,85,52,.1)}
.form-group textarea{min-height:120px;resize:vertical}
.btn-submit{width:100%;padding:1rem;background:var(--grad);border:none;border-radius:12px;color:#fff;font-weight:700;font-size:1rem;cursor:pointer;transition:.3s;font-family:inherit}
.btn-submit:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(238,85,52,.4)}

/* ===== FOOTER ===== */
.footer{padding:4.5rem 0 2rem;background:var(--black)}
.footer-container{display:grid;grid-template-columns:2fr repeat(var(--cols,3),1fr);gap:3rem;margin-bottom:3rem}
.footer .logo-text{color:#fff}
.footer .logo-tagline{color:#777}
.footer-brand p{color:#999;font-size:.9rem;line-height:1.8;margin:1.2rem 0 1.5rem}
.social-links{display:flex;gap:.8rem}
.social-links a{width:40px;height:40px;border-radius:10px;background:var(--dark-2);border:1px solid #2A2A2A;display:flex;align-items:center;justify-content:center;color:#999;transition:.3s}
.social-links a:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-3px)}
.footer-col h4{font-size:1rem;font-weight:800;margin-bottom:1.2rem;color:#fff}
.footer-col li{margin-bottom:.8rem}
.footer-col a,.footer-col span{color:#999;font-size:.9rem;transition:.3s}
.footer-col a:hover{color:var(--primary)}
.footer-bottom{padding-top:2rem;border-top:1px solid #222;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{color:#777;font-size:.85rem}
.footer-bottom .heart{color:var(--primary)}
.footer-bottom a{color:var(--blue)}

/* ===== PORTADA: DESTACADOS, TESTIMONIOS, FAQ ===== */
.section-more{text-align:center;margin-top:3rem}
.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}
.testimonial-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:2.2rem;display:flex;flex-direction:column;gap:1.2rem;position:relative}
.testimonial-card::before{content:"\201C";position:absolute;top:.6rem;right:1.6rem;font-size:5rem;line-height:1;font-weight:900;color:var(--primary-soft)}
.testimonial-card .stars{color:var(--orange);display:flex;gap:3px;font-size:.9rem}
.testimonial-card blockquote{color:var(--gray);line-height:1.8;flex:1}
.testimonial-card figcaption strong{display:block;font-weight:800}
.testimonial-card figcaption span{color:var(--gray-light);font-size:.88rem}
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:16px;transition:.3s}
.faq-item[open]{border-color:var(--primary);box-shadow:0 10px 30px rgba(238,85,52,.08)}
.faq-item summary{list-style:none;cursor:pointer;padding:1.3rem 1.6rem;font-weight:800;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';font-size:1.5rem;font-weight:400;color:var(--primary);transition:.3s;flex-shrink:0}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item p{padding:0 1.6rem 1.4rem;color:var(--gray);line-height:1.8}

/* ===== WHATSAPP FLOTANTE ===== */
.wa-float{position:fixed;right:1.4rem;bottom:1.4rem;z-index:900;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.9rem;box-shadow:0 10px 30px rgba(37,211,102,.45);transition:.3s;animation:waIn .5s ease 1s both}
.wa-float:hover{transform:scale(1.08);box-shadow:0 14px 36px rgba(37,211,102,.55)}
@keyframes waIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}

/* ===== ACCESIBILIDAD ===== */
.skip-link{position:absolute;left:1rem;top:-100px;z-index:2000;background:var(--black);color:#fff;padding:.7rem 1.2rem;border-radius:10px;font-weight:700}
.skip-link:focus{top:1rem}
.dropdown-sep{border-top:1px solid var(--border);margin-top:.4rem;padding-top:.4rem}
.h3{font-size:1.7rem;font-weight:800;margin-bottom:1rem}

/* ===== FORMULARIOS ===== */
.hp{display:none!important}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.check-label{display:flex;gap:.7rem;font-size:.85rem;font-weight:500;color:var(--gray);cursor:pointer;align-items:flex-start}
.check-label input[type=checkbox]{accent-color:var(--primary);width:18px;height:18px;margin-top:2px;flex-shrink:0;cursor:pointer}
.check-label a,.form-legal a{color:var(--primary);font-weight:700;text-decoration:underline}
.cf-turnstile{margin:.2rem 0 1.2rem;min-height:65px}
.form-legal{font-size:.75rem;color:var(--gray-light);margin-top:.9rem;line-height:1.6}
.form-status{display:none;margin-top:1rem;padding:.9rem 1.2rem;border-radius:12px;font-weight:600;font-size:.92rem}
.form-status i{margin-right:.3rem}
.form-status.ok{display:block;background:rgba(103,194,58,.12);color:#2e7d1a;border:1px solid rgba(103,194,58,.4)}
.form-status.err{display:block;background:rgba(240,71,71,.1);color:#c62828;border:1px solid rgba(240,71,71,.4)}
.contact-method-text h3{font-size:.95rem;font-weight:700}
.contact-method-text a:hover{color:var(--primary)}

/* ===== TARJETAS DE PROYECTO (enlaces) ===== */
.portfolio-info h3 a:hover{color:var(--primary)}
.portfolio-links{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:.9rem}
.portfolio-links .service-link{font-size:.88rem}
.service-link.muted{color:var(--gray)}
.service-link.muted:hover{color:var(--black)}
a.portfolio-img{cursor:pointer}

/* ===== TESTIMONIOS ===== */
.testimonial-card figcaption{display:flex;align-items:center;gap:.8rem}
.t-avatar{width:42px;height:42px;border-radius:50%;background:var(--grad);color:#fff;font-weight:800;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}

/* ===== TEXTO LARGO (blog, casos, páginas locales) ===== */
.prose{color:#3a3a3a;font-size:1.05rem;line-height:1.85}
.prose>*+*{margin-top:1.1rem}
.prose>:first-child{margin-top:0}
.prose h2{font-size:1.65rem;font-weight:900;letter-spacing:-.5px;margin-top:2.4rem;color:var(--black);scroll-margin-top:100px}
.prose h3{font-size:1.25rem;font-weight:800;margin-top:1.8rem;color:var(--black);scroll-margin-top:100px}
.prose h4{font-size:1.05rem;font-weight:800;margin-top:1.5rem;color:var(--black)}
.prose a{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.prose ul,.prose ol{padding-left:1.4rem}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li{margin:.35rem 0}
.prose li::marker{color:var(--primary)}
.prose blockquote{border-left:4px solid var(--primary);background:var(--off);padding:1rem 1.4rem;border-radius:0 12px 12px 0;font-style:italic;color:var(--black)}
.prose code{background:var(--off);border:1px solid var(--border);padding:.1rem .4rem;border-radius:6px;font-size:.88em}
.prose pre{background:var(--dark);color:#e4e4e4;padding:1.2rem 1.4rem;border-radius:14px;overflow-x:auto;font-size:.88rem;line-height:1.6}
.prose pre code{background:none;border:0;padding:0;color:inherit}
.prose img{border-radius:14px;margin:1.6rem 0;width:100%;height:auto}
.prose hr{border:0;border-top:1px solid var(--border);margin:2.4rem 0}
.prose strong{color:var(--black)}

/* ===== CASO DE ÉXITO ===== */
.case-section{padding-top:4rem}
.case-cover{border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -20px rgba(0,0,0,.3);border:1px solid var(--border);margin-bottom:3rem;background:#fff}
.case-cover img{display:block;width:100%;height:auto}
.browser-bar{display:flex;align-items:center;gap:.4rem;padding:.75rem 1rem;background:var(--off);border-bottom:1px solid var(--border);min-height:42px}
.browser-bar span{width:10px;height:10px;border-radius:50%;background:var(--green)}
.browser-bar span:nth-child(2){background:var(--orange)}.browser-bar span:nth-child(3){background:var(--red)}
.browser-bar em{margin-left:1rem;font-style:normal;font-size:.78rem;color:var(--gray);background:#fff;border:1px solid var(--border);border-radius:6px;padding:.15rem .8rem}
.case-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.2rem;margin-bottom:3.5rem}
.case-result{background:var(--black);border-radius:18px;padding:1.6rem;text-align:center}
.case-result strong{display:block;font-size:2.2rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}
.case-result span{color:#aaa;font-size:.9rem;font-weight:500}
.case-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:4rem;align-items:start}
.case-body h2{display:flex;align-items:center;gap:.8rem;font-size:1.7rem;font-weight:900;letter-spacing:-.5px;margin:0 0 1rem}
.case-body .prose+h2{margin-top:2.8rem}
.case-num{font-size:.85rem;font-weight:800;color:var(--primary);background:var(--primary-soft);border-radius:8px;padding:.25rem .55rem}
.case-aside{position:sticky;top:110px;background:var(--off);border:1px solid var(--border);border-radius:18px;padding:1.6rem}
.case-aside dl{margin-bottom:1.4rem}
.case-aside dt{font-size:.72rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--gray-light);margin-top:.9rem}
.case-aside dt:first-child{margin-top:0}
.case-aside dd{font-weight:700}
.case-aside dd a{color:var(--primary)}
.case-aside .btn{width:100%;justify-content:center}
.case-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:3.5rem}
.case-gallery figure{border-radius:16px;overflow:hidden;border:1px solid var(--border)}
.case-gallery img{display:block;width:100%;height:auto}
.case-testimonial{max-width:760px;margin:3.5rem auto 0}

/* ===== BLOG ===== */
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.post-card{background:#fff;border:1px solid var(--border);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:.35s}
.post-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(0,0,0,.08)}
.post-img{display:block;aspect-ratio:1200/630;overflow:hidden;background:var(--off)}
.post-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.post-card:hover .post-img img,.post-featured:hover .post-img img{transform:scale(1.04)}
.post-img-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;font-size:2.4rem}
.post-body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.post-meta{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;font-size:.8rem;color:var(--gray-light);margin-bottom:.8rem}
.post-card h3{font-size:1.15rem;font-weight:800;line-height:1.35;margin-bottom:.6rem}
.post-card h3 a:hover,.post-featured h2 a:hover{color:var(--primary)}
.post-card p{color:var(--gray);font-size:.92rem;line-height:1.7;flex:1}
.post-read{margin-top:1rem;font-size:.8rem;color:var(--gray-light);font-weight:600}
.post-featured{display:grid;grid-template-columns:1.2fr 1fr;background:#fff;border:1px solid var(--border);border-radius:24px;overflow:hidden;margin-bottom:2.5rem}
.post-featured .post-img{aspect-ratio:auto;min-height:100%}
.post-featured .post-body{padding:2.5rem;justify-content:center}
.post-featured h2{font-size:1.8rem;font-weight:900;letter-spacing:-.5px;line-height:1.2;margin-bottom:1rem}
.post-featured p{color:var(--gray);line-height:1.8;margin-bottom:1.4rem}
a.filter-btn{display:inline-block}
.pagination{display:flex;gap:.5rem;justify-content:center;margin-top:3rem}
.pagination a{width:42px;height:42px;border-radius:12px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--gray);background:#fff}
.pagination a:hover,.pagination a.on{border-color:var(--primary);color:var(--primary)}
.empty-public{text-align:center;max-width:520px;margin:0 auto;padding:2rem 0}
.empty-public>i{font-size:2.4rem;color:var(--primary);margin-bottom:1rem}
.empty-public h2{font-size:1.6rem;font-weight:900;margin-bottom:.6rem}
.empty-public p{color:var(--gray);margin-bottom:1.6rem}

/* Artículo */
.article-hero{padding:10rem 0 3rem;background:var(--off);border-bottom:1px solid var(--border)}
.container.narrow{max-width:820px}
.container.narrow-wide{max-width:1064px}
.article-hero .breadcrumb{color:var(--gray-light)}
.article-hero .breadcrumb a{color:var(--gray)}
.article-hero h1{font-size:2.8rem;font-weight:900;letter-spacing:-1.5px;line-height:1.12;margin:.6rem 0 1.2rem}
.article-lead{font-size:1.2rem;color:var(--gray);line-height:1.7;margin-bottom:1.6rem}
.article-meta{display:flex;align-items:center;gap:.8rem;font-size:.88rem;color:var(--gray)}
.article-meta strong{display:block;color:var(--black)}
.article-cover{margin:-1px 0 0;border-radius:0 0 20px 20px;overflow:hidden}
.article-cover img{display:block;width:100%;height:auto}
.article-layout{display:grid;grid-template-columns:minmax(0,720px) 260px;gap:4rem;justify-content:center;padding-top:3.5rem;padding-bottom:5rem}
.article-aside{position:sticky;top:110px;align-self:start;display:flex;flex-direction:column;gap:1.4rem}
.toc{background:var(--off);border:1px solid var(--border);border-radius:16px;padding:1.3rem 1.4rem}
.toc strong,.share strong{display:block;font-size:.75rem;letter-spacing:1px;text-transform:uppercase;color:var(--gray-light);margin-bottom:.7rem}
.toc ol{list-style:decimal;padding-left:1.1rem;font-size:.88rem}
.toc li{margin:.4rem 0}
.toc a{color:var(--gray);font-weight:600}
.toc a:hover{color:var(--primary)}
.share{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.share strong{width:100%;margin:0}
.share a,.share button{width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;color:var(--gray);cursor:pointer;font-size:.95rem;transition:.2s}
.share a:hover,.share button:hover{border-color:var(--primary);color:var(--primary)}
.aside-cta{background:var(--black);color:#fff;border-radius:18px;padding:1.5rem}
.aside-cta strong{display:block;font-size:1.05rem;margin-bottom:.4rem}
.aside-cta p{color:#aaa;font-size:.88rem;margin-bottom:1rem}
.aside-cta .check-list li{color:#ccc;font-size:.9rem}
.aside-cta .btn{width:100%;justify-content:center;padding:.8rem 1.2rem}

/* ===== PÁGINA LOCAL ===== */
.local-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:4rem;align-items:start}
.local-aside{position:sticky;top:110px}

/* ===== SOBRE NOSOTROS ===== */
.about-grid{display:grid;grid-template-columns:420px 1fr;gap:4.5rem;align-items:center}
.about-photo{position:relative}
.about-photo img,.about-photo-ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:24px;display:block}
.about-photo-ph{background:var(--black);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.about-photo-ph::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 30%,rgba(238,85,52,.4),transparent 60%)}
.about-photo-ph .logo-mark{transform:scale(2.6);position:relative}
.about-name{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-radius:14px;padding:.9rem 1.2rem}
.about-name strong{display:block;font-weight:800}
.about-name span{color:var(--gray);font-size:.88rem}
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.value-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:2.2rem}
.value-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1.3rem}
.value-card h3{font-size:1.2rem;font-weight:800;margin-bottom:.5rem}
.value-card p{color:var(--gray);line-height:1.75}

/* ===== CALCULADORA ===== */
.calc{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:2rem;align-items:start;scroll-margin-top:100px}
.calc-steps{grid-column:1/-1;display:flex;gap:.6rem;list-style:none}
.calc-steps li{flex:1;display:flex;align-items:center;gap:.7rem;font-weight:700;font-size:.9rem;color:var(--gray-light);padding:.9rem 1.1rem;background:#fff;border:1px solid var(--border);border-radius:14px}
.calc-steps span{width:28px;height:28px;border-radius:50%;background:var(--off);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.calc-steps li.on{color:var(--black);border-color:var(--primary)}
.calc-steps li.on span{background:var(--primary);border-color:var(--primary);color:#fff}
.calc-steps li.done span{background:var(--green);border-color:var(--green);color:#fff}
.calc-main{background:#fff;border:1px solid var(--border);border-radius:24px;padding:2.4rem;box-shadow:0 15px 40px rgba(0,0,0,.04)}
.calc-step{display:none;border:0;padding:0;margin:0;min-width:0}
.calc-step.on{display:block;animation:pasoIn .35s ease}
@keyframes pasoIn{from{opacity:0;transform:translateX(12px)}}
.calc-step legend{font-size:1.5rem;font-weight:900;letter-spacing:-.5px;margin-bottom:1.4rem;padding:0}
.calc-step legend.sub{font-size:1.1rem;margin:2rem 0 1rem}
.calc-hint{color:var(--gray);margin:-.8rem 0 1.2rem;font-size:.92rem}
.calc-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}
.calc-option{position:relative;cursor:pointer}
.calc-option input,.calc-check input{position:absolute;opacity:0;pointer-events:none}
.calc-card{display:flex;flex-direction:column;gap:.35rem;height:100%;padding:1.3rem;border:2px solid var(--border);border-radius:16px;transition:.2s;background:#fff}
.calc-card i{font-size:1.5rem;color:var(--primary);margin-bottom:.4rem}
.calc-card strong{font-size:1rem}
.calc-card small{color:var(--gray);font-size:.84rem;line-height:1.5}
.calc-card em{font-style:normal;font-weight:800;color:var(--primary-dark);font-size:.85rem;margin-top:auto;padding-top:.4rem}
.calc-option:hover .calc-card{border-color:#d9cfc8}
.calc-option input:checked+.calc-card{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 4px rgba(238,85,52,.1)}
.calc-option input:focus-visible+.calc-card,.calc-check input:focus-visible+span{outline:3px solid var(--primary);outline-offset:2px}
.calc-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.calc-checks.three{grid-template-columns:repeat(3,1fr)}
.calc-check{position:relative;cursor:pointer}
.calc-check span{display:flex;align-items:center;gap:.7rem;padding:.85rem 1.1rem;border:2px solid var(--border);border-radius:12px;font-weight:600;font-size:.92rem;transition:.2s;height:100%}
.calc-check span::before{content:'';width:18px;height:18px;border:2px solid var(--border);border-radius:5px;flex-shrink:0;transition:.2s}
.calc-check input[type=radio]+span::before{border-radius:50%}
.calc-check input:checked+span{border-color:var(--primary);background:var(--primary-soft)}
.calc-check input:checked+span::before{background:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 3px #fff}
.calc-check em{font-style:normal;color:var(--primary-dark);font-weight:700;font-size:.82rem;margin-left:auto;white-space:nowrap}
.calc-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}
.calc-summary{position:sticky;top:110px;background:var(--black);color:#fff;border-radius:24px;padding:2rem;overflow:hidden}
.calc-summary h2{font-size:1.2rem;font-weight:800;margin-bottom:1.2rem}
.calc-summary dt{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:#777;font-weight:700;margin-top:1rem}
.calc-summary dd{font-weight:600;color:#eee}
.calc-total{margin-top:1.6rem;padding-top:1.4rem;border-top:1px solid #2a2a2a}
.calc-total span{display:block;font-size:.8rem;color:#999}
.calc-total strong{display:block;font-size:2.1rem;font-weight:900;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.calc-total small{color:#aaa;font-size:.85rem}
.calc-note{font-size:.82rem;color:#999;line-height:1.6;margin-top:1rem}
.calc.enviado .calc-nav button:not([type=submit]){display:none}

/* ===== LEGAL ===== */
.legal{max-width:820px;margin:0 auto;padding:0 2rem}
.legal h2{font-size:1.25rem;margin:2.2rem 0 .8rem}
.legal p,.legal li{color:var(--gray);margin-bottom:.8rem;line-height:1.8}
.legal ul{padding-left:1.3rem;list-style:disc}
.legal a{color:var(--primary);font-weight:700}
.legal-data{list-style:none!important;padding:0!important;border:1px solid var(--border);border-radius:16px;overflow:hidden}
.legal-data li{display:grid;grid-template-columns:180px 1fr;gap:1rem;margin:0;padding:.8rem 1.2rem;border-bottom:1px solid var(--border);color:var(--black)}
.legal-data li:last-child{border-bottom:0}
.legal-data span{color:var(--gray-light);font-weight:600}
.table-scroll{overflow-x:auto}
.legal-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0}
.legal-table th,.legal-table td{text-align:left;padding:.75rem .9rem;border:1px solid var(--border);vertical-align:top;color:var(--gray)}
.legal-table th{background:var(--off);color:var(--black)}
mark.pendiente{background:#FFF3C4;color:#8A5A00;padding:0 .3rem;border-radius:4px}

/* ===== 404 ===== */
.error-page{min-height:80vh;display:flex;align-items:center;text-align:center;padding:9rem 0 5rem;background:radial-gradient(circle at 50% 30%,rgba(238,85,52,.08),transparent 60%)}
.error-code{display:flex;align-items:center;justify-content:center;gap:1.5rem;font-size:8rem;font-weight:900;letter-spacing:-6px;line-height:1;margin-bottom:1.5rem}
.error-code>span:not(.logo-mark){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.error-code .logo-mark{transform:scale(2.2);margin:0 2rem}
.error-page h1{font-size:2.2rem;font-weight:900;letter-spacing:-1px;margin-bottom:.8rem}
.error-page p{color:var(--gray);max-width:520px;margin:0 auto 2rem}

/* ===== MEGA MENÚ ===== */
.nav-links>li.mega{position:static}
.mega-menu{left:50%;transform:translate(-50%,10px);width:min(880px,calc(100vw - 2rem));padding:1.2rem;display:grid;grid-template-columns:1fr 250px;gap:1.2rem}
.dropdown:hover .mega-menu,.dropdown:focus-within .mega-menu,.dropdown.open .mega-menu{transform:translate(-50%,0)}
.mega-menu::before{content:'';position:absolute;left:0;right:0;top:-28px;height:28px}
.mega-items{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;list-style:none}
.mega-item{display:flex!important;gap:.9rem;align-items:flex-start;padding:.85rem!important;border-radius:14px!important;white-space:normal}
.mega-item strong{display:block;color:var(--black);font-size:.95rem;font-weight:700}
.mega-item small{display:block;color:var(--gray);font-size:.82rem;font-weight:500;line-height:1.45;margin-top:.15rem}
.mega-ico{width:40px;height:40px;border-radius:11px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mega-ico i{color:var(--primary)!important;width:auto!important;font-size:1rem}
.mega-item:hover .mega-ico{background:var(--primary)}
.mega-item:hover .mega-ico i{color:#fff!important}
.mega-feature{background:var(--black);border-radius:16px;padding:1.4rem;color:#fff;display:flex;flex-direction:column;gap:.6rem;position:relative;overflow:hidden}
.mega-feature::before{content:'';position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(238,85,52,.4),transparent 70%)}
.mega-feature>*{position:relative}
.mega-feature strong{font-size:1.1rem;font-weight:800;line-height:1.3}
.mega-feature p{color:#aaa;font-size:.85rem;line-height:1.6;flex:1}
.mega-feature .btn{padding:.7rem 1.1rem;font-size:.88rem;align-self:flex-start;color:#fff!important}

/* ===== BANNER DE COOKIES ===== */
.cookie-banner{position:fixed;z-index:1500;left:1rem;right:1rem;bottom:1rem;display:flex;justify-content:center;pointer-events:none;opacity:0;transform:translateY(20px);transition:opacity .25s,transform .25s}
.cookie-banner.visible{opacity:1;transform:none}
.cookie-banner.pos-centro{inset:0;align-items:center;background:rgba(11,11,11,.45);padding:1rem}
.cookie-box{pointer-events:auto;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 25px 70px rgba(0,0,0,.25);padding:1.5rem 1.6rem;max-width:920px;width:100%;display:grid;grid-template-columns:1fr auto;gap:1rem 1.6rem;align-items:center;max-height:calc(100vh - 2rem);overflow:auto}
.cookie-banner.configurando .cookie-box{grid-template-columns:1fr;max-width:640px}
.cookie-main h2{font-size:1.1rem;font-weight:800;margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem}
.cookie-main h2 i{color:var(--primary)}
.cookie-main p{color:var(--gray);font-size:.9rem;line-height:1.6}
.cookie-main a{color:var(--primary);font-weight:700;text-decoration:underline}
.cookie-prefs{display:flex;flex-direction:column;gap:.6rem}
.cookie-cat{display:flex;gap:1rem;justify-content:space-between;align-items:center;padding:.9rem 1rem;border:1px solid var(--border);border-radius:14px}
.cookie-cat strong{font-size:.92rem}
.cookie-cat small{color:var(--gray-light);font-weight:500}
.cookie-cat p{color:var(--gray);font-size:.82rem;line-height:1.5;margin-top:.15rem}
.cookie-nota{font-size:.85rem;color:var(--gray)}
.cookie-switch{position:relative;width:44px;height:26px;flex-shrink:0;cursor:pointer}
.cookie-switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;z-index:1}
.cookie-switch span{position:absolute;inset:0;background:#d6d1cc;border-radius:99px;transition:.2s}
.cookie-switch span::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cookie-switch input:checked+span{background:var(--primary)}
.cookie-switch input:checked+span::after{transform:translateX(18px)}
.cookie-switch input:disabled{cursor:not-allowed}
.cookie-switch input:disabled+span{opacity:.6}
.cookie-switch input:focus-visible+span{outline:3px solid var(--primary);outline-offset:2px}
.cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
/* Aceptar y Rechazar con la misma prominencia (AEPD) */
.cbtn{min-width:120px;padding:.75rem 1.2rem;border-radius:50px;border:2px solid var(--black);background:#fff;color:var(--black);font:inherit;font-weight:700;font-size:.9rem;cursor:pointer;transition:.2s}
.cbtn:hover{background:var(--black);color:#fff}
.cbtn-ok{background:var(--black);color:#fff}
.cbtn-ok:hover{background:#333}
.link-cookies{background:none;border:0;padding:0;font:inherit;color:var(--blue);cursor:pointer;font-size:.85rem}
.link-cookies:hover{text-decoration:underline}
.cookie-cat-titulo{font-size:1.05rem;margin:1.8rem 0 .4rem;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.badge-cat{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:99px;background:var(--primary-soft);color:var(--primary-dark)}
.badge-cat.nec{background:rgba(103,194,58,.15);color:#2e7d1a}

/* ===== AVISO PARA EL ADMINISTRADOR ===== */
.admin-pill{position:fixed;left:1rem;bottom:1rem;z-index:1400;display:flex;gap:.4rem;flex-wrap:wrap;max-width:calc(100% - 6rem)}
.admin-pill a{background:var(--black);color:#fff;font-size:.8rem;font-weight:700;padding:.55rem .9rem;border-radius:99px;box-shadow:0 8px 25px rgba(0,0,0,.25);display:flex;align-items:center;gap:.4rem}
.admin-pill a.warn{background:#D97706}

/* ===== MODO MANTENIMIENTO ===== */
.mant-body{min-height:100vh;background:var(--black);color:#fff;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;position:relative;overflow:hidden}
.mant-body::before{content:'';position:absolute;width:700px;height:700px;right:-200px;top:-250px;border-radius:50%;background:radial-gradient(circle,rgba(238,85,52,.35),transparent 70%)}
.mant-body::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:50px 50px}
.mant{position:relative;z-index:1;max-width:640px;text-align:center}
.mant-logo{display:flex;align-items:center;justify-content:center;gap:.7rem;margin-bottom:2.5rem}
.mant-logo .logo-text{color:#fff;font-size:1.4rem}
.mant-icon{width:76px;height:76px;margin:0 auto 1.5rem;border-radius:22px;background:rgba(238,85,52,.15);border:1px solid rgba(238,85,52,.35);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--primary)}
.mant h1{font-size:2.6rem;font-weight:900;letter-spacing:-1.5px;line-height:1.1;margin-bottom:1rem}
.mant p{color:#aaa;font-size:1.1rem;line-height:1.8}
.mant-cuenta{display:flex;justify-content:center;gap:.8rem;margin:2rem 0 0}
.mant-cuenta span{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.8rem 1rem;min-width:78px;font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:1px}
.mant-cuenta b{display:block;font-size:1.8rem;color:#fff;letter-spacing:0}
.mant-contacto{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin-top:2.2rem}
.mant-contacto a{border:1px solid rgba(255,255,255,.18);padding:.7rem 1.2rem;border-radius:50px;font-weight:600;font-size:.92rem;display:flex;gap:.5rem;align-items:center;transition:.2s}
.mant-contacto a:hover{border-color:var(--primary);color:var(--primary)}
.mant-contacto a.wa{border-color:#25D366;color:#25D366}

/* ===== ANIMACIONES ===== */
.reveal{opacity:0;transform:translateY(30px);transition:all .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .hero-content{grid-template-columns:minmax(0,1fr);text-align:center}
  .hero-content>*{min-width:0}
  .hero-graphic{margin:0 auto}
  .hero p{margin:0 auto 2rem}.hero-buttons{justify-content:center}
  .services-grid{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .types-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:repeat(2,1fr);gap:3rem}.process-grid::before{display:none}
  .portfolio-grid{grid-template-columns:repeat(2,1fr)}
  .contact-grid,.two-col{grid-template-columns:1fr}
  .footer-container{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:1.5rem;border-bottom:1px solid var(--border);box-shadow:0 20px 40px rgba(0,0,0,.08);align-items:flex-start;gap:1.1rem}
  .nav-links.active{display:flex}
  .menu-toggle{display:flex}
  .dropdown{width:100%}
  .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:var(--off);display:none;margin-top:.5rem}
  .dropdown.open .dropdown-menu{display:block}
  .hero h1{font-size:2.2rem;letter-spacing:-1px}
  .hero{padding:7rem 0 4rem;min-height:auto}
  .code-body{font-size:.75rem;padding:1.1rem}
  .page-hero h1{font-size:2.1rem}
  .section-header h2{font-size:2rem}
  .stats-container{grid-template-columns:repeat(2,1fr)}
  .feature-grid,.types-grid,.portfolio-grid,.process-grid{grid-template-columns:1fr}
  .footer-container{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .floating-badge{display:none}
  .logo-tagline{display:none}
  .launch-banner,.cta-box{padding:2.5rem 1.5rem}
}
@media(max-width:768px){
  .testimonials-grid{grid-template-columns:1fr}
  .wa-float{right:1rem;bottom:1rem;width:52px;height:52px;font-size:1.7rem}
}
@media(max-width:1024px){
  .posts-grid{grid-template-columns:repeat(2,1fr)}
  .post-featured{grid-template-columns:1fr}
  .case-grid,.local-grid,.about-grid,.calc{grid-template-columns:1fr}
  .case-aside,.local-aside,.calc-summary{position:static}
  .article-layout{grid-template-columns:minmax(0,1fr)}
  .article-aside{position:static}
  .values-grid{grid-template-columns:1fr}
  .about-photo{max-width:420px}
}
@media(max-width:768px){
  .posts-grid,.case-gallery,.calc-checks,.calc-checks.three,.form-row{grid-template-columns:1fr}
  .article-hero{padding:7.5rem 0 2rem}
  .article-hero h1{font-size:2rem;letter-spacing:-1px}
  .post-featured .post-body{padding:1.6rem}
  .post-featured h2{font-size:1.4rem}
  .calc-main{padding:1.5rem}
  .calc-steps li{font-size:0;gap:0;justify-content:center;padding:.7rem}
  .calc-steps li span{font-size:.8rem}
  .legal{padding:0 1rem}
  .legal-data li{grid-template-columns:1fr;gap:.1rem}
  .error-code{font-size:5rem}
  .error-code .logo-mark{transform:scale(1.4);margin:0 1rem}
  .case-result strong{font-size:1.8rem}
  .cta-buttons .btn{width:100%;justify-content:center}
}
@media(max-width:768px){
  .nav-links>li.mega{position:relative;width:100%}
  .mega-menu{transform:none!important;width:auto;grid-template-columns:1fr;padding:.6rem;left:auto}
  .mega-items{grid-template-columns:1fr}
  .mega-item{padding:.6rem!important}
  .mega-ico{width:34px;height:34px}
  .mega-feature{display:none}
  .cookie-box{grid-template-columns:1fr;padding:1.2rem}
  .cookie-actions{justify-content:stretch}
  .cbtn{flex:1;min-width:0}
  .mant h1{font-size:1.9rem}
  .mant-cuenta span{min-width:0;flex:1;padding:.6rem .4rem}
  .admin-pill{max-width:calc(100% - 5rem)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
