PageSourceSearch

https://solano.com/pages/about-solano

html solano.com collected 2026-10-02 23:48:12 UTC 64,242 bytes, 1,100 lines download raw bytes

1<!doctype html>
2<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
3<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en"> <![endif]-->
5<!--[if IE 9 ]><html class="ie9 no-js"> <![endif]-->
6<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
7<head>
8
9  <!-- Basic page needs ================================================== -->
10  <meta charset="utf-8">
11  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
12
13  
14
15  <!-- Title and description ================================================== -->
16  <title>
17  About Solano &ndash; Solano Press Books
18  </title>
19
20  
21  <meta name="description" content="Books That Matter from Solano Press Solano Press Books is a California publishing house specializing in land use, planning law, urban affairs, and environmental subjects. Our publications have earned a reputation for being definitive references on a wide variety of land use and land use-related legal matters. Valuable ">
22  
23
24  <!-- Social meta ================================================== -->
25  
26
27  <meta property="og:type" content="website">
28  <meta property="og:title" content="About Solano">
29  <meta property="og:url" content="https://solano.com/pages/about-solano">
30
31
32  <meta property="og:description" content="Books That Matter from Solano Press Solano Press Books is a California publishing house specializing in land use, planning law, urban affairs, and environmental subjects. Our publications have earned a reputation for being definitive references on a wide variety of land use and land use-related legal matters. Valuable ">
33
34<meta property="og:site_name" content="Solano Press Books">
35
36
37  <meta name="twitter:card" content="summary">
38
39
40
41
42
43  <!-- Helpers ================================================== -->
44  <link rel="canonical" href="https://solano.com/pages/about-solano">
45  <meta name="viewport" content="width=device-width,initial-scale=1">
46  <meta name="theme-color" content="#efa128">
47
48  <!-- CSS ================================================== -->
49  <link href="//solano.com/cdn/shop/t/2/assets/timber.scss.css?v=68397187645703530661709335829" rel="stylesheet" type="text/css" media="all" />
50  <link href="//solano.com/cdn/shop/t/2/assets/theme.scss.css?v=79965251139101327371709335829" rel="stylesheet" type="text/css" media="all" />
51
52  
53
54  
55    
56    
57    <link href="//fonts.googleapis.com/css?family=Arvo:400" rel="stylesheet" type="text/css" media="all" />
58  
59
60
61
62
63  
63<script>
64    window.theme = window.theme || {};
65
66    var theme = {
67      strings: {
68        zoomClose: "Close (Esc)",
69        zoomPrev: "Previous (Left arrow key)",
70        zoomNext: "Next (Right arrow key)"
71      },
72      settings: {
73        // Adding some settings to allow the editor to update correctly when they are changed
74        themeBgImage: false,
75        customBgImage: '',
76        enableWideLayout: false,
77        typeAccentTransform: false,
78        typeAccentSpacing: false,
79        baseFontSize: '16px',
80        headerBaseFontSize: '32px',
81        accentFontSize: '16px'
82      },
83      variables: {
84        mediaQueryMedium: 'screen and (max-width: 768px)',
85        bpSmall: false
86      },
87      moneyFormat: "${{amount}}"
88    }
89
90    document.documentElement.className = document.documentElement.className.replace('no-js', 'supports-js');
91  </script>
91
92
93  <!-- Header hook for plugins ================================================== -->
94  
94<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
94<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/20948333/digital_wallets/dialog">
95<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
95<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
95
96<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
97<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=20948333" crossorigin="anonymous"></script>
vendor: 1 bytes, line 97
97
98<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":20948333,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/20948333","merchantName":"Solano Press Books","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Solano Press Books","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 98
98
99<script id="shopify-features" type="application/json">{"accessToken":"60b2f3c60eb493103d87dec63fa18ff5","betas":["rich-media-storefront-analytics"],"domain":"solano.com","predictiveSearch":true,"shopId":20948333,"locale":"en"}</script>
vendor: 1 bytes, line 99
99
100<script>var Shopify = Shopify || {};
101Shopify.shop = "solano-press-books.myshopify.com";
102Shopify.locale = "en";
103Shopify.currency = {"active":"USD","rate":"1.0"};
104Shopify.country = "US";
105Shopify.theme = {"name":"minimal","id":158940555,"schema_name":"Minimal","schema_version":"3.3.0","theme_store_id":380,"role":"main"};
106Shopify.theme.handle = "null";
107Shopify.theme.style = {"id":null,"handle":null};
108Shopify.cdnHost = "solano.com/cdn";
109Shopify.routes = Shopify.routes || {};
110Shopify.routes.root = "/";
111Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
112Shopify.SignInWithShop = Shopify.SignInWithShop || {};
113Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
114Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 114
114
115<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 115
115
116<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 116
116
117<script>
118  window.ShopifyPay = window.ShopifyPay || {};
119  window.ShopifyPay.apiHost = "shop.app\/pay";
120  window.ShopifyPay.redirectState = null;
121</script>
vendor: 1 bytes, line 121
121
122<script>
123  window.Shopify = window.Shopify || {};
124  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
125  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
126  window.Shopify.SignInWithShop.eligible = true;
127</script>
vendor: 1 bytes, line 127
127
128<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 128
128
129<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 129
129
130<script type="module">
131  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
132
133  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
134
135</script>
vendor: 1 bytes, line 135
135
136<script>
137  window.Shopify = window.Shopify || {};
138  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
139  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"]};
140</script>
vendor: 1 bytes, line 140
140
141<script id="__st">var __st={"a":20948333,"offset":-25200,"reqid":"0c29be46-d4f1-4dd1-a147-33ef4c9ee640-1790984892","pageurl":"solano.com\/pages\/about-solano","s":"pages-224695499","u":"4846703056ac","p":"page","rtyp":"page","rid":224695499};</script>
vendor: 1 bytes, line 141
141
142<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 142
142
143<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,!0)}();</script>
vendor: 1 bytes, line 143
143
144<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//solano.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 144
144
145<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 = "//solano.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>
145<script crossorigin="anonymous" defer="defer" src="//solano.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 145
145
146<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 146
146
147<script>
148  window.Shopify = window.Shopify || {};
149  window.Shopify.MCP = window.Shopify.MCP || {};
150  window.Shopify.MCP.enabled = true;
151  window.Shopify.MCP.shop = "solano-press-books.myshopify.com";
152  window.Shopify.MCP.mcpEndpoint = "https:\/\/solano.com\/api\/mcp";
153  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"]}}];
154</script>
vendor: 1 bytes, line 154
154
155<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("\/\/solano.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
156</script>
vendor: 1 bytes, line 156
156
157<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://solano.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
158</script>
vendor: 1 bytes, line 158
158
159<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
160  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);
161</script>
vendor: 1 bytes, line 161
161
162<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})}}));
163</script>
163
164<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://solano.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
165<style id="shopify-accelerated-checkout-cart">
166        #shopify-buyer-consent {
167  margin-top: 1em;
168  display: inline-block;
169  width: 100%;
170}
171
172#shopify-buyer-consent.hidden {
173  display: none;
174}
175
176#shopify-subscription-policy-button {
177  background: none;
178  border: none;
179  padding: 0;
180  text-decoration: underline;
181  font-size: inherit;
182  cursor: pointer;
183}
184
185#shopify-subscription-policy-button::before {
186  box-shadow: none;
187}
188
189      </style>
190
191<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
191
192
193  
194
195<!--[if lt IE 9]>
196<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
196
197<link href="//solano.com/cdn/shop/t/2/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" />
198<link href="//solano.com/search?q=1dd89a53d9bdf26ddb8fa4f38bcf6856" id="respond-redirect" rel="respond-redirect" />
199<script src="//solano.com/search?q=1dd89a53d9bdf26ddb8fa4f38bcf6856" type="text/javascript"></script>
199
200<![endif]-->
201
202
203  
203<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js" type="text/javascript"></script>
203
204
205  <!--[if (gt IE 9)|!(IE)]><!-->
205<script src="//solano.com/cdn/shop/t/2/assets/lazysizes.min.js?v=172743651710887164711498076894" async="async"></script>
205<!--<![endif]-->
206  <!--[if lte IE 9]>
206<script src="//solano.com/cdn/shop/t/2/assets/lazysizes.min.js?v=172743651710887164711498076894"></script>
206<![endif]-->
207
208  
209  
210
211<script src="https://cdn.shopify.com/extensions/a424d896-690a-47f2-a3ae-a82565eec47e/preorder-now-wolf-5/assets/preorde_panda.js" type="text/javascript" defer="defer"></script>
211
212<meta property="og:image" content="https://cdn.shopify.com/s/files/1/2094/8333/files/LogoSolano_02.jpg?height=628&pad_color=ffffff&v=1613151794&width=1200" />
213<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/2094/8333/files/LogoSolano_02.jpg?height=628&pad_color=ffffff&v=1613151794&width=1200" />
214<meta property="og:image:width" content="1200" />
215<meta property="og:image:height" content="628" />
216<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
217<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: 20948333,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 217
217
218<script>
219  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
220</script>
vendor: 1 bytes, line 220
220
221<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}
221).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: 20948333,storefrontBaseUrl: "https://solano.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://solano.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"90112184","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS"],"name":"Google Analytics tag (migrated)"},{"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":"Solano Press Books","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"solano-press-books.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/solano.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://solano.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"158940555","themeStoreId":"380","themePublished":"true","eventMetadataId":"49b112c2-99d2-4248-a720-4ce4ba659f4b","pageType":"page","resourceId":"224695499","shopId":"20948333","storefrontBaseUrl":"https:\/\/solano.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>
221<script>
222  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
223  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
224  window.ShopifyAnalytics.meta.currency = 'USD';
225  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":224695499,"requestId":"0c29be46-d4f1-4dd1-a147-33ef4c9ee640-1790984892"}};
226  for (var attr in meta) {
227    window.ShopifyAnalytics.meta[attr] = meta[attr];
228  }
229</script>
vendor: 1 bytes, line 229
229
230<script class="analytics">
231  (function () {
232    var customDocumentWrite = function(content) {
233      var jquery = null;
234
235      if (window.jQuery) {
236        jquery = window.jQuery;
237      } else if (window.Checkout && window.Checkout.$) {
238        jquery = window.Checkout.$;
239      }
240
241      if (jquery) {
242        jquery('body').append(content);
243      }
244    };
245
246    var hasLoggedConversion = function(token) {
247      if (token) {
248        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
249      }
250      return false;
251    }
252
253    var setCookieIfConversion = function(token) {
254      if (token) {
255        var twoMonthsFromNow = new Date(Date.now());
256        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
257
258        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
259      }
260    }
261
262    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
263    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
264    if (trekkie.integrations) {
265      return;
266    }
267    trekkie.methods = [
268      'identify',
269      'page',
270      'ready',
271      'track',
272      'trackForm',
273      'trackLink'
274    ];
275    trekkie.factory = function(method) {
276      return function() {
277        var args = Array.prototype.slice.call(arguments);
278        args.unshift(method);
279        trekkie.push(args);
280        if (method == 'track' || method == 'page') {
281          var pageUrl;
282          try {
283            pageUrl = window.location.href;
284          } catch (e) {}
285          var pageReferrer;
286          try {
287            pageReferrer = document.referrer;
288          } catch (e) {}
289          try {
290            if (window.__TREKKIE_SHIM_QUEUE == null) {
291              window.__TREKKIE_SHIM_QUEUE = [];
292            }
293            window.__TREKKIE_SHIM_QUEUE.push({
294              from: 'trekkie-stub',
295              method: method,
296              args: args.slice(1),
297              pageContext: {
298                url: pageUrl,
299                referrer: pageReferrer
300              }
301            });
302          } catch (e) {
303            // no-op
304          }
305        }
306        return trekkie;
307      };
308    };
309    for (var i = 0; i < trekkie.methods.length; i++) {
310      var key = trekkie.methods[i];
311      trekkie[key] = trekkie.factory(key);
312    }
313    trekkie.load = function(config) {
314      trekkie.config = config || {};
315      trekkie.config.initialDocumentCookie = document.cookie;
316      var first = document.getElementsByTagName('script')[0];
317var script = document.createElement('script');
318script.type = 'text/javascript';
319script.onerror = function(e) {
320  var scriptFallback = document.createElement('script');
321  scriptFallback.type = 'text/javascript';
322  scriptFallback.onerror = function(error) {
323          var Monorail = {
324      produce: function produce(monorailDomain, schemaId, payload) {
325        var currentMs = new Date().getTime();
326        var event = {
327          schema_id: schemaId,
328          payload: payload,
329          metadata: {
330            event_created_at_ms: currentMs,
331            event_sent_at_ms: currentMs
332          }
333        };
334        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
335      },
336      sendRequest: function sendRequest(endpointUrl, payload) {
337        // Try the sendBeacon API
338        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
339          var blobData = new window.Blob([payload], {
340            type: 'text/plain'
341          });
342
343          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
344            return true;
345          } // sendBeacon was not successful
346
347        } // XHR beacon
348
349        var xhr = new XMLHttpRequest();
350
351        try {
352          xhr.open('POST', endpointUrl);
353          xhr.setRequestHeader('Content-Type', 'text/plain');
354          xhr.send(payload);
355        } catch (e) {
356          console.log(e);
357        }
358
359        return false;
360      },
361      isIos12: function isIos12() {
362        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
363      }
364    };
365    Monorail.produce('monorail-edge.shopifysvc.com',
366      'trekkie_storefront_load_errors/1.1',
367      {shop_id: 20948333,
368      theme_id: 158940555,
369      app_name: "storefront",
370      context_url: window.location.href,
371      source_url: "//solano.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
372
373  };
374  scriptFallback.async = true;
375  scriptFallback.src = '//solano.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
376  first.parentNode.insertBefore(scriptFallback, first);
377};
378script.async = true;
379script.src = '//solano.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
380first.parentNode.insertBefore(script, first);
381
382    };
383    trekkie.load(
384      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":20948333,"isMerchantRequest":null,"themeId":158940555,"themeCityHash":"6631563929789988105","contentLanguage":"en","currency":"USD","eventMetadataId":"49b112c2-99d2-4248-a720-4ce4ba659f4b"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
385    );
386
387    var loaded = false;
388    trekkie.ready(function() {
389      if (loaded) return;
390      loaded = true;
391
392      window.ShopifyAnalytics.lib = window.trekkie;
393
394      var originalDocumentWrite = document.write;
395      document.write = customDocumentWrite;
396      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
397      document.write = originalDocumentWrite;
398
399      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
400      var token = match? match[1]: undefined;
401      if (!hasLoggedConversion(token)) {
402        setCookieIfConversion(token);
403        
404      }
405    });
406
407    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":224695499,"requestId":"0c29be46-d4f1-4dd1-a147-33ef4c9ee640-1790984892","shopifyEmitted":true});
408
409    var eventsListenerScript = document.createElement('script');
410    eventsListenerScript.async = true;
411    eventsListenerScript.src = "//solano.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
412    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
413})();</script>
413
414  
414<script>
415  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
416    window.ga = function ga() {
417      (window.ga.q = window.ga.q || []).push(arguments);
418      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
419        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
420      }
421      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.");
422    };
423    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
424      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
425    }
426  }
427</script>
vendor: 1 bytes, line 427
427
428<script
429  defer
430  src="https://solano.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
431  data-application="storefront-renderer"
432  data-shop-id="20948333"
433  data-render-region="gcp-us-central1"
434  data-page-type="page"
435  data-theme-instance-id="158940555"
436  data-theme-name="Minimal"
437  data-theme-version="3.3.0"
438  data-monorail-region="shop_domain"
439  data-resource-timing-sampling-rate="10"
440  data-shs="true"
441  data-shs-beacon="true"
442  data-shs-export-with-fetch="true"
443  data-shs-logs-sample-rate="1"
444  data-shs-beacon-endpoint="https://solano.com/api/collect"
445></script>
445
446<meta name="shopify-y" content="52fe1edb-cf00-462e-9b52-93276a5691ab" data-expiration="1822542492000"><meta name="shopify-s" content="d8060ca4-6152-4b0c-a89f-1f0b14257051" data-expiration="1790986692000"><meta name="new-cookie-storage-activated" content="t">
447</head>
448
449<body id="about-solano" class="template-page" >
450
451  <div id="shopify-section-header" class="shopify-section"><style>
452  .logo__image-wrapper {
453    max-width: 450px;
454  }
455  /*================= If logo is above navigation ================== */
456  
457    .site-nav {
458      
459        border-top: 1px solid #dddddd;
460        border-bottom: 1px solid #dddddd;
461      
462      margin-top: 30px;
463    }
464
465    
466      .logo__image-wrapper {
467        margin: 0 auto;
468      }
469    
470  
471
472  /*============ If logo is on the same line as navigation ============ */
473  
474
475
476  
477</style>
478
479<div data-section-id="header" data-section-type="header-section">
480  <div class="header-bar">
481    <div class="wrapper medium-down--hide">
482      <div class="post-large--display-table">
483
484        
485          <div class="header-bar__left post-large--display-table-cell">
486
487            
488
489            
490
491            
492              <div class="header-bar__module header-bar__search">
493                
494
495
496  <form action="/search" method="get" class="header-bar__search-form clearfix" role="search">
497    
498    <button type="submit" class="btn icon-fallback-text header-bar__search-submit">
499      <span class="icon icon-search" aria-hidden="true"></span>
500      <span class="fallback-text">Search</span>
501    </button>
502    <input type="search" name="q" value="" aria-label="Search" class="header-bar__search-input" placeholder="Search">
503  </form>
504
505
506              </div>
507            
508
509          </div>
510        
511
512        <div class="header-bar__right post-large--display-table-cell">
513
514          
515            <ul class="header-bar__module header-bar__module--list">
516              
517                <li>
518                  <a href="https://solano.com/customer_authentication/redirect?locale=en&amp;region_country=US" id="customer_login_link">Log in</a>
519                </li>
520                <li>or</li>
521                <li>
522                  <a href="https://shopify.com/20948333/account?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzb2xhbm8tcHJlc3MtYm9va3MubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkxNTg5NjkyLCJuYmYiOjE3OTA5ODQ4OTJ9.-575LifVX8izhsFtEG8h9Fdf3Mya0B3DCXqFlzp2VaU" id="customer_register_link">Create account</a>
523                </li>
524              
525            </ul>
526          
527
528          <div class="header-bar__module">
529            <span class="header-bar__sep" aria-hidden="true"></span>
530            <a href="/cart" class="cart-page-link">
531              <span class="icon icon-cart header-bar__cart-icon" aria-hidden="true"></span>
532            </a>
533          </div>
534
535          <div class="header-bar__module">
536            <a href="/cart" class="cart-page-link">
537              Cart
538              <span class="cart-count header-bar__cart-count hidden-count">0</span>
539            </a>
540          </div>
541
542          
543            
544          
545
546        </div>
547      </div>
548    </div>
549    <div class="wrapper post-large--hide">
550      
551        <button type="button" class="mobile-nav-trigger" id="MobileNavTrigger" data-menu-state="close">
552          <span class="icon icon-hamburger" aria-hidden="true"></span>
553          Menu
554        </button>
555      
556      <a href="/cart" class="cart-page-link mobile-cart-page-link">
557        <span class="icon icon-cart header-bar__cart-icon" aria-hidden="true"></span>
558        Cart <span class="cart-count hidden-count">0</span>
559      </a>
560    </div>
561    <ul id="MobileNav" class="mobile-nav post-large--hide">
562  
563  
564  
565  <li class="mobile-nav__link" aria-haspopup="true">
566    
567      <a href="/collections/featured-titles" class="mobile-nav">
568        All Titles
569      </a>
570    
571  </li>
572  
573  
574  <li class="mobile-nav__link" aria-haspopup="true">
575    
576      <a href="/pages/e-books" class="mobile-nav">
577        E-Books
578      </a>
579    
580  </li>
581  
582  
583  <li class="mobile-nav__link" aria-haspopup="true">
584    
585      <a href="/pages/supplements" class="mobile-nav">
586        Supplements
587      </a>
588    
589  </li>
590  
591  
592  <li class="mobile-nav__link" aria-haspopup="true">
593    
594      <a href="/blogs/news" class="mobile-nav">
595        News
596      </a>
597    
598  </li>
599  
600  
601  <li class="mobile-nav__link" aria-haspopup="true">
602    
603      <a href="/pages/about-solano" class="mobile-nav">
604        About Us
605      </a>
606    
607  </li>
608  
609  
610  <li class="mobile-nav__link" aria-haspopup="true">
611    
612      <a href="/pages/book-proposals" class="mobile-nav">
613        Book Proposals
614      </a>
615    
616  </li>
617  
618  
619  <li class="mobile-nav__link" aria-haspopup="true">
620    
621      <a href="/pages/links" class="mobile-nav">
622        Resources
623      </a>
624    
625  </li>
626  
627  
628  <li class="mobile-nav__link" aria-haspopup="true">
629    
630      <a href="https://cdn.shopify.com/s/files/1/2094/8333/files/ordform_v11_abc6d957-37b8-4aa0-936d-041b1700de35.pdf?v=1678995847" class="mobile-nav">
631        Order Form
632      </a>
633    
634  </li>
635  
636  
637  <li class="mobile-nav__link" aria-haspopup="true">
638    
639      <a href="/pages/contact" class="mobile-nav">
640        Contact
641      </a>
642    
643  </li>
644  
645  
646  <li class="mobile-nav__link" aria-haspopup="true">
647    
648      <a href="/collections/previous-editions" class="mobile-nav">
649        Previous Editions
650      </a>
651    
652  </li>
653  
654
655  
656    
657      <li class="mobile-nav__link">
658        <a href="https://solano.com/customer_authentication/redirect?locale=en&amp;region_country=US" id="customer_login_link">Log in</a>
659      </li>
660      <li class="mobile-nav__link">
661        <a href="https://shopify.com/20948333/account?locale=en&region_country=US&buyer_flags=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJzb2xhbm8tcHJlc3MtYm9va3MubXlzaG9waWZ5LmNvbSIsImZsYWdzIjpbXSwiZXhwIjoxNzkxNTg5NjkyLCJuYmYiOjE3OTA5ODQ4OTJ9.-575LifVX8izhsFtEG8h9Fdf3Mya0B3DCXqFlzp2VaU" id="customer_register_link">Create account</a>
662      </li>
663    
664  
665  
666  <li class="mobile-nav__link">
667    
668      <div class="header-bar__module header-bar__search">
669        
670
671
672  <form action="/search" method="get" class="header-bar__search-form clearfix" role="search">
673    
674    <button type="submit" class="btn icon-fallback-text header-bar__search-submit">
675      <span class="icon icon-search" aria-hidden="true"></span>
676      <span class="fallback-text">Search</span>
677    </button>
678    <input type="search" name="q" value="" aria-label="Search" class="header-bar__search-input" placeholder="Search">
679  </form>
680
681
682      </div>
683    
684  </li>
685  
686</ul>
687
688  </div>
689
690  <header class="site-header" role="banner">
691    <div class="wrapper">
692
693      
694        <div class="grid--full">
695          <div class="grid__item">
696            
697              <div class="h1 site-header__logo" itemscope itemtype="http://schema.org/Organization">
698            
699              
700                <noscript>
701                  
702                  <div class="logo__image-wrapper">
703                    <img src="//solano.com/cdn/shop/files/LogoSolano_02_450x.jpg?v=1613151794" alt="Solano Press Books" />
704                  </div>
705                </noscript>
706                <div class="logo__image-wrapper supports-js">
707                  <a href="/" itemprop="url" style="padding-top:36.59003831417624%;">
708                    
709                    <img class="logo__image lazyload"
710                         src="//solano.com/cdn/shop/files/LogoSolano_02_300x300.jpg?v=1613151794"
711                         data-src="//solano.com/cdn/shop/files/LogoSolano_02_{width}x.jpg?v=1613151794"
712                         data-widths="[120, 180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 1944, 2048]"
713                         data-aspectratio="2.7329842931937174"
714                         data-sizes="auto"
715                         alt="Solano Press Books"
716                         itemprop="logo">
717                  </a>
718                </div>
719              
720            
721              </div>
722            
723            
724          </div>
725        </div>
726        <div class="grid--full medium-down--hide">
727          <div class="grid__item">
728            
729<ul class="site-nav" role="navigation" id="AccessibleNav">
730  
731    
732    
733    
734      <li >
735        <a href="/collections/featured-titles" class="site-nav__link">All Titles</a>
736      </li>
737    
738  
739    
740    
741    
742      <li >
743        <a href="/pages/e-books" class="site-nav__link">E-Books</a>
744      </li>
745    
746  
747    
748    
749    
750      <li >
751        <a href="/pages/supplements" class="site-nav__link">Supplements</a>
752      </li>
753    
754  
755    
756    
757    
758      <li >
759        <a href="/blogs/news" class="site-nav__link">News</a>
760      </li>
761    
762  
763    
764    
765    
766      <li class="site-nav--active">
767        <a href="/pages/about-solano" class="site-nav__link">About Us</a>
768      </li>
769    
770  
771    
772    
773    
774      <li >
775        <a href="/pages/book-proposals" class="site-nav__link">Book Proposals</a>
776      </li>
777    
778  
779    
780    
781    
782      <li >
783        <a href="/pages/links" class="site-nav__link">Resources</a>
784      </li>
785    
786  
787    
788    
789    
790      <li >
791        <a href="https://cdn.shopify.com/s/files/1/2094/8333/files/ordform_v11_abc6d957-37b8-4aa0-936d-041b1700de35.pdf?v=1678995847" class="site-nav__link">Order Form</a>
792      </li>
793    
794  
795    
796    
797    
798      <li >
799        <a href="/pages/contact" class="site-nav__link">Contact</a>
800      </li>
801    
802  
803    
804    
805    
806      <li >
807        <a href="/collections/previous-editions" class="site-nav__link">Previous Editions</a>
808      </li>
809    
810  
811</ul>
812
813          </div>
814        </div>
815      
816
817    </div>
818  </header>
819</div>
820
821</div>
822
823  <main class="wrapper main-content" role="main">
824    <div class="grid">
825        <div class="grid__item">
826          <div class="grid">
827
828  <div class="grid__item post-large--two-thirds push--post-large--one-sixth">
829
830    <div class="section-header">
831      <h1 class="section-header--title">About Solano</h1>
832    </div>
833
834    <div class="rte">
835      <div style="margin-bottom: 50px;"><img src="//cdn.shopify.com/s/files/1/2094/8333/files/All-titles-v5_1024x1024.png?v=1503522371" alt="" style="width: 100%;"></div>
836<div style="margin-top: -40px;">
837<h4 style="margin: 0; text-align: right;">Books That Matter</h4>
838<p style="text-align: right; font-size: 0.9em;">from Solano Press</p>
839</div>
840<div>
841<strong>Solano Press Books</strong> is a California publishing house specializing in land use, planning law, urban affairs, and environmental subjects. Our publications have earned a reputation for being definitive references on a wide variety of land use and land use-related legal matters. Valuable not only as important technical references, many of our publications offer readers detailed guidance on policy matters and instruction on implementing and complying with specific programs and procedures.</div>
842<hr>
843<div>
844<img src="//cdn.shopify.com/s/files/1/2094/8333/files/planning-meeting_free_to_reuse_commercially_medium.jpg?v=1502834265" alt="" style="float: right; padding-left: 20px;">
845<p>People who use our books include students of California planning and public policy, interested citizen activists, attorneys and judges, city and county planners, environmental specialists, geologists, ecologists, transportation planners, engineers, city managers, real estate developers, and specialists in economic development and community development.</p>
846</div>
847<hr>
848<div>
849<div style="text-align: left; float: left; padding-right: 20px;">
850<img src="//cdn.shopify.com/s/files/1/2094/8333/files/WarrenPortrait_01_medium.jpg?v=1500501922" alt="Warren W. Jones, Founder of Solano Press Books">
851<h4 style="margin: 0;">Warren W. Jones</h4>
852<p style="text-align: right; font-size: 0.9em;">Founder | Solano Press</p>
853</div>
854<p><strong>Warren W. Jones</strong> (1929-2007) was a city planning consultant and instructor who founded Solano Press Books in 1985. His long and varied career began in 1957, when he received a master's degree in city planning from the University of California at Berkeley. He worked for the City of Oakland and s
854oon after established a planning consulting firm in Berkeley, California. Warren was a pioneer in the California planning education field. He founded UC Berkeley Extension's planning program in 1972 and also taught at the UC Berkeley Department of City and Regional Planning. Solano Press Books evolved from Warren's experiences at UC Berkeley Extension and his interest in providing practical information that professionals can use on the job. The company began with publication of a single book -- Curtin's California Land Use and Planning Law, an authoritative source cited by the California courts and updated every year since its first edition. Solano Press expanded and flourished over two decades under Warren's leadership. Today, Warren's legacy is carried on by his daughter Ling-Yen Jones and son-in-law Jon Handel.</p>
855</div>
856    </div>
857
858  </div>
859
860</div>
861
862        </div>
863    </div>
864  </main>
865
866  <div id="shopify-section-footer" class="shopify-section"><footer class="site-footer small--text-center" role="contentinfo">
867
868<div class="wrapper">
869
870  <div class="grid-uniform">
871
872    
873
874    
875
876    
877      
878          <div class="grid__item post-large--one-sixth medium--one-half">
879            <h3 class="h4">Newsletter</h3>
880            <p>Sign up for the latest news, offers and styles</p>
881            <div class="form-vertical small--hide">
882  <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
883    
884    
885      <input type="hidden" name="contact[tags]" value="newsletter">
886      <input type="email" value="" placeholder="Your email" name="contact[email]" id="Email" class="input-group-field" aria-label="Your email" autocorrect="off" autocapitalize="off">
887      <input type="submit" class="btn" name="subscribe" id="subscribe" value="Subscribe">
888    
889  </form>
890</div>
891<div class="form-vertical post-large--hide large--hide medium--hide">
892  <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
893    
894    
895      <input type="hidden" name="contact[tags]" value="newsletter">
896      <div class="input-group">
897        <input type="email" value="" placeholder="Your email" name="contact[email]" id="Email" class="input-group-field" aria-label="Your email" autocorrect="off" autocapitalize="off">
898        <span class="input-group-btn">
899          <button type="submit" class="btn" name="commit" id="subscribe">Subscribe</button>
900        </span>
901      </div>
902    
903  </form>
904</div>
905
906          </div>
907
908      
909    
910      
911          <div class="grid__item post-large--one-sixth medium--one-half site-footer__links">
912            <h3 class="h4"><a href="/blogs/news">Latest News</a></h3>
913            
914            <p class="h5"><a href="/blogs/news/practical-ceqa-2023-update-now-available-for-download" title="">Practical CEQA 2026 update now available for download</a></p>
915            
916              
917              
918<style>
919  
920
921  #ArticleImage-footer--113630806200 {
922    max-width: 370px;
923    max-height: 479px;
924  }
925  #ArticleImageWrapper-footer--113630806200 {
926    max-width: 370px;
927  }
928</style>
929
930              <p>
931                <div id="ArticleImageWrapper-footer--113630806200" class="article__image-wrapper supports-js">
932                  <div style="padding-top:129.45945945945945%;">
933                    <img id="ArticleImage-footer--113630806200"
934                         class="article__image lazyload"
935                         src="//solano.com/cdn/shop/articles/PracticalCEQAFrontCoverhires_370x_1_57a39fd9-05d9-4716-8f61-5c0f8798ca31_300x300.webp?v=1770175498"
936                         data-src="//solano.com/cdn/shop/articles/PracticalCEQAFrontCoverhires_370x_1_57a39fd9-05d9-4716-8f61-5c0f8798ca31_{width}x.webp?v=1770175498"
937                         data-widths="[90, 120, 150, 180, 360, 480, 600, 750, 940, 1080, 1296]"
938                         data-aspectratio="0.7724425887265136"
939                         data-sizes="auto"
940                         alt="Practical CEQA 2026 update now available for download">
941                  </div>
942                </div>
943              </p>
944
945              <noscript>
946                <p><a href="/blogs/news/practical-ceqa-2023-update-now-available-for-download" title="">
946<img src="//solano.com/cdn/shop/articles/PracticalCEQAFrontCoverhires_370x_1_57a39fd9-05d9-4716-8f61-5c0f8798ca31_large.webp?v=1770175498" alt="Practical CEQA 2026 update now available for download" class="article__image" /></a></p>
947              </noscript>
948            
949            
950              <p>Practical CEQA: A Stepwise Guide to California Environmental Quality Act Compliance, 2026 supplement by Antero Rivasplata and Greta Brownlow is now available to download from our Supplements page. The update...</p>
951            
952          </div>
953
954        
955    
956      
957          <div class="grid__item post-large--one-sixth medium--one-half">
958            <h3 class="h4">Partners</h3>
959            <div class="rte"><p>Solano Press is proud to be a sponsor of the following program(s):</p><p><a href="https://californiaplanningfoundation.org/auction/" title="https://californiaplanningfoundation.org/auction/">APA California Planning Foundation Auction</a>, supporting scholarships for planning students</p><p><a href="http://uclaextension.edu/public-policy/landuse" title="http://uclaextension.edu/public-policy/landuse">UCLA Extension Public Policy Program Annual Land Use Law and Planning Conference</a>, supporting scholarships for individuals to attend UCLA Extension public policy courses and conferences.</p></div>
960          </div>
961
962        
963    
964      
965          <div class="grid__item post-large--one-sixth medium--one-half">
966            <h3 class="h4">Shipping Notice</h3>
967            <div class="rte"><p>International orders (outside US and Canada) cannot be processed online. Please contact us by phone, or e-mail to place orders.</p><p></p><p>Books are shipped from our offices in Point Arena, California.</p><p></p><p><a href="/pages/contact" title="Contact">Learn More</a></p></div>
968          </div>
969
970        
971    
972      
973          <div class="grid__item post-large--one-sixth medium--one-half">
974            <h3 class="h4">Contact us</h3>
975            <div class="rte"><p>If you need personalized service please email us at <a href="mailto:[email protected]">[email protected]</a><br/>or call Katherine at <em>(800) 931-9373</em> and we will be happy to help you.</p></div>
976          </div>
977
978        
979    
980      
981          <div class="grid__item post-large--one-sixth medium--one-half">
982            <h3 class="h4">Follow Us</h3>
983              
984              <ul class="inline-list social-icons">
985  
986  
987    <li>
988      <a class="icon-fallback-text" href="https://www.facebook.com/pages/category/Bookstore/Solano-Press-Books-142648795806743/" title="Solano Press Books on Facebook">
989        <span class="icon icon-facebook" aria-hidden="true"></span>
990        <span class="fallback-text">Facebook</span>
991      </a>
992    </li>
993  
994  
995  
996  
997  
998  
999  
1000  
1001  
1002  
1003</ul>
1004
1005          </div>
1006
1007        
1008    
1009  </div>
1010
1011  <hr class="hr--small hr--clear">
1012
1013  <div class="grid">
1014    <div class="grid__item text-center">
1015      <p>Solano logo designed by Shinga Shell</p>
1016      <p class="site-footer__links">Copyright &copy; 2026, <a href="/" title="">Solano Press Books</a>. <a href="https://andmoorestudios.xyz" title="">Powered by And Moore Studios</a></p>
1017    </div>
1018  </div>
1019
1020  
1021    
1022    <div class="grid">
1023      <div class="grid__item text-center">
1024        
1025        <ul class="inline-list payment-icons">
1026          
1027            
1028              <li>
1029                <span class="icon-fallback-text">
1030                  <span class="icon icon-american_express" aria-hidden="true"></span>
1031                  <span class="fallback-text">american express</span>
1032                </span>
1033              </li>
1034            
1035          
1036            
1037              <li>
1038                <span class="icon-fallback-text">
1039                  <span class="icon icon-apple_pay" aria-hidden="true"></span>
1040                  <span class="fallback-text">apple pay</span>
1041                </span>
1042              </li>
1043            
1044          
1045            
1046              <li>
1047                <span class="icon-fallback-text">
1048                  <span class="icon icon-diners_club" aria-hidden="true"></span>
1049                  <span class="fallback-text">
1049diners club</span>
1050                </span>
1051              </li>
1052            
1053          
1054            
1055              <li>
1056                <span class="icon-fallback-text">
1057                  <span class="icon icon-discover" aria-hidden="true"></span>
1058                  <span class="fallback-text">discover</span>
1059                </span>
1060              </li>
1061            
1062          
1063            
1064              <li>
1065                <span class="icon-fallback-text">
1066                  <span class="icon icon-master" aria-hidden="true"></span>
1067                  <span class="fallback-text">master</span>
1068                </span>
1069              </li>
1070            
1071          
1072            
1073          
1074            
1075              <li>
1076                <span class="icon-fallback-text">
1077                  <span class="icon icon-visa" aria-hidden="true"></span>
1078                  <span class="fallback-text">visa</span>
1079                </span>
1080              </li>
1081            
1082          
1083        </ul>
1084      </div>
1085    </div>
1086    
1087  
1088</div>
1089
1090</footer>
1091
1092
1093</div>
1094
1095  
1095<script src="//solano.com/cdn/shop/t/2/assets/theme.js?v=28804185256239678001498076895" type="text/javascript"></script>
1095
1096
1097<div id="shopify-block-AbGRNWFRpbUt4QTQra__6986766168588894248" class="shopify-block shopify-app-block">
1098</div>
1098<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
1098
1099</body>
1100</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.