Skip to content

Instantly share code, notes, and snippets.

@garrettmac
Created May 20, 2017 15:57
Show Gist options
  • Save garrettmac/4610026f6f01c14262dc8853d54bc23d to your computer and use it in GitHub Desktop.
Save garrettmac/4610026f6f01c14262dc8853d54bc23d to your computer and use it in GitHub Desktop.
thumbtack.com
<!DOCTYPE html>
<!--[if IE 7 ]> <html lang="en" class="ie7 "> <![endif]-->
<!--[if IE 8 ]> <html lang="en" class="ie8 "> <![endif]-->
<!--[if IE 9 ]> <html lang="en" class="ie9 "> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class=""> <!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"><meta http-equiv="Content-Style-Type" content="text/css" /><meta http-equiv="Content-Script-Type" content="text/javascript" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name=dropbox-domain-verification content=0gjo970nvgw9 /><title>Thumbtack - Consider it done</title><meta property="fb:app_id" content="131357050011"><meta
property="og:url"
content="https://www.thumbtack.com/"><meta property="og:title" content="Thumbtack - Consider it done"><meta property="og:type" content="website"><meta property="og:site_name" content="Thumbtack"><meta property="og:description" content="Thumbtack is the destination for getting things done. Just tell us what you need and we’ll deliver up to five custom quotes from local pros ready to help."><meta name="description" content="Thumbtack is the destination for getting things done. Just tell us what you need and we’ll deliver up to five custom quotes from local pros ready to help." /><link rel="image_src" href="https://static4.thumbtackstatic.com/theme/images/thumbtack2.png"><meta property="og:image"
content="https://static5.thumbtackstatic.com/media/logos/thumbtack_logomark_200x200.png"><meta property="og:image:secure_url"
content="https://static5.thumbtackstatic.com/media/logos/thumbtack_logomark_200x200.png"><meta property="og:image:width" content="200"><meta property="og:image:height" content="200"><meta property="og:image:type" content="image/png"><link rel="canonical" href="index.html" /><meta name="omg:cute" href="https://static5.thumbtackstatic.com/media/puppies/pup.jpg"><link rel="icon" href="https://www.thumbtack.com/favicon.ico" /><link rel="apple-touch-icon" href="https://www.thumbtack.com/apple-touch-icon-152x152.png" /><link rel="icon" type="image/png" href="https://www.thumbtack.com/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="https://www.thumbtack.com/favicon-16x16.png" sizes="16x16"><link rel="manifest" href="https://www.thumbtack.com/manifest.json"><link rel="mask-icon" href="https://www.thumbtack.com/safari-pinned-tab.svg" color="#f27802 "><meta name="msapplication-TileColor" content="#ff0000 "><meta name="msapplication-TileImage" content="/mstile-144x144.png"><meta name="theme-color" content="#ffffff "><link rel="stylesheet" media="all" href="https://static5.thumbtackstatic.com/_assets/styles/release/legacy-css/thumbprint/pages/banner-app-upsell-62ab7e10.css.gz" /><script>
TT_FB_KEY = "131357050011";
RECAPTCHA_SITE_KEY = "6LeUcx0UAAAAAD5r8_HlLr4M77iuL-Lj3Mo-VKYJ";
TT_MOBILE = false;
</script>
<link rel="stylesheet"
href="https://static2.thumbtackstatic.com/_assets/styles/release/globals/styles/core-0b1c5c96.css.gz" />
<link rel="stylesheet"
href="https://static5.thumbtackstatic.com/_assets/styles/release/globals/styles/fonts/full-f074da3d.css.gz" />
<link rel="stylesheet"
href="https://static5.thumbtackstatic.com/_assets/styles/release/pages/homepage/styles/homepage-1178d9ea.css.gz" />
</head>
<body id="" class="">
<!--[if !(IE 9)]>--><script>
(function(){
var svgFile = "https:\/\/static7.thumbtackstatic.com\/_assets\/svg\/release\/symbol\/svg\/sprite.symbol-d31beca0.svg.gz";
var xhr = new XMLHttpRequest();
xhr.open("GET", svgFile);
// Use text/plain instead of text/xml http://stackoverflow.com/a/13030629
xhr.setRequestHeader("Content-Type", "text/plain");
xhr.onreadystatechange = function () {
if (xhr.readyState !== XMLHttpRequest.DONE) {
return;
}
if (200 <= xhr.status && xhr.status < 300) {
var wrap = document.createElement("div");
try {
wrap.appendChild(xhr.responseXML.documentElement);
} catch (e) {
wrap.innerHTML = xhr.responseText;
}
wrap.style.display = "none";
document.body.insertBefore(wrap, document.body.firstChild);
return;
}
};
xhr.send();
})()
</script><!--<![endif]--><svg class="curtain-visible" viewBox="0 0 76 12" style="position: absolute; height: 0;"><defs><clipPath id="aura-stars-mask"><polygon points="6 9.95015528 2.29179607 12 3 7.65835921 0 4.58359214 4.14589803
3.95015528 6 0 7.85410197 3.95015528 12 4.58359214 9 7.65835921 9.70820393 12
"></polygon><polygon points="22 9.95015528 18.2917961 12 19 7.65835921 16 4.58359214 20.145898
3.95015528 22 0 23.854102 3.95015528 28 4.58359214 25 7.65835921 25.7082039 12
"></polygon><polygon points="38 9.95015528 34.2917961 12 35 7.65835921 32 4.58359214 36.145898
3.95015528 38 0 39.854102 3.95015528 44 4.58359214 41 7.65835921 41.7082039 12
"></polygon><polygon points="54 9.95015528 50.2917961 12 51 7.65835921 48 4.58359214 52.145898
3.95015528 54 0 55.854102 3.95015528 60 4.58359214 57 7.65835921 57.7082039 12
"></polygon><polygon points="70 9.95015528 66.2917961 12 67 7.65835921 64 4.58359214 68.145898
3.95015528 70 0 71.854102 3.95015528 76 4.58359214 73 7.65835921 73.7082039 12
"></polygon></clipPath></defs></svg><install-native-app
user-type = "customer"
data-flavor = "header"
utm-source = "HP"
android-icon-url = "https://static4.thumbtackstatic.com/_assets/images/release/components/install-native-app/images/google-play-badge-8c7ddebe.svg"
iphone-icon-url = "https://static6.thumbtackstatic.com/_assets/images/release/components/install-native-app/images/apple-app-store-c62cc2f9.svg"
></install-native-app><div class="glorious-header theme-inverse-overlay
GlobalHeader "
data-section="header"><div class="wrapper"><div class="row header-row"><div class="header-logo"><a href="index.html"
><svg-icon
class=" IconContainer"
style="min-width:178px;min-height:28px"
twig-rendered><svg class="Icon" viewBox="0 0 178 28"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#thumbprinticon-thumbtack-logo_178x28"></use></svg></svg-icon><img class="GlobalHeader-fallbackLogo"
src="https://static1.thumbtackstatic.com/media/logos/thumbtack_brand_152x24.svg"
width="152" height="24" alt="Thumbtack"></a></div><div class="header-middle-container"><a class="middle-tab
" href="https://www.thumbtack.com/explore"event-track="dashboard/click explore"
event-track-on="click">
Explore
</a></div><div class="header-navigation by-tabs-nav "><a href="https://www.thumbtack.com/pro" rel="nofollow"
event-track="home page/clicked join as a pro"
event-track-on="click"
class="gray-link">
Join as a Pro
</a><a href="https://www.thumbtack.com/choose-account" rel="nofollow"
event-track="home page/clicked sign up"
event-track-on="click"
class="gray-link">
Sign Up
</a><a href="https://www.thumbtack.com/login" rel="nofollow"
event-track="home page/clicked log in"
event-track-on="click"
class="gray-link log-in-link">
Log In
</a></div></div></div><input type="checkbox"
id="mobile-navigation-toggle"
class="mobile-navigation-toggle "><label
for="mobile-navigation-toggle"
class="mobile-navigation-trigger "><svg-icon class="GlobalHeader-down" type="hamburger" size="md"></svg-icon><svg-icon class="GlobalHeader-up" type="close-experimental" size="md"></svg-icon></label><div class="glorious-navigation-wrapper
hidden "><div class="glorious-navigation
column-lg-6 "><div class="wrapper browse-wrapper empty-default" data-browse-container><ul class="navigation-row"><li class="mobile-navigation-item GlobalHeader-loginLink"><a href="https://www.thumbtack.com/pro" rel="nofollow"
event-track="home page/clicked join as a pro"
event-track-on="click">Join as a Pro</a></li><li class="mobile-navigation-item GlobalHeader-loginLink"><a href="https://www.thumbtack.com/choose-account" rel="nofollow"
event-track="home page/clicked sign up"
event-track-on="click">Sign Up</a></li><li class="mobile-navigation-item GlobalHeader-loginLink"><a href="https://www.thumbtack.com/login" rel="nofollow"
event-track="home page/clicked log in"
event-track-on="click">Log In</a></li><li class="mobile-navigation-item GlobalHeader-loginLink"><a href="https://www.thumbtack.com/explore">Explore</a></li></ul></div></div></div></div>
<div class="Homepage">
<div viewport-element="hero">
<hero
class="Hero "
responsive-image
responsive-grid="page"
uses-densities
above-md="{
'1x': ' https://static6.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-lg-1x-c459a9bc.jpg
',
'2x': ' https://static7.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-lg-2x-c29caea0.jpg
'
}"
above-sm-below-md="{
'1x': ' https://static6.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-lg-1x-c459a9bc.jpg
',
'2x': ' https://static7.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-lg-2x-c29caea0.jpg
'
}"
below-sm="{
'1x': ' https://static5.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-sm-1x-69b7d987.jpg
',
'2x': ' https://static3.thumbtackstatic.com/_assets/images/release/modules/hero-create-request/images/home-hero-sm-2x-dd04ae90.jpg
'
}"
>
<div class="Hero-tint "
>
</div>
<div class="page-grid Hero-grid">
<div
class="Hero-content">
<div class="column-lg-6">
<h1 class="Hero-content-title tp-heading-1
"
>
Consider it done.
</h1>
</div>
<div class="column-lg-4 column-md-6">
<h4 class="H4-R Hero-content-subtitle theme-inverted ">
From house painting to personal training, we bring you the right pros for every project on your list.
</h4>
</div>
<div class="column-lg-4 column-md-6">
<div
ng-cloak
ng-if="!lpRestartExperience.showRestartCta"
class="Hero-content-cta">
<div class="SearchForm theme-default">
<form search-form open-request-form-modal
from-homepage="1"
hide-intro-screen=""
ng-submit="submitSearch($event)"
class="SearchForm-form"
action="index.html#"
hercule-root-url="https://hercule.thumbtack.io"
hercule-version="0"
include-test=""
page-type="4"
search-origin="searchform-homepage"
event-name="searchform-homepage"
>
<div class="SearchForm-form-inputGroup multi-line-sm" >
<span class="SearchForm-form-query B2-S"
ng-class="{'dropdownOpen': suggestionsOpen}">
<input class="query"
ng-class="{'is-empty-state': isEmptyState}"
required
autocomplete="off"
placeholder="What service do you need?"
type="search"
event-track="home page/start service query"
event-track-on="keypress"
event-track-data="{
pageType: '4',
searchOrigin: 'searchform-homepage',
}"
event-track-once
/>
<div class="SearchForm-form-query-clearQuery">
<label
ng-class="{'is-empty-state': isEmptyState}"
class="SearchForm-form-query-clearQuery-wrapper"
for="clear-input-field"
ng-click="clearSearchField()"
>
<svg-icon
type="declined"
size="sm"
class="SearchForm-form-query-clearQuery-wrapper-icon">
</svg-icon>
</label>
</div>
</span>
<button class="
SearchForm-form-submitBtn
Button
theme-large
"
type="submit"
event-track="hercule/click get started"
event-track-on="click"
event-track-data="{
pageType: '4',
searchOrigin: 'searchform-homepage',
}">
Get Started
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</hero>
</div>
<div class="CategoryNavV3">
<div class="page-grid">
<div class="column-lg-6">
<p class="H4-R CategoryNavV3-heading">
All Services
</p>
<ul class="CategoryNavV3-list">
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/events"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--events' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--events"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--events"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Events</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/home-improvement"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--home-improvement' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--home-improvement"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--home-improvement"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Home</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/lessons"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--lessons' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--lessons"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--lessons"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Lessons</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/wellness"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--wellness' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--wellness"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--wellness"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Wellness</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/more-services#category-group-business"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--business' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--business"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--business"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Business</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/more-services#category-group-crafts"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--crafts' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--crafts"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--crafts"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Crafts</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/more-services#category-group-designWeb"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--design-and-web' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--design-and-web"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--design-and-web"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">Design &amp; Web</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
<li class="CategoryNavV3-item">
<a href="https://www.thumbtack.com/more-services"
class="CategoryNavV3-link"
event-track="home page/clicked meta category"
event-track-on="click"
event-track-data="{ category_type: 'category-group--more' }">
<svg-icon
class="CategoryNavV3-item-icon icon-md"
type="category-group--more"
size="md">
</svg-icon>
<svg-icon
class="CategoryNavV3-item-icon icon-lg"
type="category-group--more"
size="lg">
</svg-icon>
<span class="T2-S CategoryNavV3-item-label">More</span>
<svg-icon
class="CategoryNavV3-item-expand"
type="right-caret2"
size="md">
</svg-icon>
</a>
</li>
</ul>
<div class="CategoryNavV3-moreLink">
<a class="T2-S Link" href="https://www.thumbtack.com/more-services">
See more
</a>
</div>
</div>
</div>
</div>
<div class="Moments ">
<div class="Moments-container">
<div class="Moments-moment">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">Popular in your area</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="25"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GTdkGWTMaOx4Wg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GTdkGWTMaOx4Wg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GTdkGWTMaOx4Wg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static5.thumbtackstatic.com/production/hero-images/1432_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Dog Training
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;DlKFbmZEwCYQyA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;DlKFbmZEwCYQyA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('DlKFbmZEwCYQyA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1310_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Lawn Mowing and Trimming
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GhsBh:XCyI0ORQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GhsBh:XCyI0ORQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GhsBh:XCyI0ORQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static3.thumbtackstatic.com/production/hero-images/2031_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Sprinkler and Irrigation System Repair and Maintenance
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dQJN84Ndr5s$Xg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:3,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dQJN84Ndr5s$Xg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:3,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dQJN84Ndr5s$Xg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2525_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Party Bus Rental
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;M:HwIR8qa:MQww&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:4,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;M:HwIR8qa:MQww&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:4,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('M:HwIR8qa:MQww', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/2233_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Handyman
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Ef:ZOOYOXFaD2A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:6,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Ef:ZOOYOXFaD2A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:6,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Ef:ZOOYOXFaD2A', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static5.thumbtackstatic.com/production/hero-images/2833_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
House Cleaning
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;nV8DGI4:dEUXtQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:7,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;nV8DGI4:dEUXtQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:7,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('nV8DGI4:dEUXtQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1434_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Local Moving (under 50 miles)
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:8,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:8,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('1axLKc3DdQ6g5w', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/2992_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Personal Training
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:9,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:9,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('kMI95pqKXLU9vQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/2849_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Massage Therapy
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:10,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:10,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Q9sYIW2IZP5AkA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static5.thumbtackstatic.com/production/hero-images/3009_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding and Event Makeup
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:11,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:11,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('N3RO9AsfLUgQUA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1880_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Photo Booth Rental
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;9J5P8q6rNlEGlQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:12,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;9J5P8q6rNlEGlQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:12,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('9J5P8q6rNlEGlQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/3063_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Fence and Gate Installation
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:13,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:13,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('XyyEps5FZMepLQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static8.thumbtackstatic.com/production/hero-images/1316_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Interior Painting
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:14,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:14,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('iJlabHh2QF9ylg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2165_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
DJ
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Rfn88VIV27Tb3g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:15,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Rfn88VIV27Tb3g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:15,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Rfn88VIV27Tb3g', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2514_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Portrait Photography
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;1AlrokYQ00L8eQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:16,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;1AlrokYQ00L8eQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:16,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('1AlrokYQ00L8eQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1512_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Roof Installation or Replacement
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;b7cSvw5Y7PhRlA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:17,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;b7cSvw5Y7PhRlA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:17,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('b7cSvw5Y7PhRlA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1857_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding Officiant
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Vin8kPc8QyC5KQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:18,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Vin8kPc8QyC5KQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:18,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Vin8kPc8QyC5KQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/2085_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Computer Repair
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;WI6X4ybzsrA6:A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:19,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;WI6X4ybzsrA6:A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:19,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('WI6X4ybzsrA6:A', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2172_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Concrete Installation
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:20,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:20,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('yZUmyVje7z70Mw', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1952_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Nutritionist
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;HSN$F3bPaZ1iaw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:21,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;HSN$F3bPaZ1iaw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:21,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('HSN$F3bPaZ1iaw', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1401_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Piano Lessons
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;6WTJnO6mPxjoag&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:22,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;6WTJnO6mPxjoag&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:22,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('6WTJnO6mPxjoag', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/1552_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Pest Control Services
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;EImutic0TgVgHQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:23,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;EImutic0TgVgHQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:23,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('EImutic0TgVgHQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1585_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Private Cooking Lessons
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;BsZRjG9vqYu:KQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:24,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;BsZRjG9vqYu:KQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:24,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('BsZRjG9vqYu:KQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2367_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Electrical and Wiring Issues
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;NrOTJXyTYoMHaA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:25,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;NrOTJXyTYoMHaA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:25,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('NrOTJXyTYoMHaA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1838_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Land Surveying
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GTdkGWTMaOx4Wg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GTdkGWTMaOx4Wg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GTdkGWTMaOx4Wg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static5.thumbtackstatic.com/production/hero-images/1432_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Dog Training
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;DlKFbmZEwCYQyA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;DlKFbmZEwCYQyA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('DlKFbmZEwCYQyA', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1310_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Lawn Mowing and Trimming
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GhsBh:XCyI0ORQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GhsBh:XCyI0ORQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GhsBh:XCyI0ORQ', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static3.thumbtackstatic.com/production/hero-images/2031_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Sprinkler and Irrigation System Repair and Maintenance
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dQJN84Ndr5s$Xg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:3,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dQJN84Ndr5s$Xg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:3,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dQJN84Ndr5s$Xg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2525_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Party Bus Rental
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;M:HwIR8qa:MQww&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:4,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;M:HwIR8qa:MQww&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:4,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('M:HwIR8qa:MQww', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/2233_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Handyman
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Ef:ZOOYOXFaD2A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:6,&quot;block_position&quot;:0,&quot;block_type&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Ef:ZOOYOXFaD2A&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:6,&quot;block_position&quot;:0,&quot;block_type&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Ef:ZOOYOXFaD2A', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static5.thumbtackstatic.com/production/hero-images/2833_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
House Cleaning
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
<div class="Moments-moment">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">Trending now</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="3"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;ul0uwKP9LZbBfg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;ul0uwKP9LZbBfg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('ul0uwKP9LZbBfg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static8.thumbtackstatic.com/production/hero-images/2465_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Deck Staining
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;29EdERcHj04lig&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;29EdERcHj04lig&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('29EdERcHj04lig', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/1581_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Central Air Conditioning Repair
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;tni6zTcgxEePow&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;tni6zTcgxEePow&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('tni6zTcgxEePow', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1383_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Stucco Application
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;ul0uwKP9LZbBfg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;ul0uwKP9LZbBfg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:0,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('ul0uwKP9LZbBfg', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static8.thumbtackstatic.com/production/hero-images/2465_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Deck Staining
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;29EdERcHj04lig&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;29EdERcHj04lig&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:1,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('29EdERcHj04lig', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/1581_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Central Air Conditioning Repair
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track="recommendation/click"
event-track-on="click"
waypoint-track="category recommendation"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;tni6zTcgxEePow&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:1,&quot;block_type&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;tni6zTcgxEePow&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:null,&quot;position&quot;:2,&quot;block_position&quot;:1,&quot;block_type&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('tni6zTcgxEePow', '')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1383_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Stucco Application
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
<div
class="Moments-moment"
waypoint-track="moments"
waypoint-track-data="{ 'moment_index': 0 }">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">Home Improvement</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="11"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dZvApXl02R95eA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dZvApXl02R95eA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dZvApXl02R95eA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2216_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Furniture assembly
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dGELR947mm7esA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dGELR947mm7esA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dGELR947mm7esA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2163_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Interior design
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;4V0Dr$GdjC7zbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;4V0Dr$GdjC7zbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('4V0Dr$GdjC7zbg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2236_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Carpet installation
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;FgkDqgZUb6Ws8g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;FgkDqgZUb6Ws8g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('FgkDqgZUb6Ws8g', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1430_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
TV mounting
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('XyyEps5FZMepLQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1316_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Interior painting
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;r4auLL7JI2I9Og&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;r4auLL7JI2I9Og&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('r4auLL7JI2I9Og', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1865_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Home security and alarms install
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Bg9:OPqOradztw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:6}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Bg9:OPqOradztw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:6}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Bg9:OPqOradztw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1469_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Outdoor landscaping
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;9J5P8q6rNlEGlQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:7}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;9J5P8q6rNlEGlQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:7}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('9J5P8q6rNlEGlQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1915_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Fence and Gate Installation
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;BhkJ:4VSZgitbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:8}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;BhkJ:4VSZgitbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:8}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('BhkJ:4VSZgitbg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1770_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Packing and unpacking
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;CGoqNwAGYYU2qA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:9}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;CGoqNwAGYYU2qA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:9}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('CGoqNwAGYYU2qA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2296_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Carpet cleaning
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;MO18xmpaxkHcSw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:10}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;MO18xmpaxkHcSw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:10}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('MO18xmpaxkHcSw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2023_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Pressure washing
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dZvApXl02R95eA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dZvApXl02R95eA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dZvApXl02R95eA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2216_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Furniture assembly
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;dGELR947mm7esA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;dGELR947mm7esA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('dGELR947mm7esA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2163_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Interior design
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;4V0Dr$GdjC7zbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;4V0Dr$GdjC7zbg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('4V0Dr$GdjC7zbg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2236_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Carpet installation
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;FgkDqgZUb6Ws8g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;FgkDqgZUb6Ws8g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('FgkDqgZUb6Ws8g', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1430_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
TV mounting
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;XyyEps5FZMepLQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('XyyEps5FZMepLQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1316_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Interior painting
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;r4auLL7JI2I9Og&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;r4auLL7JI2I9Og&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:0,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('r4auLL7JI2I9Og', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1865_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Home security and alarms install
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
<div
class="Moments-moment"
waypoint-track="moments"
waypoint-track-data="{ 'moment_index': 1 }">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">Weddings and Events</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="9"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Q9sYIW2IZP5AkA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1973_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding and Event Makeup
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('iJlabHh2QF9ylg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2165_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
DJ
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('N3RO9AsfLUgQUA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1880_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Photo Booth Rental
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;856A3475nmblEA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;856A3475nmblEA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('856A3475nmblEA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/3029_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Event Photography
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;8HROc4dEjopfYA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;8HROc4dEjopfYA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('8HROc4dEjopfYA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1956_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Bartending
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;UyomZzHyHN433g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;UyomZzHyHN433g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('UyomZzHyHN433g', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1716_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding Planning
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;b7cSvw5Y7PhRlA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:6}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;b7cSvw5Y7PhRlA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:6}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('b7cSvw5Y7PhRlA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1857_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding Officiant
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;CCTDl7L5T97CDQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:7}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;CCTDl7L5T97CDQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:7}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('CCTDl7L5T97CDQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/3007_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Event Videography
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;4cSkMRhLRZuHPg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:8}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;4cSkMRhLRZuHPg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:8}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('4cSkMRhLRZuHPg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2094_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Event Catering (Buffet)
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;Q9sYIW2IZP5AkA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('Q9sYIW2IZP5AkA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1973_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding and Event Makeup
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;iJlabHh2QF9ylg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('iJlabHh2QF9ylg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2165_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
DJ
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;N3RO9AsfLUgQUA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('N3RO9AsfLUgQUA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1880_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Photo Booth Rental
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;856A3475nmblEA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;856A3475nmblEA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('856A3475nmblEA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/3029_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Event Photography
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;8HROc4dEjopfYA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;8HROc4dEjopfYA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('8HROc4dEjopfYA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1956_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Bartending
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;UyomZzHyHN433g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;UyomZzHyHN433g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:1,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('UyomZzHyHN433g', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1716_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Wedding Planning
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
<div
class="Moments-moment"
waypoint-track="moments"
waypoint-track-data="{ 'moment_index': 2 }">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">Wellness</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="9"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('1axLKc3DdQ6g5w', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1941_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Personal Training
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('yZUmyVje7z70Mw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1952_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Nutritionist
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('kMI95pqKXLU9vQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1416_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Massage Therapy
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;wA9nRFT$rabDJQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;wA9nRFT$rabDJQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('wA9nRFT$rabDJQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1605_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Career Coaching
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;giwGb4fVT5SXwg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;giwGb4fVT5SXwg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('giwGb4fVT5SXwg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2223_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Life Coaching
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GmauKy9DW8jlXw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GmauKy9DW8jlXw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GmauKy9DW8jlXw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1420_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Marriage and Relationship Counseling
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;KSNmubPXvxL2Lg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:6}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;KSNmubPXvxL2Lg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:6}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('KSNmubPXvxL2Lg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1591_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Health and Wellness Coaching
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;y6HwE0mUynjRbA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:7}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;y6HwE0mUynjRbA&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:7}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('y6HwE0mUynjRbA', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2848_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Private Yoga Instruction
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;nGRG2KjdLvVA:g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:8}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;nGRG2KjdLvVA:g&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:8}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('nGRG2KjdLvVA:g', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2274_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Reiki Healing
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:0}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;1axLKc3DdQ6g5w&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:0}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('1axLKc3DdQ6g5w', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1941_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Personal Training
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:1}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;yZUmyVje7z70Mw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:1}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('yZUmyVje7z70Mw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1952_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Nutritionist
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:2}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;kMI95pqKXLU9vQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:2}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('kMI95pqKXLU9vQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1416_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Massage Therapy
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;wA9nRFT$rabDJQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:3}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;wA9nRFT$rabDJQ&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:3}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('wA9nRFT$rabDJQ', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1605_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Career Coaching
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;giwGb4fVT5SXwg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:4}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;giwGb4fVT5SXwg&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:4}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('giwGb4fVT5SXwg', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2223_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Life Coaching
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-smaller theme-carousel "
event-track="moments/click"
event-track-on="click"
event-track-data="{&quot;encodedCategoryId&quot;:&quot;GmauKy9DW8jlXw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:5}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:&quot;GmauKy9DW8jlXw&quot;,&quot;categoryName&quot;:0,&quot;origin&quot;:&quot;moments&quot;,&quot;moment_index&quot;:2,&quot;category_index&quot;:5}">
<a class="ServiceBox-item"
open-request-form-modal
ng-click="openModalWithCategoryId('GmauKy9DW8jlXw', 'moments')"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1420_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Marriage and Relationship Counseling
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
<div
class="Moments-moment"
waypoint-track="nearme suggestion cards">
<div class="page-grid">
<div class="column-lg-6">
<h4 class="H4-R Moments-moment-title">More Services Near You</h4>
</div>
</div>
<div class="page-grid theme-full-bleed-at-xs">
<div class="column-lg-6">
<category-carousel
count="14"
responsive-grid="page">
<div class="CategoryCarousel">
<div
class="CategoryCarousel-paddle paddle-left"
ng-click="clickLeft()">
<svg-icon
type="left-caret"
size="md">
</svg-icon>
</div>
<div class="CategoryCarousel-container">
<div class="CategoryCarousel-list">
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/affordable-moving/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1434_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Affordable Movers Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/concrete-contractors/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2172_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Concrete Contractors
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/residential-electrical-services/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2367_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Residential Electrical Services
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/marriage-counselors/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/2988_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Marriage Counselors Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/lawyers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/3033_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Lawyers Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/modeling-photographers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/2342_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Modeling Photographers
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/tarot-readers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static8.thumbtackstatic.com/production/hero-images/1738_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Tarot Readers Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/affordable-plumbing-services/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1940_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Affordable Plumbing Services
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/pest-control/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/1552_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Pest Control Companies
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/junk-removal/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static4.thumbtackstatic.com/production/hero-images/2832_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Junk Removal Services
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/commercial-roofing/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/1512_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Roofing Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/window-restoration-companies/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/1595_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Window Restoration Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/vinyl-siding-install/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/2303_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Vinyl Siding Installers
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/affordable-divorce-lawyers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static3.thumbtackstatic.com/production/hero-images/2185_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Affordable Divorce Lawyers
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/affordable-moving/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static7.thumbtackstatic.com/production/hero-images/1434_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Affordable Movers Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/concrete-contractors/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2172_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Concrete Contractors
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/residential-electrical-services/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static1.thumbtackstatic.com/production/hero-images/2367_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Residential Electrical Services
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/marriage-counselors/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static6.thumbtackstatic.com/production/hero-images/2988_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Marriage Counselors Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/lawyers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/3033_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Lawyers Near You
</span>
</div>
</a>
</div>
</div>
<div class="CategoryCarousel-item item-cloned">
<div
class="
ServiceBox-container
theme-carousel "
event-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}"
waypoint-track-data="{&quot;encodedCategoryId&quot;:null,&quot;categoryName&quot;:0,&quot;origin&quot;:null}">
<a class="ServiceBox-item"
href="https://www.thumbtack.com/k/modeling-photographers/near-me"
>
<div
class="ServiceBox-item-image"
lazy-image
lazy-image-src="https://static2.thumbtackstatic.com/production/hero-images/2342_small"
refresh-on-document-scroll >
</div>
<div class="ServiceBox-item-label">
<span class=" T2-R ">
Modeling Photographers
</span>
</div>
</a>
</div>
</div>
</div>
</div>
<div
class="CategoryCarousel-paddle paddle-right"
ng-click="clickRight()">
<svg-icon
type="right-caret"
size="md">
</svg-icon>
</div>
</div>
</category-carousel>
</div>
</div>
</div>
</div>
</div>
<about-thumbtack>
<div class="AboutThumbtack">
<div class="page-grid">
<div class="column-lg-6">
<h2 class="AboutThumbtack-headline H2-R">How Thumbtack works</h2>
</div>
</div>
<div class="page-grid AboutThumbtack-wrapper">
<div class="AboutThumbtack-image column-lg-3">
<img id="demo-image-tag"
responsive-image
responsive-grid="page"
uses-densities
above-md="{
'1x': 'https://static4.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/about-thumbtack/images/how-to-1x-4ccfe4e4.png',
'2x': 'https://static5.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/about-thumbtack/images/how-to-2x-6d720865.png'
}"
below-md="{
'1x': 'https://static4.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/about-thumbtack/images/how-to-1x-4ccfe4e4.png',
'2x': 'https://static5.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/about-thumbtack/images/how-to-2x-6d720865.png'
}" />
</div>
<div class="AboutThumbtack-content column-lg-3">
<h3 class="AboutThumbtack-stepTitle H4-R">1. Tell us what you need</h3>
<p class="AboutThumbtack-stepText B2-S">First, answer a few quick questions about what type of pro you’re looking for.</p>
<h3 class="AboutThumbtack-stepTitle H4-R">2. Review free quotes</h3>
<p class="AboutThumbtack-stepText B2-S">Within hours, you’ll receive up to five custom quotes based on your specific needs.</p>
<h3 class="AboutThumbtack-stepTitle H4-R">3. Hire the right pro</h3>
<p class="AboutThumbtack-stepText B2-S">Compare quotes, profiles, and reviews, then hire the pro that’s right for you.</p>
</div>
</div>
</div>
</about-thumbtack>
<states-list>
<div class="StatesList ">
<div class="page-grid">
<div class="column-lg-6">
<h2 class="StatesList-headline H2-R">Find us in all 50 states</h2>
</div>
<div class="column-lg-6">
<ul class="StatesList-list">
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/al/">
Alabama
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ak/">
Alaska
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/az/">
Arizona
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ar/">
Arkansas
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ca/">
California
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/co/">
Colorado
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ct/">
Connecticut
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/de/">
Delaware
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/fl/">
Florida
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ga/">
Georgia
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/hi/">
Hawaii
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/id/">
Idaho
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/il/">
Illinois
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/in/">
Indiana
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ia/">
Iowa
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ks/">
Kansas
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ky/">
Kentucky
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/la/">
Louisiana
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/me/">
Maine
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/md/">
Maryland
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ma/">
Massachusetts
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/mi/">
Michigan
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/mn/">
Minnesota
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ms/">
Mississippi
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/mo/">
Missouri
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/mt/">
Montana
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ne/">
Nebraska
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nv/">
Nevada
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nh/">
New Hampshire
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nj/">
New Jersey
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nm/">
New Mexico
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ny/">
New York
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nc/">
North Carolina
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/nd/">
North Dakota
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/oh/">
Ohio
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ok/">
Oklahoma
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/or/">
Oregon
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/pa/">
Pennsylvania
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ri/">
Rhode Island
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/sc/">
South Carolina
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/sd/">
South Dakota
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/tn/">
Tennessee
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/tx/">
Texas
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/ut/">
Utah
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/vt/">
Vermont
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/va/">
Virginia
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/wa/">
Washington
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/dc/">
Washington, DC
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/wv/">
West Virginia
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/wi/">
Wisconsin
</a>
</li>
<li class="B2-S">
<a class="StatesList-list-link"
event-track="home page/clicked usa state"
event-track-on="click"
href="https://www.thumbtack.com/wy/">
Wyoming
</a>
</li>
</ul>
</div>
</div>
</div>
</states-list>
<guarantee-tout>
<div class="GuaranteeTout">
<div responsive-if="below-sm"
responsive-grid="page">
<img class="GuaranteeTout-background"
responsive-image
responsive-grid="page"
uses-densities
below-sm="{
'1x': 'https://static1.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/guarantee-tout/images/mobile-1x-c7a530ae.jpg',
'2x': 'https://static2.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/guarantee-tout/images/mobile-2x-ce406c68.jpg'
}"
>
</div>
<div responsive-if="above-sm"
responsive-grid="page">
<div class="GuaranteeTout-background"
responsive-image
responsive-grid="page"
uses-densities
above-sm="{
'1x': 'https://static5.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/guarantee-tout/images/desktop-1x-64d870ca.jpg',
'2x': 'https://static5.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/guarantee-tout/images/desktop-2x-e0c9d924.jpg'
}"
>
</div>
</div>
<div class="GuaranteeTout-toutText">
<div class="page-grid">
<div class="column-lg-3 column-lg-offset-3">
<div class="GuaranteeTout-toutText-inner">
<img class="GuaranteeTout-toutText-emblem"
src="https://static4.thumbtackstatic.com/_assets/svg/release/tt-guarantee-emblem_48-326a5272.svg.gz"/>
<div class="GuaranteeTout-toutText-title H4-R">
Thumbtack Guarantee
</div>
<div class="GuaranteeTout-toutText-text B2-S">
$1 Million Property Protection on over a thousand local services.
</div>
<span class="T2-S">
<a class="GuaranteeTout-toutText-link"
href="https://www.thumbtack.com/guarantee/">
Learn more
</a>
</span>
</div>
</div>
</div>
</div>
</div>
</guarantee-tout>
<customer-stories>
<div class="CustomerStories">
<div class="page-grid">
<div class="column-lg-6">
<h2 class="CustomerStories-headline H2-R">Customers use Thumbtack to get millions of projects done quickly and easily</h2>
</div>
</div>
<div class="page-grid CustomerStories-outerWrapper">
<div class="column-lg-2 CustomerStories-innerWrapper">
<a href="https://www.thumbtack.com/blog/finding-an-engagement-photographer-on-thumbtack/" class="CustomerStory"
event-track="home page/clicked customer story"
event-track-on="click"
event-track-data="{ story_type: 'amanda' }">
<div class="CustomerStory-figure"
style="background-image: url(https://static8.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/amanda-2fa7c886.jpg)">
<div class="CustomerStory-heading">
<h3 class="H4-R CustomerStory-headingCaption">
Amanda hired a photographer
</h3>
</div>
</div>
<div class="CustomerStory-content">
<cite class="CustomerStory-content-description B2-S theme-secondary">
“<strong>Mickey</strong> is incredibly talented, worked within our budget and gave us GREAT results for the price. He's an awesome guy, and we couldn't be happier with how our engagement photos turned out.”
</cite>
<div class="CustomerStory-pro">
<img src="https://static8.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/pro-mickey-76701e1b.jpg"
class="CustomerStory-pro-image">
<div class="CustomerStory-pro-content">
<h5 class="T4-S theme-secondary CustomerStory-pro-label">
The pro
</h5>
<h4 class="T2-S">Mickey Strider</h4>
<span star-rating
star-rating-bind="4.7">
</span>
<span class="B3-S">
(20 reviews)
</span>
</div>
</div>
</div>
</a>
</div>
<div class="column-lg-2 CustomerStories-innerWrapper">
<a href="https://www.thumbtack.com/blog/finding-your-voice-on-thumbtack/" class="CustomerStory"
event-track="home page/clicked customer story"
event-track-on="click"
event-track-data="{ story_type: 'gurpreet' }">
<div class="CustomerStory-figure"
style="background-image: url(https://static1.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/gurpreet-e04a1d83.jpg)">
<div class="CustomerStory-heading">
<h3 class="H4-R CustomerStory-headingCaption">
Guprit hired a singing teacher
</h3>
</div>
</div>
<div class="CustomerStory-content">
<cite class="CustomerStory-content-description B2-S theme-secondary">
“It was an honor learning from <strong>Sam</strong>. He is an amazing singer and teacher! I saw major improvements in my voice, breathing and vocal dynamics; connecting with songs at a level I didn't know existed.”
</cite>
<div class="CustomerStory-pro">
<img src="https://static4.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/pro-sam-da0071d9.jpg"
class="CustomerStory-pro-image">
<div class="CustomerStory-pro-content">
<h5 class="T4-S theme-secondary CustomerStory-pro-label">
The pro
</h5>
<h4 class="T2-S">Sam Shin</h4>
<span star-rating
star-rating-bind="4.7">
</span>
<span class="B3-S">
(32 reviews)
</span>
</div>
</div>
</div>
</a>
</div>
<div class="column-lg-2 CustomerStories-innerWrapper">
<a href="https://www.thumbtack.com/blog/thumbtack-artists-mural-supports-colorado-river-at-colfax-whole-foods/" class="CustomerStory"
event-track="home page/clicked customer story"
event-track-on="click"
event-track-data="{ story_type: 'sarah' }">
<div class="CustomerStory-figure"
style="background-image: url(https://static5.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/sarah-b78df6e9.jpg)">
<div class="CustomerStory-heading">
<h3 class="H4-R CustomerStory-headingCaption">
Sarah hired a mural painter
</h3>
</div>
</div>
<div class="CustomerStory-content">
<cite class="CustomerStory-content-description B2-S theme-secondary">
“<strong>Gary</strong> was friendly, professional, and his work was incredible. He helped us create a design we loved within our budget. Whole Foods customers say how much the mural brightens our space!”
</cite>
<div class="CustomerStory-pro">
<img src="https://static2.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/customer-stories/images/pro-gary-85649e63.jpg"
class="CustomerStory-pro-image">
<div class="CustomerStory-pro-content">
<h5 class="T4-S theme-secondary CustomerStory-pro-label">
The pro
</h5>
<h4 class="T2-S">Gary Gomez</h4>
<span star-rating
star-rating-bind="4.7">
</span>
<span class="B3-S">
(26 reviews)
</span>
</div>
</div>
</div>
</a>
</div>
</div>
</div>
</customer-stories>
<app-upsell
reset-timeout-duration="4000">
<div class="AppUpsell"
responsive-image
responsive-grid="page"
uses-densities
above-sm="{
'1x': 'https://static1.thumbtackstatic.com/_assets/images/release/modules/app-upsell/images/appupsell-bg-1x-56aa6732.jpg',
'2x': 'https://static3.thumbtackstatic.com/_assets/images/release/modules/app-upsell/images/appupsell-bg-2x-e8c738a7.jpg'
}"
below-sm="false">
<div class="page-grid">
<div class="column-lg-3 column-sm-6">
<h3 class="AppUpsell-title H3-R">Get more done anytime, anywhere</h3>
<p class="AppUpsell-text T2-S theme-secondary">Send project requests, get quotes, and hire the right pro with the free Thumbtack app for iPhone.</p>
<div class="AppUpsell-input InputButtonGroup" ng-cloak>
<input
type="text"
name="cellphone"
placeholder="Phone number"
ng-model="$parent.phoneNumber" />
<button
type="submit"
class="Button"
event-track="home page/clicked text me a link"
event-track-on="click"
ng-bind="transmissionStatus || 'Text me a link'"
ng-click="send()">
</button>
</div>
<p class="T3-S AppUpsell-helper">
<a href="http://r.yoz.io/Z3.c.t">
<img src="https://static3.thumbtackstatic.com/_assets/svg/release/ios-app-store-download_135x40-d0558d91.svg.gz" />
</a>
</p>
</div>
</div>
</div>
</app-upsell>
<testimonial-videos>
<div class="TestimonialVideos">
<div class="page-grid">
<div class="column-lg-6">
<h2 class="TestimonialVideos-headline H2-R">Thousands of professionals are growing their businesses with Thumbtack</h2>
</div>
</div>
<div class="page-grid">
<div class="column-lg-4">
<a href="index.html#"
class="TestimonialVideo-link TestimonialVideo-linkHighlight"
style="background-image: url(https://static1.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/testimonial-videos/images/sara-3e60bf01.jpg)"
event-track="home page/clicked pro stories"
event-track-on="click"
open-youtube-modal
youtube-autoplay
youtube-id="bruu4u_Z-SY">
<span class="TestimonialVideo-play">
<svg-icon type="play_10x10"></svg-icon>
</span>
<div class="TestimonialVideo-wrapper">
<h3 class="TestimonialVideo-title H4-R">Sara</h3>
<span class="TestimonialVideo-description B2-S">
Chef · Brooklyn, NY
</span>
</div>
</a>
</div>
<div class="column-lg-2">
<a href="index.html#" class="TestimonialVideo-link"
style="background-image: url(https://static4.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/testimonial-videos/images/richard-2d596554.jpg)"
event-track="home page/clicked pro stories"
event-track-on="click"
open-youtube-modal
youtube-autoplay
youtube-id="jiDNg8Ichgk">
<span class="TestimonialVideo-play">
<svg-icon type="play_10x10"></svg-icon>
</span>
<div class="TestimonialVideo-wrapper">
<h3 class="TestimonialVideo-title H4-R">Richard</h3>
<span class="TestimonialVideo-description B2-S">
Photographer · Bronx, NY
</span>
</div>
</a>
<a href="index.html#" class="TestimonialVideo-link"
style="background-image: url(https://static1.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/testimonial-videos/images/katie-cd576b4e.jpg)"
event-track="home page/clicked pro stories"
event-track-on="click"
open-youtube-modal
youtube-autoplay
youtube-id="4NmVC8Wpxgs">
<span class="TestimonialVideo-play">
<svg-icon type="play_10x10"></svg-icon>
</span>
<div class="TestimonialVideo-wrapper">
<h3 class="TestimonialVideo-title H4-R">Kate</h3>
<span class="TestimonialVideo-description B2-S">
Pet Sitter · Bradenton, FL
</span>
</div>
</a>
</div>
</div>
<div class="page-grid">
<div class="column-lg-2">
<a href="index.html#" class="TestimonialVideo-link"
style="background-image: url(https://static3.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/testimonial-videos/images/bonnie-86155b0d.jpg)"
event-track="home page/clicked pro stories"
event-track-on="click"
open-youtube-modal
youtube-autoplay
youtube-id="_3NsbqnjNxU">
<span class="TestimonialVideo-play">
<svg-icon type="play_10x10"></svg-icon>
</span>
<div class="TestimonialVideo-wrapper">
<h3 class="TestimonialVideo-title H4-R">Bonnie</h3>
<span class="TestimonialVideo-description B2-S">
Tutor · Houston, TX
</span>
</div>
</a>
</div>
<div class="column-lg-2">
<a href="index.html#" class="TestimonialVideo-link"
style="background-image: url(https://static2.thumbtackstatic.com/_assets/images/release/pages/homepage/submodules/testimonial-videos/images/eric-7d68e969.jpg)"
event-track="home page/clicked pro stories"
event-track-on="click"
open-youtube-modal
youtube-autoplay
youtube-id="aMJaW5eLsis">
<span class="TestimonialVideo-play">
<svg-icon type="play_10x10"></svg-icon>
</span>
<div class="TestimonialVideo-wrapper">
<h3 class="TestimonialVideo-title H4-R">Eric</h3>
<span class="TestimonialVideo-description B2-S">
Locksmith · Phoenix, AZ
</span>
</div>
</a>
</div>
<div class="column-lg-2">
<div class="GreyBox">
<h3 class="T1-R theme-secondary GreyBox-title">Are you a professional looking for new customers?</h3>
<a class="Button theme-medium" href="https://www.thumbtack.com/pro">Sign Up</a>
</div>
</div>
</div>
</div>
</testimonial-videos>
<homepage-sticky-header
fallback-logo="https://static1.thumbtackstatic.com/media/logos/thumbtack_brand_152x24.svg"
corresponding-element="hero">
<div class="SearchForm theme-default">
<form search-form open-request-form-modal
from-homepage=""
hide-intro-screen=""
ng-submit="submitSearch($event)"
class="SearchForm-form"
action="index.html#"
hercule-root-url="https://hercule.thumbtack.io"
hercule-version="0"
include-test=""
page-type="4"
search-origin="searchform-stickyheader"
event-name="searchform-stickyheader"
>
<div class="SearchForm-form-inputGroup 1" >
<span class="SearchForm-form-query B2-S"
ng-class="{'dropdownOpen': suggestionsOpen}">
<input class="query"
ng-class="{'is-empty-state': isEmptyState}"
required
autocomplete="off"
placeholder="What service do you need?"
type="search"
event-track="home page/start service query"
event-track-on="keypress"
event-track-data="{
pageType: '4',
searchOrigin: 'searchform-stickyheader',
}"
event-track-once
/>
<div class="SearchForm-form-query-clearQuery">
<label
ng-class="{'is-empty-state': isEmptyState}"
class="SearchForm-form-query-clearQuery-wrapper"
for="clear-input-field"
ng-click="clearSearchField()"
>
<svg-icon
type="declined"
size="sm"
class="SearchForm-form-query-clearQuery-wrapper-icon">
</svg-icon>
</label>
</div>
</span>
<label for="search-submit"
class="
SearchForm-form-smallSubmit-wrapper
is-visible"
>
<svg-icon
type="search"
size="md"
class="HeaderSearch-form-smallSubmit-wrapper-icon">
</svg-icon>
</label>
<button class="
SearchForm-form-submitBtn
Button
theme-large
is-hidden
is-hidden-at-sm
"
type="submit"
event-track="hercule/click get started"
event-track-on="click"
event-track-data="{
pageType: '4',
searchOrigin: 'searchform-stickyheader',
}">
Get Started
</button>
</div>
</form>
</div>
</homepage-sticky-header>
</div>
<script id="template-request-form-section-header" type="text/template">
<div class="page-grid">
<div class="column-lg-4 column-lg-offset-1">
<div class="RequestForm-sectionHeader"
ng-class="[
(isBrandedScreen
? 'theme-left-aligned' : '')
]">
<span tabindex="0"
ng-transclude
ng-class="[
(isBrandedScreen
? 'theme-inverted H3-R theme-bold theme-title-branded' : 'H4-R')
]"></span>
</div>
</div>
</div>
</script>
<script id="template-request-form-hercule" type="text/template">
<form
ng-submit="deepValidate()
? requestForm.updateCategoriesFromQuery(rfHerculeModel.chosenCategory)
: false"
schema="rfHerculeSchema"
schema-assign="EmptySchema"
schema-yields="rfHerculeModel">
<request-form-template template-id="template-request-form-section-header">
What are you looking for?
<div ng-if="!$question.field.required" class="T3-S">
From house painting to personal training, we bring
you the right pros for every project on your list.
</div>
</request-form-template>
<div class="page-grid">
<div class="column-lg-6">
<span
search-form
class="SearchForm"
schema="rfHerculeSchema.chosenCategory"
schema-assign="TextInputSchema">
<input class="query"
autocomplete="off"
placeholder="What services do you need?"
type="text"
ng-model="rfHerculeModel.chosenCategory" />
</span>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="hideBack,continueText"
hide-back="true"
continue-text="'Get started'">
</request-form-template>
</form>
</script>
<script id="template-request-form-no-results" type="text/template">
<form closes-modal-on-submit>
<request-form-template template-id="template-request-form-section-header">
We're sorry, no categories matched that query.
<p>Please try again.</p>
</request-form-template>
<div class="page-grid">
<div class="column-lg-6">
<p class="B2-R RequestForm-noResultsMessage">
Or, browse categories in
<a href="https://www.thumbtack.com/events">events</a>,
<a href="https://www.thumbtack.com/home-improvement">home</a>,
<a href="https://www.thumbtack.com/lessons">lessons</a>,
<a href="https://www.thumbtack.com/wellness">wellness</a>, and
<a href="https://www.thumbtack.com/more-services">more</a>.
</p>
</div>
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="hideBack,continueText"
hide-back="true"
continue-text="'Close'">
</request-form-template>
</form>
</script>
<script id="template-request-category-chooser-radio" type="text/template">
<form
ng-if="categories.length > 0"
event-track="request form/view category chooser"
event-track-on-init
event-track-data="trackingData.viewCategoryChooser()"
ng-init="chooserState = { showCount: 13 }"
ng-submit="deepValidate()
? setCategory($chosenCategory.value)
: false"
schema="chooserSchema"
schema-assign="ObjectValueKeySchema"
schema-yields="$chosenCategory"
schema-cache-id="request-form-category-chooser">
<div class="RequestForm-proTout" ng-if="requestForm.serviceData">
<div class="page-grid">
<div class="column-lg-4 column-lg-offset-1"
ng-class="{'no-photo': !requestForm.serviceData.profile_picture}">
<div class="RequestForm-proTout-content">
<img class="RequestForm-proTout-image"
ng-if="requestForm.serviceData.profile_picture"
ng-src="{[{ requestForm.serviceData.profile_picture }]}" />
<h3 class="RequestForm-proTout-text B3-S">
Get quotes from
<span class="RequestForm-proTout-businessName B2-S">
{[{ requestForm.serviceData.display_name }]}
</span>
and dozens of other
professionals
in your area.
</h3>
</div>
</div>
</div>
</div>
<request-form-template template-id="template-request-form-section-header">
Which service are you interested in?
</request-form-template>
<div id="category-chooser"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<div ng-repeat="category in categories | limitTo: chooserState.showCount"
class="InputContainer">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="{[{ category.name }]}">
<input name="category-chooser"
value="{[{ category.id }]}"
ng-model="$parent.$parent.$chosenCategory.value"
type="radio">
</input-radio>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
<div ng-if="chooserState.showCount < categories.length"
class="RequestForm-chooserShowMore">
<button class="Link"
ng-click="chooserState.showCount = chooserState.showCount + 10">
(Show more)
</button>
</div>
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="hideBack,forceShowSubmit"
force-show-submit="true"
hide-back="true">
</request-form-template>
</form>
</script>
<script id="template-request-question-checkbox" type="text/template">
<div
schema="requestFormSchema.questions[$qID].selection"
schema-assign="CheckboxArrayInputSchema"
schema-optional-if="!question.field.required"
ng-init="$qID = question.field.id"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<div
ng-repeat="answer in question.field.possible_values"
ng-init="$value = '' + answer.value"
class="InputContainer">
<div class="page-grid">
<div class="column-lg-6">
<div ng-if="!answer.can_describe">
<input-checkbox
input-checkbox-label="{[{ answer.label }]}">
<input
name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection[$value]"
value="{[{ $value }]}"
type="checkbox">
</input-checkbox>
</div>
<div ng-if="answer.can_describe" choice-other>
<input-checkbox>
<input
name="metadata_{[{ $qID }]}_keys[]"
id="{[{ $qID }]}_{[{ $value }]}"
ng-model="$model.questions[$qID].selection[$value]"
value="{[{ $value }]}"
type="checkbox">
<label
for="{[{ $qID }]}_{[{ $value }]}"
class="InputCheckbox-label">
<input
schema="
requestFormSchema.questions[$qID][$value + '_description']"
schema-assign="TextInputSchema"
schema-optional-if="!$model.questions[$qID].selection[$value]"
ng-model="$model.questions[$qID][$value + '_description']"
name="metadata_{[{ $qID }]}_descriptions[{[{ $value }]}]"
type="text"
ng-focus="bottomInputFocus()"
ng-blur="bottomInputBlur()"
placeholder="{[{ answer.label }]}"
class="InputCheckbox-label-inner">
</label>
</input-checkbox>
</div>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-question-radio" type="text/template">
<div
schema="requestFormSchema.questions[$qID].selection"
schema-assign="ObjectValueKeySchema"
schema-optional-if="!question.field.required"
ng-init="$qID = question.field.id"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<div ng-repeat="answer in question.field.possible_values"
ng-init="$value = '' + answer.value"
class="InputContainer">
<div class="page-grid">
<div class="column-lg-6">
<div ng-if="!answer.can_describe">
<input-radio
input-radio-label="{[{ answer.label }]}">
<input name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection.value"
value="{[{ $value }]}"
type="radio" />
</input-radio>
</div>
<div ng-if="answer.can_describe" choice-other>
<input-radio>
<input name="metadata_{[{ $qID }]}_keys[]"
id="{[{ $qID }]}_{[{ $value }]}"
ng-model="$model.questions[$qID].selection.value"
value="{[{ $value }]}"
type="radio" />
<label
for="{[{ $qID }]}_{[{ $value }]}"
class="InputRadio-label">
<input
schema="
requestFormSchema.questions[$qID][$value + '_description']"
schema-assign="TextInputSchema"
schema-optional-if="$model.questions[$qID].selection.value !==
$value"
ng-model="$model.questions[$qID][$value + '_description']"
name="metadata_{[{ $qID }]}_descriptions[{[{ $value }]}]"
type="text"
ng-focus="bottomInputFocus()"
ng-blur="bottomInputBlur()"
placeholder="{[{ answer.label }]}" />
</label>
</input-radio>
</div>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-question-visual-checkbox" type="text/template">
<div
schema="requestFormSchema.questions[$qID].selection"
schema-assign="CheckboxArrayInputSchema"
schema-optional-if="!question.field.required"
ng-init="$qID = question.field.id"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<div class="page-grid">
<div class="column-lg-6">
<div class="VisualSelectionGroup">
<div ng-repeat="answer in question.field.visual_possible_values"
ng-init="$value = '' + answer.key"
ng-class="{
'VisualSelectionGroup-item': !answer.can_describe,
'VisualSelectionGroup-other': answer.can_describe,
}">
<visual-selection
ng-if="!answer.can_describe"
image-src="{[{ answer.picture_url }]}"
image-label="{[{ answer.label }]}">
<input
name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection[$value]"
value="{[{ $value }]}"
type="checkbox" />
</visual-selection>
<div ng-if="answer.can_describe" choice-other>
<input-checkbox>
<input
name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection[$value]"
value="{[{ $value }]}"
type="checkbox"
id="{[{ $qID }]}_{[{ $value }]}_selection"/>
<label for="{[{ $qID }]}_{[{ $value }]}_selection"
class="InputCheckbox-label">
<input
schema="
requestFormSchema
.questions[$qID][$value + '_description']"
schema-assign="TextInputSchema"
schema-optional-if="
!$model.questions[$qID].selection[$value]"
ng-model="$model.questions[$qID][$value + '_description']"
name="metadata_{[{ $qID }]}_descriptions[{[{ $value }]}]"
type="text"
ng-focus="bottomInputFocus()"
ng-blur="bottomInputBlur()"
placeholder="{[{ answer.label }]}" />
</label>
</input-checkbox>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-question-visual-radio" type="text/template">
<div
schema="requestFormSchema.questions[$qID].selection"
schema-assign="ObjectValueKeySchema"
schema-optional-if="!question.field.required"
ng-init="$qID = question.field.id"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<div class="page-grid">
<div class="column-lg-6">
<div class="VisualSelectionGroup">
<div ng-repeat="answer in question.field.visual_possible_values"
ng-init="$value = '' + answer.key"
ng-class="{
'VisualSelectionGroup-item': !answer.can_describe,
'VisualSelectionGroup-other': answer.can_describe,
}">
<visual-selection
ng-if="!answer.can_describe"
image-src="{[{ answer.picture_url }]}"
image-label="{[{ answer.label }]}">
<input
name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection.value"
value="{[{ $value }]}"
type="radio" />
</visual-selection>
<div ng-if="answer.can_describe" choice-other>
<input-radio>
<input
name="metadata_{[{ $qID }]}_keys[]"
ng-model="$model.questions[$qID].selection.value"
value="{[{ $value }]}"
type="radio"
id="{[{ $qID }]}_{[{ $value }]}_selection" />
<label for="{[{ $qID }]}_{[{ $value }]}_selection"
class="InputRadio-label">
<input
schema="requestFormSchema
.questions[$qID][$value + '_description']"
schema-assign="TextInputSchema"
schema-optional-if="
$model.questions[$qID].selection.value !== $value"
ng-model="$model.questions[$qID][$value + '_description']"
name="metadata_{[{ $qID }]}_descriptions[{[{ $value }]}]"
type="text"
ng-focus="bottomInputFocus()"
ng-blur="bottomInputBlur()"
placeholder="{[{ answer.label }]}" />
</label>
</input-radio>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-question-text" type="text/template">
<div
schema="requestFormSchema.questions[question.field.id].description"
schema-assign="TextInputSchema"
schema-optional-if="!question.field.required"
ng-class="{'valid': $valid, 'invalid': $valid === false}"
class="page-grid">
<div class="column-lg-6">
<textarea
ng-if="question.field.multi_line"
class="RequestForm-textArea"
ng-focus="bottomInputFocus()"
ng-blur="bottomInputBlur()"
ng-model="$model.questions[question.field.id].description"
name="metadata_{[{ question.field.id }]}"
placeholder="{[{ question.field.placeholder }]}" />
<input
ng-if="!question.field.multi_line"
ng-model="$model.questions[question.field.id].description"
name="metadata_{[{ question.field.id }]}"
type="text"
placeholder="{[{ question.field.placeholder }]}" />
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-questions" type="text/template">
<div
event-track="request form/view category questions"
event-track-watch="activeSection.id"
event-track-if="!usesSections || activeSection.id.indexOf('question-') === 0"
event-track-once
event-track-data="trackingData.viewCategoryQuestions()">
<fieldset
ng-repeat="$question in requestForm.form.fields"
ng-if="$question.field.type === 'text'
|| $question.field.type === 'enumeration'
|| $question.field.type === 'visual_enumeration'"
ng-show="!usesSections ||
activeSection.id === 'question-' + $question.field.id"
request-form-section="'question-' + $question.field.id"
schema-validation-subsection
event-track="request form/provide category question answer"
event-track-on="change"
event-track-data="trackingData.provideCategoryQuestionAnswer($question)"
ng-class="{
required: $question.field.required,
Card: !usesSections
}"
schema="requestFormSchema.questions[{[{ $question.field.id }]}]"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'question-' + $question.field.id"
event-track="request form/view category question section"
event-track-on-init
event-track-data="trackingData.viewCategoryQuestionSection($question)"></div>
<input
type="hidden"
name="metadata_fields[]"
value="{[{ $question.id }]}" />
<request-form-template template-id="template-request-form-section-header">
{[{ $question.label }]}
<div ng-if="$question.subtext" class="B2-S">
{[{ $question.subtext }]}
</div>
<div ng-if="!$question.field.required" class="B3-S">
Optional
</div>
</request-form-template>
<request-form-template
ng-if="$question.field.type === 'enumeration' &&
$question.field.allows_multiple_values"
template-id="template-request-question-checkbox"
scope-vars="question"
question="$question">
</request-form-template>
<request-form-template
ng-if="$question.field.type === 'enumeration' &&
!$question.field.allows_multiple_values"
template-id="template-request-question-radio"
scope-vars="question"
question="$question">
</request-form-template>
<request-form-template
ng-if="$question.field.type === 'visual_enumeration' &&
$question.field.allows_multiple_values"
template-id="template-request-question-visual-checkbox"
scope-vars="question"
question="$question">
</request-form-template>
<request-form-template
ng-if="$question.field.type === 'visual_enumeration' &&
!$question.field.allows_multiple_values"
template-id="template-request-question-visual-radio"
scope-vars="question"
question="$question">
</request-form-template>
<request-form-template
ng-if="$question.field.type === 'text'"
template-id="template-request-question-text"
class="RequestForm-standaloneInputSection"
scope-vars="question"
question="$question">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="hideBack"
hide-back="$first && requestForm.categories.length === 1 && hideIntroScreen">
</request-form-template>
</fieldset>
</div>
</script>
<script id="template-request-description" type="text/template">
<div
schema="requestFormSchema.anythingElse.anythingElse"
schema-assign="EmptySchema"
schema-default="{ customerHasMoreInfo: false }">
<request-form-template template-id="template-request-form-section-header">
Anything else the {[{ requestForm.activeCategory.sentence_taxonym }]} should know?
</request-form-template>
<div class="InputContainer is-first">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="No">
<input
name="ngAnythingElse"
ng-model="$model.anythingElse.anythingElse.customerHasMoreInfo"
ng-value="false"
type="radio" />
</input-radio>
</div>
</div>
</div>
<div class="InputContainer">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="Yes">
<input
name="ngAnythingElse"
ng-model="$model.anythingElse.anythingElse.customerHasMoreInfo"
ng-value="true"
type="radio" />
</input-radio>
</div>
</div>
</div>
<div class="page-grid">
<div class="column-lg-6">
<div
ng-show="$model.anythingElse.anythingElse.customerHasMoreInfo"
ng-class="{'valid': $valid, 'invalid': $valid === false}"
schema="requestFormSchema.anythingElse.anythingElse.moreInfo"
schema-assign="TextInputSchema"
schema-optional>
<textarea
class="RequestForm-textArea"
placeholder="Tell us more."
ng-model="$model.anythingElse.anythingElse.moreInfo"
event-track="request form/provide additional information"
event-track-on="blur"
event-track-once
event-track-if="$valid && form.req_description.$dirty"
event-track-data="trackingData.provideAdditionalInformation(
$model.anythingElse.anythingElse.moreInfo)"
name="req_description">
</textarea>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
<div ng-if="!$model.anythingElse.anythingElse.customerHasMoreInfo">
<input type="hidden" name="req_description" value="">
</div>
</div>
</div>
</div>
</script>
<script id="template-request-service-location" type="text/template">
<div ng-if="category.travel_types.length > 1"
schema="requestFormSchema.location.serviceLocation"
schema-assign="CheckboxArrayInputSchema"
schema-default="{ toprovider: true, tocustomer: true }">
<div ng-class="{'valid': $valid, 'invalid': $valid === false}">
<request-form-template template-id="template-request-form-section-header">
How would you like to meet with the {[{ category.sentence_taxonym }]}?
</request-form-template>
<div class="InputContainer is-first page-grid">
<div
class="column-lg-6"
ng-if="category.travel_types.indexOf('toprovider') >= 0">
<input-checkbox
input-checkbox-label="I travel to the {[{ category.sentence_taxonym }]}">
<input
id="service-location-toprovider"
ng-model="$model.location.serviceLocation.toprovider"
event-track="request form/change travel selection"
event-track-on="change"
event-track-data="trackingData.changeTravelSelection(
$model.location.serviceLocation)"
name="req_travel[]"
value="toprovider"
type="checkbox">
</input-checkbox>
<request-form-template
ng-if="$model.location.serviceLocation.toprovider"
template-id="template-request-service-location-distance">
</request-form-template>
</div>
</div>
<div class="InputContainer page-grid">
<div
class="column-lg-6"
ng-if="category.travel_types.indexOf('tocustomer') >= 0">
<input-checkbox
input-checkbox-label="The {[{ category.sentence_taxonym }]} travels to me">
<input
id="service-location-tocustomer"
ng-model="$model.location.serviceLocation.tocustomer"
event-track="request form/change travel selection"
event-track-on="change"
event-track-data="trackingData.changeTravelSelection(
$model.location.serviceLocation)"
name="req_travel[]"
value="tocustomer"
type="checkbox">
</input-checkbox>
</div>
</div>
<div class="InputContainer page-grid">
<div
class="column-lg-6"
ng-if="category.travel_types.indexOf('remote') >= 0">
<input-checkbox
input-checkbox-label="Phone or internet (no in-person meeting)">
<input
id="service-location-remote"
ng-model="$model.location.serviceLocation.remote"
event-track="request form/change travel selection"
event-track-on="change"
event-track-data="trackingData.changeTravelSelection(
$model.location.serviceLocation)"
name="req_travel[]"
value="remote"
type="checkbox">
</input-checkbox>
</div>
</div>
<div class="page-grid">
<div class="column-lg-6">
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-service-location-distance-standalone" type="text/template">
<request-form-template template-id="template-request-form-section-header">
How far are you willing to travel?
</request-form-template>
<div class="page-grid">
<div class="column-lg-6">
<request-form-template template-id="template-request-service-location-distance">
</request-form-template>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</script>
<script id="template-request-service-location-distance" type="text/template">
<div
class="RequestForm-serviceLocationDistance"
schema="requestFormSchema.location.distance"
schema-assign="ObjectValueKeySchema"
schema-default="requestForm.options.location.defaultDistance">
<input
type="hidden"
name="req_travel_dist"
value="{[{ $model.location.distance.value }]}">
<aura-select>
<select
id="travel-distance"
ng-model="$model.location.distance.value"
ng-options="dist.value as dist.label for dist
in requestForm.options.location.distances">
</select>
</aura-select>
</div>
</script>
<script id="template-request-image-upload" type="text/template">
<request-form-template template-id="template-request-form-section-header">
{[{
category.image_upload_question_copy
|| "Would you like to add photos to describe your project?"
}]}
</request-form-template>
<div class="InputContainer InputContainer-isFirst">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="No">
<input
ng-model="requestForm.addImages"
ng-value="false"
type="radio" />
</input-radio>
</div>
</div>
</div>
<div class="InputContainer">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="Yes">
<input
ng-model="requestForm.addImages"
ng-value="true"
type="radio" />
</input-radio>
</div>
</div>
</div>
<div class="page-grid RequestForm-attachments" ng-show="requestForm.addImages">
<div>
<div class="column-lg-3 column-md-6"
ng-repeat="attachment in requestForm.attachments">
<div class="RequestForm-attachmentBox">
<div class="RequestForm-attachmentPreview"
ng-hide="attachment.uploadFailed"
ng-class="{'is-focused': attachment.previewInFocus}">
<div class="RequestForm-attachmentPreview-image"
ng-class="{'uploading': attachment.isUploading}"
ng-style="{'background-image': requestForm.getImageSource(attachment)}">
</div>
<textarea
class="RequestForm-attachmentPreview-description"
ng-model="attachment.description"
ng-focus="attachment.previewInFocus = true"
ng-blur="attachment.previewInFocus = false"
type="text"
autosize
placeholder="Write your description here"
maxlength="350">
</textarea>
</div>
<div class="RequestForm-attachmentError"
ng-show="attachment.uploadFailed">
<svg-icon class="RequestForm-attachmentError-icon"
type="error"
size="lg">
</svg-icon>
<span class="B2-S RequestForm-attachmentError-title">
Upload failed
</span>
<span class="B2-S RequestForm-attachmentError-text">
A problem occurred during the upload.
</span>
<button class="Button theme-secondary theme-large
RequestForm-attachmentError-button"
ng-click="requestForm.tryAgain($event, attachment)">
Try Again
</button>
</div>
<div class="RequestForm-attachmentBox-close"
ng-click="removeAttachment($index)">
<svg-icon type="cancel" size="sm"></svg-icon>
</div>
<div class="RequestForm-imageLoader" ng-show="attachment.isUploading">
<svg-icon type="puff_44x44"></svg-icon>
</div>
</div>
<div class="Spacer-3"></div>
</div>
<attach-button
class="column-lg-6"
attachments-bind="attachments"
ng-show="requestForm.attachments.length < requestForm.maxAttachments"
on-attachment="processImage"
accept-file-types="image/bmp, image/gif, image/jpeg, image/jpg, image/png">
<a class="Button theme-large RequestForm-addPhotos theme-secondary">
<svg-icon type="add" size="sm"></svg-icon>
Add {[{ requestForm.attachments.length > 0 ? "More " : "" }]}Photos
</a>
</attach-button>
</div>
<input type="hidden" name="attachment_data" value="{[{ requestForm.getAttachmentData() }]}">
</div>
<div class="T3-S RequestForm-error" ng-repeat="$err in requestForm.imageUploadErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-scheduling-event" type="text/template">
<request-form-template
template-id="template-request-form-section-header">
What day do you need the {[{ category.sentence_name }]}?
</request-form-template>
<div
ng-if="activeSection.id === 'scheduling'"
event-track="request form/view scheduling event calendar selector"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<div class="RequestForm-calendarSelector InputContainer"
schema="requestFormSchema.scheduling.eventDay"
schema-assign="CalendarSchema"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<calendar-selector
is-single-select-calendar="true"
is-job-date-selector="true"
selected-days="$model.scheduling.eventDay"
start-date="schedulingHandler.getCalendarStartDate()">
</calendar-selector>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</script>
<script id="template-request-scheduling-event-time" type="text/template">
<request-form-template
template-id="template-request-form-section-header">
What time do you need the {[{ category.sentence_name }]}?
</request-form-template>
<div
ng-if="activeSection.id === 'schedulingTimes'"
event-track="request form/view scheduling event time picker"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<input
type="hidden"
name="scheduling_timestamps_array"
ng-value="schedulingHandler.finalizedTimestamps" />
<div class="InputContainer theme-group-container">
<div class="page-grid">
<div class="column-lg-6">
<div
schema="requestFormSchema.event.eventTime"
schema-assign="TimeSchema"
class="RequestForm-schedulingSelector"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<label for="scheduling-time" class="RequestForm-inputLabel T2-S">
{[{ schedulingHandler.hasDuration ? 'Start time' : 'Time' }]}
</label>
<aura-select theme-limit-height>
<select
id="scheduling-time"
ng-model="$model.event.eventTime"
ng-options="selectedTime.value as selectedTime.label for
selectedTime in schedulingHandler.selectTimesArray">
</select>
</aura-select>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
<div ng-if="schedulingHandler.hasDuration">
<div
ng-if="activeSection.id === 'schedulingTimes'"
event-track="request form/view scheduling event time picker (duration)"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<request-form-template
template-id="template-request-scheduling-event-duration"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-scheduling-event-duration" type="text/template">
<div
schema="requestFormSchema.event.eventDuration"
schema-assign="{[{
category.specifiedDurationArray
? 'ObjectValueKeySchema'
: 'DurationSchema'
}]}"
class="RequestForm-schedulingSelector"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<label for="scheduling-duration" class="RequestForm-inputLabel T2-S">
Duration (hours)
</label>
<div ng-if="category.specifiedDurationArray">
<aura-select theme-limit-height>
<select
id="scheduling-duration"
ng-model="$model.event.eventDuration"
ng-options="duration in category.specifiedDurationArray">
</select>
</aura-select>
</div>
<div ng-if="!category.specifiedDurationArray">
<input
id="scheduling-duration"
ng-model="$model.event.eventDuration"
placeholder="ex. &quot;4&quot;"
type="tel">
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</script>
<script id="template-request-scheduling-multi-cadence" type="text/template">
<request-form-template
ng-if="schedulingHandler.schedulingArchetype === 'multi_recurring'"
template-id="template-request-form-section-header">
How often do you need the {[{ category.sentence_name }]}?
</request-form-template>
<request-form-template
ng-if="schedulingHandler.schedulingArchetype === 'multi_mixed'"
template-id="template-request-form-section-header">
Will you need {[{ category.sentence_name }]} more than once?
</request-form-template>
<div
ng-if="activeSection.id === 'cadence'"
event-track="request form/view scheduling cadence preference"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<div
schema="requestFormSchema.cadence.cadencePreference"
schema-assign="MultipleChoiceInputSchema">
<div
class="InputContainer"
ng-repeat="cadence in schedulingHandler.cadenceOptions">
<div class="page-grid">
<div class="column-lg-6">
<input-radio input-radio-label="{[{ cadence.label }]}">
<input
name="cadence_preference"
ng-model="$model.cadence.cadencePreference"
value="{[{ cadence.value }]}"
type="radio" />
</input-radio>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-scheduling-multi-cadence-days-times" type="text/template">
<request-form-template
template-id="template-request-form-section-header">
When are you available?
</request-form-template>
<div
ng-if="activeSection.id === 'cadenceDaysTimes'"
event-track="request form/view scheduling cadence timeslots"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<input
type="hidden"
name="scheduling_timestamps_array"
ng-value="schedulingHandler.finalizedTimestamps" />
<input
type="hidden"
name="cadence_days_times"
ng-value="schedulingHandler.finalizedCadenceDaysTimes" />
<div
class="RequestForm-scheduling-timeslots
"
schema="requestFormSchema.cadenceDaysTimes.daysTimes"
schema-assign="CheckboxArrayInputSchema">
<div class="InputContainer" ng-repeat="timeslot in schedulingHandler.cadenceDaysTimes">
<div class="page-grid">
<div class="column-lg-6">
<input-checkbox
input-checkbox-label="{[{ timeslot.value }]}">
<input
type="checkbox"
ng-model="$model.cadenceDaysTimes.daysTimes[timeslot.value]">
</input-checkbox>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</script>
<script id="template-request-scheduling-multi" type="text/template">
<request-form-template
ng-if="schedulingHandler.schedulingArchetype === 'multi_nonrecurring'
|| (schedulingHandler.schedulingArchetype === 'multi_mixed'
&& $model.cadence.cadencePreference === 'just_once')"
template-id="template-request-form-section-header">
When would you like the {[{ category.sentence_name }]}?
</request-form-template>
<div
ng-if="activeSection.id === 'scheduling' && !schedulingHandler.isAsapCategory"
event-track="request form/view scheduling day preference"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<div
ng-if="activeSection.id === 'scheduling' && schedulingHandler.isAsapCategory"
event-track="request form/view scheduling day preference (ASAP)"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<input
type="hidden"
name="scheduling_timestamps_array"
ng-value="schedulingHandler.finalizedTimestamps" />
<div
schema="requestFormSchema.scheduling.dayPreference"
schema-assign="MultipleChoiceInputSchema">
<div class="InputContainer" ng-repeat="preference in schedulingHandler.dayPreferences">
<div class="page-grid">
<div class="column-lg-6">
<input-radio
input-radio-label="{[{ preference.label }]}"
ng-click="scrollToSchedulingCalendar($event)">
<input
name="scheduling_day_preference"
ng-model="$model.scheduling.dayPreference"
value="{[{ preference.value }]}"
type="radio" />
</input-radio>
</div>
</div>
</div>
</div>
<request-form-template
ng-if="$model.scheduling.dayPreference === 'specific_dates'"
template-id="template-request-scheduling-multi-calendar">
</request-form-template>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</script>
<script id="template-request-scheduling-multi-calendar" type="text/template">
<div class="RequestForm-calendarSelector InputContainer"
schema="requestFormSchema.scheduling.selectedDays"
schema-assign="CalendarSchema"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<calendar-selector
is-job-date-selector="true"
selected-days="$model.scheduling.selectedDays"
start-date="schedulingHandler.getCalendarStartDate()">
</calendar-selector>
</div>
</script>
<script id="template-request-scheduling-timeslots" type="text/template">
<request-form-template
ng-if="$model.scheduling.dayPreference === 'today'
|| $model.scheduling.dayPreference === 'tomorrow'
|| $model.scheduling.dayPreference === 'next_few_days'
|| $model.scheduling.dayPreference === 'within_a_week'"
template-id="template-request-scheduling-timeslots-general"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template
ng-if="$model.scheduling.dayPreference === 'specific_dates'"
template-id="template-request-scheduling-timeslots-specific"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
</script>
<script id="template-request-scheduling-timeslots-general" type="text/template">
<request-form-template
template-id="template-request-form-section-header">
What times work best for your schedule?
</request-form-template>
<div
ng-if="activeSection.id === 'schedulingTimes'"
event-track="request form/view scheduling general timeslots"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<div
class="RequestForm-scheduling-timeslots
"
schema="requestFormSchema.timeslots.general"
schema-assign="CheckboxArrayInputSchema">
<div
class="InputContainer"
ng-class="{ 'disabled': schedulingHandler.isAsapCategory
&& schedulingHandler.checkAsapTodayExpired(
$model, timeslot.hourOffset) }"
ng-repeat="timeslot in schedulingHandler.getTimeslots()">
<div class="page-grid">
<div class="column-lg-6">
<input-checkbox
input-checkbox-label="{[{ timeslot.label }]}">
<input
type="checkbox"
ng-model="$model.timeslots.general[timeslot.value]">
</input-checkbox>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</script>
<script id="template-request-scheduling-timeslots-specific" type="text/template">
<request-form-template
template-id="template-request-form-section-header">
What times work best for your schedule?
</request-form-template>
<div
ng-if="activeSection.id === 'schedulingTimes'"
event-track="request form/view scheduling specific timeslots"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<div
class="RequestForm-scheduling-timeslots
"
schema="requestFormSchema.timeslots.specific"
schema-assign="CalendarTimeslotSchema">
<div ng-repeat="dateObj in $model.scheduling.selectedDays"
ng-init="specificTimeslots = schedulingHandler.generateSpecificTimeslots(dateObj)">
<div class="RequestForm-scheduling-timeslots-label"
ng-init="dateLabel = schedulingHandler.generateSplitDateLabel(dateObj)">
{[{ dateLabel.day }]},
<span class="RequestForm-scheduling-timeslots-label-date">
{[{ dateLabel.date }]}
</span>
</div>
<div class="InputContainer" ng-repeat="timeslot in specificTimeslots">
<div class="page-grid">
<div class="column-lg-6">
<input-checkbox
input-checkbox-label="{[{ timeslot.label }]}">
<input
type="checkbox"
ng-model="$model.timeslots.specific[timeslot.value]">
</input-checkbox>
</div>
</div>
</div>
</div>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</script>
<script id="template-request-scheduling" type="text/template">
<request-form-template template-id="template-request-form-section-header">
When do you need {[{ category.sentence_name }]}?
</request-form-template>
<div
ng-if="category.scheduling_type === 'event'"
schema="requestFormSchema.scheduling.scheduling"
schema-assign="EmptySchema">
<div>
<input type="hidden" name="req_schedule_description"
value="{[{ getRequestSchedulingString($model.scheduling.scheduling) }]}">
<input type="hidden" name="req_date_estimate"
value="4">
<input type="hidden" name="req_needed_time"
value="{[{ $model.scheduling.scheduling.date
+ ' '
+ $model.scheduling.scheduling.time }]}">
</div>
<request-form-template template-id="template-request-scheduling-date-and-time">
</request-form-template>
</div>
<div
ng-if="category.scheduling_type === 'appointment'"
schema="requestFormSchema.scheduling.scheduling"
schema-assign="EmptySchema">
<div
schema="requestFormSchema.scheduling.scheduling.schedulingType"
schema-assign="EmptySchema"
schema-default="'I\&#039;m flexible'"
ng-class="{'valid': $valid, 'invalid': $valid === false}"
class="page-grid">
<div class="column-lg-6">
<input
ng-if="$model.scheduling.scheduling.schedulingType !== 'date'
&& $model.scheduling.scheduling.schedulingType !== 'other'"
type="hidden"
name="req_schedule_description"
value="{[{ $model.scheduling.scheduling.schedulingType }]}">
<div ng-if="$model.scheduling.scheduling.schedulingType === 'date'">
<input type="hidden" name="req_date_estimate"
value="4">
<input type="hidden" name="req_needed_time"
value="{[{ $model.scheduling.scheduling.date
+ ' '
+ $model.scheduling.scheduling.time }]}">
</div>
<input
ng-if="$model.scheduling.scheduling.schedulingType === 'other'"
type="hidden"
name="req_schedule_description"
value="{[{ $model.scheduling.scheduling.customDescription }]}">
<div class="RequestForm-schedulingSelector">
<aura-select
aura-select-label="Select an option">
<select
event-track="request form/change scheduling type"
event-track-on="change"
event-track-data="trackingData.genericSelection(
$model.scheduling.scheduling.schedulingType)"
ng-model="$model.scheduling.scheduling.schedulingType">
<option
value="I&#039;m flexible">
I&#039;m flexible
</option>
<option value="In the next few days">
In the next few days
</option>
<option value="As soon as possible">
As soon as possible
</option>
<option value="date">
On one particular date
</option>
<option value="other">
Other (I'd need to describe)
</option>
</select>
</aura-select>
</div>
</div>
</div>
<div ng-class="{'valid': $valid, 'invalid': $valid === false}"
class="page-grid">
<div class="column-lg-6">
<div
schema="requestFormSchema.scheduling.scheduling.customDescription"
schema-assign="TextInputSchema"
ng-if="$model.scheduling.scheduling.schedulingType === 'other'">
<textarea
placeholder="When would you like to schedule this for?"
class="RequestForm-textArea"
id="scheduling-description"
ng-model="$model.scheduling.scheduling.customDescription">
</textarea>
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</div>
<request-form-template
ng-if="$model.scheduling.scheduling.schedulingType === 'date'"
template-id="template-request-scheduling-date-and-time">
</request-form-template>
</div>
</script>
<script id="template-request-scheduling-date-and-time" type="text/template">
<div class="InputContainer theme-group-container">
<div class="page-grid">
<div class="column-lg-6">
<div
schema="requestFormSchema.scheduling.scheduling.date"
schema-assign="DateSchema"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<label
for="scheduling-date"
class="RequestForm-inputLabel T2-S">
{[{ category.scheduling_question_text ||
"What day do you need the " + category.sentence_taxonym + "?" }]}
</label>
<input
date-picker
id="scheduling-date"
placeholder="Click to pick a date"
ng-model="$model.scheduling.scheduling.date"
type="text"
readonly="readonly">
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
<div class="column-lg-3">
<div
schema="requestFormSchema.scheduling.scheduling.time"
schema-assign="TimeSchema"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<label for="scheduling-time" class="RequestForm-inputLabel T2-S">
At what time?
</label>
<input
id="scheduling-time"
placeholder="ex. &quot;2pm&quot;"
ng-model="$model.scheduling.scheduling.time"
type="text">
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
<div class="column-lg-3">
<div
schema="requestFormSchema.scheduling.scheduling.duration"
schema-assign="DurationSchema"
schema-optional-if="!(category.requires_duration
|| $model.scheduling.scheduling.duration)"
ng-class="{'valid': $valid, 'invalid': $valid === false}">
<label for="scheduling-duration" class="RequestForm-inputLabel T2-S">
For how many hours?
<span ng-if="!category.requires_duration" class="T4-S">
(Optional)
</span>
</label>
<input
id="scheduling-duration"
name="req_needed_duration_hours"
placeholder="ex. &quot;4&quot;"
ng-model="$model.scheduling.scheduling.duration"
type="text">
<div class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-zip-code" type="text/template">
<div
schema="requestFormSchema.zipCode.zipCode"
schema-assign="ZipCodeSchema"
schema-default="'{[{ zipCode }]}'"
class="page-grid">
<div
ng-class="{'valid': $valid, 'invalid': $valid === false}"
class="column-lg-4 column-lg-offset-1">
<input
id="zip-code"
placeholder="Zip code"
class="theme-center-align"
ng-model="$model.zipCode.zipCode"
ng-change="updateZipCode($model.zipCode.zipCode)"
event-track="request form/provide zip code"
event-track-on="blur"
event-track-if="$valid && form.req_zip_code_id.$dirty"
event-track-data="trackingData.getDefault()"
name="req_zip_code_id"
type="text"
pattern="\d*"
placeholder="Zip code" />
<div
class="T3-S RequestForm-error"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</script>
<script id="template-request-contact-email" type="text/template">
<div class="page-grid">
<div class="column-lg-6">
<div
schema="requestFormSchema.contactInfo.email"
schema-assign="EmailSchema"
ng-if="!requestForm.options.loggedIn">
<div ng-class="{'valid': $valid, 'invalid': $valid === false}"
class="column-lg-4 column-lg-offset-1">
<input
id="email"
placeholder="Email address"
ng-model="$model.contactInfo.email"
event-track="request form/provide email address"
event-track-on="blur"
event-track-if="$valid && form.usr_email.$dirty"
event-track-once
event-track-data="trackingData.getDefault()"
name="usr_email"
type="email">
<div class="T3-S RequestForm-error
"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-full-name" type="text/template">
<div class="page-grid">
<div class="column-lg-4 column-lg-offset-1">
<div schema="requestFormSchema.fullName.name" schema-assign="FullNameSchema">
<div ng-class="{'valid': $valid, 'invalid': $valid === false}">
<input
id="full-name"
placeholder="First and last name"
class="theme-center-align"
ng-model="$model.fullName.name"
event-track="request form/provide full name"
event-track-on="blur"
event-track-if="$valid && form.usr_full_name.$dirty"
event-track-once
event-track-data="trackingData.getDefault()"
name="usr_full_name"
type="text">
<div
class="T3-S RequestForm-error
"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-form-navigation" type="text/template">
<div class="page-grid">
<div class="column-lg-6">
<div class="RequestForm-sectionFooter">
<div class="RequestForm-sectionFooter-submit"
ng-if="(usesSections || isLastSection) || forceShowSubmit">
<button
type="submit"
ng-class="{
'Button': !themeInvertedLinks,
'Link RequestForm-sectionFooter-navLink theme-inverted theme-bold':
themeInvertedLinks
}">
<span ng-bind="continueText || ( isLastSection ? 'Submit' : 'Next')">
</span>
<svg-icon type="right-caret2" size="md" ng-show="themeInvertedLinks">
</svg-icon>
<div class="ThumbtackLoader" ng-if="requestForm.isSubmitting">
<svg-icon type="puff_44x44"></svg-icon>
</div>
</button>
</div>
<button
ng-if="showSkip"
class="RequestForm-sectionFooter-skip Link"
ng-class="{
'theme-inverted': isBrandedScreen
}"
type="submit">
Skip
</button>
<div class="RequestForm-sectionFooter-terms" ng-if="isLastSection">
<p class="theme-secondary RequestForm-sectionFooter-terms-text"
event-track="request form/click legal terms of service"
event-track-on="click"
ng-class="[
'B5-S'
]">
By clicking Submit you agree to the
<a href="https://www.thumbtack.com/terms"
target="_blank"
>Terms of Use</a> and
<a href="https://www.thumbtack.com/privacy"
target="_blank"
>Privacy Policy</a>.
</p>
</div>
<div ng-hide="hideBack"
ng-if="usesSections"
class="RequestForm-sectionFooter-back">
<button
type="button"
class="Link RequestForm-sectionFooter-navLink"
ng-click="gotoPreviousSection()"
ng-class="{
'theme-inverted theme-bold': themeInvertedLinks
}">
<svg-icon
ng-if="!themeInvertedLinks"
type="left-caret"
size="sm">
</svg-icon>
<svg-icon
ng-if="themeInvertedLinks"
type="right-caret2"
class="theme-rotate-180"
size="md">
</svg-icon>
Back
</button>
</div>
</div>
</div>
</div>
</script>
<script id="template-request-explanation" type="text/template">
<div class="page-grid">
<div class="column-lg-6">
<div class="RequestForm-explanation">
<svg-icon
type="thumbtack-logo_178x28"
alt="Thumbtack"
class="RequestForm-thumbtackLogo">
</svg-icon>
<p
tabindex="0"
class="H2-R RequestForm-explanation-content theme-inverted"
ng-bind="requestForm.introScreenCopy">
</p>
</div>
</div>
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="themeInvertedLinks,hideBack"
theme-inverted-links="true"
hide-back="!(requestForm.categories.length > 1 || forceShowCategoryChooser)">
</request-form-template>
</script>
<script id="template-request-form-phone-number" type="text/template">
<div ng-show="isPhoneNumberSubmitting">
<div class="RequestForm-loadingIcon">
<svg-icon class="ThumbtackLoader" type="puff_44x44"></svg-icon>
</div>
</div>
<div ng-show="!isPhoneNumberSubmitting">
<form
schema="addPhoneNumberSchema"
schema-assign="EmptySchema"
schema-yields="phoneNumber"
ng-submit="deepValidate()
? addPhoneNumber($event, phoneNumber.phoneNumber, phoneNumber.isPublic)
: false">
<request-form-template template-id="template-request-form-section-header"
>
<p class="RequestForm-phoneNumber-header
">
Get responses even faster with text alerts.
</p>
</request-form-template>
<div class="page-grid">
<div class="column-lg-4 column-lg-offset-1">
<input
schema="addPhoneNumberSchema.phoneNumber"
schema-assign="PhoneSchema"
schema-optional
ng-model="phoneNumber.phoneNumber"
ng-class="{'valid': $valid, 'invalid': $valid === false}"
ng-init="phoneNumber.phoneNumber = existingPhoneNumber"
placeholder="ex 555-555-5555"
type="tel"
name="phone_number"/>
<div class="T3-S RequestForm-error
"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
<div ng-if="phoneNumberError" class="T3-S RequestForm-error
"
ng-bind="phoneNumberError">
</div>
</div>
<div class="column-lg-4 column-lg-offset-1">
<input-checkbox
input-checkbox-label="{[{
requestForm.activeCategory.plural_taxonym
}]} may call me directly with quotes"
>
<input
ng-model="phoneNumber.isPublic"
value="public"
type="checkbox">
</input-checkbox>
</div>
<div class="column-lg-4 column-lg-offset-1 RequestForm-phoneNumber-description">
<p class="theme-secondary
B5-S
">
By selecting Next, you
<a href="https://help.thumbtack.com/?ar=kA131000000BOWj"
target="_blank"
>
electronically authorize
</a>
Thumbtack to send you automated text messages to notify you of quotes and
activity from Thumbtack pros. Receiving text messages is optional.
</p>
</div>
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="hideBack,showSkip"
hide-back="true"
show-skip="true">
</request-form-template>
</form>
</div>
</script>
<script id="template-request-form-phone-number-experimental" type="text/template">
<request-form-template template-id="template-request-form-section-header"
>
<p class="RequestForm-phoneNumber-header
">
Get responses even faster with text alerts.
</p>
</request-form-template>
<div class="page-grid">
<div class="column-lg-4 column-lg-offset-1">
<input
schema="requestFormSchema.contactInfo.phoneNumber"
schema-assign="PhoneSchema"
ng-model="$model.contactInfo.phoneNumber"
schema-optional
ng-class="{'valid': $valid, 'invalid': $valid === false}"
ng-init="phoneNumber.phoneNumber = existingPhoneNumber"
placeholder="ex 555-555-5555"
event-track="request form/provide phone number"
event-track-on="blur"
event-track-if="$valid && form.phone_number.$dirty"
event-track-once
event-track-data="trackingData.getDefault()"
type="tel"
name="phone_number"/>
<div class="T3-S RequestForm-error
"
ng-repeat="$err in $validationErrors"
ng-bind="$err">
</div>
<div ng-if="phoneNumberError" class="T3-S RequestForm-error
"
ng-bind="phoneNumberError">
</div>
</div>
<div class="column-lg-4 column-lg-offset-1">
<input
type="hidden"
name="req_phone_privacy"
value="{[{ $model.contactInfo.phonePrivacy ? 'public' : 'thumbtack' }]}" />
<input-checkbox
input-checkbox-label="{[{
requestForm.activeCategory.plural_taxonym
}]} may call me directly with quotes"
>
<input
schema="requestFormSchema.contactInfo.phonePrivacy"
schema-assign="EmptySchema"
schema-default="false"
ng-model="$model.contactInfo.phonePrivacy"
event-track="request form/select phone privacy"
event-track-on="change"
event-track-data="trackingData.genericSelection(
$model.contactInfo.phonePrivacy)"
value="public"
type="checkbox">
</input-checkbox>
</div>
<div class="column-lg-4 column-lg-offset-1 RequestForm-phoneNumber-description">
<p class="theme-secondary
B5-S
">
By selecting Next, you
<a href="https://help.thumbtack.com/?ar=kA131000000BOWj"
target="_blank"
>
electronically authorize
</a>
Thumbtack to send you automated text messages to notify you of quotes and
activity from Thumbtack pros. Receiving text messages is optional.
</p>
</div>
</div>
</script>
<script id="template-request-form-login" type="text/template">
<div class="ThumbtackLoader RequestForm-logging-loader" ng-if="isLoginSectionLoading">
<svg-icon type="puff_44x44"></svg-icon>
</div>
<request-form-template template-id="template-request-form-section-header"
>
<p>
{[{ hasPassword
? "Almost there! You just need to enter your password."
: "Project created! Check your email to set your password and secure your account."
}]}
</p>
<span class="B3-S" ng-show="passwordEmailResent">Email sent.</span>
<span
class="Link B3-S "
ng-click="requirePasswordCreation(email, !hasPassword)"
target="_blank">
{[{ hasPassword ? "Forgot password?" : "Didn't receive the email?" }]}
</span>
</request-form-template>
<form ng-submit="login($event, loginPassword)">
<div class="theme-group-container
InputContainer
">
<div class="page-grid">
<div class="
column-lg-6
">
<label for="password" class="RequestForm-inputLabel T2-S
">
What's your password?
</label>
<input
placeholder="Password"
type="password"
ng-model="loginPassword"
ng-change="clearLoginError()"/>
<div ng-if="loginError" class="T3-S RequestForm-error
" ng-bind="loginError">
</div>
</div>
</div>
</div>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="continueText,isBrandedScreen,isBrandedSection"
is-branded-screen=""
is-branded-section=""
continue-text="'Get Quotes'">
</request-form-template>
</form>
</script>
<script id="template-request-form" type="text/template">
<div
class="RequestForm
"
ng-class="[activeSection.formClass
|| ((requestForm.isSubmitting && usesSections) ? 'theme-branded' : ''),
{ 'theme-standalone': usesSections }]">
<div
event-track="request form/start form flow"
event-track-on-init
event-track-data="trackingData.startFormFlow(
requestForm.options.query,
zipCode
)">
</div>
<div class="RequestForm-customClose
"
ng-show="usesSections
&& !requestForm.isSubmitting
&& !requestForm.options.hideClose
">
<button class="Link RequestForm-customClose-icon"
ng-click="saveFormProgress()"
closes-modal-on-click>
<svg-icon type="close-experimental" size="md"></svg-icon>
</button>
</div>
<div
ng-if="usesSections"
ng-hide="(activeSection.hideProgressBar ||
needPhoneNumber ||
requestForm.isSubmitting
)"
class="page-grid"
>
<div class="column-lg-4 column-lg-offset-1">
<div class="RequestForm-progressContainer
">
<progress-bar
theme-animated
label-threshold="0.7"
current-step="currentStep"
total-steps="totalSteps"
percent-step-interval="0.05"
coefficient="0.7">
</progress-bar>
</div>
</div>
</div>
<div ng-if="requestForm.generalError" class="page-grid">
<div class="column-lg-6">
<div class="RequestForm-generalError T2-S" ng-bind="requestForm.generalError"></div>
</div>
</div>
<div ng-show="(
!requestForm.categories &&
(requestForm.options.query || requestForm.options.categoryId)
) || (
requestForm.categories &&
requestForm.activeCategory.id &&
!requestForm.form
)">
<div class="RequestForm-loadingIcon
">
<svg-icon class="ThumbtackLoader" type="puff_44x44"></svg-icon>
</div>
</div>
<div ng-if="requestForm.isSubmitting && usesSections">
<post-request-interstitial >
<div class="PostRequestInterstitial
theme-branded
">
<div class="PostRequestInterstitial-postRequest">
<div class="PostRequestInterstitial-postRequest-header">
<p class="H4-R theme-inverted">
We're reaching out to the best pros for your project.
</p>
</div>
<div class="PostRequestInterstitial-postRequest-pros">
<div class="PostRequestInterstitial-postRequest-sidePro">
<div class="PostRequestInterstitial-postRequest-sidePro-profilePicture">
<div responsive-if="above-md" responsive-grid="page">
<avatar class="Avatar Avatar--md">
<div class="Avatar__circle">
</div>
</avatar>
</div>
<div responsive-if="below-md" responsive-grid="page">
<avatar class="Avatar Avatar--sm">
<div class="Avatar__circle">
</div>
</avatar>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-sidePro-stars">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-centerPro">
<div class="PostRequestInterstitial-postRequest-centerPro-profilePicture">
<div responsive-if="above-md" responsive-grid="page">
<avatar class="Avatar Avatar--mdLg">
<div class="Avatar__circle">
</div>
</avatar>
</div>
<div responsive-if="below-md" responsive-grid="page">
<avatar class="Avatar Avatar--md">
<div class="Avatar__circle">
</div>
</avatar>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-centerPro-stars">
<div responsive-if="above-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="md"></svg-icon>
</div>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
<div responsive-if="above-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="md"></svg-icon>
</div>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
<div responsive-if="above-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="md"></svg-icon>
</div>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
<div responsive-if="above-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="md"></svg-icon>
</div>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
<div responsive-if="above-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="md"></svg-icon>
</div>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-sidePro">
<div class="PostRequestInterstitial-postRequest-sidePro-profilePicture">
<div responsive-if="above-md" responsive-grid="page">
<avatar class="Avatar Avatar--md">
<div class="Avatar__circle">
</div>
</avatar>
</div>
<div responsive-if="below-md" responsive-grid="page">
<avatar class="Avatar Avatar--sm">
<div class="Avatar__circle">
</div>
</avatar>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-sidePro-stars">
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
<svg-icon class="PostRequestInterstitial-postRequest-star"
type="star" size="sm"></svg-icon>
</div>
</div>
</div>
<div class="PostRequestInterstitial-postRequest-loader">
<div class="LoadingDots
LoadingDots--inverse">
<div></div>
<div></div>
<div></div>
</div>
</div>
</div>
</div>
</post-request-interstitial>
</div>
<div ng-if="!requestForm.categories
&& !requestForm.options.categoryId
&& !requestForm.options.query"
request-form-section="'hercule'"
ng-show="!usesSections || activeSection.id === 'hercule'">
<div ng-init="usesSections && initDisplayFirstSection()"></div>
<request-form-template template-id="template-request-form-hercule">
</request-form-template>
</div>
<div ng-if="requestForm.options.query && requestForm.categories.length === 0"
request-form-section="'noResults'"
ng-show="!usesSections || activeSection.id === 'noResults'">
<div ng-init="usesSections && initDisplayFirstSection()"></div>
<request-form-template template-id="template-request-form-no-results">
</request-form-template>
</div>
<div ng-if="requestForm.categories.length > 1 || forceShowCategoryChooser"
request-form-section="'categoryChooser'"
ng-class="{ Card: !usesSections }"
ng-show="usesSections
? (activeSection.id === 'categoryChooser' &&
!(requestForm.categories && requestForm.activeCategory.id && !requestForm.form))
: (requestForm.categories && !requestForm.activeCategory.id)">
<div ng-init="usesSections && initDisplayFirstSection()"></div>
<request-form-template
template-id="template-request-category-chooser-radio"
scope-vars="categories"
categories="requestForm.categories">
</request-form-template>
</div>
<div
ng-if="needPhoneNumber"
ng-class="{ Card: !usesSections }"
request-form-section="'phoneNumber'"
>
<div
ng-if="activeSection.id === 'phoneNumber'"
event-track="request form/view phone number option"
event-track-on-init
event-track-data="trackingData.getDefault()">
</div>
<request-form-template template-id="template-request-form-phone-number">
</request-form-template>
</div>
<div
ng-cloak
ng-if="requestForm.categories && requestForm.form && requestForm.activeCategory.id"
ng-hide="(requestForm.isSubmitting && usesSections) || needPhoneNumber">
<div ng-init="usesSections && initDisplayFirstSection()"></div>
<form
id="request-form"
schema="requestFormSchema"
schema-assign="EmptySchema"
schema-yields="$model"
schema-cache-id="{[{ requestForm.activeCategory.id }]}"
ng-submit="
(schedulingHandler.processCustomerSchedulingData($model, activeSection.id)
&& deepValidate(activeSection.$scope))
? handleSubmit($event, $model.contactInfo.email, $model.fullName.name)
: scrollToFirstInvalid($event)"
name="form"
action="https://www.thumbtack.com/request/create"
method="post">
<input type="hidden" name="req_source" value="{[{ requestSource }]}"/>
<input type="hidden" name="request_origin" value="{[{ requestOrigin }]}"/>
<input type="hidden" name="rca" value="{[{ requestForm.activeCategory.id }]}"/>
<input type="hidden" name="rfo" value="{[{ requestForm.form.encoded_form_id }]}"/>
<input type="hidden" name="sav" value="{[{ encodedServiceId }]}"/>
<input type="hidden" name="device_fingerprint" value="{[{ requestForm.deviceFingerprint }]}"/>
<div
ng-if="!hideIntroScreen && usesSections"
ng-show="!usesSections || activeSection.id === 'explanationIntro'"
request-form-section="'explanationIntro'"
form-class-when-visible="'theme-branded'"
is-branded-section="true"
hide-progress-bar="true"
hide-back-button="!(requestForm.categories.length > 1
|| forceShowCategoryChooser)"
schema="requestFormSchema.intro"
schema-assign="EmptySchema"
schema-validation-subsection>
<div
ng-if="activeSection.id === 'explanationIntro'"
event-track="request form/view intro explanation"
event-track-on-init
event-track-data="trackingData.getDefault()">
</div>
<request-form-template
template-id="template-request-explanation"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
</div>
<div schema="requestFormSchema.questions" schema-assign="EmptySchema">
<request-form-template template-id="template-request-questions">
</request-form-template>
</div>
<div
ng-if="requestForm.activeCategory.allows_image_upload"
ng-show="!usesSections || activeSection.id === 'imageUpload'"
request-form-section="'imageUpload'"
ng-class="{ Card: !usesSections }"
schema-validation-subsection
schema="requestFormSchema.imageUpload"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'imageUpload'"
event-track="request form/view image upload question"
event-track-on-init
event-track-data="trackingData.getDefault()">
</div>
<request-form-template
template-id="template-request-image-upload"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="continueText"
continue-text="requestForm.addImages && !activeSection.hasImages
? 'Skip'
: ''">
</request-form-template>
</div>
<div ng-if="requestForm.activeCategory.travel_types.length >= 1">
<div
ng-if="activeSection.id === 'location'"
event-track="request form/view location questions"
event-track-on-init
event-track-data="trackingData.getDefault()"></div>
<div ng-if="requestForm.activeCategory.travel_types.length === 1">
<input
type="hidden"
name="req_travel[]"
value="{[{ requestForm.activeCategory.travel_types[0] }]}">
<div
ng-if="requestForm.activeCategory
.travel_types.indexOf('toprovider') !== -1"
ng-show="!usesSections || activeSection.id === 'location'"
request-form-section="'location'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.location"
schema-assign="EmptySchema">
<request-form-template
template-id="template-request-service-location-distance-standalone">
</request-form-template>
<request-form-template template-id="template-request-form-navigation">
</request-form-template>
</div>
</div>
<div
ng-if="requestForm.activeCategory.travel_types.length > 1"
ng-show="!usesSections || activeSection.id === 'location'"
request-form-section="'location'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.location"
schema-assign="EmptySchema">
<request-form-template
template-id="template-request-service-location"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template template-id="template-request-form-navigation">
</request-form-template>
</div>
</div>
<div ng-if="schedulingHandler.showNewSchedulingExperience">
<div
ng-if="schedulingHandler.schedulingArchetype === 'event_with_duration'
|| schedulingHandler.schedulingArchetype === 'event_no_duration'"
ng-show="!usesSections || activeSection.id === 'scheduling'"
request-form-section="'scheduling'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.scheduling"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'scheduling'"
event-track="request form/view scheduling questions"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<request-form-template
template-id="template-request-scheduling-event"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="schedulingHandler.schedulingArchetype === 'event_with_duration'
|| schedulingHandler.schedulingArchetype === 'event_no_duration'"
ng-show="!usesSections || activeSection.id === 'schedulingTimes'"
request-form-section="'schedulingTimes'"
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.event"
schema-assign="EmptySchema">
<request-form-template
template-id="template-request-scheduling-event-time"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="schedulingHandler.showV2CadenceQuestion
&& (schedulingHandler.schedulingArchetype === 'multi_recurring'
|| schedulingHandler.schedulingArchetype === 'multi_mixed')"
ng-show="!usesSections || activeSection.id === 'cadence'"
request-form-section="'cadence'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.cadence"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'scheduling'"
event-track="request form/view scheduling questions"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<request-form-template
template-id="template-request-scheduling-multi-cadence"
scope-vars="category,scheduling"
category="requestForm.activeCategory"
scheduling="requestForm.scheduling">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="schedulingHandler.schedulingArchetype === 'multi_recurring'
|| (schedulingHandler.schedulingArchetype === 'multi_mixed'
&& $model.cadence.cadencePreference !== 'just_once')"
ng-show="!usesSections || activeSection.id === 'cadenceDaysTimes'"
request-form-section="'cadenceDaysTimes'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.cadenceDaysTimes"
schema-assign="EmptySchema">
<request-form-template
template-id="template-request-scheduling-multi-cadence-days-times"
scope-vars="category,scheduling"
category="requestForm.activeCategory"
scheduling="requestForm.scheduling">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="schedulingHandler.schedulingArchetype === 'multi_nonrecurring'
|| (schedulingHandler.schedulingArchetype === 'multi_mixed'
&& $model.cadence.cadencePreference === 'just_once')"
ng-show="!usesSections || activeSection.id === 'scheduling'"
request-form-section="'scheduling'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.scheduling"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'scheduling'"
event-track="request form/view scheduling questions"
event-track-on-init
event-track-data="trackingData.getSchedulingDefault(requestForm)"></div>
<request-form-template
template-id="template-request-scheduling-multi"
scope-vars="category,scheduling"
category="requestForm.activeCategory"
scheduling="requestForm.scheduling">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="(schedulingHandler.schedulingArchetype === 'multi_nonrecurring'
|| (schedulingHandler.schedulingArchetype === 'multi_mixed'
&& $model.cadence.cadencePreference === 'just_once'))
&& $model.scheduling.dayPreference !== 'as_recommended_by_pro'"
ng-show="!usesSections || activeSection.id === 'schedulingTimes'"
request-form-section="'schedulingTimes'"
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.timeslots"
schema-assign="EmptySchema">
<request-form-template
template-id="template-request-scheduling-timeslots"
scope-vars="category,scheduling"
category="requestForm.activeCategory"
scheduling="requestForm.scheduling">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="schedulingHandler.schedulingArchetype === 'completed_by'">
<input
type="hidden"
name="scheduling_timestamps_array"
value="[]" />
</div>
</div>
<div ng-if="!schedulingHandler.showNewSchedulingExperience">
<div
ng-if="requestForm.activeCategory.scheduling_type === 'event'
|| requestForm.activeCategory.scheduling_type === 'appointment'"
ng-show="!usesSections || activeSection.id === 'originalScheduling'"
request-form-section="'originalScheduling'"
schema-validation-subsection
ng-class="{ Card: !usesSections }"
schema="requestFormSchema.scheduling"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'originalScheduling'"
event-track="request form/view scheduling questions"
event-track-on-init
event-track-data="trackingData.getDefault()"></div>
<request-form-template
template-id="template-request-scheduling"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
<request-form-template template-id="template-request-form-navigation">
</request-form-template>
</div>
</div>
<div
ng-show="!usesSections || activeSection.id === 'anythingElse'"
ng-class="{ Card: !usesSections }"
request-form-section="'anythingElse'"
schema-validation-subsection
schema="requestFormSchema.anythingElse"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'anythingElse'"
event-track="request form/view anything else question"
event-track-on-init
event-track-data="trackingData.getDefault()"></div>
<request-form-template template-id="template-request-description">
</request-form-template>
<request-form-template template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-show="!usesSections || activeSection.id === 'zipCode' && !needPhoneNumber"
ng-class="{ Card: !usesSections }"
request-form-section="'zipCode'"
schema-validation-subsection
schema="requestFormSchema.zipCode"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'zipCode'"
event-track="request form/view zipcode input"
event-track-on-init
event-track-data="trackingData.getDefault()"></div>
<request-form-template template-id="template-request-form-section-header">
Please confirm where you need the
{[{ requestForm.activeCategory.sentence_taxonym }]}.
</request-form-template>
<request-form-template
template-id="template-request-zip-code"
class="RequestForm-standaloneInputSection">
</request-form-template>
<request-form-template
template-id="template-request-form-navigation"
scope-vars="isLastSection"
is-last-section="requestForm.options.loggedIn">
</request-form-template>
</div>
<div
ng-if="!requestForm.options.loggedIn"
ng-show="!usesSections || activeSection.id === 'contactInfo'"
ng-class="{ Card: !usesSections }"
request-form-section="'contactInfo'"
schema-validation-subsection
schema="requestFormSchema.contactInfo"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'contactInfo'"
event-track="request form/view contact form"
event-track-on-init
event-track-data="trackingData.viewContactForm()"></div>
<request-form-template template-id="template-request-form-section-header"
>
We don't share your email with pros.
</request-form-template>
<div class="RequestForm-standaloneInputSection
">
<request-form-template
template-id="template-request-contact-email"
scope-vars="category"
category="requestForm.activeCategory">
</request-form-template>
</div>
<request-form-template
ng-if="!requestForm.options.loggedIn"
template-id="template-request-form-navigation">
</request-form-template>
</div>
<div
ng-if="!requestForm.options.loggedIn"
ng-show="!usesSections || activeSection.id === 'fullName'"
ng-class="{ Card: !usesSections }"
request-form-section="'fullName'"
schema-validation-subsection
schema="requestFormSchema.fullName"
schema-assign="EmptySchema">
<div
ng-if="activeSection.id === 'fullName'"
event-track="request form/view name input"
event-track-on-init
event-track-data="trackingData.getDefault()"></div>
<request-form-template template-id="template-request-form-section-header"
>
Please enter your full name.
</request-form-template>
<request-form-template
template-id="template-request-full-name"
class="RequestForm-standaloneInputSection
theme-tos-visibility-full-name
">
</request-form-template>
<request-form-template template-id="template-request-form-navigation"
scope-vars="isLastSection,isBrandedScreen"
is-branded-screen=""
is-last-section="true">
</request-form-template>
</div>
</form>
<div
ng-if="!requestForm.options.loggedIn"
ng-show="activeSection.id === 'login'"
request-form-section="'login'"
>
<request-form-template template-id="template-request-form-login">
</request-form-template>
</div>
</div>
</div>
</script>
<script id="template-request-modal" type="text/template">
<div
standard-modal
disable-backdrop-close="true"
hide-close="true">
<request-form
form-type="thumbprint"
uses-sections="true"
zip-code="'{[{ zipCode }]}'"
query="{[{ query }]}"
category-id="{[{ categoryId }]}"
logged-in="false"
from-homepage="{[{ fromHomepage }]}"
hercule-version="1"
hide-intro-screen="{[{ hideIntroScreen }]}"
intro-emphasize-projects="{[{ introEmphasizeProjects }]}"
progress-bar-total-offset="1"
use-unspecified-categories="{[{ useUnspecifiedCategories }]}"
active-section-id="{[{ activeSectionId }]}">
</request-form>
</div>
</script>
<full-footer>
<div class="FullFooter">
<div class="FullFooter-upper">
<div class="page-grid FullFooter-upper-inner">
<div class="column-lg-1 column-md-6 FullFooter-group">
<div class="FullFooter-group-label"
ng-click="selectedMenu === 'Company'
? selectedMenu = null
: selectedMenu = 'Company'">
<h3 class="FullFooter-group-label-title"
responsive-class="{
'T2-S': 'above-md',
'T1-S': 'below-md'
}"
responsive-grid="page">
Company
</h3>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon type="{[{ selectedMenu === 'Company'
? 'up-caret'
: 'down-caret'
}]}"
size="sm">
</svg-icon>
</div>
</div>
<ul class="FullFooter-group-list" ng-class="{
'is-collapsed': selectedMenu !== 'Company'
}">
<li>
<a href="https://www.thumbtack.com/about"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
About
</a>
</li>
<li>
<a href="https://www.thumbtack.com/jobs"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Jobs
</a>
</li>
<li>
<a href="https://www.thumbtack.com/team/"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Team
</a>
</li>
<li>
<a href="https://www.thumbtack.com/blog"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Blog
</a>
</li>
</ul>
</div>
<div class="column-lg-1 column-md-6 FullFooter-group">
<div class="FullFooter-group-label"
ng-click="selectedMenu === 'Customers'
? selectedMenu = null
: selectedMenu = 'Customers'">
<h3 class="FullFooter-group-label-title"
responsive-class="{
'T2-S': 'above-md',
'T1-S': 'below-md'
}"
responsive-grid="page">
Customers
</h3>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon type="{[{ selectedMenu === 'Customers'
? 'up-caret'
: 'down-caret'
}]}"
size="sm">
</svg-icon>
</div>
</div>
<ul class="FullFooter-group-list" ng-class="{
'is-collapsed': selectedMenu !== 'Customers'
}">
<li>
<a href="https://www.thumbtack.com/how-it-works"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
How it works
</a>
</li>
<li>
<a href="https://www.thumbtack.com/safety"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Safety
</a>
</li>
<li>
<a href="https://r.yoz.io/Z3.c.r"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
iPhone app
</a>
</li>
<li>
<a href="https://www.thumbtack.com/near-me"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Services Near Me
</a>
</li>
<li>
<a href="https://www.thumbtack.com/prices"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Cost Estimates
</a>
</li>
<li>
<a href="https://www.thumbtack.com/service-guides"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Service Guides
</a>
</li>
<li>
<a href="https://www.thumbtack.com/how-to"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
How To Pages
</a>
</li>
</ul>
</div>
<div class="column-lg-1 column-md-6 FullFooter-group">
<div class="FullFooter-group-label"
ng-click="selectedMenu === 'Pros'
? selectedMenu = null
: selectedMenu = 'Pros'">
<h3 class="FullFooter-group-label-title"
responsive-class="{
'T2-S': 'above-md',
'T1-S': 'below-md'
}"
responsive-grid="page">
Pros
</h3>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon type="{[{ selectedMenu === 'Pros'
? 'up-caret'
: 'down-caret'
}]}"
size="sm">
</svg-icon>
</div>
</div>
<ul class="FullFooter-group-list" ng-class="{
'is-collapsed': selectedMenu !== 'Pros'
}">
<li>
<a href="https://www.thumbtack.com/blog/get-hired-guide/how-thumbtack-works/"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
How it works
</a>
</li>
<li>
<a href="https://www.thumbtack.com/pro"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Sign up
</a>
</li>
<li>
<a href="https://www.thumbtack.com/pro-center"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Pro center
</a>
</li>
<li>
<a href="https://www.thumbtack.com/pro-center/stories"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Success stories
</a>
</li>
<li>
<a href="https://www.thumbtack.com/pro-app"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Mobile app
</a>
</li>
</ul>
</div>
<div class="column-lg-1 column-md-6 FullFooter-group">
<div class="FullFooter-group-label"
ng-click="selectedMenu === 'Support'
? selectedMenu = null
: selectedMenu = 'Support'">
<h3 class="FullFooter-group-label-title"
responsive-class="{
'T2-S': 'above-md',
'T1-S': 'below-md'
}"
responsive-grid="page">
Support
</h3>
<div responsive-if="below-md" responsive-grid="page">
<svg-icon type="{[{ selectedMenu === 'Support'
? 'up-caret'
: 'down-caret'
}]}"
size="sm">
</svg-icon>
</div>
</div>
<ul class="FullFooter-group-list" ng-class="{
'is-collapsed': selectedMenu !== 'Support'
}">
<li>
<a href="https://help.thumbtack.com/"
class="FullFooter-group-list-link Link theme-secondary"
responsive-class="{
'B2-S': 'below-md',
'B3-S': 'above-md'
}"
responsive-grid="page">
Help center
</a>
</li>
</ul>
</div>
<div class="column-lg-2 column-md-6 column-sm-6 FullFooter-logos">
<a href="index.html" class="FullFooter-logos-brand">
<svg-icon type="thumbtack-logo_178x28" alt="Thumbtack">
</svg-icon>
</a>
<ul class="FullFooter-logos-socialMedia">
<li>
<a href="http://twitter.com/thumbtack" class="theme-secondary">
<svg-icon type="twitter" size="md"></svg-icon>
</a>
</li>
<li>
<a href="https://www.facebook.com/Thumbtack" class="theme-secondary">
<svg-icon type="facebook" size="md"></svg-icon>
</a>
</li>
<li>
<a href="http://pinterest.com/thumbtackboards/" class="theme-secondary">
<svg-icon type="pinterest" size="md"></svg-icon>
</a>
</li>
<li>
<a href="https://plus.google.com/110365850422119512162/posts" class="theme-secondary">
<svg-icon type="google-plus" size="md"></svg-icon>
</a>
</li>
<li>
<a href="https://www.instagram.com/thumbtack/" class="theme-secondary">
<svg-icon type="instagram" size="md"></svg-icon>
</a>
</li>
</ul>
<div class="FullFooter-logos-guarantee">
<div class="TtGuaranteeText">
<a href="https://www.thumbtack.com/guarantee/"
class="TtGuaranteeText-inner">
<svg-icon type="tt-guarantee-emblem" size="lg" class="TtGuaranteeText-emblem">
</svg-icon>
<div class="TtGuaranteeText-textContainer">
<div class="TtGuaranteeText-textContainer-title B3-S theme-secondary">
Thumbtack Guarantee
</div>
<div class="TtGuaranteeText-textContainer-text T3-S theme-secondary">
$1M Property Protection
</div>
</div>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="FullFooter-lower">
<div class="page-grid">
<div class="column-lg-6">
<div class="FullFooter-lower-inner">
<div class="FullFooter-lower-copyright">
<span class="B3-S theme-secondary">© 2017 Thumbtack, Inc.</span>
</div>
<div class="FullFooter-lower-legal">
<ul class="B3-S theme-secondary">
<li>
<a class="theme-secondary" href="https://www.thumbtack.com/privacy">
Privacy Policy
</a>
</li><li>
<a class="theme-secondary" href="https://www.thumbtack.com/terms">
Terms of use
</a>
</li> </ul>
</div>
</div>
</div>
</div>
</div>
</div>
</full-footer>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script><script src="https://static7.thumbtackstatic.com/_assets/javascript/release/legacy-js/jquery/jquery.browser-c000434a.js.gz"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.0.0/jquery-migrate.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script><script>
_.contains = _.includes;
</script><script src="https://static6.thumbtackstatic.com/_assets/javascript/release/bundles/foundation_bundle-6b3b21fa.js.gz"></script><script>
_createTTNamespace(
false,
[],
[],
[]
);
function postResponsivenessMetrics() {
var metrics = {};
for (var metric in window.performance.timing) {
if (metric !== 'toJSON' && _.isInteger(window.performance.timing[metric])) {
metrics[metric] = window.performance.timing[metric];
}
}
var data = {
key: "1m7ujophhuk9hgblefu8b7i5ivcm31gms0aqovsntqba8bk8u8km",
tags: {},
data: metrics,
};
$.post(
'/ajax/responsiveness',
data
);
}
if (window.performance && window.performance.timing) {
postResponsivenessMetrics();
$(document).ready(function() {
postResponsivenessMetrics()
$(window).on('load', function() {
window.setTimeout(function() {
postResponsivenessMetrics()
}, 0);
});
});
}
</script><script>
TT.domReady(function() {
TT.loggedin = false;
});
</script><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-6981433-1', 'auto');
ga('require', 'GTM-PCGNZW');
ga('send', 'pageview');
</script><script>
var signalCoData = {};
(function () {
var tagjs = document.createElement("script");
var s = document.getElementsByTagName("script")[0];
tagjs.async = true;
tagjs.src = "//s.btstatic.com/tag.js#site=GYp4tcM";
s.parentNode.insertBefore(tagjs, s);
})();
</script><noscript><iframe src="https://s.thebrighttag.com/iframe?c=GYp4tcM" width="1" height="1" frameborder="0"
scrolling="no" marginheight="0" marginwidth="0"></iframe></noscript><div id="preload"></div><script type="application/ld+json">
[
{
"@context": "http:\/\/schema.org",
"@type": "Website",
"name": "Thumbtack",
"url": "https:\/\/www.thumbtack.com\/"
},
{
"@context": "http:\/\/schema.org",
"@type": "Organization",
"url": "https:\/\/www.thumbtack.com\/",
"logo": "https:\/\/static.thumbtackstatic.com\/media\/logos\/thumbtack_brand_152x24.svg",
"name": "Thumbtack",
"contactPoint": [
{
"@type": "ContactPoint",
"telephone": "+1(866)501-5809",
"contactType": "customer service"
}
],
"sameAs": [
"https:\/\/www.facebook.com\/Thumbtack\/",
"https:\/\/twitter.com\/thumbtack\/",
"https:\/\/plus.google.com\/+thumbtack\/",
"https:\/\/www.youtube.com\/user\/thumbtackhq\/",
"https:\/\/www.linkedin.com\/company\/thumbtack-inc.\/",
"https:\/\/www.instagram.com\/thumbtack\/",
"https:\/\/www.pinterest.com\/thumbtack\/"
]
}
]
</script><script>
$(window).on("load", function() {
TT.initPiede();
});
</script><script>
$(document).ready(function() {
var $gloriousNavigationWrapper = $(".glorious-navigation-wrapper");
$("#mobile-navigation-toggle").on("click", function() {
$gloriousNavigationWrapper.toggle();
});
if (TT.env.primo || true) {
TT.initPrimoHeader();
}
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
<script src="https://static7.thumbtackstatic.com/_assets/javascript/release/bundles/core-550d3ad7.js.gz"></script>
<script src="https://static4.thumbtackstatic.com/_assets/javascript/release/bundles/core.es6-d4e264a2.js.gz"></script>
<script src="https://static8.thumbtackstatic.com/_assets/javascript/release/pages/homepage/submodules/homepage-sticky-header/scripts/homepage-sticky-header.es6-607dc99c.js.gz">
</script>
<script src="https://static7.thumbtackstatic.com/_assets/javascript/release/modules/category-carousel/scripts/category-carousel.es6-3a8013c5.js.gz">
</script>
<script src="https://static6.thumbtackstatic.com/_assets/javascript/release/modules/request-form/scripts/request-form-ng.es6-af06c88a.js.gz">
</script>
<script src="https://static3.thumbtackstatic.com/_assets/javascript/release/components/install-native-app/scripts/install-native-app-ng.es6-fd82d728.js.gz">
</script>
<script>
$(document).ready(function() {
angular.module('requestForm').constant(
'requestFormViewModel',
{"requestSource":10,"requestEntrySource":4,"requestOrigin":null,"embeddedSchedulingQuestions":[124,139,148,156,193,282,304,626,747,806,964,1034,1477,1946,1969,2176,2179,2180,2192,2193,2240,2241,2252,2253,2282,2368,2373,2421,2425,2431,2432,2696,2703,2704,2906,3082,3150,3179,3183,3184,3203,3204,3205,3216,3218,3244,3250,3256,3296,3344,3348,3349,3361,3362,3364,3401,3528,3563,3565,3569,3597,3606,3609,4103,4104,4142,4156,4159,4160,4176,4177,4180,4235,4260,4270,4319,4325,4331,4425,4426,4467,4515,4518,4519,4520,4522,4532,4533,4535,4536,4575,4593,4624,4709],"liveProAssistCategories":["Ef:ZOOYOXFaD2A","FgkDqgZUb6Ws8g","CRUfnOchCWhnQQ","1axLKc3DdQ6g5w","SLWNiAQVYBldaA","bmLJkhdk5vGLvg","CGoqNwAGYYU2qA","q75MpVw2qNDkmQ","b7cSvw5Y7PhRlA","6WTJnO6mPxjoag","GmauKy9DW8jlXw","iJlabHh2QF9ylg","HSN$F3bPaZ1iaw","N3RO9AsfLUgQUA","kMI95pqKXLU9vQ","XW5gh2LIjTJbqg","MaHm4Ia$pQ:uYQ","d0v6PveQOQGUoA","Q9sYIW2IZP5AkA"],"shouldUseRecaptcha":false,"isEligibleForGrowthSprintApr17RFExpt":true}
);
angular.bootstrap(angular.element('body'), [
'auraComponents',
'requestForm',
]);
});
</script>
</body>
</html>
@garrettmac
Copy link
Author

garrettmac commented May 20, 2017

How to install wget

brew install wget

Command to clone website:

wget -r -np -k http://thumbtack.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment