1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,196989,e=>{"use strict";var t=e.i(843476),r=e.i(271645);let a=(0,r.createContext)(void 0);function l(e){let{children:l}=e,[s,i]=(0,r.useState)([]);return(0,t.jsx)(a.Provider,{value:{breadcrumbs:s,setBreadcrumbs:i},children:l})}function s(){let e=(0,r.useContext)(a);if(void 0===e)throw Error("useBreadcrumbs must be used within a BreadcrumbProvider");return e}e.s(["BreadcrumbProvider",()=>l,"useBreadcrumbs",()=>s])},535163,e=>{"use strict";var t=e.i(843476),r=e.i(271645),a=e.i(196989);function l(e){let{items:l}=e,{setBreadcrumbs:s}=(0,a.useBreadcrumbs)();(0,r.useEffect)(()=>(s(l),()=>s([])),[l,s]);let i={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:l.map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,...e.href?{item:`https://www.eheatcool.com${e.href}`}:{}}))};return(0,t.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(i)}})}e.s(["default",()=>l])},635454,e=>{"use strict";var t=e.i(271645);let r=t.forwardRef(function(e,r){let{title:a,titleId:l,...s}=e;return t.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":l},s),a?t.createElement("title",{id:l},a):null,t.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z"}))});e.s(["StarIcon",0,r],635454)},155816,e=>{"use strict";var t=e.i(843476),r=e.i(777936),a=e.i(271645),l=e.i(315671);let s=a.forwardRef(function(e,t){let{title:r,titleId:l,...s}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":l},s),r?a.createElement("title",{id:l},r):null,a.createElement("path",{fillRule:"evenodd",d:"M7.72 12.53a.75.75 0 0 1 0-1.06l7.5-7.5a.75.75 0 1 1 1.06 1.06L9.31 12l6.97 6.97a.75.75 0 1 1-1.06 1.06l-7.5-7.5Z",clipRule:"evenodd"}))}),i=a.forwardRef(function(e,t){let{title:r,titleId:l,...s}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":l},s),r?a.createElement("title",{id:l},r):null,a.createElement("path",{fillRule:"evenodd",d:"M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z",clipRule:"evenodd"}))});var n=e.i(635454);function o(e){let{variant:o="homepage",title:c,subtitle:d,filterByLocation:x,filterByRating:m=4,maxReviews:h=20,showSlider:u=!0}=e,[g,f]=(0,a.useState)([]),[b,p]=(0,a.useState)({total:0,rating:4.8,newCount:0}),[v,w]=(0,a.useState)(!0),[j,N]=(0,a.useState)(0),y=(0,a.useRef)(null);(0,a.useEffect)(()=>{!async function(){try{let e=await fetch("/api/google-reviews"),t=await e.json(),r=t.reviews||[];x&&(r=r.filter(e=>e.locationName?.toLowerCase().includes(x.toLowerCase()))),(r=(r=r.filter(e=>e.rating>=m)).filter(e=>e.text&&e.text.length>20)).sort((e,t)=>(t.time||0)-(e.time||0)),f(r.slice(0,h)),p({total:t.user_ratings_total||0,rating:t.rating||4.9,newCount:t.newReviewsCount||0})}catch(e){console.error("Error fetching reviews:",e)}finally{w(!1)}}()},[x,m,h]),(0,a.useEffect)(()=>{u&&y.current&&(y.current.style.transform=`translateX(-${408*j}px)`)},[j,u]);let C={homepage:{title:c||"Customer Reviews",subtitle:d||"Real Reviews About Our Portland Area Heating and Cooling Solutions",bgColor:"bg-white",accentColor:"text-orange-600"},service:{title:c||"See What Our Customers Say",subtitle:d||"Google reviews from our three Portland-area locations",bgColor:"bg-white",accentColor:"text-blue-600"},location:{title:c||`Serving ${x||"Your Area"} Since 2008`,subtitle:d||"Local reviews from your neighbors",bgColor:"bg-gray-50",accentColor:"text-green-600"},product:{title:c||"Why Customers Choose This Product",subtitle:d||"Real experiences from real installations",bgColor:"bg-white",accentColor:"text-indigo-600"}}[o];return v?(0,t.jsx)("section",{className:`py-16 ${C.bgColor}`,children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,t.jsx)("div",{className:"text-center",children:(0,t.jsxs)("div",{className:"animate-pulse",children:[(0,t.jsx)("div",{className:"h-8 bg-gray-200 rounded w-1/3 mx-auto mb-4"}),(0,t.jsx)("div",{className:"h-4 bg-gray-200 rounded w-1/2 mx-auto"})]})})})}):(0,t.jsx)("section",{className:`py-16 ${C.bgColor}`,children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[(0,t.jsxs)("div",{className:"text-center mb-12",children:[(0,t.jsx)("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:C.title}),(0,t.jsx)("p",{className:"text-xl text-gray-600 mb-6",children:C.subtitle}),(0,t.jsxs)("div",{className:"flex flex-col md:flex-row items-center justify-center gap-2 md:gap-3 mb-6",children:[(0,t.jsx)("div",{className:"flex",children:[void 0,void 0,void 0,void 0,void 0].map((e,r)=>(0,t.jsx)(l.StarIcon,{className:"w-7 h-7 text-yellow-400"},r))}),(0,t.jsxs)("span",{className:"text-xl md:text-2xl font-bold text-gray-900",children:[b.rating," out of 5 stars"]}),(0,t.jsx)("span",{className:"hidden md:inline text-gray-500",children:"â¢"}),(0,t.jsxs)("span",{className:"text-lg md:text-xl text-gray-600",children:[b.total.toLocaleStr
1ing(),"+ Google Reviews"]})]}),(0,t.jsx)("p",{className:"text-gray-600 max-w-3xl mx-auto mb-8",children:"Our customers love our professional service, honest pricing, and commitment to comfort. See what they're saying about their experience with Efficiency Heating & Cooling."}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-4",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)("a",{href:r.OFFICES[0].mapsUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-700 font-semibold hover:underline transition-colors",children:"View Milwaukie Reviews"}),(0,t.jsx)("span",{"aria-hidden":"true",className:"text-blue-600 font-semibold",children:"â"})]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)("a",{href:r.OFFICES[1].mapsUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-700 font-semibold hover:underline transition-colors",children:"View Portland Reviews"}),(0,t.jsx)("span",{"aria-hidden":"true",className:"text-blue-600 font-semibold",children:"â"})]}),(0,t.jsxs)("span",{className:"inline-flex items-center gap-1",children:[(0,t.jsx)("a",{href:r.OFFICES[2].mapsUrl,target:"_blank",rel:"noopener noreferrer",className:"text-blue-600 hover:text-blue-700 font-semibold hover:underline transition-colors",children:"View Happy Valley Reviews"}),(0,t.jsx)("span",{"aria-hidden":"true",className:"text-blue-600 font-semibold",children:"â"})]})]})]}),u&&g.length>0&&(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("button",{onClick:()=>{N(e=>(e-1+Math.max(1,g.length-2))%Math.max(1,g.length-2))},className:"absolute left-0 top-1/2 -translate-y-1/2 -translate-x-4 z-10 bg-white rounded-full p-3 shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-110","aria-label":"Previous reviews",children:(0,t.jsx)(s,{className:"w-6 h-6 text-gray-700"})}),(0,t.jsx)("button",{onClick:()=>{N(e=>(e+1)%Math.max(1,g.length-2))},className:"absolute right-0 top-1/2 -translate-y-1/2 translate-x-4 z-10 bg-white rounded-full p-3 shadow-lg hover:shadow-xl transition-all duration-300 hover:scale-110","aria-label":"Next reviews",children:(0,t.jsx)(i,{className:"w-6 h-6 text-gray-700"})}),(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsx)("div",{ref:y,className:"flex gap-6 transition-transform duration-500 ease-in-out",style:{width:"fit-content"},children:g.map(e=>{var r;return(0,t.jsxs)("div",{className:"w-96 flex-shrink-0 bg-white rounded-xl shadow-lg hover:shadow-2xl transition-all duration-300 p-8 border border-gray-100",children:[(0,t.jsxs)("div",{className:"flex items-start gap-4 mb-4",children:[e.profile_photo_url?(0,t.jsx)("img",{src:e.profile_photo_url,alt:e.author_name,width:56,height:56,loading:"lazy",decoding:"async",className:"w-14 h-14 rounded-full ring-2 ring-blue-100"}):(0,t.jsx)("div",{className:"w-14 h-14 rounded-full bg-gradient-to-br from-blue-500 to-orange-500 flex items-center justify-center text-white font-bold text-xl ring-2 ring-blue-100",children:e.author_name.split(" ").map(e=>e[0]).join("").slice(0,2)}),(0,t.jsx)("div",{className:"flex-1",children:e.review_link?(0,t.jsx)("a",{href:e.review_link,target:"_blank",rel:"noopener noreferrer",className:"font-bold text-gray-900 text-lg hover:text-blue-600 transition-colors",children:e.author_name}):(0,t.jsx)("h3",{className:"font-bold text-gray-900 text-lg",children:e.author_name})})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:[void 0,void 0,void 0,void 0,void 0].map((r,a)=>a<e.rating?(0,t.jsx)(l.StarIcon,{className:"w-5 h-5 text-yellow-400"},a):(0,t.jsx)(n.StarIcon,{className:"w-5 h-5 text-gray-300"},a))}),(0,t.jsx)("span",{className:"inline-flex h-6 w-6 items-center justify-center rounded-full border border-orange-200 bg-orange-50",children:(0,t.jsxs)("svg",{className:"h-3 w-3",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,t.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,t.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,t.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})})]}),(0,t.jsxs)("p",{className:"text-gray-700 mb-6 leading-relaxed line-clamp-6",children:['"',e.text,'"']}),(0,t.jsx)("div",{className:"flex items-center justify-between pt-4 border-t border-gray-100",children:(0,t.jsxs)("span",{className:"text-sm text-gray-500",children:[(r=e.time)?new Date(r>0x2540be3ff?r:1e3*r).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}):"Recently",e.locationName?` \xb7 ${e.locationName} office`:""]})})]},e.id)})})}),(0,t.jsx)("div",{className:"flex items-center justify-center gap-2 mt-8",children:[...Array(Math.max(1,g.length-2))].map((e,r)=>(0,t.jsx)("button",{onClick:()=>N(r),className:`h-2 rounded-full transition-all duration-300 ${r===j?"w-8 bg-blue-600":"w-2 bg-gray-300 hover:bg-gray-400"}`,"aria-label":`Go to slide ${r+1}`},r))}),(0,t.jsxs)("p",{className:"text-center mt-6 text-gray-600",children:["Showing ",Math.min(j+1,g.length),"-",Math.min(j+3,g.length)," of ",g.length," newest reviews"]})]}),(0,t.jsx)("div",{className:"text-center mt-12",children:(0,t.jsxs)("a",{href:"/reviews",className:"inline-flex items-center gap-2 px-8 py-4 bg-gradient-to-r from-blue-600 to-blue-700 text-white font-semibold rounded-lg hover:from-blue-700 hover:to-blue-800 transition-all duration-300 shadow-lg hover:shadow-xl text-lg",children:[(0,t.jsx)(l.StarIcon,{className:"w-6 h-6"}
1),"Read All ",b.total.toLocaleString(),"+ Google Reviews"]})})]})})}e.s(["default",()=>o],155816)},273782,e=>{"use strict";var t=e.i(843476),r=e.i(522016);function a(e){let{articles:a,title:l="Related HVAC Guides"}=e;return(0,t.jsx)("section",{className:"py-12 bg-gradient-to-b from-white to-gray-50",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[(0,t.jsx)("h2",{className:"text-3xl font-bold text-gray-900 mb-3 text-center",children:l}),(0,t.jsx)("p",{className:"text-gray-600 text-center mb-10",children:"Expert insights from our Portland HVAC professionals"}),(0,t.jsx)("div",{className:"grid md:grid-cols-3 gap-6",children:a.map((e,a)=>(0,t.jsxs)("div",{className:"group relative p-6 border border-gray-200 rounded-xl hover:shadow-lg hover:border-blue-300 transition-all bg-white",children:[(0,t.jsx)("div",{className:"mb-3",children:(0,t.jsx)("span",{className:"text-sm md:text-xs font-semibold uppercase tracking-wide text-blue-600",children:e.category.replace(/-/g," ")})}),(0,t.jsx)("h3",{className:"text-lg font-bold text-gray-900 group-hover:text-blue-600 transition-colors mb-2",children:(0,t.jsx)(r.default,{href:e.href,className:"after:absolute after:inset-0",children:e.title})}),e.readTime&&(0,t.jsxs)("p",{className:"text-base md:text-sm text-gray-500",children:[e.readTime," read"]}),(0,t.jsxs)("div",{className:"mt-4 flex items-center text-blue-600 font-semibold text-base md:text-sm group-hover:gap-2 transition-all","aria-hidden":"true",children:["Read Article",(0,t.jsx)("svg",{className:"w-4 h-4 ml-1 group-hover:translate-x-1 transition-transform",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]},a))}),(0,t.jsxs)("div",{className:"text-center mt-10",children:[(0,t.jsx)(r.default,{href:"/blog",className:"text-blue-700 font-semibold hover:underline",children:"Browse All 90+ HVAC Articles"}),(0,t.jsx)("span",{className:"text-blue-700 font-semibold","aria-hidden":"true",children:" â"})]})]})})}e.s(["default",()=>a])}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.