1<!doctype html> 2 3<!--[if IE 9]> <html class="ie9 no-js supports-no-cookies" lang="en"> <![endif]--> 4<!--[if (gt IE 9)|!(IE)]><!--> <html class = 'no-js supports-no-cookies' lang = 'en'> <!--<![endif]--> 5 6<head> 7 8 9 10 11 12<meta charset = 'utf-8'> 13<meta http-equiv = 'X-UA-Compatible' content = 'IE=edge'> 14<meta name = 'viewport' content = 'width=device-width,initial-scale=1'> 15<meta name = 'theme-color' content = '#002836'> 16<meta name = 'google-site-verification' content = 'MhdocRZitFzEfIQs5HLWGH1Do5-laJYAnigjw385rjs' /> 17<link rel = 'preconnect' href = 'https://cdn.shopify.com' crossorigin> 18<link rel = 'preconnect' href = 'https://fonts.gstatic.com' crossorigin> 19<link rel = 'preload' as = 'font' type = 'font/ttf' href = 'https://fonts.gstatic.com/s/montserrat/v12/zhcz-_WihjSQC0oHJ9TCYC3USBnSvpkopQaUR-2r7iU.ttf' crossorigin> 20<link rel = 'preload' as = 'font' type = 'font/woff2' href = '//www.hameraypublishing.com/cdn/shop/t/3/assets/351CB9_0_0.woff2?v=20816177864108308341772694708' crossorigin> 21<link rel = 'dns-prefetch' href = 'https://hameray-images.s3-us-west-1.amazonaws.com'> 22<link rel = 'dns-prefetch' href = 'https://hameray-images.s3.us-west-1.amazonaws.com'> 23<link rel = 'dns-prefetch' href = 'https://www.googletagmanager.com'> 24<link rel = 'dns-prefetch' href = 'https://www.clarity.ms'> 25<link rel = 'dns-prefetch' href = 'https://connect.facebook.net'> 26<link rel = 'dns-prefetch' href = 'https://d2wy8f7a9ursnm.cloudfront.net'> 27<link rel = 'dns-prefetch' href = 'https://cdn.jsdelivr.net'> 28<link rel = 'canonical' href = 'https://www.hameraypublishing.com/'> 29 30 <link rel = 'shortcut icon' href = "//www.hameraypublishing.com/cdn/shop/files/brandmark_tiny_32x32.png?v=1613502610" type = 'image/png'> 31 32<title>Hameray Publishing | Books & Resources for Early Literacy</title> 33 34 <meta name = 'description' content = 'Hameray Publishing helps teachers foster a love of reading with Kâ5 literacy resources in English and Spanish.'> 35 36 37<meta property="og:site_name" content="Hameray Publishing"> 38<meta property="og:url" content="https://www.hameraypublishing.com/"> 39<meta property="og:title" content="Hameray Publishing | Books & Resources for Early Literacy"> 40<meta property="og:type" content="website"> 41<meta property="og:description" content="Hameray Publishing helps teachers foster a love of reading with Kâ5 literacy resources in English and Spanish."> 42 43 44<meta name="twitter:site" content="@hameray"> 45<meta name="twitter:card" content="summary_large_image"> 46<meta name="twitter:title" content="Hameray Publishing | Books & Resources for Early Literacy"> 47<meta name="twitter:description" content="Hameray Publishing helps teachers foster a love of reading with Kâ5 literacy resources in English and Spanish."> 48 49 50
51<script type="application/ld+json"> 52{ 53 "@context": "https://schema.org", 54 "@type": "Organization", 55 "@id": "https://www.hameraypublishing.com/#organization", 56 "name": "Hameray Publishing", 57 "legalName": "Hameray Publishing Group", 58 "url": "https:\/\/www.hameraypublishing.com\/", 59 "logo": "https://cdn.shopify.com/s/files/1/2137/3313/files/hameray-publishing-group-logo-text.jpg", 60 "foundingDate": "2008", 61 "slogan": "Empowering Young Readers by Empowering Educators", 62 "telephone": "+1-866-918-6173", 63 "email": "[email protected]", 64 "address": { 65 "@type": "PostalAddress", 66 "addressLocality": "Los Angeles", 67 "addressRegion": "CA", 68 "postalCode": "90019", 69 "addressCountry": "US" 70 }, 71 "contactPoint": { 72 "@type": "ContactPoint", 73 "contactType": "customer service", 74 "telephone": "+1-866-918-6173", 75 "email": "[email protected]", 76 "areaServed": "US", 77 "availableLanguage": ["English", "Spanish"] 78 }, 79 "description": "Hameray Publishing is a Los Angeles-based children's educational publisher founded in 2008. It publishes 2,000+ titles for K-5 classrooms - decodable books, fiction and nonfiction books, big books, and authentic Spanish and bilingual editions - trusted by 10,000+ schools across the United States, and is the U.S. classroom publisher of three beloved Joy Cowley series: the Joy Cowley Collection, Joy Cowley Early Birds, and Joy Cowley Classics.", 80 "knowsAbout": ["decodable books", "science of reading", "structured literacy", "phonics instruction", "early literacy", "reading fluency", "guided reading", "reading intervention", "bilingual Spanish literacy resources", "classroom libraries", "big books for shared reading"], 81 "sameAs": ["https:\/\/www.facebook.com\/hameray","https:\/\/twitter.com\/hameray","https:\/\/www.instagram.com\/hameraypublishing","https:\/\/pinterest.com\/hameray"] 82} 83</script>
vendor: 1 bytes, line 83
83
84<script type="application/ld+json"> 85{ 86 "@context": "https://schema.org", 87 "@type": "WebSite", 88 "@id": "https://www.hameraypublishing.com/#website", 89 "name": "Hameray Publishing", 90 "url": "https:\/\/www.hameraypublishing.com\/", 91 "publisher": { "@id": "https://www.hameraypublishing.com/#organization" }, 92 "potentialAction": { 93 "@type": "SearchAction", 94 "target": { "@type": "EntryPoint", "urlTemplate": "https://www.hameraypublishing.com/search?q={search_term_string}" }, 95 "query-input": "required name=search_term_string" 96 } 97} 98</script>
98 99 100 101 102 103 104 105 106 107 108
109<script src = 'https://use.fontawesome.com/b0682129a2.js' async></script>
109 110<link href="//www.hameraypublishing.com/cdn/shop/t/3/assets/theme.scss.css?v=72113002589952896941788296538" rel="stylesheet" type="text/css" media="all" /> 111 112 113 114 115
116<script> 117 118 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 119 120 window.theme = { 121 strings: { 122 addToCart: "Add to Cart", 123 soldOut: "Product currently unavailable", 124 unavailable: "Unavailable" 125 }, 126 moneyFormat: "${{amount}}" 127 }; 128 129</script>
129 130 131 132 133 134 135 136 137<!--[if (gt IE 9)|!(IE)]><!-->
137<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/vendor.js?v=139329940478967238121772694708" defer="defer"></script>
137<!--<![endif]--> 138<!--[if lt IE 9]>
138<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/vendor.js?v=139329940478967238121772694708"></script>
138<![endif]--> 139 140<!--[if (gt IE 9)|!(IE)]><!-->
140<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/theme.js?v=97305264938050973511787611083" defer="defer"></script>
140<!--<![endif]--> 141<!--[if lt IE 9]>
141<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/theme.js?v=97305264938050973511787611083"></script>
141<![endif]--> 142 143 144 145 146 147<!-- Wishlist King --> 148 149
149<script> 150(function() { 151 function updateBadge(count) { 152 function apply() { 153 var badges = document.querySelectorAll('.wishlist-count'); 154 for (var i = 0; i < badges.length; i++) { 155 if (count > 0) { 156 badges[i].textContent = count; 157 badges[i].style.display = ''; 158 } else { 159 badges[i].style.display = 'none'; 160 } 161 } 162 } 163 if (document.readyState === 'loading') { 164 document.addEventListener('DOMContentLoaded', apply); 165 } else { 166 apply(); 167 } 168 } 169 170 var origFetch = window.fetch; 171 window._wkLoadCount = 0; 172 173 window.fetch = function(url, opts) { 174 var urlStr = typeof url === 'string' ? url : (url && url.url ? url.url : ''); 175 var method = (opts && opts.method) ? opts.method.toUpperCase() : 'GET'; 176 177 // Only intercept Appmate wishlist-item calls 178 if (urlStr.indexOf('api.appmate.io') !== -1 && urlStr.indexOf('wishlist-item') !== -1) { 179 if (method === 'GET') { 180 // Count GET requests on page load (one per wishlist item) â no response parsing needed 181 window._wkLoadCount++; 182 clearTimeout(window._wkLoadTimer); 183 window._wkLoadTimer = setTimeout(function() { 184 localStorage.setItem('wk_badge_count', window._wkLoadCount); 185 updateBadge(window._wkLoadCount); 186 }, 300); 187 } else if (method === 'POST') { 188 var count = parseInt(localStorage.getItem('wk_badge_count') || '0') + 1; 189 localStorage.setItem('wk_badge_count', count); 190 updateBadge(count); 191 } else if (method === 'DELETE') { 192 var count = Math.max(0, parseInt(localStorage.getItem('wk_badge_count') || '0') - 1); 193 localStorage.setItem('wk_badge_count', count); 194 updateBadge(count); 195 } 196 } 197 198 return origFetch.apply(this, arguments); 199 }; 200 201 // Show stored count immediately on page load 202 var stored = parseInt(localStorage.getItem('wk_badge_count') || '0'); 203 if (stored > 0) { 204 updateBadge(stored); 205 } 206 207})(); 208</script>
208 209
210<script src="https://cdn.appmate.io/legacy-toolkit/1.2.44/appmate.js" type="text/javascript"></script>
210 211 212
213<script type="text/javascript"> 214;(function(){ 215 if (typeof Appmate === 'undefined') return; // In case lib didn't load. 216 217 Appmate.init({ 218 shop: { 219 domain: 'hameray-publishing.myshopify.com' 220 }, 221 session: { 222 customer: '' 223 }, 224 globals: { 225 settings: { 226 app_wk_icon: 'heart', 227 app_wk_share_position: 'top', 228 app_wk_products_per_row: 4 229 }, 230 customer: '', 231 customer_accounts_enabled: true, 232 }, 233 wishlist: { 234 loginRequired: false, 235 handle: "/pages/wishlist", 236 proxyHandle: "/a/wk", 237 share: { 238 handle: "/pages/shared-wishlist", 239 title: 'My Wishlist', 240 description: 'Check out some of my favorite things @ Hameray Publishing.', 241 imageTitle: 'Hameray Publishing', 242 hashTags: 'wishlist', 243 twitterUser: false // will be used with via 244 } 245 } 246 }); 247})(); 248</script>
248 249
250<script type="text/javascript"> 251;(function(){ 252 if (typeof Appmate === 'undefined') return; // In case lib didn't load. 253 254 Appmate.wk.on({ 255 'click [data-wk-add-product]': eventHandler(function(){ 256 var product = this.getAttribute('data-wk-add-product'); 257 var selected_variant = $(this).parents('.flex.space.wrap').find('select[name="id"]').val(); 258 Appmate.wk.addProduct(product, selected_variant); 259 }), 260 'click [data-wk-remove-product]': eventHandler(function(){ 261 var product = this.getAttribute('data-wk-remove-product'); 262 Appmate.wk.removeProduct(product); 263 }), 264 'click [data-wk-remove-item]': eventHandler(function(){ 265 var item = this.getAttribute('data-wk-remove-item'); 266 fadeOrNot($(this), function() { 267 Appmate.wk.removeItem(item); 268 }); 269 }), 270 'click [data-wk-clear-wishlist]': eventHandler(function(){ 271 var wishlist = this.getAttribute('data-wk-clear-wishlist'); 272 Appmate.wk.clear(wishlist); 273 localStorage.setItem('wk_badge_count', '0'); 274 var badges = document.querySelectorAll('.wishlist-count'); 275 for (var i = 0; i < badges.length; i++) { badges[i].style.display = 'none'; } 276 }), 277 'click [data-wk-share]': eventHandler(function(){ 278 var params = $(this).data(); 279 var shareLink = Appmate.wk.getShareLink(params); 280 281 switch (params.wkShareService) { 282 case 'link': 283 $('#wk-share-link-text').addClass('wk-visible').find('.wk-text').html(shareLink); 284 var copyButton = $('#wk-share-link-text .wk-clipboard'); 285 var copyText = copyButton.html(); 286 var clipboard = Appmate.wk.clipboard(copyButton[0]); 287 clipboard.on('success', function(e) { 288 copyButton.html('copied'); 289 setTimeout(function(){ 290 copyButton.html(copyText); 291 }, 2000); 292 }); 293 break; 294 case 'email': 295 window.location.href = shareLink; 296 break; 297 default: 298 window.open( 299 shareLink, 300 'wishlist_share', 301 'height=590, width=770, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no' 302 ); 303 } 304 }), 305 'click [data-wk-move-to-cart]': eventHandler(function(){ 306 var $elem = $(this); 307 $form = $elem.parents('form'); 308 $elem.prop("disabled", true); 309 310 var item = this.getAttribute('data-wk-move-to-cart'); 311 var formData = $form.serialize(); 312 var currentCart = parseInt($('.cart-count').first().text()); 313 var updatedCart = currentCart + parseInt(1); 314 $('.cart-count').each(function() { $(this).text(updatedCart); }); 315 316 fadeOrNot($elem, function(){ 317 Appmate.wk 318 .moveToCart(item, formData) 319 .then(function(){ 320 window.scrollTo(0, 0); 321 /* location.reload(); */ 322 $elem.prop("disabled", false); 323 }); 324 }); 325 }), 326 'render .wk-option-select': function(elem){ 327 appmateOptionSelect(elem); 328 }, 329 'login-required': function (intent) { 330 var redirect = { 331 path: window.location.pathname, 332 intent: intent 333 }; 334 window.location = '/account/login?wk-redirect=' + encodeURIComponent(JSON.stringify(redirect)); 335 }, 336 'render .swiper-container': function (elem) { 337 initSlider() 338 }, 339 'ready': function () { 340 $(document).ready(initSlider); 341 $(document).ready(fillContactForm); 342 343 var redirect = Appmate.wk.getQueryParam('wk-redirect'); 344 if (redirect) { 345 Appmate.wk.addLoginRedirect($('#customer_login'), JSON.parse(redirect)); 346 } 347 var intent = Appmate.wk.getQueryParam('wk-intent'); 348 if (intent) { 349 intent = JSON.parse(intent); 350 switch (intent.action) { 351 case 'addProduct': 352 Appmate.wk.addProduct(intent.product, intent.variant) 353 break; 354 default: 355 console.warn('Wishlist King: Intent not implemented', intent) 356 } 357 if (window.history && window.history.pushState) { 358 history.pushState(null, null, window.location.pathname); 359 } 360 } 361 } 362 }); 363 364 365 function initSlider () { 366 if (typeof Swiper !== 'undefined') { 367 var mySwiper = new Swiper ('.swiper-container', { 368 direction: 'horizontal', 369 loop: false, 370 pagination: '.swiper-pagination', 371 nextButton: '.swiper-button-next', 372 prevButton: '.swiper-button-prev', 373 spaceBetween: 20, 374 slidesPerView: 4, 375 breakpoints: { 376 380: { 377 slidesPerView: 1, 378 spaceBetween: 0, 379 }, 380 480: { 381 slidesPerView: 2, 382 spaceBetween: 20, 383 } 384 } 385 }) 386 } 387 } 388 389 function fillContactForm() { 390 if (document.getElementById('contact_form')) { 391 var message = Appmate.wk.getQueryParam('message'); 392 var bodyElement = document.querySelector("#contact_form textarea[name='contact[body]']"); 393 if (bodyElement && message) { 394 bodyElement.value = message; 395 } 396 } 397 } 398 399 function eventHandler (callback) { 400 return function (event) { 401 if (typeof callback === 'function') { 402 callback.call(this, event) 403 } 404 if (event) { 405 event.preventDefault(); 406 event.stopPropagation(); 407 } 408 } 409 } 410 411 function fadeOrNot($elem, callback){ 412 if ($elem.parents('.wk-fadeout').length) { 413 $elem.parents('.wk-fadeout').fadeOut(callback); 414 } else { 415 callback(); 416 } 417 } 418})(); 419 420</script>
420 421 422 423
424<script id="wishlist-icon-filled" data="wishlist" type="text/x-template" app="wishlist-king"> 425{% if settings.app_wk_icon == "heart" %} 426 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'> 427 <path d='M47.199 4c-6.727 0-12.516 5.472-15.198 11.188-2.684-5.715-8.474-11.188-15.201-11.188-9.274 0-16.8 7.527-16.8 16.802 0 18.865 19.031 23.812 32.001 42.464 12.26-18.536 31.999-24.2 31.999-42.464 0-9.274-7.527-16.802-16.801-16.802z' fill='#000'></path> 428 </svg> 429{% elsif settings.app_wk_icon == "star" %} 430 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='64' height='60.9' viewBox='0 0 64 64'> 431 <path d='M63.92,23.25a1.5,1.5,0,0,0-1.39-1H40.3L33.39,1.08A1.5,1.5,0,0,0,32,0h0a1.49,1.49,0,0,0-1.39,1L23.7,22.22H1.47a1.49,1.49,0,0,0-1.39,1A1.39,1.39,0,0,0,.6,24.85l18,13L11.65,59a1.39,1.39,0,0,0,.51,1.61,1.47,1.47,0,0,0,.88.3,1.29,1.29,0,0,0,.88-0.3l18-13.08L50,60.68a1.55,1.55,0,0,0,1.76,0,1.39,1.39,0,0,0,.51-1.61l-6.9-21.14,18-13A1.45,1.45,0,0,0,63.92,23.25Z' fill='#be8508'></path> 432 </svg> 433{% endif %} 434</script>
434 435
436<script id="wishlist-icon-empty" data="wishlist" type="text/x-template" app="wishlist-king"> 437{% if settings.app_wk_icon == "heart" %} 438 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='64px' height='60.833px' viewBox='0 0 64 60.833'> 439 <path stroke='#000' stroke-width='5' stroke-miterlimit='10' fill-opacity='0' d='M45.684,2.654c-6.057,0-11.27,4.927-13.684,10.073 c-2.417-5.145-7.63-10.073-13.687-10.073c-8.349,0-15.125,6.776-15.125,15.127c0,16.983,17.134,21.438,28.812,38.231 c11.038-16.688,28.811-21.787,28.811-38.231C60.811,9.431,54.033,2.654,45.684,2.654z'/> 440 </svg> 441{% elsif settings.app_wk_icon == "star" %} 442 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='64' height='60.9' viewBox='0 0 64 64'> 443 <path d='M63.92,23.25a1.5,1.5,0,0,0-1.39-1H40.3L33.39,1.08A1.5,1.5,0,0,0,32,0h0a1.49,1.49,0,0,0-1.39,1L23.7,22.22H1.47a1.49,1.49,0,0,0-1.39,1A1.39,1.39,0,0,0,.6,24.85l18,13L11.65,59a1.39,1.39,0,0,0,.51,1.61,1.47,1.47,0,0,0,.88.3,1.29,1.29,0,0,0,.88-0.3l18-13.08L50,60.68a1.55,1.55,0,0,0,1.76,0,1.39,1.39,0,0,0,.51-1.61l-6.9-21.14,18-13A1.45,1.45,0,0,0,63.92,23.25ZM42.75,36.18a1.39,1.39,0,0,0-.51,1.61l5.81,18L32.85,44.69a1.41,1.41,0,0,0-1.67,0L15.92,55.74l5.81-18a1.39,1.39,0,0,0-.51-1.61L6,25.12H24.7a1.49,1.49,0,0,0,1.39-1L32,6.17l5.81,18a1.5,1.5,0,0,0,1.39,1H58Z' fill='#be8508'></path> 444 </svg> 445{% endif %} 446</script>
446 447
448<script id="wishlist-icon-remove" data="wishlist" type="text/x-template" app="wishlist-king"> 449 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'> 450 <g> 451 <path fill='#000000' stroke-width='0.25pt' d='m100,60l-40,40l170,170l40,-40l-170,-170z'/> 452 <path fill='#000000' stroke-width='0.25pt' d='m60,230l170,-170l40,40l-170,170l-40,-40z'/> 453 </g> 454 </svg> 455</script>
455 456 457<style> 458 @media screen and (max-width: 850px) { 459 .wishlist-counter { 460 display: none; 461 } 462 } 463</style> 464
465<script id="wishlist-link" data="wishlist" type="text/x-template" app="wishlist-king"> 466{% if wishlist.item_count %} 467 {% assign link_icon = 'wishlist-icon-filled' %} 468{% else %} 469 {% assign link_icon = 'wishlist-icon-empty' %} 470{% endif %} 471<a href="{{ wishlist.url }}" class="wk-link wk-{{ wishlist.state }}" title="View Wishlist"><div class="wk-icon">{% include link_icon %}</div><span class="wk-label">Wishlist</span><br>{% if wishlist.item_count != 0 %}<span class = 'wishlist-counter' style = 'position: absolute; top: -21px; font-size: 1.2rem; font-weight: 200; width: 100%; text-align: center;'>{{ wishlist.item_count }}</span>{% endif %}</a> 472</script>
472 473
474<script id="wishlist-link-li" data="wishlist" type="text/x-template" app="wishlist-king"> 475<li class="wishlist-link-li wk-{{ wishlist.state }}"> 476 {% include 'wishlist-link' %} 477</li> 478</script>
478 479
480<script id="wishlist-button-product" data="product" type="text/x-template" app="wishlist-king"> 481{% if product.in_wishlist %} 482 {% assign btn_text = 'In Wishlist' %} 483 {% assign btn_title = 'Remove from Wishlist' %} 484 {% assign btn_action = 'wk-remove-product' %} 485 {% assign btn_icon = 'wishlist-icon-filled' %} 486{% else %} 487 {% assign btn_text = 'Add to Wishlist' %} 488 {% assign btn_title = 'Add to Wishlist' %} 489 {% assign btn_action = 'wk-add-product' %} 490 {% assign btn_icon = 'wishlist-icon-empty' %} 491{% endif %} 492 493<button type="button" class="wk-button-product {{ btn_action }}" title="{{ btn_title }}" data-{{ btn_action }}="{{ product.id }}"> 494 <div class="wk-icon"> 495 {% include btn_icon %} 496 </div> 497 <span class="wk-label">{{ btn_text }}</span> 498</button> 499</script>
499 500
501<script id="wishlist-button-collection" data="product" type="text/x-template" app="wishlist-king"> 502{% if product.in_wishlist %} 503 {% assign btn_text = 'In Wishlist' %} 504 {% assign btn_title = 'Remove from Wishlist' %} 505 {% assign btn_action = 'wk-remove-product' %} 506 {% assign btn_icon = 'wishlist-icon-filled' %} 507{% else %} 508 {% assign btn_text = 'Add to Wishlist' %} 509 {% assign btn_title = 'Add to Wishlist' %} 510 {% assign btn_action = 'wk-add-product' %} 511 {% assign btn_icon = 'wishlist-icon-empty' %} 512{% endif %} 513 514<button type="button" class="wk-button-collection {{ btn_action }}" title="{{ btn_title }}" data-{{ btn_action }}="{{ product.id }}"> 515 <div class="wk-icon"> 516 {% include btn_icon %} 517 </div> 518 <span class="wk-label">{{ btn_text }}</span> 519</button> 520</script>
520 521
522<script id="wishlist-button-wishlist-page" data="product" type="text/x-template" app="wishlist-king"> 523{% if wishlist.read_only %} 524 {% assign item_id = product.id %} 525{% else %} 526 {% assign item_id = product.wishlist_item_id %} 527{% endif %} 528 529{% assign add_class = '' %} 530{% if product.in_wishlist and wishlist.read_only == true %} 531 {% assign btn_text = 'In Wishlist' %} 532 {% assign btn_title = 'Remove from Wishlist' %} 533 {% assign btn_action = 'wk-remove-product' %} 534 {% assign btn_icon = 'wishlist-icon-filled' %} 535{% elsif product.in_wishlist and wishlist.read_only == false %} 536 {% assign btn_text = 'In Wishlist' %} 537 {% assign btn_title = 'Remove from Wishlist' %} 538 {% assign btn_action = 'wk-remove-item' %} 539 {% assign btn_icon = 'wishlist-icon-remove' %} 540 {% assign add_class = 'wk-with-hover' %} 541{% else %} 542 {% assign btn_text = 'Add to Wishlist' %} 543 {% assign btn_title = 'Add to Wishlist' %} 544 {% assign btn_action = 'wk-add-product' %} 545 {% assign btn_icon = 'wishlist-icon-empty' %} 546 {% assign add_class = 'wk-with-hover' %} 547{% endif %} 548 549<button type="button" class="wk-button-wishlist-page {{ btn_action }} {{ add_class }}" title="{{ btn_title }}" data-{{ btn_action }}="{{ item_id }}"> 550 <div class="wk-icon"> 551 {% include btn_icon %} 552 </div> 553 <span class="wk-label">{{ btn_text }}</span> 554</button> 555</script>
555 556
557<script id="wishlist-button-wishlist-clear" data="wishlist" type="text/x-template" app="wishlist-king"> 558{% assign btn_text = 'Clear Wishlist' %} 559{% assign btn_title = 'Clear Wishlist' %} 560{% assign btn_class = 'wk-button-wishlist-clear' %} 561 562<button type="button" class="{{ btn_class }}" title="{{ btn_title }}" data-wk-clear-wishlist="{{ wishlist.permaId }}"> 563 <span class="wk-label">{{ btn_text }}</span> 564</button> 565</script>
565 566
567<script id="wishlist-shared" data="shared_wishlist" type="text/x-template" app="wishlist-king"> 568{% assign wishlist = shared_wishlist %} 569{% include 'wishlist-collection' with wishlist %} 570</script>
570 571
572<script id="wishlist-collection" data="wishlist" type="text/x-template" app="wishlist-king"> 573<div class='wishlist-collection'> 574{% if wishlist.item_count == 0 %} 575 {% include 'wishlist-collection-empty' %} 576{% else %} 577 {% if customer_accounts_enabled and customer == false and wishlist.read_only == false %} 578 {% include 'wishlist-collection-login-note' %} 579 {% endif %} 580 581 {% if settings.app_wk_share_position == "top" %} 582 {% unless wishlist.read_only %} 583 {% include 'wishlist-collection-share' %} 584 {% endunless %} 585 {% endif %} 586 587 {% include 'wishlist-collection-loop' %} 588 589 {% if settings.app_wk_share_position == "bottom" %} 590 {% unless wishlist.read_only %} 591 {% include 'wishlist-collection-share' %} 592 {% endunless %} 593 {% endif %} 594 595 {% unless wishlist.read_only %} 596 {% include 'wishlist-button-wishlist-clear' %} 597 {% endunless %} 598{% endif %} 599</div> 600</script>
600 601
602<script id="wishlist-row" data="wishlist" type="text/x-template" app="wishlist-king"> 603<div class='wk-wishlist-row'> 604 {% if wishlist.item_count != 0 %} 605 <h2 class="wk-wishlist-row-title">Add more from Wishlist</h2> 606 <div class="swiper-container"> 607 <!-- Additional required wrapper --> 608 <div class="swiper-wrapper"> 609 <!-- Slides --> 610 {% for product in wishlist.products %} 611 {% assign hide_default_title = false %} 612 {% if product.variants.length == 1 and product.variants[0].title contains 'Default' %} 613 {% assign hide_default_title = true %} 614 {% endif %} 615 <div 616 id="wk-item-{{ product.wishlist_item_id }}" 617 class="swiper-slide wk-item wk-fadeout" 618 data-wk-item="{{ product.wishlist_item_id }}" 619 > 620 {% include 'wishlist-collection-product-image' with product %} 621 <div> 622 {% include 'wishlist-collection-product-title' with product %} 623 {% include 'wishlist-collection-product-price' %} 624 {% include 'wishlist-collection-product-form' with product %} 625 </div> 626 </div> 627 {% endfor %} 628 </div> 629 <!-- If we need pagination --> 630 <!-- <div class="swiper-pagination"></div> --> 631 </div> 632 <div class="swiper-button-prev"> 633 <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"> 634 <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/> 635 <path d="M0 0h24v24H0z" fill="none"/> 636 </svg> 637 </div> 638 <div class="swiper-button-next"> 639 <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"> 640 <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/> 641 <path d="M0 0h24v24H0z" fill="none"/> 642 </svg> 643 </div> 644 {% endif %} 645</div> 646</script>
646 647
648<script id="wishlist-collection-empty" data="wishlist" type="text/x-template" app="wishlist-king"> 649<div class="wk-row"> 650 <div class="wk-span12"> 651 <h3 class="wk-wishlist-empty-note">Your wishlist is empty!</h3> 652 </div> 653</div> 654</script>
654 655
656<script id="wishlist-collection-login-note" data="wishlist" type="text/x-template" app="wishlist-king"> 657<div class="wk-row"> 658 <p class="wk-span12 wk-login-note"> 659 To permanently save your wishlist please <a href="/account/login">login</a> or <a href="/account/register">sign up</a>. 660 </p> 661</div> 662</script>
662 663
664<script id="wishlist-collection-share" data="wishlist" type="text/x-template" app="wishlist-king"> 665 <h3 id="wk-share-head">Share Wishlist</h3> 666 <ul id="wk-share-list"> 667 <li>{% include 'wishlist-share-button-fb' %}</li> 668 <li>{% include 'wishlist-share-button-pinterest' %}</li> 669 <li>{% include 'wishlist-share-button-twitter' %}</li> 670 <li>{% include 'wishlist-share-button-email' %}</li> 671 <li>{% include 'wishlist-share-button-link' %}</li> 672 {% comment %} 673 <li>{% include 'wishlist-share-button-contact' %}</li> 674 {% endcomment %} 675 <li id="wk-share-whatsapp">{% include 'wishlist-share-button-whatsapp' %}</li> 676 </ul> 677 <div id="wk-share-link-text"><span class="wk-text"></span><button class="wk-clipboard" data-clipboard-target="#wk-share-link-text .wk-text">copy link</button></div> 678</script>
678 679
680<script id="wishlist-collection-loop" data="wishlist" type="text/x-template" app="wishlist-king"> 681<div class="wk-row flex wrap"> 682 {% assign item_count = 0 %} 683 {% for product in wishlist.products %} 684 {% assign item_count = item_count | plus: 1 %} 685 {% unless limit and item_count > limit %} 686 {% assign hide_default_title = false %} 687 {% if product.variants.length == 1 and product.variants[0].title contains 'Default' %} 688 {% assign hide_default_title = true %} 689 {% endif %} 690 691 {% assign items_per_row = settings.app_wk_products_per_row %} 692 {% assign wk_item_width = 100 | divided_by: items_per_row %} 693 694 <div id="wk-item-{{ product.wishlist_item_id }}" class="wk-item {{ wk_item_class }} {% unless wishlist.read_only %}wk-fadeout{% endunless %}" data-wk-item="{{ product.wishlist_item_id }}"> 695 696 {% include 'wishlist-collection-product-image' with product %} 697 {% include 'wishlist-button-wishlist-page' with product %} 698 <div> 699 {% include 'wishlist-collection-product-title' with product %} 700 {% include 'wishlist-collection-product-price' %} 701 {% include 'wishlist-collection-product-form' with product %} 702 </div> 703 </div> 704 {% endunless %} 705 {% endfor %} 706</div> 707</script>
707 708
709<script id="wishlist-collection-product-image" data="wishlist" type="text/x-template" app="wishlist-king"> 710<div class="wk-image"> 711 <a href="{{ product | variant_url }}" class="wk-variant-link wk-content" title="View product"> 712 <img class="wk-variant-image" 713 src="{{ product | variant_img_url: 'large' }}" 714 alt="{{ product.title }}" /> 715 </a> 716</div> 717</script>
717 718
719<script id="wishlist-collection-product-title" data="wishlist" type="text/x-template" app="wishlist-king"> 720<div class="wk-product-title"> 721 <a href="{{ product | variant_url }}" class="wk-variant-link" title="View product">{{ product.title }}</a> 722</div> 723</script>
723 724
725<script id="wishlist-collection-product-price" data="wishlist" type="text/x-template" app="wishlist-king"> 726{% assign variant = product.selected_or_first_available_variant %} 727<div class="wk-purchase"> 728 <span class="wk-price wk-price-preview"> 729 {% if variant.price < variant.compare_at_price %} 730 <span class="saleprice">{{ variant.price | money }}</span> <del>{{ variant.compare_at_price | money }}</del> 731 {% else %} 732 {{ variant.price | money }} 733 {% endif %} 734 </span> 735</div> 736</script>
736 737
738<script id="wishlist-collection-product-form" data="wishlist" type="text/x-template" app="wishlist-king"> 739<form id="wk-add-item-form-{{ product.wishlist_item_id }}" action="/cart/add" method="post" class="wk-add-item-form"> 740 741 <!-- Begin product options --> 742 <div class="wk-product-options {% if hide_default_title %}wk-no-options{% endif %}"> 743 744 <div class="wk-select" {% if hide_default_title %} style="display:none"{% endif %}> 745 <select id="wk-option-select-{{ product.wishlist_item_id }}" class="wk-option-select" name="id"> 746 747 {% for variant in product.variants %} 748 <option value="{{ variant.id }}" {% if variant == product.selected_or_first_available_variant %}selected="selected"{% endif %}> 749 {{ variant.title }} - {{ variant.price | money }} 750 </option> 751 {% endfor %} 752 753 </select> 754 </div> 755 756 {% comment %} 757 {% if settings.display_quantity_dropdown and product.available %} 758 <div class="wk-selector-wrapper"> 759 <label>Quantity</label> 760 <input class="wk-quantity" type="number" name="quantity" value="1" class="wk-item-quantity" /> 761 </div> 762 {% endif %} 763 {% endcomment %} 764 765 <div class="wk-purchase-section{% if product.variants.length > 1 %} wk-multiple{% endif %}"> 766 767 {% assign cart_action = 'wk-move-to-cart' %} 768 {% if wishlist.read_only %} 769 {% assign cart_action = 'wk-add-to-cart' %} 770 {% endif %} 771 <input type="submit" class="wk-add-to-cart" data-{{ cart_action }}="{{ product.wishlist_item_id }}" name="add" value="Add to Cart" /> 772 773 {% comment %} {% unless product.available %} 774 <input type="submit" class="wk-add-to-cart disabled" disabled="disabled" value="Sold Out" /> 775 {% else %} 776 {% assign cart_action = 'wk-move-to-cart' %} 777 {% if wishlist.read_only %} 778 {% assign cart_action = 'wk-add-to-cart' %} 779 {% endif %} 780 <input type="submit" class="wk-add-to-cart" data-{{ cart_action }}="{{ product.wishlist_item_id }}" name="add" value="Add to Cart" /> 781 {% endunless %} {% endcomment %} 782 783 </div> 784 </div> 785 <!-- End product options --> 786</form> 787</script>
787 788
789<script id="wishlist-share-button-fb" data="wishlist" type="text/x-template" app="wishlist-king"> 790{% unless wishlist.empty %} 791<a href class="wk-button-share resp-sharing-button__link" title="Share on Facebook" data-wk-share-service="facebook" data-wk-share="{{ wishlist.permaId }}" data-wk-share-image="{{ wishlist.products[0] | variant_img_url: '1200x630' }}"> 792 <div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--large"> 793 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 794 <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> 795 <g> 796 <path d="M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"/> 797 </g> 798 </svg> 799 </div> 800 <span>Facebook</span> 801 </div> 802</a> 803{% endunless %} 804</script>
804 805
806<script id="wishlist-share-button-twitter" data="wishlist" type="text/x-template" app="wishlist-king"> 807{% unless wishlist.empty %} 808<a href class="wk-button-share resp-sharing-button__link" title="Share on Twitter" data-wk-share-service="twitter" data-wk-share="{{ wishlist.permaId }}"> 809 <div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--large"> 810 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 811 <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> 812 <g> 813 <path d="M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"/> 814 </g> 815 </svg> 816 </div> 817 <span>Twitter</span> 818 </div> 819</a> 820{% endunless %} 821</script>
821 822
823<script id="wishlist-share-button-pinterest" data="wishlist" type="text/x-template" app="wishlist-king"> 824{% unless wishlist.empty %} 825<a href class="wk-button-share resp-sharing-button__link" title="Share on Pinterest" data-wk-share-service="pinterest" data-wk-share="{{ wishlist.permaId }}" data-wk-share-image="{{ wishlist.products[0] | variant_img_url: '1200x630' }}"> 826 <div class="resp-sharing-button resp-sharing-button--pinterest resp-sharing-button--large"> 827 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 828 <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> 829 <path d="M12.137,0.5C5.86,0.5,2.695,5,2.695,8.752c0,2.272,0.8 ,4.295,2.705,5.047c0.303,0.124,0.574,0.004,0.661-0.33 c0.062-0.231,0.206-0.816,0.271-1.061c0.088-0.331,0.055-0.446-0.19-0.736c-0.532-0.626-0.872-1.439-0.872-2.59 c0-3.339,2.498-6.328,6.505-6.328c3.548,0,5.497,2.168,5.497,5.063c0,3.809-1.687,7.024-4.189,7.024 c-1.382,0-2.416-1.142-2.085-2.545c0.397-1.675,1.167-3.479,1.167-4.688c0-1.081-0.58-1.983-1.782-1.983 c-1.413,0-2.548,1.461-2.548,3.42c0,1.247,0.422,2.09,0.422,2.09s-1.445,6.126-1.699,7.199c-0.505,2.137-0.076,4.756-0.04,5.02 c0.021,0.157,0.224,0.195,0.314,0.078c0.13-0.171,1.813-2.25,2.385-4.325c0.162-0.589,0.929-3.632,0.929-3.632 c0.459,0.876,1.801,1.646,3.228,1.646c4.247,0,7.128-3.871,7.128-9.053C20.5,4.15,17.182,0.5,12.137,0.5z"/> 830 </svg> 831 </div> 832 <span>Pinterest</span> 833 </div> 834</a> 835{% endunless %} 836</script>
836 837
838<script id="wishlist-share-button-whatsapp" data="wishlist" type="text/x-template" app="wishlist-king"> 839{% unless wishlist.empty %} 840<a href class="wk-button-share resp-sharing-button__link" title="Share via WhatsApp" data-wk-share-service="whatsapp" data-wk-share="{{ wishlist.permaId }}"> 841 <div class="resp-sharing-button resp-sharing-button--whatsapp resp-sharing-button--large"> 842 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 843 <svg xmlns="https://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> 844 <path stroke="none" d="M20.1,3.9C17.9,1.7,15,0.5,12,0.5C5.8,0.5,0.7,5.6,0.7,11.9c0,2,0.5,3.9,1.5,5.6l-1.6,5.9l6-1.6c1.6,0.9,3.5,1.3,5.4,1.3l0,0l0,0c6.3,0,11.4-5.1,11.4-11.4C23.3,8.9,22.2,6,20.1,3.9z M12,21.4L12,21.4c-1.7,0-3.3-0.5-4.8-1.3l-0.4-0.2l-3.5,1l1-3.4L4,17c-1-1.5-1.4-3.2-1.4-5.1c0-5.2,4.2-9.4,9.4-9.4c2.5,0,4.9,1,6.7,2.8c1.8,1.8,2.8,4.2,2.8,6.7C21.4,17.2,17.2,21.4,12,21.4z M17.1,14.3c-0.3-0.1-1.7-0.9-1.9-1c-0.3-0.1-0.5-0.1-0.7,0.1c-0.2,0.3-0.8,1-0.9,1.1c-0.2,0.2-0.3,0.2-0.6,0.1c-0.3-0.1-1.2-0.5-2.3-1.4c-0.9-0.8-1.4-1.7-1.6-2c-0.2-0.3,0-0.5,0.1-0.6s0.3-0.3,0.4-0.5c0.2-0.1,0.3-0.3,0.4-0.5c0.1-0.2,0-0.4,0-0.5c0-0.1-0.7-1.5-1-2.1C8.9,6.6,8.6,6.7,8.5,6.7c-0.2,0-0.4,0-0.6,0S7.5,6.8,7.2,7c-0.3,0.3-1,1-1,2.4s1,2.8,1.1,3c0.1,0.2,2,3.1,4.9,4.3c0.7,0.3,1.2,0.5,1.6,0.6c0.7,0.2,1.3,0.2,1.8,0.1c0.6-0.1,1.7-0.7,1.9-1.3c0.2-0.7,0.2-1.2,0.2-1.3C17.6,14.5,17.4,14.4,17.1,14.3z"/> 845 </svg> 846 </div> 847 <span>WhatsApp</span> 848 </div> 849</a> 850{% endunless %} 851</script>
851 852
853<script id="wishlist-share-button-email" data="wishlist" type="text/x-template" app="wishlist-king"> 854{% unless wishlist.empty %} 855<a href class="wk-button-share resp-sharing-button__link" title="Share via Email" data-wk-share-service="email" data-wk-share="{{ wishlist.permaId }}"> 856 <div class="resp-sharing-button resp-sharing-button--email resp-sharing-button--large"> 857 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 858 <svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"> 859 <path d="M22,4H2C0.897,4,0,4.897,0,6v12c0,1.103,0.897,2,2,2h20c1.103,0,2-0.897,2-2V6C24,4.897,23.103,4,22,4z M7.248,14.434 l-3.5,2C3.67,16.479,3.584,16.5,3.5,16.5c-0.174,0-0.342-0.09-0.435-0.252c-0.137-0.239-0.054-0.545,0.186-0.682l3.5-2 c0.24-0.137,0.545-0.054,0.682,0.186C7.571,13.992,7.488,14.297,7.248,14.434z M12,14.5c-0.094,0-0.189-0.026-0.271-0.08l-8.5-5.5 C2.997,8.77,2.93,8.46,3.081,8.229c0.15-0.23,0.459-0.298,0.691-0.147L12,13.405l8.229-5.324c0.232-0.15,0.542-0.084,0.691,0.147 c0.15,0.232,0.083,0.542-0.148,0.691l-8.5,5.5C12.189,14.474,12.095,14.5,12,14.5z M20.934,16.248 C20.842,16.41,20.673,16.5,20.5,16.5c-0.084,0-0.169-0.021-0.248-0.065l-3.5-2c-0.24-0.137-0.323-0.442-0.186-0.682 s0.443-0.322,0.682-0.186l3.5,2C20.988,15.703,21.071,16.009,20.934,16.248z"/> 860 </svg> 861 </div> 862 <span>Email</span> 863 </div> 864</a> 865{% endunless %} 866</script>
866 867
868<script id="wishlist-share-button-link" data="wishlist" type="text/x-template" app="wishlist-king"> 869{% unless wishlist.empty %} 870<a href class="wk-button-share resp-sharing-button__link" title="Share via link" data-wk-share-service="link" data-wk-share="{{ wishlist.permaId }}"> 871 <div class="resp-sharing-button resp-sharing-button--link resp-sharing-button--large"> 872 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 873 <svg version='1.1' xmlns='https://www.w3.org/2000/svg' width='512' height='512' viewBox='0 0 512 512'> 874 <path d='M459.654,233.373l-90.531,90.5c-49.969,50-131.031,50-181,0c-7.875-7.844-14.031-16.688-19.438-25.813 875 l42.063-42.063c2-2.016,4.469-3.172,6.828-4.531c2.906,9.938,7.984,19.344,15.797,27.156c24.953,24.969,65.563,24.938,90.5,0 876 l90.5-90.5c24.969-24.969,24.969-65.563,0-90.516c-24.938-24.953-65.531-24.953-90.5,0l-32.188,32.219 877 c-26.109-10.172-54.25-12.906-81.641-8.891l68.578-68.578c50-49.984,131.031-49.984,181.031,0 878 C509.623,102.342,509.623,183.389,459.654,233.373z M220.326,382.186l-32.203,32.219c-24.953,24.938-65.563,24.938-90.516,0 879 c-24.953-24.969-24.953-65.563,0-90.531l90.516-90.5c24.969-24.969,65.547-24.969,90.5,0c7.797,7.797,12.875,17.203,15.813,27.125 880 c2.375-1.375,4.813-2.5,6.813-4.5l42.063-42.047c-5.375-9.156-11.563-17.969-19.438-25.828c-49.969-49.984-131.031-49.984-181.016,0 881 l-90.5,90.5c-49.984,50-49.984,131.031,0,181.031c49.984,49.969,131.031,49.969,181.016,0l68.594-68.594 882 C274.561,395.092,246.42,392.342,220.326,382.186z'/> 883 </svg> 884 </div> 885 <span>E-Mail</span> 886 </div> 887</a> 888{% endunless %} 889</script>
889 890
891<script id="wishlist-share-button-contact" data="wishlist" type="text/x-template" app="wishlist-king"> 892{% unless wishlist.empty %} 893<a href class="wk-button-share resp-sharing-button__link" title="Send to customer service" data-wk-share-service="contact" data-wk-share="{{ wishlist.permaId }}"> 894 <div class="resp-sharing-button resp-sharing-button--link resp-sharing-button--large"> 895 <div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid"> 896 <svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"> 897 <path d="M0 0h24v24H0z" fill="none"/> 898 <path d="M19 2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 16h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 11.9 13 12.5 13 14h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/> 899 </svg> 900 </div> 901 <span>E-Mail</span> 902 </div> 903</a> 904{% endunless %} 905</script>
905 906 907 908 909
910<script> 911function appmateSelectCallback(variant, selector) { 912 var shop = Appmate.wk.globals.shop; 913 var product = Appmate.wk.getProduct(variant.product_id); 914 var itemId = $(selector.variantIdField).parents('[data-wk-item]').attr('data-wk-item'); 915 var container = $('#wk-item-' + itemId); 916 917 918 919 920 var imageUrl = ''; 921 922 if (variant && variant.image) { 923 imageUrl = Appmate.wk.filters.img_url(variant, 'large'); 924 } else if (product) { 925 imageUrl = Appmate.wk.filters.img_url(product, 'large'); 926 } 927 928 if (imageUrl) { 929 container.find('.wk-variant-image').attr('src', imageUrl); 930 } 931 var formatMoney = Appmate.wk.filters.money; 932 if (!product.hidden && variant && (variant.available ||Â variant.inventory_policy === 'continue')) { 933 container.find('.wk-add-to-cart').removeAttr('disabled').removeClass('disabled').attr('value', 'Add to Cart'); 934 if(variant.price < variant.compare_at_price){ 935 container.find('.wk-price-preview').html(formatMoney(variant.price) + " <del>" + formatMoney(variant.compare_at_price) + "</del>"); 936 } else { 937 container.find('.wk-price-preview').html(formatMoney(variant.price)); 938 } 939 } 940 // else { 941 // var message = variant && !product.hidden ? "Sold Out" : "Unavailable"; 942 // container.find('.wk-add-to-cart').addClass('disabled').attr('disabled', 'disabled').attr('value', message); 943 // container.find('.wk-price-preview').text(message); 944 // } 945 946}; 947 948function appmateOptionSelect(el){ 949 if (!Shopify ||Â !Shopify.OptionSelectors) { 950 throw new Error('Missing option_selection.js! Please check templates/page.wishlist.liquid'); 951 } 952 953 var id = el.getAttribute('id'); 954 var itemId = $(el).parents('[data-wk-item]').attr('data-wk-item'); 955 var container = $('#wk-item-' + itemId); 956 957 Appmate.wk.getItem(itemId).then(function(product){ 958 var selector = new Shopify.OptionSelectors(id, { 959 product: product, 960 onVariantSelected: appmateSelectCallback, 961 enableHistoryState: false 962 }); 963 964 if (product.selected_variant_id) { 965 selector.selectVariant(product.selected_variant_id); 966 } 967 968 // Add label if only one product option and it isn't 'Title'. 969 if (product.options.length == 1 && product.options[0] != 'Title') { 970 $(container) 971 .find('.selector-wrapper:eq(0)') 972 .prepend('<label>' + product.options[0] + '</label>'); 973 } 974 }); 975} 976 977</script>
977 978 979<link href="//www.hameraypublishing.com/cdn/shop/t/3/assets/appmate-wishlist-king.scss.css?v=155711572738234808331544641592" rel="stylesheet" type="text/css" media="all" /> 980 981 982 983 984 985 986 987 988 989
990<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
990<meta name="facebook-domain-verification" content="jokl2m4eon4s6vdb40pfus4cxvwube"> 991<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/21373313/digital_wallets/dialog"> 992<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
992<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=786759716"></script>
992 993<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
994<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=786759716&shop_id=21373313" crossorigin="anonymous"></script>
vendor: 1 bytes, line 994
994
995<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":21373313,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/21373313","merchantName":"Hameray Publishing","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Hameray Publishing","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 995
995
996<script id="shopify-features" type="application/json">{"accessToken":"e9414dbd5c39516ce6a980e7c8116782","betas":["rich-media-storefront-analytics"],"domain":"www.hameraypublishing.com","predictiveSearch":true,"shopId":21373313,"locale":"en"}</script>
vendor: 1 bytes, line 996
996
997<script>var Shopify = Shopify || {}; 998Shopify.shop = "hameray-publishing.myshopify.com"; 999Shopify.locale = "en"; 1000Shopify.currency = {"active":"USD","rate":"1.0"}; 1001Shopify.country = "US"; 1002Shopify.theme = {"name":"Aeolidia","id":181129362,"schema_name":"Slate","schema_version":"0.11.0","theme_store_id":null,"role":"main"}; 1003Shopify.theme.handle = "null"; 1004Shopify.theme.style = {"id":null,"handle":null}; 1005Shopify.cdnHost = "www.hameraypublishing.com/cdn"; 1006Shopify.routes = Shopify.routes || {}; 1007Shopify.routes.root = "/"; 1008Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 1009Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 1010Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 1011Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1011
1011
1012<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1012
1012
1013<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 1013
1013
1014<script> 1015 window.ShopifyPay = window.ShopifyPay || {}; 1016 window.ShopifyPay.apiHost = "shop.app\/pay"; 1017 window.ShopifyPay.redirectState = null; 1018</script>
vendor: 1 bytes, line 1018
1018
1019<script> 1020 window.Shopify = window.Shopify || {}; 1021 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 1022 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 1023 window.Shopify.SignInWithShop.eligible = true; 1024</script>
vendor: 1 bytes, line 1024
1024
1025<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 1025
1025
1026<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 1026
1026
1027<script type="module"> 1028 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 1029 1030 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 1031 1032</script>
vendor: 1 bytes, line 1032
1032
1033<script> 1034 window.Shopify = window.Shopify || {}; 1035 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 1036 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 1037</script>
vendor: 1 bytes, line 1037
1037
1038<script id="__st">var __st={"a":21373313,"offset":-25200,"reqid":"c5bfc88a-8a2a-4c01-a0d9-0800f5eaac74-1791071019","pageurl":"www.hameraypublishing.com\/","u":"0e7e7cb08fb8","p":"home"};</script>
vendor: 1 bytes, line 1038
1038
1039<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1039
1039
1040<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!1)}();</script>
vendor: 1 bytes, line 1040
1040
1041<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.hameraypublishing.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1041
1041
1042<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.hameraypublishing.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
1042<script crossorigin="anonymous" defer="defer" src="//www.hameraypublishing.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1042
1042
1043<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 1043
1043
1044<script> 1045 window.Shopify = window.Shopify || {}; 1046 window.Shopify.MCP = window.Shopify.MCP || {}; 1047 window.Shopify.MCP.enabled = true; 1048 window.Shopify.MCP.shop = "hameray-publishing.myshopify.com"; 1049 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.hameraypublishing.com\/api\/mcp"; 1050 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 1051</script>
vendor: 1 bytes, line 1051
1051
1052<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.hameraypublishing.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1053</script>
vendor: 1 bytes, line 1053
1053
1054<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.hameraypublishing.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1055</script>
vendor: 1 bytes, line 1055
1055
1056<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1057 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 1058</script>
vendor: 1 bytes, line 1058
1058
1059<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 1060</script>
1060 1061<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.hameraypublishing.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1062<style id="shopify-accelerated-checkout-cart"> 1063 #shopify-buyer-consent { 1064 margin-top: 1em; 1065 display: inline-block; 1066 width: 100%; 1067} 1068 1069#shopify-buyer-consent.hidden { 1070 display: none; 1071} 1072 1073#shopify-subscription-policy-button { 1074 background: none; 1075 border: none; 1076 padding: 0; 1077 text-decoration: underline; 1078 font-size: inherit; 1079 cursor: pointer; 1080} 1081 1082#shopify-subscription-policy-button::before { 1083 box-shadow: none; 1084} 1085 1086 </style> 1087
1088<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1088 1089 1090 1091 1092 1093 1094<!-- Bugsnag -->
1095<script src="//d2wy8f7a9ursnm.cloudfront.net/v8/bugsnag.min.js" defer></script>
vendor: 1 bytes, line 1095
1095
1096<script type="module"> 1097 import BugsnagPerformance from '//d2wy8f7a9ursnm.cloudfront.net/v1/bugsnag-performance.min.js' 1098 Bugsnag.start({ apiKey: '4566b84af716122196683745d2088b1c' }) 1099 BugsnagPerformance.start({ apiKey: '4566b84af716122196683745d2088b1c' }) 1100</script>
1100 1101 1102 1103 1104 1105 1106<!-- Search Provider Toggle -->
1107<script> 1108 window.__searchProvider = 'custom'; 1109</script>
1109 1110 1111 1112 1113 1114 1115<!-- Custom S3-Backed Instant Search -->
1116<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/fuse.min.js" defer></script>
vendor: 1 bytes, line 1116
1116
1117<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/search-core.js?v=67616449755213306551779429574" defer></script>
1117 1118<link rel="stylesheet" href="//www.hameraypublishing.com/cdn/shop/t/3/assets/custom-search.css?v=14041386354112471001779049376" media="print" onload="this.media='all'"> 1119<noscript><link rel="stylesheet" href="//www.hameraypublishing.com/cdn/shop/t/3/assets/custom-search.css?v=14041386354112471001779049376"></noscript>
1120<script src="//www.hameraypublishing.com/cdn/shop/t/3/assets/custom-search.js?v=108089332877652854721779429573" defer></script>
1120 1121 1122 1123 1124 1125 1126<!-- Google Tag -->
vendor: 64 bytes, lines 1126-1127
1126 1127<script async src="https://www.googletagmanager.com/gtag/js?id=
1127AW-938619849
vendor: 12 bytes, line 1127
1127"></script>
1127<script>
vendor: 127 bytes, line 1127
1127window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
1127AW-938619849
vendor: 4 bytes, line 1127
1127');
1127</script>
1127 1128 1129 1130 1131 1132 1133<!-- Meta -->
1134<script>
vendor: 399 bytes, lines 1134-1143
1134 1135!function(f,b,e,v,n,t,s) 1136{if(f.fbq)return;n=f.fbq=function(){n.callMethod? 1137n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 1138if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 1139n.queue=[];t=b.createElement(e);t.async=!0; 1140t.src=v;s=b.getElementsByTagName(e)[0]; 1141s.parentNode.insertBefore(t,s)}(window, document,'script', 1142'https://connect.facebook.net/en_US/fbevents.js'); 1143fbq('init', '
1143573587907984562
vendor: 30 bytes, lines 1143-1144
1143'); 1144fbq('track', 'PageView');
1145</script>
1145 1146<noscript><img height="1" width="1" style="display:none" 1147src="https://www.facebook.com/tr?id=573587907984562&ev=PageView&noscript=1" 1148/></noscript> 1149 1150 1151 1152 1153 1154<!-- HubSpot -->
1155<script type="text/javascript" id="hs-script-loader" async defer src="//js-na2.hs-scripts.com/242488439.js"></script>
1155 1156 1157 1158 1159 1160 1161<!-- Rudderstack -->
1162<script type="text/javascript"> 1163 !function(){"use strict";window.RudderSnippetVersion="3.0.60";var e="rudderanalytics";window[e]||(window[e]=[]) 1164 ;var rudderanalytics=window[e];if(Array.isArray(rudderanalytics)){ 1165 if(true===rudderanalytics.snippetExecuted&&window.console&&console.error){ 1166 console.error("RudderStack JavaScript SDK snippet included more than once.")}else{rudderanalytics.snippetExecuted=true, 1167 window.rudderAnalyticsBuildType="legacy";var sdkBaseUrl="https://cdn.rudderlabs.com";var sdkVersion="v3" 1168 ;var sdkFileName="rsa.min.js";var scriptLoadingMode="async" 1169 ;var r=["setDefaultInstanceKey","load","ready","page","track","identify","alias","group","reset","setAnonymousId","startSession","endSession","consent"] 1170 ;for(var n=0;n<r.length;n++){var t=r[n];rudderanalytics[t]=function(r){return function(){var n 1171 ;Array.isArray(window[e])?rudderanalytics.push([r].concat(Array.prototype.slice.call(arguments))):null===(n=window[e][r])||void 0===n||n.apply(window[e],arguments) 1172 }}(t)}try{ 1173 new Function('class Test{field=()=>{};test({prop=[]}={}){return prop?(prop?.property??[...prop]):import("");}}'), 1174 window.rudderAnalyticsBuildType="modern"}catch(i){}var d=document.head||document.getElementsByTagName("head")[0] 1175 ;var o=document.body||document.getElementsByTagName("body")[0];window.rudderAnalyticsAddScript=function(e,r,n){ 1176 var t=document.createElement("script");t.src=e,t.setAttribute("data-loader","RS_JS_SDK"),r&&n&&t.setAttribute(r,n), 1177 "async"===scriptLoadingMode?t.async=true:"defer"===scriptLoadingMode&&(t.defer=true), 1178 d?d.insertBefore(t,d.firstChild):o.insertBefore(t,o.firstChild)},window.rudderAnalyticsMount=function(){!function(){ 1179 if("undefined"==typeof globalThis){var e;var r=function getGlobal(){ 1180 return"undefined"!=typeof self?self:"undefined"!=typeof window?window:null}();r&&Object.defineProperty(r,"globalThis",{ 1181 value:r,configurable:true})} 1182 }(),window.rudderAnalyticsAddScript("".concat(sdkBaseUrl,"/").concat(sdkVersion,"/").concat(window.rudderAnalyticsBuildType,"/").concat(sdkFileName),"data-rsa-write-key","2uonaIVTN4W3jpIo7K8b42XAjhr") 1183 },window.rudderAnalyticsMount() 1184 ;var loadOptions={};rudderanalytics.load("2uonaIVTN4W3jpIo7K8b42XAjhr","https://hameraypubqkju.dataplane.rudderstack.com",loadOptions)}}}(); 1185</script>
1185 1186 1187 1188 1189 1190
1191<script> 1192 1193 1194 1195 1196 1197 rudderanalytics.page( 1198 "Page", 1199 "Page Viewed", { 1200 path: window.location.pathname, 1201 referrer: document.referrer, 1202 title: document.title, 1203 url: window.location.href 1204 }, 1205 ); 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 const urlParams = new URLSearchParams(window.location.search); 1218 1219 if (urlParams.has('cid')) { 1220 const cid = urlParams.get('cid'); 1221 rudderanalytics.identify( cid ); 1222 } 1223 1224 1225 1226 1227 1228 // Engagement ping â fires once after 15s if the user has interacted 1229 // and the tab is still visible. Distinguishes real single-page 1230 // visitors from bots (bots get 0 pings, humans get 1). 1231 (function() { 1232 var hasInteracted = false; 1233 var visible = !document.hidden; 1234 1235 ['scroll', 'click', 'mousemove', 'touchstart'].forEach(function(evt) { 1236 document.addEventListener(evt, function() { hasInteracted = true; }, { once: true }); 1237 }); 1238 1239 document.addEventListener('visibilitychange', function() { 1240 visible = !document.hidden; 1241 }); 1242 1243 setTimeout(function() { 1244 if (hasInteracted && visible) { 1245 rudderanalytics.track('ping'); 1246 } 1247 }, 15000); 1248 })(); 1249 1250 1251 1252 1253 1254</script>
1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265<!-- Clarity -->
1266<script type="text/javascript"> 1267 (function(c,l,a,r,i,t,y){ 1268 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 1269 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 1270 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 1271 })(window, document, "clarity", "script", "fmlny4xx23"); 1272</script>
1272 1273 1274 1275 1276 1277 1278<style> 1279 1280 html { 1281 scrollbar-gutter: stable; 1282 tab-size: 4; 1283 font-feature-settings: normal; 1284 font-variation-settings: normal; 1285 -webkit-text-size-adjust: none; 1286 -webkit-font-smoothing: antialiased; 1287 -webkit-overflow-scrolling: touch; 1288 -webkit-tap-highlight-color: transparent; 1289 } 1290 1291 #MainContent { 1292 margin-top: 163px; 1293 } 1294 1295 html:not(.ie9) .chromeframe { 1296 display: none; 1297 } 1298 1299 html.ie9 .chromeframe { 1300 display: block !important; 1301 } 1302 1303 html.ie9 body > *:not(.chromeframe){ 1304 display: none; 1305 } 1306 1307 input.input-error { 1308 background-color: #FFF !important; 1309 } 1310 1311 @media only screen and (max-width: 700px) { 1312 1313 #MainContent { 1314 margin-top: 0px; 1315 } 1316 1317 } 1318 1319</style> 1320 1321 1322 1323 1324 1325<meta property="og:image" content="https://cdn.shopify.com/s/files/1/2137/3313/files/logo.png?height=628&pad_color=ffffff&v=1613502610&width=1200" /> 1326<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/2137/3313/files/logo.png?height=628&pad_color=ffffff&v=1613502610&width=1200" /> 1327<meta property="og:image:width" content="1200" /> 1328<meta property="og:image:height" content="628" /> 1329<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1330<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 21373313,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1330
1330
1331<script> 1332 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1333</script>
vendor: 1 bytes, line 1333
1333
1334<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1334).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 21373313,storefrontBaseUrl: "https://www.hameraypublishing.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.hameraypublishing.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"880181284","configuration":"{\"pixel_id\":\"2268641926920626\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"307068964","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\",\\\"GT-T56LZSL7\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/sEoOCLmo_L4bEMnnyL8D\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/MXDgCMbd_r4bEMnnyL8D\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-C49ZK1PS3W\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/yedCCMPd_r4bEMnnyL8D\\\",\\\"MC-H4SGFN62G8\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-C49ZK1PS3W\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/BX56CLao_L4bEMnnyL8D\\\",\\\"MC-H4SGFN62G8\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/3ZvbCMDd_r4bEMnnyL8D\\\",\\\"MC-H4SGFN62G8\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-C49ZK1PS3W\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/3rmPCMnd_r4bEMnnyL8D\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-C49ZK1PS3W\\\",\\\"AW-938619849\\\/VX5MCL3d_r4bEMnnyL8D\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-C49ZK1PS3W\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Hameray Publishing","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"hameray-publishing.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.hameraypublishing.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://www.hameraypublishing.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"181129362","themePublished":"true","eventMetadataId":"ccf10ab2-53d6-47b1-a23c-43360dab1001","pageType":"home","shopId":"21373313","storefrontBaseUrl":"https:\/\/www.hameraypublishing.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1334<script> 1335 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1336 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1337 window.ShopifyAnalytics.meta.currency = 'USD'; 1338 var meta = {"page":{"pageType":"home","requestId":"c5bfc88a-8a2a-4c01-a0d9-0800f5eaac74-1791071019"}}; 1339 for (var attr in meta) { 1340 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1341 } 1342</script>
vendor: 1 bytes, line 1342
1342
1343<script class="analytics"> 1344 (function () { 1345 var customDocumentWrite = function(content) { 1346 var jquery = null; 1347 1348 if (window.jQuery) { 1349 jquery = window.jQuery; 1350 } else if (window.Checkout && window.Checkout.$) { 1351 jquery = window.Checkout.$; 1352 } 1353 1354 if (jquery) { 1355 jquery('body').append(content); 1356 } 1357 }; 1358 1359 var hasLoggedConversion = function(token) { 1360 if (token) { 1361 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1362 } 1363 return false; 1364 } 1365 1366 var setCookieIfConversion = function(token) { 1367 if (token) { 1368 var twoMonthsFromNow = new Date(Date.now()); 1369 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1370 1371 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1372 } 1373 } 1374 1375 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1376 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1377 if (trekkie.integrations) { 1378 return; 1379 } 1380 trekkie.methods = [ 1381 'identify', 1382 'page', 1383 'ready', 1384 'track', 1385 'trackForm', 1386 'trackLink' 1387 ]; 1388 trekkie.factory = function(method) { 1389 return function() { 1390 var args = Array.prototype.slice.call(arguments); 1391 args.unshift(method); 1392 trekkie.push(args); 1393 if (method == 'track' || method == 'page') { 1394 var pageUrl; 1395 try { 1396 pageUrl = window.location.href; 1397 } catch (e) {} 1398 var pageReferrer; 1399 try { 1400 pageReferrer = document.referrer; 1401 } catch (e) {} 1402 try { 1403 if (window.__TREKKIE_SHIM_QUEUE == null) { 1404 window.__TREKKIE_SHIM_QUEUE = []; 1405 } 1406 window.__TREKKIE_SHIM_QUEUE.push({ 1407 from: 'trekkie-stub', 1408 method: method, 1409 args: args.slice(1), 1410 pageContext: { 1411 url: pageUrl, 1412 referrer: pageReferrer 1413 } 1414 }); 1415 } catch (e) { 1416 // no-op 1417 } 1418 } 1419 return trekkie; 1420 }; 1421 }; 1422 for (var i = 0; i < trekkie.methods.length; i++) { 1423 var key = trekkie.methods[i]; 1424 trekkie[key] = trekkie.factory(key); 1425 } 1426 trekkie.load = function(config) { 1427 trekkie.config = config || {}; 1428 trekkie.config.initialDocumentCookie = document.cookie; 1429 var first = document.getElementsByTagName('script')[0]; 1430var script = document.createElement('script'); 1431script.type = 'text/javascript'; 1432script.onerror = function(e) { 1433 var scriptFallback = document.createElement('script'); 1434 scriptFallback.type = 'text/javascript'; 1435 scriptFallback.onerror = function(error) { 1436 var Monorail = { 1437 produce: function produce(monorailDomain, schemaId, payload) { 1438 var currentMs = new Date().getTime(); 1439 var event = { 1440 schema_id: schemaId, 1441 payload: payload, 1442 metadata: { 1443 event_created_at_ms: currentMs, 1444 event_sent_at_ms: currentMs 1445 } 1446 }; 1447 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1448 }, 1449 sendRequest: function sendRequest(endpointUrl, payload) { 1450 // Try the sendBeacon API 1451 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1452 var blobData = new window.Blob([payload], { 1453 type: 'text/plain' 1454 }); 1455 1456 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1457 return true; 1458 } // sendBeacon was not successful 1459 1460 } // XHR beacon 1461 1462 var xhr = new XMLHttpRequest(); 1463 1464 try { 1465 xhr.open('POST', endpointUrl); 1466 xhr.setRequestHeader('Content-Type', 'text/plain'); 1467 xhr.send(payload); 1468 } catch (e) { 1469 console.log(e); 1470 } 1471 1472 return false; 1473 }, 1474 isIos12: function isIos12() { 1475 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1476 } 1477 }; 1478 Monorail.produce('monorail-edge.shopifysvc.com', 1479 'trekkie_storefront_load_errors/1.1', 1480 {shop_id: 21373313, 1481 theme_id: 181129362, 1482 app_name: "storefront", 1483 context_url: window.location.href, 1484 source_url: "//www.hameraypublishing.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1485 1486 }; 1487 scriptFallback.async = true; 1488 scriptFallback.src = '//www.hameraypublishing.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1489 first.parentNode.insertBefore(scriptFallback, first); 1490}; 1491script.async = true; 1492script.src = '//www.hameraypublishing.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1493first.parentNode.insertBefore(script, first); 1494 1495 }; 1496 trekkie.load( 1497 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":21373313,"isMerchantRequest":null,"themeId":181129362,"themeCityHash":"7772899665321414767","contentLanguage":"en","currency":"USD","eventMetadataId":"ccf10ab2-53d6-47b1-a23c-43360dab1001"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1498 ); 1499 1500 var loaded = false;
1501 trekkie.ready(function() { 1502 if (loaded) return; 1503 loaded = true; 1504 1505 window.ShopifyAnalytics.lib = window.trekkie; 1506 1507 var originalDocumentWrite = document.write; 1508 document.write = customDocumentWrite; 1509 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1510 document.write = originalDocumentWrite; 1511 1512 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1513 var token = match? match[1]: undefined; 1514 if (!hasLoggedConversion(token)) { 1515 setCookieIfConversion(token); 1516 1517 } 1518 }); 1519 1520 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"c5bfc88a-8a2a-4c01-a0d9-0800f5eaac74-1791071019","shopifyEmitted":true}); 1521 1522 var eventsListenerScript = document.createElement('script'); 1523 eventsListenerScript.async = true; 1524 eventsListenerScript.src = "//www.hameraypublishing.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1525 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1526})();</script>
1526 1527
1527<script> 1528 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1529 window.ga = function ga() { 1530 (window.ga.q = window.ga.q || []).push(arguments); 1531 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1532 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1533 } 1534 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1535 }; 1536 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1537 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1538 } 1539 } 1540</script>
vendor: 1 bytes, line 1540
1540
1541<script 1542 defer 1543 src="https://www.hameraypublishing.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1544 data-application="storefront-renderer" 1545 data-shop-id="21373313" 1546 data-render-region="gcp-us-central1" 1547 data-page-type="index" 1548 data-theme-instance-id="181129362" 1549 data-theme-name="Slate" 1550 data-theme-version="0.11.0" 1551 data-monorail-region="shop_domain" 1552 data-resource-timing-sampling-rate="10" 1553 data-shs="true" 1554 data-shs-beacon="true" 1555 data-shs-export-with-fetch="true" 1556 data-shs-logs-sample-rate="1" 1557 data-shs-beacon-endpoint="https://www.hameraypublishing.com/api/collect" 1558></script>
1558 1559<meta name="shopify-y" content="1a74cca1-6ad0-472d-b36c-209cf6e4c3d9" data-expiration="1822628619000"><meta name="shopify-s" content="1d6ce6c3-4231-40d9-89cc-8d95a44d3078" data-expiration="1791072819000"><meta name="new-cookie-storage-activated" content="t"> 1560</head> 1561 1562 1563 1564 1565 1566<body id = 'hameray-publishing-books-amp-resources-for-early-literacy' class = 'template-index'> 1567 1568 1569 1570 1571 1572<div id="shopify-section-header-new-8-original" class="shopify-section"><style> 1573 1574:root { 1575 --hameray-orange: #f58436; 1576 --hameray-teal: #19657c; 1577 --hameray-dark: #002836; 1578} 1579 1580.logo-account { 1581 margin: 0 auto; 1582 display: grid !important; 1583 grid-template-columns: 1fr auto 1fr; 1584 align-items: center !important; 1585 position: relative; 1586 padding: 10px 0 !important; 1587 gap: 0px; 1588} 1589 1590.header-logo-left { 1591 justify-self: start; 1592} 1593 1594/* Search bar â center (pill-shaped) */ 1595#searchbar { 1596 position: relative !important; 1597 right: auto !important; 1598 left: auto !important; 1599 flex: 1; 1600 width: 550px; 1601 max-width: 550px; 1602 display: flex; 1603 align-items: center; 1604 background: #fff; 1605 border: 1.5px solid #ccc; 1606 border-radius: 50px; 1607 overflow: hidden; 1608 margin: 0 20px; 1609 transition: border-color 0.2s ease, box-shadow 0.2s ease; 1610} 1611 1612#searchbar:focus-within { 1613 border-color: var(--hameray-orange); 1614 box-shadow: 0 0 0 3px rgba(245, 132, 54, 0.15); 1615} 1616 1617#searchbar label { 1618 display: none; 1619} 1620 1621#Search { 1622 width: 100% !important; 1623 border: none !important; 1624 background: transparent !important; 1625 padding: 11px 20px !important; 1626 font-size: 15px !important; 1627 outline: none !important; 1628 font-family: inherit; 1629 color: var(--hameray-dark); 1630 appearance: none; 1631 -webkit-appearance: none; 1632 border-radius: 0 !important; 1633 margin: 0 !important; 1634 box-shadow: none !important; 1635} 1636 1637#Search::placeholder { 1638 color: #999; 1639 font-weight: 400; 1640} 1641 1642#searchbar .btn, 1643#searchbar button[type="submit"] { 1644 flex-shrink: 0; 1645 background: var(--hameray-orange) !important; 1646 border: none !important; 1647 border-radius: 0 50px 50px 0 !important; 1648 padding: 0 20px !important; 1649 height: 44px; 1650 cursor: pointer; 1651 display: flex !important; 1652 align-items: center !important; 1653 justify-content: center !important; 1654 color: #fff !important; 1655 transition: background 0.2s ease; 1656 margin: 0 !important; 1657 min-width: 50px; 1658} 1659 1660#searchbar .btn:hover, 1661#searchbar button[type="submit"]:hover { 1662 background: #e07530 !important; 1663} 1664 1665#searchbar .btn .icon-fallback-text, 1666#searchbar button[type="submit"] .icon-fallback-text { 1667 display: none; 1668} 1669 1670#searchbar .btn svg, 1671#searchbar button[type="submit"] svg { 1672 width: 20px; 1673 height: 20px; 1674 fill: none; 1675 stroke: #fff; 1676 stroke-width: 2.5; 1677 stroke-linecap: round; 1678 stroke-linejoin: round; 1679} 1680 1681.cart-login img { 1682 height: 20px; 1683 color: #FFF; 1684} 1685 1686.cart-link { 1687 position: relative; 1688 display: inline-block; 1689} 1690 1691.cart-count { 1692 background: #19657c; 1693 color: #fff; 1694 font-size: 11px; 1695 font-weight: 600; 1696 border-radius: 999px; 1697 min-width: 18px; 1698 height: 18px; 1699 padding: 0 5px; 1700 text-align: center; 1701 display: inline-flex; 1702 align-items: center; 1703 justify-content: center; 1704 margin-left: 4px; 1705 box-sizing: border-box; 1706} 1707 1708.wishlist-count { 1709 background: #19657c; 1710 color: #fff; 1711 font-size: 11px; 1712 font-weight: 600; 1713 border-radius: 999px; 1714 min-width: 18px; 1715 height: 18px; 1716 padding: 0 5px; 1717 text-align: center; 1718 display: inline-flex; 1719 align-items: center; 1720 justify-content: center; 1721 margin-left: 4px; 1722 vertical-align: middle; 1723 box-sizing: border-box; 1724} 1725 1726.cart-count--desktop { 1727 position: relative; 1728 top: -1px; 1729 vertical-align: middle; 1730} 1731 1732.cart-count--mobile { 1733 position: absolute; 1734 top: -6px; 1735 right: -10px; 1736 margin-left: 0; 1737 font-size: 10px; 1738 min-width: 16px; 1739 height: 16px; 1740 padding: 0 4px 0 6px; 1741} 1742 1743@keyframes cart-bounce { 1744 0% { transform: scale(1); } 1745 30% { transform: scale(1.25); } 1746 60% { transform: scale(0.9); } 1747 100% { transform: scale(1); } 1748} 1749 1750.cart-link.cart-bounce, 1751.header-nav a .cart-count.cart-bounce { 1752 animation: cart-bounce 0.4s ease; 1753} 1754 1755.site-logo img { 1756 width: 200px !important; 1757 max-width: 200px !important; 1758} 1759 1760.header-middle-section { 1761 border-bottom: 1px solid #f58436; 1762} 1763 1764.nav-search { 1765 margin-top: 20px; 1766} 1767 1768.site-nav > li { 1769 padding-bottom: 20px !important; 1770} 1771 1772ul.site-nav>li a { 1773 padding-bottom: 0px; 1774 padding-left: 30px; 1775 padding-right: 30px; 1776} 1777 1778.header-nav { 1779 display: flex; 1780 align-items: center; 1781} 1782 1783.site-nav__link { 1784 text-align: left; 1785} 1786 1787.menu-listings { 1788 margin-top: 0px; 1789 margin-bottom: 10px; 1790} 1791 1792.menu-subtitle { 1793 font-size: 13px; 1794 font-weight: 500; 1795 letter-spacing: .025em; 1796 margin-top: 40px; 1797 margin-bottom: 20px; 1798 color: #19657c; 1799 text-align: left; 1800 border-bottom: 1px solid #19657c; 1801 padding-bottom: 5px; 1802} 1803 1804.menu-spacer { 1805 margin-top: 20px; 1806} 1807 1808.site-nav__submenu { 1809 padding-top: 25px !important; 1810} 1811 1812ul.site-nav>li div.site-nav__submenu .col {
1813 border-right: none !important; 1814} 1815 1816ul.site-nav>li div.site-nav__submenu .col ul li a { 1817 padding: 6px 0; 1818 font-size: 13px; 1819 font-weight: 500; 1820} 1821 1822ul.site-nav>li div.site-nav__submenu .col:last-child span { 1823 font-size: 13px; 1824 font-weight: 500; 1825 letter-spacing: .025em; 1826 color: #19657c; 1827 text-transform: none; 1828 display: inline-block; 1829} 1830 1831ul.site-nav>li div.site-nav__submenu .col ul { 1832 list-style: disc; 1833 margin: 0; 1834 padding: 0; 1835 padding-left: 20px; 1836} 1837 1838.nav-link-highlight { 1839 color: #F58436 !important; 1840 margin-left: 7px !important; 1841 font-weight: 600 !important; 1842 font-size: 12.5px !important; 1843} 1844 1845.cart-login { 1846 position: absolute; 1847 right: 0px; 1848 border-radius: 5px; 1849 margin-bottom: 0px; 1850 display: none; 1851} 1852 1853.header-text { 1854 display: none; 1855} 1856 1857.header-bar .flex.space { 1858 justify-content: space-between; 1859 align-items: center; 1860} 1861 1862.header-bar .header-nav { 1863 flex: 1; 1864 display: flex; 1865 align-items: center; 1866} 1867 1868.header-bar .header-nav:last-of-type { 1869 justify-content: flex-end; 1870} 1871 1872.header-logo-center { 1873 flex: 1; 1874 text-align: center; 1875 display: flex; 1876 justify-content: center; 1877 align-items: center; 1878} 1879 1880.header-logo-center a { 1881 display: inline-block; 1882 line-height: 0; 1883} 1884 1885.header-logo-center img { 1886 height: 32px; 1887 width: auto; 1888 display: block; 1889} 1890 1891#quote-request-container { 1892 justify-self: end; 1893 position: relative; 1894 left: auto; 1895 text-align: center; 1896 width: 180px; 1897} 1898 1899#quote-request-button { 1900 display: inline-block; 1901 text-align: center; 1902 width: 180px; 1903 background-color: #19657C; 1904 border-radius: 50px; 1905 cursor: pointer; 1906 font-size: 14px; 1907 font-weight: 500; 1908 padding: 5px 0px; 1909 color: white; 1910 text-decoration: none; 1911 transition: .3s all; 1912} 1913 1914#quote-request-button:hover { 1915 background-color: rgba(245, 132, 54, 1); 1916 transition: .3s all; 1917} 1918 1919#quote-request-subtext { 1920 font-size: 10px; 1921 font-weight: 400; 1922 color: #666; 1923 display: block; 1924 margin-top: 4px; 1925 font-style: italic; 1926} 1927 1928ul.site-nav>li { 1929 font-size: 16px !important; 1930} 1931 1932.site-nav__submenu .page-width { 1933 padding-left: 0 !important; 1934 padding-right: 0 !important; 1935} 1936 1937.site-nav__submenu { 1938 padding-left: 50px !important; 1939 padding-right: 50px !important; 1940} 1941 1942.dropdown-card-grid { 1943 display: flex; 1944 flex-wrap: wrap; 1945 gap: 28.5px; 1946 padding: 30px 0 20px; 1947 justify-content: flex-start; 1948 margin: 0 auto; 1949} 1950 1951.dropdown-card { 1952 display: flex; 1953 flex-direction: column; 1954 align-items: center; 1955 text-align: center; 1956 background-color: rgb(243, 243, 243); 1957 border-radius: 10px; 1958 padding: 0; 1959 padding-bottom: 16px; 1960 width: 205px; 1961 flex-shrink: 0; 1962 text-decoration: none; 1963 transition: all 0.3s ease; 1964 overflow: hidden; 1965} 1966 1967a.dropdown-card { 1968 padding-left: 0px !important; 1969 padding-right: 0px !important; 1970} 1971 1972.dropdown-card img { 1973 width: 100%; 1974 height: auto; 1975 max-height: 120px; 1976 object-fit: cover; 1977 border-radius: 10px; 1978 margin-bottom: 12px; 1979} 1980 1981.dropdown-card h4 { 1982 color: #19657C; 1983 font-family: 'Montserrat', sans-serif; 1984 font-size: 16px; 1985 font-weight: 600; 1986 margin: 0; 1987 padding: 16px; 1988 padding-top: 0px; 1989 line-height: 1.3; 1990} 1991 1992.dropdown-card:hover { 1993 background-color: rgb(230, 230, 230); 1994} 1995 1996ul.site-nav>li div.site-nav__submenu h3 { 1997 color: #f58436; 1998 font-size: 25px; 1999 font-family: Superclarendon; 2000 font-weight: 500; 2001 margin: 0px; 2002} 2003 2004@media only screen and (max-width: 1200px) { 2005 .header-middle-section { 2006 padding: 0 20px; 2007 } 2008 2009 #searchbar { 2010 max-width: 500px; 2011 } 2012} 2013 2014@media only screen and (max-width: 1024px) { 2015 #searchbar { 2016 max-width: 380px; 2017 margin: 0 12px; 2018 } 2019} 2020 2021@media only screen and (max-width: 1125px) { 2022 2023 ul.site-nav>li a { 2024 padding-bottom: 0px; 2025 padding-left: 25px; 2026 padding-right: 25px; 2027 } 2028 2029} 2030 2031@media only screen and (max-width: 1065px) { 2032 2033 ul.site-nav>li a { 2034 padding-left: 20px; 2035 padding-right: 20px; 2036 } 2037 2038} 2039 2040@media only screen and (max-width: 1005px) { 2041 2042 ul.site-nav>li a { 2043 padding-left: 15px; 2044 padding-right: 15px; 2045 } 2046 2047} 2048 2049@media only screen and (max-width: 950px) { 2050 2051 ul.site-nav>li:first-of-type { 2052 display: inline-block; 2053 } 2054 2055 ul.site-nav>li:first-of-type a { 2056 padding-left: 0px !important; 2057 } 2058 2059 .header-section-bottom { 2060 padding: 0 15px !important; 2061 } 2062 2063} 2064 2065@media only screen and (max-width: 900px) { 2066 2067 ul.site-nav>li a { 2068 padding-left: 10px; 2069 padding-right: 10px; 2070 } 2071 2072} 2073 2074@media only screen and (max-width: 851px) { 2075 2076 #brochure-download, #searchbar, #quote-request-container { 2077 display: none !important; 2078 } 2079 2080 .header-bar .header-nav:last-of-type li:last-child { 2081 display: none; 2082 } 2083 2084 .header-bar .header-nav:last-of-type li:nth-child(2) { 2085 margin-right: 0px; 2086 } 2087 2088 .cart-login { 2089 display: block; 2090 } 2091 2092 .mobile-menu-trigger { 2093 position: absolute; 2094 left: 0px; 2095 } 2096 2097 .logo-account { 2098 justify-content: center !important; 2099 padding: 7.5px 30px !important; 2100 } 2101 2102 .header-logo-left { 2103 display: contents; 2104 } 2105} 2106 2107@media only screen and (max-width: 700px) { 2108 2109 .header-text { 2110 display: block; 2111 } 2112 2113 .header-logo-center { 2114 display: none; 2115 } 2116 2117} 2118 2119@media only screen and (max-width: 500px) { 2120 2121 .site-logo img { 2122 width: 237.5px !important; 2123 max-width: 237.5px !important; 2124 } 2125 2126} 2127 2128@media only screen and (max-width: 400px) { 2129 2130 .site-logo img { 2131 width: 207.5px !important; 2132 max-width: 207.5px !important; 2133 } 2134 2135} 2136 2137@media only screen and (max-width: 350px) { 2138 2139 .site-logo img { 2140 width: 187.5px !important; 2141 max-width: 187.5px !important; 2142 } 2143 2144} 2145 2146@media only screen and (max-width: 300px) { 2147 2148 .site-logo img { 2149 width: 157.5px !important; 2150 max-width: 157.5px !important; 2151 } 2152 2153} 2154 2155</style> 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166<div data-section-id = 'header-new-8-original' data-section-type = 'header-section'> 2167 2168 <header role = 'banner'> 2169 2170 2171 2172 2173 2174 <div class = 'header-bar'> 2175 <div class = 'page-width'> 2176 <div class = 'flex space flex-center'> 2177 2178 <ul class = 'header-nav'> 2179 <li><a href = '/pages/catalogs-and-brochures'>Catalog</a></li> 2180 <li><a href = '/pages/contact-us'>Contact</a></li> 2181 </ul> 2182 2183 <ul class = 'header-nav'> 2184 <li><a href = '/pages/wishlist'>Wishlist</a> <span class="wishlist-count" style="display:none;"></span></li> 2185 2186 <li><a href="/account/login" id="customer_login_link">Log in</a></li> 2187 2188 <li><a href = '/cart'>Cart</a> <span class="cart-count cart-count--desktop" style="display:none;">0</span></li> 2189 </ul> 2190 2191 <span class = 'header-text'>
2191Let us help! Call us toll-free 866.918.6173</span> 2192 2193 </div> 2194 </div> 2195 </div> 2196 2197 2198 2199 2200 2201 <div class = 'header-main-section'> 2202 <div class = 'header-middle-section'> 2203 <div class = 'logo-account page-width'> 2204 2205 2206 2207 2208 2209 <a class = 'mobile-menu-trigger' href = '#'> 2210 <span>Main Menu</span> 2211 <span></span> 2212 </a> 2213 2214 2215 2216 2217 2218 2219 <div class = 'header-logo-left'> 2220 <div class = 'h1'> 2221 2222 <a href = '/' class = 'site-logo'> 2223 <img src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/hameray-publishing-group-logo-text.jpg' alt = 'Hameray Publishing' /> 2224 </a> 2225 2226 </div> 2227 </div> 2228 2229 2230 2231 2232 <form id = 'searchbar' action = '/search' method = 'get' role = 'search'> 2233 <input type = 'search' name = 'q' id = 'Search' placeholder = "Search our site..." autocomplete = 'off'> 2234 <button type = 'submit' class = 'btn'> 2235 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg> 2236 <span class = 'icon-fallback-text'>Search</span> 2237 </button> 2238 </form> 2239 2240 2241 2242 2243 <div id = 'quote-request-container'> 2244 <a id = 'quote-request-button' href = '/pages/get-help-choosing-books' target = '_blank'> 2245 Get Help<br>Choosing Books 2246 </a> 2247 <span id = 'quote-request-subtext'>Free guidance. No pressure.</span> 2248 </div> 2249 2250 2251 2252 2253 2254 <div class = 'cart-login'> 2255 <a href = '/cart' class = 'cart-link'> 2256 <img src = '//cdn.shopify.com/s/files/1/2137/3313/t/3/assets/cart-base.svg?v=17301320609903383747' alt = ''> 2257 <img src = '//cdn.shopify.com/s/files/1/2137/3313/t/3/assets/cart-hover.svg?v=16586892917602588454' alt = ''> 2258 <span class="cart-count cart-count--mobile" style="display:none;">0</span> 2259 </a> 2260 </div> 2261 2262 2263 2264 2265 2266 </div> 2267 </div> 2268 2269 2270 2271 2272 2273 <div class = 'flex space flex-end nav-search'> 2274 <div class = 'page-width header-section-bottom'> 2275 <nav role = 'navigation'> 2276 <ul class = 'site-nav'> 2277 2278 2279 2280 2281 2282 2283 <li class = 'site-nav--has-submenu site-nav--active'> 2284 <a href = '/pages/shop-by' class = 'site-nav__link'>Shop By <i class = 'fa fa-caret-down'></i></a> 2285 <div class = 'site-nav__submenu'> 2286 <div class = 'page-width'> 2287 <h3>Shop English Literacy Resources</h3> 2288 <div class = 'dropdown-card-grid'> 2289 <a href = '/pages/shop-by-grade' class = 'dropdown-card'> 2290 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-book-sets-by-grade-level.png'> 2291 <h4>Grade</h4> 2292 </a> 2293 <a href = '/pages/shop-by-reading-level-2' class = 'dropdown-card'> 2294 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-sets-by-reading-level.png'> 2295 <h4>Level</h4> 2296 </a> 2297 <a href = '/pages/shop-by-skill' class = 'dropdown-card'> 2298 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-los-pajaritos-de-joy-cowley.png'> 2299 <h4>Skill</h4> 2300 </a> 2301 <a href = '/pages/shop-by-series-2' class = 'dropdown-card'> 2302 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-fabulas-y-el-mundo-real.png'> 2303 <h4>Series</h4> 2304 </a> 2305 <a href = '/pages/shop-by-genre' class = 'dropdown-card'> 2306 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-story-world-real-world.png'> 2307 <h4>Genre</h4> 2308 </a> 2309 <a href = '/pages/shop-by-content-area-2' class = 'dropdown-card'> 2310 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-new-spanish-books.png'> 2311 <h4>Topic, Subject, Content Area</h4> 2312 </a> 2313 </div> 2314 </div> 2315 </div> 2316 </li> 2317 2318 2319 2320 2321 2322 2323 <li class = 'site-nav--active'><a href = '/pages/best-sellers' class = 'site-nav__link'>Best Sellers</a></li> 2324 2325 2326 2327 2328 2329 2330 <li class = 'site-nav--active'><a href = '/pages/bundles-and-kits' class = 'site-nav__link'>Bundles & Kits</a></li> 2331 2332 2333 2334 2335 2336 2337 <li class = 'site-nav--has-submenu site-nav--active'> 2338 <a href = '/pages/shop-by-skill' class = 'site-nav__link'>Shop by Skill <i class = 'fa fa-caret-down'></i></a> 2339 <div class = 'site-nav__submenu'> 2340 <div class = 'page-width'> 2341 <h3>Shop by Skill</h3> 2342 <div class = 'dropdown-card-grid'> 2343 <a href = '/pages/build-phonics' class = 'dropdown-card'> 2344 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-
2344phonics-resources.png'> 2345 <h4>Build Phonics</h4> 2346 </a> 2347 <a href = '/pages/boost-fluency' class = 'dropdown-card'> 2348 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-dual-language.png'> 2349 <h4>Boost Fluency</h4> 2350 </a> 2351 <a href = '/pages/independent-reading' class = 'dropdown-card'> 2352 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-spanish-books-for-7-year-olds.png'> 2353 <h4>Independent Reading</h4> 2354 </a> 2355 <a href = '/pages/support-english-learners' class = 'dropdown-card'> 2356 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-spanish-level-2-books.png'> 2357 <h4>Support English Learners</h4> 2358 </a> 2359 <a href = '/pages/whole-group-read-alouds' class = 'dropdown-card'> 2360 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-spanish-level-5-books.png'> 2361 <h4>Whole Group <br>Read-Alouds</h4> 2362 </a> 2363 </div> 2364 </div> 2365 </div> 2366 </li> 2367 2368 2369 2370 2371 2372 2373 <li class = 'site-nav--has-submenu site-nav--active'> 2374 <a href = '/pages/shop-spanish' class = 'site-nav__link'>Spanish <i class = 'fa fa-caret-down'></i></a> 2375 <div class = 'site-nav__submenu'> 2376 <div class = 'page-width'> 2377 <h3>Shop Spanish Literacy Resources</h3> 2378 <div class = 'dropdown-card-grid'> 2379 <a href = '/pages/shop-spanish-by-grade-level' class = 'dropdown-card'> 2380 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-book-sets-by-grade-level.png'> 2381 <h4>Grade</h4> 2382 </a> 2383 <a href = '/pages/shop-spanish-by-reading-level' class = 'dropdown-card'> 2384 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-sets-by-reading-level.png'> 2385 <h4>Level</h4> 2386 </a> 2387 <a href = '/pages/shop-spanish-by-series' class = 'dropdown-card'> 2388 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-fabulas-y-el-mundo-real.png'> 2389 <h4>Series</h4> 2390 </a> 2391 <a href = '/pages/shop-spanish-by-genre' class = 'dropdown-card'> 2392 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-story-world-real-world.png'> 2393 <h4>Genre</h4> 2394 </a> 2395 <a href = '/pages/shop-spanish-by-content-area' class = 'dropdown-card'> 2396 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-new-spanish-books.png'> 2397 <h4>Topic, Subject, Content Area</h4> 2398 </a> 2399 <a href = '/collections/spanish-big-books' class = 'dropdown-card'> 2400 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-spanish-level-5-books.png'> 2401 <h4>Whole Group <br>Read-Alouds</h4> 2402 </a> 2403 <a href = '/collections/dual-language' class = 'dropdown-card'> 2404 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/collection-dual-language.png'> 2405 <h4>Dual Language</h4> 2406 </a> 2407 </div> 2408 </div> 2409 </div> 2410 </li> 2411 2412 2413 2414 2415 2416 2417 <li class = 'site-nav--has-submenu site-nav--active'> 2418 <a href = '/pages/teacher-resources' class = 'site-nav__link'>Resources <i class = 'fa fa-caret-down'></i></a> 2419 <div class = 'site-nav__submenu'> 2420 <div class = 'page-width'> 2421 <h3>Resources for Teachers</h3> 2422 <div class = 'dropdown-card-grid'> 2423 <a href = '/pages/teachers-guides' class = 'dropdown-card'> 2424 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/hameray-publishing-teacher-resources-teacher-guides_500x.jpg'> 2425 <h4>Teacher's Guides</h4> 2426 </a> 2427 <a href = '/pages/worksheets' class = 'dropdown-card'> 2428 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/book-wor
2428ksheets_500x.jpg'> 2429 <h4>Worksheets</h4> 2430 </a> 2431 <a href = '/blogs/all' class = 'dropdown-card'> 2432 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/hameray-publishing-teacher-resources-hameray-classroom-literacy-blog_500x.jpg'> 2433 <h4>Blog</h4> 2434 </a> 2435 <a href = '/pages/catalogs-and-brochures' class = 'dropdown-card'> 2436 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/image4_500x.jpg'> 2437 <h4>Catalogs & Brochures</h4> 2438 </a> 2439 <a href = '/pages/sample-books' class = 'dropdown-card'> 2440 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/hameray-publishing-teacher-resources-digital-sample-books_500x.jpg'> 2441 <h4>Sample Books</h4> 2442 </a> 2443 <a href = '/pages/teacher-resources' class = 'dropdown-card'> 2444 <img src = 'https://www.hameraypublishing.com/cdn/shop/files/literacy-guides-and-literacy-glossary_500x.jpg'> 2445 <h4>Other Resources</h4> 2446 </a> 2447 </div> 2448 </div> 2449 </div> 2450 </li> 2451 2452 2453 2454 2455 2456 </ul> 2457 </nav> 2458 </div> 2459 </div> 2460 </header> 2461 </div> 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 <!-- ============================================================ 2473 Mobile Menu Redesign 2474 ============================================================ --> 2475 2476<style> 2477 2478/* ââ Prevent horizontal overflow at all viewport sizes ââââââââââ */ 2479html, body { 2480 overflow-x: hidden; 2481} 2482 2483/* ââ Hide default mobile menu & trigger âââââââââââ */ 2484 2485@media only screen and (max-width: 850px) { 2486 2487 .mobile-menu { 2488 display: none !important; 2489 } 2490 2491 .mobile-menu-trigger { 2492 display: none !important; 2493 } 2494 2495 .cart-login { 2496 display: none !important; 2497 } 2498 2499 /* Hide the existing header middle/bottom sections on mobile */ 2500 .header-middle-section { 2501 display: none !important; 2502 } 2503 2504 .nav-search { 2505 display: none !important; 2506 } 2507 2508 /* Make header non-fixed so it flows naturally above our mobile header */ 2509 div[data-section-type="header-section"] { 2510 position: relative !important; 2511 } 2512 2513 #MainContent { 2514 margin-top: 0px !important; 2515 } 2516 2517 /* Show announcement text and hide nav links in the orange bar */ 2518 .header-bar .header-nav { 2519 display: none !important; 2520 } 2521 2522 .header-bar .header-text { 2523 display: block !important; 2524 text-align: center; 2525 width: 100%; 2526 } 2527 2528 .header-bar .header-text a { 2529 color: #fff !important; 2530 } 2531} 2532 2533/* ââ New Mobile Header âââââââââââââââââââââââââââââââââââââââââ */ 2534 2535.st-mobile-header { 2536 display: none; 2537} 2538 2539@media only screen and (max-width: 850px) { 2540 2541 .st-mobile-header { 2542 display: flex; 2543 align-items: center; 2544 justify-content: space-between; 2545 padding: 0 16px; 2546 height: 75px; 2547 background: #fff; 2548 border-bottom: 1px solid #eee; 2549 position: sticky; 2550 top: 0; 2551 z-index: 25; 2552 } 2553 2554 .st-mobile-header__left { 2555 display: flex; 2556 align-items: center; 2557 gap: 16px; 2558 flex: 1; 2559 } 2560 2561 .st-mobile-header__center { 2562 flex: 1; 2563 display: flex; 2564 justify-content: center; 2565 align-items: center; 2566 } 2567 2568 .st-mobile-header__center a { 2569 display: inline-block; 2570 line-height: 0; 2571 } 2572 2573 .st-mobile-header__center img { 2574 height: 60px !important; 2575 width: auto !important; 2576 max-width: none !important; 2577 } 2578 2579 .st-mobile-header__right { 2580 flex: 1; 2581 display: flex; 2582 justify-content: flex-end; 2583 align-items: center; 2584 } 2585 2586 /* Hamburger button */ 2587 .st-hamburger { 2588 background: none; 2589 border: none; 2590 padding: 4px; 2591 cursor: pointer; 2592 width: 32px; 2593 height: 32px; 2594 display: flex; 2595 align-items: center; 2596 justify-content: center; 2597 position: relative; 2598 -webkit-tap-highlight-color: transparent; 2599 } 2600 2601 .st-hamburger__lines { 2602 display: block; 2603 width: 22px; 2604 height: 2px; 2605 background-color: #F58436; 2606 position: relative; 2607 transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1); 2608 } 2609 2610 .st-hamburger__lines::before, 2611 .st-hamburger__lines::after { 2612 content: ''; 2613 display: block; 2614 width: 22px; 2615 height: 2px; 2616 background-color: #F58436; 2617 position: absolute; 2618 left: 0; 2619 transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), 2620 top 0.15s cubic-bezier(0.4, 0, 0.2, 1) 0.15s; 2621 } 2622 2623 .st-hamburger__lines::before { 2624 top: -7px; 2625 } 2626 2627 .st-hamburger__lines::after { 2628 top: 7px; 2629 } 2630 2631 /* X state â two-stage: collapse lines first, then rotate */ 2632 .st-hamburger.is-active .st-hamburger__lines { 2633 background-color: transparent; 2634 } 2635 2636 .st-hamburger.is-active .st-hamburger__lines::before, 2637 .st-hamburger.is-active .st-hamburger__lines::after { 2638 transition: top 0.15s cubic-bezier(0.4, 0, 0.2, 1), 2639 transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) 0.15s; 2640 } 2641 2642 .st-hamburger.is-active .st-hamburger__lines::before { 2643 top: 0; 2644 transform: rotate(45deg); 2645 } 2646 2647 .st-hamburger.is-active .st-hamburger__lines::after { 2648 top: 0; 2649 transform: rotate(-45deg); 2650 } 2651 2652 /* Search icon button */ 2653 .st-search-btn { 2654 background: none; 2655 border: none; 2656 padding: 4px; 2657 cursor: pointer; 2658 width: 32px; 2659 height: 32px; 2660 display: flex; 2661 align-items: center; 2662 justify-content: center; 2663 -webkit-tap-highlight-color: transparent; 2664 } 2665 2666 .st-search-btn svg {
2667 width: 20px; 2668 height: 20px; 2669 stroke: #F58436; 2670 fill: none; 2671 stroke-width: 2; 2672 stroke-linecap: round; 2673 stroke-linejoin: round; 2674 } 2675 2676 /* Cart icon */ 2677 .st-cart-link { 2678 position: relative; 2679 display: inline-flex; 2680 align-items: center; 2681 justify-content: center; 2682 } 2683 2684 .st-cart-link img { 2685 height: 20px; 2686 width: auto; 2687 } 2688 2689 .st-cart-count { 2690 position: absolute; 2691 top: -6px; 2692 right: -10px; 2693 background: #19657C; 2694 color: #fff; 2695 font-size: 10px; 2696 font-weight: 600; 2697 border-radius: 999px; 2698 min-width: 16px; 2699 height: 16px; 2700 padding: 0 4px 0 6px; 2701 display: inline-flex; 2702 align-items: center; 2703 justify-content: center; 2704 line-height: 1; 2705 box-sizing: border-box; 2706 } 2707 2708} 2709 2710/* ââ Overlay âââââââââââââââââââââââââââââââââââââââââââââââââââ */ 2711 2712.st-menu-overlay { 2713 display: none; 2714 position: fixed; 2715 top: 0; 2716 left: 0; 2717 width: 100%; 2718 height: 100%; 2719 background: rgba(0, 0, 0, 0.4); 2720 z-index: 21; 2721 opacity: 0; 2722 transition: opacity 0.3s ease; 2723} 2724 2725.st-menu-overlay.is-visible { 2726 display: block; 2727 opacity: 1; 2728} 2729 2730/* ââ Menu Panel ââââââââââââââââââââââââââââââââââââââââââââââââ */ 2731 2732.st-menu { 2733 display: none; 2734} 2735 2736@media only screen and (max-width: 850px) { 2737 2738 .st-menu { 2739 display: block; 2740 position: fixed; 2741 top: 60px; 2742 left: 0; 2743 width: 85vw; 2744 max-width: 380px; 2745 height: calc(100% - 60px); 2746 background: #fff; 2747 z-index: 22; 2748 transform: translateX(-100%); 2749 transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1); 2750 overflow-y: auto; 2751 overflow-x: hidden; 2752 -webkit-overflow-scrolling: touch; 2753 box-shadow: 2px 0 12px rgba(0, 0, 0, 0.08); 2754 } 2755 2756 .st-menu.is-open { 2757 transform: translateX(0); 2758 } 2759 2760 /* ââ Section 1: Shop âââââââââââââââââââââââââââââââââââââââââ */ 2761 2762 .st-menu__shop { 2763 border-bottom: 1px solid #eee; 2764 } 2765 2766 .st-menu__shop-list { 2767 list-style: none; 2768 margin: 0; 2769 padding: 0; 2770 } 2771 2772 .st-menu__shop-list li { 2773 border-bottom: 1px solid #f0f0f0; 2774 } 2775 2776 .st-menu__shop-list li:last-child { 2777 border-bottom: none; 2778 } 2779 2780 .st-menu__shop-list li a { 2781 display: flex; 2782 align-items: center; 2783 justify-content: space-between; 2784 padding: 14px 20px; 2785 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2786 font-size: 14px; 2787 font-weight: 600; 2788 letter-spacing: 0.02em; 2789 color: #19657C; 2790 text-decoration: none; 2791 transition: transform 0.15s ease, background 0.15s ease; 2792 -webkit-tap-highlight-color: transparent; 2793 } 2794 2795 .st-menu__shop-list li a:active { 2796 transform: scale(0.98); 2797 background: #f7f7f7; 2798 } 2799 2800 .st-menu__shop-list li a svg { 2801 width: 14px; 2802 height: 14px; 2803 stroke: #F58436; 2804 fill: none; 2805 stroke-width: 2.5; 2806 flex-shrink: 0; 2807 margin-left: 8px; 2808 } 2809 2810 /* ââ Sub-menu (drill-down) âââââââââââââââââââââââââââââââââââ */ 2811 2812 .st-submenu { 2813 position: absolute; 2814 top: 0; 2815 left: 0; 2816 width: 100%; 2817 height: 100%; 2818 background: #fff; 2819 transform: translateX(100%); 2820 transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); 2821 overflow-y: auto; 2822 -webkit-overflow-scrolling: touch; 2823 z-index: 2; 2824 } 2825 2826 .st-submenu.is-open { 2827 transform: translateX(0); 2828 } 2829 2830 .st-submenu__header { 2831 display: flex; 2832 align-items: center; 2833 justify-content: center; 2834 position: relative; 2835 padding: 14px 20px; 2836 border-bottom: 1px solid #eee; 2837 background: #fafafa; 2838 } 2839 2840 .st-submenu__back { 2841 position: absolute; 2842 left: 16px; 2843 background: none; 2844 border: none; 2845 padding: 4px; 2846 cursor: pointer; 2847 display: flex; 2848 align-items: center; 2849 justify-content: center; 2850 -webkit-tap-highlight-color: transparent; 2851 } 2852 2853 .st-submenu__back svg { 2854 width: 18px; 2855 height: 18px; 2856 stroke: #19657C; 2857 fill: none; 2858 stroke-width: 2.5; 2859 } 2860 2861 .st-submenu__title { 2862 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2863 font-size: 14px; 2864 font-weight: 700; 2865 letter-spacing: 0.04em; 2866 text-transform: uppercase; 2867 color: #19657C; 2868 margin: 0; 2869 } 2870 2871 .st-submenu__list { 2872 list-style: none; 2873 margin: 0; 2874 padding: 0; 2875 } 2876 2877 .st-submenu__list li {
2878 border-bottom: 1px solid #f0f0f0; 2879 } 2880 2881 .st-submenu__list li:last-child { 2882 border-bottom: none; 2883 } 2884 2885 .st-submenu__list li a { 2886 display: block; 2887 padding: 13px 20px; 2888 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2889 font-size: 14px; 2890 font-weight: 500; 2891 color: #333; 2892 text-decoration: none; 2893 transition: transform 0.15s ease, background 0.15s ease; 2894 -webkit-tap-highlight-color: transparent; 2895 } 2896 2897 .st-submenu__list li a:active { 2898 transform: scale(0.98); 2899 background: #f7f7f7; 2900 } 2901 2902 /* ââ Section 2: Account/Utility ââââââââââââââââââââââââââââââ */ 2903 2904 .st-menu__account { 2905 padding: 8px 0; 2906 background: #fafaf8; 2907 border-bottom: 1px solid #eee; 2908 } 2909 2910 .st-menu__account-list { 2911 list-style: none; 2912 margin: 0; 2913 padding: 0; 2914 } 2915 2916 .st-menu__account-list li a { 2917 display: flex; 2918 align-items: center; 2919 gap: 12px; 2920 padding: 12px 20px; 2921 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2922 font-size: 14px; 2923 font-weight: 500; 2924 color: #333; 2925 text-decoration: none; 2926 transition: transform 0.15s ease, background 0.15s ease; 2927 -webkit-tap-highlight-color: transparent; 2928 } 2929 2930 .st-menu__account-list li a:active { 2931 transform: scale(0.98); 2932 background: rgba(0, 0, 0, 0.03); 2933 } 2934 2935 .st-menu__account-list li a svg { 2936 width: 18px; 2937 height: 18px; 2938 stroke: #19657C; 2939 fill: none; 2940 stroke-width: 1.8; 2941 flex-shrink: 0; 2942 } 2943 2944 /* ââ Section 3: Contact Info âââââââââââââââââââââââââââââââââ */ 2945 2946 .st-menu__contact { 2947 padding: 24px 20px 40px; 2948 padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px)); 2949 } 2950 2951 .st-menu__contact-heading { 2952 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2953 font-size: 13px; 2954 font-weight: 700; 2955 letter-spacing: 0.06em; 2956 text-transform: uppercase; 2957 color: #19657C; 2958 margin: 0 0 12px 0; 2959 } 2960 2961 .st-menu__contact p { 2962 font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif; 2963 font-size: 14px; 2964 font-weight: 400; 2965 color: #555; 2966 line-height: 1.6; 2967 margin: 0; 2968 } 2969 2970 .st-menu__contact a { 2971 color: #F58436; 2972 text-decoration: none; 2973 font-weight: 500; 2974 } 2975 2976 .st-menu__contact a:hover { 2977 text-decoration: underline; 2978 } 2979 2980 /* ââ Menu inner wrapper for sub-menu positioning âââââââââââââ */ 2981 2982 .st-menu__inner { 2983 position: relative; 2984 min-height: 100%; 2985 } 2986 2987} 2988 2989@media only screen and (max-width: 525px) { 2990 2991 .st-mobile-header { 2992 height: 65px; 2993 } 2994 2995 .st-mobile-header__center img { 2996 height: 50px !important; 2997 } 2998 2999} 3000 3001@media only screen and (max-width: 380px) { 3002 3003 .st-mobile-header { 3004 height: 55px; 3005 } 3006 3007 .st-mobile-header__center img { 3008 height: 40px !important; 3009 } 3010 3011} 3012 3013</style> 3014 3015<!-- ââ New Mobile Header âââââââââââââââââââââââââââââââââââââââ --> 3016 3017<div class="st-mobile-header"> 3018 <div class="st-mobile-header__left"> 3019 <button class="st-hamburger" id="stHamburger" aria-label="Open menu"> 3020 <span class="st-hamburger__lines"></span> 3021 </button> 3022 <button class="st-search-btn" id="stSearchBtn" aria-label="Search"> 3023 <svg viewBox="0 0 24 24"> 3024 <circle cx="11" cy="11" r="8" /> 3025 <line x1="21" y1="21" x2="16.65" y2="16.65" /></svg> 3026 </button> 3027 </div> 3028 <div class="st-mobile-header__center"> 3029 <a href="/"> 3030 <img src="https://cdn.shopify.com/s/files/1/2137/3313/files/hameray-publishing-group-logo.svg" alt="Hameray Publishing Group"> 3031 </a> 3032 </div> 3033 <div class="st-mobile-header__right"> 3034 <a href="/cart" class="st-cart-link" aria-label="Cart"> 3035 <img src="//www.hameraypublishing.com/cdn/shop/t/3/assets/cart-base.svg?v=173013206099033837471772694707" alt="" /> 3036 <span class="st-cart-count cart-count" style="display:none;" >0</span> 3037 </a> 3038 </div> 3039</div> 3040 3041<!-- ââ Overlay ââââââââââââââââââââââââââââââââââââââââââââââââââ --> 3042 3043<div class="st-menu-overlay" id="stMenuOverlay"></div> 3044 3045<!-- ââ Menu Panel âââââââââââââââââââââââââââââââââââââââââââââââ --> 3046 3047<div class="st-menu" id="stMenu"> 3048 <div class="st-menu__inner"> 3049 3050 <!-- Section 1: Shop --> 3051 <div class="st-menu__shop"> 3052 <ul class="st-menu__shop-list"> 3053 3054 <li> 3055 <a href="#" data-st-submenu="shopBy"> 3056 <span>Shop By</span> 3057 <svg viewBox="0 0 24 24"> 3058 <polyline points="9 18 15 12 9 6" /></svg> 3059 </a> 3060 </li> 3061 3062 <li><a href="/pages/best-sellers"><span>Best Sellers</span></a></li> 3063 3064 <li><a href="/pages/bundles-and-kits"><span>Bundles & Kits</span></a></li> 3065 3066 <li> 3067 <a href="#" data-st-submenu="shopBySkill"> 3068 <span>Shop by Skill</span> 3069 <svg viewBox="0 0 24 24"> 3070 <polyline points="9 18 15 12 9 6" /></svg> 3071 </a> 3072 </li> 3073 3074 <li> 3075 <a href="#" data-st-submenu="spanish"> 3076 <span>Shop Spanish</span> 3077 <svg viewBox="0 0 24 24"> 3078 <polyline points="9 18 15 12 9 6" /></svg> 3079 </a> 3080 </li> 3081 3082 <li> 3083 <a href="#" data-st-submenu="resources"> 3084 <span>Teacher Resources</span> 3085 <svg viewBox="0 0 24 24"> 3086 <polyline points="9 18 15 12 9 6" /></svg> 3087 </a> 3088 </li> 3089 3090 </ul> 3091 3092 <!-- Sub-menu: Shop By --> 3093 <div class="st-submenu" id="st-sub-shopBy"> 3094 <div class="st-submenu__header"> 3095 <button class="st-submenu__back" data-st-back aria-label="Back"> 3096 <svg viewBox="0 0 24 24"> 3097 <polyline points="15 18 9 12 15 6" /></svg> 3098 </button> 3099 <h3 class="st-submenu__title">Shop By</h3>
3100 </div> 3101 <ul class="st-submenu__list"> 3102 <li><a href="/pages/shop-by-grade">Shop by Grade</a></li> 3103 <li><a href="/pages/shop-by-reading-level-2">Shop by Level</a></li> 3104 <li><a href="/pages/shop-by-skill">Shop by Skill</a></li> 3105 <li><a href="/pages/shop-by-series-2">Shop by Series</a></li> 3106 <li><a href="/pages/shop-by-genre">Shop by Genre</a></li> 3107 <li><a href="/pages/shop-by-content-area-2">Shop by Topic, Subject, Content Area</a></li> 3108 </ul> 3109 </div> 3110 3111 <!-- Sub-menu: Shop by Skill --> 3112 <div class="st-submenu" id="st-sub-shopBySkill"> 3113 <div class="st-submenu__header"> 3114 <button class="st-submenu__back" data-st-back aria-label="Back"> 3115 <svg viewBox="0 0 24 24"> 3116 <polyline points="15 18 9 12 15 6" /></svg> 3117 </button> 3118 <h3 class="st-submenu__title">Shop by Skill</h3> 3119 </div> 3120 <ul class="st-submenu__list"> 3121 <li><a href="/pages/build-phonics">Build Phonics</a></li> 3122 <li><a href="/pages/boost-fluency">Boost Fluency</a></li> 3123 <li><a href="/pages/independent-reading">Independent Reading</a></li> 3124 <li><a href="/pages/support-english-learners">Support English Learners</a></li> 3125 <li><a href="/pages/whole-group-read-alouds">Whole Group Read-Alouds</a></li> 3126 </ul> 3127 </div> 3128 3129 <!-- Sub-menu: Spanish --> 3130 <div class="st-submenu" id="st-sub-spanish"> 3131 <div class="st-submenu__header"> 3132 <button class="st-submenu__back" data-st-back aria-label="Back"> 3133 <svg viewBox="0 0 24 24"> 3134 <polyline points="15 18 9 12 15 6" /></svg> 3135 </button> 3136 <h3 class="st-submenu__title">Shop Spanish</h3> 3137 </div> 3138 <ul class="st-submenu__list"> 3139 <li><a href="/pages/shop-spanish-by-grade-level">Shop Spanish by Grade</a></li> 3140 <li><a href="/pages/shop-spanish-by-reading-level">Shop Spanish by Level</a></li> 3141 <li><a href="/pages/shop-spanish-by-series">Shop Spanish by Series</a></li> 3142 <li><a href="/pages/shop-spanish-by-genre">Shop Spanish by Genre</a></li> 3143 <li><a href="/pages/shop-spanish-by-content-area">Shop Spanish by Topic, Subject, Content Area</a></li> 3144 <li><a href="/collections/spanish-big-books">Shop Spanish Whole Group Read-Alouds</a></li> 3145 <li><a href="/collections/dual-language">Shop Dual Language</a></li> 3146 </ul> 3147 </div> 3148 3149 <!-- Sub-menu: Resources --> 3150 <div class="st-submenu" id="st-sub-resources"> 3151 <div class="st-submenu__header"> 3152 <button class="st-submenu__back" data-st-back aria-label="Back"> 3153 <svg viewBox="0 0 24 24"> 3154 <polyline points="15 18 9 12 15 6" /></svg> 3155 </button> 3156 <h3 class="st-submenu__title">Teacher Resources</h3> 3157 </div> 3158 <ul class="st-submenu__list"> 3159 <li><a href="/pages/teachers-guides">Teacher's Guides</a></li> 3160 <li><a href="/pages/worksheets">Worksheets</a></li> 3161 <li><a href="/blogs/all">Blog</a></li> 3162 <li><a href="/pages/catalogs-and-brochures">Catalogs & Brochures</a></li> 3163 <li><a href="/pages/sample-books">Sample Books</a></li> 3164 <li><a href="/pages/teacher-resources">Other Resources</a></li> 3165 </ul> 3166 </div> 3167 3168 </div> 3169 3170 <!-- Section 2: Account / Utility --> 3171 <div class="st-menu__account"> 3172 <ul class="st-menu__account-list"> 3173 3174 3175 <li> 3176 <a href="/account/login"> 3177 <svg viewBox="0 0 24 24"> 3178 <path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2" /> 3179 <circle cx="12" cy="7" r="4" /></svg> 3180 <span>Login</span> 3181 </a> 3182 </li> 3183 <li> 3184 <a href="/account/register"> 3185 <svg viewBox="0 0 24 24"> 3186 <path d="M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2" /> 3187 <circle cx="8.5" cy="7" r="4" /> 3188 <line x1="20" y1="8" x2="20" y2="14" /> 3189 <line x1="23" y1="11" x2="17" y2="11" /></svg> 3190 <span>Create Account</span> 3191 </a> 3192 </li> 3193 3194 3195 <li> 3196 <a href="/cart"> 3197 <svg viewBox="0 0 24 24"> 3198 <circle cx="9" cy="21" r="1" /> 3199 <circle cx="20" cy="21" r="1" /> 3200 <path d="M1 1h4l2.68 13.39a2 2 0 002 1.61h9.72a2 2 0 002-1.61L23 6H6" /></svg> 3201 <span>Cart</span> 3202 </a> 3203 </li> 3204 3205 <li> 3206 <a href="/pages/wishlist"> 3207 <svg viewBox="0 0 24 24"> 3208 <path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 000-7.78z" /></svg> 3209 <span>Wishlist</span> 3210 </a> 3211 </li> 3212 3213 <li> 3214 <a href="/pages/get-help-choosing-books"> 3215 <svg viewBox="0 0 24 24"> 3216 <circle cx="12" cy="12" r="10" /> 3217 <path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3" />
3218 <line x1="12" y1="17" x2="12.01" y2="17" /></svg> 3219 <span>Get Help Choosing Books</span> 3220 </a> 3221 </li> 3222 3223 <li> 3224 <a href="/pages/contact-us"> 3225 <svg viewBox="0 0 24 24"> 3226 <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" /> 3227 <polyline points="22,6 12,13 2,6" /></svg> 3228 <span>Contact Us</span> 3229 </a> 3230 </li> 3231 3232 <li> 3233 <a href="/pages/catalogs-and-brochures"> 3234 <svg viewBox="0 0 24 24"> 3235 <path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z" /> 3236 <path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z" /></svg> 3237 <span>Catalog</span> 3238 </a> 3239 </li> 3240 3241 </ul> 3242 </div> 3243 3244 <!-- Section 3: Contact Info --> 3245 <div class="st-menu__contact"> 3246 <h4 class="st-menu__contact-heading">Contact Us</h4> 3247 <p> 3248 (866) 918-6173<br> 3249 Mon–Fri: 8am – 5pm Pacific<br> 3250 <a href="mailto:[email protected]">[email protected]</a> 3251 </p> 3252 </div> 3253 3254 </div> 3255</div> 3256 3257<!-- ââ JavaScript âââââââââââââââââââââââââââââââââââââââââââââââ --> 3258
3259<script> 3260 3261 (function() { 3262 'use strict'; 3263 var hamburger = document.getElementById('stHamburger'); 3264 var menu = document.getElementById('stMenu'); 3265 var overlay = document.getElementById('stMenuOverlay'); 3266 var searchBtn = document.getElementById('stSearchBtn'); 3267 if (!hamburger || !menu || !overlay) return; 3268 var isOpen = false; 3269 3270 function positionMenu() { 3271 var header = document.querySelector('.st-mobile-header'); 3272 if (header) { 3273 var rect = header.getBoundingClientRect(); 3274 var top = rect.bottom + 'px'; 3275 menu.style.top = top; 3276 menu.style.height = 'calc(100% - ' + top + ')'; 3277 } 3278 } 3279 3280 function openMenu() { 3281 isOpen = true; 3282 positionMenu(); 3283 menu.classList.add('is-open'); 3284 overlay.classList.add('is-visible'); 3285 hamburger.classList.add('is-active'); 3286 hamburger.setAttribute('aria-label', 'Close menu'); 3287 document.body.style.overflow = 'hidden'; 3288 document.documentElement.style.overflow = 'hidden'; 3289 } 3290 3291 function closeMenu() { 3292 isOpen = false; 3293 menu.classList.remove('is-open'); 3294 overlay.classList.remove('is-visible'); 3295 hamburger.classList.remove('is-active'); 3296 hamburger.setAttribute('aria-label', 'Open menu'); 3297 document.body.style.overflow = ''; 3298 document.documentElement.style.overflow = ''; 3299 setTimeout(function() { 3300 var openSubs = menu.querySelectorAll('.st-submenu.is-open'); 3301 for (var i = 0; i < openSubs.length; i++) { 3302 openSubs[i].classList.remove('is-open'); 3303 } 3304 }, 350); 3305 } 3306 3307 hamburger.addEventListener('click', function(e) { 3308 e.preventDefault(); 3309 if (isOpen) { closeMenu(); } else { openMenu(); } 3310 }); 3311 3312 overlay.addEventListener('click', function() { closeMenu(); }); 3313 3314 var submenuTriggers = menu.querySelectorAll('[data-st-submenu]'); 3315 for (var i = 0; i < submenuTriggers.length; i++) { 3316 submenuTriggers[i].addEventListener('click', function(e) { 3317 e.preventDefault(); 3318 var targetId = 'st-sub-' + this.getAttribute('data-st-submenu'); 3319 var target = document.getElementById(targetId); 3320 if (target) { target.classList.add('is-open'); } 3321 }); 3322 } 3323 3324 var backButtons = menu.querySelectorAll('[data-st-back]'); 3325 for (var j = 0; j < backButtons.length; j++) { 3326 backButtons[j].addEventListener('click', function(e) { 3327 e.preventDefault(); 3328 var submenu = this.closest('.st-submenu'); 3329 if (submenu) { submenu.classList.remove('is-open'); } 3330 }); 3331 } 3332 3333 if (searchBtn) { 3334 searchBtn.addEventListener('click', function(e) { 3335 e.preventDefault(); 3336 if (isOpen) closeMenu(); 3337 var searchInput = document.getElementById('Search'); 3338 if (searchInput) { 3339 searchInput.dispatchEvent(new Event('focus')); 3340 } 3341 }); 3342 } 3343 })(); 3344 3345</script>
3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356</div> 3357 3358 3359 3360 3361 3362<main role = 'main' id = "MainContent"> 3363 3364 <link href="//www.hameraypublishing.com/cdn/shop/t/3/assets/homepage.css?v=160880014123169655641779049377" rel="stylesheet" type="text/css" media="all" /> 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375<div class = 'home-content'> 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 <div class = 'hero-section'> 3389 3390 <div class = 'hero-container'> 3391 3392 <div class = 'hero-text'> 3393 3394 <h1>Help Every Student Read at Grade Level</h1> 3395 3396 <p class = 'subtitle'>Bilingual resources, decodables, and fluency books for Kâ5 classrooms</p> 3397 3398 </div> 3399 3400 <div class = 'hero-image'> 3401 3402 <img fetchpriority = 'high' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-classroom-library-3.png' alt = 'Classroom Library Books'> 3403 3404 </div> 3405 3406 <div class = 'hero-buttons'> 3407 3408 <a href = '/pages/shop-by-grade' class = 'hero-button'>Find Books <br>for My Classroom</a> 3409 <a href = '/collections/classroom-libraries' class = 'hero-button'>Explore <br>Classroom Libraries</a> 3410 <a href = '/pages/get-help-choosing-books' class = 'hero-button'>Get a <br class = 'mobile-hide-480'>District Quote</a> 3411 3412 </div> 3413 3414 <div class = 'hero-bottom-text'> 3415 3416 <p>âï¸ Trusted by 10,000+ Schools ⢠ð 2,000+ Titles ⢠ð English + Spanish ⢠ð©âð« Created by Teachers</p> 3417 3418 </div> 3419 3420 </div> 3421 3422 </div> 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 <div class = 'reading-need-section'> 3436 3437 <div class = 'reading-need-container'> 3438 3439 <h2>What Do Your Students Need Most?</h2> 3440 3441 <p class = 'subtitle'>Find books by reading need.</p> 3442 3443 <div class = 'reading-need-grid'> 3444 3445 <a href = '/pages/build-phonics' class = 'reading-need-card'> 3446 3447 <div class = 'reading-need-card-image'> 3448 3449 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-letter-a.png' alt = 'Phonics & Decodables'> 3450 3451 </div> 3452 3453 <div class = 'reading-need-card-content'> 3454 3455 <h3>Phonics & Decodables</h3> 3456 3457 <p>Explicit phonics books for beginners</p> 3458 3459 </div> 3460 3461 </a> 3462 3463 <a href = '/collections/classroom-libraries' class = 'reading-need-card'> 3464 3465 <div class = 'reading-need-card-image'> 3466 3467 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-book-bin-2.png' alt = 'Classroom Libraries'> 3468 3469 </div> 3470 3471 <div class = 'reading-need-card-content'> 3472 3473 <h3>Classroom Libraries</h3> 3474 3475 <p>Ready-to-use classroom collections</p> 3476 3477 </div> 3478 3479 </a> 3480 3481 <a href = '/pages/boost-fluency' class = 'reading-need-card'> 3482 3483 <div class = 'reading-need-card-image'> 3484 3485 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-mrs-wishy-washy.png' alt = 'Build Fluency'> 3486 3487 </div> 3488 3489 <div class = 'reading-need-card-content'> 3490 3491 <h3>Build Fluency</h3> 3492 3493 <p>Stories that build reading confidence</p> 3494 3495 </div> 3496 3497 </a> 3498 3499 <a href = '/pages/shop-spanish' class = 'reading-need-card'> 3500 3501 <div class = 'reading-need-card-image'> 3502 3503 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-book-cover.png' alt = 'Spanish Books'> 3504 3505 </div> 3506 3507 <div class = 'reading-need-card-content'> 3508 3509 <h3>Spanish Books</h3> 3510 3511 <p>Authentic Spanish for bilingual readers</p> 3512 3513 </div> 3514 3515 </a> 3516 3517 </div> 3518 3519 </div> 3520 3521 </div> 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 <div class = 'confident-readers-section'> 3535 3536 <div class = 'confident-readers-container'> 3537 3538 <div class = 'confident-readers-image'> 3539 3540 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-confident-readers.jpg' alt = 'Confident Readers'> 3541 3542 </div> 3543 3544 <div class = 'confident-readers-content'> 3545 3546 <h2>How Hameray Helps Schools Build Confident Readers</h2> 3547 3548 <ul> 3549 <li><span>âï¸</span>Explicit phonics and decodable books</li> 3550 <li><span>ð</span>Fluency books students enjoy reading</li> 3551 <li><span>ð</span>Authentic Spanish and bilingual resources</li> 3552 <li><span>ð</span>Ready-to-use classroom libraries</li> 3553 </ul> 3554 3555 <a href = '/pages/shop-by-grade' class = 'hero-button'>Browse Books for My Classroom</a> 3556 3557 </div> 3558 3559 </div> 3560 3561 </div> 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 <div class = 'struggling-readers-section'> 3575 3576 <div class = 'struggling-readers-container'> 3577 3578 <div class = 'struggling-readers-content'> 3579 3580 <h2>Spanish Books That Truly <br class = 'mobile-hide-1140'>Engage Bilingual Learners</h2> 3581 3582 <ul> 3583 <li>Authentic Spanish Adaptations (not translated)</li> 3584 <li>Dual-language alignment</li> 3585 <li>Supports EL growth + core literacy</li> 3586 </ul> 3587
3588 <a href = '/pages/shop-spanish' class = 'hero-button'>Shop Spanish Resources</a> 3589 3590 </div> 3591 3592 <div class = 'struggling-readers-image'> 3593 3594 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-spanish-books.png' alt = 'Spanish Books'> 3595 3596 </div> 3597 3598 </div> 3599 3600 </div> 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 <div class = 'shop-by-category'> 3614 3615 <div class = 'section-heading'> 3616 3617 <h3>Featured Literacy Resources</h3> 3618 3619 </div> 3620 3621 <div class = 'flex space baseline wrap'> 3622 3623 <div class = 'single-cat'> 3624 3625 <a href = '/collections/sets-by-reading-level'> 3626 3627 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-reading-level-sets.png' alt = 'Reading Level Sets'> 3628 3629 <span class = 'title'>Reading Level Sets</span> 3630 3631 </a> 3632 3633 </div> 3634 3635 <div class = 'single-cat'> 3636 3637 <a href = '/collections/informational-texts'> 3638 3639 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-knowledge-building-sets.png' alt = 'Knowledge Building Sets'> 3640 3641 <span class = 'title'>Knowledge Building Sets</span> 3642 3643 </a> 3644 3645 </div> 3646 3647 <div class = 'single-cat'> 3648 3649 <a href = '/collections/chapter-books'> 3650 3651 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-chapter-books.png' alt = 'Chapter Books and Biographies'> 3652 3653 <span class = 'title'>Chapter Books & Biographies</span> 3654 3655 </a> 3656 3657 </div> 3658 3659 <div class = 'single-cat'> 3660 3661 <a href = '/pages/whole-group-read-alouds'> 3662 3663 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-read-aloud-books.png' alt = 'Read-Aloud Books'> 3664 3665 <span class = 'title'>Whole Group <br>Read-Aloud Books</span> 3666 3667 </a> 3668 3669 </div> 3670 3671 </div> 3672 3673 </div> 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 <div class = 'series-spotlight-section'> 3687 3688 <h2>Series Spotlight</h2> 3689 3690 <div class = 'spotlight-slider-wrapper'> 3691 3692 <button class = 'spotlight-arrow prev' id = 'spotlightPrevArrow'>â¹</button> 3693 3694 <div class = 'spotlight-slider-container'> 3695 3696 <div class = 'spotlight-slider' id = 'spotlightSlider'> 3697 3698 <div class = 'spotlight-slide'> 3699 3700 <div class = 'spotlight-image'> 3701 3702 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-series-spotlight-fables-and-the-real-world.png' alt = 'Fables & the Real World'> 3703 3704 </div> 3705 3706 <div class = 'spotlight-content'> 3707 3708 <h3>Fables & Real World</h3> 3709 3710 <p><b>Why teachers use this series:</b></p> 3711 3712 <ul> 3713 <li>Paired fiction and nonfiction texts build compare-and-contrast skills</li> 3714 <li>Classic moral stories strengthen comprehension and critical thinking</li> 3715 <li>Nonfiction titles build vocabulary and foster a better understanding of the real world</li> 3716 </ul> 3717 3718 <a href = '/collections/fables-and-the-real-world' class = 'spotlight-button'>Browse the Series</a> 3719 3720 <a href = '/pages/fables-and-the-real-world-narrative-text-sample' class = 'spotlight-button' target = '_blank'>View Sample</a> 3721 3722 </div> 3723 3724 </div> 3725 3726 <div class = 'spotlight-slide'> 3727 3728 <div class = 'spotlight-image'> 3729 3730 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-series-spotlight-kid-lit.png' alt = 'Kid Lit'> 3731 3732 </div> 3733 3734 <div class = 'spotlight-content'> 3735 3736 <h3>Kid Lit</h3> 3737 3738 <p><b>Why teachers use this series:</b></p> 3739 3740 <ul> 3741 <li>Paired fiction and nonfiction titles strengthen comprehension</li> 3742 <li>Carefully crafted text supports emerging readers (Levels AâD)</li> 3743 <li>Engaging topics build vocabulary and real-world connections</li> 3744 </ul> 3745 3746 <a href = '/collections/kid-lit' class = 'spotlight-button'>Browse the Series</a> 3747 3748 <a href = '/pages/kid-lit-narrative-text-sample' class = 'spotlight-button' target = '_blank'>View Sample</a> 3749 3750 </div> 3751 3752 </div> 3753 3754 <div class = 'spotlight-slide'> 3755 3756 <div class = 'spotlight-image'> 3757 3758 <img loading = 'lazy' src = 'https://cdn.shopify.com/s/files/1/2137/3313/files/homepage-series-spotlight-joy-cowley-books.png' alt = 'Joy Cowley Books'> 3759 3760 </div> 3761 3762 <div class = 'spotlight-content'> 3763 3764 <h3>Joy Cowley Books</h3> 3765 3766 <p><b>Why teachers love these books:</b></p> 3767 3768 <ul> 3769 <li>Beloved stories that build reading confidence and fluency</li> 3770 <li>Rhythmic language and rich vocabulary support developing readers</li> 3771 <li>Big book and small book formats for shared & independent reading</li> 3772 </ul> 3773 3774 <a href = '/collections/joy-cowley' class = 'spotlight-button'>Browse the Series</a> 3775 3776 <a href = '/pages/joy-cowley-collection-sample' class = 'spotlight-button' target = '_blank'>View Sample</a> 3777 3778 </div> 3779 3780 </div> 3781
3782 </div> 3783 3784 </div> 3785 3786 <button class = 'spotlight-arrow next' id = 'spotlightNextArrow'>âº</button> 3787 3788 </div> 3789 3790 </div> 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 <div class = 'testimonial-section'> 3804 3805 <h2>What Our Customers <br class = 'mobile-add-480'>Are Saying</h2> 3806 3807 <div class = 'testimonial-slider-wrapper'> 3808 3809 <button class = 'slider-arrow prev' id = 'prevArrow'>â¹</button> 3810 3811 <div class = 'testimonial-slider-container'> 3812 3813 <div class = 'testimonial-slider' id = 'testimonialSlider'> 3814 3815 <div class = 'testimonial-card'> 3816 <div class = 'testimonial-text'>"I LOVE Hameray products. As a reading specialist, Iâm always looking for quality literacy materials that support early reading development and align with the Science of Reading."</div> 3817 <div class = 'stars'>â â â â â </div> 3818 <div class = 'customer-name'>Patrice D.</div> 3819 <div class = 'customer-title'>Reading Specialist</div> 3820 </div> 3821 3822 <div class = 'testimonial-card'> 3823 <div class = 'testimonial-text'>"Hameray provides amazing big books with vibrant pictures that our Kindergarten and First Grade students love. Itâs exciting to see their faces when they realize they can 'read' an entire book."</div> 3824 <div class = 'stars'>â â â â â </div> 3825 <div class = 'customer-name'>Miriam T.</div> 3826 <div class = 'customer-title'>Reading Coach</div> 3827 </div> 3828 3829 <div class = 'testimonial-card'> 3830 <div class = 'testimonial-text'>"I love the Kid Lit series. The illustrations reflect the diversity of our students, and I plan to use more of these books in my classroom next year."</div> 3831 <div class = 'stars'>â â â â â </div> 3832 <div class = 'customer-name'>Teresa C.</div> 3833 <div class = 'customer-title'>Kindergarten Teacher</div> 3834 </div> 3835 3836 <div class = 'testimonial-card'> 3837 <div class = 'testimonial-text'>"My Title I students absolutely love the Zoozoo animal books â the pictures, easier text, and informational back page extend learning beautifully. My students and I also love Mrs. Wishy-Washy. Thank you for publishing such wonderful and engaging books!"</div> 3838 <div class = 'stars'>â â â â â </div> 3839 <div class = 'customer-name'>Sarah D.</div> 3840 <div class = 'customer-title'>Title 1 Teacher</div> 3841 </div> 3842 3843 <div class = 'testimonial-card'> 3844 <div class = 'testimonial-text'>"I love this [Story World Real World] series! I place leveled collections of books in book bags for schools and public libraries. The folk-tale/fairy-tale strands at the lower levels are the perfect companion for the higher levels. I particularly value the shorter length for the Real-World books, as beginning readers are easily overwhelmed by too-long informational text."</div> 3845 <div class = 'stars'>â â â â â </div> 3846 <div class = 'customer-name'>Diane K.</div> 3847 <div class = 'customer-title'>Educational Consultant</div> 3848 </div> 3849 3850 </div> 3851 3852 </div> 3853 3854 <button class = 'slider-arrow next' id = 'nextArrow'>âº</button> 3855 3856 </div> 3857 3858 </div> 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 <div class = 'about-hameray-section' style = 'max-width: 860px; margin: 0 auto; padding: 56px 24px 40px; text-align: center;'> 3872 3873 <h2>About Hameray Publishing</h2> 3874 3875 <p style = 'font-size: 17px; line-height: 1.8; margin-top: 18px;'>Hameray Publishing is a children's educational publisher based in Los Angeles, California, founded in 2008. We publish more than 2,000 titles for K–5 classrooms — <a href = '/pages/build-phonics'>decodable books</a>, fiction and nonfiction books, big books, and <a href = '/pages/shop-spanish'>authentic Spanish and bilingual editions</a> — created with teachers and trusted by 10,000+ schools across the United States. Hameray also publishes three beloved Joy Cowley series for U.S. classrooms — the <a href = '/collections/joy-cowley-collection'>Joy Cowley Collection</a>, <a href = '/collections/joy-cowley-early-birds'>Joy Cowley Early Birds</a>, and <a href = '/collections/joy-cowley-classics'>Joy Cowley Classics</a> — featuring Mrs. Wishy-Washy and other favorite characters.</p> 3876 3877 <p style = 'margin-top: 14px;'><a href = '/pages/about-us'>Learn more about Hameray →</a></p> 3878 3879 </div> 3880 3881 3882 3883 3884 3885 3886 <div class = 'logo-slider-section'> 3887 3888 <div class = 'logo-slider-container'> 3889 3890 <div class = 'logo-slider-track'> 3891 3892 <!-- Part 1 --> 3893 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-new-yor
3893k-city-schools.jpg' alt = 'New York City Schools'> 3894 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-austin-isd.jpg' alt = 'Austin ISD'> 3895 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-cleveland-county-schools.jpg' alt = 'Cleveland County Schools'> 3896 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-francisco-unified.jpg' alt = 'San Francisco Unified'> 3897 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-madison-schools-district.jpg' alt = 'Madison Schools District'> 3898 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-diego-unified.jpg' alt = 'San Diego Unified'> 3899 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-fairfax-county-public-schools.jpg' alt = 'Fairfax County Public Schools'> 3900 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-elizabeth-public-schools.jpg' alt = 'Elizabeth Public Schools'> 3901 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-los-angeles-unified.jpg' alt = 'Los Angeles Unified'> 3902 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-clark-county-school-district.jpg' alt = 'Clark County School District'> 3903 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-nashville-public-schools.jpg' alt = 'Nashville Public Schools'> 3904 3905 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-boston-public-schools.jpg' alt = 'Boston Public Schools'> 3906 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-springdale-public-schools.jpg' alt = 'Springdale Public Schools'> 3907 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-highline-public-schools.jpg' alt = 'Highline Public Schools'> 3908 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-mateo-foster-city-school-district.jpg' alt = 'San Mateo Foster City School District'> 3909 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-chicago-public-schools.jpg' alt = 'Chicago Public Schools'> 3910 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-fort-worth-isd.jpg' alt = 'Fort Worth ISD'> 3911 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-columbus-city-schools.jpg' alt = 'Columbus City Schools'> 3912 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-denver-public-schools.jpg' alt = 'Denver Public Schools'> 3913 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-miami-dade-county-schools.jpg' alt = 'Miami Dade County Schools'> 3914 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-pinellas-county-school-district.jpg' alt = 'Pinellas County School District'> 3915 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-district-196.jpg' alt = 'District 196'> 3916 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-des-moines-public-schools.jpg' alt = 'Des Moines Public Schools'> 3917 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-philadelphia-school-district.jpg' alt = 'Philadelphia School District'> 3918 3919 <!-- Part 2 --> 3920 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-new-york-city-schools.jpg' alt = 'New York City Schools'> 3921 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-austin-isd.jpg' alt = 'Austin ISD'> 3922 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-cleveland-county-schools.jpg' alt = 'Cleveland County Schools'> 3923 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-francisco-unified.jpg' alt = 'San Francisco Unified'> 3924 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-madison-schools-district.jpg' alt = 'Madison Schools District'> 3925 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-diego-unified.jpg' alt = 'San Diego Unified'> 3926 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-fairfax-county-public-schools.jpg' alt = 'Fairfax County Public Schools'> 3927 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-elizabeth-public-schools.jpg' alt = 'Elizabeth Public Schools'> 3928 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-los-angeles-unified.jpg' alt = 'Los Angeles Unified'> 3929 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-clark-county-school-district.jpg' alt = 'Clark County School District'> 3930 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-nashville-public-schools.jpg' alt = 'Nashville Public Schools'> 3931 3932 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-boston-public-schools.jpg' alt = 'Boston Public Schools'> 3933 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-springdale-public-schools.jpg' alt = 'Springdale Public Schools'> 3934 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-highline-public-schools.jpg' alt = 'Highline Public Schools'> 3935 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-san-mateo-foster-city-school-district.jpg' alt = 'San Mateo Foster City School District'> 3936 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-chicago-public-schools.jpg' alt = 'Chicago Public Schools'> 3937 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-fort-worth-isd.jpg' alt = 'Fort Worth ISD'> 3938 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-columbus-city-schools.jpg' alt = 'Columbus City Schools'> 3939 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-denver-public-schools.jpg' alt = 'Denver Public Schools'> 3940 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-miami-dade-county-schools.jpg' alt = 'Miami Dade County Schools'> 3941 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-pinellas-county-school-district.jpg' alt = 'Pinellas County School District'> 3942 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-district-196.jpg' alt = 'District 196'> 3943 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-des-moines-public-schools.jpg' alt = 'Des Moines Public Schools'> 3944 <img loading = 'lazy' src = 'https://hameray-images.s3.us-west-1.amazonaws.com/homepage-philadelphia-school-district.jpg' alt = 'Philadelphia School District'> 3945 3946 </div> 3947 3948 </div> 3949 3950 </div> 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 <div class = 'quote-section'> 3963 3964 <h2>Equipping Classrooms Across Schools and Districts</h2> 3965 3966 <div class = 'quote-container'> 3967 3968 <div class = 'quote-content'> 3969 3970 <ul> 3971 <li>Grade-level sets</li> 3972 <li>Bilingual resources</li> 3973 <li>Flexible purchasing</li> 3974 </ul> 3975 3976 </div> 3977 3978 <a href = '/pages/get-help-choosing-books' class = 'quote-button'>Get a Quote for Your School or District</a> 3979 3980 </div> 3981 3982 </div> 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 <div class = 'newsletter-section'> 3996 3997 <div class = 'newsletter-container'> 3998 3999 <div class = 'newsletter-content'> 4000 4001 <h2>Get Literacy Tips + 10% Off Your Next Order!</h2> 4002 4003 <p class = 'description'>Join our literacy community for teaching tips, classroom resources, and exclusive offers.</p> 4004 4005 <form class = 'newsletter-form'> 4006 4007 <input type = 'email' name = 'email' class = 'newsletter-input' placeholder = 'Enter your email address' required> 4008 4009 <button type = 'submit' class = 'newsletter-submit'>Get 10% Off</button> 4010 4011 </form> 4012 4013 <div class = 'form-success-message'> 4014 4015 <p>Thank you for joining our subscriber list.</p> 4016 4017 <p>Your 10% Off Promo Code is <strong>HAMERAY10</strong></p> 4018
4019 </div> 4020 4021 <p class = 'newsletter-footer'>Enter your email to receive your <br class = 'mobile-add-480 mobile-hide-360'><b>10% discount code</b></p> 4022 4023 </div> 4024 4025 </div> 4026 4027 </div> 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038</div> 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048
4049<script src = '//www.hameraypublishing.com/cdn/shop/t/3/assets/homepage.js?v=1057171577087246161776291166'></script>
4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061</main> 4062 4063 4064 4065 4066 4067<div id="shopify-section-footer" class="shopify-section"><footer> 4068 <div class="page-width"> 4069 <div id = 'footer-address' class="flex space flex-start"> 4070 <div class="logo"> 4071 <a href="https://www.hameraypublishing.com"><img src="//www.hameraypublishing.com/cdn/shop/t/3/assets/brandmark.svg?v=98579313773125210591772694707" alt="Hameray Publishing" /></a> 4072 </div> 4073 <div class="address"> 4074 <h3>Hameray Publishing</h3> 4075 <p><span style="text-decoration:underline">Mailing Address</span><br/>10866 Washington Boulevard #808<br/>Culver City, CA 90232</p><p>Â </p><p><span style="text-decoration:underline">Physical Address</span><br/>5212 Venice Boulevard<br/>Los Angeles, CA 90019</p><p>Â </p><p><a href="tel:+18669186173" title="tel:+18669186173">866.918.6173</a></p><p><a href="mailto:[email protected]" title="mailto:[email protected]">[email protected]</a></p> 4076 </div> 4077 <div class="footer-nav"> 4078 <h3>Shop</h3> 4079 <ul class="footer-nav-list"> 4080 4081 <li><a href="/pages/shop-by-category" title="">Shop by Category</a></li> 4082 4083 <li><a href="/pages/shop-by-series" title="">Shop by Series</a></li> 4084 4085 <li><a href="/pages/spanish-collections" title="">Shop Spanish</a></li> 4086 4087 <li><a href="/collections/decodable-books" title="">Shop Decodable Books</a></li> 4088 4089 <li><a href="/pages/shop-by-phonics" title="">Shop Phonics</a></li> 4090 4091 <li><a href="/pages/all-collections" title="">Shop All</a></li> 4092 4093 </ul> 4094 </div> 4095 <div class="footer-nav"> 4096 <h3>Customer Care</h3> 4097 <ul class="footer-nav-list"> 4098 4099 <li><a href="/pages/about-us" title="">About Us</a></li> 4100 4101 <li><a href="/pages/contact-us" title="">Contact Us</a></li> 4102 4103 <li><a href="/pages/catalogs-and-brochures" title="">Catalog</a></li> 4104 4105 <li><a href="/pages/order-form" title="">Order Form</a></li> 4106 4107 <li><a href="/pages/wishlist" title="">Wishlist</a></li> 4108 4109 <li><a href="/pages/get-help-choosing-books" title="">Get Help Choosing Books</a></li> 4110 4111 </ul> 4112 </div> 4113 <div class="footer-nav"> 4114 <h3>Resources</h3> 4115 <ul class="footer-nav-list"> 4116 4117 <li><a href="/pages/teacher-resources" title="">Teacher Resources</a></li> 4118 4119 <li><a href="/pages/sample-books" title="">Book Samples</a></li> 4120 4121 <li><a href="/pages/call-for-contributors" title="">Be a Contributor</a></li> 4122 4123 <li><a href="/blogs/all" title="">Blog</a></li> 4124 4125 <li><a href="/pages/faq" title="">FAQ</a></li> 4126 4127 </ul> 4128 </div> 4129 4130 <div class="newsletter-social"><ul style = 'margin-top: 0px !important;'> 4131 4132 4133 4134 4135 4136 4137 4138 <li> 4139 <a href="https://www.facebook.com/hameray" target="_blank" title="Hameray Publishing on Facebook"> 4140 4141 <i class="fa fa-facebook-f"></i> 4142 4143 <span class="icon-fallback-text">Facebook</span> 4144 </a> 4145 </li> 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 <li> 4156 <a href="https://twitter.com/hameray" target="_blank" title="Hameray Publishing on Twitter"> 4157 4158 <i class="fa fa-twitter"></i> 4159 4160 <span class="icon-fallback-text">Twitter</span> 4161 </a> 4162 </li> 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 <li> 4173 <a href="https://pinterest.com/hameray" target="_blank" title="Hameray Publishing on Pinterest"> 4174 4175 <i class="fa fa-pinterest-p"></i> 4176
4177 <span class="icon-fallback-text">Pinterest</span> 4178 </a> 4179 </li> 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 <li> 4190 <a href="https://www.instagram.com/hameraypublishing" target="_blank" title="Hameray Publishing on Instagram"> 4191 4192 <i class="fa fa-instagram"></i> 4193 4194 <span class="icon-fallback-text">Instagram</span> 4195 </a> 4196 </li> 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 </ul> 4233 </div> 4234 4235 </div> 4236 </div> 4237 <div class="credit"> 4238 <div class="page-width text-center"> 4239 © 2026 <a href="/" title="">Hameray Publishing</a> 4240 </div> 4241</footer> 4242 4243</div> 4244 4245 4246 4247 4248
4249<script> 4250 4251 var cartjson = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 4252 4253</script>
4253 4254 4255 4256 4257 4258 4259<!-- Pop-Up --> 4260 4261 4262<link href="//www.hameraypublishing.com/cdn/shop/t/3/assets/popup.css?v=54841740989800051651777262788" rel="stylesheet" type="text/css" media="all" /> 4263 4264 <div id = 'popup-overlay' class = 'popup-overlay'> 4265 4266 <div class = 'popup-modal'> 4267 4268 <button class = 'popup-close' id = 'popup-close'>×</button> 4269 4270 <div class = 'popup-content'> 4271 4272 <h2>Find the Right BooksâFast</h2> 4273 4274 <p class = 'popup-description'>Get help selecting resources to improve phonics, fluency, <br class = 'mobile-hide'>and bilingual literacy for Kâ5 students.</p> 4275 4276 <form class = 'popup-form' id = 'popup-form'> 4277 <div class = 'popup-role-group' id = 'popup-role'> 4278 <span class = 'popup-role-label'>Tell us who you are:</span> 4279 <span class = 'popup-role-error' id = 'popup-role-error'>Please select a role</span> 4280 <div class = 'popup-role-options'> 4281 <label class = 'popup-role-option'> 4282 <input type = 'checkbox' name = 'role' value = 'Teacher'> 4283 <span><span class = 'popup-role-emoji'>ð©âð« </span>Teacher</span> 4284 </label> 4285 <label class = 'popup-role-option'> 4286 <input type = 'checkbox' name = 'role' value = 'Administrator/Coach'> 4287 <span><span class = 'popup-role-emoji'>ð« </span>Admin<span class = 'popup-role-coach'> / Coach</span></span> 4288 </label> 4289 <label class = 'popup-role-option'> 4290 <input type = 'checkbox' name = 'role' value = 'Other'> 4291 <span><span class = 'popup-role-emoji'>ð¨âð©âð§ </span>Other</span> 4292 </label> 4293 </div> 4294 </div> 4295 <input type = 'email' name = 'email' class = 'popup-input' placeholder = 'Enter your email address'> 4296 <span class = 'popup-role-error' id = 'popup-email-error'>Please enter a valid email address</span> 4297 <button type = 'button' class = 'popup-submit' id = 'popup-submit-btn'>Help Me Find the Right Books</button> 4298 </form> 4299 4300 4301 <div class = 'popup-footer'> 4302 <p><i>Takes a few seconds. Saves hours of searching.</i></p> 4303 <p style = 'margin-bottom: 0px; font-weight: 700; color: #f58436; font-size: 16px; margin-top: 17.5px;'>Get 10% off your first order!</p> 4304 </div> 4305 4306 <div class = 'popup-success' id = 'popup-success'> 4307 <p>Greatâlet's start with what you need most!</p> 4308 <p>Pick your goal. Weâll show you where to start.</p> 4309 <p style = 'font-size: 15px;'><i>(Your 10% off is ready to useâcode: <strong>HAMERAY10</strong>)</i></p> 4310 <div class = 'popup-success-buttons'> 4311 <a href = '/pages/build-phonics' class = 'popup-success-btn'>Build Strong Phonics Foundations</a> 4312 <a href = '/pages/boost-fluency' class = 'popup-success-btn'>Turn Choppy Reading into Smooth Fluency</a> 4313 <a href = '/pages/shop-spanish' class = 'popup-success-btn'>Support Spanish & Bilingual Learners</a> 4314 <a href = '/collections/classroom-libraries' class = 'popup-success-btn'>Fill Your Classroom Library (By Grade)</a> 4315 <a href = '/pages/whole-group-read-alouds' class = 'popup-success-btn'>See Read-Alouds & Big Books</a> 4316 </div> 4317 <a href = '#' class = 'popup-continue-shopping' id = 'popup-continue-shopping'>Continue Browsing</a> 4318 </div> 4319 4320 </div> 4321 4322 </div> 4323 4324 </div> 4325 4326 4327 <div id = 'popup-tab' class = 'popup-tab'> 4328 4329 <span id = 'popup-tab-text'>Get 10% Off</span> 4330 <span id = 'popup-tab-close' class = 'popup-tab-close'>×</span> 4331 4332 </div> 4333 4334
4334<script src = '//www.hameraypublishing.com/cdn/shop/t/3/assets/popup.js?v=127342988660773128281777262788' defer></script>
4334 4335 4336 4337 4338 4339 4340 4341 4342
4343<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4343 4344</body> 4345</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.