1<!DOCTYPE html> 2<!--[if lt IE 7 ]><html class="ie ie6" lang="en"><![endif]--> 3<!--[if IE 7 ]><html class="ie ie7" lang="en"><![endif]--> 4<!--[if IE 8 ]><html class="ie ie8" lang="en"><![endif]--> 5<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"><!--<![endif]--><head><meta charset="utf-8"><title>Contact | Hart's Desire Wines</title><link rel="canonical" href="https://www.hartsdesirewines.com/contact" /><link rel="alternate" type="application/rss+xml" title="Hart's Desire Wines" href="https://www.hartsdesirewines.com/blog/rss/all.rss" /><meta name="keywords" content="address, business, email, healdsburg, old roma station, phone, russian river, tasting room, visit" /><meta name="robots" content="index,follow" /><meta name="description" content="The Hart's Desire Winery tasting room is at 18850 Hassett Lane Unit 17 Geyserville 95441 (by Appt only) Call or email the winery." /><meta name="keywords" content=" "><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><link href="https://www.hartsdesirewines.com/addons/shared_addons/themes/hartsdesire/img/favicon.png" rel="shortcut icon" type="image/x-icon" /><link rel="stylesheet" href="http://032141c.netsolhost.com/css/skeleton.css" /><!--[if lt IE 9]>
5<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
5<![endif]--></head><body class="container"><div id="header"><a href="/" id="logo" class="sixteen columns"><img src="http://032141c.netsolhost.com/images/hartsdesire.png" alt="Heart's Desire Winery" title="Heart's Desire Winery"/></a> <nav id="nav1" class="sixteen columns"> <ul> <li class="first"><a href="https://www.hartsdesirewines.com/wines">Wines</a></li><li><a href="https://www.hartsdesirewines.com/shop">Shop</a></li><li><a href="https://www.hartsdesirewines.com/visit">Visit</a></li><li><a href="https://www.hartsdesirewines.com/wine-club">Wine Club</a></li><li><a href="https://www.hartsdesirewines.com/news-and-events">News & Events</a></li><li><a href="https://www.hartsdesirewines.com/our-story">Story</a></li><li class="last parent"><a href="https://www.hartsdesirewines.com/contact">Contact</a></li> </ul> </nav><div id="mobile-nav" ><a href="#nav-mob">Menu</a></div></div><div id="container" class="isotope"><div id="contact" class="box ten columns isotope-item extra"><div class="contact"><h2>Tasting Room</h2><p><span class="caps"></span><br/>�18850 Hassett Lane Unit 17<br/>Geyserville, CA 95441 (by Appt only)</p><p class="space"><span class="subtitle">Tasting Room:</span> 707.695.0398</p><p class="space"><a href="mailto:[email protected]">[email protected]</a></p></div></div><div id="taste-map" class="box five columns isotope-item extra"><h2>Tasting Room Location</h2><p><span></span><br/>�18850 Hassett Lane Unit 17<br/>Geyserville, CA 95441 (by Appt only)</p><div id="map"><div id="map_canvas"></div></div></div><div id="biz" class="box five columns"><h2>Business Information</h2><div class="biz"><p class="space"><span class="subtitle">Phone:</span> 707.695.0398<br/><span class="subtitle">Cell:</span> 707.695.0398<br/><p><span class="subtitle">Order Inquiries, Tasting Room:</span><br/>John Hart<br/><a href="mailto:[email protected]">[email protected]</a></p><p><span class="subtitle">Winemaker</span><br/>John Hart<br/><a href="mailto:[email protected]">[email protected]</a></p><p><span class="subtitle">Main Winery Address*</span><br/>18850 Hassett Lane<br/>Geysersville, CA 95441<br/>*Private</p></div></div><div id="news-signup" class="box five columns isotope-item"><h2>Newsletter</h2><p>Our newsletter sends out updates about new wine releases, sales, and events.</p><p><a href="#openModal">Sign Up now</a></p></div><div id="photo" class="box five columns isotope-item "><img src="../../images/wine-competitor_awards.jpg" alt="Hart's Desire | Wine Competitor Award-Winning Wines" title="Hart's Desire | Wine Competitor Award-Winning Wines"/></div><div id="social" class="box five columns isotope-item extra"><h2>Follow Us</h2><div class="icons"><a href="https://www.facebook.com/HartsDesireWines?v=info" target="_blank"><img src="http://032141c.netsolhost.com/images/facebook.png" alt="Facebook" title="Facebook"/></a> <a href="https://twitter.com/HD_Winery" target="_blank"><img src="http://032141c.netsolhost.com/images/twitter.png" alt="Twitter" title="Twitter"/></a></div></div><div id="shop-but" class="box five columns isotope-item"><h2><a href="">Shop <img src="http://032141c.netsolhost.com/images/arrow.png" alt="Now" title="Now"/></a></h2></div></div><footer class="container" id="footer"> <ul class="sixteen columns"> <li>©2026 Hart's Desire Wines</li> <li class="first"><span class="break">|</span></li> <span class="block-line"><li><a href="#openModal">Join our Newsletter</a></li> <li><span class="break">|</span></li> <li><a href="https://www.facebook.com/HartsDesireWines" target="_blank">Facebook</a></li> <li><span class="break">|</span></li> <li>707.695.0398</li></span> <li class="last"><span class="break">|</span></li> <li>18850 Hassett Lane Unit 17, Geyserville 95441 (by Appt only)</li> </ul> 6</footer><div id="openModal" class="modalDialog "><div class="container"><div id="sign-up" ><a href="#close" title="Close" class="close-modal">X</a> <form class="vr-signup-form" id="vr-signup-form-10995116279519"><h2>Hart's Desire Newsletter</h2><p>Sign up for the Hart's Desire Wines Newsletter to learn about events, sales and new wine releases.</p><div class="vr-field"><label>First Name</label> <input type="text" name="first_name"></div><div class="vr-field"><label>Last Name</label> <input type="text" name="last_name"></div><div class="vr-field"><label>Email Address<span class="vr-required">*</span></label> <input type="email" name="email_address" required></div><div class="vr-submit"><div class="vr-notice"></div><input type="submit" value="Sign Up"></div></form><link media="all" rel="stylesheet" type="text/css" href="https://vr2.verticalresponse.com/signup_forms/signup_forms.embedded-1.css">
6<script type="text/javascript" src="https://vr2.verticalresponse.com/signup_forms/signup_forms.embedded-1.js"></script>
6<script type="text/javascript">if (typeof VR !== "undefined" && typeof VR.SignupForm !== "undefined") { new VR.SignupForm({ id: "10995116279519", element: "vr-signup-form-10995116279519", endpoint: "https://vr2.verticalresponse.com/se/"}); }</script>
6</div></div></div><div class="age_check"><div class="message_box"><h1>Welcome</h1><p>Are you at least 21 years of age?</p><div><a href="#" id="enter" class="btn">Yes</a> <a href="http://www.disney.com" class="btn">No</a></div></div></div><!--<div class="content"><a href="#" id="reset" class="btn">Reset Cookie</a></div>-->
6<script type="text/javascript" src="http://032141c.netsolhost.com/js/master.js"></script>
6<script async type="text/javascript" src="http://032141c.netsolhost.com/js/jquery.cycle2.min.js"></script>
6<script async type="text/javascript" src="http://032141c.netsolhost.com/js/js.cookie.js"></script>
6<script type="text/javascript"> 7 $(document).ready(function() { 8 var $menu = $("#nav1").clone(); 9 $menu.attr( "id", "nav-mob" ); 10 $menu.mmenu({ 11 12 offCanvas: { 13 position: "bottom", 14 zposition : "front" 15 } 16 }); 17 }); 18</script>
18<script> 19$.Isotope.prototype._getCenteredMasonryColumns = function() { 20 this.width = this.element.width(); 21 22 var parentWidth = this.element.parent().width(); 23 24 // i.e. options.masonry && options.masonry.columnWidth 25 var colW = this.options.masonry && this.options.masonry.columnWidth || 26 // or use the size of the first item 27 this.$filteredAtoms.outerWidth(true) || 28 // if there's no items, use size of container 29 parentWidth; 30 31 var cols = Math.floor( parentWidth / colW ); 32 cols = Math.max( cols, 1 ); 33 34 // i.e. this.masonry.cols = .... 35 this.masonry.cols = cols; 36 // i.e. this.masonry.columnWidth = ... 37 this.masonry.columnWidth = colW; 38 }; 39 40 $.Isotope.prototype._masonryReset = function() { 41 // layout-specific props 42 this.masonry = {}; 43 // FIXME shouldn't have to call this again 44 this._getCenteredMasonryColumns(); 45 var i = this.masonry.cols; 46 this.masonry.colYs = []; 47 while (i--) { 48 this.masonry.colYs.push( 0 ); 49 } 50 }; 51 52 $.Isotope.prototype._masonryResizeChanged = function() { 53 var prevColCount = this.masonry.cols; 54 // get updated colCount 55 this._getCenteredMasonryColumns(); 56 return ( this.masonry.cols !== prevColCount ); 57 }; 58 59 $.Isotope.prototype._masonryGetContainerSize = function() { 60 var unusedCols = 0, 61 i = this.masonry.cols; 62 // count unused columns 63 while ( --i ) { 64 if ( this.masonry.colYs[i] !== 0 ) { 65 break; 66 } 67 unusedCols++; 68 } 69 70 return { 71 height : Math.max.apply( Math, this.masonry.colYs ), 72 // fit container to columns that have been used; 73 width : (this.masonry.cols - unusedCols) * this.masonry.columnWidth 74 }; 75 }; 76 77 78$(function(){ 79 80 var $container = $('#container'); 81 82 $( window ).on('resize', function(){ 83 84 if ($(window).width() < 640) { 85 $container.isotope({ 86 filter: '.extra', 87 }); 88} 89else { 90 $container.isotope({ filter: '*' }); 91} 92 }); 93 94 95 96$( window ).ready( function(){ 97 98 if ($(window).width() < 640) { 99 $container.isotope({ 100 filter: '.extra', 101 }); 102} 103else { 104 $container.isotope({ filter: '*' }); 105} 106 107 }); 108 // object that will keep track of options 109 isotopeOptions = { 110 itemSelector : '.box', 111 isResizeBound:false, 112 }, 113 // defaults, used if not explicitly set in hash 114 defaultOptions = { 115 filter: '*', 116 sortBy: 'data-category', 117 sortAscending: true, 118 layoutMode: 'masonry' 119 }; 120 121 122 123 $container.isotope({ 124 itemSelector : '.box', 125 126 masonry : { 127 columnWidth: 1, 128 gutterWidth: 10, 129 130 }, 131 132 }); 133 134 var options = { 135 // special hash for combination filters 136 comboFilters: {} 137 }; 138 139 }); 140 141 142</script>
142<script>
vendor: 339 bytes, lines 142-148
142 143 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 144 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 145 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 146 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 147 148 ga('create', '
148UA-65350602-1
vendor: 39 bytes, lines 148-150
148', 'auto'); 149 ga('send', 'pageview'); 150
151</script>
151<script> 152/*! 153 * jQuery Cookie Plugin v1.4.0 154 * https://github.com/carhartl/jquery-cookie 155 * 156 * Copyright 2013 Klaus Hartl 157 * Released under the MIT license 158 */ 159!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function c(a){return h.raw?a:encodeURIComponent(a)}function d(a){return h.raw?a:decodeURIComponent(a)}function e(a){return c(h.json?JSON.stringify(a):String(a))}function f(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(b," ")),h.json?JSON.parse(a):a}catch(c){}}function g(b,c){var d=h.raw?b:f(b);return a.isFunction(c)?c(d):d}var b=/\+/g,h=a.cookie=function(b,f,i){if(void 0!==f&&!a.isFunction(f)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setDate(k.getDate()+j)}return document.cookie=[c(b),"=",e(f),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=b?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=d(p.shift()),r=p.join("=");if(b&&b===q){l=g(r,f);break}b||void 0===(r=g(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}}); 160 161 162//Age check modal and cookie 163 //Expires after 7 days 164if(!$.cookie('age_check')){ 165 $('.age_check').show(); 166}else{ 167 $('.age_check').hide(); 168} 169 170$('#enter').click(function(){ 171 $('.age_check').hide(); 172 $.cookie('age_check', 'over21', { expires: 7, path: '/' }); 173 return false; 174}); 175 176$('#reset').click(function(){ 177 $.removeCookie('age_check', { path: '/' }); 178 $('.age_check').show(); 179}); 180</script>
180<script src="https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyBVAy2qq9g_e8aRFY1SRIHkMr8mReIvnzg" type="text/javascript"></script>
180<script> 181function initialize() { 182 var mapOptions = { 183 zoom:9, 184 center: new google.maps.LatLng(38.605836,-122.861664), 185 mapTypeId: google.maps.MapTypeId.ROADMAP, 186 disableDefaultUI:true, 187 styles: [{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#d3d3d3"}]},{"featureType":"transit","stylers":[{"color":"#808080"},{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"on"},{"color":"#b3b3b3"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"weight":1.8}]},{"featureType":"road.local","elementType":"geometry.stroke","stylers":[{"color":"#d7d7d7"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#ebebeb"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"color":"#a7a7a7"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#efefef"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#696969"}]},{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"visibility":"on"},{"color":"#737373"}]},{"featureType":"poi","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.arterial","elementType":"geometry.stroke","stylers":[{"color":"#d6d6d6"}]},{"featureType":"road","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"color":"#dadada"}]}] 188 } 189 var map = new google.maps.Map(document.getElementById('map_canvas'), 190 mapOptions); 191 192 setMarkers(map, beaches); 193} 194 195/** 196 * Data for the markers consisting of a name, a LatLng and a zIndex for 197 * the order in which these markers should display on top of each 198 * other. 199 */ 200var beaches = [ 201 ['Tasting Room, Healdsburg, California', 38.605836,-122.861664, 1] 202]; 203 204function setMarkers(map, locations) { 205 // Add markers to the map 206 207 // Marker sizes are expressed as a Size of X,Y 208 // where the origin of the image (0,0) is located 209 // in the top left of the image. 210 211 // Origins, anchor positions and coordinates of the marker 212 // increase in the X direction to the right and in 213 // the Y direction down. 214 var image = { 215 url: 'images/map-marker.png', 216 // This marker is 132 pixels wide by 105 pixels tall. 217 size: new google.maps.Size(85, 94), 218 // The origin for this image is 0,0. 219 origin: new google.maps.Point(0,0), 220 // The anchor for this image is the base of the flagpole at 0,32. 221 anchor: new google.maps.Point(41, 90) 222 }; 223 // Shapes define the clickable region of the icon. 224 // The type defines an HTML <area> element 'poly' which 225 // traces out a polygon as a series of X,Y points. The final 226 // coordinate closes the poly by connecting to the first 227 // coordinate. 228 var shape = { 229 coords: [1, 1, 1, 20, 18, 20, 18 , 1], 230 type: 'poly' 231 }; 232 for (var i = 0; i < locations.length; i++) { 233 var beach = locations[i]; 234 var myLatLng = new google.maps.LatLng(beach[1], beach[2]); 235 var marker = new google.maps.Marker({ 236 position: myLatLng, 237 map: map, 238 icon: image, 239 shape: shape, 240 title: beach[0], 241 zIndex: beach[3] 242 }); 243 } 244} 245 246google.maps.event.addDomListener(window, 'load', initialize); 247 248 </script>
248</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.