Your shopping cart is empty.

SALE
The Drunken Botanist

The Drunken Botanist

$24.95

The Essential, New York Times–Bestselling Guide to Botany and Booze

Sake began with a grain of rice. Scotch emerged from barley, tequila from agave, rum from sugarcane, bourbon from corn. Thirsty yet?  In The Drunken Botanist, Amy Stewart explores the dizzying array of herbs, flowers, trees, fruits, and fungi that humans have, through ingenuity, inspiration, and sheer desperation, contrived to transform into alcohol over the centuries.

Of all the extraordinary and obscure plants that have been fermented and distilled, a few are dangerous, some are downright bizarre, and one is as ancient as dinosaurs—but each represents a unique cultural contribution to our global drinking traditions and our history.

This fascinating concoction of biology, chemistry, history, etymology, and mixology—with more than fifty drink recipes and a new section on how to grow your very own cocktail garden—will make you the most popular guest at any cocktail party. 

    is added to your shopping cart.
    Go to Cart
    is added to your wishlist.
    Go to Wishlist
    document.addEventListener('DOMContentLoaded', function() { const productJson = document.querySelectorAll('[id`^`=ProductJson-'); if (productJson.length > 0) { for (let i = 0; i < productJson.length; i++) { const current = productJson[i]; const sectionId = current.id.replace('ProductJson-', ''); const section = document.querySelector('[data-section-id="' + sectionId + '"]'); const product = JSON.parse(current.text); if (product.options.length === 1) { const unavailableVariants = []; for (let j = 0; j < product.variants.length; j++) { const variant = product.variants[j]; if (!variant.available) { unavailableVariants.push(variant); } } if (unavailableVariants.length > 0) { const mutationCallback = function() { const variantOptions = section.querySelectorAll('.single-option-selector option'); if (variantOptions.length > 0) { for (let k = 0; k < unavailableVariants.length; k++) { const unavailableVariant = unavailableVariants[k]; for (let l = 0; l < variantOptions.length; l++) { const option = variantOptions[l]; if (unavailableVariant.title === option.value) { option.remove(); } } } if (typeof observer === 'object' && typeof observer.disconnect === 'function') { observer.disconnect(); } } } const observer = new MutationObserver(mutationCallback); const addToCartForm = document.querySelector('form[action*="/cart/add"]'); mutationCallback(); if (window.MutationObserver && addToCartForm.length) { const config = { childList: true, subtree: true }; if (typeof observer === 'object' && typeof observer.disconnect === 'function') { observer.disconnect(); } observer.observe(addToCartForm, config); } } } } } });