{"id":22,"date":"2026-03-23T19:40:10","date_gmt":"2026-03-23T19:40:10","guid":{"rendered":"https:\/\/aserraderoleira.com.uy\/?page_id=22"},"modified":"2026-05-08T21:03:32","modified_gmt":"2026-05-08T21:03:32","slug":"galeria","status":"publish","type":"page","link":"https:\/\/aserraderoleira.com.uy\/index.php\/galeria\/","title":{"rendered":"Galeria"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Proyectos Realizados \u2014 Aserradero Leira<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600&#038;family=Lato:wght@300;400;700&#038;display=swap\" rel=\"stylesheet\">\n<style>\n* { box-sizing: border-box; margin: 0; padding: 0; }\n.pj-hero { position: relative; width: 100%; min-height: 68vh; background: #111010; display: flex; align-items: flex-end; overflow: hidden; }\n.pj-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; filter: brightness(0.32) saturate(0.65) sepia(0.3); }\n.pj-hero-grad { position: absolute; inset: 0; background: linear-gradient(to top, #111010 0%, rgba(17,16,16,0.6) 45%, rgba(17,16,16,0.15) 100%); }\n.pj-hero::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(173deg, transparent 0, transparent 28px, rgba(196,137,58,0.035) 28px, rgba(196,137,58,0.035) 29px); pointer-events: none; z-index: 1; }\n.pj-hero-topbar { position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #111010 0%, #111010 25%, #C4893A 25%, #C4893A 50%, #8B5A2B 50%, #8B5A2B 75%, #111010 75%, #111010 100%); z-index: 3; }\n.pj-hero-inner { position: relative; z-index: 2; padding: 0 64px 72px; max-width: 900px; animation: pj-rise 1.3s cubic-bezier(0.25,0.46,0.45,0.94) both; }\n@keyframes pj-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }\n.pj-breadcrumb { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }\n.pj-breadcrumb span { font-family: 'Lato', sans-serif; font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: rgba(240,230,208,0.35); font-weight: 300; }\n.pj-breadcrumb span.active { color: #C4893A; }\n.pj-breadcrumb-sep { width: 16px; height: 1px; background: rgba(196,137,58,0.35); }\n.pj-hero-label { font-family: 'Lato', sans-serif; font-size: 10px; font-weight: 300; letter-spacing: 6px; text-transform: uppercase; color: #C4893A; margin-bottom: 16px; display: flex; align-items: center; gap: 14px; }\n.pj-hero-label::before { content: ''; display: block; width: 32px; height: 1px; background: #C4893A; }\n.pj-hero-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(44px, 7vw, 88px); font-weight: 300; color: #f0e6d0; line-height: 1.0; letter-spacing: 1px; }\n.pj-hero-title em { font-style: italic; color: #C4893A; font-weight: 300; }\n.pj-hero-title strong { font-weight: 700; color: #ffffff; display: block; }\n.pj-hero-rule { display: flex; align-items: center; gap: 12px; margin-top: 28px; }\n.pj-hero-rule-line { height: 1px; width: 56px; background: linear-gradient(90deg, #C4893A, transparent); }\n.pj-hero-rule-dot { width: 5px; height: 5px; border-radius: 50%; background: #C4893A; opacity: 0.7; }\n@media (max-width: 700px) { .pj-hero-inner { padding: 0 28px 56px; } }\n\n.pj-intro { background: #111010; padding: 72px 32px; position: relative; overflow: hidden; }\n.pj-intro::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(173deg, transparent 0, transparent 28px, rgba(196,137,58,0.03) 28px, rgba(196,137,58,0.03) 29px); pointer-events: none; }\n.pj-intro-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 1fr 2fr; gap: 56px; align-items: center; position: relative; z-index: 1; }\n.pj-intro-left { border-right: 1px solid rgba(196,137,58,0.2); padding-right: 56px; }\n.pj-intro-left p { font-family: 'Cormorant Garamond', serif; font-size: clamp(40px, 5vw, 64px); font-weight: 300; font-style: italic; color: #C4893A; line-height: 1.1; }\n.pj-intro-left span { display: block; margin-top: 16px; font-family: 'Lato', sans-serif; font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: rgba(240,230,208,0.3); font-weight: 300; }\n.pj-intro-right blockquote { font-family: 'Cormorant Garamond', serif; font-size: clamp(20px, 2.5vw, 27px); font-weight: 300; color: rgba(240,230,208,0.82); line-height: 1.7; border: none; padding: 0; margin: 0; letter-spacing: 0.3px; }\n.pj-intro-right blockquote em { font-style: italic; color: #C4893A; }\n@media (max-width: 700px) { .pj-intro-inner { grid-template-columns: 1fr; gap: 32px; } .pj-intro-left { border-right: none; border-bottom: 1px solid rgba(196,137,58,0.2); padding-right: 0; padding-bottom: 32px; } }\n\n.pj-filters { background: #f5ede0; padding: 48px 6% 0; position: relative; z-index: 5; }\n.pj-filters-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 28px; }\n.pj-filter-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n.pj-filter-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 22px; background: transparent; border: 1px solid rgba(139,90,43,0.2); color: rgba(42,26,8,0.38); font-family: 'Lato', sans-serif; font-size: 10px; font-weight: 400; letter-spacing: 3px; text-transform: uppercase; cursor: pointer; transition: all 0.3s; }\n.pj-filter-btn:hover { border-color: #8B5A2B; color: #8B5A2B; }\n.pj-filter-btn.active { border-color: #8B5A2B; color: #8B5A2B; background: rgba(139,90,43,0.07); }\n.pj-filter-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: 0.55; }\n.pj-filter-divider { height: 1px; background: linear-gradient(90deg, rgba(139,90,43,0.3), rgba(139,90,43,0.06) 60%, transparent); }\n\n.pj-gallery { background: #f5ede0; padding: 48px 6% 96px; position: relative; overflow: hidden; }\n.pj-gallery::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(174deg, transparent 0, transparent 26px, rgba(139,90,43,0.022) 26px, rgba(139,90,43,0.022) 27px); pointer-events: none; }\n.pj-gallery-inner { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }\n\n\/* Loading state *\/\n.pj-loading { text-align: center; padding: 80px 32px; }\n.pj-loading-spinner { display: inline-block; width: 32px; height: 32px; border: 2px solid rgba(139,90,43,0.15); border-top-color: #C4893A; border-radius: 50%; animation: spin 0.8s linear infinite; margin-bottom: 20px; }\n@keyframes spin { to { transform: rotate(360deg); } }\n.pj-loading p { font-family: 'Lato', sans-serif; font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: rgba(42,26,8,0.3); font-weight: 300; }\n\n\/* Error state *\/\n.pj-error { text-align: center; padding: 80px 32px; display: none; }\n.pj-error p { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 300; font-style: italic; color: rgba(42,26,8,0.4); }\n.pj-error span { display: block; margin-top: 10px; font-family: 'Lato', sans-serif; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: rgba(42,26,8,0.25); font-weight: 300; }\n\n.pj-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; grid-auto-rows: 1fr; }\n.pj-card { background: #111010; position: relative; overflow: hidden; cursor: pointer; opacity: 0; transform: translateY(16px); transition: opacity 0.55s ease, transform 0.55s ease; }\n.pj-card.hidden { display: none; }\n.pj-card.visible { opacity: 1; transform: translateY(0); }\n.pj-card-img { position: relative; overflow: hidden; aspect-ratio: 4\/3; height: 100%; }\n.pj-card-img img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.82) saturate(0.78) sepia(0.12); transition: transform 0.7s ease, filter 0.5s ease; display: block; }\n.pj-card:hover .pj-card-img img { transform: scale(1.07); filter: brightness(0.48) saturate(0.65) sepia(0.2); }\n.pj-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(17,16,16,0.92) 0%, rgba(17,16,16,0.5) 50%, rgba(17,16,16,0.08) 100%); opacity: 0; transition: opacity 0.4s ease; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; }\n.pj-card:hover .pj-card-overlay { opacity: 1; }\n.pj-card-overlay-label { font-family: 'Lato', sans-serif; font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: #C4893A; margin-bottom: 8px; transform: translateY(8px); transition: transform 0.4s ease 0.05s; }\n.pj-card:hover .pj-card-overlay-label { transform: translateY(0); }\n.pj-card-overlay-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(18px, 2vw, 24px); font-weight: 600; color: #f0e6d0; line-height: 1.15; transform: translateY(10px); transition: transform 0.4s ease 0.08s; }\n.pj-card:hover .pj-card-overlay-title { transform: translateY(0); }\n.pj-card-badge { position: absolute; top: 14px; left: 14px; z-index: 2; padding: 4px 10px; background: rgba(17,16,16,0.82); border: 1px solid rgba(196,137,58,0.28); font-family: 'Lato', sans-serif; font-size: 8px; letter-spacing: 3px; text-transform: uppercase; color: #C4893A; }\n.pj-card.featured { grid-column: span 2; }\n.pj-card.featured .pj-card-img { aspect-ratio: 16\/7; }\n.pj-empty { display: none; text-align: center; padding: 80px 32px; }\n.pj-empty.visible { display: block; }\n.pj-empty p { font-family: 'Cormorant Garamond', serif; font-size: 28px; font-weight: 300; font-style: italic; color: rgba(42,26,8,0.32); }\n.pj-empty span { display: block; margin-top: 12px; font-family: 'Lato', sans-serif; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: rgba(42,26,8,0.22); font-weight: 300; }\n@media (max-width: 900px) { .pj-grid { grid-template-columns: repeat(2,1fr); } .pj-card.featured { grid-column: span 2; } }\n@media (max-width: 560px) { .pj-grid { grid-template-columns: 1fr; } .pj-card.featured { grid-column: span 1; } .pj-card.featured .pj-card-img { aspect-ratio: 4\/3; } .pj-gallery { padding: 40px 4% 72px; } .pj-filters { padding: 36px 4% 0; } }\n\n.pj-lightbox { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }\n.pj-lightbox.open { opacity: 1; pointer-events: all; }\n.pj-lb-backdrop { position: absolute; inset: 0; background: rgba(8,7,7,0.93); cursor: pointer; }\n.pj-lb-panel { position: relative; z-index: 1; max-width: 960px; width: 92%; background: #111010; display: grid; grid-template-columns: 1.1fr 1fr; transform: translateY(20px) scale(0.97); transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1); max-height: 88vh; overflow: hidden; }\n.pj-lightbox.open .pj-lb-panel { transform: translateY(0) scale(1); }\n.pj-lb-panel::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #C4893A, #8B5A2B 50%, #C4893A); z-index: 2; }\n.pj-lb-img-wrap { position: relative; overflow: hidden; min-height: 420px; }\n.pj-lb-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(0.88) saturate(0.82) sepia(0.1); transition: opacity 0.3s ease; }\n.pj-lb-num { position: absolute; bottom: 16px; right: 16px; font-family: 'Cormorant Garamond', serif; font-size: 56px; font-weight: 700; font-style: italic; color: rgba(240,230,208,0.12); line-height: 1; pointer-events: none; z-index: 2; }\n\/* Carrusel interno del lightbox *\/\n.pj-lb-carr-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 4; width: 34px; height: 34px; background: rgba(17,16,16,0.72); border: 1px solid rgba(196,137,58,0.3); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.25s; }\n.pj-lb-carr-nav:hover { background: rgba(196,137,58,0.22); border-color: rgba(196,137,58,0.6); }\n.pj-lb-carr-nav svg { width: 14px; height: 14px; fill: none; stroke: #C4893A; stroke-width: 2; }\n.pj-lb-carr-nav.carr-prev { left: 10px; }\n.pj-lb-carr-nav.carr-next { right: 10px; }\n.pj-lb-carr-nav.hidden { display: none; }\n.pj-lb-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); z-index: 4; display: flex; gap: 6px; }\n.pj-lb-dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(240,230,208,0.25); border: 1px solid rgba(196,137,58,0.3); cursor: pointer; transition: all 0.2s; }\n.pj-lb-dot.active { background: #C4893A; border-color: #C4893A; }\n.pj-lb-content { padding: 48px 40px; display: flex; flex-direction: column; overflow-y: auto; max-height: 88vh; }\n.pj-lb-cat { font-family: 'Lato', sans-serif; font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: #C4893A; margin-bottom: 12px; display: flex; align-items: center; gap: 12px; }\n.pj-lb-cat::before { content: ''; display: block; width: 24px; height: 1px; background: #C4893A; }\n.pj-lb-name { font-family: 'Cormorant Garamond', serif; font-size: clamp(24px, 3vw, 36px); font-weight: 600; color: #f0e6d0; line-height: 1.1; margin-bottom: 20px; }\n.pj-lb-desc { font-family: 'Lato', sans-serif; font-size: 13px; font-weight: 300; color: rgba(240,230,208,0.48); line-height: 1.9; flex: 1; margin-bottom: 28px; }\n.pj-lb-details { border-top: 1px solid rgba(196,137,58,0.15); padding-top: 22px; margin-bottom: 32px; }\n.pj-lb-details-title { font-family: 'Lato', sans-serif; font-size: 9px; letter-spacing: 4px; text-transform: uppercase; color: rgba(240,230,208,0.25); margin-bottom: 16px; }\n.pj-lb-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; }\n.pj-lb-detail { display: flex; flex-direction: column; gap: 3px; }\n.pj-lb-detail-label { font-family: 'Lato', sans-serif; font-size: 9px; letter-spacing: 2px; text-transform: uppercase; color: rgba(240,230,208,0.2); }\n.pj-lb-detail-val { font-family: 'Cormorant Garamond', serif; font-size: 17px; font-weight: 600; color: #f0e6d0; }\n.pj-lb-cta { display: inline-flex; align-items: center; gap: 12px; padding: 13px 36px; background: #C4893A; color: #0d0d0d; font-family: 'Lato', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; text-decoration: none; position: relative; overflow: hidden; transition: color 0.35s; align-self: flex-start; border: none; cursor: pointer; }\n.pj-lb-cta::before { content: ''; position: absolute; inset: 0; background: #8B5A2B; transform: scaleX(0); transform-origin: left; transition: transform 0.4s; }\n.pj-lb-cta:hover { color: #f0e6d0; }\n.pj-lb-cta:hover::before { transform: scaleX(1); }\n.pj-lb-cta span, .pj-lb-cta svg { position: relative; z-index: 1; }\n.pj-lb-cta svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }\n.pj-lb-close { position: absolute; top: 18px; right: 18px; z-index: 3; width: 36px; height: 36px; background: rgba(196,137,58,0.1); border: 1px solid rgba(196,137,58,0.22); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s; }\n.pj-lb-close:hover { background: rgba(196,137,58,0.22); }\n.pj-lb-close svg { width: 14px; height: 14px; fill: none; stroke: rgba(240,230,208,0.6); stroke-width: 2; }\n.pj-lb-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 40px; height: 40px; background: rgba(196,137,58,0.09); border: 1px solid rgba(196,137,58,0.2); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s; }\n.pj-lb-nav:hover { background: rgba(196,137,58,0.2); border-color: rgba(196,137,58,0.5); }\n.pj-lb-nav.prev { left: -52px; }\n.pj-lb-nav.next { right: -52px; }\n.pj-lb-nav svg { width: 16px; height: 16px; fill: none; stroke: #C4893A; stroke-width: 2; }\n@media (max-width: 800px) { .pj-lb-panel { grid-template-columns: 1fr; } .pj-lb-img-wrap { min-height: 220px; max-height: 240px; } .pj-lb-nav.prev { left: 8px; } .pj-lb-nav.next { right: 8px; } }\n\n.pj-closing { background: #111010; padding: 96px 32px; text-align: center; position: relative; overflow: hidden; }\n.pj-closing::before { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(173deg, transparent 0, transparent 28px, rgba(196,137,58,0.03) 28px, rgba(196,137,58,0.03) 29px); pointer-events: none; }\n.pj-closing-bottombar { position: absolute; bottom: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #111010 0%, #111010 25%, #C4893A 25%, #C4893A 50%, #8B5A2B 50%, #8B5A2B 75%, #111010 75%, #111010 100%); }\n.pj-closing-inner { max-width: 640px; margin: 0 auto; position: relative; z-index: 1; }\n.pj-closing-ornament { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 36px; }\n.pj-closing-ornament-line { height: 1px; width: 64px; background: linear-gradient(90deg, transparent, rgba(196,137,58,0.5)); }\n.pj-closing-ornament-line.r { background: linear-gradient(90deg, rgba(196,137,58,0.5), transparent); }\n.pj-closing-ornament svg { width: 18px; height: 18px; fill: #C4893A; opacity: 0.7; flex-shrink: 0; }\n.pj-closing-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(28px, 4vw, 48px); font-weight: 300; color: #f0e6d0; line-height: 1.2; margin-bottom: 20px; }\n.pj-closing-title em { font-style: italic; color: #C4893A; }\n.pj-closing-sub { font-family: 'Lato', sans-serif; font-size: 14px; font-weight: 300; color: rgba(240,230,208,0.45); letter-spacing: 0.5px; line-height: 1.8; margin-bottom: 48px; }\n.pj-closing-actions { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; }\n.pj-btn-primary { display: inline-flex; align-items: center; gap: 12px; padding: 13px 36px; background: #C4893A; color: #0d0d0d; font-family: 'Lato', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; text-decoration: none; position: relative; overflow: hidden; transition: color 0.35s; }\n.pj-btn-primary::before { content: ''; position: absolute; inset: 0; background: #8B5A2B; transform: scaleX(0); transform-origin: left; transition: transform 0.4s; }\n.pj-btn-primary:hover { color: #f0e6d0; }\n.pj-btn-primary:hover::before { transform: scaleX(1); }\n.pj-btn-primary span, .pj-btn-primary svg { position: relative; z-index: 1; }\n.pj-btn-primary svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; }\n.pj-btn-ghost { display: inline-flex; align-items: center; gap: 10px; padding: 13px 36px; background: transparent; border: 1px solid rgba(196,137,58,0.35); color: rgba(240,230,208,0.55); font-family: 'Lato', sans-serif; font-size: 11px; font-weight: 300; letter-spacing: 4px; text-transform: uppercase; text-decoration: none; transition: all 0.35s; }\n.pj-btn-ghost:hover { border-color: #C4893A; color: #C4893A; }\n.pj-fade { opacity: 0; transform: translateY(20px); transition: opacity 0.7s ease, transform 0.7s ease; }\n.pj-fade.visible { opacity: 1; transform: translateY(0); }\n<\/style>\n<\/head>\n<body>\n\n<!-- HERO -->\n<section class=\"pj-hero\">\n  <div class=\"pj-hero-topbar\"><\/div>\n  <img decoding=\"async\" class=\"pj-hero-bg\" src=\"https:\/\/aserraderoleira.com.uy\/wp-content\/uploads\/2026\/04\/2985e95f-fe3a-4dc0-ae98-92c3d7b290f0.jpg\" alt=\"Proyectos Aserradero Leira\">\n  <div class=\"pj-hero-grad\"><\/div>\n  <div class=\"pj-hero-inner\">\n    <div class=\"pj-breadcrumb\">\n      <span>Inicio<\/span>\n      <div class=\"pj-breadcrumb-sep\"><\/div>\n      <span class=\"active\">Proyectos<\/span>\n    <\/div>\n    <p class=\"pj-hero-label\">Lo que construimos<\/p>\n    <h1 class=\"pj-hero-title\">\n      Nuestros<br>\n      <strong>Proyectos<\/strong>\n      <br><em>en madera.<\/em>\n    <\/h1>\n    <div class=\"pj-hero-rule\">\n      <div class=\"pj-hero-rule-line\"><\/div>\n      <div class=\"pj-hero-rule-dot\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- INTRO -->\n<section class=\"pj-intro\">\n  <div class=\"pj-intro-inner pj-fade\">\n    <div class=\"pj-intro-left\">\n      <p>+500<\/p>\n      <span>Proyectos realizados<\/span>\n    <\/div>\n    <div class=\"pj-intro-right\">\n      <blockquote>\n        Treinta a\u00f1os construyendo con quienes construyen.\n        Carpinteros, arquitectos, familias y empresas\n        que confiaron en nuestra madera para hacer\n        realidad sus proyectos. Ac\u00e1 mostramos <em>algunos de ellos.<\/em>\n      <\/blockquote>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- FILTROS (se generan din\u00e1micamente) -->\n<section class=\"pj-filters\" id=\"pjFilters\" style=\"display:none\">\n  <div class=\"pj-filters-inner\">\n    <div class=\"pj-filter-row\" id=\"pjFilterRow\"><\/div>\n    <div class=\"pj-filter-divider\"><\/div>\n  <\/div>\n<\/section>\n\n<!-- GALER\u00cdA -->\n<section class=\"pj-gallery\">\n  <div class=\"pj-gallery-inner\">\n\n    <!-- Estado: cargando -->\n    <div class=\"pj-loading\" id=\"pjLoading\">\n      <div class=\"pj-loading-spinner\"><\/div>\n      <p>Cargando proyectos<\/p>\n    <\/div>\n\n    <!-- Estado: error -->\n    <div class=\"pj-error\" id=\"pjError\">\n      <p>No se pudieron cargar los proyectos.<\/p>\n      <span>Revis\u00e1 tu conexi\u00f3n o recarg\u00e1 la p\u00e1gina<\/span>\n    <\/div>\n\n    <!-- Grid de tarjetas -->\n    <div class=\"pj-grid\" id=\"pjGrid\" style=\"display:none\"><\/div>\n\n    <!-- Sin resultados -->\n    <div class=\"pj-empty\" id=\"pjEmpty\">\n      <p>Sin proyectos en esta categor\u00eda.<\/p>\n      <span>Prob\u00e1 con otro filtro<\/span>\n    <\/div>\n\n<!-- LIGHTBOX -->\n<div class=\"pj-lightbox\" id=\"pjLightbox\" role=\"dialog\" aria-modal=\"true\">\n  <div class=\"pj-lb-backdrop\" id=\"pjLbBackdrop\"><\/div>\n  <div class=\"pj-lb-panel\">\n    <button class=\"pj-lb-close\" id=\"pjLbClose\" aria-label=\"Cerrar\"><svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg><\/button>\n    <button class=\"pj-lb-nav prev\" id=\"pjLbPrev\" aria-label=\"Anterior\"><svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg><\/button>\n    <button class=\"pj-lb-nav next\" id=\"pjLbNext\" aria-label=\"Siguiente\"><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/button>\n    <div class=\"pj-lb-img-wrap\">\n      <img decoding=\"async\" id=\"pjLbImg\" src=\"\" alt=\"\">\n      <span class=\"pj-lb-num\" id=\"pjLbNum\"><\/span>\n      <button class=\"pj-lb-carr-nav carr-prev hidden\" id=\"pjCarrPrev\" aria-label=\"Imagen anterior\"><svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg><\/button>\n      <button class=\"pj-lb-carr-nav carr-next hidden\" id=\"pjCarrNext\" aria-label=\"Imagen siguiente\"><svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/button>\n      <div class=\"pj-lb-dots\" id=\"pjCarrDots\"><\/div>\n    <\/div>\n    <div class=\"pj-lb-content\">\n      <span class=\"pj-lb-cat\" id=\"pjLbCat\"><\/span>\n      <h2 class=\"pj-lb-name\" id=\"pjLbName\"><\/h2>\n      <p class=\"pj-lb-desc\" id=\"pjLbDesc\"><\/p>\n      <div class=\"pj-lb-details\">\n        <p class=\"pj-lb-details-title\">Ficha del proyecto<\/p>\n        <div class=\"pj-lb-details-grid\">\n          <div class=\"pj-lb-detail\"><span class=\"pj-lb-detail-label\">Material<\/span><span class=\"pj-lb-detail-val\" id=\"pjLbMaterial\">&#8211;<\/span><\/div>\n          <div class=\"pj-lb-detail\"><span class=\"pj-lb-detail-label\">A\u00f1o<\/span><span class=\"pj-lb-detail-val\" id=\"pjLbYear\">&#8211;<\/span><\/div>\n          <div class=\"pj-lb-detail\"><span class=\"pj-lb-detail-label\">Categor\u00eda<\/span><span class=\"pj-lb-detail-val\" id=\"pjLbCat2\">&#8211;<\/span><\/div>\n          <div class=\"pj-lb-detail\"><span class=\"pj-lb-detail-label\">Ubicaci\u00f3n<\/span><span class=\"pj-lb-detail-val\" id=\"pjLbLugar\">&#8211;<\/span><\/div>\n        <\/div>\n      <\/div>\n      <a href=\"#contacto\" class=\"pj-lb-cta\"><span>Quiero algo similar<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- CIERRE -->\n<section class=\"pj-closing\">\n  <div class=\"pj-closing-inner pj-fade\">\n    <div class=\"pj-closing-ornament\">\n      <div class=\"pj-closing-ornament-line\"><\/div>\n      <svg viewBox=\"0 0 24 24\"><path d=\"M12 2l1.5 4h4l-3.2 2.4 1.2 3.8L12 10l-3.5 2.2 1.2-3.8L6.5 6h4z M12 12v10\"\/><\/svg>\n      <div class=\"pj-closing-ornament-line r\"><\/div>\n    <\/div>\n    <h2 class=\"pj-closing-title\">El pr\u00f3ximo proyecto<br>podr\u00eda ser <em>el tuyo.<\/em><\/h2>\n    <p class=\"pj-closing-sub\">Contanos qu\u00e9 est\u00e1s planeando y te asesoramos sobre la madera ideal, las dimensiones y los tiempos de entrega. Sin vueltas.<\/p>\n    <div class=\"pj-closing-actions\">\n      <a href=\"#contacto\" class=\"pj-btn-primary\"><span>Consultar ahora<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a>\n      <a href=\"\/nuestra-historia\" class=\"pj-btn-ghost\">Nuestra historia<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"pj-closing-bottombar\"><\/div>\n<\/section>\n\n<script>\n(function () {\n  'use strict';\n\n  \/\/ \u2500\u2500 CONFIGURACI\u00d3N \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  \/\/ Cambi\u00e1 esta URL por la de tu WordPress\n  var API_URL = 'https:\/\/aserraderoleira.com.uy\/wp-json\/leira\/v1\/proyectos';\n  \/\/ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n  var activeFilter = 'todos';\n  var allProjects  = [];\n  var visibleCards = [];\n  var currentIndex = 0;\n\n  var grid      = document.getElementById('pjGrid');\n  var loading   = document.getElementById('pjLoading');\n  var errorEl   = document.getElementById('pjError');\n  var emptyEl   = document.getElementById('pjEmpty');\n  var filterRow = document.getElementById('pjFilterRow');\n  var filtersEl = document.getElementById('pjFilters');\n  var lb        = document.getElementById('pjLightbox');\n\n  \/\/ Intersection observer para fade-in\n  var io = new IntersectionObserver(function (entries) {\n    entries.forEach(function (e) { if (e.isIntersecting) e.target.classList.add('visible'); });\n  }, { threshold: 0.08 });\n  document.querySelectorAll('.pj-fade').forEach(function (el) { io.observe(el); });\n\n  \/\/ \u2500\u2500 FETCH PROYECTOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  fetch(API_URL)\n    .then(function (res) {\n      if (!res.ok) throw new Error('HTTP ' + res.status);\n      return res.json();\n    })\n    .then(function (data) {\n      allProjects = data;\n      loading.style.display = 'none';\n      if (!data.length) { emptyEl.classList.add('visible'); return; }\n      buildFilters(data);\n      renderCards(data);\n      grid.style.display = 'grid';\n      filtersEl.style.display = 'block';\n    })\n    .catch(function () {\n      loading.style.display = 'none';\n      errorEl.style.display = 'block';\n    });\n\n  \/\/ \u2500\u2500 CONSTRUIR FILTROS DIN\u00c1MICAMENTE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function buildFilters(projects) {\n    var cats = {};\n    projects.forEach(function (p) {\n      if (p.cat_slug && !cats[p.cat_slug]) cats[p.cat_slug] = p.cat_nombre;\n    });\n\n    \/\/ Bot\u00f3n \"Todos\"\n    var btnTodos = makeFilterBtn('todos', 'Todos');\n    btnTodos.classList.add('active');\n    filterRow.appendChild(btnTodos);\n\n    Object.keys(cats).forEach(function (slug) {\n      filterRow.appendChild(makeFilterBtn(slug, cats[slug]));\n    });\n  }\n\n  function makeFilterBtn(slug, label) {\n    var btn = document.createElement('button');\n    btn.className = 'pj-filter-btn';\n    btn.setAttribute('data-filter', slug);\n    btn.innerHTML = '<span class=\"pj-filter-dot\"><\/span>' + label;\n    btn.addEventListener('click', function () {\n      document.querySelectorAll('.pj-filter-btn').forEach(function (b) { b.classList.remove('active'); });\n      btn.classList.add('active');\n      activeFilter = slug;\n      filterCards();\n    });\n    return btn;\n  }\n\n  \/\/ \u2500\u2500 RENDERIZAR TARJETAS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function renderCards(projects) {\n    grid.innerHTML = '';\n    projects.forEach(function (p, i) {\n      grid.appendChild(makeCard(p, i));\n    });\n    \/\/ Fade-in escalonado\n    var cards = grid.querySelectorAll('.pj-card');\n    var cardIo = new IntersectionObserver(function (entries) {\n      entries.forEach(function (e, idx) {\n        if (e.isIntersecting) {\n          setTimeout(function () { e.target.classList.add('visible'); }, idx * 60);\n        }\n      });\n    }, { threshold: 0.04, rootMargin: '0px 0px -16px 0px' });\n    cards.forEach(function (c) { cardIo.observe(c); });\n  }\n\n  function makeCard(p, i) {\n    var isFeatured = (i % 5 === 0); \/\/ cada 5to elemento es featured\n    var div = document.createElement('div');\n    div.className = 'pj-card' + (isFeatured ? ' featured' : '');\n    div.setAttribute('data-cat', p.cat_slug || '');\n    div.setAttribute('data-idx', i);\n\n    var imgSrc = (p.imagenes && p.imagenes.length) ? p.imagenes[0] : (p.imagen_url || 'https:\/\/via.placeholder.com\/800x600?text=Sin+imagen');\n    var label  = (p.cat_nombre || '') + (p.anio ? ' \u00b7 ' + p.anio : '');\n\n    div.innerHTML =\n      '<div class=\"pj-card-img\">' +\n        (p.cat_nombre ? '<div class=\"pj-card-badge\">' + esc(p.cat_nombre) + '<\/div>' : '') +\n        '<img decoding=\"async\" src=\"' + esc(imgSrc) + '\" alt=\"' + esc(p.titulo) + '\" loading=\"lazy\">' +\n        '<div class=\"pj-card-overlay\">' +\n          '<span class=\"pj-card-overlay-label\">' + esc(label) + '<\/span>' +\n          '<h3 class=\"pj-card-overlay-title\">' + esc(p.titulo) + '<\/h3>' +\n        '<\/div>' +\n      '<\/div>';\n\n    div.addEventListener('click', function () { openLightbox(i); });\n    return div;\n  }\n\n  \/\/ \u2500\u2500 FILTRAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function filterCards() {\n    var cards = grid.querySelectorAll('.pj-card');\n    var visible = 0;\n    cards.forEach(function (card) {\n      var ok = (activeFilter === 'todos' || card.getAttribute('data-cat') === activeFilter);\n      card.classList.toggle('hidden', !ok);\n      if (ok) visible++;\n    });\n    emptyEl.classList.toggle('visible', visible === 0);\n    updateVisibleCards();\n  }\n\n  function updateVisibleCards() {\n    visibleCards = allProjects.filter(function (p) {\n      return activeFilter === 'todos' || p.cat_slug === activeFilter;\n    });\n  }\n\n  \/\/ \u2500\u2500 LIGHTBOX + CARRUSEL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  var carrImgs  = [];   \/\/ array de URLs de la imagen activa\n  var carrIdx   = 0;   \/\/ \u00edndice dentro del carrusel\n\n  function openLightbox(globalIdx) {\n    var p = allProjects[globalIdx];\n    currentIndex = visibleCards.indexOf(p);\n    if (currentIndex === -1) currentIndex = 0;\n    carrImgs = (p.imagenes && p.imagenes.length) ? p.imagenes : (p.imagen_url ? [p.imagen_url] : []);\n    carrIdx  = 0;\n    populateLightbox(p, currentIndex);\n    lb.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function populateLightbox(p, idx) {\n    carrImgs = (p.imagenes && p.imagenes.length) ? p.imagenes : (p.imagen_url ? [p.imagen_url] : []);\n    carrIdx  = 0;\n    renderCarrImg();\n    document.getElementById('pjLbCat').textContent      = p.cat_nombre  || '';\n    document.getElementById('pjLbCat2').textContent     = p.cat_nombre  || '-';\n    document.getElementById('pjLbName').textContent     = p.titulo      || '';\n    document.getElementById('pjLbDesc').textContent     = p.descripcion || '';\n    document.getElementById('pjLbMaterial').textContent = p.material    || '-';\n    document.getElementById('pjLbYear').textContent     = p.anio        || '-';\n    document.getElementById('pjLbLugar').textContent    = p.ubicacion   || '-';\n    document.getElementById('pjLbNum').textContent      = p.num         || '';\n  }\n\n  function renderCarrImg() {\n    var img  = document.getElementById('pjLbImg');\n    var prev = document.getElementById('pjCarrPrev');\n    var next = document.getElementById('pjCarrNext');\n    var dots = document.getElementById('pjCarrDots');\n    var src  = carrImgs[carrIdx] || '';\n\n    img.style.opacity = '0';\n    setTimeout(function () {\n      img.src = src;\n      img.onload = function () { img.style.opacity = '1'; };\n      img.onerror = function () { img.style.opacity = '1'; };\n    }, 150);\n\n    \/\/ Flechas\n    if (carrImgs.length > 1) {\n      prev.classList.remove('hidden');\n      next.classList.remove('hidden');\n    } else {\n      prev.classList.add('hidden');\n      next.classList.add('hidden');\n    }\n\n    \/\/ Dots\n    dots.innerHTML = '';\n    if (carrImgs.length > 1) {\n      carrImgs.forEach(function (_, di) {\n        var dot = document.createElement('span');\n        dot.className = 'pj-lb-dot' + (di === carrIdx ? ' active' : '');\n        dot.addEventListener('click', function (e) { e.stopPropagation(); carrIdx = di; renderCarrImg(); });\n        dots.appendChild(dot);\n      });\n    }\n  }\n\n  document.getElementById('pjCarrPrev').addEventListener('click', function (e) {\n    e.stopPropagation();\n    if (!carrImgs.length) return;\n    carrIdx = (carrIdx - 1 + carrImgs.length) % carrImgs.length;\n    renderCarrImg();\n  });\n\n  document.getElementById('pjCarrNext').addEventListener('click', function (e) {\n    e.stopPropagation();\n    if (!carrImgs.length) return;\n    carrIdx = (carrIdx + 1) % carrImgs.length;\n    renderCarrImg();\n  });\n\n  function closeLightbox() {\n    lb.classList.remove('open');\n    document.body.style.overflow = '';\n  }\n\n  document.getElementById('pjLbClose').addEventListener('click', closeLightbox);\n  document.getElementById('pjLbBackdrop').addEventListener('click', closeLightbox);\n\n  document.getElementById('pjLbPrev').addEventListener('click', function (e) {\n    e.stopPropagation();\n    if (!visibleCards.length) return;\n    currentIndex = (currentIndex - 1 + visibleCards.length) % visibleCards.length;\n    populateLightbox(visibleCards[currentIndex], currentIndex);\n  });\n\n  document.getElementById('pjLbNext').addEventListener('click', function (e) {\n    e.stopPropagation();\n    if (!visibleCards.length) return;\n    currentIndex = (currentIndex + 1) % visibleCards.length;\n    populateLightbox(visibleCards[currentIndex], currentIndex);\n  });\n\n  document.addEventListener('keydown', function (e) {\n    if (!lb.classList.contains('open')) return;\n    if (e.key === 'Escape') { closeLightbox(); return; }\n    \/\/ Flechas: primero navegan el carrusel interno, si hay una sola imagen cambian de proyecto\n    if (e.key === 'ArrowLeft') {\n      if (carrImgs.length > 1) { document.getElementById('pjCarrPrev').click(); }\n      else { document.getElementById('pjLbPrev').click(); }\n    }\n    if (e.key === 'ArrowRight') {\n      if (carrImgs.length > 1) { document.getElementById('pjCarrNext').click(); }\n      else { document.getElementById('pjLbNext').click(); }\n    }\n  });\n\n  \/\/ Swipe t\u00e1ctil en la imagen del lightbox\n  (function () {\n    var wrap = document.querySelector('.pj-lb-img-wrap');\n    var startX = 0;\n    wrap.addEventListener('touchstart', function (e) { startX = e.touches[0].clientX; }, { passive: true });\n    wrap.addEventListener('touchend', function (e) {\n      var dx = e.changedTouches[0].clientX - startX;\n      if (Math.abs(dx) < 40) return;\n      if (dx < 0) {\n        if (carrImgs.length > 1) { document.getElementById('pjCarrNext').click(); }\n        else { document.getElementById('pjLbNext').click(); }\n      } else {\n        if (carrImgs.length > 1) { document.getElementById('pjCarrPrev').click(); }\n        else { document.getElementById('pjLbPrev').click(); }\n      }\n    }, { passive: true });\n  })();\n\n  \/\/ \u2500\u2500 UTILIDADES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n  function esc(str) {\n    return String(str || '').replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;');\n  }\n\n  \/\/ Inicializar visibleCards con todos\n  updateVisibleCards = function () {\n    visibleCards = allProjects.filter(function (p) {\n      return activeFilter === 'todos' || p.cat_slug === activeFilter;\n    });\n  };\n\n})();\n<\/script>\n<\/body>\n<\/html>\n\n\n\n<style>\n\/* \u2500\u2500 BOT\u00d3N DE WHATSAPP FLOTANTE \u2500\u2500 *\/\n.lc-wsp-float {\n    position: fixed;\n    bottom: 30px;\n    right: 30px;\n    z-index: 999;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 60px;\n    height: 60px;\n    background: #25D366; \/* Verde oficial de WhatsApp *\/\n    border-radius: 50%;\n    box-shadow: 0 8px 25px rgba(37, 211, 102, 0.4);\n    text-decoration: none;\n    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n    border: 2px solid #fff;\n}\n\n.lc-wsp-float svg {\n    width: 32px;\n    height: 32px;\n    fill: white;\n}\n\n\/* Efecto de pulso suave *\/\n.lc-wsp-float::after {\n    content: '';\n    position: absolute;\n    width: 100%;\n    height: 100%;\n    border-radius: 50%;\n    background: #25D366;\n    opacity: 0.5;\n    z-index: -1;\n    animation: wspPulse 2s infinite;\n}\n\n\/* Hover: Se agranda y cambia levemente el tono *\/\n.lc-wsp-float:hover {\n    transform: scale(1.1) translateY(-5px);\n    box-shadow: 0 12px 30px rgba(37, 211, 102, 0.6);\n    background: #20ba5a;\n}\n\n@keyframes wspPulse {\n    0% { transform: scale(1); opacity: 0.5; }\n    100% { transform: scale(1.6); opacity: 0; }\n}\n\n\/* Adaptaci\u00f3n para m\u00f3viles (un poco m\u00e1s peque\u00f1o para no estorbar) *\/\n@media (max-width: 640px) {\n    .lc-wsp-float {\n        bottom: 20px;\n        right: 20px;\n        width: 54px;\n        height: 54px;\n    }\n    .lc-wsp-float svg {\n        width: 28px;\n        height: 28px;\n    }\n}\n<\/style>\n\n<a href=\"https:\/\/wa.me\/59895989681\" class=\"lc-wsp-float\" target=\"_blank\" title=\"Contactanos por WhatsApp\">\n    <svg viewBox=\"0 0 24 24\">\n        <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.335-1.662c1.72.938 3.659 1.434 5.705 1.435h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\"\/>\n    <\/svg>\n<\/a>\n","protected":false},"excerpt":{"rendered":"<p>Proyectos Realizados \u2014 Aserradero Leira Inicio Proyectos Lo que construimos Nuestros Proyectos en madera. +500 Proyectos realizados Treinta a\u00f1os construyendo con quienes construyen. Carpinteros, arquitectos, familias y empresas que confiaron en nuestra madera para hacer realidad sus proyectos. Ac\u00e1 mostramos algunos de ellos. Cargando proyectos No se pudieron cargar los proyectos. Revis\u00e1 tu conexi\u00f3n o [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-22","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/pages\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":47,"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/pages\/22\/revisions"}],"predecessor-version":[{"id":558,"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/pages\/22\/revisions\/558"}],"wp:attachment":[{"href":"https:\/\/aserraderoleira.com.uy\/index.php\/wp-json\/wp\/v2\/media?parent=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}