1�<!DOCTYPE html>�<html lang="en">�<head>�<meta id="view" name="viewport" content="width=device-width" />�<link rel="preload" as="script" href="/resources/scripts/jquery/jquery-3.3.1.min.js" fetchpriority="high">�
1<script src="/resources/scripts/jquery/jquery-3.3.1.min.js" defer type="text/javascript" fetchpriority="high"></script>
1�<link rel="preload" as="image" href="/Images_Content/Site3/Images/Banners/rochester-premier-custom-construction-victor-ny-custom-home.jpg"�fetchpriority="high">�<link rel="preload" as="script" href="/resources/flexslider/jquery.flexslider-min.js">�
1<script src="/resources/flexslider/jquery.flexslider-min.js" defer type="text/javascript"></script>
1�<link rel="preload" as="script" href="/GA4/G-53QMCQ5Q90.js">�<link rel="preload" href="/resources/fonts/mulish-regular.woff2" as="font" type="font/woff2" crossorigin>�<link rel="preload" href="/resources/fonts/mulish-bold.woff2" as="font" type="font/woff2" crossorigin>�<link rel="preload" href="/resources/fonts/mulish-black.woff2" as="font" type="font/woff2" crossorigin>�<title>General Contractor in Victor & Canandaigua, NY | SL Custom Construction</title>�<meta name="description" content="SL Custom Construction is Ontario County's trusted contractor for custom decks, outdoor living spaces, and premium interior remodeling. Proudly serving Victor, Canandaigua, and Farmington since 2007.">�<link rel="canonical" href="https://www.sl-custom.com" />�<meta property="og:url" content="https://www.sl-custom.com" />�<meta property="og:type" content="website" />�<meta property="og:title" content="General Contractor in Victor & Canandaigua, NY | SL Custom Construction" />�<meta property="og:description" content="SL Custom Construction is Ontario County's trusted contractor for custom decks, outdoor living spaces, and premium interior remodeling. Proudly serving Victor, Canandaigua, and Farmington since 2007." />�<meta property="og:image:secure_url" content="https://www.sl-custom.com/Images_Content/Site3/Images/Pages/page%2Dthumbnail%2Dhome%2Ejpg" />�<meta property="og:image" content="https://www.sl-custom.com/Images_Content/Site3/Images/Pages/page%2Dthumbnail%2Dhome%2Ejpg" />�<meta property="og:image:width" content="1200" />�<meta property="og:image:height" content="628" />�<link rel="icon" type="image/png" href="https://www.sl-custom.com/images_content/site3/images/favicon/favicon-96x96.png" sizes="96x96" />�<link rel="icon" type="image/svg+xml" href="https://www.sl-custom.com/images_content/site3/images/favicon/favicon.svg" />�<link rel="shortcut icon" href="https://www.sl-custom.com/images_content/site3/images/favicon/favicon.ico" />�<link rel="apple-touch-icon" sizes="180x180" href="https://www.sl-custom.com/images_content/site3/images/favicon/apple-touch-icon.png" />�<meta name="apple-mobile-web-app-title" content="SL Custom Construction" />�<link rel="manifest" href="https://www.sl-custom.com/images_content/site3/images/favicon/site.webmanifest" />�<link rel="image_src" href="https://www.sl-custom.com/Images_Content/Site3/Images/Pages/page%2Dthumbnail%2Dhome%2Ejpg" />�
1<script type="application/ld+json">{�"@context": "https://schema.org",�"@graph": [�{�"@type": ["GeneralContractor", "HomeAndConstructionBusiness", "LocalBusiness"],�"@id": "https://www.sl-custom.com/#business",�"name": "SL Custom Construction",�"legalName": "SL Custom Construction",�"slogan": "Upgrading Homes From Top to Bottom",�"description": "SL Custom Construction is a premier general contractor in Victor, NY, and Monroe County. With over 50 years of combined experience, we specialize in high-quality interior remodeling, custom kitchen renovations, outdoor living spaces, custom decks, concrete and masonry, and exterior renovations.",�"url": "https://www.sl-custom.com/",�"logo": "https://www.sl-custom.com/images_content/site3/images/favicon/favicon-96x96.png",�"image": "https://www.sl-custom.com/Images_Content/Site3/Images/Banners/rochester-premier-custom-construction-victor-ny-custom-home.jpg",�"telephone": "+1-585-704-1187",�"email": "[email protected]",�"priceRange": "$$",�"address": {�"@type": "PostalAddress",�"streetAddress": "6600 Rice Rd Bldg 1",�"addressLocality": "Victor",�"addressRegion": "NY",�"postalCode": "14564",�"addressCountry": "US"�},�"geo": {�"@type": "GeoCoordinates",�"latitude": "42.9818",�"longitude": "-77.4089"�},�"openingHoursSpecification": [�{�"@type": "OpeningHoursSpecification",�"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],�"opens": "07:00",�"closes": "17:00"�}�],�"areaServed": [�{�"@type": "City",�"name": "Victor",�"sameAs": "https://en.wikipedia.org/wiki/Victor_(town),_New_York"�},�{�"@type": "AdministrativeArea",�"name": "Monroe County",�"sameAs": "https://en.wikipedia.org/wiki/Monroe_County,_New_York"�},�{�"@type": "City",�"name": "Rochester"�}�],�"knowsAbout": [�"Kitchen Remodeling",�"Interior Remodeling",�"Deck Building",�"Composite Decks",�"Concrete & Masonry",�"Stamped Concrete",�"Home Additions",�"In-law Suites",�"Roofing and Siding",�"Windows and Doors",�"Basement Renovations",�"Garage Conversions"�],�"hasOfferCatalog": {�"@type": "OfferCatalog",�"name": "Construction and Remodeling Services",�"itemListElement": [�{�"@type": "OfferCatalog",�"name": "Interior Remodeling Services",�"itemListElement": [�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Kitchen Remodeling", "description": "Full-service kitchen design, custom cabinetry, countertop installation, and layout upgrades." } },�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Basement Renovations", "description": "Finishing and remodeling for basements and lower levels." } }�]�},�{�"@type": "OfferCatalog",�"name": "Outdoor Living & Exteriors",�"itemListElement": [�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Deck & Porch Building", "description": "Custom wooden and composite decks, porches, and pergolas." } },�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Concrete & Masonry", "description": "Patios, stamped concrete, garage slabs, and basement floors." } },�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Roofing & Siding", "description": "Exterior home weatherproofing, roof repair, and siding installation." } }�]�},�{�"@type": "OfferCatalog",�"name": "Home Additions",�"itemListElement": [�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "In-law Suites", "description": "Custom designed attached or detached in-law living quarters." } },�{ "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Sunrooms", "description": "Four-season sunroom additions." } }�]�}�]�},�"review": [�{�"@type": "Review",�"author": { "@type": "Person", "name": "Nicole D." },�"datePublished": "2023-08-15",�"reviewBody": "I recently had a brand-new deck and steps installed at my home, and I couldn't be more pleased with the results! A huge thank you to Scott, Chad, Brandon, Ed, Rick, and the entire crew for their excellent work.",�"reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }�},�{�"@type": "Review",�"author": { "@type": "Person", "name": "Adrienne B." },�"datePublished": "2023-06-10",�"reviewBody": "SL Custom Construction will be my go to company for all home improvement and repairs, big projects or small. When SL Custom Construction came to my home and explained the repairs, I was so relieved, and I knew I was in good hands.",�"reviewRating": { "@type": "Rating", "ratingValue": "5", "bestRating": "5" }�}�],�"sameAs": [�"https://www.facebook.com/SLCustomConstructionNY",�"https://www.bbb.org/us/ny/victor/profile/remodel-contractors/sl-custom-construction-0041-236010247"�]�},�{�"@type": "WebSite",�"@id": "https://www.sl-custom.com/#website",�"url": "https://www.sl-custom.com/",�"name": "SL Custom Construction",�"publisher": {�"@
1id": "https://www.sl-custom.com/#business"�}�}�]�}</script>
1�<link rel="alternate" type="application/rss+xml" title="SL Custom Construction Articles Feed" href="https://www.sl-custom.com/Feeds/articles.xml" />�<style type="text/css">�@keyframes pulsegreen {�0%, 100% { box-shadow: 0px 0px 20px 10px green; }�10%, 90% { box-shadow: 0px 0px 22px 12px green; }�20%, 80% { box-shadow: 0px 0px 24px 14px green; }�30%, 70% { box-shadow: 0px 0px 26px 16px green; }�40%, 60% { box-shadow: 0px 0px 28px 18px green; }�50% { box-shadow: 0px 0px 30px 20px green; }�}�@keyframes pulsered {�0%, 100% { box-shadow: 0px 0px 20px 10px red; }�10%, 90% { box-shadow: 0px 0px 22px 12px red; }�20%, 80% { box-shadow: 0px 0px 24px 14px red; }�30%, 70% { box-shadow: 0px 0px 26px 16px red; }�40%, 60% { box-shadow: 0px 0px 28px 18px red; }�50% { box-shadow: 0px 0px 30px 20px red; }�}�</style>�<meta name="format-detection" content="telephone=no">�<meta http-equiv="content-language" content="en-us">�<style type="text/css">�:root {�@font-face {�font-family: 'Mulish';�src: url('/resources/fonts/mulish-regular.woff2') format('woff2'),�url('/resources/fonts/mulish-regular.woff') format('woff');�font-weight: 400;�font-display: swap;�}�@font-face {�font-family: 'Mulish';�src: url('/resources/fonts/mulish-bold.woff2') format('woff2'),�url('/resources/fonts/mulish-bold.woff') format('woff');�font-weight: 700;�font-display: swap;�}�@font-face {�font-family: 'Mulish';�src: url('/resources/fonts/mulish-black.woff2') format('woff2'),�url('/resources/fonts/mulish-black.woff') format('woff');�font-weight: 900;�font-display: swap;�}�--font-heading:�"Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;�--font-body:�"Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;�/* Font Weights ââ¬â Mulish Black doubles as our "heading" weight */�--fw-regular: 400;�--fw-medium: 600;�--fw-bold: 700;�--fw-black: 900;�/* Brand Colors (from brand guide) */�--color-black: #000000;�--color-red: #ed2027;�--color-gray-dark: #9e9d9e;�--color-gray-light: #e5e5e5;�--color-white: #ffffff;�--color-red-deep: #b5171c;�--color-text-body: #4a4a4a;�--color-text-muted: #6e6e6e;�/* Gradients */�--gradient-red: linear-gradient(�135deg,�var(--color-red-deep) 0%,�var(--color-red) 100%�);�--gradient-dark: linear-gradient(�135deg,�#1a1a1a 0%,�var(--color-black) 100%�);�/* Semantic aliases */�--color-primary: var(--color-black);�--color-accent: var(--color-red);�--color-secondary: var(--color-gray-dark);�--color-dark: var(--color-black);�/* Text */�--color-heading: var(--color-black);�--color-text-primary: var(--color-black);�--color-text-secondary: var(--color-text-body);�--color-text-muted: var(--color-text-muted);�--color-text-inverse: var(--color-white);�/* Borders */�--color-border-light: var(--color-gray-light);�/* Backgrounds */�--color-bg-secondary: #f7f7f7;�/* Spacing Scale */�--space-xs: 0.5rem;�--space-sm: 1rem;�--space-md: 2rem;�--space-lg: 3rem;�--space-xl: 4rem;�--space-2xl: 6rem;�--space-3xl: 8rem;�/* Container */�--container-max: 1400px;�--container-padding: var(--space-sm);�--max-width: 1400px;�/* Border Radius */�--radius-sm: 4px;�--radius-md: 8px;�--radius-lg: 12px;�--radius-xl: 24px;�--radius-pill: 500px;�/* Transitions */�--transition-fast: 0.2s ease;�--transition-base: 0.3s ease;�--transition-slow: 0.5s ease;�/* Shadows */�--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);�--shadow-md: 0 4px 8px rgba(0, 0, 0, 0.15);�--shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.2);�/* Z-index Scale */�--z-dropdown: 1000;�--z-sticky: 1020;�--z-fixed: 1030;�--z-modal-backdrop: 1040;�--z-modal: 1050;�--z-popover: 1060;�--z-tooltip: 1070;�/* Fluid Type Scale */�--fs-h1: clamp(2rem, 3vw + 1rem, 3.5rem);�--fs-h2: clamp(1.75rem, 2.5vw + 0.75rem, 3rem);�--fs-h3: clamp(1.5rem, 2vw + 0.5rem, 2.25rem);�--fs-h4: clamp(1.25rem, 1.5vw + 0.5rem, 1.75rem);�--fs-h5: clamp(1.125rem, 1vw + 0.5rem, 1.5rem);�--fs-h6: clamp(1rem, 0.5vw + 0.5rem, 1.25rem);�--fs-body: clamp(1rem, 0.5vw + 0.5rem, 1.25rem);�--fs-body-sm: 0.875rem;�/* Line Heights */�--lh-tight: 1.15;�--lh-normal: 1.6;�/* Letter Spacing */�--ls-tight: -0.01em;�--ls-normal: 0;�--ls-wide: 0.05em;�}�*,�*::before,�*::after {�box-sizing: border-box;�margin: 0;�padding: 0;�}�html {�scroll-behavior: smooth;�-webkit-font-smoothing: antialiased;�-moz-osx-font-smoothing: grayscale;�}�body {�font-family: var(--font-body);�font-weight: var(--fw-regular);�color: var(--color-text-primary);�line-height: var(--lh-normal);�background-color: var(--color-white);�}�img {�width: 100%;�height: 100%;�max-width: 100%;�display: block;�object-fit: cover;�}�a {�text-decoration: none;�color: inherit;�transition: color var(--transition-base);�}�ul,�ol {�list-style: none;�margin: 0;�padding: 0;�}�button {�font-family: inherit;�cursor: pointer;�border: none;�background: none;�appearance: none;�color: inherit;�}�h1,�h2,�h3,�h4,�h5,�h6 {�font-family: var(--font-heading);�font-weight: var(--fw-black);�line-height: var(--lh-tight);�letter-spacing: var(--ls-tight);�color: var(--color-heading);�margin-bottom: 1rem;�}�h1 {�font-size: var(--fs-h1);�margin-bottom: 1.5rem;�}�h2 {�font-size: var(--fs-h2);�margin-bottom: 1.25rem;�}�h3 {�font-size: var(--fs-h3);�margin-bottom: 1rem;�}�h4 {�font-size: var(--fs-h4);�margin-bottom: 0.75rem;�}�h5 {�font-size: var(--fs-h5);�font-weight: var(--fw-bold);�margin-bottom: 0.5rem;�}�h6 {�font-size: var(--fs-h6);�font-weight: var(--fw-bold);�margin-bottom: 0.5rem;�}�p {�font-size: var(--fs-body);�margin-bottom: 1.5rem;�line-height: 1.8;�}�span {�font-family: var(--font-heading);�line-height: 1;�}�.btn {�display: inline-block;�padding: 1.5rem 2rem;�background: var(--gradient-red);�border: 2px solid var(--color-red);�color: var(--color-white);�font-family: var(--font-heading);�font-size: var(--fs-h6);�font-weight: var(--fw-bold);�letter-spacing: 1px;�text-transform: capitalize;�transition: all var(--transition-base);�cursor: pointer;�border-radius: var(--radius-pill);�text-align: center;�white-space: nowrap;�flex-shrink: 0;�}�.btn:hover {�background: transparent;�border-color: var(--color-red);�color: var(--color-red);�}�.btn--outline {�background: transparent;�border-color: var(--color-red);�color: var(--color-white);�}�.btn--outline:hover {�background: var(--gradient-red);�border-color: var(--color-red);�color: var(--color-white);�}�.content-section .btn--outline,�.cta-band .btn--outline {�color: var(--color-black);�}�.content-section .btn--outline:hover,�.cta-band .btn--outline:hover {�color: var(--color-white);�}�/* Solid black ââ¬â used for in-card "Learn More" pills */�.btn--black {�background: var(--color-black);�border-color: var(--color-black);�color: var(--color-white);�padding: 0.85rem 1.75rem;�font-size: var(--fs-body-sm);�}�.btn--black:hover {�background: var(--color-red);�border-color: var(--color-red);�color: var(--color-white);�}�.btn-group {�display: flex;�justify-content: center;�align-items: center;�gap: 1rem;�flex-wrap: wrap;�}�@media (max-width: 900px) {�.btn {�padding: 1rem 2rem;�text-wrap: wrap;�}�}�@media (max-width: 600px) {�.btn {�padding: 1rem 1.5rem;�font-size: var(--fs-body-sm);�width: 100%;�}�.btn-group {�flex-direction: column;�}�}�.contentnorm,�.contentnorm-ann {�text-align: left;�font-family: var(--font-body);�font-size: var(--fs-body);�color: var(--color-text-primary);�line-height: 1.6;�}�.contentnorm-ann {�color: var(--color-text-inverse);�padding: var(--space-md) 0;�}�.contentnorm a,�.contentnorm b,�.contentnorm strong,�.contentnorm-ann a,�.contentnorm-ann b,�.contentnorm-ann strong {�font-family: var(--font-heading);�font-weight: var(--fw-bold);�text-decoration: none;�}
1�.contentnorm a:not(.btn):not(.card-link):not(.contact__value) {�color: inherit;�text-decoration: none;�text-underline-offset: 2px;�}�.contentnorm a:not(.btn):not(.card-link):not(.contact__value):hover,�.contentnorm-ann a:not(.btn):hover {�color: var(--color-accent);�}�.contentnorm ul,�.contentnorm ol {�margin: 0 0 var(--space-md);�}�.contentnorm li {�padding-bottom: var(--space-sm);�color: var(--color-text-secondary);�font-size: var(--fs-body);�}�.contentnorm-ann li {�color: var(--color-text-inverse);�}�.contentnorm h1,�.contentnorm h2,�.contentnorm h3,�.contentnorm h4,�.contentnorm h5,�.contentnorm h6 {�font-family: var(--font-heading);�color: var(--color-heading);�line-height: 1.25;�letter-spacing: var(--ls-tight);�}�.contentnorm h1 {�font-size: var(--fs-h1);�margin-bottom: var(--space-md);�}�.contentnorm h2 {�font-size: var(--fs-h2);�margin-bottom: var(--space-sm);�}�.contentnorm h3 {�font-size: var(--fs-h3);�margin-bottom: var(--space-sm);�}�.contentnorm p {�font-size: var(--fs-body);�margin-bottom: var(--space-md);�line-height: 1.8;�}�.contentnorm blockquote {�border-left: 4px solid var(--color-accent);�padding-left: var(--space-md);�margin: var(--space-lg) 0;�font-style: italic;�color: var(--color-text-muted);�}�.contentnorm hr {�border: none;�border-top: 1px solid var(--color-border-light);�margin: var(--space-xl) 0;�}�.contentnorm table {�width: 100%;�border-collapse: collapse;�margin: var(--space-lg) 0;�}�.contentnorm th,�.contentnorm td {�padding: var(--space-sm);�text-align: left;�border-bottom: 1px solid var(--color-border-light);�}�.contentnorm th {�font-weight: var(--fw-bold);�font-family: var(--font-heading);�background-color: var(--color-bg-secondary);�}�.contentnorm code {�font-family: "Courier New", Courier, monospace;�font-size: 0.9em;�background-color: var(--color-bg-secondary);�padding: 2px 6px;�border-radius: var(--radius-sm);�}�.contentnorm pre {�background-color: var(--color-bg-secondary);�padding: var(--space-md);�border-radius: var(--radius-md);�overflow-x: auto;�margin: var(--space-lg) 0;�}�.contentnorm pre code {�background: none;�padding: 0;�}�/* Dark-background overrides ââ¬â forces white text on p/li/strong/em/span�whenever contentnorm sits inside a black or red utility background */�.bg-black .contentnorm,�.bg-red .contentnorm,�.contentnorm.bg-black,�.contentnorm.bg-red {�color: var(--color-white);�}�.bg-black .contentnorm p,�.bg-red .contentnorm p,�.contentnorm.bg-black p,�.contentnorm.bg-red p {�color: var(--color-white);�}�.bg-black .contentnorm li,�.bg-red .contentnorm li,�.contentnorm.bg-black li,�.contentnorm.bg-red li {�color: rgba(255, 255, 255, 0.9);�}�.bg-black .contentnorm strong,�.bg-black .contentnorm em,�.bg-black .contentnorm span,�.bg-red .contentnorm strong,�.bg-red .contentnorm em,�.bg-red .contentnorm span,�.contentnorm.bg-black strong,�.contentnorm.bg-black em,�.contentnorm.bg-black span,�.contentnorm.bg-red strong,�.contentnorm.bg-red em,�.contentnorm.bg-red span {�color: var(--color-white);�}�.bg-black .contentnorm h1,�.bg-black .contentnorm h2,�.bg-black .contentnorm h3,�.bg-black .contentnorm h4,�.bg-black .contentnorm h5,�.bg-black .contentnorm h6 {�color: var(--color-white);�}�.bg-black .contentnorm a:not(.btn) {�color: var(--color-gray-light);�}�.bg-black .contentnorm a:not(.btn):hover {�color: var(--color-red);�}�.left-text {�text-align: left;�}�.right-text {�text-align: right;�}�.center-text {�text-align: center;�}�.bg-black {�background-color: var(--color-black);�}�.bg-red {�background-color: var(--color-red);�}�.bg-gray-dark {�background-color: var(--color-gray-dark);�}�.bg-gray-light {�background-color: var(--color-gray-light);�}�.bg-white {�background-color: var(--color-white);�}�.overlay {�position: fixed;�inset: 0;�background: rgba(0, 0, 0, 0.5);�z-index: calc(var(--z-fixed) - 1);�opacity: 0;�pointer-events: none;�transition: opacity var(--transition-base);�}�.overlay.active {�opacity: 1;�pointer-events: auto;�}�.split-heading {�margin-bottom: var(--space-md);�}�.split-heading__bold,�.split-heading__light {�display: block;�font-family: var(--font-heading);�line-height: 1.2;�}�.split-heading__bold {�font-weight: var(--fw-black);�}�.split-heading__light {�font-weight: var(--fw-regular);�}�/* Inline variant ââ¬â both lines share one row (CTA band, FAQ heading) */�.split-heading--inline .split-heading__bold,�.split-heading--inline .split-heading__light {�display: inline;�}�.split-heading--inline .split-heading__light {�margin-left: 0.4ch;�}�.section-heading-wrap {�text-align: center;�margin-bottom: var(--space-lg);�}�.section-heading {�display: inline-block;�position: relative;�font-family: var(--font-heading);�font-weight: var(--fw-black);�font-size: var(--fs-h2);�color: var(--color-black);�padding-bottom: var(--space-sm);�}�.section-heading::after {�content: "";�position: absolute;�left: 50%;�transform: translateX(-50%);�width: 90px;�height: 4px;�background-color: var(--color-red);�border-radius: 2px;�bottom: -20px;�}�.hero {�position: relative;�overflow: hidden;�min-height: 500px;�background-color: var(--color-black);�}�.hero__bg {�position: absolute;�inset: 0;�width: 100%;�height: 100%;�object-fit: cover;�object-position: center;�z-index: 1;�}�/* Black gradient overlay */�.hero__overlay {�position: absolute;�inset: 0;�background: linear-gradient(�180deg,�rgba(0, 0, 0, 0.78) 0%,�rgba(0, 0, 0, 0.55) 45%,�rgba(0, 0, 0, 0.8) 100%�);�z-index: 2;�}�/* SL Custom gray diamond graphic ââ¬â above the black overlay, below text */�.hero__brand-overlay {�position: absolute;�inset: 0;�background-image: url("/Images_Content/Site3/Images/Layout/background-overlay.png");�background-size: cover;�background-position: center;�background-repeat: no-repeat;�z-index: 3;�opacity: 0.9;�pointer-events: none;�}�.hero__content {�position: relative;�z-index: 4;�max-width: 900px;�margin: 0 auto;�padding: var(--space-3xl) var(--space-xl);�text-align: center;�}�.hero-slide-inner {�position: relative;�overflow: hidden;�min-height: 500px;�}�.hero-slide-bg {�position: absolute;�inset: 0;�width: 100%;�height: 100%;�object-fit: cover;�z-index: 1;�}�.hero__title {�color: var(--color-white);�text-transform: none;�}�.hero__title .split-heading__bold {�font-size: var(--fs-h1);�}�.hero__title .split-heading__light {�font-size: var(--fs-h2);�font-weight: var(--fw-regular);�}�.hero__subtitle {�font-family: var(--font-body);�font-size: var(--fs-body);�color: rgba(255, 255, 255, 0.9);�margin-bottom: var(--space-lg);�}�/* Static pagination dots ââ¬â swap for real flexslider/slider JS later */�.hero__dots {�position: absolute;�bottom: var(--space-lg);�left: 50%;�transform: translateX(-50%);�z-index: 4;�display: flex;�gap: 10px;�}�.hero__dot {�width: 10px;�height: 10px;�border-radius: 50%;�border: 1px solid var(--color-white);�background: transparent;�}�.hero__dot.is-active {�background: var(--color-white);�}�@media (max-width: 900px) {�.hero__content {�padding: var(--space-2xl) var(--space-md);�}�}�.hero--cta {�min-height: 480px;�height: auto;�padding: var(--space-3xl) 0;�}�.hero--cta .hero__content {�max-width: 800px;�padding: 0 var(--space-xl);�}�.hero--inside {�min-height: 320px;�height: auto;�padding: var(--space-2xl) 0;�}�.hero--inside .hero__overlay {�background: linear-gradient(�100deg,�rgba(0, 0, 0, 0.88) 0%,�rgba(0, 0, 0, 0.5) 60%,�rgba(0, 0, 0, 0.78) 100%�);�}�.hero--inside .hero__brand-overlay {�opacity: 0.5;�}�.hero--inside .hero__content {�text-align: left;�max-width: 720px;�margin: 0 0 0 var(--space-xl);�padding: 0;�}�.hero--inside .hero__title {�position: relative;�display: inline-block;�padding-bottom: var(--space-md);�font-size: var(--fs-h1);�font-weight: var(--fw-black);�color: var(--color-white);�margin-bottom: 0;�}�.hero--inside .hero__title::after {�content: "";�position: absolute;�bottom: 0;�left: 0;�width: 90px;�height: 4px;�background-color: var(--color-red);�border-radius: 2px;�}�@media (max-width: 900px) {�.hero--inside .hero__content {�margin-left: 0;�padding: 0 var(--space-md);�text-align: center;�}�.hero--inside .hero__title {�display: block;�}
1�.hero--inside .hero__title::after {�left: 50%;�transform: translateX(-50%);�}�}�.top-banner {�position: relative;�overflow: hidden;�min-height: 400px;�background-color: var(--color-black);�}�.top-banner::after {�content: '';�position: absolute;�inset: 0;�background-image: url(/Images_Content/Site3/Images/Layout/background-overlay.png);�background-size: cover;�background-position: center;�background-repeat: no-repeat;�opacity: 0.5;�z-index: 2;�pointer-events: none;�}�.top-banner__image {�position: absolute;�inset: 0;�width: 100%;�height: 100%;�object-fit: cover;�object-position: center;�z-index: 1;�}�.top-banner__overlay {�position: absolute;�inset: 0;�z-index: 2;�background:�linear-gradient(180deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.55) 45%, rgba(0, 0, 0, 0.8) 100%),�url("/Images_Content/Site3/Images/Layout/background-overlay.png");�background-size: cover, cover;�background-position: center, center;�background-repeat: no-repeat, no-repeat;�}�.top-banner__content {�position: relative;�z-index: 3;�max-width: 1000px;�margin: 0 auto;�padding: var(--space-3xl) var(--space-xl) var(--space-sm);�text-align: center;�}�.top-banner__content h1 {�position: relative;�color: var(--color-white);�font-size: var(--fs-h1);�font-weight: var(--fw-black);�text-transform: none;�line-height: 1.15;�margin-bottom: var(--space-md);�text-align: center;�}�.top-banner__content h1::after {�content: '';�position: absolute;�bottom: -20px;�left: 50%;�transform: translateX(-50%);�width: 90px;�height: 4px;�background-color: var(--color-red);�border-radius: 2px;�}�.top-banner__content h1::after {�display: none;�}�.top-banner__content {�position: relative;�z-index: 3;�max-width: 1000px;�margin: 0 auto;�padding: var(--space-3xl) var(--space-xl);�text-align: center;�}�.top-banner__content .accent-color {�font-size: var(--fs-h2);�font-weight: var(--fw-regular);�color: rgba(255, 255, 255, 0.9);�}�.top-banner__description {�display: block;�font-family: var(--font-body);�font-size: var(--fs-body);�color: rgba(255, 255, 255, 0.9);�max-width: 720px;�margin: 0 auto var(--space-lg);�}�.top-banner__btn-container {�display: flex;�gap: 15px;�justify-content: center;�margin-top: var(--space-md);�}�.top-banner__btn-container .btn-main {�display: inline-block;�padding: 1.5rem 2rem;�background: var(--gradient-red);�border: 2px solid var(--color-red);�color: var(--color-white);�font-family: var(--font-heading);�font-size: var(--fs-h6);�font-weight: var(--fw-bold);�letter-spacing: 1px;�text-transform: capitalize;�transition: all var(--transition-base);�cursor: pointer;�border-radius: var(--radius-pill);�text-align: center;�white-space: nowrap;�flex-shrink: 0;�}�.top-banner__btn-container .btn-main:hover {�background: transparent;�border-color: var(--color-red);�color: var(--color-red);�}�.top-banner__btn-container .btn-main--secondary {�display: inline-block;�padding: 1.5rem 2rem;�background: transparent;�border-color: var(--color-red);�color: var(--color-red);�font-family: var(--font-heading);�font-size: var(--fs-h6);�font-weight: var(--fw-bold);�letter-spacing: 1px;�text-transform: capitalize;�transition: all var(--transition-base);�cursor: pointer;�border-radius: var(--radius-pill);�text-align: center;�white-space: nowrap;�flex-shrink: 0;�}�.top-banner__btn-container .btn-main--secondary:hover {�background: var(--gradient-red);�border-color: var(--color-red);�color: var(--color-white);�}�.top-banner__btn-container .icon-box {�display: none;�}�@media (max-width: 900px) {�.top-banner__content {�padding: var(--space-2xl) var(--space-md);�}�.top-banner__btn-container {�flex-direction: column;�}�}�.ban-txt-cont {�position: absolute;�inset: 0;�z-index: 4;�display: flex;�flex-direction: column;�align-items: center;�justify-content: center;�text-align: center;�padding: var(--space-xl);�background:�linear-gradient(180deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.55) 45%, rgba(0, 0, 0, 0.8) 100%),�url("/Images_Content/Site3/Images/Layout/background-overlay.png");�background-size: cover, cover;�background-position: center, center;�background-repeat: no-repeat, no-repeat;�}�.banner-main {�display: block;�font-family: var(--font-heading);�font-weight: var(--fw-black);�color: var(--color-white);�text-transform: none;�line-height: 1.15;�margin-bottom: var(--space-md);�}�.banner-main__light {�font-weight: var(--fw-regular);�opacity: 0.9;�}�.ban-txt-cont .contentnorm {�font-family: var(--font-body);�letter-spacing: normal !important;�}�.ban-txt-cont > a {�display: inline-block;�margin-top: var(--space-md);�padding: 14px 32px;�background-color: var(--color-red);�color: var(--color-white);�font-family: var(--font-heading);�font-weight: var(--fw-bold);�text-transform: uppercase;�letter-spacing: 1px;�border-radius: 4px;�text-decoration: none;�}�.ban-txt-cont > a.banner-main__btn-secondary {�background-color: transparent;�border: 1px solid var(--color-white);�margin-left: 12px;�}�@media (max-width: 900px) {�.ban-txt-cont {�padding: var(--space-md);�}�}�.content-section {�padding: var(--space-xl);�}�.content-section__inner {�max-width: 900px;�margin: 0 auto 2rem;�text-align: center;�}�.content-section .split-heading__bold {�font-size: var(--fs-h2);�}�.content-section .split-heading__light {�font-size: var(--fs-h3);�font-weight: var(--fw-regular);�color: var(--color-text-secondary);�}�.content-section__inner p {�color: var(--color-text-secondary);�margin-bottom: var(--space-md);�}�@media (max-width: 800px) {�.content-section {�padding: var(--space-xl) var(--space-sm);�}�}�.content-section-split {�padding: var(--space-md) var(--space-md) var(--space-2xl);�background-color: var(--color-white);�}�.content-section-split__inner {�display: flex;�align-items: center;�gap: var(--space-2xl);�max-width: var(--container-max);�margin: 0 auto;�}�.content-section-split--reverse .content-section-split__inner { flex-direction: row-reverse; }�.content-section-split__content { flex: 1; text-align: left; }�.content-section-split__content h2 { font-size: var(--fs-h2); font-weight: var(--fw-black); color: var(--color-black); line-height: 1.1; }�.content-section-split__content > p {�font-family: var(--font-body); font-size: var(--fs-body); color: var(--color-text-secondary);�line-height: 1.8; margin-bottom: var(--space-md);�}�.content-section-split__image-col { flex: 1; width: 100%; }�.content-section-split__image-wrap { position: relative; width: 100%; aspect-ratio: 4 / 3; overflow: hidden; box-shadow: var(--shadow-lg); border-radius: var(--radius-md); }�.content-section-split__image-wrap img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }�.content-section-split__list { display: flex; flex-direction: column; gap: 0; margin-top: var(--space-sm); list-style: none; padding-left: 0; margin-left: 0; }�.content-section-split__list--numbered { counter-reset: split-step; }�.content-section-split__list--numbered .content-section-split__item-title::before {�counter-increment: split-step;�content: counter(split-step) ". ";�color: var(--color-red);�}�.content-section-split__item {�display: block;�padding: var(--space-sm) 0;�border-bottom: 1px solid var(--color-border-light);�transition: opacity var(--transition-fast);�}�.content-section-split__item:last-child { border-bottom: none; }�.content-section-split__item-title {�display: flex; align-items: center; gap: 0.5rem;�font-family: var(--font-heading); font-weight: var(--fw-black); font-size: var(--fs-h5); color: var(--color-black);�margin-bottom: 0.3rem;�}�.content-section-split__item-arrow { width: 16px; height: 12px; flex-shrink: 0; object-fit: contain; transition: transform var(--transition-fast); }�.content-section-split__item:hover .content-section-split__item-arrow { transform: translateX(4px); }�.content-section-split__item-desc {�display: block; font-family: var(--font-body); font-size: var(--fs-body); color: var(--color-text-secondary); line-height: 1.6; padding: 1rem 0; font-weight: var(--fw-regular);�}�@media (max-width: 900px) {�.content-section-split__inner,�.content-section-split--reverse .content-section-split__inner { flex-direction: column; gap: var(--space-lg); }�.content-section-split__content { text-align: center; }�.content-section-split__content h2 { text-align: center; }�.content-section-split__item-title { justify-content: center; }�}�.card-link {�display: flex;�flex-direction: column;�position: relative;�overflow: hidden;�text-align: left;�background: var(--color-white);�border: 2px solid var(--color-gray-light);�box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);�transition:�border-color var(--transition-base),�box-shadow var(--transition-base),�transform var(--transition-base);�flex: 0.5;�}�.card-link:has(.card-link__btn:hover) {�border-color: var(--color-red);�box-shadow: var(--shadow-lg);�transform: translateY(-3px);�}�.card-link__image {�width: 100%;�height: 400px;�object-fit: cover;�display: block;�}�.card-link__body {�display: flex;�flex-direction: column;�align-items: flex-start;�gap: var(--space-sm);�padding: var(--space-lg);�flex: 1;�}�.card-link__body ul,�.card-link__body ol {�padding-left: 0;�margin-left: 0;�margin-top: 1rem;�}�.card-link__body li {�padding-left: 0;�margin-left: 0;�}�.sub-service-links a {�color: inherit;�text-decoration: underline;�}�.sub-service-links a:hover {�text-decoration: none;�}�.card-link__title {�display: block;�font-family: var(--font-heading);�font-weight: var(--fw-black);�font-size: var(--fs-h5);�color: var(--color-black);�line-height: 1.3;�}�.card-link__title a:hover{�color: var(--color-red);�}�.card-link__desc {�display: block;�font-family: var(--font-body);�font-size: var(--fs-body);�color: var(--color-text-secondary);�line-height: 1.7;�font-weight: var(--fw-regular);�}�p.card-link__desc {�margin-bottom: 0;�}�.card-link__btn {�display: inline-block;�margin-top: 0.25rem;�padding: 1rem 2rem;�background: var(--color-black);�color: var(--color-white) !important;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-body-sm);�text-transform: capitalize;�letter-spacing: 0.5px;�text-transform: uppercase;�border-radius: var(--radius-pill);�transition: background-color var(--transition-base);�margin-top: auto;�}�.card-link__btn:hover {�background: var(--color-red);�color: var(--color-black);�}�/* Seasonal card-link wrapper hover effect */�.card-link--linked {�display: block;�text-decoration: none;�color: inherit;�transition: transform 0.2s ease, box-shadow 0.2s ease;�}�.card-link--linked:hover,�.card-link--linked:focus-within {�transform: translateY(-4px);�box-shadow: 0 8px 24px rgba(0,0,0,0.15);�}�.card-link--linked:hover .card-link__btn,�.card-link--linked:focus-within .card-link__btn {�background-color: var(--color-red, #c0392b);�color: var(--color-white, #fff);�}�/* Gallery-mode card-link ââ¬â image-only thumbnail with hover title reveal */�.card-link--gallery {�position: relative;�overflow: hidden;�display: block;�}�.card-link--gallery::after {�content: "";�position: absolute;�inset: 0;�background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.6) 100%);�opacity: 0;�transition: opacity var(--transition-base);�pointer-events: none;�}�.card-link--gallery:hover::after {�opacity: 1;�}�.card-link__gallery-title {�position: absolute;�left: 0;�right: 0;�bottom: 0;�padding: var(--space-sm);�color: var(--color-white);�font-weight: var(--fw-black, 800);�font-size: 1rem;�z-index: 2;�opacity: 0;�transform: translateY(8px);�transition: opacity var(--transition-base), transform var(--transition-base);�pointer-events: none;�}�.card-link--gallery:hover .card-link__gallery-title {�opacity: 1;�transform: translateY(0);�}�/* Grid wrapper ââ¬â reused for both 3-up service grids */�.service-grid {�display: flex;�flex-wrap: wrap;�gap: var(--space-sm);�max-width: var(--container-max);�margin: 0 auto;�justify-content: center;�align-items: stretch;�}�.service-grid:has(> .card-link:last-child:nth-child(even)) {�display: grid;�grid-template-columns: repeat(2, 1fr);�max-width: var(--container-max);�}�/* Grid wrapper ââ¬â 2-up service callout (Meet The Team / View Our Projects) */�.callout-grid {�display: grid;�grid-template-columns: repeat(2, 1fr);�gap: var(--space-lg);�margin: 0 auto;�}�.callout-grid .card-link__image {�height: 340px;�}�@media (max-width: 1200px) {�.service-grid:has(> .card-link:last-child:nth-child(even)) {�grid-template-columns: 1fr;�max-width: 480px;�}�.card-link__body {�padding: var(--space-md);�}�}�@media (max-width: 900px) {�.service-grid,�.callout-grid {�display: flex;�flex-direction: column;�max-width: 480px;�}�.service-grid > .card-link,�.callout-grid > .card-link {�flex: 1 1 100%;�width: 100%;�}�}�.services-section {�padding: var(--space-xl) var(--space-md);�background-color: var(--color-white);�}�.content-section--feature {�position: relative;�padding: var(--space-2xl) var(--space-md);�overflow: hidden;�background-color: var(--color-black);�}�.content-section--feature__image-container {�position: absolute;�inset: 0;�overflow: hidden;�z-index: 0;�}�.content-section--feature__image-container img {�opacity: 0.55;�}�.content-section--feature::before {�content: "";�position: absolute;�inset: 0;�background: linear-gradient(�100deg,�rgba(0, 0, 0, 0.9) 0%,�rgba(0, 0, 0, 0.75) 100%�);�z-index: 0;�}�.content-section--feature__inner {�position: relative;�z-index: 1;�display: grid;�grid-template-columns: 1fr 1fr;�gap: var(--space-2xl);�max-width: var(--container-max);�margin: 0 auto;�align-items: center;�}�.content-section--feature__content .split-heading__bold {�font-size: var(--fs-h2);�color: var(--color-white);�}�.content-section--feature__content .split-heading__light {�font-size: var(--fs-h3);�font-weight: var(--fw-regular);�color: var(--color-white);�}�.content-section--feature__content p {�font-family: var(--font-body);�color: rgba(255, 255, 255, 0.85);�line-height: 1.8;�margin-bottom: var(--space-md);�}�.content-section--feature__content p strong {�color: var(--color-white);�}�.location-grid {�display: grid;�grid-template-columns: repeat(2, 1fr);�gap: var(--space-lg) var(--space-xl);�}�.location-item {�display: flex;�text-align: center;�flex-direction: column;�align-items: center;�gap: 0.6rem;�}�.location-item__icon {�width: 30px;�height: 30px;�object-fit: contain;�}�.location-item__name {�display: block;�font-family: var(--font-heading);�font-weight: var(--fw-black);�font-size: var(--fs-h5);�color: var(--color-white);�}�.location-item__desc {�display: block;�font-family: var(--font-body);�font-size: var(--fs-body);�color: var(--color-white);�line-height: 1.6;�}�.content-section--feature__locations-intro { color: rgba(255, 255, 255, 0.9); margin-bottom: var(--space-md); }�.content-section--feature__locations-intro strong { color: var(--color-white); }�.location-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-md); }�.location-card { display: flex; align-items: center; gap: 0.85rem; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.15); border-radius: var(--radius-md); padding: 1rem 1.25rem; transition: transform var(--transition-base), background-color var(--transition-base), border-color var(--transition-base); }�.location-card:hover { transform: translateY(-2px); background: rgba(255, 255, 255, 0.1); border-color: var(--color-red); }�.location-card__icon-badge { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; background: var(--color-white); border-radius: 50%; }
1�.location-card__icon { width: 20px; height: 20px; object-fit: contain; }�.location-card__name { font-family: var(--font-heading); font-weight: var(--fw-black); font-size: var(--fs-h6); color: var(--color-white); line-height: 1.3; text-align: left; }�@media (max-width: 600px) { .location-card-grid { grid-template-columns: 1fr; } }�@media (max-width: 900px) {�.content-section--feature__inner {�grid-template-columns: 1fr;�text-align: center;�}�.location-grid {�justify-items: center;�text-align: center;�}�.location-item {�align-items: center;�}�}�.faq-section--brand {�position: relative;�padding: var(--space-2xl) var(--space-md);�overflow: hidden;�}�.faq-section--brand__bg {�position: absolute;�inset: 0;�background-image: url("/Images_Content/Site3/Images/Layout/background-graphic.jpg");�background-size: cover;�background-position: center;�opacity: 1;�z-index: 0;�}�.faq-section--brand__inner {�position: relative;�z-index: 1;�max-width: 900px;�margin: 0 auto;�text-align: center;�}�.faq-section--brand .split-heading--inline {�margin-bottom: var(--space-sm);�}�.faq-section--brand .split-heading__bold,�.faq-section--brand .split-heading__light {�color: var(--color-white);�font-size: var(--fs-h2);�}�.faq-section--brand .split-heading__light {�font-weight: var(--fw-regular);�}�.faq-section--brand__subtitle {�color: rgba(255, 255, 255, 0.9);�margin-bottom: var(--space-xl);�}�.faq-container {�display: flex;�flex-direction: column;�}�.faq-item {�border-bottom: 1px solid rgba(255, 255, 255, 0.3);�}�.faq-item:last-of-type {�border-bottom: none;�}�.faq-question {�width: 100%;�display: flex;�align-items: center;�justify-content: space-between;�gap: var(--space-md);�padding: var(--space-md) 0;�cursor: pointer;�text-align: left;�}�.faq-question h3 {�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-h5);�color: var(--color-white);�margin: 0;�flex: 1;�}�.faq-icon {�width: 26px;�height: 26px;�object-fit: contain;�flex-shrink: 0;�transition: transform var(--transition-base);�}�.faq-item.active .faq-icon {�transform: rotate(180deg);�}�.faq-answer {�display: grid;�grid-template-rows: 0fr;�transition: grid-template-rows 0.35s ease;�}�.faq-item.active .faq-answer {�grid-template-rows: 1fr;�}�.faq-answer-content {�overflow: hidden;�}�.faq-answer-inner {�font-family: var(--font-body);�font-size: var(--fs-body);�color: rgba(255, 255, 255, 0.9);�line-height: 1.8;�padding-bottom: var(--space-md);�text-align: left;�}�.faq-answer-inner p {�margin-bottom: 0;�}�@media (max-width: 600px) {�.faq-question h3 {�font-size: var(--fs-body);�}�}�.cta-band {�position: relative;�padding: var(--space-xl) var(--space-md);�background-color: var(--color-white);�overflow: hidden;�margin-top: var(--space-xl);�}�.cta-band__watermark {�position: absolute;�inset: 0;�background-image: url("/Images_Content/Site3/Images/Layout/footer-overlay.png");�background-repeat: no-repeat;�background-position: left bottom;�background-size: contain;�opacity: 1;�z-index: 0;�pointer-events: none;�}�.cta-band__inner {�position: relative;�z-index: 1;�max-width: var(--container-max);�margin: 0 auto;�display: flex;�align-items: center;�justify-content: space-between;�gap: var(--space-xl);�}�.cta-band__content {�flex: 1;�}�.cta-band .split-heading__bold,�.cta-band .split-heading__light {�font-size: var(--fs-h2);�color: var(--color-black);�}�.cta-band .split-heading__light {�font-weight: var(--fw-regular);�}�.cta-band__content p {�color: var(--color-text-secondary);�margin-bottom: 0;�}�.cta-band__action {�flex-shrink: 0;�}�@media (max-width: 800px) {�.cta-band__inner {�flex-direction: column;�align-items: flex-start;�gap: var(--space-lg);�text-align: left;�}�.cta-band__action {�width: 100%;�}�.cta-band__action .btn {�width: 100%;�text-align: center;�}�}�.gallery-section {�padding: var(--space-2xl) var(--space-md);�background-color: var(--color-white);�}�.gallery-grid {�display: grid;�grid-template-columns: repeat(4, 1fr);�gap: var(--space-sm);�margin: 0 auto;�}�.gallery-item {�position: relative;�aspect-ratio: 1 / 1;�overflow: hidden;�cursor: pointer;�}�.gallery-item__image {�width: 100%;�height: 100%;�object-fit: cover;�display: block;�transition: transform var(--transition-slow);�}�.gallery-item:hover .gallery-item__image {�transform: scale(1.01);�}�.gallery-item__gradient {�position: absolute;�inset: 0;�background: linear-gradient(�180deg,�rgba(0, 0, 0, 0) 55%,�rgba(0, 0, 0, 0.55) 100%�);�transition: opacity var(--transition-base);�z-index: 1;�}�.gallery-item:hover .gallery-item__gradient {�opacity: 0;�}�.gallery-item__caption {�position: absolute;�inset: auto 0 0 0;�z-index: 2;�padding: var(--space-sm);�opacity: 0;�transform: translateY(8px);�transition: opacity var(--transition-base), transform var(--transition-base);�pointer-events: none;�}�.gallery-item:hover .gallery-item__caption {�opacity: 1;�transform: translateY(0);�}�.gallery-item__title {�color: var(--color-white);�font-weight: var(--fw-black, 800);�font-size: 1rem;�display: block;�}�@media (max-width: 900px) {�.gallery-grid {�grid-template-columns: repeat(2, 1fr);�}�}�@media (max-width: 500px) {�.gallery-grid {�grid-template-columns: 1fr;�}�}�@media (max-width: 800px) {�.content-section,�.services-section,�.content-section--feature,�.faq-section--brand,�.cta-band {�padding-inline: var(--space-md);�}�}�/* Contact Layout */�.contact-layout {�display: grid;�grid-template-columns: 1fr;�gap: 60px;�align-items: start;�padding: var(--space-2xl) 2rem;�max-width: 1800px;�margin: 0 auto;�}�/* Form Container */�.form-container {�background: var(--color-white);�padding: 20px;�border-radius: var(--radius-md);�text-align: left;�padding-top: 0;�}�.form-group {�margin-bottom: 20px;�}�.form-label {�display: block;�margin-bottom: 8px;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�color: var(--color-black);�font-size: var(--fs-body);�text-align: left;�text-transform: uppercase;�letter-spacing: 0.5px;�}�.form-control {�width: 100%;�padding: 12px 15px;�border: 1px solid #cfd8dc;�border-radius: var(--radius-sm);�font-size: var(--fs-body);�color: var(--color-black);�transition: border-color 0.2s;�font-family: var(--font-body);�box-sizing: border-box;�background-color: var(--color-white);�}�.form-control:focus {�border-color: var(--color-secondary);�outline: none;�box-shadow: 0 0 0 3px rgba(18, 68, 113, 0.1);�}�textarea.form-control {�resize: vertical;�min-height: 130px;�}�.form-row {�display: grid;�grid-template-columns: 1fr;�gap: 15px;�}�.success-message {�background: var(--color-white);�color: var(--color-black);�padding: 20px;�border-radius: var(--radius-md);�text-align: center;�margin-bottom: 30px;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�display: flex;�flex-direction: column;�justify-content: center;�align-items: center;�}�.error-message {�background: #fff3f3;�color: #c0392b;�border: 1px solid #f5c6cb;�padding: 20px;�border-radius: var(--radius-md);�margin-bottom: 30px;�font-family: var(--font-body);�}�@media (min-width: 768px) {�.form-row {�grid-template-columns: 1fr 1fr;�}�}�@media (min-width: 900px) {�.contact-layout {�grid-template-columns: 1fr 1fr;�}�}�#st-1 .st-btn > span {�-moz-transition: all 0.2s ease-in;�-ms-transition: all 0.2s ease-in;�-o-transition: all 0.2s ease-in;�-webkit-transition: all 0.2s ease-in;�transition: all 0.2s ease-in;�color: #fff;�display: inline-block;�font-weight: 500;�letter-spacing: 0.5px;�min-width: 60px;�opacity: 1;�padding: 0 6px;�position: relative;�vertical-align: top;�height: 100%;�top: 10px;�}�/* ======================= Animation Keyframes ======================= */�@keyframes fadeInUp {�from {�opacity: 0;�transform: translateY(30px);�}�to {�opacity: 1;�transform: translateY(0);�}�}�@keyframes fadeIn-Down {�from {�opacity: 0;�transform: translateY(-30px);�}�to {�opacity: 1;�transform: translateY(0);�}�}�@keyframes fadeIn {�from {�opacity: 0;�}�to {�opacity: 1;�}�}�/* Enhanced Animation Classes */�.animate-on-scroll {�opacity: 0;�transform: translateY(30px);�}�.animate-on-scroll.visible {�animation: fadeInUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;�}�.stagger-1 {�animation-delay: 0.1s;�}�.stagger-2 {�animation-delay: 0.25s;�}�.stagger-3 {�animation-delay: 0.4s;�}�.stagger-4 {�animation-delay: 0.55s;�}�.stagger-5 {�animation-delay: 0.7s;�}�.stagger-6 {�animation-delay: 0.85s;�}�/* Reduce motion for accessibility */�@media (prefers-reduced-motion: reduce) {�.animate-on-scroll {�animation: none !important;�opacity: 1 !important;�transform: none !important;�}�}�/* Triggers animation immediately on page load */�.animate-first {�animation: fadeInUp 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;�}�::-webkit-scrollbar {�width: 15px;�}�::-webkit-scrollbar-track {�-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);�border-radius:10px;�}�::-webkit-scrollbar-thumb {�background-color: var(--color-secondary);�border-radius:10px;�}�input {�-webkit-appearance: none;�}�input[type=checkbox] {�-webkit-appearance:checkbox;�}�.mid-txt {�display:inline-block;�position: relative;�top: 50%;�//width:100%;�transform: translateY(-50%);�-webkit-transform: translateY(-50%);�-ms-transform: translateY(-50%);�}�.top-cont {�box-sizing: border-box;�width: 100%;�z-index: 20;�height: 40px;�text-align: right;�overflow: hidden;�position:relative;�//background:rgba(0,0,0,1);�display:none;�}�.logo {�position: relative;�transition: transform 0.3s ease;�height: 100%;�top: 0px;�transition: all .5s ease;�}�.logo2 {�transition: all .5s ease;�}�.nav_menu {�position:fixed;�top:0px;�left:0px;�background: var(--color-black);�width:100%;�height:80px;�z-index:20;�transition:background .5s ease;�}�.nav_menu_sticky {�//box-shadow:0px 0px 5px rgba(0,0,0,0.3);�//-webkit-box-shadow:0px 0px 5px rgba(0,0,0,0.3);�background: var(--color-black);�}�.heading_spacer {�width:100%;�height:80px;�font-size:0px;�}�.heading_spacer_sticky {�height:80px;�}�.contenthead-bg {�background-size: cover;�background-position: 50% 50%;�width: 100%;�display: block;�box-sizing: border-box;�position: relative;�overflow: hidden;�background-color: var(--color-black);�min-height: 320px;�background-image: url("/Images_Content/Site3/Images/Banners/default.jpg");�background-size: cover;�background-position: center center;�}�.contenthead-bg::before {�content: '';�position: absolute;�inset: 0;�background: linear-gradient(�100deg,�rgba(0, 0, 0, 0.88) 0%,�rgba(0, 0, 0, 0.5) 60%,�rgba(0, 0, 0, 0.78) 100%�);�z-index: 1;�}�.contenthead-bg::after {�content: '';�position: absolute;�inset: 0;�background-image: url("/Images_Content/Site3/Images/Layout/background-overlay.png");�background-size: cover;�background-position: center;�background-repeat: no-repeat;�opacity: 0.5;�z-index: 2;�pointer-events: none;�}�.contenthead {�position: relative;�z-index: 3;�text-align: left;�font-family: var(--font-heading);�width: 100%;�display: flex;�box-sizing: border-box;�justify-content: flex-start;�align-items: center;�padding: var(--space-2xl) 0;�min-height: 320px;�max-width: 1000px;�margin: 0 auto 0 var(--space-xl);�}�.contenthead h1 {�position: relative;�display: inline-block;�padding-bottom: var(--space-md);�font-size: var(--fs-h1);�font-weight: var(--fw-black);�color: var(--color-white);�margin-bottom: 0;�}�.contenthead h1::after {�content: '';�position: absolute;�bottom: 0;�left: 0;�width: 90px;�height: 4px;�background-color: var(--color-red);�border-radius: 2px;�}�@media (max-width: 900px) {�.contenthead {�padding: 3rem var(--space-sm);�min-height: 260px;�max-width: 100%;�margin-left: 0;�text-align: center;�justify-content: center;�}�.contenthead h1 {�display: block;�}
1�.contenthead h1::after {�left: 50%;�transform: translateX(-50%);�}�}�.heading2 {�margin:0px 0px 25px;�}�.heading3 {�margin:0px;�}�.heading2::after, .heading3::after, .heading4::after, .heading5::after {�content:'';�display:block;�width:150px;�height:4px;�font-size:0px;�background:#7F4491;�margin-top:6px;�}�.heading3::after, .heading4::after {�background:#010101;�margin:6px auto 0px;�}�.heading4::after {�background:#ffffff;�}�.heading5::after {�margin:6px auto 0px;�}�.imageright, .imageleft, .imagecenter {�padding:15px 0px 15px 0px;�max-width:100%;�text-align:center;�display: block;�margin-left: auto;�margin-right: auto;�box-sizing:border-box;�}�.imagecenter {�padding:0px;�}�.clear {�clear:both;�height:0px;�overflow:hidden;�}�.shell {�width:85%;�margin:0 auto;�}�.checkinput, .checkinput2, .submitbtn {�border:solid 1px #cbcbcb;�background:#ffffff;�height:50px;�text-align:left;�line-height:50px;�padding:0px 10px;�box-sizing:border-box;�font-family:var(--font-body);�font-size:16px;�text-decoration:none;�color:#010101;�}�.checkinput {�width:100%;�}�.submitbtn, .schedulebtn {�font-family: var(--font-heading);�border:none;�line-height:50px;�background:var(--color-secondary);�color:#ffffff;�padding:0px 40px;�cursor:pointer;�transition: .5s ease all;�font-size:2rem;�display: flex;�justify-content: center;�align-items: center;�text-align: center;�width: 100%;�box-sizing: border-box;�margin-bottom: 1rem;�}�.submitbtn:hover, .schedulebtn:hover {�background:var(--color-lime-green);�}�.field, .checklabel, .checkfield {�display:inline-block;�text-align:left;�color:#202020;�font-family:var(--font-body);�font-size:16px;�padding-bottom:5px;�text-decoration:none;�}�a.field {�color:#A90015;�font-weight:bold;�}�a.field:hover {�color:#fdc10d;�}�.checklabel, .checkfield {�color:#010101;�font-family:var(--font-body);�}�.checklabel {�font-size:14px;�padding:0px;�width:100%;�}�.submit {�display:inline-block;�border:none;�height:50px;�line-height:50px;�text-align:center;�text-decoration:none;�color:#ffffff;�font-size:16px;�font-family:var(--font-body);�background:#010101;�cursor:pointer;�width:100%;�}�.submit:hover {�background:#FFC40D;�}�.mem-select, .mem-select2 {�border: 1px solid #c7c7c7;�height: 50px;�box-sizing:border-box;�display:inline-block;�overflow: hidden;�background-image: url("/Images_Content/Site1/Images/Layout/Quant_SelectBg.jpg");�background-repeat: no-repeat;�background-position: center right;�background-color:#ffffff;�text-align:center;�vertical-align:top;�}�.mem-select {�width:100%;�}�.mem-select select, .mem-select2 select {�text-align:left;�padding: 0px 3px;�font-size:16px;�line-height:48px;�height:50px;�font-family:var(--font-body);�color:#010101;�width: 150%;�border: none;�box-shadow: none;�background: transparent;�background-image: none;�-webkit-appearance: none;�vertical-align:top;�}�.checkheading {�color:#ffffff;�height:50px;�line-height:50px;�box-sizing:border-box;�font-family:var(--font-body);�font-size:20px;�font-weight:bold;�text-decoration:none;�text-align:left;�padding:0px 0px 0px 10px;�}�.checkheading {�color:#ffffff;�margin-bottom:30px;�background:#010101;�}�.overlay-cont, .overlay-cont2 {�position:fixed;�top:0;�left:0;�background:rgba(0,0,0,0.8);�height:100vh;�width:100%;�overflow-y:scroll;�z-index:3000;�display:none;�opacity:0;�filter:alpha(opacity=0);�transition:all .5s ease;�}�.overlay-cont2 {�display:none;�opacity:0;�filter:alpha(opacity=0);�}�#overlay-div, #ContactFormFeed {�margin:80px auto 40px;�//height:100%;�position:relative;�transition:all .8s ease;�}�.overlay-white {�width:100%;�background:#ffffff;�box-sizing:border-box;�text-align:center;�font-family:var(--font-body);�color:#404040;�border-radius:20px;�}�.overlay-out {�width:100%;�overflow-y:scroll !important;�height:400px;�}�.overlay-content {�text-align:center;�vertical-align:top;�margin:0 auto;�position:relative;�}�.heading {�display:inline-block;�color:#010101;�}�.overlay-white b,.overlay-white strong,.overlay-white a {�font-family:var(--font-body);�}�.overlay-white a {�text-decoration: none;�font-family: var(--font-heading);�text-decoration:none;�}�.overlay-close {�position: absolute;�font-family: var(--font-body);�font-size: 30px;�color: #ffffff;�cursor: pointer;�transition: all .5s ease;�display: flex;�justify-content: flex-end;�right: 3%;�top: -3%;�padding-top: 1rem;�z-index: 3;�padding-top: 0;�font-size: 1.5rem;�display: flex;�align-items: center;�justify-content: center;�font-size: 2rem;�color: var(--color-white);�}�.overlay-close:hover {�opacity: 0.8;�}�.head-grad {�background: -moz-linear-gradient(top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 100%); /* FF3.6-15 */�background: -webkit-linear-gradient(top, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%); /* Chrome10-25,Safari5.1-6 */�background: linear-gradient(to bottom, rgba(0,0,0,0.6) 0%,rgba(0,0,0,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */�filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#66000000', endColorstr='#00000000',GradientType=0 ); /* IE6-9 */�width:100%;�position:absolute;�z-index:2;�top:0px;�left:0px;�font-size:0px;�height:260px;�}�#burg-over {�position:fixed;�top:0;�left:0;�background:rgba(0,0,0,0.5);�height:100vh;�width:100%;�//overflow-y:scroll;�overflow-x:hidden;�z-index:3000;�display:none;�//opacity:0;�//filter:alpha(opacity=0);�transition:all .5s ease;�}�#burg-cont {�position:fixed;�top:0px;�right:-360px;�width:360px;�height:100%;�box-sizing:border-box;�background:#03263C;�transition:all .5s .5s ease;�}�.burg-cont2 {�position:relative;�width:100%;�height:100%;�box-sizing:border-box;�padding:40px;�overflow:auto;�}�.burg-close {�display:inline-block;�vertical-align:top;�position:absolute;�top:30px;�right:15px;�font-family:GothamL;�color:#ffffff;�font-size:24px;�text-decoration:none;�cursor:pointer;�transition:all .5s ease;�}�.burg-close:hover {�transform:rotate(180deg);�}�.burg-main, .burg-sub-cont a {�display:block;�width:100%;�text-align:left;�text-decoration:none;�padding:10px 0px;�box-sizing:border-box;�color:#ffffff;�position:relative;�font-family:Gotham;�font-size:14px;�cursor:pointer;�border-bottom:solid 1px transparent;�transition:all .5s ease;�}�.burg-main:hover, .burg-sub-cont a:hover {�border-color:#ffffff;�}�.burg-sub-cont {�width:100%;�box-sizing:border-box;�padding-left:11px;�height:0px;�display:block;�overflow:hidden;�transition:all .5s ease;�}�.burg-sub-cont a {�font-size:14px;�}�.burger-sub-arrow {�border:none;�position:absolute;�height:8px;�right:0px;�bottom:12px;�transition:all .5s ease;�}�@media screen and (min-width: 320px) {�.checkinfo-box {�margin:0 auto;�width:100%;�font-size:0px;�text-align:left;�}�.column1, .column2 {�display:inline-block;�margin-top:20px;�width:100%;�text-align:left;�vertical-align:top;�}�.mem-select2 {�width:100%;�}�#overlay-div, #ContactFormFeed {�width:96%;�}�.overlay-white {�padding:0px 0px 20px 0px;�//font-size:18px;�//line-height:26px;�//max-height:400px;�}�.overlay-out {�height:300px;�}�.overlay-content {�width:94%;�margin:0 auto;�font-size:0px;�text-align:center;�}�.col-ov1, .col-ov2, .col-ov3 {�display:inline-block;�margin-top:20px;�width:100%;�text-align:left;�vertical-align:top;�}�}�@media screen and (min-width: 360px) {�.overlay-out {�height:400px;�}�.overlay-white {�//max-height:500px;�}�#overlay-div, #ContactFormFeed {�width:90%;�}�.overlay-white {�padding:0x 0px 25px 0px;�}�.logo {�position: relative;�transition: transform 0.3s ease;�height: 100%;�top: 10px;�transition: all .5s ease;�}�}�@media screen and (min-width: 800px) {�.column1, .column2 {�display:inline-block;�margin-top:20px;�width:44%;�text-align:left;�}�.column2 {�margin-left:12%;�}�.mem-select2 {�width:44%;�}�.col-ov1, .col-ov2, .col-ov3 {�width:30%;�}�.col-ov2, .col-ov3 {�margin-left:5%;�}�#overlay-div, #ContactFormFeed {�width:60%;�}�.overlay-white {�padding:0px 0px 50px 0px;�//font-size:22px;�//line-height:30px;�}�.burg-cont2 {�padding-top:60px;�}�.logo {�display: block;�height: 100%;�flex-shrink: 0;�position: relative;�z-index: 2;�top: 10px;�}�.logo2 {�height: 100%;�top: 10px;�}�.nav_menu {�background: var(--color-black);�position: relative;�top: 0;�left: 0px;�height: 120px;�}�.nav_menu_sticky {�position: fixed;�top: 0px;�background: var(--color-black);�}�.header__nav-link {�font-family: var(--font-heading);�font-size: 1.1rem;�font-weight: var(--fw-bold);�color: var(--color-white);�transition: color var(--transition-base);�letter-spacing: 0.5px;�height: 100%;�display: flex;�justify-content: center;�align-items: center;�padding: 0 1.1rem;�border-bottom: 3px solid transparent;�}�.header__nav-link.header__nav-link--sticky {�color: var(--color-dark);�}�.heading_spacer {�width:100%;�height: 0px;�font-size:0px;�}�.heading_spacer_sticky {�height: 120px;�}�.top-cont {�display: block;�}�}�@media screen and (min-width: 1000px) {�.mid-txt2 {�display: inline-block;�position: relative;�top: 50%;�width: 100%;�transform: translateY(-50%);�-webkit-transform: translateY(-50%);�-ms-transform: translateY(-50%);�}�.imageright {�float:right;�padding-left:60px;�max-width:550px;�}�.imageleft {�float:left;�padding-right:60px;�max-width:550px;�}�.imagecenter {�max-width:100%;�text-align:center;�display: block;�margin-left: auto;�margin-right: auto;�}�}�@media screen and (min-width: 1400px) {�.contenthead-sub {�font-size:30px;�}�}�</style>�
1<script language="javascript">�var jspage = 'Home';�var jspagepath = '0';�var jsacat = '0';�</script>
1�</head>�<body style="background-color:#D7D7D7; padding:0px; height:100%; overflow:auto; text-align:center; margin:0px 0px 0px 0px; ">�<img alt="Site Background" fetchpriority="high" width="99999" height="99999" style="pointer-events:none; z-index:-1; position:absolute; top:0; left:0; width:95vw; height:99vh" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iOTk5OTkuMDAwMDAwcHQiIGhlaWdodD0iOTk5OTkuMDAwMDAwcHQiIHZpZXdCb3g9IjAgMCA5OTk5OS4wMDAwMDAgOTk5OTkuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+Cgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCw5OTk5OS4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiMwMDAwMDAiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik0zNDg1IDkxMjAgYy0zMjEgLTQzIC01ODQgLTIwOSAtNzUwIC00NzUgLTkzIC0xNDkgLTEzMCAtMzAwIC0xMjIKLTQ5OSA1IC0xNDggMzIgLTI1MSA5MyAtMzY0IDEzNSAtMjQ4IDMxNiAtMzkyIDk0MCAtNzQ3IDUyMCAtMjk2IDYyNCAtMzY2CjcyNSAtNDg3IDg4IC0xMDYgMTQ5IC0yNjAgMTQ5IC0zNzcgMCAtMTQ2IC01NiAtMjcxIC0xNzMgLTM4NiAtMTM5IC0xMzcgLTI2M
1QotMTg0IC01MDAgLTE5MiAtMjE5IC04IC0zNjcgMjIgLTU0MiAxMDkgLTI4OSAxNDUgLTQyNyAzMzAgLTUxOSA2OTYgLTE0IDUzCi0yOCAxMjUgLTMyIDE2MCBsLTcgNjIgLTQ5IDAgYy01MiAwIC01MiAtMSAtNjIgLTYxIC04IC00MyAtNDAgLTk0IC03OCAtMTIyCi0xOSAtMTQgLTQyIC0yMCAtODAgLTIwIC01MyAxIC04NyAxMiAtMjg0IDkxIC0zODggMTU3IC04MDIgMTQ2IC0xMTA1IC0yOQotMjE5IC0xMjcgLTM4NCAtMzM0IC00NTEgLTU2NiAtMjAgLTY3IC0yMyAtMTAwIC0yMyAtMjQzIDEgLTE1MyAzIC0xNzEgMjkKLTI1MCA1MCAtMTUzIDEyNyAtMjc0IDI1NiAtNDAwIDEyNiAtMTI1IDMxOSAtMjUyIDc0NiAtNDk1IDUyMCAtMjk2IDYyNCAtMzY2CjcyNSAtNDg3IDU5IC03MCAxMjEgLTE5NSAxMzggLTI3NiAzNyAtMTc4IC0xOCAtMzQyIC0xNjQgLTQ4NyAtODYgLTg3IC0xNzQKLTEzOCAtMjkwIC0xNzAgLTgxIC0yMyAtMzMyIC0zMSAtNDMzIC0xNSAtMTcyIDI3IC0zNDggMTAzIC00OTIgMjExIC0xOTcgMTQ5Ci0zMDIgMzUyIC0zODAgNzQyIGwtMTEgNTcgLTUwIDAgLTQ5IDAgMCAtNjE1IDAgLTYxNSA0OCAwIDQ3IDAgMjUgNzcgYzIxIDY0CjMxIDgyIDU5IDEwMCA2MiA0MSAxMTEgMzQgNDM2IC02NyAzMDMgLTk0IDM5MSAtMTEwIDYwMCAtMTEwIDE5NiAwIDM1MCAyOAo1MTEgOTQgMjM3IDk2IDQ1OSAzMTUgNTU1IDU0NSA5OCAyMzUgODkgNTMyIC0yMiA3NTQgLTEzNSAyNjggLTI5MyAzOTIgLTk3NAo3NjcgLTczMyA0MDMgLTkxMSA1NzUgLTg5MiA4NjYgNCA3NSAxMCA5NyA0NSAxNjggNDUgOTEgMTI3IDE4MyAyMTQgMjQwIDM2NQoyNDIgOTg1IDQwIDEyMTIgLTM5NCA2OCAtMTMwIDEzNiAtMzcwIDEzNiAtNDgwIGwwIC01MCA1NCAwIDUzIDAgNiA0NSBjMjAKMTQwIDkyIDE4MCAyNTEgMTM5IDMzIC04IDE0NyAtNDIgMjUxIC03NCAzMDMgLTk0IDM5MSAtMTEwIDYwMCAtMTEwIDE5NiAwCjM1MCAyOCA1MTEgOTQgMjM3IDk2IDQ1OSAzMTUgNTU1IDU0NSA5OCAyMzUgODkgNTMyIC0yMiA3NTQgLTEzNSAyNjggLTI5MwozOTIgLTk3NCA3NjcgLTcwNiAzODggLTg5NSA1NjMgLTg5NSA4MjkgMCAyMTEgMTYwIDQyMiAzODIgNTA1IDI5NCAxMTAgNzAxIDEKOTQ3IC0yNTMgMTQxIC0xNDYgMjMxIC0zNDkgMjc3IC02MjQgbDE4IC0xMDcgNDggMCA0OCAwIDAgNjIwIDAgNjIwIC00NyAwCi00OCAwIC0xOCAtNjAgYy0yMiAtNzcgLTY3IC0xMjggLTEyMyAtMTQwIC00OSAtMTEgLTExOCA0IC0yMjcgNTEgLTMwMCAxMjgKLTU1MSAxNzIgLTgwMiAxMzl6Ii8+CjxwYXRoIGQ9Ik0zNjE1IDIwOTggYy0zIC0xMyAtMzUgLTE2NSAtNzEgLTMzOCAtMzYgLTE3MyAtNjcgLTMyNSAtNzEgLTMzNyAtNQotMjIgLTIgLTIzIDQ0IC0yMyBsNDkgMCA3MiAzNDggYzQwIDE5MSA3MiAzNTMgNzIgMzYwIDAgOCAtMTYgMTIgLTQ1IDEyIC0zOAowIC00NSAtMyAtNTAgLTIyeiIvPgo8cGF0aCBkPSJNNDk5NSAyMDg4IGMtNCAtMTggLTkgLTQxIC0xMSAtNTAgLTUgLTE1IDIgLTE4IDQwIC0xOCA0NyAwIDQ3IDAgNjEKNjggbDcgMzIgLTQ1IDAgYy00MyAwIC00NiAtMiAtNTIgLTMyeiIvPgo8cGF0aCBkPSJNNTgzMCAyMTEyIGMwIC03IC0xMzQgLTY1NSAtMTQ0IC02OTUgLTQgLTE2IDIgLTE4IDQyIC0xNSBsNDYgMyAyOAoxNDAgYzM0IDE2MyA1OCAyMjQgMTA0IDI2NSAzOSAzNCAxMDEgNTQgMTM5IDQ0IDUxIC0xMyA1MiAtMzggMTEgLTIzNyAtMjAKLTEwMCAtMzkgLTE5MCAtNDIgLTE5OSAtNSAtMTUgMiAtMTggNDAgLTE4IDM5IDAgNDYgMyA1MSAyMyAyMSA4OCA3NSAzNjYgNzUKMzg1IDAgNjkgLTYwIDEyMiAtMTM3IDEyMiAtNDMgMCAtMTE3IC0zMSAtMTUwIC02MiAtMjkgLTI3IC0yOCAtMjQgMiAxMTkgMTQKNjUgMjUgMTIxIDI1IDEyNiAwIDQgLTIwIDcgLTQ1IDcgLTI1IDAgLTQ1IC00IC00NSAtOHoiLz4KPHBhdGggZD0iTTY5NzcgMjEwMyBjLTMgLTEwIC04IC0zMCAtMTEgLTQ1IGwtNiAtMjggMTE1IDAgYzEwMyAwIDExNSAtMiAxMTUKLTE3IC0xIC0xMCAtMjkgLTE1MSAtNjMgLTMxMyBsLTYzIC0yOTUgNDQgLTMgYzI0IC0yIDQ2IC0xIDQ5IDIgNCA0IDU3IDI1MQoxMjMgNTY5IGwxMSA1NyAxMTQgMCBjNjMgMCAxMTYgMyAxMTkgOCAyIDQgNyAyNCAxMSA0NSBsNyAzNyAtMjgwIDAgYy0yNTkgMAotMjgxIC0xIC0yODUgLTE3eiIvPgo8cGF0aCBkPSJNODM5MCAyMTA4IGMwIC03IDkgLTE1MiAyMCAtMzIzIDExIC0xNzAgMjAgLTMyNyAyMCAtMzQ3IGwwIC0zOCA1MwowIDUyIDAgOTQgMTc4IGM1MiA5NyAxMTkgMjIzIDE0OCAyNzkgNDAgNzggNTMgOTYgNTMgNzUgMCAtMTUgNyAtMTM3IDE1IC0yNzIKOCAtMTM1IDE1IC0yNDggMTUgLTI1MiAwIC01IDI0IC04IDUzIC04IGw1MiAwIDE3OCAzNTMgYzk4IDE5MyAxNzggMzU2IDE3OAozNjAgLTEgNCAtMjIgNyAtNDcgNSBsLTQ2IC0zIC0xMDYgLTIxMCBjLTU4IC0xMTUgLTEyMiAtMjQ1IC0xNDIgLTI4OCBsLTM3Ci03OCAtMTIgMjMzIGMtNiAxMjggLTE0IDI1OSAtMTggMjkxIGwtNiA1NyAtNDYgMCAtNDcgMCAtMTUxIC0yODYgLTE1MSAtMjg1Ci03IDE3OCBjLTQgOTggLTEwIDIyNSAtMTQgMjgzIGwtNiAxMDUgLTQ3IDMgYy0zNSAyIC00OCAtMSAtNDggLTEweiIvPgo8cGF0aCBkPSJNOTk3NSAyMDk4IGMtMyAtMTMgLTM1IC0xNjUgLTcxIC0zMzggLTM2IC0xNzMgLTY3IC0zMjUgLTcxIC0zMzcgLTUKLTIxIC0yIC0yMyAzNiAtMjMgNDAgMCA0MSAxIDQ3IDQwIDQgMjIgMTAgNDAgMTMgNDAgNCAwIDE0IC0xMyAyNCAtMjkgNDAgLTY4CjE2MCAtODEgMjQwIC0yNSA5MSA2NCAxNDMgMTgzIDEzNSAzMTQgLTUgOTIgLTI4IDEzNSAtODggMTY5IC01NCAzMCAtMTIyIDI1Ci0xODAgLTEzIC0yMiAtMTQgLTQwIC0yMiAtNDAgLTE2IDAgOCAyNSAxMjggNDUgMjE4IDUgMjAgMiAyMiAtNDAgMjIgLTM4IDAKLTQ1IC0zIC01MCAtMjJ6IG0yMDUgLTI1MyBjNDcgLTI0IDYzIC02NyA1OCAtMTUxIC02IC04MiAtNDIgLTE3MCAtODUgLTIwMwotNjEgLTQ5IC0xNDYgLTMzIC0xNzYgMzIgLTU1IDExNiA0NyAzMzUgMTU2IDMzNyAxMCAwIDMxIC03IDQ3IC0xNXoiLz4KPHBhdGggZD0iTTExMDczIDIwNzAgbC0xMCAtNTAgNDMgMCBjNDUgMCA0NiAwIDU5IDY4IGw3IDMyIC00NSAwIC00NCAwIC0xMAotNTB6Ii8+CjxwYXRoIGQ9Ik02NDQzIDIwNzIgYy0zOCAtMjQgLTQyIC0zMSAtNTMgLTg4IC0xMiAtNjIgLTEyIC02MyAtNDggLTY2IC0zMiAtMwotMzcgLTcgLTQzIC0zNSAtNiAtMzIgLTUgLTMzIDI3IC0zMyAxOSAwIDM0IC0zIDM0IC03IDAgLTUgLTE2IC04MiAtMzUgLTE3MwotNDUgLTIxMiAtNDUgLTIzNCAtMiAtMjYwIDMyIC0yMCAxMDEgLTI3IDEyMyAtMTIgNiA0IDE1IDIyIDE5IDQwIGw3IDMyIC00MgowIGMtMjYgMCAtNDMgNSAtNDYgMTUgLTMgNyAxMCA5MSAzMCAxODUgMjAgOTQgMzYgMTczIDM2IDE3NSAwIDMgMjAgNSA0NCA1CjM3IDAgNDUgNCA1MCAyMyAxMSA0MiA3IDQ3IC0zNCA0NyAtNDYgMCAtNDUgLTEgLTI1IDkwIDIzIDEwNCAyMyAxMDMgLTQyIDYyeiIvPgo8cGF0aCBkPSJNMTEzNjMgMjA3MiBjLTM4IC0yNCAtNDIgLTMxIC01MyAtODkgLTEyIC02MiAtMTMgLTYzIC00NiAtNjMgLTM2IDAKLTM4IC0yIC00OCAtNDIgLTYgLTI3IC01IC0yOCAyOSAtMjggMTkgMCAzNSAtMiAzNSAtNCAwIC0yIC0xNiAtNzkgLTM1IC0xNzAKLTQ1IC0yMTQgLTQ1IC0yNDAgLTIgLTI2NiAzMiAtMjAgMTAxIC0yNyAxMjMgLTEyIDYgNCAxNSAyMiAxOSA0MCBsNyAzMiAtNDIKMCBjLTI2IDAgLTQzIDUgLTQ2IDE0IC01IDE0IDEzIDExNiA1MiAyOTQgbDE2IDcyI
1DQ0IDAgYzI4IDAgNDQgNCA0NCAxMyAwIDYKMyAyMiA2IDM1IDYgMjAgMyAyMiAtMzUgMjIgLTQ3IDAgLTQ4IDMgLTI2IDk1IDI0IDk3IDIzIDk4IC00MiA1N3oiLz4KPHBhdGggZD0iTTQwNDggMTkyMCBjLTE2IC01IC01MSAtMjUgLTc5IC00NiAtNDUgLTMzIC01MSAtMzUgLTQ1IC0xNiAxOSA2OQoyMSA2NCAtMjUgNjAgbC00MyAtMyAtNDcgLTIyNSBjLTI2IC0xMjQgLTUwIC0yNDAgLTU0IC0yNTcgbC02IC0zMyA0NSAwIDQ1IDAKMTEgNTggYzYyIDMwOSA4OCAzNjAgMTk3IDM5MiA0NyAxNCA5MSAtMSAxMDMgLTM1IDUgLTEyIC04IC05NiAtMzEgLTIwNSAtMjEKLTEwMiAtMzggLTE5MSAtMzkgLTE5NyAwIC05IDE1IC0xMyA0MyAtMTMgbDQzIDAgMzcgMTc4IGM0MSAxOTUgNDYgMjY1IDIxCjMwMSAtMzEgNDMgLTEwOCA2MiAtMTc2IDQxeiIvPgo8cGF0aCBkPSJNNDUxMiAxOTE4IGMtMzcgLTEzIC04OSAtNjcgLTk4IC0xMDMgLTEwIC0zOSA0IC05MCAzMSAtMTE3IDEzIC0xNAo2NyAtNDUgMTE5IC03MSAxMDMgLTUwIDEyMCAtNzIgOTcgLTEyMyAtMTQgLTMxIC00OCAtNDQgLTExMyAtNDQgLTQ0IDAgLTU0IDQKLTg0IDM0IC0yMSAyMSAtMzQgNDQgLTM0IDYwIDAgMjQgLTMgMjYgLTQ2IDI2IGwtNDcgMCA2IC00NiBjMTEgLTk3IDc1IC0xMzkKMjEyIC0xMzkgNzggMCA5NSAzIDEyOSAyNCA0OSAzMSA3NiA3NSA3NiAxMjYgMCA2OSAtMjcgOTggLTE0OCAxNTkgLTYwIDMwCi0xMTIgNjIgLTExNiA3MSAtMTQgMzkgMzggODUgOTcgODUgNTQgMCA5MyAtMjMgMTA4IC02NSAxMiAtMzIgMTcgLTM1IDUxIC0zNQo0OSAwIDU1IDE2IDMwIDczIC0yOCA2MyAtNzUgODkgLTE2NiA5MyAtMzkgMiAtODYgLTIgLTEwNCAtOHoiLz4KPHBhdGggZD0iTTUyNzkgMTkwMiBjLTEwNyAtNTYgLTE2NiAtMTcyIC0xNTcgLTMwOCA2IC04OCAzNyAtMTQzIDk4IC0xNzQgNjYKLTM0IDEyNSAtMjcgMjAyIDI0IGwyNyAxOCAtMTkgLTY5IGMtMjIgLTc5IC02MSAtMTIyIC0xMTMgLTEyNSAtODUgLTQgLTEyMwoxMiAtMTI5IDU2IC0yIDE3IC0xMSAyMiAtNDIgMjQgLTIxIDIgLTQyIC0yIC00NiAtOCAtMTMgLTIxIDMgLTcxIDMxIC0xMDAgNTQKLTUzIDE5MiAtNjQgMjc2IC0yMiA4MyA0MyA5OCA4MCAxNjcgNDE1IDMxIDE0NyA1NiAyNzIgNTYgMjc3IDAgNiAtMTggMTAgLTQwCjEwIC0zOSAwIC00MCAtMSAtNDYgLTQxIGwtNyAtNDAgLTI4IDMxIGMtNjAgNjUgLTE0NCA3NyAtMjMwIDMyeiBtMTU4IC02MgpjMTggLTEwIDQwIC0zNCA0OSAtNTEgMzEgLTYxIDMgLTE5NyAtNTUgLTI2MyAtOSAtMTAgLTMzIC0yNyAtNTUgLTM4IC02MyAtMzIKLTExOSAtMTEgLTE1NSA1OSAtMzEgNjEgMyAyMDQgNjEgMjYwIDYyIDU4IDEwMSA2NiAxNTUgMzN6Ii8+CjxwYXRoIGQ9Ik03NjE5IDE5MTQgYy01OSAtMTggLTExOCAtNzUgLTE1MyAtMTQ3IC0zMyAtNjYgLTQ1IC0xODMgLTI2IC0yNDEKMjggLTg1IDEwMyAtMTM1IDIwMyAtMTM2IDE2MiAwIDI3NyAxMzUgMjc3IDMyNCAtMSAxNjYgLTEzMiAyNTMgLTMwMSAyMDB6Cm0xNjkgLTg4IGwzNyAtMzUgMCAtODMgYy0xIC04OCAtMjAgLTE0MyAtNjkgLTE5NiAtNjcgLTc0IC0xODIgLTY4IC0yMjAgMTIKLTQ3IDk5IDE0IDI4MSAxMDggMzIyIDU2IDI0IDEwMiAxOCAxNDQgLTIweiIvPgo8cGF0aCBkPSJNOTQ1NSAxOTE0IGMtNjMgLTIyIC0xMTEgLTY4IC0xNDcgLTE0MiAtMzAgLTYwIC0zMyAtNzUgLTMzIC0xNTcgMAotMTA4IDE4IC0xNTQgNzggLTE5MyA0NiAtMzEgMTQzIC00MSAyMDEgLTIyIDQ1IDE0IDEyOSA5MCAxNDYgMTMwIDcgMTcgMTEgMzIKOSAzNCAtMiAyIC0yMSA2IC00MSA3IC0zMyAzIC00MCAtMSAtNjAgLTMxIC0yOSAtNDMgLTkyIC04MCAtMTM2IC04MCAtMjMgMAotNDMgMTAgLTY5IDMzIC0zMiAzMCAtMzcgNDEgLTQxIDkwIGwtNCA1NyAxOTAgMCAxOTEgMCA3IDM3IGMxMCA1MiAtMTAgMTM5Ci00MiAxODAgLTUxIDY3IC0xNTYgOTAgLTI0OSA1N3ogbTE3MyAtODcgYzE4IC0xOCAyNiAtMzkgMzAgLTc2IGw1IC01MSAtMTQyCjAgYy0xMjEgMCAtMTQxIDIgLTE0MSAxNSAwIDQwIDYwIDExNCAxMTAgMTM0IDQxIDE4IDEwOSA3IDEzOCAtMjJ6Ii8+CjxwYXRoIGQ9Ik0xMDU4MSAxOTA4IGMtODAgLTQxIC0xMDkgLTExMiAtNzYgLTE4MiAxNSAtMzEgMzIgLTQ0IDExMyAtODMgNTMKLTI2IDEwNCAtNTUgMTE0IC02NSAyNSAtMjUgMjIgLTY0IC03IC05MyAtMjAgLTIxIC0zNCAtMjUgLTg2IC0yNSAtNTYgMCAtNjQKMyAtOTUgMzQgLTIxIDIxIC0zNCA0NCAtMzQgNjAgMCAyNCAtMyAyNiAtNDYgMjYgbC00NyAwIDUgLTQ0IGM3IC02MSAzOCAtOTkKMTAwIC0xMjYgNDMgLTE5IDY1IC0yMiAxMjkgLTE4IDEyMCA3IDE4OSA2MyAxODkgMTUzIDAgNjcgLTMwIDEwMSAtMTQ0IDE1OQotNTUgMjggLTEwNiA2MSAtMTE0IDczIC0xMyAyMSAtMTIgMjUgMTYgNTMgMjUgMjQgMzkgMzAgNzQgMzAgNTcgMCAxMDcgLTMwCjExNSAtNzEgNSAtMjggOCAtMzAgNDcgLTI3IDQwIDMgNDEgNCAzOCAzNiAtNiA3NyAtNjkgMTIzIC0xNzYgMTI5IC02MCA0IC03OAoxIC0xMTUgLTE5eiIvPgo8cGF0aCBkPSJNMTE2OTcgMTkxNiBjLTExNSAtNDMgLTE4NyAtMTU4IC0xODkgLTMwMSAtMSAtMTA5IDMyIC0xNzIgMTA3IC0yMDYKMTA0IC00OCAyMzIgLTkgMzA2IDk0IDM5IDUzIDM3IDY0IC0xMSA2OSAtMzcgMyAtNDIgMSAtNjQgLTMzIC0yNiAtMzggLTk1Ci03OSAtMTM1IC03OSAtNjIgMCAtMTA4IDU0IC0xMTMgMTMxIGwtMyA0NCAxOTMgMyAxOTIgMiAwIDcyIGMwIDEzNSAtNjEgMjA2Ci0xODIgMjE0IC0zOSAzIC03NyAtMSAtMTAxIC0xMHogbTE0NCAtNzIgYzM0IC0xNyA1OSAtNjYgNTkgLTExNCBsMCAtMzAgLTEzOAowIGMtNzYgMCAtMTQyIDMgLTE0NSA2IC00IDQgNSAyOSAyMCA1NiA0NiA4NCAxMzMgMTE5IDIwNCA4MnoiLz4KPHBhdGggZD0iTTEyMjU4IDE5MjAgYy02NSAtMTkgLTEwOCAtNzQgLTEwOCAtMTM1IDAgLTY4IDI3IC05OCAxMzMgLTE0OCAxMzAKLTYyIDE1NSAtMTAyIDk2IC0xNTEgLTI0IC0yMSAtNDEgLTI2IC04MiAtMjYgLTcxIDAgLTExMyAyNiAtMTI3IDgwIC0xMCAzOAotMTMgNDAgLTUwIDQwIC00MCAwIC00MCAwIC00MCAtMzkgMCAtNDcgMzIgLTk3IDgwIC0xMjUgNTEgLTMwIDE5OCAtMzAgMjU1IDAKNTMgMjggODcgODUgODIgMTQwIC03IDY3IC0zMCA5MSAtMTQ0IDE0NiAtMTE3IDU2IC0xMzggNzkgLTEwOSAxMjIgMjkgNDUgMTMzCjQ3IDE3MyAzIDExIC0xMiAyNCAtMzIgMjggLTQ0IDUgLTE5IDE0IC0yMyA0NCAtMjMgMjEgMCA0MCAyIDQzIDYgMyAzIDIgMjIKLTMgNDIgLTIwIDkxIC0xNTYgMTQ3IC0yNzEgMTEyeiIvPgo8cGF0aCBkPSJNNDk1NSAxODk4IGMtMyAtMTMgLTI2IC0xMjIgLTUxIC0yNDMgLTI1IC0xMjEgLTQ3IC0yMjggLTUwIC0yMzcgLTUKLTE1IDEgLTE4IDQwIC0xOCAzNCAwIDQ2IDQgNTAgMTggMiA5IDI2IDExOCA1MSAyNDIgMjUgMTI0IDQ5IDIzMyA1MSAyNDMgNQoxNCAtMiAxNyAtNDAgMTcgLTM5IDAgLTQ2IC0zIC01MSAtMjJ6Ii8+CjxwYXRoIGQ9Ik0xMTAyNiAxODQ4IGMtOSAtNDAgLTMzIC0xNTcgLTU1IC0yNjAgbC0zOSAtMTg4IDQ0IDAgYzMyIDAgNDQgNCA0OAoxOCAzIDkgMjYgMTE2IDUxIDIzNyAyNSAxMjEgNDggMjMwIDUxIDI0MiA2IDIxIDMgMjMgLTM5IDIzIGwtNDUgMCAtMTYgLTcyeiIvPgo8L2c+Cjwvc3ZnPgo=">�<div width="99999" height="99999" style="background:#D7D7D7; pointer-events:none; position:absolute; top:0; left:0; width:95vw; height:99vh"></div>�<div style="position:relative; margin:0 auto; text-align:center; width:100%; overflow-x:hidden;">�<div id="ContactDiv" class="overlay-cont2">�<div id="ContactFormFeed"></div>�</div>��<div class="top-cont">�<style type="text/css">�.top-content {�background-color: var(--color-black);�height: 100%;�width: 100%;�}�.top-content__container {�max-width: 1920px;�margin: 0 auto;�padding: 0rem 3rem;�display: flex;�align-items: center;�justify-content: flex-end;�gap: 1.5rem;�height: 100%;�}�.top-content__estimate {�display: flex;�align-items: center;�gap: 0.6rem;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: 0.85rem;�color: var(--color-white);�white-space: nowrap;�transition: opacity var(--transition-fast);�}�.top-content__estimate:hover {�opacity: 0.8;�}�.top-content__estimate-icon {�width: 22px;�height: 22px;�object-fit: contain;�flex-shrink: 0;�position: relative;�top: 2px;�}�.top-content__center {�display: flex;�align-items: center;�gap: 1.75rem;�}�.top-content__link {�display: flex;�align-items: center;�gap: 0.5rem;�font-family: var(--font-body);�font-size: 0.85rem;�color: var(--color-white);�white-space: nowrap;�transition: color var(--transition-fast);�}�.top-content__link:hover {�color: var(--color-red);�}�.top-content__icon {�width: 16px;�height: 16px;�object-fit: contain;�flex-shrink: 0;�position: relative;�top: 2px;�}�.top-content__social-links {�display: flex;�align-items: center;�gap: 0.75rem;�flex-shrink: 0;�}�.top-content__social-link {�display: flex;�width: 16px;�height: 16px;�transition: opacity var(--transition-fast);�}�.top-content__social-link:hover {�opacity: 0.7;�}�.top-content__social-icon {�width: 100%;�height: 100%;�object-fit: contain;�display: block;�}�@media (max-width: 1200px) {�.top-content__container {�padding: 0.65rem 2rem;�}�.top-content__center {�gap: 1rem;�}�}�@media (max-width: 900px) {�.top-content__link--email {�display: none;�}�}�@media (max-width: 700px) {�.top-content {�display: none;�}�}</style>�<div aria-label="SL Custom Construction Top Header Contact Information" class="top-content" role="complementary">�<div class="top-content__container">�<a class="top-content__estimate" href="javascript:showContact()" title="Request Your Free Home Construction Estimate in Victor NY"><span>Request Your Free Estimate Today</span> <img alt="Red right pointing arrow icon" class="top-content__estimate-icon" src="/Images_Content/Site3/Images/Layout/icon-chevron-right-red.png" style="aspect-ratio:100/100;" /> </a>�<div class="top-content__center">�<a class="top-content__link" href="tel:15857041187" onclick="updateConv();" title="Call SL Custom Construction for a Free Estimate at (585) 704-1187"><img alt="Red phone icon" class="top-content__icon" src="/Images_Content/Site3/Images/Layout/icon-phone-red.png" style="aspect-ratio:100/100;" /> <span>(585) 704-1187</span> </a> <a class="top-content__link top-content__link--email" href="mailto:[email protected]" title="Email SL Custom Construction for a Consultation"> <img alt="Red email envelope icon" class="top-content__icon" src="/Images_Content/Site3/Images/Layout/icon-email-red.png" style="aspect-ratio:100/100;" /> <span>[email protected]</span> </a></div>�<div aria-label="SL Custom Construction social media links" class="top-content__social-links">�<a aria-label="Visit SL Custom Construction on Facebook â opens in a new tab" class="top-content__social-link" href="https://www.facebook.com/slcustomconstruction" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on Facebook â opens in a new tab"><img alt="Facebook Logo Icon" class="top-content__social-icon" src="/Images_Content/Site3/Images/Layout/icon-facebook-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on Instagram â opens in a new tab" class="top-content__social-link" href="https://www.instagram.com/slcustomconstruction/" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on Instagram â opens in a new tab"> <img alt="Instagram Logo Icon" class="top-content__social-icon" src="/Images_Content/Site3/Images/Layout/icon-instagram-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on X (Twitter) â opens in a new tab" class="top-content__social-link" href="https://x.com/slcustom585" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on X (Twitter) â opens in a new tab"> <img alt="X (Twitter) Logo Icon" class="top-content__social-icon" src="/Images_Content/Site3/Images/Layout/icon-twitter-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on YouTube â opens in a new tab" class="top-content__social-link" href="https://www.youtube.com/@SLCustomConstructionRochester" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on YouTube â opens in a new tab"> <img alt="YouTube Logo Icon" class="top-content__social-icon" src="/Images_Content/Site3/Images/Layout/icon-youtube-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on LinkedIn â opens in a new tab" class="top-content__social-link" href="https://www.linkedin.com/company/sl-custom-construction/" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on LinkedIn â opens in a new tab"> <img alt="LinkedIn Logo Icon" class="top-content__social-icon" src="/Images_Content/Site3/Images/Layout/icon-linkedin-white.png" style="aspect-ratio:100/100;" /> </a></div>�</div>�</div>�</div>�<div class="nav_menu">�<div id="NavMenu" style="width:100%; position:relative; height: 100%;">�<style type="text/css">�.menu-content {�background-color: var(--color-black);�width: 100%;�height: 100%;�position: relative;�z-index: var(--z-sticky);�}�.menu-content__top-row {�display: flex;�align-items: center;�justify-content: space-between;�height: 100%;�gap: var(--space-lg);�max-width: 1920px;�margin: 0 auto;�padding: 0rem 3rem;�}�.menu-content__logo {�display: flex;�flex-shrink: 0;�width: 100%;�max-width: 350px;�position: relative;�top: -15px;�}�.menu-content__badge {�width: 70px;�flex-shrink: 0;�}�.menu-content__contact-list {�display: flex;�align-items: center;�gap: var(--space-lg);�margin-left: auto;�}�.menu-content__contact-item {�display: flex;�align-items: center;�gap: 0.5rem;�font-family: var(--font-body);�font-size: 0.85rem;�color: var(--color-white);�white-space: nowrap;�transition: color var(--transition-fast);�}�.menu-content__contact-item:hover {�color: var(--color-red);�}�.menu-content__contact-icon {�width: 16px;�height: 16px;�object-fit: contain;�flex-shrink: 0;�}�.menu-content__nav-row {�max-width: 1920px;�padding: 0 3rem;�}�.menu-content__nav-list {�display: flex;�align-items: center;�list-style: none;�margin: 0;�padding: 0.25rem 0;�}�.menu-content__nav-item {�position: relative;�}�.menu-content__nav-link {�display: flex;�align-items: center;�gap: 0.35rem;�padding: 0.75rem 1.1rem;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-body-sm);�color: var(--color-white);�white-space: nowrap;�transition: color var(--transition-fast);�cursor: pointer;�}�.menu-content__nav-link:hover,�.menu-content__nav-link--active {�color: var(--color-red);�}�.menu-content__nav-link--has-dropdown {�cursor: default;�}�/* Red chevron unicode on any parent link that has a dropdown */�.menu-content__nav-link--has-dropdown::after {�content: "\25BC";�font-size: 0.5em;�color: var(--color-red);�transition: transform var(--transition-fast);�}�.menu-content__nav-item:hover .menu-content__nav-link--has-dropdown::after {�transform: rotate(180deg);�}�.menu-content__dropdown {�position: absolute;�top: 100%;�left: 0;�background-color: var(--color-black);�min-width: 240px;�padding: var(--space-xs) 0;�z-index: var(--z-dropdown);�box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4);�opacity: 0;�visibility: hidden;�pointer-events: none;�transition:�opacity var(--transition-base),�visibility var(--transition-base);�text-align: left;�}�.menu-content__nav-item:hover .menu-content__dropdown {�opacity: 1;�visibility: visible;�pointer-events: auto;�}�.menu-content__dropdown-link {�display: block;�padding: 0.7rem 1.5rem;�font-family: var(--font-body);�font-size: var(--fs-body-sm);�font-weight: var(--fw-regular);�color: var(--color-white);�white-space: nowrap;�transition:�color var(--transition-fast),�background-color var(--transition-fast);�}�.menu-content__dropdown-link:hover {�color: var(--color-red);�background-color: rgba(255, 255, 255, 0.05);�}�/* Contact link â the ONE nav item that uses the real icon-next-red.png instead of the unicode chevron */�.menu-content__nav-link--contact {�gap: 0.4rem;�}�.menu-content__nav-link--contact-icon {�width: 16px;�height: 12px;�object-fit: contain;�}�/* Mobile hamburger â hidden on desktop */�.menu-content__mobile-toggle {�display: none;�background: none;�border: none;�cursor: pointer;�padding: 0.4rem;�}�.menu-content__mobile-toggle-icon {�width: 30px;�height: 30px;�object-fit: contain;�display: block;�}�/* Tier 1 â first squeeze: tighten padding/gaps and trim logo slightly.�Nav items are still all visible here, just packed tighter. */�@media screen and (max-width: 1650px) {�.menu-content__top-row {�padding: 1.1rem 1.5rem;�gap: var(--space-md);�}�.menu-content__logo {�max-width: 280px;�}�.menu-content__nav-row {�padding: 0 1.5rem;�}�.menu-content__nav-link {�padding: 0.75rem 0.65rem;�font-size: 0.8rem;�}�.menu-content__dropdown-link {�font-size: 0.8rem;�}�}�/* Tier 2 â last bit of squeeze before switching to mobile. */�@media screen and (max-width: 1500px) {�.menu-content__nav-link {�padding: 0.75rem 0.5rem;�font-size: 0.76rem;�}�.menu-content__logo {�max-width: 240px;�}�}�/* Tier 3 â switch to hamburger. Raised from 1200px to 1350px so this�kicks in BEFORE the nav runs out of room, instead of after. */�@media screen and (max-width: 1200px) {�.menu-content__nav-row,�.menu-content__contact-list {�display: none;�}�.menu-content__mobile-toggle {�display: flex;�align-items: center;�justify-content: center;�}�.menu-content__logo {�display: flex;�flex-shrink: 0;�width: 100%;�max-width: 200px;�position: relative;�top: -0;�}�}�/* Mobile sidebar drawer â same proven pattern as Warrior Factory / JD Marx */�.header__mobile-menu {�position: fixed;�top: 0;�right: -100%;�width: 400px;�max-width: 85vw;�height: 100%;�background-color: var(--color-black);�z-index: var(--z-modal);�transition: right 0.5s ease-in-out;�overflow-y: auto;�box-shadow: -4px 0 24px rgba(0, 0, 0, 0.5);�}�.header__mobile-menu.active {�right: 0;�transition: right 0.35s ease-in-out 0.1s;�}�.header__mobile-menu-content {�padding: 2rem 1.5rem;�position: relative;�}�.header__mobile-close {�position: absolute;�top: 1.25rem;�right: 1.25rem;�background: none;�border: none;�cursor: pointer;�padding: 0.5rem;�}�.header__mobile-close-icon {�width: 24px;�height: 24px;�object-fit: contain;�display: block;�}�.header__mobile-logo {�display: block;�margin: 0.5rem 0 2rem;�max-width: 180px;�}�.header__mobile-nav {�display: flex;�flex-direction: column;�}�.header__mobile-nav-link,�.header__mobile-nav-toggle {�display: flex;�justify-content: space-between;�align-items: center;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-h6);�color: var(--color-white);�padd
1ing: 1rem 0;�border-bottom: 1px solid rgba(255, 255, 255, 0.12);�width: 100%;�text-align: left;�background: none;�border-left: none;�border-right: none;�border-top: none;�cursor: pointer;�transition: color var(--transition-fast);�}�.header__mobile-nav-link:hover,�.header__mobile-nav-link--active,�.header__mobile-nav-toggle:hover,�.header__mobile-nav-toggle.active {�color: var(--color-red);�}�.header__mobile-nav-toggle::after {�content: "\276F";�font-size: 0.75em;�color: var(--color-red);�transition: transform var(--transition-base);�}�.header__mobile-nav-toggle.active::after {�transform: rotate(90deg);�}�.header__mobile-dropdown {�display: none;�flex-direction: column;�padding: 0.25rem 0 0.5rem 1.25rem;�border-bottom: 1px solid rgba(255, 255, 255, 0.12);�}�.header__mobile-dropdown.active {�display: flex;�}�.header__mobile-dropdown .header__mobile-nav-link {�font-size: var(--fs-body-sm);�font-weight: var(--fw-regular);�border-bottom: 1px solid rgba(255, 255, 255, 0.08);�padding: 0.65rem 0;�}�.header__mobile-dropdown .header__mobile-nav-link:last-child {�border-bottom: none;�}�.header__mobile-contact-block {�margin-top: 2rem;�padding-top: 1.5rem;�border-top: 1px solid rgba(255, 255, 255, 0.15);�display: flex;�flex-direction: column;�gap: 1rem;�}�.header__mobile-contact-link {�display: flex;�align-items: flex-start;�gap: 0.75rem;�color: var(--color-white);�font-family: var(--font-body);�font-size: 0.875rem;�line-height: 1.5;�transition: color var(--transition-fast);�}�.header__mobile-contact-link:hover {�color: var(--color-red);�}�.header__mobile-contact-icon {�width: 16px;�height: 16px;�object-fit: contain;�flex-shrink: 0;�margin-top: 2px;�}�.header__mobile-social-block {�margin-top: 1.5rem;�display: flex;�gap: 1rem;�align-items: center;�}�.header__mobile-social-link {�display: flex;�width: 26px;�height: 26px;�transition: opacity var(--transition-fast);�}�.header__mobile-social-link:hover {�opacity: 0.7;�}�.header__mobile-social-icon {�width: 100%;�height: 100%;�object-fit: contain;�display: block;�}</style>��<div aria-label="Main Site Header" class="menu-content" role="banner">�<div class="menu-content__top-row">�<a class="menu-content__logo" href="/" title="SL Custom Construction Home Page in Victor, NY"><img alt="SL Custom Construction Company Logo" class="logo" src="/Images_Content/Site3/Images/Layout/sl-custom-construction-logo.png" style="aspect-ratio:575/100;" /> </a>�<nav aria-label="Primary Desktop Navigation" class="menu-content__nav-row">�<ul class="menu-content__nav-list">�<li class="menu-content__nav-item">�<span aria-expanded="false" aria-haspopup="true" class="menu-content__nav-link menu-content__nav-link--has-dropdown" role="button" tabindex="0">Outdoor Living</span>�<div aria-label="Outdoor Living Submenu" class="menu-content__dropdown">�<a class="menu-content__dropdown-link" href="/outdoor-living" title="Outdoor Living Construction and Design Services">Outdoor Living Overview</a> <a class="menu-content__dropdown-link" href="/outdoor-living/custom-decks" title="Custom Composite and Premium Wood Deck Building">Custom Deck Building</a> <a class="menu-content__dropdown-link" href="/outdoor-living/patios-porches-pergolas" title="Custom Patios, Covered Porches, and Pergolas">Patios, Porches & Pergolas</a> <a class="menu-content__dropdown-link" href="/outdoor-living/kitchens-fireplaces" title="Outdoor Kitchens and Custom Masonry Fireplaces">Outdoor Kitchens & Fireplaces</a></div>�</li>�<li class="menu-content__nav-item">�<span aria-expanded="false" aria-haspopup="true" class="menu-content__nav-link menu-content__nav-link--has-dropdown" role="button" tabindex="0">Interior Renovations</span>�<div aria-label="Interior Renovations Submenu" class="menu-content__dropdown">�<a class="menu-content__dropdown-link" href="/interior-renovations" title="Interior Home Renovations and Remodeling">Interior Renovations Overview</a> <a class="menu-content__dropdown-link" href="/interior-renovations/basement-renovations" title="Custom Basement Finishing and Remodeling Services">Basement Finishing</a> <a class="menu-content__dropdown-link" href="/interior-renovations/kitchen-remodeling" title="Kitchen Remodeling and Custom Cabinetry Design">Kitchen Remodeling</a> <a class="menu-content__dropdown-link" href="/interior-renovations/additions-in-law-suites" title="Seamless Home Additions and In-Law Suites">Home Additions & In-Law Suites</a> <a class="menu-content__dropdown-link" href="/interior-renovations/ada-compliant-renovations" title="ADA Compliant Home Renovations for Aging in Place">ADA Compliant Renovations</a></div>�</li>�<li class="menu-content__nav-item">�<span aria-expanded="false" aria-haspopup="true" class="menu-content__nav-link menu-content__nav-link--has-dropdown" role="button" tabindex="0">Exterior & Storm</span>�<div aria-label="Exterior and Storm Renovations Submenu" class="menu-content__dropdown">�<a class="menu-content__dropdown-link" href="/exterior-improvements" title="Exterior Home Improvements and Storm Repair">Exterior & Storm Renovations Overview</a> <a class="menu-content__dropdown-link" href="/exterior-improvements/storm-restoration" title="Professional Storm Damage Restoration and Roof Repairs">Storm Restoration & Repairs</a> <a class="menu-content__dropdown-link" href="/exterior-improvements/roofing-siding" title="Roofing Installation and Siding Replacement Services">Roofing & Siding</a> <a class="menu-content__dropdown-link" href="/exterior-improvements/windows-doors" title="Energy Efficient Window and Door Installations">Windows & Doors</a> <a class="menu-content__dropdown-link" href="/exterior-improvements/concrete-masonry" title="Custom Concrete Driveways and Masonry Retaining Walls">Concrete & Masonry</a></div>�</li>�<li class="menu-content__nav-item">�<a class="menu-content__nav-link" href="/epoxy-flooring" title="Durable Epoxy Flooring Installations for Garages and Basements">Epoxy Flooring</a></li>�<li class="menu-content__nav-item">�<span aria-expanded="false" aria-haspopup="true" class="menu-content__nav-link menu-content__nav-link--has-dropdown" role="button" tabindex="0">Service Areas</span>�<div aria-label="Service Areas Submenu" class="menu-content__dropdown">�<a class="menu-content__dropdown-link" href="/service-areas" title="SL Custom Construction Local Service Areas">Service Areas Overview</a> <a class="menu-content__dropdown-link" href="/service-areas/monroe-county" title="Home Construction and Remodeling in Monroe C
1ounty, NY">Monroe County, NY</a> <a class="menu-content__dropdown-link" href="/service-areas/victor-ny" title="Home Construction and Remodeling in Victor, NY">Victor, NY</a> <a class="menu-content__dropdown-link" href="/service-areas/canandaigua-ny" title="Home Construction and Remodeling in Canandaigua, NY">Canandaigua, NY</a> <a class="menu-content__dropdown-link" href="/service-areas/farmington-ny" title="Home Construction and Remodeling in Farmington, NY">Farmington, NY</a> <a class="menu-content__dropdown-link" href="/service-areas/ontario-county" title="Home Construction and Remodeling in Ontario County, NY">Ontario County, NY</a></div>�</li>�<li class="menu-content__nav-item">�<a class="menu-content__nav-link" href="/gallery" title="View the SL Custom Construction Project Portfolio">Our Work</a></li>�<li class="menu-content__nav-item">�<a class="menu-content__nav-link menu-content__nav-link--contact" href="/contact" title="Contact SL Custom Construction for a Free Estimate"><span>Contact</span> <img alt="Red right pointing arrow icon" class="menu-content__nav-link--contact-icon" src="/Images_Content/Site3/Images/Layout/icon-chevron-right-red.png" style="aspect-ratio:100/100;" /> </a></li>�</ul>�</nav>�<button aria-label="Open mobile navigation menu" class="menu-content__mobile-toggle" title="Open mobile navigation menu"><img alt="Red mobile hamburger menu icon" class="menu-content__mobile-toggle-icon" src="/Images_Content/Site3/Images/Layout/icon-hamburger-menu-red.png" style="aspect-ratio:100/100;" /></button></div>�<div aria-hidden="true" class="menu-content__divider">� </div>�</div>��<div class="overlay" id="siteNav">�<div aria-label="Mobile navigation sidebar" class="header__mobile-menu" inert="">�<div class="header__mobile-menu-content">�<button aria-label="Close mobile navigation menu" class="header__mobile-close" title="Close mobile navigation menu"><img alt="Red close X icon" class="header__mobile-close-icon" src="/Images_Content/Site3/Images/Layout/icon-close-x-red.png" style="aspect-ratio:100/100;" /></button><a class="header__mobile-logo" href="/" title="SL Custom Construction Home Page in Victor, NY"><img alt="SL Custom Construction Company Logo" src="/Images_Content/Site3/Images/Layout/sl-custom-construction-logo.png" style="aspect-ratio:575/100;" /> </a>�<nav aria-label="Primary Mobile Navigation" class="header__mobile-nav">�<a class="header__mobile-nav-link header__mobile-nav-link--active" href="/" title="SL Custom Construction Home Page">Home</a><button aria-expanded="false" class="header__mobile-nav-toggle" title="Expand Outdoor Living menu options">Outdoor Living</button>�<div aria-hidden="true" class="header__mobile-dropdown">�<a class="header__mobile-nav-link" href="/outdoor-living" title="Outdoor Living Construction and Design Services">Outdoor Living Overview</a> <a class="header__mobile-nav-link" href="/outdoor-living/custom-decks" title="Custom Composite and Premium Wood Deck Building">Custom Deck Building</a> <a class="header__mobile-nav-link" href="/outdoor-living/patios-porches-pergolas" title="Custom Patios, Covered Porches, and Pergolas">Patios, Porches & Pergolas</a> <a class="header__mobile-nav-link" href="/outdoor-living/kitchens-fireplaces" title="Outdoor Kitchens and Custom Masonry Fireplaces">Outdoor Kitchens & Fireplaces</a></div>�<button aria-expanded="false" class="header__mobile-nav-toggle" title="Expand Interior Renovations menu options">Interior Renovations</button>�<div aria-hidden="true" class="header__mobile-dropdown">�<a class="header__mobile-nav-link" href="/interior-renovations" title="Interior Home Renovations and Remodeling">Interior Renovations Overview</a> <a class="header__mobile-nav-link" href="/interior-renovations/basement-renovations" title="Custom Basement Finishing and Remodeling Services">Basement Finishing</a> <a class="header__mobile-nav-link" href="/interior-renovations/kitchen-remodeling" title="Kitchen Remodeling and Custom Cabinetry Design">Kitchen Remodeling</a> <a class="header__mobile-nav-link" href="/interior-renovations/additions-in-law-suites" title="Seamless Home Additions and In-Law Suites">Home Additions & In-Law Suites</a> <a class="header__mobile-nav-link" href="/interior-renovations/ada-compliant-renovations" title="ADA Compliant Home Renovations for Aging in Place">ADA Compliant Renovations</a></div>�<button aria-expanded="false" class="header__mobile-nav-toggle" title="Expand Exterior & Storm Renovations menu options">Exterior & Storm Renovations</button>�<div aria-hidden="true" class="header__mobile-dropdown">�<a class="header__mobile-nav-link" href="/exterior-improvements" title="Exterior Home Improvements and Storm Repair">Exterior & Storm Renovations Overview</a> <a class="header__mobile-nav-link" href="/exterior-improvements/storm-restoration" title="Professional Storm Damage Restoration and Roof Repairs">Storm Restoration & Repairs</a> <a class="header__mobile-nav-link" href="/exterior-improvements/roofing-siding" title="Roofing Installation and Siding Replacement Services">Roofing & Siding</a> <a class="header__mobile-nav-link" href="/exterior-improvements/windows-doors" title="Energy Efficient Window and Door Installations">Windows & Doors</a> <a class="header__mobile-nav-link" href="/exterior-improvements/concrete-masonry" title="Custom Concrete Driveways and Masonry Retaining Walls">Concrete & Masonry</a></div>�<a class="header__mobile-nav-link" href="/epoxy-flooring" title="Durable Epoxy Flooring Installations for Garages and Basements">Epoxy Flooring</a><button aria-expanded="false" class="header__mobile-nav-toggle" title="Expand Service Areas menu options">Service Areas</button>�<div aria-hidden="true" class="header__mobile-dropdown">�<a class="header__mobile-nav-link" href="/service-areas" title="SL Custom Construction Local Service Areas">Service Areas Overview</a> <a class="header__mobile-nav-link" href="/service-areas/monroe-county" title="Home Construction and Remodeling in Monroe C
1ounty, NY">Monroe County, NY</a> <a class="header__mobile-nav-link" href="/service-areas/victor-ny" title="Home Construction and Remodeling in Victor, NY">Victor, NY</a> <a class="header__mobile-nav-link" href="/service-areas/canandaigua-ny" title="Home Construction and Remodeling in Canandaigua, NY">Canandaigua, NY</a> <a class="header__mobile-nav-link" href="/service-areas/farmington-ny" title="Home Construction and Remodeling in Farmington, NY">Farmington, NY</a> <a class="header__mobile-nav-link" href="/service-areas/ontario-county" title="Home Construction and Remodeling in Ontario County, NY">Ontario County, NY</a></div>�<a class="header__mobile-nav-link" href="/gallery" title="View the SL Custom Construction Project Portfolio">Our Work</a> <a class="header__mobile-nav-link" href="/contact" title="Contact SL Custom Construction for a Free Estimate">Contact</a>�<div class="header__mobile-contact-block">�<a class="header__mobile-contact-link" href="tel:15857041187" onclick="updateConv();" title="Call SL Custom Construction for an Estimate"><img alt="Red phone icon" class="header__mobile-contact-icon" src="/Images_Content/Site3/Images/Layout/icon-phone-red.png" style="aspect-ratio:100/100;" /> <span>(585) 704-1187</span> </a> <a class="header__mobile-contact-link" href="mailto:[email protected]" title="Email SL Custom Construction"> <img alt="Red email envelope icon" class="header__mobile-contact-icon" src="/Images_Content/Site3/Images/Layout/icon-email-red.png" style="aspect-ratio:100/100;" /> <span>[email protected]</span> </a> <a class="header__mobile-contact-link" href="https://maps.google.com/?q=6600+Rice+Rd+Bldg+1+Victor+NY+14564" rel="noopener noreferrer" target="_blank" title="Get directions to the SL Custom Construction office in Victor NY â opens in a new tab"> <img alt="Red location pin icon" class="header__mobile-contact-icon" src="/Images_Content/Site3/Images/Layout/icon-location-red.png" style="aspect-ratio:100/100;" /> <span>6600 Rice Rd Bldg 1, Victor, NY 14564</span> </a></div>�<div aria-label="SL Custom Construction social media links" class="header__mobile-social-block">�<a aria-label="Visit SL Custom Construction on Facebook â opens in a new tab" class="header__mobile-social-link" href="https://www.facebook.com/slcustomconstruction" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on Facebook â opens in a new tab"><img alt="Facebook Logo Icon" class="header__mobile-social-icon" src="/Images_Content/Site3/Images/Layout/icon-facebook-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on Instagram â opens in a new tab" class="header__mobile-social-link" href="https://www.instagram.com/slcustomconstruction/" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on Instagram â opens in a new tab"> <img alt="Instagram Logo Icon" class="header__mobile-social-icon" src="/Images_Content/Site3/Images/Layout/icon-instagram-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on X (Twitter) â opens in a new tab" class="header__mobile-social-link" href="https://x.com/slcustom585" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on X (Twitter) â opens in a new tab"> <img alt="X (Twitter) Logo Icon" class="header__mobile-social-icon" src="/Images_Content/Site3/Images/Layout/icon-twitter-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on YouTube â opens in a new tab" class="header__mobile-social-link" href="https://www.youtube.com/@SLCustomConstructionRochester" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on YouTube â opens in a new tab"> <img alt="YouTube Logo Icon" class="header__mobile-social-icon" src="/Images_Content/Site3/Images/Layout/icon-youtube-white.png" style="aspect-ratio:100/100;" /> </a> <a aria-label="Visit SL Custom Construction on LinkedIn â opens in a new tab" class="header__mobile-social-link" href="https://www.linkedin.com/company/sl-custom-construction/" rel="noopener noreferrer" target="_blank" title="SL Custom Construction on LinkedIn â opens in a new tab"> <img alt="LinkedIn Logo Icon" class="header__mobile-social-icon" src="/Images_Content/Site3/Images/Layout/icon-linkedin-white.png" style="aspect-ratio:100/100;" /> </a></div>�</nav>�</div>�</div>�</div>�</div>�</div>�<div class="heading_spacer"></div>�<div role="main" style="width:100%; position:relative; margin:0 auto; text-align:center; background-color:#ffffff;">�<div style="width:100%; margin:0 auto; text-align:center;">�<style>�.work-row-cont {�width:100%;�padding:25px;�box-sizing:border-box;�font-size:0px;�text-align:left;�}�.work-box-cont {�display:inline-block;�text-align:center;�padding:25px;�box-sizing:border-box;�}�.work-box, .photos {�display:inline-block;�font-family:robotolight;�color:#ffffff;�text-decoration:none;�text-align:center;�vertical-align:top;�width:100%;�height:250px;�cursor:pointer;�position:relative;�overflow:hidden;�}�.work-box {�background-color:#004990;�}�.work-box-line {�display:inline-block;�height:0px;�text-align:center;�font-size:0px;�width:120px;�vertical-align:top;�border-top:solid 1px #ffffff;�margin-top:10px;�}�.photos {�background-repeat:no-repeat;�background-size:cover;�background-position:50% 50%;�}�.cover-box {�width:100%;�height:100%;�box-sizing:border-box;�display:inline-block;�text-align:center;�transition:all .5s ease;�position:absolute;�top:100%;�left:0px;�background:rgba(0,0,0,0.85);�}�.photos:hover .cover-box {�top:0%;�}�.banner-dark-cover {�position: absolute;�display: inline-block;�text-align: center;�width: 100%;�height: 100%;�left: 0;�top: 0;�font-size: 0px;�box-sizing: border-box;�z-index: 10;�background-image: linear-gradient(to top, rgba(193,154,59,0.6), rgba(109,15,22,1));�}�.home-logo-txt {�width:100%;�height:90px;�background:rgba(0,0,0,0.8);�text-align:center;�position: absolute;�display: inline-block;�box-sizing: border-box;�bottom: 0;�left: 0;�z-index: 11;�}�.pj-ban-txt {�display: inline-block;�box-sizing: border-box;�width: 100%;�font-size:4.4vw;�line-height: 5vw;�font-family: AntiqueLight, arial;�color: #ffffff;�text-align: center;�}�.ban-txt-cont {�position:absolute;�z-index: 3;�width:100%;�box-sizing:border-box;�left:0px;�right:0px;�bottom:40px;�padding:0px 5%;�text-align:center;�margin:0 auto;�color:#ffffff;�}�.ban-txt-cont a {�display:inline-block;�vertical-align:top;�text-align:center;�padding:15px 20px;�background:#636160;�color:#ffffff;�font-family:openSans;�text-decoration:none;�border-radius:5px;�font-size:20px;�transition:all .5s ease;�}�.ban-txt-cont a:hover {�padding:15px 25px;�background:#303030;�}�@media screen and (min-width: 320px) {�.work-box-cont {�width:100%;�}�.work-box {�font-size:24px;�}�.title-cont {�display: inline-block;�width: 70%;�color: rgb(96, 96, 96);�background: rgba(255, 255, 255, .8);�padding: 10px 12px;�font-family: Robotom,helvetica,arial;�font-size: 20px;�text-align: center;�}�.pj-ban-txt {�font-size:24px;�line-height: 34px;�}�}�@media screen and (min-width: 400px) {�.pj-ban-txt {�font-size:26px;�line-height: 36px;�}�}
1�@media screen and (min-width: 600px) {�.work-box-cont {�width:50%;�}�.pj-ban-txt {�font-size:32px;�line-height: 42px;�}�}�@media screen and (min-width: 990px) {�.work-box-cont {�width:25%;�}�.title-cont {�width: 25%;�font-size: 30px;�}�.pj-ban-txt {�font-size:4.4vw;�line-height: 5vw;�}�.ban-txt-cont {�bottom:60px;�}�.ban-txt-cont a {�padding:20px 30px;�font-size:24px;�}�.ban-txt-cont a:hover {�padding:20px 35px;�}�}�@media screen and (min-width: 1200px) {�.work-box {�font-size:30px;�}�}�@media screen and (min-width: 1400px) {�.work-box {�font-size:38px;�}�}�</style>�<div class="top-banner">�<img src="/Images_Content/Site3/Images/Banners/rochester-premier-custom-construction-victor-ny-custom-home.jpg" class="top-banner__image" alt="Rochester's Premier Custom Construction" style="aspect-ratio:96/35;">�<div class="top-banner__overlay"></div>�<div class="top-banner__content">�<h1>�Rochester's Premier Custom Construction�<br /><span class="accent-color">Built Beyond Expectations.</span>�</h1>�<span class="top-banner__description">Premier Custom Home Construction and Remodeling in Victor, NY.</span>�<div class="top-banner__btn-container">�<a class="btn-main" href="javascript:showContact()">�<span class="btn-text">Request Quote</span>�</a>�<a class="btn-main btn-main--secondary" href="/gallery">�<span class="btn-text">View Projects</span>�</a>�</div>�</div>�</div>�<div>��<section aria-label="About SL Custom Construction - Upstate NY Contractor" class="content-section contentnorm center-text">�<div class="content-section__inner">�<h2 class="split-heading">�<span class="split-heading__bold">Built On Quality.</span> <span class="split-heading__light">Backed By Experience.</span></h2>�<p>�Your home is your most valuable asset. Upgrading it requires a contractor who understands local building codes, respects your property, and delivers flawless craftsmanship. Founded in 2007 by Scott LaDue, <strong>SL Custom Construction</strong> brings nearly two decades of high-end building experience to homeowners across Ontario County.</p>�<p>�Whether you are looking to build a high-performance composite deck, finish your basement, or remodel your kitchen, our team manages the entire process from initial design to final inspection.</p>�</div>�<div class="btn-group">�<a class="btn btn--red" href="javascript:showContact()" title="Request a Free Home Remodeling Quote in Ontario County">Request Quote</a></div>�</section>��<section aria-label="Core Home Improvement and Construction Services in Victor NY" class="services-section contentnorm">�<div class="section-heading-wrap">�<span class="section-heading">Our Core Construction Services</span></div>�<div class="center-text" style="max-width: 800px; margin: 0 auto 2rem auto;">�<p>�We specialize in three primary areas of home improvement. By focusing our expertise, we ensure every project meets our strict standards for durability and aesthetic appeal.</p>�</div>�<div class="service-grid">�<div class="card-link">�<img alt="Custom built outdoor living space featuring a wood pergola and composite deck in Upstate NY" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/custom-outdoor-living-pergola-deck-victor-ny.jpg" style="aspect-ratio:1856/2304;" />�<div class="card-link__body">�<span class="card-link__title"><a href="/outdoor-living" title="Outdoor Living Spaces & Custom Decks">Outdoor Living</a></span>�<p class="card-link__desc">�Transform your backyard into a functional extension of your home. We build structures engineered to withstand harsh Upstate New York winters while providing the perfect summer escape.</p>�<ul class="sub-service-links">�<li>�<a href="/outdoor-living/custom-decks" title="Custom Composite and Premium Wood Deck Building">Custom Deck Building</a>: We specialize in low-maintenance composite and premium wood decks.</li>�<li>�<a href="/outdoor-living/patios-porches-pergolas" title="Custom Patios, Covered Porches, and Pergolas">Patios, Porches & Pergolas</a>: Custom ground-level spaces and covered structures for year-round enjoyment.</li>�<li>�<a href="/outdoor-living/kitchens-fireplaces" title="Outdoor Kitchens, Built-in Grills & Masonry Fireplaces">Outdoor Kitchens & Fireplaces</a>: Elevate your entertaining with built-in grills, masonry fireplaces, and custom firepits.</li>�</ul>�<a class="card-link__btn" href="/outdoor-living" title="Learn more about our Outdoor Living construction services">
1Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Outdoor Living construction services</span> </a></div>�</div>�<div class="card-link">�<img alt="Modern kitchen remodeling project featuring custom cabinetry and exposed wood ceiling beams" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/modern-kitchen-interior-renovation-victor-ny.jpg" style="aspect-ratio:1856/2304;" />�<div class="card-link__body">�<span class="card-link__title"><a href="/interior-renovations" title="Interior Renovations and Home Remodeling">Interior Renovations</a></span>�<p class="card-link__desc">�Modernize your daily living space with layouts designed for flow, function, and family.</p>�<ul class="sub-service-links">�<li>�<a href="/interior-renovations/kitchen-remodeling" title="Kitchen Remodeling and Custom Cabinetry Design">Kitchen Remodeling</a>: Complete tear-downs and modern redesigns featuring custom cabinetry and premium fixtures.</li>�<li>�<a href="/interior-renovations/basement-renovations" title="Basement Finishing, Home Theaters, and Gyms">Basement Finishing</a>: Turn unused square footage into home theaters, gyms, or extra bedrooms.</li>�<li>�<a href="/interior-renovations/additions-in-law-suites" title="Seamless Home Additions & In-Law Suites">Home Additions & In-Law Suites</a>: Expand your footprint seamlessly to accommodate growing families.</li>�<li>�<a href="/interior-renovations/ada-compliant-renovations" title="ADA Compliant Home Renovations for Aging in Place">ADA Compliant Renovations</a>: Safe, accessible, and beautiful home modifications for aging in place.</li>�</ul>�<a class="card-link__btn" href="/interior-renovations" title="Learn more about our Interior Renovation services">Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Interior Renovation services</span> </a></div>�</div>�<div class="card-link">�<img alt="Renovated home exterior featuring energy-efficient windows, black trim, and a covered front porch" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/home-exterior-improvement-roofing-siding-victor.jpg" style="aspect-ratio:1856/2304;" />�<div class="card-link__body">�<span class="card-link__title"><a href="/exterior-improvements" title="Home Exterior Improvements, Roofing, and Siding">Exterior Improvements</a></span>�<p class="card-link__desc">�Protect your home from the elements while drastically increasing its curb appeal.</p>�<ul class="sub-service-links">�<li>�<a href="/exterior-improvements/roofing-siding" title="Durable Roofing and Energy-Efficient Siding Solutions">Roofing & Siding</a>: Durable, energy-efficient weatherproofing solutions.</li>�<li>�<a href="/exterior-improvements/windows-doors" title="High-Performance Window and Door Installations">Windows & Doors</a>: High-performance installations to lower your energy bills.</li>�<li>�<a href="/exterior-improvements/concrete-masonry" title="Custom Concrete Driveways and Masonry Retaining Walls">Concrete & Masonry</a>: Structural retaining walls, custom driveways, and decorative concrete finishes.</li>�</ul>�<a class="card-link__btn" href="/exterior-improvements" title="Learn more about our Exterior Improvement services">Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Exterior Improvement services</span> </a></div>�</div>�</div>�</section>��<section aria-label="Specialized Seasonal Construction Services in New York" class="services-section contentnorm bg-gray-light">�<div class="section-heading-wrap">�<span class="section-heading">Specialized Seasonal Services</span></div>�<div class="service-grid">�<a class="card-link card-link--linked" href="/interior-renovations/basement-renovations" title="Custom Basement Finishing Services in NY"><img alt="Finished basement living room featuring custom lighting and a modern sectional sofa" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/finished-basement-living-space-ny.jpg" style="aspect-ratio:1856/2304;" /> <span class="card-link__body"> <span class="card-link__title">Basement Finishing</span> <span class="card-link__desc">
1 Turn unused square footage into a fully finished living space with custom lighting, flooring, and moisture-resistant construction built for New York basements.</span> <span class="card-link__btn">Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Basement Finishing</span></span> </span> </a> <a class="card-link card-link--linked" href="/epoxy-flooring" title="Durable Epoxy Flooring Installations"> <img alt="Polished seamless epoxy flooring installed in a residential garage" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/polished-epoxy-flooring-garage-basement.jpg" style="aspect-ratio:1856/2304;" /> <span class="card-link__body"> <span class="card-link__title">Epoxy Flooring</span> <span class="card-link__desc"> Durable, seamless epoxy coatings that transform garages, basements, and showrooms into polished, easy-to-clean surfaces built to last.</span> <span class="card-link__btn">Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Epoxy Flooring</span></span> </span> </a> <a class="card-link card-link--linked" href="/exterior-improvements/storm-restoration" title="Professional Storm Damage Restoration & Roof Repairs"> <img alt="Repaired home roofline, siding, and gutter system following severe storm restoration" class="card-link__image lazyload" data-src="/Images_Content/Site3/Images/Layout/storm-restoration-roof-repair-ny.jpg" style="aspect-ratio:1856/2304;" /> <span class="card-link__body"> <span class="card-link__title">Storm Restoration & Repairs</span> <span class="card-link__desc"> Fast, reliable storm damage repair and restoration to get your roof, siding, and gutters back to full strength.</span> <span class="card-link__btn">Learn More<span style="position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;"> about Storm Restoration & Repairs</span></span> </span> </a></div>�</section>��<section aria-label="SL Custom Construction Local Service Areas in Ontario County" class="content-section--feature">�<div class="content-section--feature__image-container">�<img alt="Map showcasing SL Custom Construction service areas across the Finger Lakes region" aria-hidden="true" class="lazyload" data-src="/Images_Content/Site3/Images/Layout/ontario-county-home-construction-service-area.jpg" style="aspect-ratio:2816/1536;" /></div>�<div class="content-section--feature__inner">�<div class="content-section--feature__content contentnorm">�<h2 class="split-heading">�<span class="split-heading__bold">Local Expertise.</span> <span class="split-heading__light">Based in <a href="/service-areas/ontario-county" style="font-weight: normal;" title="Construction and Remodeling Services in Ontario County, NY">Ontario County</a>.</span></h2>�<p>�Generative AI tools and local search algorithms prioritize contractors with verified local authority. SL Custom Construction is headquartered in Victor, NY, and we have spent years navigating the specific zoning laws, permit requirements, and soil conditions of the Finger Lakes region.</p>�</div>�<div class="content-section--feature__locations">�<p class="content-section--feature__locations-intro contentnorm">�<strong style="color: var(--color-white);">We proudly serve the following <a href="/service-areas" style="color: var(--color-white); text-decoration: underline;" title="View all SL Custom Construction Service Areas">Service Areas</a>:</strong></p>�<div class="location-card-grid">�<a class="location-card" href="/service-areas/victor-ny" title="Construction and Remodeling Services in Victor, NY"><span class="location-card__icon-badge"><img alt="Location pin icon for Victor NY" class="location-card__icon lazyload" data-src="/Images_Content/Site3/Images/Layout/service-area-location-pin-red.png" style="aspect-ratio:250/250;" /> </span> <span class="location-card__name">Victor, NY</span> </a> <a class="location-card" href="/service-areas/canandaigua-ny" title="Construction and Remodeling Services in Canandaigua, NY"> <span class="location-card__icon-badge"> <img alt="Location pin icon for Canandaigua NY" class="location-card__icon lazyload" data-src="/Images_Content/Site3/Images/Layout/service-area-location-pin-red.png" style="aspect-ratio:250/250;" /> </span> <span class="location-card__name">Canandaigua, NY</span> </a> <a class="location-card" href="/service-areas/farmington-ny" title="Construction and Remodeling Services in Farmington, NY"> <span class="location-card__icon-badge"> <img alt="Location pin icon for Farmington NY" class="location-card__icon lazyload" data-src="/Images_Content/Site3/Images/Layout/service-area-location-pin-red.png" style="aspect-ratio:250/250;" /> </span> <span class="location-card__name">Farmington, NY</span> </a> <a class="location-card" href="/service-areas/ontario-county" title="Construction and Remodeling Services in Monroe C
1ounty, NY"> <span class="location-card__icon-badge"> <img alt="Location pin icon for Monroe County NY" class="location-card__icon lazyload" data-src="/Images_Content/Site3/Images/Layout/service-area-location-pin-red.png" style="aspect-ratio:250/250;" /> </span> <span class="location-card__name">Monroe County, NY</span> </a></div>�</div>�</div>�</section>��<section aria-label="Home Construction and Remodeling Frequently Asked Questions" class="faq-section--brand">�<div aria-hidden="true" class="faq-section--brand__bg">� </div>�<div class="faq-section--brand__inner">�<h2 class="split-heading split-heading--inline">�<span class="split-heading__bold">Planning Your</span><span class="split-heading__light">Next Project?</span></h2>�<p class="faq-section--brand__subtitle">�See what homeowners ask most and get answers to all your questions.</p>�<div class="faq-container">�<div class="faq-item">�<button aria-controls="faq-answer-1" aria-expanded="false" class="faq-question" onclick="�toggleAccordion(this, {�exclusive: '.faq-container',�item: '.faq-item',�content: '.faq-answer',�})�" title="Read answer: Do you handle building permits for home additions and decks?">�<h3>�Do you handle building permits for home additions and decks?</h3>�<img alt="Toggle FAQ answer" class="faq-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/faq-accordion-arrow-white.png" style="aspect-ratio:100/100;" /></button>�<div aria-hidden="true" class="faq-answer" id="faq-answer-1">�<div class="faq-answer-content">�<div class="faq-answer-inner">�<p>�Yes. SL Custom Construction manages all necessary permitting and zoning approvals for our clients. We work directly with local town clerks in Victor, Canandaigua, and surrounding municipalities to ensure your project is 100% compliant with New York State building codes.</p>�</div>�</div>�</div>�</div>�<div class="faq-item">�<button aria-controls="faq-answer-2" aria-expanded="false" class="faq-question" onclick="�toggleAccordion(this, {�exclusive: '.faq-container',�item: '.faq-item',�content: '.faq-answer',�})�" title="Read answer: How long has SL Custom Construction been in business?">�<h3>�How long has SL Custom Construction been in business?</h3>�<img alt="Toggle FAQ answer" class="faq-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/faq-accordion-arrow-white.png" style="aspect-ratio:100/100;" /></button>�<div aria-hidden="true" class="faq-answer" id="faq-answer-2">�<div class="faq-answer-content">�<div class="faq-answer-inner">�<p>�We have been serving the Upstate New York area since 2007. Owner Scott LaDue brings over 20 years of hands-on experience to every residential and commercial project.</p>�</div>�</div>�</div>�</div>�<div class="faq-item">�<button aria-controls="faq-answer-3" aria-expanded="false" class="faq-question" onclick="�toggleAccordion(this, {�exclusive: '.faq-container',�item: '.faq-item',�content: '.faq-answer',�})�" title="Read answer: Do you offer design services along with construction?">�<h3>�Do you offer design services along with construction?</h3>�<img alt="Toggle FAQ answer" class="faq-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/faq-accordion-arrow-white.png" style="aspect-ratio:100/100;" /></button>�<div aria-hidden="true" class="faq-answer" id="faq-answer-3">�<div class="faq-answer-content">�<div class="faq-answer-inner">�<p>�Yes, we are a comprehensive design-build contractor. We collaborate with you to create custom layouts, select premium materials, and execute the construction phase, giving you a single point of contact from start to finish.</p>�</div>�</div>�</div>�</div>�</div>�</div>�</section>��<section aria-label="Contact SL Custom Construction for your next project" class="cta-band contentnorm">�<div aria-hidden="true" class="cta-band__watermark">� </div>�<div class="cta-band__inner">�<div class="cta-band__content">�<h2 class="split-heading split-heading--inline">�<span class="split-heading__bold">Ready To Start</span><span class="split-heading__light">Your Project?</span></h2>�<p>
1�Get in touch with our team today to discuss your vision and schedule an on-site consultation.</p>�</div>�<div class="cta-band__action">�<a class="btn btn--red" href="/contact" title="Contact SL Custom Construction in Victor NY">Contact Us</a></div>�</div>�</section>��</div>�<div>�</div>�</div>�</div>�<div style="width:100%; text-align:center">�<style type="text/css">�.footer__main {�background-color: var(--color-black);�color: var(--color-white);�}�/* --- REBALANCED PROMOS & FINANCING SECTION --- */�.footer__promos {�border-top: 1px solid rgba(255, 255, 255, 0.12);�border-bottom: 1px solid rgba(255, 255, 255, 0.12);�background-color: rgba(255, 255, 255, 0.02);�padding: 3rem var(--space-md);�}�.footer__promos-inner {�max-width: 1050px; /* Tightened from full-width to bring them together */�margin: 0 auto;�display: flex;�align-items: center;�justify-content: center; /* Center the entire block */�gap: 4rem; /* Even spacing between columns */�flex-wrap: wrap;�}�/* Shared class for both columns to ensure perfect symmetry */�.footer__promos-column {�flex: 1 1 400px;�display: flex;�flex-direction: column;�align-items: center; /* Center contents */�text-align: center; /* Center text */�}�/* Vertical Divider for Desktop */�.footer__promos-divider {�width: 1px;�height: 100px;�background-color: rgba(255, 255, 255, 0.15);�flex-shrink: 0;�}�.footer__promos-title {�display: block;�font-family: var(--font-heading);�font-size: 1.25rem;�font-weight: bold;�color: var(--color-white);�margin-bottom: 1.25rem;�text-transform: uppercase;�letter-spacing: 1px;�}�/* Special Offers Styling */�.footer__promos-discounts {�display: flex;�gap: 0.75rem;�flex-wrap: wrap;�justify-content: center; /* Center pills */�}�.footer__promos-discounts span {�background: rgba(255, 255, 255, 0.05);�border: 1px solid rgba(255, 255, 255, 0.25);�padding: 0.6rem 1rem;�border-radius: 4px;�font-size: 0.85rem;�font-weight: 600;�color: var(--color-white);�white-space: nowrap;�transition: border-color 0.3s ease, background 0.3s ease;�}�.footer__promos-discounts span:hover {�border-color: var(--color-red, #cc0000);�background: rgba(204, 0, 0, 0.1);�}�/* Financing Styling */�.footer__promos-column p {�font-family: var(--font-body);�font-size: 0.85rem;�color: rgba(255, 255, 255, 0.75);�margin: 0 0 1rem 0;�line-height: 1.4;�}�.footer__promos-banner-link {�display: block;�width: 100%;�max-width: 400px;�transition: transform 0.2s ease, opacity 0.2s ease;�}�.footer__promos-banner-link img {�width: 100%;�height: auto;�border-radius: 6px;�display: block;�border: 1px solid rgba(255, 255, 255, 0.4); /* Crisp, semi-transparent border */�box-shadow: 0 4px 15px rgba(0, 0, 0, 0.6); /* Drop shadow to make it pop */�}�.footer__promos-banner-link:hover {�opacity: 0.95;�transform: translateY(-2px);�}�/* -------------------------------------- */�.footer__top {�padding: var(--space-xl) var(--space-md);�border-bottom: 1px solid rgba(255, 255, 255, 0.12);�}�.footer__top-inner {�max-width: var(--container-max);�margin: 0 auto;�display: flex;�align-items: center;�gap: var(--space-xl);�flex-wrap: wrap;�justify-content: center;�}�.footer__logo {�max-width: 500px;�flex-shrink: 1;�}�.footer__bbb {�width: 110px;�flex-shrink: 0;�}�.footer__contact-list {�display: flex;�flex-direction: column;�gap: 0.6rem;�}�.footer__contact-link {�display: flex;�align-items: center;�gap: 0.6rem;�font-family: var(--font-body);�font-size: 0.9rem;�color: var(--color-white);�transition: color var(--transition-fast);�}�.footer__contact-link:hover {�color: var(--color-red);�}�.footer__contact-icon {�width: 16px;�height: 16px;�object-fit: contain;�flex-shrink: 0;�}�.footer__bottom {�padding: var(--space-xl) var(--space-md);�}�.footer__nav-list {�display: flex;�flex-wrap: wrap;�justify-content: center;�gap: var(--space-lg);�max-width: var(--container-max);�margin: 0 auto;�}�.footer__nav-link {�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-body-sm);�color: rgba(255, 255, 255, 0.85);�transition: color var(--transition-fast);�}�.footer__nav-link:hover {�color: var(--color-red);�}�.footer__copy-strip {�padding: 1.5rem var(--space-md);�}
1�.footer__copy-inner {�max-width: var(--container-max);�margin: 0 auto;�display: flex;�justify-content: space-between;�align-items: center;�flex-wrap: wrap;�gap: 0.75rem;�font-family: var(--font-body);�font-size: 0.78rem;�color: rgba(255, 255, 255, 0.6);�}�.footer__copy-links {�display: flex;�gap: 1.25rem;�}�.footer__copy-inner a {�color: rgba(255, 255, 255, 0.6);�transition: color var(--transition-fast);�}�.footer__copy-inner a:hover {�color: var(--color-white);�text-decoration: underline;�}�/* Mobile footer */�.footer__mobile {�display: none;�background-color: var(--color-black);�padding: var(--space-xl) 0 0 0;�text-align: center;�}�.footer__mobile-logo {�display: block;�max-width: 190px;�margin: 0 auto var(--space-lg);�}�.footer__mobile-nav-list {�display: flex;�flex-direction: column;�align-items: center;�gap: 0.35rem;�padding-bottom: var(--space-lg);�border-bottom: 1px solid rgba(255, 255, 255, 0.15);�margin-bottom: var(--space-lg);�padding-left: var(--space-md);�padding-right: var(--space-md);�}�.footer__mobile-nav-link {�display: block;�text-align: center;�padding: 0.65rem 0;�font-family: var(--font-heading);�font-weight: var(--fw-bold);�font-size: var(--fs-h6);�color: rgba(255, 255, 255, 0.9);�}�.footer__mobile-nav-link:hover {�color: var(--color-red);�}�.footer__mobile-meta {�padding: var(--space-lg) var(--space-md);�display: flex;�flex-direction: column;�align-items: center;�gap: var(--space-md);�}�.footer__mobile-bbb {�width: 90px;�}�.footer__mobile-contact-link {�display: flex;�align-items: center;�gap: 0.5rem;�font-family: var(--font-body);�font-size: 0.85rem;�color: rgba(255, 255, 255, 0.85);�}�.footer__mobile-copy {�margin: 0;�padding: 2rem var(--space-md);�font-size: 0.75rem;�color: rgba(255, 255, 255, 0.55);�line-height: 1.8;�}�.footer__mobile-copy a {�color: rgba(255, 255, 255, 0.55);�}�.footer__mobile-copy a:hover {�color: var(--color-white);�text-decoration: underline;�}�@media (max-width: 900px) {�.footer__desktop {�display: none;�}�.footer__mobile {�display: block;�}�/* Adjust promos for mobile */�.footer__promos {�padding: 2.5rem var(--space-md);�border-top: 1px solid rgba(255, 255, 255, 0.12);�border-bottom: 1px solid rgba(255, 255, 255, 0.12);�}�.footer__promos-divider {�display: none; /* Hide vertical line on mobile */�}�.footer__promos-inner {�flex-direction: column;�gap: 3rem;�}�.footer__promos-column {�width: 100%;�flex: 1 1 auto;�}�.footer__promos-banner-link {�max-width: 100%;�}�.footer__promos-banner-link img {�max-width: 100%; /* Stretches to full readable size on mobile */�}�}</style>�<footer aria-label="SL Custom Construction Site Footer" class="footer__main" role="contentinfo">��<div aria-label="Desktop Footer Content" class="footer__desktop">�<div class="footer__top">�<div class="footer__top-inner">�<a class="footer__logo" href="/" title="SL Custom Construction Home Page in Victor, NY"><img alt="SL Custom Construction Company Footer Logo" class="lazyload" data-src="/Images_Content/Site3/Images/Layout/sl-custom-construction-footer-logo.png" style="aspect-ratio:750/130;" /> </a> <iframe border="0" class="footer__bbb lazyload" data-src="https://seal-upstateny.bbb.org/frame/blue-seal-293-61-whitetxt-bbb-236010247.png?chk=9D5261D877" frameborder="0" style="border: 0; height:65px; width:310px;" title="better business bureau logo"></iframe>�<div aria-label="Footer Contact Information" class="footer__contact-list">�<a class="footer__contact-link" href="tel:15857041187" onclick="updateConv();" title="Call SL Custom Construction for an Estimate"><img alt="Red phone icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-phone-red.png" style="aspect-ratio:100/100;" /> <span>(585) 704-1187</span> </a> <a class="footer__contact-link" href="mailto:[email protected]" title="Email SL Custom Construction for a Consultation"> <img alt="Red email envelope icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-email-red.png" style="aspect-ratio:100/100;" /> <span>[email protected]</span> </a> <a class="footer__contact-link" href="https://maps.google.com/?q=6600+Rice+Rd+Bldg+1+Victor+NY+14564" rel="noopener noreferrer" target="_blank" title="Get directions to the SL Custom Construction office in Victor NY â opens in a new tab">
1 <img alt="Red location pin icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-location-red.png" style="aspect-ratio:100/100;" /> <span>6600 Rice Rd Bldg 1, Victor, NY 14564</span> </a></div>�</div>�</div>�<div class="footer__bottom">�<nav aria-label="Primary Footer Navigation" class="footer__nav-list">�<a class="footer__nav-link" href="/" title="SL Custom Construction Home Page">Home</a> <a class="footer__nav-link" href="/about" title="About SL Custom Construction">About</a> <a class="footer__nav-link" href="/careers" title="Construction Careers at SL Custom Construction">Careers</a> <a class="footer__nav-link" href="/outdoor-living" title="Outdoor Living Construction and Design Services">Outdoor Living</a> <a class="footer__nav-link" href="/interior-renovations" title="Interior Home Renovations and Remodeling">Interior Renovations</a> <a class="footer__nav-link" href="/exterior-improvements" title="Exterior Home Improvements and Storm Repair">Exterior & Storm</a> <a class="footer__nav-link" href="/epoxy-flooring" title="Durable Epoxy Flooring Installations">Epoxy Flooring</a> <a class="footer__nav-link" href="/service-areas" title="SL Custom Construction Local Service Areas">Service Areas</a> <a class="footer__nav-link" href="/gallery" title="View the SL Custom Construction Project Portfolio">Our Work</a> <a class="footer__nav-link" href="/contact" title="Contact SL Custom Construction for a Free Estimate">Contact</a></nav>�</div>��<div aria-label="Special Offers and Financing" class="footer__promos">�<div class="footer__promos-inner">�<div class="footer__promos-column">�<span class="footer__promos-title">Special Offers</span>�<div class="footer__promos-discounts">�<span>5% New Customer</span> <span>5% Repeat Customer</span> <span>5% Veteran & First Responder</span></div>�</div>�<div aria-hidden="true" class="footer__promos-divider">� </div>�<div class="footer__promos-column">�<span class="footer__promos-title">Flexible Financing</span>�<p>�Financing is available through Hearth Financing.<br />�Reach out today to learn more!</p>�<a class="footer__promos-banner-link" href="https://app.gethearth.com/partners/sl-custom-construction-llc?utm_campaign=48266&utm_content=white&utm_medium=contractor-website&utm_source=contractor&utm_term=700x110" rel="noopener noreferrer" target="_blank" title="Learn more about Hearth Financing"><img alt="Financing available through Hearth Financing" height="110" loading="lazy" src="/Images_Content/Site3/Images/Layout/hearth-financing-logo.png" style="aspect-ratio:700/110; width: 100%; max-width: 400px" width="700" /> </a></div>�</div>�</div>�<div aria-label="Copyright and Legal Links" class="footer__copy-strip">�<div class="footer__copy-inner">�<span>Copyright © SL Custom Construction 2026 — All rights reserved.</span>�<div class="footer__copy-links">�<a href="/privacy-policy" title="SL Custom Construction Privacy Policy">Privacy Policy</a> <a href="/accessibility" title="SL Custom Construction Accessibility Statement">Accessibility</a> <a href="/sitemap" title="SL Custom Construction Website Sitemap">Sitemap</a> <a href="https://www.scriptablesolutions.com" rel="noopener noreferrer" target="_blank" title="Website Design and Digital Marketing by Scriptable Solutions â opens in a new tab">Website Design by Scriptable Solutions</a></div>�</div>�</div>�</div>��<div aria-label="Mobile Footer Navigation Block" class="footer__mobile">�<a class="footer__mobile-logo" href="/" title="SL Custom Construction Home Page in Victor, NY"><img alt="SL Custom Construction Company Footer Logo" class="lazyload" data-src="/Images_Content/Site3/Images/Layout/sl-custom-construction-footer-logo.png" style="aspect-ratio:750/130;" /> </a>�<nav aria-label="Mobile Footer Links" class="footer__mobile-nav-list">�<a class="footer__mobile-nav-link" href="/" title="SL Custom Construction Home Page">Home</a> <a class="footer__mobile-nav-link" href="/outdoor-living" title="Outdoor Living Construction and Design Services">Outdoor Living</a> <a class="footer__mobile-nav-link" href="/interior-renovations" title="Interior Home Renovations and Remodeling">Interior Renovations</a> <a class="footer__mobile-nav-link" href="/exterior-improvements" title="Exterior Home Improvements and Storm Repair">Exterior & Storm</a> <a class="footer__mobile-nav-link" href="/epoxy-flooring" title="Durable Epoxy Flooring Installations">Epoxy Flooring</a> <a class="footer__mobile-nav-link" href="/service-areas" title="SL Custom Construction Local Service Areas">Service Areas</a> <a class="footer__mobile-nav-link" href="/gallery" title="View the SL Custom Construction Project Portfolio">Our Work</a> <a class="footer__mobile-nav-link" href="/contact" title="Contact SL Custom Construction for a Free Estimate">Contact</a></nav>�<div aria-label="Mobile Footer Contact Information" class="footer__mobile-meta">�<iframe border="0" class="footer__mobile-bbb lazyload" data-src="https://seal-upstateny.bbb.org/frame/white-seal-293-61-bbb-236010247.png?chk=9D5261D877" frameborder="0" style="border: 0; height:65px; width:310px;" title="better business bureau logo"></iframe><a class="footer__mobile-contact-link" href="tel:15857041187" onclick="updateConv();" title="Call SL Custom Construction for an Estimate">
1<img alt="Red phone icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-phone-red.png" style="aspect-ratio:100/100;" /> <span>(585) 704-1187</span> </a> <a class="footer__mobile-contact-link" href="mailto:[email protected]" title="Email SL Custom Construction for a Consultation"> <img alt="Red email envelope icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-email-red.png" style="aspect-ratio:100/100;" /> <span>[email protected]</span> </a> <a class="footer__mobile-contact-link" href="https://maps.google.com/?q=6600+Rice+Rd+Bldg+1+Victor+NY+14564" rel="noopener noreferrer" target="_blank" title="Get directions to the SL Custom Construction office in Victor NY â opens in a new tab"> <img alt="Red location pin icon" class="footer__contact-icon lazyload" data-src="/Images_Content/Site3/Images/Layout/icon-location-red.png" style="aspect-ratio:100/100;" /> <span>6600 Rice Rd Bldg 1, Victor, NY 14564</span> </a></div>��<div aria-label="Special Offers and Financing" class="footer__promos">�<div class="footer__promos-inner">�<div class="footer__promos-column">�<span class="footer__promos-title">Special Offers</span>�<div class="footer__promos-discounts">�<span>5% New Customer</span> <span>5% Repeat Customer</span> <span>5% Veteran & First Responder</span></div>�</div>�<div class="footer__promos-column">�<span class="footer__promos-title">Flexible Financing</span>�<p>�Financing is available through Hearth Financing.<br />�Reach out today to learn more!</p>�<a class="footer__promos-banner-link" href="https://app.gethearth.com/partners/sl-custom-construction-llc?utm_campaign=48266&utm_content=white&utm_medium=contractor-website&utm_source=contractor&utm_term=700x110" rel="noopener noreferrer" target="_blank" title="Learn more about Hearth Financing"><img alt="Financing available through Hearth Financing" loading="lazy" src="https://app.gethearth.com/contractor_images/sl-custom-construction-llc/banner.jpg?color=white&size_id=700x110" /> </a></div>�</div>�</div>�<p class="footer__mobile-copy">�Copyright © SL Custom Construction 2026 — All rights reserved.<br />�<a href="/privacy-policy" title="SL Custom Construction Privacy Policy">Privacy Policy</a> · <a href="/accessibility" title="SL Custom Construction Accessibility Statement">Accessibility</a><br />�Website Design by <a href="https://www.scriptablesolutions.com" rel="noopener noreferrer" target="_blank" title="Website Design and Digital Marketing by Scriptable Solutions â opens in a new tab">Scriptable Solutions</a>.</p>�</div>�</footer>�</div>�</div>�
1<script>�function loadMediaDivs(id) {�var stp = 0, arg = arguments.length;�if (arg==1) var elms = $("#" + id);�else var elms = $("div[data-mediatype]");�elms.each(function() {�var elm = $(this), div = "", mid = "", tag = "", shw = 0, lay = 0, res = "", typ = elm.attr("data-mediatype").toLowerCase();�if (stp==0 && (typ=='loaded' || (arg!=1 && elm.hasClass("lazyload")))) {�if (elm.attr("data-mediastop")) {�var tmp = elm.attr("data-mediastop");�if ((isNaN(tmp) && (tmp=='true' || tmp=='yes')) || (!isNaN(tmp) && tmp>0)) stp = 1;�}�} else if (stp==0 && elm.attr("id")) {�div = elm.attr("id");�if (elm.attr("data-mediaid")) mid = elm.attr("data-mediaid");�if (elm.attr("data-mediatag")) tag = elm.attr("data-mediatag");�if (elm.attr("data-mediatags")) tag = elm.attr("data-mediatags");�if (elm.attr("data-mediashow")) shw = elm.attr("data-mediashow");�if (elm.attr("data-medialayout")) lay = elm.attr("data-medialayout");�if (elm.attr("data-mediaresolution")) res = elm.attr("data-mediaresolution");�if (elm.attr("data-mediastop")) {�var tmp = elm.attr("data-mediastop");�if ((isNaN(tmp) && (tmp=='true' || tmp=='yes')) || (!isNaN(tmp) && tmp>0)) stp = 1;�}�// set defaults�if (isNaN(shw) || shw<0) shw = 0;�if (isNaN(lay) || lay<0) lay = 0;�if (typ.length==0) typ = "photos";�else if (typ.charAt(typ.length-1)!='s') typ += "s";�if (typ=='photos') {�if (mid.length==0) mid = "";�if ((this.hasAttribute('data-mediatag') || this.hasAttribute('data-mediatags')) && tag.length==0) tag = "";�} else if (typ=='videos' && mid.length==0) {�mid = "";�}�$.post("/ajax/get_media.cfm", {AppName: "ROCHESTERDECKBUILDERS", MediaID: mid, Tags: tag, Type: typ, Show: shw, Layout: lay, Resolution: res}, function(data) { loadMediaResponse(data,div) }, "html");�elm.attr("data-mediatype", "loaded");�} else {�elm.removeAttr("data-mediatype");�}�});�}�function loadMediaResponse(obj,id) {�let el = document.getElementById(id);�if (!obj) obj = "ERROR - INVALID AJAX RESPONSE!";�el.innerHTML = obj;�if (el.classList.contains('lazydefer')) dclLazy(id);�}�</script>
1�<style type="text/css">�/*�* jQuery FlexSlider v2.5.0�* http://www.woothemes.com/flexslider/�*�* Copyright 2012 WooThemes�* Free to use under the GPLv2 and later license.�* http://www.gnu.org/licenses/gpl-2.0.html�*�* Contributing author: Tyler Smith (@mbmufffin)�*�*/�/* ====================================================================================================================�* FONT-FACE�* ====================================================================================================================*/�@font-face {�font-family: 'flexslider-icon';�src: url('/resources/flexslider/fonts/flexslider-icon.eot');�src: url('/resources/flexslider/fonts/flexslider-icon.eot?#iefix') format('embedded-opentype'), url('/resources/flexslider/fonts/flexslider-icon.woff') format('woff'), url('/resources/flexslider/fonts/flexslider-icon.ttf') format('truetype'), url('/resources/flexslider/fonts/flexslider-icon.svg#flexslider-icon') format('svg');�font-weight: normal;�font-style: normal;�font-display: fallback;�}�/* ====================================================================================================================�* RESETS�* ====================================================================================================================*/�.flex-container a:hover,�.flex-slider a:hover,�.flex-container a:focus,�.flex-slider a:focus {�outline: none;�}�.slides,�.slides > li,�.flex-control-nav,�.flex-direction-nav {�margin: 0;�padding: 0;�list-style: none;�}�.flex-pauseplay span {�text-transform: capitalize;�}�/* ====================================================================================================================�* BASE STYLES�* ====================================================================================================================*/�.flexslider {�margin: 0;�padding: 0;�}�.flexslider .slides > li {�display: none;�-webkit-backface-visibility: hidden;�}�.flexslider .slides img {�width: 100%;�display: block;�}�.flexslider .slides:after {�content: "\0020";�display: block;�clear: both;�visibility: hidden;�line-height: 0;�height: 0;�}�html[xmlns] .flexslider .slides {�display: block;�}�* html .flexslider .slides {�height: 1%;�}�.no-js .flexslider .slides > li:first-child {�display: block;�}�/* ====================================================================================================================�* DEFAULT THEME�* ====================================================================================================================*/�.flexslider {�//margin: 0 0 60px;�margin:0;�//background: #ffffff;�//border: 4px solid #ffffff;�position: relative;�zoom: 1;�//-webkit-border-radius: 4px;�// -moz-border-radius: 4px;�//border-radius: 4px;�//-webkit-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);�// -moz-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);�// -o-box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);�//box-shadow: '' 0 1px 4px rgba(0, 0, 0, 0.2);�//overflow:hidden;�}�.flexslider .slides {�zoom: 1;�}�.flexslider .slides img {�height: auto;�}�.flex-viewport {�max-height: 2000px;�-webkit-transition: all 1s ease;�-moz-transition: all 1s ease;�-ms-transition: all 1s ease;�-o-transition: all 1s ease;�transition: all 1s ease;�}�.loading .flex-viewport {�max-height: 300px;�}�.carousel li {�margin-right: 5px;�}�.flex-direction-nav {�*height: 0;�}�.flex-direction-nav a {�text-decoration: none;�display: block;�width: 40px;�height: 40px;�margin: -20px 0 0;�position: absolute;�top: 50%;�z-index: 10;�overflow: hidden;�opacity: 0;�cursor: pointer;�color: rgba(0, 0, 0, 0.8);�text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);�-webkit-transition: all 0.3s ease-in-out;�-moz-transition: all 0.3s ease-in-out;�-ms-transition: all 0.3s ease-in-out;�-o-transition: all 0.3s ease-in-out;�transition: all 0.3s ease-in-out;�}�.flex-direction-nav a:before {�font-family: "flexslider-icon";�font-size: 40px;�display: inline-block;�content: '\f001';�color: rgba(0, 0, 0, 0.8);�text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);�}�.flex-direction-nav a.flex-next:before {�content: '\f002';�}�.flex-direction-nav .flex-prev {�left: 0px;�}�.flex-direction-nav .flex-next {�right: 0px;�text-align: right;�}�.flexslider:hover .flex-direction-nav .flex-prev {�opacity: 0.7;�left: 10px;�}�.flexslider:hover .flex-direction-nav .flex-prev:hover {�opacity: 1;�}�.flexslider:hover .flex-direction-nav .flex-next {�opacity: 0.7;�right: 10px;�}�.flexslider:hover .flex-direction-nav .flex-next:hover {�opacity: 1;�}�.flex-direction-nav .flex-disabled {�opacity: 0!important;�filter: alpha(opacity=0);�cursor: default;�}�.flex-pauseplay a {�display: block;
1�width: 20px;�height: 20px;�position: absolute;�bottom: 5px;�left: 10px;�opacity: 0.8;�z-index: 10;�overflow: hidden;�cursor: pointer;�color: #000;�}�.flex-pauseplay a:before {�font-family: "flexslider-icon";�font-size: 20px;�display: inline-block;�content: '\f004';�}�.flex-pauseplay a:hover {�opacity: 1;�}�.flex-pauseplay a.flex-play:before {�content: '\f003';�}�.flex-control-nav {�width: 100%;�position: absolute;�bottom: -30px;�text-align: center;�}�.flex-control-nav li {�margin: 0 6px;�display: inline-block;�zoom: 1;�*display: inline;�}�.flex-control-paging li a {�width: 11px;�height: 11px;�display: block;�background: #666;�background: rgba(0, 0, 0, 0.5);�cursor: pointer;�text-indent: -9999px;�-webkit-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);�-moz-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);�-o-box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);�box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);�-webkit-border-radius: 20px;�-moz-border-radius: 20px;�border-radius: 20px;�}�.flex-control-paging li a:hover {�background: #333;�background: rgba(0, 0, 0, 0.7);�}�.flex-control-paging li a.flex-active {�background: #000;�background: rgba(0, 0, 0, 0.9);�cursor: default;�}�.flex-control-thumbs {�margin: 5px 0 0;�position: static;�overflow: hidden;�}�.flex-control-thumbs li {�width: 25%;�float: left;�margin: 0;�}�.flex-control-thumbs img {�width: 100%;�height: auto;�display: block;�opacity: .7;�cursor: pointer;�-webkit-transition: all 1s ease;�-moz-transition: all 1s ease;�-ms-transition: all 1s ease;�-o-transition: all 1s ease;�transition: all 1s ease;�}�.flex-control-thumbs img:hover {�opacity: 1;�}�.flex-control-thumbs .flex-active {�opacity: 1;�cursor: default;�}�/* ====================================================================================================================�* RESPONSIVE�* ====================================================================================================================*/�@media screen and (max-width: 860px) {�.flex-direction-nav .flex-prev {�opacity: 1;�left: 10px;�}�.flex-direction-nav .flex-next {�opacity: 1;�right: 10px;�}�}�</style>�
1<script>�function dclGlobal() {�var nav = document.getElementById('siteNav');�var mobileMenu�= nav.querySelector('.header__mobile-menu');�var mobileClose = nav.querySelector('.header__mobile-close');�var mobileToggle = document.querySelector('.menu-content__mobile-toggle');�function openMobileMenu() {�nav.classList.add('active');�setTimeout(function () {�mobileMenu.classList.add('active');�mobileMenu.removeAttribute('inert');�}, 10);�if (mobileToggle) mobileToggle.classList.add('active');�document.body.style.overflow = 'hidden';�}�function closeMobileMenu() {�nav.classList.remove('active');�mobileMenu.classList.remove('active');�mobileMenu.setAttribute('inert', '');�if (mobileToggle) mobileToggle.classList.remove('active');�document.body.style.overflow = '';�}�if (mobileToggle) {�mobileToggle.addEventListener('click', function () {�mobileMenu.classList.contains('active') ? closeMobileMenu() : openMobileMenu();�});�} else {�console.warn('mobileToggle not found â hamburger will not work');�}�if (mobileClose) {�mobileClose.addEventListener('click', function () {�closeMobileMenu();�});�} else {�console.warn('mobileClose not found â close button will not work');�}�nav.addEventListener('click', function (e) {�if (e.target === nav) {�closeMobileMenu();�}�});�mobileMenu.querySelectorAll('.header__mobile-nav-toggle').forEach(function (toggle, index) {�toggle.addEventListener('click', function () {�this.classList.toggle('active');�var dropdown = this.nextElementSibling;�if (dropdown) dropdown.classList.toggle('active');�});�});�document.addEventListener('keydown', function (e) {�if (e.key === 'Escape' && mobileMenu.classList.contains('active')) {�closeMobileMenu();�}�});�window.addEventListener('resize', function () {�if (window.innerWidth > 1200 && mobileMenu.classList.contains('active')) {�closeMobileMenu();�}�});�}�function setActiveNavigation() {�var currentPath = window.location.pathname;�// Step 1: Direct anchor links â desktop nav, dropdown links, footer�document.querySelectorAll('.menu-content__nav-link, .menu-content__dropdown-link, .footer__nav-link, .footer__mobile-nav-link').forEach(function (link) {�if (link.tagName === 'SPAN') return;�var href = link.getAttribute('href');�if (!href || href.startsWith('javascript:')) return;�var isFooter = link.classList.contains('footer__nav-link') || link.classList.contains('footer__mobile-nav-link');�if (isFooter) {�if (currentPath === href) link.classList.add('footer__nav-link--active');�} else {�if (currentPath === href || (href !== '/' && currentPath.startsWith(href + '/')))�link.classList.add('menu-content__nav-link--active');�}�});�// Step 2: Parent links with dropdowns â infer active from any child link match�document.querySelectorAll('.menu-content__nav-item').forEach(function (navItem) {�var dropdown = navItem.querySelector('.menu-content__dropdown');�if (!dropdown) return;�var isParentActive = Array.from(dropdown.querySelectorAll('.menu-content__dropdown-link')).some(function (child) {�var href = child.getAttribute('href');�if (!href) return false;�return currentPath === href || (href !== '/' && currentPath.startsWith(href + '/'));�});�if (isParentActive) {�// Target the parent link â now an <a>, not a <span>�var parentLink = navItem.querySelector('.menu-content__nav-link--has-dropdown');�if (parentLink) parentLink.classList.add('menu-content__nav-link--active');�}�});�// Step 3: Mobile sidebar â highlight active link and open its parent accordion�document.querySelectorAll('.header__mobile-nav-link').forEach(function (link) {�var href = link.getAttribute('href');�if (!href) return;�if (currentPath === href || (href !== '/' && currentPath.startsWith(href + '/'))) {�link.classList.add('header__mobile-nav-link--active');�var dropdown = link.closest('.header__mobile-dropdown');�if (dropdown) {�dropdown.classList.add('active');�var toggle = dropdown.previousElementSibling;�if (toggle && toggle.classList.contains('header__mobile-nav-toggle')) {�toggle.classList.add('active');�}�}�}�});�}�setActiveNavigation();�function toggleAccordion(trigger, options) {�options = options || {};�var exclusiveSelector = options.exclusive || null;�var itemSelector�= options.item�|| null;�var contentSelector�= options.content�|| null;�var item�= itemSelector ? trigger.closest(itemSelector) : trigger.parentElement;�var isOpen�= item.classList.contains('active');�var siblings = exclusiveSelector�? item.closest(exclusiveSelector).querySelectorAll(':scope > ' + (itemSelector || '*'))�: item.parentElement.querySelectorAll(':scope > *');
1�siblings.forEach(function (sib) {�sib.classList.remove('active');�var sibTrigger = sib.querySelector('[aria-expanded]');�if (sibTrigger) sibTrigger.setAttribute('aria-expanded', 'false');�var sibContent = contentSelector ? sib.querySelector(contentSelector) : null;�if (sibContent) sibContent.setAttribute('aria-hidden', 'true');�});�if (!isOpen) {�item.classList.add('active');�trigger.setAttribute('aria-expanded', 'true');�var content = contentSelector ? item.querySelector(contentSelector) : null;�if (content) content.setAttribute('aria-hidden', 'false');�}�}�document.addEventListener("DOMContentLoaded", () => {�// INTERSECTION OBSERVER VERSION�const observer = new IntersectionObserver((entries) => {�entries.forEach(entry => {�if (entry.isIntersecting) {�entry.target.classList.add('visible');�// Stop observing after animation triggers (animate once only)�observer.unobserve(entry.target);�}�});�}, {�threshold: 0.1, // Trigger when 10% of element is visible�rootMargin: '0px 0px 0px 0px'�// Element must be 100px into viewport�});�// Observe all elements with animate-on-scroll class�const animateElements = document.querySelectorAll('.animate-on-scroll');�animateElements.forEach(el => {�observer.observe(el);�});�});�function trim(str) {�var str = str.replace(/^\s\s*/, ''),�ws = /\s/,�i = str.length;�while (ws.test(str.charAt(--i)));�return str.slice(0, i + 1);�}�function showEvent(Event) {�var params = new Object ();�var url= "calendar_event.cfm?EventNumber=" + Event;�params['type'] = 4;�params['width'] = 700;
1�params['height'] = 500;�parent.showIbox(url,'',params);�parent.showBG();�parent.window.onscroll = maintPos;�parent.window.onresize = maintPos;�}�function playVideo(Id) {�if (Id && Id.length) {�var params = new Object ();�var url= "video_player.cfm?Video=" + Id + "&rel=0&autoplay=1";�params['type'] = 4;�params['width'] = 900;�params['height'] = 500;�showIbox(url,'',params);�showBG();�window.onscroll = maintPos;�window.onresize = maintPos;�}�}�function PopupCenter(pageURL, title,w,h) {�var left = (screen.width/2)-(w/2);�var top = (screen.height/2)-(h/2);�var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);�}�function PopupCenter(pageURL, title,w,h) {�var left = (screen.width/2)-(w/2);�var top = (screen.height/2)-(h/2);�var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);�}�// Contact Form Functions - Updated with exact 10-digit phone validation�function showContact() {�if (!document.ContactForm) getForms();�document.getElementById('ContactDiv').style.display='block';�document.getElementById('ContactDiv').style.opacity='1';�document.getElementById('ContactDiv').style.filter='alpha(opacity=100)';�document.body.style.overflowY = "hidden";�}�function closeContactForm() {�document.getElementById('ContactDiv').style.opacity='0';�document.getElementById('ContactDiv').style.filter='alpha(opacity=0)';�setTimeout(function() {�document.getElementById('ContactDiv').style.display='none';�}, 300);�document.body.style.overflowY = "scroll";�}�function getForms(r) {�var req = 0;�var err = "";�var fname = "", lname = "", phn = "", eml = "", straddr = "", city = "", zip = "", svc = "", desc = "", time = "", hear = "";�if (arguments.length==1) req = 1;�if (req==1) {�fname = trim(document.ContactForm.FirstName.value);�lname = trim(document.ContactForm.LastName.value);�phn = trim(document.ContactForm.Phone.value);�eml = trim(document.ContactForm.EmailAddress.value);�straddr = trim(document.ContactForm.StreetAddress.value);�city = trim(document.ContactForm.City.value);�zip = trim(document.ContactForm.Zip.value);�svc = document.ContactForm.PrimaryService.value;�desc = trim(document.ContactForm.ProjectDescription.value);�time = document.ContactForm.Timeline.value;�hear = document.ContactForm.HearAbout.value;�var emailPattern = /^[a-zA-Z0-9.~_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,15}$/;�document.querySelectorAll('.form-control').forEach(function(el) {�el.style.borderColor = '#cfd8dc';�});�if (fname.length==0) { err += "Please enter your first name!\n"; document.ContactForm.FirstName.style.borderColor='#ff0000'; }�if (lname.length==0) { err += "Please enter your last name!\n"; document.ContactForm.LastName.style.borderColor='#ff0000'; }�var phoneDigits = phn.replace(/\D/g, '');�if (phoneDigits.length != 10) { err += "Please enter a valid 10-digit phone number!\n"; document.ContactForm.Phone.style.borderColor='#ff0000'; }�if (!emailPattern.test(eml)) { err += "Please enter a valid email address!\n"; document.ContactForm.EmailAddress.style.borderColor='#ff0000'; }�if (straddr.length==0) { err += "Please enter the project street address!\n"; document.ContactForm.StreetAddress.style.borderColor='#ff0000'; }�if (city.length==0) { err += "Please enter the project city!\n"; document.ContactForm.City.style.borderColor='#ff0000'; }�if (zip.length!=5 || !/^\d{5}$/.test(zip)) { err += "Please enter a valid 5-digit ZIP code!\n"; document.ContactForm.Zip.style.borderColor='#ff0000'; }�if (svc.length==0) { err += "Please select a service!\n"; document.ContactForm.PrimaryService.style.borderColor='#ff0000'; }�if (desc.length < 10) { err += "Please tell us a bit about your project!\n"; document.ContactForm.ProjectDescription.style.borderColor='#ff0000'; }�if (time.length==0) { err += "Please select your desired timeline!\n"; document.ContactForm.Timeline.style.borderColor='#ff0000'; }�if (err.length>0) {�alert(err);�return false;�} else {�document.ContactForm.SubmitForm.disabled = true;�document.ContactForm.SubmitForm.innerText = "PROCESSING...";�}�}�var dat = {�AppName: "ROCHESTERDECKBUILDERS",�Req: req,�FirstName: fname,�LastName: lname,�Phone: phn,�EmailAddress: eml,�StreetAddress: straddr,�City: city,�Zip: zip,�PrimaryService: svc,�ProjectDescription: desc,�Timeline: time,�HearAbout: hear,�PageReferral: jspage�};�function postForm(token) {�var formData = new FormData();�for (var key in dat) { formData.append(key, dat[key]); }�if (token) formData.append('g-recaptcha-response', token);�var fileInput = (document.ContactForm && document.ContactForm.FileUpload) ? document.ContactForm.FileUpload : null;�if (fileInput && fileInput.files.length > 0) {�formData.append('FileUpload', fileInput.files[0], fileInput.files[0].name);�}�$.ajax({�url: "/AJAX/contact_popup_sl.cfm",�type: "POST",�data: formData,�processData: false,�contentType: false,�success: function(data) { AJAX_Response(data); }�});�}�if (req==1 && window.grecaptcha) {�grecaptcha.execute('6LfkqWcaAAAAAFIT-ZIQqKjm5lhj3-OSQPLvgCVF', {action: 'submit'}).then(function(token) {�dat['g-recaptcha-response'] = token;�$.post("/AJAX/contact_popup_sl.cfm", dat, function(data) { AJAX_Response(data) }, "html");�});�} else {�loadCaptcha();�$.post("/AJAX/contact_popup_sl.cfm", dat, function(data) { AJAX_Response(data) }, "html");�}�}�function trim(str) {�var str = str.replace(/^\s\s*/, ''),�ws = /\s/,�i = str.length;�while (ws.test(str.charAt(--i)));�return str.slice(0, i + 1);�}�function AJAX_Response(obj) {�if (obj) obj = trim(obj);�else obj = "";�if (!obj.length) obj = "ERROR!";�document.getElementById("ContactFormFeed").innerHTML = trim(obj);�if (obj.indexOf("We will be in contact with you shortly")!=-1) {�ga('send', 'event', { eventCategory: 'QuickForm', eventAction: 'Submit'});�if (typeof fbq !== 'undefined') fbq('track', 'CompleteRegistration');�}�}�function loadCaptcha() {�if (!window.grecaptcha) {�var script = document.createElement("script");�script.type = "text/javascript";�script.async = true;�script.src = "https://www.google.com/recaptcha/api.js?render=6LfkqWcaAAAAAFIT-ZIQqKjm5lhj3-OSQPLvgCVF";�document.getElementsByTagName("head")[0].appendChild(script);�}�}�function loadTests() {�jQuery('#testimonials1, #testimonials2').flexslider({�animation: "slide",�slideshowSpeed: 7000,�controlNav: true,�directionNav: false�//control
1sContainer: ".flex-container"�});�}�function loadHeadjs() {�setTimeout(menuStick, 0);�if (typeof loadMediaDivs=='function') setTimeout(loadMediaDivs, 0);�if (typeof loadBanner=='function') setTimeout(loadBanner, 0);�//if (typeof loadTests=='function') setTimeout(loadTests, 0);�if (typeof loadReview=='function') setTimeout(loadReview, 0);�if (typeof openGallery=='function') {�['/resources/photoswipe/photoswipe.min.js','/resources/photoswipe/photoswipe-ui-default.min.js'].forEach(function(src) {�var s = document.createElement('script');�s.src = src;�s.async = false;�document.head.appendChild(s);�});�}�setTimeout(updateRequest, 0, 0);�setTimeout(loadGA, 0);�}�function fixFetch() {�fetch = function(url){window.open(url,'_blank','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=1000,height=800,top=0,left=20')};�}�var updVis = 15000;�function updateRequest(t) {�if (screen.width && !isNaN(screen.width) && screen.width>0) {�if (arguments.length!=1) t = 1;�if (t==1 || updVis==5000) $.post("/ajax/update_user.cfm", {AppName: "ROCHESTERDECKBUILDERS", Time: t, Width:
1screen.width, Height: screen.height}, function(data) { updateResponse(data) }, "html");�else setTimeout("updateRequest()", updVis);�}�}�function updateResponse(obj) {�if (obj && obj.length>0) obj = trim(obj);�else obj = 0;�if (!isNaN(obj) && obj>0) setTimeout("updateRequest()", updVis);�updVis = 30000;�}�function menuStick() {�$(window).scroll(function () {�// what is the y position of the scroll?�var y = $(window).scrollTop();�// Check if the scroll position is greater than or equal to 10px�if (y >= 40) {�// if so, add the fixed classes�$('.nav_menu').addClass('nav_menu_sticky');�$('.logo').addClass('logo2');�$('.navlink').addClass('navlink2');�$('.black-shape').addClass('black-shape2');�$('.black-diag').addClass('black-diag2');�$('.heading_spacer').addClass('heading_spacer_sticky');�$('.header__nav-link').addClass('header__nav-link--sticky');�$('.cta-btn').addClass('cta-btn--sticky');�} else {�// otherwise, remove them�$('.nav_menu').removeClass('nav_menu_sticky');�$('.logo').removeClass('logo2');�$('.navlink').removeClass('navlink2');�$('.black-shape').removeClass('black-shape2');�$('.black-diag').removeClass('black-diag2');�$('.heading_spacer').removeClass('heading_spacer_sticky');�$('.header__nav-link').removeClass('header__nav-link--sticky');�$('.cta-btn').removeClass('cta-btn--sticky');�}�});�}�function updateConv() {�if (typeof $=='function' && typeof ga=='function') {�$.post("/ajax/update_user.cfm", {AppName: "ROCHESTERDECKBUILDERS", Conv: 1}, function(data) { }, "html");�ga('send', 'event', 'ClickCall', 'Submit');�} else {�window.setTimeout(function() { updateConv() }, 100);�}�}�</script>
1�
1<script>�// ga func for legacy code/events�function ga(s,a,o,t) {�if (a=='event') {�if (typeof(o)==='string') a = o;�else a = o.eventCategory;�}�a = a.toLowerCase();�gtag('event', a);�}�// GA4�window.dataLayer = window.dataLayer || [];�function gtag(){dataLayer.push(arguments);}�setTimeout(function(){gtag('js', new Date());}, 0);�setTimeout(function(){gtag('config', 'G-53QMCQ5Q90');}, 0);�function loadGA() {�let s = document.createElement("script");�s.async = true;�s.src = "/GA4/G-53QMCQ5Q90.js";�s.onload = function(){if (typeof trackEvent=='function') setTimeout(trackEvent, 0);};�document.getElementsByTagName("head")[0].appendChild(s);�}�</script>
1�
1<script>�// run on DCL�document.addEventListener("DOMContentLoaded", function() {�setTimeout(dclTouch, 0);�setTimeout(dclLazy, 0);�setTimeout(dclCopy, 0);�if (typeof dclGlobal=='function') setTimeout(dclGlobal, 0);�});�function dclTouch() {�// add (passive) touch events�document.querySelectorAll('[data-touch]').forEach(function(el) {�var tch = el.dataset.touch;�if (tch.indexOf("/")==0) {�el.addEventListener("touchstart", function(){ this.src = tch; }, {passive: true});�} else {�var hex = tch.split(/[^a-zA-Z0-9#]+/);�el.addEventListener("touchstart", function(){ this.style.backgroundColor = hex[0]; if (hex.length>1) this.style.color = hex[1]; }, {passive: true});�}�});�}�function dclLazy(id) {�// lazyload imgs/vid/bgs/divs/ajax/iframe�var tags = ['video','audio','picture'];�if (arguments.length==1) var lazyElements = document.getElementById(id).querySelectorAll(".lazyload");�else var lazyElements = document.querySelectorAll(".lazyload");�if ("IntersectionObserver" in window) {�var imageObserver = new IntersectionObserver(function(entries, observer) {�entries.forEach(function(entry) {�if (entry.isIntersecting) {�var el = entry.target, nam = el.nodeName.toLowerCase();�if (el.hasAttribute("data-src")) {�if (nam=='img' || nam=='iframe' || tags.indexOf(nam)>=0) el.src = el.dataset.src;�else el.style.backgroundImage = "url('" + el.dataset.src + "')";�} else if (tags.indexOf(nam)>=0 && el.firstElementChild && el.firstElementChild.hasAttribute("data-src")) {�el.src = el.firstElementChild.dataset.src;�}�if (el.hasAttribute("data-mediatype")) {�loadMediaDivs(el.id);�} else if (el.hasAttribute("data-fnc") && el.dataset.fnc.length>0) {�if (el.dataset.fnc.indexOf("|")>0) {�var fncArr = el.dataset.fnc.split("|"), fncStr = fncArr[0];�if (typeof window[fncStr]=='function') {�fncArr.shift();�window[fncStr].apply(null, fncArr);�}�} else if (typeof window[el.dataset.fnc]=='function') {�window[el.dataset.fnc]();�}�}�el.classList.remove("lazyload");�imageObserver.unobserve(el);�}�});�}, {�rootMargin: "250px"�});�lazyElements.forEach(function(el) {�imageObserver.observe(el);�});�} else {�var lazyloadThrottleTimeout;�function lazyld () {�if(lazyloadThrottleTimeout) {�clearTimeout(lazyloadThrottleTimeout);�}�lazyloadThrottleTimeout = setTimeout(function() {�var scrollTop = window.pageYOffset;�lazyElements.forEach(function(el) {�if(el.offsetTop < (window.innerHeight + scrollTop + 250)) {�var nam = el.nodeName.toLowerCase();�if (el.hasAttribute("data-src")) {�if (nam=='img' || nam=='iframe' || tags.indexOf(nam)>=0) el.src = el.dataset.src;�else el.style.backgroundImage = "url('" + el.dataset.src + "')";�} else if (tags.indexOf(nam)>=0 && el.firstElementChild && el.firstElementChild.hasAttribute("data-src")) {�el.src = el.firstElementChild.dataset.src;�}�if (el.hasAttribute("data-mediatype")) {�loadMediaDivs(el.id);�} else if (el.hasAttribute("data-fnc") && el.dataset.fnc.length>0) {�if (el.dataset.fnc.indexOf("|")>0) {�var fncArr = el.dataset.fnc.split("|"), fncStr = fncArr[0];�if (typeof window[fncStr]=='function') {�fncArr.shift();�window[fncStr].apply(null, fncArr);�}�} else if (typeof window[el.dataset.fnc]=='function') {�window[el.dataset.fnc]();�}�}�el.classList.remove("lazyload");�}�});�if(lazyElements.length==0) {�document.removeEventListener("scroll", lazyld);�window.removeEventListener("resize", lazyld);�window.removeEventListener("orientationChange", lazyld);�}�}, 20);�}�document.addEventListener("scroll", lazyld);�window.addEventListener("resize", lazyld);�window.addEventListener("orientationChange", lazyld);�}�}�function dclCopy() {�// display copyright yr�if (document.getElementById("CopyDate")) document.getElementById("CopyDate").innerHTML = new Date().getFullYear();�//added to avoid multiple/same id's�document.querySelectorAll(".CopyDate").forEach(function(el) { el.innerHTML = new Date().getFullYear(); });�}�function loadBannerImgs() {�document.querySelectorAll('.deferred[data-src]').forEach(function(el) {�el.src = el.dataset.src;�});�loadBanner();�}�function addLoadDeferred() {�var oldLoad = window.onload;�window.onload = function() {�if (typeof oldLoad=='function') oldLoad();�if (typeof loadHeadjs=='function') loadHeadjs();�}�}�addLoadDeferred();�</script>
1�</body>�</html>
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.