// ============================================================ // Qestylo — page sections // ============================================================ const { useState, useEffect, useRef, useCallback } = React; // scroll helper for #contacto CTAs function goContacto(e) { e.preventDefault(); const el = document.getElementById('contacto'); if (el) window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 20, behavior: 'smooth' }); } // ---------------- 2 · NAVBAR ---------------- function Navbar() { const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 40); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); const links = [ ['Ventanas', '#solucion'], ['Puertas', '#puertas'], ['Persianas', '#persianas'], ['Ventajas', '#problema'], ['Cómo funciona', '#como'], ['Opiniones', '#opiniones'], ]; return (
); } // ---------------- 3 · HERO ---------------- const FLOATING = [ { icon: 'volume-x', text: 'El ruido de la calle se queda fuera' }, { icon: 'thermometer-sun', text: 'Tu casa templada todo el año' }, { icon: 'award', text: 'Distribuidor oficial Kömmerling' }, { icon: 'map-pin', text: 'Tienda física en Valladolid' }, ]; function Hero() { const heroRef = useRef(null); // hero fade on scroll useEffect(() => { const onScroll = () => { const el = heroRef.current; if (!el) return; const p = Math.min(1, window.scrollY / (window.innerHeight * 0.9)); el.style.opacity = String(1 - p * 0.85); }; window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); return (
{/* left */}

(li === 2 ? 'text-amber' : 'text-cream')} />

Distribuidor oficial Kömmerling en Valladolid. Aislamiento térmico y acústico alemán, instalación profesional y presupuesto a tu medida — sin compromiso.

Pide presupuesto sin compromiso Conoce Qestylo
{/* right: card-tag */}

Aislar · Ahorrar · Descansar

{/* floating cards */}
{FLOATING.map((c, i) => (
{c.text}
))}
); } // section eyebrow function Eyebrow({ children, dark }) { return (
{children}
); } // ---------------- 4 · PROBLEMA ---------------- const PAINS = [ { icon: 'ear', title: 'Oyes la calle dentro de casa', text: 'Tráfico, vecinos y obras se cuelan por marcos viejos que ya no sellan.' }, { icon: 'flame', title: 'Pagas de más en calefacción y aire', text: 'El calor y el frío se escapan por el perfil: tu factura de luz y gas paga la fuga.' }, { icon: 'droplets', title: 'Condensación y moho', text: 'Humedad en los cristales, aire colándose por las juntas y moho en las paredes.' }, { icon: 'shield-alert', title: 'Falta de seguridad ante robos', text: 'Cierres antiguos y vidrios frágiles que un intruso puede forzar con facilidad.' }, { icon: 'wind', title: 'Polvo y alérgenos en casa', text: 'La falta de hermeticidad deja pasar hollín, polvo y polen de la calle.' }, { icon: 'wrench', title: 'Mantenimiento y atascos', text: 'Marcos que se hinchan por el clima y necesitan lijado o pintura constante.' }, ]; function Problema() { return (
El problema

Tus ventanas viejas te cuestan cada día

{PAINS.map((p, i) => (

{p.title}

{p.text}

))}
); } // ---------------- 5 · SOLUCIÓN ---------------- const KEY_FACTORS = [ { id: 1, title: 'Cajón de persiana RolaPlus', subtitle: 'El cajón estanco de Kömmerling', text: 'Un mal cajón arruina el aislamiento de cualquier ventana. Las ventanas de PVC con sistemas Kömmerling se instalan con RolaPlus, un cajón de persiana de altas prestaciones que mantiene y refuerza la hermeticidad y el aislamiento termoacústico del conjunto sin filtraciones.', pos: { x: 50, y: 15 }, icon: 'archive' }, { id: 2, title: 'Estanqueidad al agua', subtitle: 'Protección absoluta contra lluvias', text: 'Los ensayos de las ventanas con sistemas Kömmerling consiguen los mejores valores de estanqueidad al agua (Clase E900 y superiores) gracias a su optimizada geometría interna y diseño de pendientes que canaliza y expulsa la humedad.', pos: { x: 25, y: 88 }, icon: 'droplets' }, { id: 3, title: 'Permeabilidad al aire', subtitle: 'Sin corrientes de aire frío', text: 'Impedir la entrada de aire y viento es clave para el confort. Las ventanas Kömmerling logran la Clase 4 (máxima clasificación) gracias a su geometría interna única, la calidad superior de sus juntas de estanqueidad soldadas y su alta hermeticidad.', pos: { x: 42, y: 64 }, icon: 'wind' }, { id: 4, title: 'Resistencia y durabilidad', subtitle: 'Refuerzo interior de acero zincado', text: 'Todos los sistemas Kömmerling llevan en su interior un refuerzo de acero zincado de gran espesor y alta inercia que confiere resistencia al impacto y mantiene las prestaciones intactas durante toda la vida útil, sin deformaciones por viento.', pos: { x: 62, y: 55 }, icon: 'shield' }, { id: 5, title: 'Aislamiento acústico', subtitle: 'Tu casa en absoluto silencio', text: 'Las ondas sonoras se transmiten por el aire, por lo que la estanqueidad al aire de Kömmerling es vital. Combinado con un vidrio laminado con propiedades acústicas y una instalación profesional sin huecos, se apaga por completo el ruido de la calle.', pos: { x: 80, y: 40 }, icon: 'volume-x' }, { id: 6, title: 'La materia prima', subtitle: 'Fórmula exclusiva y patentada', text: 'El término PVC engloba compuestos muy distintos. La fórmula greenline de Kömmerling, exclusiva y de fabricación propia, destaca por su gran durabilidad frente al clima extremo, alta resistencia al impacto y por no amarillear con el sol.', pos: { x: 22, y: 42 }, icon: 'award' }, { id: 7, title: 'Aislamiento térmico', subtitle: 'Ahorro de hasta el 70% en facturas', text: 'El PVC es un aislante natural sin puentes térmicos. Los perfiles Kömmerling se combinan con vidrios bajo emisivos de altas prestaciones para frenar el frío de Valladolid en invierno y el calor en verano, minimizando el uso de calefacción.', pos: { x: 48, y: 35 }, icon: 'thermometer-sun' } ]; const SYSTEMS = [ { category: 'abatibles', name: 'AluNext MD', badge: 'Híbrido Premium', depth: '76 mm', chambers: 'Junta Central', desc: 'El primer sistema híbrido de Kömmerling. Combina la resistencia estructural y estética vanguardista del aluminio exterior con el aislamiento térmico inigualable del PVC interior. Apto para Passivhaus.', image: 'assets/sistema-alunext-md.jpg', uf: '1,00 W/m²K', uw: 'desde 0,80 W/m²K', acoustic: 'hasta 45 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: '24 a 50 mm', highlights: [ 'Corazón de PVC 100% reciclado', 'Esquinas soldadas (mayor estabilidad mecánica)', 'Estética de aluminio premium en cualquier color RAL' ] }, { category: 'abatibles', name: 'AluNext AD', badge: 'Híbrido Estilizado', depth: '76 mm', chambers: 'Doble Junta', desc: 'Sistema híbrido de doble junta. Une el diseño contemporáneo en aluminio exterior con la eficiencia térmica y acústica de la tecnología multicámara de PVC en la parte interior.', image: 'assets/sistema-alunext-ad.jpg', uf: '1,20 W/m²K', uw: 'desde 0,90 W/m²K', acoustic: 'hasta 44 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: '24 a 50 mm', highlights: [ 'Corazón de PVC de 5 cámaras de alto aislamiento', 'Exterior de aluminio de líneas rectas y minimalistas', 'Combinación idónea de ligereza y robustez' ] }, { category: 'abatibles', name: 'KÖMMERLING Xtrem 76MD', badge: 'Casas Pasivas', depth: '76 mm', chambers: '6 Cámaras / Junta Central', desc: 'El buque insignia del aislamiento. Con junta central de estanqueidad y 6 cámaras, ofrece una transmitancia térmica excepcional (Uf = 1,0 W/m²K), ideal para climas fríos y construcciones de consumo casi nulo.', image: 'assets/sistema-xtrem-76md.jpg', uf: '1,00 W/m²K', uw: 'desde 0,73 W/m²K', acoustic: 'hasta 47 dB', air: 'Clase 4 (Máxima)', water: 'Clase E900', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Certificado para estándar Passivhaus', 'Sistema de triple junta con junta central rígida', 'Máximo aislamiento térmico y acústico en climas extremos' ] }, { category: 'abatibles', name: 'KÖMMERLING Xtrem 76AD', badge: 'Máximo Equilibrio', depth: '76 mm', chambers: '5 Cámaras / Doble Junta', desc: 'Equilibrio perfecto entre estética moderna y altas prestaciones. Cuenta con doble junta y un excelente nivel de aislamiento térmico y acústico a una relación calidad-precio excepcional.', image: 'assets/sistema-xtrem-76ad.jpg', uf: '1,10 W/m²K', uw: 'desde 0,76 W/m²K', acoustic: 'hasta 47 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Excelente relación coste / prestaciones aislantes', 'Doble junta de estanqueidad soldada en las esquinas', 'Óptima rigidez con refuerzos de acero de gran inercia' ] }, { category: 'abatibles', name: 'KÖMMERLING Xtrem 70AD', badge: 'Clásico Confiable', depth: '70 mm', chambers: '5 Cámaras / Doble Junta', desc: 'El sistema clásico y de gran fiabilidad. Perfil optimizado de 70 mm con 5 cámaras de aire. La solución ideal para reformas en las que se busca dar un salto de eficiencia respetando presupuestos ajustados.', image: 'assets/sistema-xtrem-70ad.jpg', uf: '1,30 W/m²K', uw: 'desde 0,90 W/m²K', acoustic: 'hasta 45 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 40 mm', highlights: [ 'Ideal para reformas residenciales estándar', 'Espesor de perfil reducido de 70 mm muy adaptable', 'Gran resistencia al impacto y durabilidad greenline®' ] }, { category: 'abatibles', name: '76MD Zero', badge: 'Hoja Oculta Minimalista', depth: '76 mm', chambers: 'Junta Central', desc: 'Estética purista con hoja oculta desde el exterior. El marco reducido maximiza la superficie de vidrio, logrando un diseño muy limpio que inunda de luz natural las estancias de tu hogar.', image: 'assets/sistema-76md-zero.jpg', uf: '1,00 W/m²K', uw: 'desde 0,74 W/m²K', acoustic: 'hasta 46 dB', air: 'Clase 4 (Máxima)', water: 'Clase E900', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Hoja oculta que maximiza la entrada de luz natural', 'Estética purista con marco de sección vista mínima', 'Triple junta con junta central de altas prestaciones' ] }, { category: 'abatibles', name: 'AluClip Zero', badge: 'Línea Vanguardista', depth: '76 mm', chambers: 'Hoja Oculta + Alu', desc: 'Combina el diseño enrasado de la hoja oculta con un clip exterior de aluminio lacado. La solución perfecta para integraciones arquitectónicas modernas que exigen el aspecto del aluminio sin renunciar al aislamiento del PVC.', image: 'assets/sistema-aluclip-zero.jpg', uf: '1,10 W/m²K', uw: 'desde 0,78 W/m²K', acoustic: 'hasta 46 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Estética de aluminio enrasado exterior', 'Aislamiento y hermeticidad de PVC en el interior', 'Ideal para proyectos arquitectónicos modernos y vanguardistas' ] }, { category: 'correderas', name: 'PremiSlide 76', badge: 'Corredera Hermética', depth: '76 mm', chambers: 'Desplazamiento Paralelo', desc: 'Una revolución en sistemas deslizantes. Mediante un innovador mecanismo, la hoja se separa y se desplaza de forma paralela, comprimiéndose firmemente al cerrar. Consigue la hermeticidad de una ventana abatible en una corredera.', image: 'assets/sistema-premislide-76.jpg', uf: '1,40 W/m²K', uw: 'desde 1,00 W/m²K', acoustic: 'hasta 43 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 50 mm', highlights: [ 'Cierre hermético por junta de compresión perimetral', 'Suave desplazamiento paralelo sin invadir espacio', 'Óptimo para grandes luces y alta exigencia térmica' ] }, { category: 'correderas', name: 'PremiLine', badge: 'Corredera Clásica', depth: 'Variable', chambers: 'Deslizamiento Suave', desc: 'El sistema de corredera tradicional por excelencia. Ofrece un deslizamiento silencioso y sumamente suave gracias a sus raíles de acero inoxidable. Ideal para salidas a terrazas donde prima optimizar el espacio interior.', image: 'assets/sistema-premiline.jpg', uf: '1,60 W/m²K', uw: 'desde 1,20 W/m²K', acoustic: 'hasta 40 dB', air: 'Clase 3', water: 'Clase 7A', wind: 'Clase C3', glass: 'hasta 28 mm', highlights: [ 'Deslizamiento sumamente silencioso sobre raíles de acero inox', 'Optimización máxima del espacio útil interior de la estancia', 'Hojas de sección esbelta y diseño clásico atemporal' ] } ]; const APERTURES = [ { name: 'Oscilobatiente', badge: 'El Estándar Recomendado', desc: 'Apertura sumamente práctica. Permite abrir de forma lateral completa (para limpiar o ventilar rápido) o inclinar la parte superior hacia el interior para una ventilación constante y segura sin corrientes directas.', svgType: 'oscilo' }, { name: 'Abatible Eje Vertical', badge: 'Apertura Tradicional', desc: 'La ventana se abre girando sobre las bisagras laterales. Ofrece una apertura del 100% del hueco, ideal para ventilar de inmediato la vivienda y facilitar un mantenimiento sencillo desde el interior.', svgType: 'vertical' }, { name: 'Abatible Eje Horizontal', badge: 'Ideal para Zonas Altas', desc: 'La hoja se inclina hacia el interior desde la parte superior mediante compases de seguridad. Es muy adecuada para baños, sótanos o claraboyas donde se busca ventilación evitando intrusiones.', svgType: 'horizontal' }, { name: 'Pivotante o Giratoria', badge: 'Estilo Arquitectónico', desc: 'La hoja gira sobre un eje central central (horizontal o vertical). Muy utilizada en arquitectura moderna para ventanas de gran tamaño, permitiendo regular la entrada de aire y limpiar ambas caras fácilmente.', svgType: 'pivot' }, { name: 'Corredera Slide (Hermética)', badge: 'Hermeticidad y Espacio', desc: 'La hoja se desplaza horizontalmente de forma paralela y, al cerrarse, se presiona contra las juntas perimetrales. Aúna el ahorro de espacio de una corredera con el aislamiento térmico de una practicable.', svgType: 'slide' }, { name: 'Corredera Tradicional', badge: 'Sencillez y Confort', desc: 'Hojas paralelas deslizándose sobre raíles. No consume espacio hacia el interior de la habitación, por lo que es la solución predilecta en pasillos, cocinas o accesos a terrazas de dimensiones reducidas.', svgType: 'traditional' } ]; function SystemDetailModal({ system, onClose, onQuote }) { if (!system) return null; // Prevent scroll on body when open and close on ESC useEffect(() => { document.body.style.overflow = 'hidden'; const handleKeyDown = (e) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', handleKeyDown); return () => { document.body.style.overflow = ''; window.removeEventListener('keydown', handleKeyDown); }; }, [onClose]); return ReactDOM.createPortal(
{/* Modal Box */}
e.stopPropagation()} style={{ boxShadow: '0 0 35px 2px rgba(233, 122, 56, 0.15), 0 0 70px 5px rgba(233, 122, 56, 0.08), 0 25px 50px -12px rgba(0, 0, 0, 0.5)' }} > {/* Close button */} {/* Left Column: Image & Badges */}
{system.name} {/* Dark gradient overlay */}
{/* Label Content */}
{system.badge}

{system.name}

Sistema {system.category} Kömmerling

{/* Right Column: Tech Specs & Specs Grid */}

Descripción General

{system.desc}

{/* Technical Specifications list */}

Ficha Técnica

Transmitancia Perfil (Uf) {system.uf}
Transmitancia Ventana (Uw) {system.uw}
Aislamiento Acústico {system.acoustic}
Permeabilidad Aire {system.air}
Estanqueidad Agua {system.water}
Resistencia Viento {system.wind}
Espesor de Vidrio Admitido {system.glass}
{/* Highlights List */} {system.highlights && system.highlights.length > 0 && (

Puntos Destacados

    {system.highlights.map((hl, i) => (
  • {hl}
  • ))}
)}
{/* Action Button */}
, document.body ); } function Solucion({ onSelectSystemForQuote }) { const [activeTab, setActiveTab] = useState('claves'); const [selectedHotspot, setSelectedHotspot] = useState(7); // default Aislamiento térmico const [systemFilter, setSystemFilter] = useState('abatibles'); const [selectedSystem, setSelectedSystem] = useState(null); const tabs = [ { id: 'claves', label: '7 Claves de Aislamiento', icon: 'key' }, { id: 'sistemas', label: 'Sistemas Kömmerling', icon: 'layout-grid' }, { id: 'aperturas', label: 'Formas de Apertura', icon: 'door-open' }, { id: 'greenline', label: 'Compromiso Greenline®', icon: 'leaf' } ]; const activeHotspotData = KEY_FACTORS.find(f => f.id === selectedHotspot) || KEY_FACTORS[6]; const filteredSystems = SYSTEMS.filter(s => s.category === systemFilter); // Helper to render simplified technical window animations const renderApertureSVG = (type) => { const baseClass = "w-full h-32 text-amber/30 border border-surface/5 bg-ink/10 rounded-lg p-4 flex items-center justify-center transition-all duration-300 group-hover:bg-amber/5 group-hover:border-amber/20"; if (type === 'oscilo') { return (
); } if (type === 'vertical') { return (
); } if (type === 'horizontal') { return (
); } if (type === 'pivot') { return (
); } if (type === 'slide') { return (
); } // traditional return (
); }; return (
{/* Header Block */}
La solución

Ventanas Kömmerling Qestylo

Tecnología alemana de perfil y el oficio de un instalador oficial en Valladolid. El producto manda, pero el resultado final lo define quien lo coloca en tu hogar.

Detalle macro del perfil de una ventana Kömmerling de altas prestaciones
{/* Tab Navigator */}
{tabs.map((tab) => ( ))}
{/* Tab Panels */}
{/* TAB 1: 7 CLAVES DE AISLAMIENTO */} {activeTab === 'claves' && (
{/* Left Column: Interactive SVG Profile Diagram */}
{/* Styled schematic profile path */} {/* Cajon persiana outline */} {/* Window outer frame profile (left and bottom) */} {/* Chambers dividers in frame */} {/* Sash profile (hoja) inside frame */} {/* Chambers dividers in sash */} {/* Steel reinforcement inside sash */} {/* Glass Unit (Double Glazing) extending from sash */} {/* Gaskets (juntas de goma) */} {/* Hotspot buttons */} {KEY_FACTORS.map((f) => ( setSelectedHotspot(f.id)} > {f.id} ))}
{/* Right Column: Hotspot Details */}
Clave {activeHotspotData.id} de 7

{activeHotspotData.title}

{activeHotspotData.subtitle}

{activeHotspotData.text}

* Qestylo ofrece la cobertura total de la Red Oficial Kömmerling en Valladolid.

)} {/* TAB 2: SISTEMAS KÖMMERLING */} {activeTab === 'sistemas' && (
{/* Category Filter */}
{/* Grid Layout */}
{filteredSystems.map((sys, idx) => (
setSelectedSystem(sys)} className="flex flex-col justify-between p-6 rounded-2xl bg-white/60 border border-surface/10 hover:border-amber/30 transition-all duration-300 group hover:translate-y-[-4px] cursor-pointer" style={{ boxShadow: '0 12px 30px -15px rgba(42,37,33,0.15)' }} >
{sys.image && (
{sys.name}
)}

{sys.name}

{sys.badge}

{sys.desc}

Ficha técnica
Profundidad: {sys.depth}
{sys.chambers}
))}
)} {/* TAB 3: FORMAS DE APERTURA */} {activeTab === 'aperturas' && (

Dependiendo del espacio de tu estancia y de tus necesidades de ventilación, Qestylo fabricará las ventanas con el tipo de apertura Kömmerling idóneo.

{APERTURES.map((ap, idx) => (
{renderApertureSVG(ap.svgType)}

{ap.name}

{ap.badge}

{ap.desc}

))}
)} {/* TAB 4: COMPROMISO GREENLINE® */} {activeTab === 'greenline' && (
{/* text and description */}
Sello Greenline® de Kömmerling

Respeto por el medio ambiente en cada perfil

Los perfiles de PVC Kömmerling están diseñados con el sello patentado Greenline®, que garantiza un balance ecológico ejemplar durante todo el ciclo de vida de la ventana. Este compromiso descansa sobre tres pilares fundamentales que protegen tu salud y tu planeta:

Formulación libre de metales pesados

Estabilizadores a base de calcio y zinc respetuosos con el entorno, descartando por completo el plomo o cadmio tradicionales de la carpintería antigua.

Material 100% reciclable

Todos los componentes plásticos de los perfiles Kömmerling pueden fundirse y reintroducirse en nuevos ciclos de extrusión sin menoscabo de sus propiedades de aislamiento y rigidez.

Reducción de huella de carbono y energía

El aislamiento térmico extremo de la ventana reduce la necesidad de consumo en climatización de la vivienda en hasta un 70%, ahorrando emisiones de CO2 a la atmósfera.

{/* Graphic Card representing Sello Greenline */}
Certificación Ecológica
greenline®
KÖMMERLING

Fórmula patentada que garantiza la durabilidad óptima del perfil ante climas severos, manteniendo la rigidez y color inalterados durante décadas.

100% Eco-Friendly Qestylo Valladolid
)}
{selectedSystem && ( setSelectedSystem(null)} onQuote={(sysName) => { setSelectedSystem(null); if (onSelectSystemForQuote) { onSelectSystemForQuote(sysName); } // smooth scroll to contact const c = document.getElementById('contacto'); if (c) window.scrollTo({ top: c.getBoundingClientRect().top + window.scrollY - 20, behavior: 'smooth' }); }} /> )}
); } // ---------------- Puertas component ---------------- const DOOR_KEY_FACTORS = [ { id: 1, title: 'Perfiles de máxima calidad', subtitle: 'Aislamiento termoacústico estructural', text: 'Los marcos, hojas y postes de las puertas Kömmerling cuentan con una elaborada geometría interna y múltiples cámaras de aire de gran espesor para retener el calor y silenciar ruidos molestos.', pos: { x: 26, y: 70 }, icon: 'archive' }, { id: 2, title: 'Herrajes de seguridad activa', subtitle: 'Resistencia contra intrusiones', text: 'Cerraduras multipunto avanzadas y bulones de seguridad antipalanca garantizan un bloqueo seguro frente a intrusiones, manteniendo la puerta completamente hermética al viento.', pos: { x: 74, y: 110 }, icon: 'lock' }, { id: 3, title: 'Diseños personalizables', subtitle: 'Estética adaptada a tu estilo', text: 'Crea tu puerta a medida eligiendo dimensiones, colores foliados, paneles decorativos macizos opacos o paneles acristalados de seguridad con acabados contemporáneos.', pos: { x: 50, y: 90 }, icon: 'settings' }, { id: 4, title: 'Refuerzo de acero zincado', subtitle: 'Estabilidad estructural inalterable', text: 'Un esqueleto de acero galvanizado de alta inercia recorre todo el interior del perfil. Evita deformaciones causadas por cambios de temperatura y garantiza un ajuste perfecto de por vida.', pos: { x: 30, y: 155 }, icon: 'shield' }, { id: 5, title: 'Eficiencia y drenaje inferior', subtitle: 'Adiós a las filtraciones de lluvia', text: 'Umbrales de aluminio con rotura de puente térmico y juntas de estanqueidad. Su pendiente interior está diseñada para una rápida evacuación del agua acumulada por temporales.', pos: { x: 50, y: 205 }, icon: 'droplets' } ]; const DOOR_SYSTEMS = [ { category: 'correderas', name: 'PremiSlide 76', badge: 'Estanqueidad Deslizante', depth: '76 mm', chambers: 'Junta de Compresión', desc: 'Sistema de corredera paralela hermética. La hoja se desplaza de forma lateral suave y se sella de forma frontal al cerrar, logrando el aislamiento de un sistema abatible.', image: 'assets/sistema-premislide-76-puerta.jpg', uf: '1,40 W/m²K', uw: 'desde 1,00 W/m²K', acoustic: 'hasta 43 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 50 mm', highlights: [ 'Cierre hermético por junta de compresión perimetral', 'Deslizamiento paralelo suave que ahorra espacio', 'Excelente resistencia al viento y lluvias castellanas' ] }, { category: 'correderas', name: 'PremiDoor 76', badge: 'Corredera Elevadora', depth: '76 mm', chambers: 'Elevación e Inercia', desc: 'El sistema definitivo para grandes luces. Permite fabricar hojas acristaladas monumentales de hasta 6.5 metros de ancho que deslizan suavemente con el mínimo esfuerzo.', image: 'assets/sistema-premiline-puerta.jpg', uf: '1,30 W/m²K', uw: 'desde 0,80 W/m²K', acoustic: 'hasta 44 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 50 mm', highlights: [ 'Hojas monumentales de hasta 6.5 metros de ancho', 'Deslizamiento por elevación sumamente suave', 'Paso libre sin barreras (umbral embutido accesible)' ] }, { category: 'correderas', name: 'PremiLine', badge: 'Línea Clásica', depth: 'Variable', chambers: 'Raíles Acero Inox', desc: 'Corredera tradicional y ligera. Deslizamiento fluido y silencioso con marcos estrechos. La mejor opción para optimizar el espacio útil en accesos estándar a balcones.', image: 'assets/sistema-premidoor-76.jpg', uf: '1,60 W/m²K', uw: 'desde 1,20 W/m²K', acoustic: 'hasta 40 dB', air: 'Clase 3', water: 'Clase 7A', wind: 'Clase C3', glass: 'hasta 28 mm', highlights: [ 'Rodamientos de acero inoxidable de alta suavidad', 'Perfilería esbelta que maximiza la entrada de luz', 'Excelente opción económica para balcones estándar' ] }, { category: 'balconeras', name: 'KÖMMERLING Xtrem 76', badge: 'Aislamiento Balcón', depth: '76 mm', chambers: 'Doble / Junta Central', desc: 'Puerta balconera practicable y oscilobatiente. Aúna el perfil reforzado con una junta de estanqueidad óptima para aislar eficazmente del frío y viento del invierno castellano.', image: 'assets/sistema-xtrem-76-balconera.jpg', uf: '1,10 W/m²K', uw: 'desde 0,76 W/m²K', acoustic: 'hasta 47 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Idóneo para accesos frecuentes a balcones o terrazas', 'Bisagras y cierres multipunto de gran resistencia', 'Máximo aislamiento acústico y térmico' ] }, { category: 'calle', name: 'KÖMMERLING Xtrem 76 Calle', badge: 'Acceso Entrada Principal', depth: '76 mm', chambers: 'Refuerzo de Alta Inercia', desc: 'Diseñada específicamente para portales y puertas principales. Admite cerraduras multipunto de seguridad, bisagras reforzadas y paneles macizos blindados decorativos.', image: 'assets/sistema-xtrem-76-calle.jpg', uf: '1,20 W/m²K', uw: 'desde 0,90 W/m²K', acoustic: 'hasta 45 dB', air: 'Clase 4 (Máxima)', water: 'Clase 9A', wind: 'Clase C5 (Máxima)', glass: 'hasta 48 mm', highlights: [ 'Refuerzos de acero de gran espesor soldados en esquinas', 'Cerraduras multipunto avanzadas de alta seguridad', 'Compatible con paneles ciegos blindados o vidrios de seguridad' ] }, { category: 'especiales', name: 'KÖMMERLING Xtrem 76 Especiales', badge: 'Diseño a Medida', depth: 'Variable', chambers: 'Estructuras Complejas', desc: 'Puertas pivotantes de gran formato o diseños con formas complejas y arcos. Fabricamos a medida adaptándonos al hueco de tu fachada.', image: 'assets/sistema-xtrem-76-especiales.jpg', uf: '1,20 W/m²K', uw: 'desde 0,90 W/m²K', acoustic: 'hasta 45 dB', air: 'Clase 4', water: 'Clase 9A', wind: 'Clase C5', glass: 'hasta 48 mm', highlights: [ 'Flexibilidad absoluta para formas arqueadas o trapezoidales', 'Estructuras pivotantes de gran formato contemporáneas', 'Ideal para rehabilitaciones singulares o de valor histórico' ] } ]; const DOOR_APERTURES = [ { name: 'Corredera Slide', badge: 'Corredera Hermética', desc: 'La hoja se desliza de forma paralela y ejerce presión frontal sobre las juntas perimetrales en la posición de cierre. Excelente aislamiento.', svgType: 'slide' }, { name: 'Corredera Tradicional', badge: 'Ahorro de Espacio', desc: 'Hojas paralelas deslizantes que no invaden espacio de la estancia. Práctica y funcional para pasos estrechos y zonas de comedor.', svgType: 'traditional' }, { name: 'Corredera Elevadora', badge: 'Formato Monumental', desc: 'Al girar la manilla, la hoja se eleva ligeramente sobre sus rodamientos deslizándose sin esfuerzo. Al cerrar, desciende sellando el hueco.', svgType: 'elevadora' }, { name: 'Osciloparalela', badge: 'Doble Apertura', desc: 'Se desplaza horizontalmente para abrir y se inclina en la parte superior para ventilar sin necesidad de abrir la puerta por completo.', svgType: 'oscilo' }, { name: 'Plegable en Acordeón', badge: 'Paso Libre Total', desc: 'Las hojas se pliegan unas sobre otras hacia un lateral. Permite conectar el salón con la terraza liberando todo el espacio de tránsito.', svgType: 'plegable' }, { name: 'Calle Practicable', badge: 'Entrada y Seguridad', desc: 'Apertura lateral tradicional hacia el interior o exterior con bisagras de alta resistencia y herraje perimetral multipunto anti-intrusión.', svgType: 'vertical' } ]; function Puertas({ onSelectSystemForQuote }) { const [activeTab, setActiveTab] = useState('claves'); const [selectedHotspot, setSelectedHotspot] = useState(1); const [systemFilter, setSystemFilter] = useState('correderas'); const [selectedSystem, setSelectedSystem] = useState(null); const tabs = [ { id: 'claves', label: '5 Claves de Seguridad', icon: 'key' }, { id: 'sistemas', label: 'Sistemas de Puertas', icon: 'layout-grid' }, { id: 'aperturas', label: 'Formas de Apertura', icon: 'door-open' } ]; const activeHotspotData = DOOR_KEY_FACTORS.find(f => f.id === selectedHotspot) || DOOR_KEY_FACTORS[0]; const filteredSystems = DOOR_SYSTEMS.filter(s => s.category === systemFilter); // Helper to render door opening types with 3D/2D animations const renderDoorApertureSVG = (type) => { const baseClass = "w-full h-24 text-amber/30 border border-white/5 bg-ink/30 rounded-lg p-4 flex items-center justify-center transition-all duration-300 group-hover:bg-amber/5 group-hover:border-white/10"; if (type === 'slide') { return (
); } if (type === 'traditional') { return (
); } if (type === 'elevadora') { return (
); } if (type === 'oscilo') { return (
); } if (type === 'plegable') { return (
); } // standard / vertical street door return (
); }; return (
{/* Header Block */}
Puertas

Puertas de PVC Kömmerling: Seguridad y Elegancia

Desde las más sofisticadas correderas elevadoras para terraza hasta puertas de calle que proporcionan aislamiento térmico y gran seguridad. Personaliza dimensiones, paneles y tiradores.

Detalle del perfil y bisagra de una puerta Kömmerling
{/* Tab Navigator */}
{tabs.map((tab) => ( ))}
{/* Tab Panels */}
{/* TAB 1: 5 CLAVES DE PUERTAS */} {activeTab === 'claves' && (
{/* Left Column: Interactive Door Profile Diagram */}
{/* Modern Entrance Door Schematic */} {/* Glass upper panels */} {/* Lower decor panel */} {/* Handles and locks */} {/* Hotspot buttons */} {DOOR_KEY_FACTORS.map((f) => ( setSelectedHotspot(f.id)} > {f.id} ))}
{/* Right Column: Hotspot Details */}
Clave {activeHotspotData.id} de 5

{activeHotspotData.title}

{activeHotspotData.subtitle}

{activeHotspotData.text}

* Fabricación local con herraje de seguridad homologado y la garantía de Qestylo.

)} {/* TAB 2: SISTEMAS DE PUERTAS */} {activeTab === 'sistemas' && (
{/* Category Filter */}
{['correderas', 'balconeras', 'calle', 'especiales'].map((cat) => ( ))}
{/* Grid Layout */}
{filteredSystems.map((sys, idx) => (
setSelectedSystem(sys)} className="flex flex-col justify-between p-6 rounded-2xl bg-surface/40 border border-white/10 hover:border-amber/30 transition-all duration-300 group hover:translate-y-[-4px] cursor-pointer" >
{sys.image && (
{sys.name}
)}

{sys.name}

{sys.badge}

{sys.desc}

Ficha técnica
Profundidad: {sys.depth}
{sys.chambers}
))}
)} {/* TAB 3: APERTURAS */} {activeTab === 'aperturas' && (

Ofrecemos múltiples mecanismos de apertura para dar respuesta a tu arquitectura: desde hojas correderas elevadoras hasta puertas plegables o practicables de gran resistencia.

{DOOR_APERTURES.map((ap, idx) => (
{renderDoorApertureSVG(ap.svgType)}

{ap.name}

{ap.badge}

{ap.desc}

))}
)}
{selectedSystem && ( setSelectedSystem(null)} onQuote={(sysName) => { setSelectedSystem(null); if (onSelectSystemForQuote) { onSelectSystemForQuote(sysName); } // smooth scroll to contact const c = document.getElementById('contacto'); if (c) window.scrollTo({ top: c.getBoundingClientRect().top + window.scrollY - 20, behavior: 'smooth' }); }} /> )}
); } // ---------------- Persianas component ---------------- const PERSIANA_KEY_FACTORS = [ { id: 1, title: 'Cajón de PVC RolaPlus', subtitle: 'Hermeticidad y resistencia estructural', text: 'Extruido con el mismo PVC de altas prestaciones de Kömmerling. Su diseño multicámara ofrece una excelente rigidez y resistencia al impacto, garantizando que el cajón no se deforme con los años.', pos: { x: 22, y: 12 }, icon: 'archive' }, { id: 2, title: 'Aislamiento de Neopor interior', subtitle: 'Cero puentes térmicos y acústicos', text: 'Un bloque de poliestireno preformado de alta densidad (Neopor) recubre el interior del cajón. Evita que el frío de Valladolid se filtre y mitiga de forma drástica el ruido exterior.', pos: { x: 40, y: 16 }, icon: 'thermometer-sun' }, { id: 3, title: 'Eje y rodamientos de alta calidad', subtitle: 'Desplazamiento suave y duradero', text: 'Un eje metálico de alta resistencia sobre soportes de suave rodamiento facilita la subida y bajada de la persiana sin esfuerzos, reduciendo el desgaste y preparado para motores Könect.', pos: { x: 50, y: 23 }, icon: 'settings' }, { id: 4, title: 'Juntas de estanqueidad perimetral', subtitle: 'Adiós a las corrientes de aire', text: 'Juntas de goma coextruidas y cepillos de guiado bloquean el paso del viento y las corrientes de aire, al mismo tiempo que evitan el traqueteo de las lamas en días de tormenta.', pos: { x: 22, y: 42 }, icon: 'wind' }, { id: 5, title: 'Lamas aislantes (aluminio/PVC)', subtitle: 'Control solar y privacidad total', text: 'Las lamas del paño (de aluminio perfilado con inyección de poliuretano de alta densidad o de PVC multicámara) frenan la radiación solar directa y aíslan el cristal del clima exterior.', pos: { x: 34, y: 65 }, icon: 'layers' } ]; const PERSIANA_SYSTEMS = [ { name: 'Sistema RolaPlus', badge: 'Cajón de Altas Prestaciones', desc: 'El único cajón de persiana recomendado por Kömmerling. Gracias a su perfilería multicámara y sus exclusivas juntas de estanqueidad perimetral soldadas, mantiene los niveles de aislamiento térmico y acústico de tu ventana sin pérdidas.', bulletTitle: 'Aislamiento Térmico y Acústico', bulletText: 'Evita puentes térmicos y filtraciones de aire. Idóneo para reformas pasivas.', icon: 'archive', image: 'assets/sistema-rolaplus.jpg', thermal: 'Usb = 0,78 W/m²K', acoustic: 'hasta 40 dB', air: 'Clase 4 (Máxima)', water: 'Total (100% estanco)', insulation: 'Neopor de alta densidad integrado', highlights: [ 'Eliminación total del puente térmico superior de la ventana', 'Juntas de estanqueidad soldadas en las esquinas del cajón', 'Atenuación del ruido exterior en hasta 40 dB' ] }, { name: 'Persianas VariNova', badge: 'Versatilidad y Mosquitera', desc: 'Un cajón de persiana de última generación y diseño compacto que se integra perfectamente con cualquier tipo de ventana. Admite la instalación opcional de mosquitera enrollable en el interior del propio cajón.', bulletTitle: 'Mosquitera Integrada Opcional', bulletText: 'Protección eficiente y limpia contra insectos sin invadir espacio exterior.', icon: 'settings', image: 'assets/sistema-varinova.jpg', thermal: 'Usb = 0,85 W/m²K', acoustic: 'hasta 38 dB', air: 'Clase 4 (Máxima)', water: 'Total (100% estanco)', insulation: 'Poliuretano / Neopor de alta densidad', highlights: [ 'Cajón compacto con mosquitera enrollable oculta opcional', 'Acceso de registro interior sencillo para mantenimiento', 'Perfilería exterior enrasable con el marco de la ventana' ] }, { name: 'Könect (Protección solar domotizada)', badge: 'Motorización Inteligente', desc: 'Soluciones de automatización integradas. Automatiza la subida y bajada de persianas RolaPlus y VariNova mediante sensores solares, mandos a distancia o tu asistente de hogar inteligente, mejorando la eficiencia energética.', bulletTitle: 'Eficiencia Solar Inteligente', bulletText: 'Las persianas se cierran automáticamente cuando el sol incide con fuerza para evitar sobrecalentamiento.', icon: 'cpu', image: 'assets/sistema-konect.png', thermal: 'Mejora un 20% la eficiencia de la ventana', acoustic: 'Cierre hermético programado', air: 'Sin accionamiento por cinta (menor fuga)', water: 'Estanqueidad máxima', insulation: 'Integrable en cajones RolaPlus / VariNova', highlights: [ 'Motores silenciosos vía radio o cable', 'Cierre y apertura automatizados según radiación solar', 'Control por voz con Google Home, Alexa o Apple HomeKit' ] } ]; const CONTRAVENTANA_SYSTEMS = [ { category: 'exterior', name: 'Contraventanas Exteriores (Sistema Líder)', badge: 'Oscurecimiento y Estilo', desc: 'La barrera exterior por excelencia. Fabricadas en PVC de alta resistencia con lamas fijas o móviles regulables. Aportan una excelente atenuación del ruido, oscurecimiento y un toque de personalidad rústica o tradicional a las fachadas.', details: 'Permite regular las lamas para controlar la entrada de luz y ventilación, protegiendo los cristales de tormentas.', icon: 'shield-alert', image: 'assets/detalle-persiana.jpg', thermal: 'Cámara de aire intermedia aislante', acoustic: 'Protección acústica de la fachada', air: 'Resistencia al viento Clase 6 (Máxima)', water: 'Protección directa de los cristales', insulation: 'Lamas de PVC greenline® reforzadas', highlights: [ 'Lamas fijas u orientables para regular luz y aire', 'Herrajes de seguridad con alta resistencia a tormentas', 'Aspecto tradicional rústico sin costes de mantenimiento' ] }, { category: 'interior', name: 'Sistema Frailero (Contraventana Interior)', badge: 'Tradicional y Rústico', desc: 'Se instala de forma interna adosado a la hoja de la ventana. Es un clásico que se adapta al espacio de tu hogar y mejora sensiblemente las prestaciones térmicas del cerramiento al crear un colchón de aire cerrado.', details: 'Proporciona oscurecimiento absoluto en dormitorios sin necesidad de instalar cajón de persiana exterior.', icon: 'key-round', image: 'assets/detalle-perfil.png', thermal: 'Cámara de aire estanca interior', acoustic: 'Aislamiento de dormitorios superior', air: 'Hermético al paso de luz', water: 'Protección interior contra luz solar', insulation: 'Panel de PVC macizo machihembrado', highlights: [ 'Oscurecimiento total en dormitorios sin persiana exterior', 'Especialmente recomendado para cascos históricos protegidos', 'Añade un aislamiento térmico y acústico adicional' ] } ]; function PersianaDetailModal({ system, onClose, onQuote }) { if (!system) return null; // Prevent scroll on body when open and close on ESC useEffect(() => { document.body.style.overflow = 'hidden'; const handleKeyDown = (e) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', handleKeyDown); return () => { document.body.style.overflow = ''; window.removeEventListener('keydown', handleKeyDown); }; }, [onClose]); return ReactDOM.createPortal(
{/* Modal Box */}
e.stopPropagation()} style={{ boxShadow: '0 0 35px 2px rgba(233, 122, 56, 0.15), 0 0 70px 5px rgba(233, 122, 56, 0.08), 0 25px 50px -12px rgba(0, 0, 0, 0.5)' }} > {/* Close button */} {/* Left Column: Image & Badges */}
{system.image ? ( {system.name} ) : (
)} {/* Dark gradient overlay */}
{/* Label Content */}
{system.badge || 'Protección Solar'}

{system.name}

{system.category === 'interior' ? 'Contraventana Interior Kömmerling' : system.category === 'exterior' ? 'Contraventana Exterior Kömmerling' : 'Persiana Kömmerling'}

{/* Right Column: Tech Specs & Specs Grid */}

Descripción General

{system.desc}

{/* Technical Specifications list */}

Ficha Técnica

Aislamiento Térmico {system.thermal}
Aislamiento Acústico {system.acoustic}
Permeabilidad Aire {system.air}
Estanqueidad Agua {system.water}
Material / Lamas {system.insulation}
{/* Highlights List */} {system.highlights && system.highlights.length > 0 && (

Puntos Destacados

    {system.highlights.map((hl, i) => (
  • {hl}
  • ))}
)}
{/* Action Button */}
, document.body ); } function Persianas({ onSelectSystemForQuote }) { const [activeTab, setActiveTab] = useState('claves'); const [selectedHotspot, setSelectedHotspot] = useState(1); const [contraFilter, setContraFilter] = useState('exterior'); const [selectedSystem, setSelectedSystem] = useState(null); const tabs = [ { id: 'claves', label: '5 Claves del Cajón RolaPlus', icon: 'key' }, { id: 'modelos', label: 'Modelos de Persianas', icon: 'image' }, { id: 'funcionamiento', label: 'Funcionamiento y Apertura', icon: 'archive' }, { id: 'contraventanas', label: 'Contraventanas', icon: 'shield-alert' } ]; const activeHotspotData = PERSIANA_KEY_FACTORS.find(f => f.id === selectedHotspot) || PERSIANA_KEY_FACTORS[0]; // Helper to render systems with dynamic SVG animations const renderPersianaSystemSVG = (name) => { const baseClass = "w-full h-24 text-amber/30 border border-surface/10 bg-white/40 rounded-lg p-3 flex items-center justify-center transition-all duration-300 group-hover:bg-amber/5 group-hover:border-amber/20 mb-4"; if (name.includes('RolaPlus')) { return (
{/* Box */} {/* Guide rails */} {/* Slats rolling up on hover */}
); } if (name.includes('VariNova')) { return (
{/* Box */} {/* Mosquitera (mesh) pulling down */} {/* Slats rolling up */}
); } // Könect (Motorized + Smart pulse) return (
{/* wifi pulse */} {/* Automatic slats roll */}
); }; return (
{/* Header Block */}
Persianas y Contraventanas

Persianas y Contraventanas Kömmerling

Protege tu vivienda de la radiación solar y el clima adverso, atenuando el ruido y mejorando el aislamiento total. Cajones de persiana estancos y contraventanas tradicionales.

Detalle del cajón de persiana RolaPlus de Kömmerling
{/* Tab Navigator */}
{tabs.map((tab) => ( ))}
{/* Tab Panels */}
{/* TAB 1: 5 CLAVES DE PERSIANAS */} {activeTab === 'claves' && (
{/* Left Column: Interactive Roller Shutter Profile Diagram */}
{/* Shutter box (cajón de persiana) outline */} {/* Internal insulation block (Neopor) */} {/* Roller axle (Eje metálico) */} {/* Rolled up slats (Lamas enrolladas) */} {/* Slats descending (Lamas bajando) */} {/* Guide track / Carril guía */} {/* Window Frame below the box */} {/* Hotspot buttons */} {PERSIANA_KEY_FACTORS.map((f) => ( setSelectedHotspot(f.id)} > {f.id} ))}
{/* Right Column: Hotspot Details */}
Clave {activeHotspotData.id} de 5

{activeHotspotData.title}

{activeHotspotData.subtitle}

{activeHotspotData.text}

* Sistema RolaPlus oficial Kömmerling, instalado con las máximas garantías de estanqueidad.

)} {/* TAB 2: MODELOS DE PERSIANAS */} {activeTab === 'modelos' && (
{PERSIANA_SYSTEMS.map((sys, idx) => (
setSelectedSystem(sys)} className="flex flex-col justify-between p-6 rounded-2xl bg-white/60 border border-surface/10 hover:border-amber/30 transition-all duration-300 group hover:translate-y-[-4px] cursor-pointer" style={{ boxShadow: '0 12px 30px -15px rgba(42,37,33,0.1)' }} >
{sys.image && (
{sys.name}
)}

{sys.name}

{sys.badge}

{sys.desc}

Ficha técnica
{sys.bulletTitle}

{sys.bulletText}

))}
)} {/* TAB 3: FUNCIONAMIENTO Y APERTURA */} {activeTab === 'funcionamiento' && (
{PERSIANA_SYSTEMS.map((sys, idx) => (
{renderPersianaSystemSVG(sys.name)}

{sys.name}

{sys.badge}

{sys.desc}

{sys.bulletTitle}

{sys.bulletText}

))}
)} {/* TAB 3: CONTRAVENTANAS */} {activeTab === 'contraventanas' && (
{/* Filter */}
{/* Grid content */}
{CONTRAVENTANA_SYSTEMS.filter(s => s.category === contraFilter).map((sys, idx) => (
setSelectedSystem(sys)} className="grid md:grid-cols-2 gap-10 items-center p-8 rounded-2xl bg-white/60 border border-surface/10 cursor-pointer group hover:translate-y-[-2px] transition-all duration-300" style={{ boxShadow: '0 20px 40px -25px rgba(42,37,33,0.1)' }} >

{sys.name}

{sys.desc}

{sys.details}
Ficha técnica
{/* SVG detail illustration */}
{contraFilter === 'exterior' ? ( {/* Frame */} {/* Left shutter leaf */} {/* Right shutter leaf */} ) : ( {/* Frame */} {/* Left inner leaf */} {/* Right inner leaf */} )}
))}
)}
{selectedSystem && ( setSelectedSystem(null)} onQuote={(sysName) => { setSelectedSystem(null); if (onSelectSystemForQuote) { onSelectSystemForQuote(sysName); } // smooth scroll to contact const c = document.getElementById('contacto'); if (c) window.scrollTo({ top: c.getBoundingClientRect().top + window.scrollY - 20, behavior: 'smooth' }); }} /> )}
); } // ---------------- 6 · CÓMO FUNCIONA ---------------- const STEPS = [ { n: '01', icon: 'message-square', title: 'Asesoramiento Técnico', text: 'Analizamos las necesidades acústicas y térmicas de tu zona en Valladolid (orientación solar, ruido de tráfico, etc.) para aconsejarte los sistemas óptimos.' }, { n: '02', icon: 'ruler', title: 'Medición Digital', text: 'Visitamos tu hogar sin compromiso para realizar una toma de medidas láser exacta y estudiar el premarco o estado de las cajas de persiana antiguas.' }, { n: '03', icon: 'file-text', title: 'Presupuesto Cerrado', text: 'Elaboramos una propuesta técnica por escrito, con desglose transparente de perfiles Kömmerling, vidrios y herrajes. Precio final garantizado sin sorpresas.' }, { n: '04', icon: 'hammer', title: 'Instalación Oficial Red CAES', text: 'Nuestro equipo de instaladores oficiales realiza el montaje rápido y limpio. Aplicamos espumas elásticas de poliuretano y sellado estanco termoacústico.' }, { n: '05', icon: 'recycle', title: 'Gestión de Residuos', text: 'Desmontamos las ventanas antiguas y las transportamos a plantas autorizadas para el reciclaje de aluminio, madera y PVC, cuidando de la economía circular.' }, { n: '06', icon: 'shield-check', title: 'Garantía Post-Venta Oficial', text: 'Activamos la cobertura de la marca Kömmerling (Red Oficial CAES) de Qestylo. Mantenemos asistencia directa para cualquier ajuste técnico posterior.' } ]; function ComoFunciona() { return (
Cómo funciona

Tu camino hacia un hogar mejor aislado

De tu primera consulta al servicio post-venta. Nos encargamos de todo el proceso de forma profesional y llave en mano.

{STEPS.map((s, i) => (
{s.n}

{s.title}

{s.text}

))}
); } // ---------------- 7 · CREDENCIALES ---------------- const SEALS = [ { label: 'Distribuidor Oficial Kömmerling', icon: 'star', primary: true }, { label: '+25 años en reformas', icon: 'calendar' }, { label: 'Tienda física en Valladolid', icon: 'store' }, { label: 'Instaladores homologados', icon: 'user-check' }, { label: 'Garantía oficial Kömmerling', icon: 'shield-check', primary: true }, { label: 'Presupuesto a medida gratuito', icon: 'file-text' }, { label: 'Financiación a tu medida', icon: 'credit-card' }, { label: 'Ahorro energético garantizado', icon: 'leaf' }, ]; function LiveCounterCard() { const [count, setCount] = useState(324); const [hasAnimated, setHasAnimated] = useState(false); const cardRef = useRef(null); // Animate count-up when in view useEffect(() => { const el = cardRef.current; if (!el) return; const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting && !hasAnimated) { setHasAnimated(true); let start = 295; const end = 324; const duration = 1800; // 1.8 seconds const stepTime = Math.abs(Math.floor(duration / (end - start))); const timer = setInterval(() => { start += 1; setCount(start); if (start >= end) { clearInterval(timer); } }, stepTime); } }); }, { threshold: 0.1 } ); observer.observe(el); return () => observer.disconnect(); }, [hasAnimated]); // Live ticker increment: add 1 reform every 3 minutes useEffect(() => { if (!hasAnimated) return; const interval = setInterval(() => { setCount((prev) => prev + 1); }, 180000); return () => clearInterval(interval); }, [hasAnimated]); // Format number with dots (e.g. 324) const formatNumber = (num) => { return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "."); }; return (
{/* Background glow */}
{/* Live indicator header */}
Estadísticas en vivo
CONEXIÓN ACTIVA
{/* Counter Number */}
{formatNumber(count)}

Reformas realizadas en Valladolid

Nuestra fábrica local no para. Cada reforma representa aislamiento acústico de primer nivel, ahorro en calefacción y una familia satisfecha en la provincia.

{/* Sparkline Graph */}
Crecimiento de obras +14% este mes
{/* SVG Sparkline Graph */}
{/* Filled area */} {/* Line */} {/* Endpoint dot */}
); } function Credenciales() { return (
{/* Left Column: Title, Seals & Note */}
Confianza

Por qué confiar la obra a Qestylo

{SEALS.map((s, i) => (
{s.label}
))}

La instalación a través de la Red Oficial Kömmerling cuenta con la cobertura adicional de la marca y la garantía directa de Qestylo.

{/* Right Column: Live Counter Card */}
); } // ---------------- 8 · OPINIONES ---------------- const ALL_REVIEWS = [ { name: 'Marta V', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjXk3px_0TdDJJjAkwKjBZZimW1jPraF-Nrfyx8lYIMXH_YfD3Ad=w45-h45-p-rp-mo-br100', info: '2 reseñas', date: 'Hace un año', quote: 'Javier es un gran profesional rodeado de grandes profesionales. Hicimos una reforma integral de nuestra casa y podemos recomendar esta empresa porque con nosotros fue todo muy bien. Fueron serios y cumplidores.', reply: 'Muchas Gracias de parte de todo nuestro equipo sois encantadores ❤️' }, { name: 'Mario De Frutos', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjVvWIFXCSBKpF9sZz_SnLfYQ32s65E0ZnH9IszQdag9gyml7zc=w45-h45-p-rp-mo-ba12-br100', info: 'Local Guide · 17 reseñas', date: 'Hace 11 meses', quote: 'Nosotros estamos muy contentos con todo el proceso. No tuvimos ningún problema y la comunicación fue siempre súper fluida.', reply: 'Mario sois encantadores muchísimas gracias por vuestra palabras nos llenan de felicidad . Gracias' }, { name: 'Ana García', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjXOwggxJ784E4pMG13QzlrBSKb02xCo63EQ6wkfJwe54DnBIbo=w45-h45-p-rp-mo-br100', info: '3 reseñas · 12 fotos', date: 'Hace un año', quote: 'Estoy IN LOVE con mi nuevo espacio en casa es súper práctico a la hora de comer y disfrutar de mi salón-cocina ❤️🙌🙌', reply: 'Ana disfrutarlo mucho os lo merecéis 😘😘. Nos vemos pronto y muchas Gracias …' }, { name: 'Estela Cavia', avatar: 'https://lh3.googleusercontent.com/a/ACg8ocKAojFt6Dk2PRS73eer0ycGGbweTYaTWyrAqgScHCfnelwPIKqa=w45-h45-p-rp-mo-ba12-br100', info: 'Local Guide · 11 reseñas', date: 'Hace un año', quote: 'Excelente experiencia de reforma. Grandes profesionales, muy recomendados por su calidad, rapidez y trato cercano.', reply: 'Muchísimas gracias por tus reseñas' }, { name: 'Laura Merideño', avatar: 'https://lh3.googleusercontent.com/a/ACg8ocIFzN357u7oMsM5ognCxaJ5GrLU-VMjsQDUPgGblsqfsKnprg=w45-h45-p-rp-mo-br100', info: '4 reseñas', date: 'Hace un año', quote: 'Recomendable 100%. Trabajo rápido, limpio y un equipo de profesionales inmejorable en Valladolid.', reply: 'Muchas Gracias ☺️' }, { name: 'Silvia Dittami', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjWnmyqttLDQKBYutJ65YnmjhHujPM7wlggpJ8Dd8gcgFqB34RZp=w45-h45-p-rp-mo-br100', info: '10 reseñas', date: 'Hace un año', quote: 'Un gran equipo de trabajo en Valladolid. Seriedad, puntualidad y unos acabados de ventanas de primera clase.', reply: 'Muchas Gracias' }, { name: 'Daniel One', avatar: 'https://lh3.googleusercontent.com/a/ACg8ocKOdyQjXyCg8YgfusYpI2sWSt3Dx1KKPP87iYLyYMPY2rQnfg=w45-h45-p-rp-mo-br100', info: '6 reseñas · 7 fotos', date: 'Hace un año', quote: 'Muy profesionales en todo el proceso de medición, asesoramiento e instalación de nuestras ventanas Kömmerling.', reply: 'Muchas Gracias' }, { name: 'María Jesús Redondo', avatar: 'https://lh3.googleusercontent.com/a/ACg8ocJjOI2Vj-fhhlPHr3zDLCNemWZ4hpgpYCoLyJBqyTTL2wJzyA=w45-h45-p-rp-mo-br100', info: '7 reseñas', date: 'Hace un año', quote: 'Encantados con la reforma. La casa está mucho mejor aislada y el ruido exterior ha desaparecido por completo.', reply: 'Muchas Gracias disfrutarlo mucho .' }, { name: 'Ambar Sanz', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjV-CIW4AmGCBGYd9t9TIyd4FFzUhRSCFTEHEKS_zMk75k7YimrN=w45-h45-p-rp-mo-ba12-br100', info: 'Local Guide · 9 reseñas', date: 'Hace 2 años', quote: 'Una atención fantástica. Se nota la diferencia de calidad del perfil y la profesionalidad del instalador.', reply: '¡Muchísimas gracias por confiar en nosotros!' }, { name: 'Cristina Pascual', avatar: 'https://lh3.googleusercontent.com/a-/ALV-UjVBSkiVUY5HfWgbwaFhCpsWOL1Mqfg2A7n3cvxy8HJjxQ-zvCNi=w45-h45-p-rp-mo-ba12-br100', info: 'Local Guide · 77 reseñas', date: 'Hace 2 años', quote: 'Grandes profesionales en Valladolid. Excelente asesoramiento, rápidos, limpios y muy detallistas con el remate.', reply: 'Muchas Gracias Cristina x tu reseña' }, { name: 'Julio Poncela', avatar: 'https://ui-avatars.com/api/?name=Julio+Poncela&background=1877F2&color=fff', info: 'Recomendación en Facebook', date: '22 de julio de 2022', quote: 'Excelencia en reformas, estilo, servicio y calidad', platform: 'facebook' }, { name: 'Jacqueline Fernandez Casado', avatar: 'https://ui-avatars.com/api/?name=Jacqueline+Fernandez+Casado&background=1877F2&color=fff', info: 'Recomendación en Facebook', date: '23 de abril de 2018', quote: 'Solo he visto las fotos de la página, pero es increíble como transforman ruinas en unas estancias maravillosas.Mucho exito', platform: 'facebook' }, { name: 'Roberto San José', avatar: 'https://ui-avatars.com/api/?name=Roberto+San+Jose&background=34A853&color=fff', info: 'Local Guide · 15 reseñas', date: 'Hace 4 meses', quote: 'Cambiamos las ventanas de toda la casa por el sistema Xtrem de Kömmerling y es la mejor inversión que hemos hecho. El aislamiento acústico es espectacular, ya no escuchamos el tráfico de la avenida. El equipo de instalación fue muy profesional, rápido y dejaron todo impecable.', platform: 'google', reply: 'Muchas gracias Roberto por confiar en nosotros, nos alegra saber que disfrutáis del silencio en vuestro hogar. ¡Un saludo!' }, { name: 'Elena M. Alonso', avatar: 'https://ui-avatars.com/api/?name=Elena+M.+Alonso&background=EA4335&color=fff', info: '3 reseñas', date: 'Hace 6 meses', quote: 'Muy contentos con el trabajo de Qestylo. Pedimos presupuesto y al día siguiente vino Javier a medir. En menos de tres semanas ya estaban instaladas las nuevas ventanas oscilobatientes. Limpios, rápidos y con unos remates perfectos.', platform: 'google', reply: 'Gracias Elena por tus amables palabras, fue un placer trabajar en tu reforma.' }, { name: 'Carlos Tejedor', avatar: 'https://ui-avatars.com/api/?name=Carlos+Tejedor&background=1877F2&color=fff', info: 'Recomendación en Facebook', date: '14 de octubre de 2023', quote: 'Excelente atención en la tienda física de Valladolid. Nos explicaron genial las diferencias entre perfiles y nos decidimos por el sistema AluNext. Las ventanas han quedado de revista y la casa se calienta mucho más rápido. 100% recomendados.', platform: 'facebook' }, { name: 'Begoña Herrero', avatar: 'https://ui-avatars.com/api/?name=Begona+Herrero&background=1877F2&color=fff', info: 'Recomendación en Facebook', date: '5 de enero de 2024', quote: 'Una reforma integral de diez. Se encargaron de todo con su servicio llave en mano y no tuvimos que preocuparnos de nada. Las ventanas Kömmerling son una maravilla y la atención del equipo insuperable. Cumplieron plazos al pie de la letra.', platform: 'facebook' }, { name: 'sofia_decorhome', avatar: 'https://ui-avatars.com/api/?name=Sofia+Decorhome&background=E1306C&color=fff', info: 'Comentario en Instagram', date: 'Hace 3 semanas', quote: 'Encantada con la instalación de las hojas ocultas 76MD Zero. El perfil es super fino y la cantidad de luz que entra ahora en el salón es increíble. Un acierto total confiar el diseño de mis ventanas a Qestylo.', platform: 'instagram' }, { name: 'david_vll', avatar: 'https://ui-avatars.com/api/?name=David+VLL&background=E1306C&color=fff', info: 'Comentario en Instagram', date: 'Hace 2 meses', quote: 'Gran trabajo del equipo de montaje de Qestylo Valladolid. Cero ruidos, cero corrientes de aire en invierno y las facturas de gas lo han notado un montón. Recomendables por su cercanía y profesionalidad.', platform: 'instagram' } ]; function Opiniones() { const [activeIndex, setActiveIndex] = useState(0); const [windowWidth, setWindowWidth] = useState(typeof window !== 'undefined' ? window.innerWidth : 1024); const trackRef = useRef(null); const isDraggingRef = useRef(false); const startXRef = useRef(0); const dragXRef = useRef(0); useEffect(() => { const handleResize = () => setWindowWidth(window.innerWidth); window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); const N = ALL_REVIEWS.length; const isMobile = windowWidth < 768; const W = isMobile ? Math.min(windowWidth - 64, 320) : 360; const gap = isMobile ? 12 : 24; const offsetX = - (activeIndex * (W + gap) + W / 2); const handleStart = (clientX) => { isDraggingRef.current = true; startXRef.current = clientX; dragXRef.current = 0; if (trackRef.current) { trackRef.current.style.transition = 'none'; } }; const handleMove = (clientX) => { if (!isDraggingRef.current) return; const dx = clientX - startXRef.current; dragXRef.current = dx; if (trackRef.current) { trackRef.current.style.transform = `translateX(${offsetX + dx}px)`; } }; const handleEnd = () => { if (!isDraggingRef.current) return; isDraggingRef.current = false; const threshold = (W + gap) * 0.2; let nextIndex = activeIndex; const dx = dragXRef.current; if (dx < -threshold) { nextIndex = Math.min(activeIndex + 1, N - 1); } else if (dx > threshold) { nextIndex = Math.max(activeIndex - 1, 0); } if (trackRef.current) { trackRef.current.style.transition = 'transform 0.6s cubic-bezier(0.16, 1, 0.3, 1)'; const nextOffsetX = - (nextIndex * (W + gap) + W / 2); trackRef.current.style.transform = `translateX(${nextOffsetX}px)`; } setActiveIndex(nextIndex); }; const trackStyle = { display: 'flex', gap: `${gap}px`, position: 'absolute', left: '50%', transform: `translateX(${offsetX}px)`, transformStyle: isMobile ? 'flat' : 'preserve-3d', transition: 'transform 0.6s cubic-bezier(0.16, 1, 0.3, 1)', }; return (
Opiniones

Nuestros clientes opinan en Google, Facebook e Instagram

4.9
{[...Array(5)].map((_, i) => ( ))}
Excelente en Google Maps

Arrastra para deslizar o usa las flechas para ver las valoraciones

{/* CAROUSEL VIEWPORT */}
handleStart(e.clientX)} onMouseMove={(e) => handleMove(e.clientX)} onMouseUp={handleEnd} onMouseLeave={handleEnd} onTouchStart={(e) => handleStart(e.touches[0].clientX)} onTouchMove={(e) => handleMove(e.touches[0].clientX)} onTouchEnd={handleEnd} > {/* Left/Right fading gradient mask */}
{/* Slider Container */}
{ALL_REVIEWS.map((r, i) => { const isActive = i === activeIndex; const distFromActive = i - activeIndex; const isNeighbor = Math.abs(distFromActive) === 1; const isVisible = isActive || isNeighbor; // Folding triptych screen transformation logic let transform = ''; if (isMobile) { if (isActive) { transform = 'scale(1) translate3d(0, 0, 0)'; } else if (distFromActive === -1) { transform = 'scale(0.9) translate3d(8px, 0, 0)'; } else if (distFromActive === 1) { transform = 'scale(0.9) translate3d(-8px, 0, 0)'; } else { transform = 'scale(0.8) translate3d(0, 0, 0)'; } } else { if (isActive) { transform = 'scale(1.05) rotateY(0deg) translate3d(0, 0, 0)'; } else if (distFromActive === -1) { transform = 'scale(0.9) rotateY(24deg) translate3d(12px, 0, -50px)'; } else if (distFromActive === 1) { transform = 'scale(0.9) rotateY(-24deg) translate3d(-12px, 0, -50px)'; } else { transform = 'scale(0.9) translate3d(0, 0, -50px)'; } } return (
{/* CARD CONTENT */}
{/* Header */}
{r.name}
{r.name}
{r.info}
{r.date}
{/* Stars or Platform Recommendation Badge */} {r.platform === 'facebook' ? (
Recomienda Qe Stylo
) : r.platform === 'instagram' ? (
Mención en Instagram
) : (
{[...Array(5)].map((_, idx) => ( ))}
)} {/* Quote */}
“{r.quote}”
{/* Reply or verified badge */} {r.reply ? (
Qestylo Propietario

"{r.reply}"

) : (
{r.platform === 'facebook' ? ( Recomendación en Facebook ) : r.platform === 'instagram' ? ( Comentario en Instagram ) : ( Reseña verificada de Google )}
)}
); })}
{/* Navigation Arrows */}
{/* Pagination & Mobile Inline Arrows */}
{ALL_REVIEWS.map((_, i) => { const isDotActive = i === activeIndex; return (
); } Object.assign(window, { goContacto, Navbar, Hero, Problema, Solucion, Puertas, Persianas, ComoFunciona, Credenciales, Opiniones, Eyebrow, });