Diseño y desarrollo web

.elementor-3479 .elementor-element.elementor-element-9ef464b{–display:flex;–padding-top:0px;–padding-bottom:0px;–padding-left:0px;–padding-right:0px;}.elementor-3479 .elementor-element.elementor-element-986f8b2{–display:flex;–padding-top:0px;–padding-bottom:0px;–padding-left:0px;–padding-right:0px;}:root{–page-title-display:none;}/* Start custom CSS for html, class: .elementor-element-701630f */.rpl ul,.rpl ol{list-style:none;margin:0;padding:0;}
.rpl a{text-decoration:none;color:inherit;}
.rpl button{cursor:pointer;border:none;background:none;font:inherit;}
.rpl{font-family:var(–rep-font-body);color:var(–rep-text-secondary);line-height:1.6;}

.rpl h1,.rpl h2,.rpl h3,.rpl h4{font-family:var(–rep-font-display)!important;color:var(–rep-forest);line-height:1.15!important;margin:0;}
.rpl h1{font-size:clamp(2.3rem,4.5vw,3.5rem)!important;font-weight:700!important;letter-spacing:-.03em;}
.rpl h2{font-size:clamp(1.7rem,3.2vw,2.4rem)!important;font-weight:600!important;}
.rpl h3{font-size:clamp(1.05rem,1.8vw,1.3rem)!important;font-weight:600!important;}
.rpl h4{font-size:clamp(.9rem,1.4vw,1.1rem)!important;font-weight:600!important;}

.wrap{max-width:1140px;margin:0 auto;padding:0 24px;}
.wrap–narrow{max-width:780px;margin:0 auto;padding:0 24px;}

/* ── Atoms ── */
.kicker{display:inline-block;font:600 .78rem/1 var(–rep-font-body);text-transform:uppercase;letter-spacing:.1em;color:var(–rep-teal);margin-bottom:12px;}
.kicker–light{color:var(–rep-green);}
.muted{color:var(–rep-text-muted);max-width:620px;}
.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:var(–rep-radius-full);background:var(–rep-bg-light);border:1px solid var(–rep-border);font:500 .78rem/1 var(–rep-font-body);color:var(–rep-text-secondary);}
.chip–green{background:rgba(146,241,203,.12);border-color:rgba(146,241,203,.30);color:var(–rep-forest);}
.chip–teal{background:rgba(65,153,159,.08);border-color:rgba(65,153,159,.25);color:var(–rep-teal);}
.chip–sun{background:rgba(247,212,80,.12);border-color:rgba(247,212,80,.35);color:#6C5E1A;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(–rep-radius-md);font:600 .95rem/1 var(–rep-font-body);transition:all .25s ease;min-height:48px;white-space:nowrap;text-decoration:none;}
.btn-primary{background:var(–rep-teal);color:#fff;}
.btn-primary:hover{background:#368F95;transform:translateY(-2px);box-shadow:var(–rep-shadow-md);}
.btn-accent{background:var(–rep-sun);color:var(–rep-forest);}
.btn-accent:hover{background:#f5cc3d;transform:translateY(-2px);box-shadow:var(–rep-shadow-md);}
.btn-outline{background:transparent;color:var(–rep-teal);border:1.5px solid var(–rep-teal);}
.btn-outline:hover{background:var(–rep-teal);color:#fff;}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.25);}
.btn-ghost:hover{background:rgba(255,255,255,.18);}
.btn-white{background:#fff;color:var(–rep-forest)!important;}
.btn-white:hover{background:var(–rep-bg-light);transform:translateY(-2px);box-shadow:var(–rep-shadow-md);}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
@keyframes dws-show{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.reveal{animation:dws-show .55s ease both!important;}
.reveal[data-delay=»1″]{animation-delay:.1s!important}
.reveal[data-delay=»2″]{animation-delay:.2s!important}
.reveal[data-delay=»3″]{animation-delay:.3s!important}
.reveal[data-delay=»4″]{animation-delay:.4s!important}
.reveal[data-delay=»5″]{animation-delay:.5s!important}
.reveal[data-delay=»6″]{animation-delay:.6s!important}
.reveal.is-visible{animation:none!important;opacity:1!important;transform:none!important;}

/* ===== 1. HERO ===== */
.dws-hero{
background:linear-gradient(160deg,#1A2B20 0%,#0F1C14 45%,#162A1B 100%);
color:#fff;padding:160px 0 110px;position:relative;overflow:hidden;
}
.dws-hero::before{
content:»»;position:absolute;inset:0;
background:url(«data:image/svg+xml,%3Csvg width=’80’ height=’80’ xmlns=’http://www.w3.org/2000/svg’%3E%3Ccircle cx=’1′ cy=’1′ r=’.8′ fill=’%2393F1C9′ opacity=’.04’/%3E%3C/svg%3E»);
pointer-events:none;
}
.dws-hero::after{
content:»»;position:absolute;top:-30%;left:-15%;width:60%;height:100%;
background:radial-gradient(ellipse,rgba(65,153,159,.14) 0%,transparent 60%);
pointer-events:none;
}
.dws-hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}

.dws-hero-eyebrow{
display:inline-flex;align-items:center;gap:8px;
background:rgba(147,241,201,.1);border:1px solid rgba(147,241,201,.22);
border-radius:var(–rep-radius-full);padding:6px 16px;
font:600 .75rem/1 var(–rep-font-body);color:var(–rep-green);
text-transform:uppercase;letter-spacing:.1em;margin-bottom:22px;
}
.dws-hero h1{color:#fff;margin-bottom:20px;}
.dws-hero h1 span{color:var(–rep-green);font-style:italic;}
.dws-hero .hero-sub{font-size:1.08rem;color:rgba(255,255,255,.72);line-height:1.75;margin-bottom:32px;max-width:520px;}
.dws-hero .hero-sub strong{color:#fff;}
.dws-hero .hero-sub em{color:var(–rep-green);font-style:normal;font-weight:600;}
.dws-hero-badges{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:32px;}
.dws-hero-badges .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.8);}
.dws-hero-badges .chip i{color:var(–rep-green);}
.dws-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px;}
.dws-trust-note{font-size:.8rem;color:rgba(255,255,255,.38);display:flex;align-items:center;gap:6px;}
.dws-trust-note::before{content:»;width:16px;height:1px;background:rgba(255,255,255,.2);}

/* Hero visual */
.dws-hero-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:440px;}
.dws-hero-visual .orb{
position:absolute;width:380px;height:380px;border-radius:50%;
background:radial-gradient(circle at 40% 40%,rgba(147,241,201,.12),rgba(65,153,159,.06) 55%,transparent 70%);
filter:blur(50px);animation:dws-float 10s ease-in-out infinite;
}
@keyframes dws-float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(2deg)}}
.dws-hero-code{
position:relative;z-index:1;
background:rgba(15,28,20,.9);backdrop-filter:blur(12px);
border:1px solid rgba(147,241,201,.15);border-radius:var(–rep-radius-xl);
padding:32px;max-width:420px;width:100%;
box-shadow:0 40px 80px rgba(0,0,0,.5);
font-family:var(–rep-font-mono);font-size:.82rem;line-height:1.8;
}
.dws-hero-code .code-bar{
display:flex;gap:6px;align-items:center;margin-bottom:20px;padding-bottom:14px;
border-bottom:1px solid rgba(255,255,255,.07);
}
.dws-hero-code .dot{width:10px;height:10px;border-radius:50%;}
.dws-hero-code .dot-r{background:#ff5f57;}
.dws-hero-code .dot-y{background:#febc2e;}
.dws-hero-code .dot-g{background:#28c840;}
.dws-hero-code .code-file{font:500 .72rem/1 var(–rep-font-body);color:rgba(255,255,255,.4);margin-left:8px;}
.dws-hero-code .ln{color:rgba(255,255,255,.18);user-select:none;margin-right:16px;min-width:16px;text-align:right;}
.dws-hero-code .c-comment{color:rgba(147,241,201,.55);}
.dws-hero-code .c-tag{color:#7ec8e3;}
.dws-hero-code .c-attr{color:#f8c6a0;}
.dws-hero-code .c-str{color:var(–rep-green);}
.dws-hero-code .c-val{color:#e8c585;}
.dws-hero-code .c-plain{color:rgba(255,255,255,.65);}

/* Hero floating metrics */
.dws-metric{
position:absolute;z-index:2;
background:rgba(15,28,20,.88);backdrop-filter:blur(16px);
border:1px solid rgba(147,241,201,.18);border-radius:var(–rep-radius-lg);
padding:14px 18px;min-width:140px;
}
.dws-metric .m-val{font:700 1.4rem/1 var(–rep-font-display);color:var(–rep-green);margin-bottom:3px;}
.dws-metric .m-label{font:400 .72rem/1.3 var(–rep-font-body);color:rgba(255,255,255,.55);}
.dws-metric–lcp{top:12%;left:-5%;}
.dws-metric–score{bottom:18%;right:-8%;}

/* ===== 2. QUÉ ES (filosofía) ===== */
.dws-what{background:var(–rep-bg-light);padding:96px 0;}
.dws-what .wrap{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.dws-what-copy h2{margin-bottom:20px;}
.dws-what-copy p{font-size:1.05rem;line-height:1.8;margin-bottom:18px;}
.dws-what-copy p strong{color:var(–rep-forest);}
.dws-what-copy .footnote{
font-size:.82rem;color:var(–rep-text-muted);margin-top:24px;
padding-left:12px;border-left:3px solid var(–rep-border);
}
.dws-stats{display:flex;flex-direction:column;gap:20px;position:sticky;top:24px;}
.dws-stat-card{
background:#fff;border:1px solid var(–rep-border);border-radius:var(–rep-radius-lg);
padding:24px 28px;transition:box-shadow .2s;
}
.dws-stat-card:hover{box-shadow:var(–rep-shadow-md);}
.dws-stat-card .s-val{
font:700 2.6rem/1 var(–rep-font-display);
background:var(–rep-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;
margin-bottom:6px;
}
.dws-stat-card .s-label{font:600 .85rem/1.3 var(–rep-font-body);color:var(–rep-forest);margin-bottom:4px;}
.dws-stat-card .s-note{font:400 .78rem/1.4 var(–rep-font-body);color:var(–rep-text-muted);}
.dws-what-tagline{
margin-top:28px;padding:20px 24px;
background:linear-gradient(135deg,rgba(65,153,159,.08),rgba(147,241,201,.06));
border:1px solid rgba(65,153,159,.2);border-radius:var(–rep-radius-md);
font:500 1rem/1.65 var(–rep-font-body);color:var(–rep-forest);
font-style:italic;
}

/* ===== 3. CÓMO — Stack técnico ===== */
.dws-how{background:var(–rep-forest);padding:90px 0;color:#fff;position:relative;overflow:hidden;}
.dws-how::before{
content:»»;position:absolute;right:-10%;bottom:-20%;width:50%;height:80%;
background:radial-gradient(ellipse,rgba(65,153,159,.12) 0%,transparent 65%);
pointer-events:none;
}
.dws-how .kicker–light{margin-bottom:10px;}
.dws-how h2{color:#fff;margin-bottom:14px;}
.dws-how-intro{font-size:1.05rem;color:rgba(255,255,255,.65);max-width:620px;margin-bottom:56px;line-height:1.75;}
.dws-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.dws-pillar{
background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
border-radius:var(–rep-radius-xl);padding:32px 28px;
transition:background .25s, border-color .25s, transform .25s;
}
.dws-pillar:hover{background:rgba(255,255,255,.07);border-color:rgba(147,241,201,.18);transform:translateY(-4px);}
.dws-pillar-icon{
width:52px;height:52px;border-radius:var(–rep-radius-md);
background:rgba(147,241,201,.1);
display:flex;align-items:center;justify-content:center;
font-size:26px;color:var(–rep-green);margin-bottom:20px;
}
.dws-pillar h3{color:#fff;margin-bottom:12px;}
.dws-pillar p{font-size:.92rem;color:rgba(255,255,255,.6);line-height:1.7;margin-bottom:16px;}
.dws-pillar .pillar-metrics{display:flex;flex-direction:column;gap:6px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.07);}
.dws-pillar .pm-row{display:flex;align-items:center;justify-content:space-between;font-size:.78rem;}
.dws-pillar .pm-label{color:rgba(255,255,255,.45);}
.dws-pillar .pm-val{font:600 .78rem/1 var(–rep-font-body);color:var(–rep-green);background:rgba(147,241,201,.1);padding:3px 8px;border-radius:var(–rep-radius-full);}

/* CWV bar */
.dws-cwv{
display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
margin-top:52px;padding-top:40px;border-top:1px solid rgba(255,255,255,.07);
}
.dws-cwv-item{text-align:center;}
.dws-cwv-item .cv-val{font:700 2rem/1 var(–rep-font-display);color:var(–rep-green);margin-bottom:4px;}
.dws-cwv-item .cv-metric{font:600 .78rem/1 var(–rep-font-body);color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;}
.dws-cwv-item .cv-name{font:400 .8rem/1.3 var(–rep-font-body);color:rgba(255,255,255,.5);}

/* ===== 4. TIPOLOGÍAS ===== */
.dws-types{padding:90px 0;background:#fff;}
.dws-types-head{text-align:center;margin-bottom:56px;}
.dws-types-head h2{margin-bottom:12px;}
.dws-types-head p{color:var(–rep-text-muted);max-width:520px;margin:0 auto;}
.dws-types-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.dws-type-card{
border:1px solid var(–rep-border);border-radius:var(–rep-radius-xl);
padding:32px 28px;transition:all .25s;position:relative;overflow:hidden;
}
.dws-type-card::before{
content:»»;position:absolute;inset:0;opacity:0;
background:linear-gradient(135deg,rgba(65,153,159,.06),rgba(147,241,201,.04));
transition:opacity .25s;
}
.dws-type-card:hover{box-shadow:var(–rep-shadow-lg);transform:translateY(-3px);border-color:rgba(65,153,159,.25);}
.dws-type-card:hover::before{opacity:1;}
.dws-type-card .tc-icon{
width:52px;height:52px;border-radius:var(–rep-radius-md);
background:var(–rep-bg-light);display:flex;align-items:center;justify-content:center;
font-size:26px;color:var(–rep-teal);margin-bottom:20px;
transition:background .25s;
}
.dws-type-card:hover .tc-icon{background:rgba(65,153,159,.1);}
.dws-type-card h3{margin-bottom:10px;}
.dws-type-card p{font-size:.9rem;color:var(–rep-text-muted);line-height:1.65;margin-bottom:16px;}
.dws-type-card .tc-from{font:600 .78rem/1 var(–rep-font-body);color:var(–rep-teal);}
.dws-type-card–wide{grid-column:span 3;}

/* ===== 5. PROCESO ===== */
.dws-process{background:var(–rep-bg-light);padding:90px 0;}
.dws-process-head{text-align:center;margin-bottom:56px;}
.dws-process-head h2{margin-bottom:12px;}
.dws-process-head .muted{margin:0 auto;}
.dws-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.dws-steps::before{
content:»»;position:absolute;top:42px;left:calc(12.5% + 12px);
right:calc(12.5% + 12px);height:2px;
background:linear-gradient(90deg,var(–rep-teal),var(–rep-green));
opacity:.25;
}
.dws-step{text-align:center;padding:0 16px;}
.dws-step-num{
width:52px;height:52px;border-radius:50%;
background:var(–rep-forest);color:var(–rep-green);
font:700 1.1rem/52px var(–rep-font-display);
display:flex;align-items:center;justify-content:center;
margin:0 auto 20px;position:relative;z-index:1;
box-shadow:0 0 0 6px var(–rep-bg-light);
}
.dws-step h4{margin-bottom:8px;}
.dws-step p{font-size:.87rem;color:var(–rep-text-muted);line-height:1.6;}
.dws-process-note{
max-width:780px;margin:48px auto 0;
padding:22px 28px;background:#fff;
border:1px solid var(–rep-border);border-radius:var(–rep-radius-lg);
display:flex;align-items:flex-start;gap:14px;
}
.dws-process-note i{font-size:20px;color:var(–rep-teal);flex-shrink:0;margin-top:2px;}
.dws-process-note p{font-size:.9rem;color:var(–rep-text-muted);line-height:1.65;margin:0;}
.dws-process-note p strong{color:var(–rep-forest);}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
.dws-hero .wrap{grid-template-columns:1fr;gap:40px;}
.dws-hero-visual{min-height:320px;}
.dws-hero-code{max-width:340px;}
.dws-metric–score{right:4%;}
.dws-what .wrap{grid-template-columns:1fr;}
.dws-stats{position:static;flex-direction:row;flex-wrap:wrap;}
.dws-stat-card{flex:1;min-width:160px;}
.dws-pillars{grid-template-columns:1fr 1fr;}
.dws-types-grid{grid-template-columns:1fr 1fr;}
.dws-type-card–wide{grid-column:span 2;}
.dws-steps{grid-template-columns:1fr 1fr;gap:40px;}
.dws-steps::before{display:none;}
}
@media(max-width:640px){
.dws-hero{padding:120px 0 80px;}
.dws-ctas{flex-direction:column;}
.dws-pillars{grid-template-columns:1fr;}
.dws-cwv{grid-template-columns:1fr 1fr;}
.dws-types-grid{grid-template-columns:1fr;}
.dws-type-card–wide{grid-column:span 1;}
.dws-steps{grid-template-columns:1fr;}
.dws-hero-visual{display:none;}
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-d4700f4 *//* ===== 6. PORTFOLIO ===== */
.dws-portfolio{padding:90px 0;background:#fff;}
.dws-portfolio-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:48px;flex-wrap:wrap;}
.dws-portfolio-head h2{margin-bottom:8px;}
.dws-portfolio-head .head-sub{font-size:.95rem;color:var(–rep-text-muted);}
.dws-portfolio-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px;}
.dws-pf{
display:inline-flex;align-items:center;gap:5px;
padding:6px 14px;border-radius:var(–rep-radius-full);
border:1.5px solid var(–rep-border);
font:500 .82rem/1 var(–rep-font-body);color:var(–rep-text-muted);
background:#fff;cursor:pointer;transition:all .18s;
}
.dws-pf.active,.dws-pf:hover{background:var(–rep-teal);color:#fff;border-color:var(–rep-teal);}
.dws-portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.dws-project-card{
border-radius:var(–rep-radius-xl);overflow:hidden;
border:1px solid var(–rep-border);
transition:all .25s;
}
.dws-project-card:hover{box-shadow:var(–rep-shadow-lg);transform:translateY(-4px);}
.dws-project-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .35s;}
.dws-project-card:hover img{transform:scale(1.04);}
.dws-project-card .pc-info{padding:18px 20px;}
.dws-project-card .pc-type{font:500 .73rem/1 var(–rep-font-body);color:var(–rep-teal);text-transform:uppercase;letter-spacing:.09em;margin-bottom:5px;}
.dws-project-card .pc-name{font:600 1rem/1.3 var(–rep-font-display);color:var(–rep-forest);}

/* ===== 7. COMPARATIVA ===== */
.dws-compare{padding:88px 0;background:var(–rep-bg-light);}
.dws-compare-head{text-align:center;margin-bottom:52px;}
.dws-compare-head h2{margin-bottom:12px;}
.dws-compare-head p{color:var(–rep-text-muted);max-width:540px;margin:0 auto;}
.dws-compare-table{
width:100%;border-radius:var(–rep-radius-xl);overflow:hidden;
border:1px solid var(–rep-border);background:#fff;
box-shadow:var(–rep-shadow-sm);
}
.dws-compare-table thead th{
padding:18px 24px;font:600 .82rem/1 var(–rep-font-body);
text-transform:uppercase;letter-spacing:.08em;text-align:left;
}
.dws-compare-table thead th:first-child{color:var(–rep-text-muted);background:#fff;}
.dws-compare-table thead th:nth-child(2){background:#fef9ef;color:#6C5E1A;border-left:1px solid #e8e0c8;}
.dws-compare-table thead th:nth-child(3){background:rgba(65,153,159,.08);color:var(–rep-teal);border-left:1px solid rgba(65,153,159,.15);}
.dws-compare-table thead th:nth-child(3) span{font-size:1em;}
.dws-compare-table tbody tr:not(:last-child){border-bottom:1px solid var(–rep-border);}
.dws-compare-table tbody td{padding:16px 24px;font-size:.9rem;color:var(–rep-text-secondary);}
.dws-compare-table tbody td:first-child{font-weight:500;color:var(–rep-forest);}
.dws-compare-table tbody td:nth-child(2){background:#fffdf5;border-left:1px solid #e8e0c8;color:#7A6A2A;}
.dws-compare-table tbody td:nth-child(3){background:rgba(65,153,159,.03);border-left:1px solid rgba(65,153,159,.12);color:var(–rep-teal);font-weight:500;}
.dws-compare-table .yes{color:#2a7a4a;font-weight:600;}
.dws-compare-table .no{color:#b0443a;}
.dws-compare-table .ok{color:var(–rep-teal);font-weight:600;}

/* ===== 8. TESTIMONIOS ===== */
.dws-reviews{padding:88px 0;background:var(–rep-forest);overflow:hidden;position:relative;}
.dws-reviews::before{
content:»»;position:absolute;top:-30%;right:-10%;width:50%;height:80%;
background:radial-gradient(ellipse,rgba(65,153,159,.1) 0%,transparent 65%);
pointer-events:none;
}
.dws-reviews-head{text-align:center;margin-bottom:48px;position:relative;z-index:1;}
.dws-reviews-head .kicker–light{color:var(–rep-green);}
.dws-reviews-head h2{color:#fff;}
.dws-reviews-head p{color:rgba(255,255,255,.55);max-width:500px;margin:12px auto 0;}
/* Reviews reel (mismo patrón que homepage de Replanta) */
#reviews{position:relative;z-index:1;}
#reviews .container{max-width:1140px;margin:0 auto;padding:0 24px;}
#reviews .head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:36px;flex-wrap:wrap;}
#reviews .cta-all a{
display:inline-flex;align-items:center;gap:6px;
padding:10px 20px;border:1px solid rgba(255,255,255,.2);border-radius:var(–rep-radius-full);
color:rgba(255,255,255,.65);font:.6rem/1 var(–rep-font-body);font-size:.82rem;
transition:all .18s;
}
#reviews .cta-all a:hover{background:rgba(255,255,255,.08);color:#fff;}
.reel{width:100%;overflow:hidden;margin-bottom:20px;}
.track{display:flex;gap:16px;width:max-content;animation:reel-scroll 32s linear infinite;}
.track:hover,.track:focus-within{animation-play-state:paused;}
@keyframes reel-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.chunk{display:flex;gap:16px;}
.rv-card{
background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
border-radius:var(–rep-radius-lg);padding:22px;width:290px;flex-shrink:0;
transition:background .18s;
}
.rv-card:hover{background:rgba(255,255,255,.09);}
.rv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.stars{color:var(–rep-sun);font-size:.95rem;letter-spacing:1px;}
.source{font:500 .7rem/1 var(–rep-font-body);color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.07em;}
.rv-card blockquote{font-size:.88rem;line-height:1.65;color:rgba(255,255,255,.75);margin:0 0 16px;}
.rv-card blockquote strong{color:#fff;}
.rv-bottom{display:flex;gap:10px;align-items:center;}
.avatar{width:32px;height:32px;border-radius:50%;background:var(–rep-teal);display:flex;align-items:center;justify-content:center;font:700 .75rem/1 var(–rep-font-body);color:#fff;flex-shrink:0;}
.name{font:600 .82rem/1.2 var(–rep-font-body);color:rgba(255,255,255,.8);}
.date{font:400 .7rem/1 var(–rep-font-body);color:rgba(255,255,255,.35);}
.row{margin-bottom:0;}
.row.reverse .track{animation-direction:reverse;}

/* ===== 9. CROSSLINKS Ecosistema ===== */
.dws-ecosystem{padding:90px 0;background:#fff;}
.dws-ecosystem-head{text-align:center;margin-bottom:52px;}
.dws-ecosystem-head h2{margin-bottom:12px;}
.dws-ecosystem-head p{color:var(–rep-text-muted);max-width:560px;margin:0 auto;}
.dws-eco-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.dws-eco-card{
border:1px solid var(–rep-border);border-radius:var(–rep-radius-xl);
padding:36px 32px;transition:all .25s;position:relative;overflow:hidden;
}
.dws-eco-card::after{
content:»»;position:absolute;inset:0;opacity:0;
background:linear-gradient(135deg,rgba(65,153,159,.05),rgba(147,241,201,.04));
transition:opacity .25s;pointer-events:none;
}
.dws-eco-card:hover{box-shadow:var(–rep-shadow-lg);transform:translateY(-4px);border-color:rgba(65,153,159,.25);}
.dws-eco-card:hover::after{opacity:1;}
.dws-eco-card .eco-icon{
width:56px;height:56px;border-radius:var(–rep-radius-md);
background:var(–rep-bg-light);display:flex;align-items:center;justify-content:center;
font-size:28px;color:var(–rep-teal);margin-bottom:20px;
}
.dws-eco-card h3{margin-bottom:10px;}
.dws-eco-card p{font-size:.92rem;color:var(–rep-text-muted);line-height:1.7;margin-bottom:20px;}
.dws-eco-card ul{display:flex;flex-direction:column;gap:6px;margin-bottom:24px;}
.dws-eco-card ul li{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(–rep-text-secondary);}
.dws-eco-card ul li::before{content:’✓’;color:var(–rep-teal);font-weight:700;flex-shrink:0;}
.dws-eco-card .eco-link{
display:inline-flex;align-items:center;gap:6px;
font:600 .88rem/1 var(–rep-font-body);color:var(–rep-teal);
transition:gap .18s;
}
.dws-eco-card .eco-link:hover{gap:10px;}

/* ===== 10. FAQs ===== */
.dws-faqs{padding:90px 0;background:var(–rep-bg-light);}
.dws-faqs-head{text-align:center;margin-bottom:52px;}
.dws-faqs-head h2{margin-bottom:12px;}
.dws-faqs-head p{color:var(–rep-text-muted);max-width:500px;margin:0 auto;}
.dws-faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.dws-faq{
border:1px solid var(–rep-border);border-radius:var(–rep-radius-lg);
background:#fff;overflow:hidden;
}
.dws-faq summary{
display:flex;align-items:center;justify-content:space-between;
padding:22px 28px;cursor:pointer;
font:600 .98rem/1.4 var(–rep-font-display);color:var(–rep-forest);
list-style:none;gap:16px;
transition:background .15s;
}
.dws-faq summary::-webkit-details-marker{display:none;}
.dws-faq summary:hover{background:var(–rep-bg-light);}
.dws-faq[open] summary{background:var(–rep-bg-light);}
.dws-faq .faq-icon{
width:28px;height:28px;border-radius:50%;
background:var(–rep-bg-light);border:1.5px solid var(–rep-border);
display:flex;align-items:center;justify-content:center;
font-size:14px;color:var(–rep-teal);flex-shrink:0;
transition:transform .25s;
}
.dws-faq[open] .faq-icon{transform:rotate(45deg);}
.dws-faq .faq-body{padding:0 28px 24px;border-top:1px solid var(–rep-border);}
.dws-faq .faq-body p{font-size:.95rem;line-height:1.75;color:var(–rep-text-secondary);padding-top:18px;margin:0;}
.dws-faq .faq-body p strong{color:var(–rep-forest);}
.dws-faq .faq-body a{color:var(–rep-teal);font-weight:600;}

/* ===== 11. CTA FINAL ===== */
.dws-cta-final{
padding:100px 0;
background:linear-gradient(160deg,#1A2B20 0%,#0F1C14 60%,#1A2B20 100%);
position:relative;overflow:hidden;
}
.dws-cta-final::before{
content:»»;position:absolute;inset:0;
background:url(«data:image/svg+xml,%3Csvg width=’80’ height=’80’ xmlns=’http://www.w3.org/2000/svg’%3E%3Ccircle cx=’1′ cy=’1′ r=’.8′ fill=’%2393F1C9′ opacity=’.03’/%3E%3C/svg%3E»);
}
.dws-cta-final .wrap{position:relative;z-index:1;text-align:center;}
.dws-cta-final .kicker–light{color:var(–rep-green);}
.dws-cta-final h2{color:#fff;margin-bottom:18px;max-width:640px;margin-left:auto;margin-right:auto;}
.dws-cta-final p{color:rgba(255,255,255,.6);max-width:540px;margin:0 auto 36px;font-size:1.05rem;line-height:1.75;}
.dws-cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:28px;}
.dws-cta-final .trust-strip{
display:flex;gap:20px;justify-content:center;flex-wrap:wrap;
font:400 .78rem/1 var(–rep-font-body);color:rgba(255,255,255,.35);
}
.dws-cta-final .trust-strip span{display:flex;align-items:center;gap:5px;}
.dws-cta-final .trust-strip i{font-size:13px;color:var(–rep-green);}
.btn.btn-ghost{color:white;}
/* ── RESPONSIVE ── */
@media(max-width:1024px){
.dws-portfolio-grid{grid-template-columns:1fr 1fr;}
.dws-eco-grid{grid-template-columns:1fr;}
.dws-compare-table{overflow-x:auto;display:block;}
}
@media(max-width:640px){
.dws-portfolio-grid{grid-template-columns:1fr;}
.dws-portfolio-head{flex-direction:column;align-items:flex-start;}
.dws-faq summary{padding:18px 20px;font-size:.9rem;}
.dws-faq .faq-body{padding:0 20px 20px;}
}/* End custom CSS */


Replanta · Diseño Web

Diseño Web
Sostenible

Desarrollamos sitios WordPress a medida donde cada kilobyte está justificado.
Código limpio, imágenes optimizadas, sin plugins inflados —
y alojado en infraestructura verde que refuerza ese compromiso.
Tu web más rápida, con menos huella.

Código limpio
Core Web Vitals
Sin bloat
Hosting verde

Proyectos en producción desde 2018 · España y Latinoamérica

< 1.8s
LCP objetivo




index.html · 28kB total
1<!– carga: 0.4s · CO₂: 0.03g –>
2<link
rel=«preload»
as=«font»>
3<img
loading=«lazy»
decoding=«async»>
4<!– 0 scripts innecesarios –>
5<style>
/* solo lo necesario */
</style>
6<script
defer
src=«app.min.js»></script>
7WebP · srcset · HTTP/3 · CDN



PageSpeed: 98 · 97 · 100

0.03g
CO₂ por visita

No es eslogan — es ingeniería

Un sitio web eficiente
es un sitio sostenible

Internet consume ya en torno al 4% de la electricidad mundial y
genera más emisiones de CO₂ que toda la industria aérea. Cada vez que alguien
visita una web, se activan servidores, se transmiten megabytes y se renderiza contenido
en millones de dispositivos. El resultado de todas esas operaciones tiene un coste real:
energético y económico.

La media de una página web convencional supera los 2,5 MB de peso
imágenes sobredimensionadas, frameworks CSS que cargan 400 líneas para estilizar 4 elementos,
plugins que inyectan 20 scripts para hacer un menú desplegable.
Ese exceso ralentiza la carga, penaliza el SEO y consume energía innecesaria.

En Replanta adoptamos el principio opuesto: menos bytes, más intención.
Cada recurso que entra en una página nuestra tiene que ganarse su lugar.
El resultado no sacrifica el diseño ni la funcionalidad —
las constrainsts de rendimiento obligan a un diseño más claro, más directo, más efectivo.

A eso le añadimos la capa de infraestructura: hosting en servidores
con energía 100% renovable, LiteSpeed como servidor web,
Redis para caché de objetos y Cloudflare CDN global —
porque el trabajo de optimización no termina en el código.

«El diseño web sostenible no es un nicho. Es la forma correcta de construir para la web moderna.»

Fuentes: The Shift Project (2023) · Website Carbon Calculator · HTTP Archive Web Almanac 2024

4%
Electricidad global que consume internet
Equivale a las emisiones de toda la aviación mundial

2.5 MB
Peso medio de una web convencional
Nuestros proyectos apuntan a menos de 600 kB

70%
Del peso viene de imágenes mal exportadas
WebP/AVIF + lazy load + srcset lo resuelven casi todo

+15%
Conversiones por cada segundo de mejora
Velocidad y sostenibilidad van de la mano con negocio

Metodología técnica

Código que pesa
lo que debe pesar

No usamos constructores de página pesados para webs que no los necesitan.
No cargamos frameworks de 300kB para dar estilo a texto. Cada decisión técnica
tiene un motivo concreto y una métrica que la valida.

Imágenes inteligentes

Hasta el 70% del peso de una web son imágenes mal exportadas.
Exportamos en WebP/AVIF, aplicamos loading="lazy",
srcset
adaptativo y nunca cargamos decoraciones innecesarias.

Objetivo de peso< 80kB/img
FormatoWebP / AVIF
Cargalazy + async

CSS y JS quirúrgicos

Sin frameworks de 200kB cuando bastan 12kB escritos a mano.
Sin plugins que inyectan 40 scripts para mostrar un carousel.
CSS en cascada real, JS diferido, nothing render-blocking.

JS crítico0 render-blocking
CSSsolo el necesario
Scripts de tercerosdiferidos

Infraestructura alineada

El trabajo del código se multiplica con el hosting adecuado.
LiteSpeed + Redis en servidor, Cloudflare CDN, HTTP/3,
compresión Brotli y energía 100% renovable en cada byte transmitido.

Servidor webLiteSpeed
CDNCloudflare global
Energía100% renovable

< 2.5s
LCP
Largest Contentful Paint

< 0.1
CLS
Cumulative Layout Shift

< 200ms
INP
Interaction to Next Paint

Lo que construimos

¿Qué tipo de proyecto necesitas?

De la landing page más limpia al eCommerce más complejo — siempre con el mismo principio: rendimiento primero.

Landing Pages

Una página con un objetivo claro y cero distracciones. Alta conversión, carga sub-segundo, integración con CRM o formulario.

Desde 600€

Webs Corporativas

Presencia digital completa: servicios, equipo, blog, contacto. Arquitectura de información pensada para SEO y conversión.

Desde 1.200€

eCommerce WooCommerce

Tiendas optimizadas para conversión. PassPerformance en checkout, integración de pasarelas, gestión de stock y SEO de producto.

Desde 2.400€

Portafolios Profesionales

Para fotógrafos, diseñadores, estudios creativos. Galerías optimizadas, lightbox, filtros y carga progresiva sin matar el TTFB.

Desde 800€

Plugins WordPress a medida

Cuando ningún plugin del mercado hace exactamente lo que necesitas. Desarrollo desde cero, con documentación y mantenimiento.

Desde 500€

Migraciones y rediseños

Tu web exist but performs poorly. Auditamos, planificamos la migración sin downtime y aplicamos optimización en el proceso.

Presupuesto a medida

Cómo trabajamos

Así se construye tu proyecto

Sin sorpresas ni cuellos de botella. Cada fase tiene entregables concretos y plazos acordados antes de empezar.

1

Consulta inicial

Analizamos tu proyecto, objetivos, competencia e infraestructura actual. Sin coste. Sales con un diagnóstico claro y una propuesta concreta.

2

Diseño y prototipo

Wireframes y diseño visual acordado antes de escribir una línea de código. Tu aprobación explícita antes de avanzar.

3

Desarrollo

Entorno de staging accesible desde el primer día. Te mostramos avances reales en los plazos acordados. Revisiones incluidas.

4

En producción

Lanzamiento sin downtime, indexación verificada, velocidad medida. Formación de uso y documentación del entorno entregadas.

Cada proyecto incluye: acceso a entorno de staging durante el desarrollo,
revisiones acordadas en brief, onboarding de gestión de contenido y
verificación de Core Web Vitals antes de la entrega.
Disponemos de planes de mantenimiento mensual
para la fase post-lanzamiento.


Portfolio

Algunos de nuestros proyectos

Industrias distintas, mismo principio: código que no se nota.

Cuéntanos tu proyecto

Web corporativa de ciberseguridad

Corporativa · Ciberseguridad
BSP Group

Portafolio de productora de cine

Portafolio · Productora audiovisual
La Olimpo Films

eCommerce de maquinaria

eCommerce · Maquinaria
Maquistore

Portafolio de estudio VFX

Portafolio · Estudio VFX
La Remedios Studio

Web institucional educativa

Corporativa · Institución educativa
eSkepsi

WPO para institución politécnica

WPO + Rediseño · Politécnico
Polisura

Por qué importa el enfoque

Diseño sostenible vs diseño convencional

No es un debate ideológico — son decisiones técnicas con consecuencias medibles en rendimiento, SEO y consumo.

Aspecto técnico Diseño web convencional Diseño web sostenible — Replanta
Peso de página 2–5 MB media Objetivo < 600 kB
Imágenes JPEG/PNG sin optimizar, sin lazy load WebP/AVIF, lazy, srcset adaptativo
CSS/JS Bootstrap entero, plugins con 20+ scripts Solo lo necesario, todo diferido
Core Web Vitals Frecuentemente en amarillo/rojo LCP < 2.5s · CLS < 0.1 · INP < 200ms
Emisiones por visita ~0.8–2g CO₂ ~0.03–0.1g CO₂ con hosting renovable
Hosting Apache tradicional, servidores genéricos LiteSpeed + Redis + CDN + renovables
Impacto SEO Penalización por PageSpeed bajo Score 95+ · ventaja de indexación
Experiencia móvil Responsive añadida a posteriori Mobile-first desde el diseño

Reseñas verificadas

La gente que trabaja con Replanta, repite

Proyectos de diseño + hosting + mantenimiento. Clientes reales, resultados medibles.

★★★★★
Caso cliente

«Necesidad muy específica y nos hicieron un plugin a medida. Código limpio, documentado y soporte impecable.»

JL
José Luis Álamo · ES
9 may 2025
★★★★★
Caso cliente

«Una apuesta por la sostenibilidad, y un gran servicio personalizado

JT
Josep M. Torres · CEO Ediciones Mayo
2025
★★★★★
Caso cliente

«Excelente servicio, dedicación de tiempo completo al cliente y amplio conocimiento en desarrollo. ¡Muy recomendado!»

CC
Cesar Cabana · CEO Cabana & Carreño
2025
★★★★★
Trustpilot

«Buscábamos sostenibilidad y obtuvimos rendimiento + soporte que se involucra. Migración impecable y mejora notable.»

OM
Oscar Martínez · ES
9 may 2025
★★★★★
Trustpilot

«Velocidad y estabilidad excelentes; soporte rápido y efectivo. Herramientas completas y seguridad que da tranquilidad.»

BL
Beatriz Londoño · ES
20 ago 2024
★★★★★
Trustpilot

«Los mejores. Equipo técnico responsable que sabe lo que hace. ¡Recomendadísimos!»

DB
Diana Benavides · ES
20 ago 2024

★★★★★
Trustpilot

«Excelente servicio y acompañamiento del soporte. Sin inconvenientes en todo este tiempo. Muy recomendado.»

FH
Francisco Herrera · CO
21 ago 2024
★★★★★
Trustpilot

«Excelente servicio. Resuelven rápido cualquier inquietud, 24/7. Recomendado.»

JU
Juan · CO
24 ago 2024
★★★★★
Trustpilot

«Muy satisfecha. Trato excelente. Volveré a contar con ustedes.»

ST
Sonia Tomás · ES
21 ago 2024
★★★★★
Trustpilot

«Muy profesionales y gran atención. Muy recomendable.»

LT
Luis Tejerina · ES
19 ago 2024
★★★★★
Trustpilot

«Un hosting verde estupendo. ¡WordPress va súper rápido!»

DP
Damián Physique · ES
18 ago 2024
★★★★★
Trustpilot

«Muy profesionales. Lo recomiendo al 100%.»

FJ
Fco. Javier Bobillo · ES
18 ago 2024

La ecuación completa

Diseño web sostenible es también
lo que viene después

Un buen diseño inicial es el punto de partida. La infraestructura y el mantenimiento son los que lo mantienen relevante.

ECO Hosting Web

Tu web sostenible necesita vivir en un servidor sostenible. Nuestro stack de hosting
está optimizado específicamente para los proyectos que desarrollamos:
mismo entorno, cero fricciones en el tuning de rendimiento.

  • LiteSpeed + Redis + Cloudflare CDN
  • Energía 100% renovable certificada
  • Configuramos el entorno para tu stack
  • Stagings, SSL automático, backups diarios


Ver planes de ECO Hosting

Mantenimiento WordPress

Un sitio web no termina en el lanzamiento. Actualizaciones negligentes,
backups no verificados y seguridad desatendida son la causa principal de hackeos.
Cubrimos el ciclo de vida completo.

  • Actualizaciones WP + plugins con staging previo
  • Backups externos verificados diariamente
  • Monitorización 24/7 · alerta inmediata
  • Soporte técnico incluido en el plan


Ver planes de mantenimiento

Preguntas frecuentes

Lo que nos preguntan antes de empezar

Respuestas directas. Si tienes alguna más, escríbenos.

¿Qué es el diseño web sostenible exactamente?

El diseño web sostenible es un enfoque de desarrollo que prioriza la eficiencia técnica para reducir el consumo energético de cada visita. En la práctica implica: código limpio sin dependencias innecesarias, imágenes correctamente exportadas y cargadas, ausencia de scripts redundantes y alojamiento en servidores con energía renovable. El resultado es una web más rápida, con mejor posicionamiento SEO y una huella de carbono significativamente menor. No es un nicho especializado — es simplemente buena ingeniería.

¿Cuánto cuesta un diseño web con Replanta?

Depende del alcance: una landing page parte desde 600€, una web corporativa desde 1.200€ y un eCommerce WooCommerce desde 2.400€. Los proyectos más complejos (aplicaciones web, plugins a medida) se presupuestan individualmente. La consulta inicial es gratuita — analizamos tu proyecto y te damos una propuesta detallada sin compromiso.

¿Trabajáis solo con WordPress?

WordPress y WooCommerce son nuestra especialidad principal. También desarrollamos plugins WordPress a medida y aplicaciones web. Para proyectos donde WordPress no sea la herramienta correcta, lo decimos abiertamente y valoramos la alternativa más adecuada contigo.

¿Cuánto tarda el desarrollo de una web?

Una landing page: 1–2 semanas. Una web corporativa: 3–6 semanas. Un eCommerce: 6–12 semanas. Siempre acordamos plazos concretos antes de empezar y los formalizamos en el presupuesto. Durante el desarrollo tienes acceso al entorno de staging y mostramos avances en fases acordadas.

¿El proyecto incluye hosting?

Podemos incluirlo. Todos nuestros proyectos están optimizados para nuestro stack de hosting (LiteSpeed + Redis + Cloudflare). Si contratas el hosting con Replanta, configuramos el entorno completo sin coste adicional y te garantizamos los mejores resultados de rendimiento. También podemos desplegar en tu hosting actual si cumple con los requisitos mínimos.

¿Qué son los Core Web Vitals y por qué importan?

Son las métricas de rendimiento web de Google que afectan directamente al posicionamiento en buscadores: LCP (tiempo en cargar el elemento principal de la página), CLS (estabilidad visual mientras carga) e INP (tiempo de respuesta a interacciones del usuario). Desde 2024 son un factor de ranking activo. Nuestros proyectos apuntan consistentemente a LCP < 2.5s, CLS < 0.1 e INP < 200ms.

¿Puedo gestionar mi web yo mismo después de la entrega?

Sí. Desarrollamos en WordPress/Elementor y entregamos formación básica de gestión de contenido. También proporcionamos documentación del entorno para que puedas actualizar textos, imágenes y entradas de blog de forma autónoma. Para operaciones más técnicas (actualizaciones de plugins, cambios de configuración de hosting) disponemos de planes de mantenimiento mensual.

¿Hacéis también el mantenimiento posterior?

Sí, y lo recomendamos especialmente. Disponemos de planes de mantenimiento WordPress mensual que incluyen actualizaciones seguras (con staging previo), copias de seguridad externas verificadas, monitorización 24/7 y soporte técnico incluido. Muchos clientes contratan diseño web + hosting + mantenimiento como paquete completo — es la combinación que mejores resultados da a largo plazo.

 Cuéntanos tu proyecto

Tu web más rápida,
con mayor impacto

Analizamos tu proyecto sin coste. Sales con un diagnóstico real,
una propuesta concreta y sin presiones de cierre.

Consulta gratuita
Presupuesto en 48h
Sin permanencia
Hosting verde incluible