:root{--color-bg:#f5f2ed;--color-bg-dark:#1c1b19;--color-text:#2a2926;--color-text-muted:#5c5a56;--color-accent:#bf5727fe;--color-accent-hover:#a74820;--color-white:#fff;--font-heading:"Barlow Semi Condensed",sans-serif;--font-body:"Source Sans 3",sans-serif;--container:min(1120px, 92vw);--space-section:clamp(3rem, 6vw, 5rem);--radius:6px;--shadow:0 4px 20px rgba(0, 0, 0, 0.08);--transition:0.2s ease}@font-face{font-family:'Barlow Semi Condensed';src:url('./assets/fonts/BarlowSemiCondensed-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Barlow Semi Condensed';src:url('./assets/fonts/BarlowSemiCondensed-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Source Sans 3';src:url('./assets/fonts/SourceSans3-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:'Barlow Semi Condensed';src:url('./assets/fonts/BarlowSemiCondensed-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:'Source Sans 3';src:url('./assets/fonts/SourceSans3-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'Source Sans 3';src:url('./assets/fonts/SourceSans3-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}*,::after,::before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body),sans-serif;font-size:1.05rem;line-height:1.6;color:var(--color-text);background:var(--color-bg)}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-accent-hover)}h1,h2,h3{font-family:var(--font-heading),sans-serif;font-weight:700;margin:0 0 .5em;line-height:1.2}.container{width:var(--container);margin-left:auto;margin-right:auto;padding-left:clamp(1rem,4vw,2rem);padding-right:clamp(1rem,4vw,2rem)}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(28,27,25,.95);backdrop-filter:blur(8px);color:var(--color-white)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding-top:.9rem;padding-bottom:.9rem}.logo{font-family:var(--font-heading),sans-serif;font-weight:700;font-size:1.35rem;color:var(--color-white);letter-spacing:.02em}.logo:hover{color:var(--color-accent)}.nav{display:flex;gap:1.75rem}.nav a{color:rgba(255,255,255,.9);font-weight:500}.nav a:hover{color:var(--color-accent)}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;border:none;background:0 0;cursor:pointer;color:var(--color-white)}.nav-toggle span{display:block;width:22px;height:2px;background:currentColor;border-radius:1px;transition:var(--transition)}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{position:relative;min-height:85vh;display:flex;align-items:center;background:var(--color-bg-dark);color:var(--color-white);padding-top:5rem;padding-bottom:3rem;overflow:hidden}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--color-bg-dark);background-image:url("assets/images/contractor-crew-pouring-concrete.webp");background-position:center;background-size:cover;background-repeat:no-repeat;z-index:0}.hero-overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(28,27,25,.88) 0,rgba(28,27,25,.75) 50%,rgba(28,27,25,.9) 100%)}.hero-content{position:relative;z-index:1}.hero h1{font-size:clamp(2rem, 5vw, 3.25rem);margin-bottom:.75em;letter-spacing:-.02em}.hero h1 span{color:var(--color-accent)}.hero-tagline{font-size:clamp(1rem, 2vw, 1.2rem);color:rgba(255,255,255,.85);max-width:32em;margin-bottom:1.75rem}.btn{display:inline-block;padding:.85rem 1.75rem;font-family:var(--font-heading),sans-serif;font-weight:600;font-size:1rem;text-align:center;border:none;border-radius:var(--radius);cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-primary{background:var(--color-accent);color:var(--color-white)}.btn-primary:hover{background:var(--color-accent-hover);color:var(--color-white);transform:translateY(-1px)}.section{padding-top:var(--space-section);padding-bottom:var(--space-section)}.section-title{font-size:clamp(1.75rem, 3vw, 2.25rem);text-align:center;margin-bottom:2rem;color:var(--color-text)}.services{background:var(--color-white);box-shadow:var(--shadow)}.services-intro{text-align:center;color:var(--color-text-muted);max-width:38em;margin:-.5rem auto 1.75rem;font-size:1rem}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.75rem;max-width:960px;margin:0 auto}.service-card{padding:1.75rem;background:var(--color-bg);border-radius:var(--radius);border-left:4px solid var(--color-accent);transition:box-shadow var(--transition)}.service-card:hover{box-shadow:var(--shadow)}.service-icon{font-size:1.5rem;color:var(--color-accent);margin-bottom:.5rem}.service-card h3{font-size:1.2rem;margin-bottom:.4em}.service-card p{margin:0;color:var(--color-text-muted);font-size:.98rem}.gallery{background:var(--color-bg)}.gallery-intro{text-align:center;color:var(--color-text-muted);max-width:38em;margin:0 auto 2rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;max-width:1000px;margin:0 auto}.gallery-item{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;background:var(--color-bg-dark);box-shadow:var(--shadow)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-item:hover img{transform:scale(1.03)}@media (max-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}@media (max-width:480px){.gallery-grid{grid-template-columns:1fr}}.before-after{background:var(--color-white);box-shadow:var(--shadow)}.before-after-list{display:flex;flex-direction:column;gap:2.5rem;max-width:900px;margin:0 auto}.before-after-pair{margin:0}.pair-caption{font-size:1.15rem;margin-bottom:.75rem;color:var(--color-text);text-align:center}.pair-images{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;align-items:start}.pair-half{margin:0;border-radius:var(--radius);overflow:hidden;background:var(--color-bg);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:0}.pair-half img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.pair-half img+img{margin-top:.5rem}.pair-half figcaption{padding:.5rem .75rem;font-family:var(--font-heading),sans-serif;font-weight:600;font-size:.85rem;color:var(--color-text-muted);text-align:center;background:var(--color-bg)}@media (max-width:640px){.pair-images{grid-template-columns:1fr}.pair-caption{text-align:left}}.about{background:var(--color-bg)}.about-inner{display:flex;flex-direction:column;gap:2rem;align-items:start;max-width:720px;margin:0 auto}.about-text p{margin:0 0 1em;color:var(--color-text-muted)}.about-text p:last-child{margin-bottom:0}.about-badge{align-self:center;background:var(--color-bg-dark);color:var(--color-white);padding:.5rem 1rem;border-radius:var(--radius);white-space:nowrap}.badge-text{font-family:var(--font-heading),sans-serif;font-weight:600;font-size:.95rem}#image-gallery{background:var(--color-white)}.carousel-wrapper{max-width:800px;margin:0 auto;font-family:var(--font-body),sans-serif;padding:10px}.main-image-container{width:100%;aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:15px;position:relative;border-radius:var(--radius)}#main-display{width:100%;height:100%;object-fit:cover;transition:opacity .2s ease-in-out}.nav-arrow{position:absolute;top:50%;transform:translateY(-50%);background-color:rgba(0,0,0,.4);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s ease,background-color .2s ease;padding:8px}.nav-arrow img,.nav-arrow svg{width:24px;height:24px;filter:invert(1)}.main-image-container:hover .nav-arrow{opacity:1}.nav-arrow:hover{background-color:rgba(0,0,0,.8)}.left-arrow{left:15px}.right-arrow{right:15px}.thumbnail-track{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;scrollbar-width:thin}.thumbnail-track::-webkit-scrollbar{height:8px}.thumbnail-track::-webkit-scrollbar-thumb{background:#555;border-radius:4px}.thumbnail{height:80px;width:120px;object-fit:cover;cursor:pointer;opacity:.5;transition:all .2s ease;flex-shrink:0;border-radius:var(--radius)}.thumbnail:hover{opacity:.8}.thumbnail.active{opacity:1;outline:2px solid #fff;outline-offset:-2px}.contact{background:var(--color-white)}.contact-intro{text-align:center;color:var(--color-text-muted);max-width:36em;margin:0 auto 2rem}.contact-wrap{display:grid;grid-template-columns:1fr 280px;gap:2.5rem;align-items:start;max-width:800px;margin:0 auto}.contact-form{display:flex;flex-direction:column;gap:.75rem}.contact-form label{font-weight:600;font-size:.9rem;color:var(--color-text)}.contact-form input,.contact-form textarea{font-family:var(--font-body),sans-serif;font-size:1rem;padding:.65rem .9rem;border:1px solid #d4d0c8;border-radius:var(--radius);background:var(--color-bg);transition:border-color var(--transition)}.contact-form input:focus,.contact-form textarea:focus{outline:0;border-color:var(--color-accent)}.contact-form textarea{resize:vertical;min-height:218px}.form-status{font-size:.95rem;margin:.25rem 0 0;min-height:1.4em}.form-status--success{color:#0d7d4c}.form-status--error{color:#b91c1c}.contact-form .btn{align-self:flex-start;margin-top:.25rem}.contact-info{background:var(--color-bg);padding:1.5rem;border-radius:var(--radius);width:auto}.contact-info h3{font-size:1.1rem;margin-bottom:1rem}.contact-info p{margin:0 0 1rem;font-size:.95rem;color:var(--color-text-muted)}.contact-info p:last-child{margin-bottom:0}.contact-info a{color:var(--color-text);font-weight:500}.contact-info a:hover{color:var(--color-accent)}.contact-info iframe{border:0;width:100%;height:220px;margin-top:1.5rem;border-radius:var(--radius);display:block}.site-footer{background:var(--color-bg-dark);color:rgba(255,255,255,.7);padding:1.25rem;text-align:center;font-size:.9rem}@media (max-width:768px){.nav-toggle{display:flex;position:relative;z-index:101}.nav{position:fixed;top:0;right:0;width:min(280px,85vw);height:100vh;background:var(--color-bg-dark);flex-direction:column;align-items:flex-start;padding:5rem 1.5rem 1.5rem;gap:0;transform:translateX(100%);transition:transform .25s ease;box-shadow:-4px 0 20px rgba(0,0,0,.2)}.nav.is-open{transform:translateX(0)}.nav a{padding:.75rem 0;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.1);width:100%}.hero{min-height:75vh;padding-top:4rem}.about-inner{grid-template-columns:1fr}.about-badge{justify-self:start}.contact-wrap{grid-template-columns:1fr}.contact-info{order:-1}}@media (max-width:480px){.services-grid{grid-template-columns:1fr}}