/*
Theme Name: Lamb's Herbal
Theme URI: https://example.com/lambs-herbal
Author: Christine
Description: Block theme for Lamb's Herbal Syrups. Every page is built from native blocks so copy, links and images can be edited in the WordPress editor. Designed for WooCommerce.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lambs-herbal
*/

/* ============ Tokens not expressible in theme.json ============ */
:root {
  --lh-paper: var(--wp--preset--color--paper); --lh-paper-2: var(--wp--preset--color--paper-2); --lh-paper-3: var(--wp--preset--color--paper-3);
  --lh-ink: var(--wp--preset--color--ink); --lh-ink-soft: var(--wp--preset--color--ink-soft); --lh-moss: var(--wp--preset--color--moss);
  --lh-on-moss: var(--wp--preset--color--on-moss); --lh-amber: var(--wp--preset--color--amber); --lh-amber-soft: var(--wp--preset--color--amber-soft);
  --lh-line: var(--wp--preset--color--line); --lh-line-strong: #A9A18E; --lh-ink-faint: #6D746F;
  --lh-ui: var(--wp--preset--font-family--ui); --lh-display: var(--wp--preset--font-family--display); --lh-text: var(--wp--preset--font-family--text);
  --lh-section: var(--wp--preset--spacing--60); --lh-ease: cubic-bezier(.2,.7,.2,1);
}
body { -webkit-font-smoothing: antialiased; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
a { text-decoration-thickness: 1px; text-underline-offset: .2em; }
:focus-visible { outline: 3px solid #1D6FA3; outline-offset: 3px; }
::selection { background: var(--lh-amber-soft); }
h1, h2, h3, h4 { text-wrap: balance; }

/* ============ Block style variations (chosen in the editor's Styles panel) ============ */
.is-style-eyebrow { font-family: var(--lh-ui); font-size: .75rem !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--lh-ink-soft); display: flex; align-items: center; gap: 12px; }
.is-style-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; flex: none; }
.is-style-label, .is-style-label a { font-family: var(--lh-ui) !important; font-size: .75rem !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--lh-ink-soft); text-decoration: none; line-height: 1.4 !important; }
h2.is-style-label { color: var(--lh-amber); }
.has-moss-background-color .is-style-eyebrow, .has-moss-background-color .is-style-label { color: var(--lh-on-moss); opacity: .85; }

.wp-block-button.is-style-arrow .wp-block-button__link { background: transparent !important; color: inherit !important; padding: 6px 0 !important; border-bottom: 1px solid currentColor; border-radius: 0; display: inline-flex; gap: 10px; align-items: center; }
.wp-block-button.is-style-arrow .wp-block-button__link::after { content: "\2192"; transition: transform .25s var(--lh-ease); }
.wp-block-button.is-style-arrow .wp-block-button__link:hover::after { transform: translateX(4px); }
.wp-block-button.is-style-arrow .wp-block-button__link:hover { color: var(--lh-amber) !important; }
.has-moss-background-color .wp-block-button.is-style-arrow .wp-block-button__link:hover { color: var(--lh-amber-soft) !important; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--lh-ink); border: 1px solid var(--lh-ink); padding: calc(1rem - 1px) calc(1.6rem - 1px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lh-ink); color: var(--lh-paper); }
.wp-block-buttons { gap: 14px 24px; align-items: center; }

.wp-block-image.is-style-arch img { border-radius: 999px 999px 2px 2px; }
.wp-block-image figcaption { text-align: left; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--lh-line); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; }
.wp-block-image figcaption strong { font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .75rem; color: var(--lh-ink); }

.wp-block-quote.is-style-plain { border: 0; padding: 0; font-style: normal; }
.wp-block-quote.is-style-plain p { font-style: italic; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.45; }
.wp-block-quote cite { display: block; margin-top: 14px; font-family: var(--lh-ui); font-style: normal; font-size: .85rem; color: var(--lh-ink-soft); }
.has-moss-background-color .wp-block-quote cite { color: #C4CCBF; }
.wp-block-quote.is-style-statement { border: 0; padding: 28px 0; border-block: 1px solid var(--lh-line-strong); margin-block: 2.5rem; font-style: normal; }
.wp-block-quote.is-style-statement p { font-family: var(--lh-display); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.3rem); line-height: 1.22; font-style: normal; }

/* ============ Utilities ============ */
.lh-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.6; color: var(--lh-ink-soft); max-width: 46ch; }
.lh-lead.lh-ink { color: var(--lh-ink); max-width: 58ch; }
.lh-small { font-family: var(--lh-ui); font-size: .875rem; }
.lh-muted { color: var(--lh-ink-soft); }
.lh-display { font-family: var(--lh-display); font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.4rem); line-height: 1.12; }
mark.lh-tbc, .lh-tbc { font-family: var(--lh-ui); font-size: .86em; font-weight: 600; font-style: normal; background: #FFF1C9; color: #6B4A00; padding: .05em .4em; border-radius: 2px; outline: 1px dashed #C9A44A; outline-offset: -1px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.lh-section { padding-top: var(--lh-section); padding-bottom: var(--lh-section); }
.lh-section.lh-tight { padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 88px); }
.lh-section.lh-pt0 { padding-top: 0; }
.lh-band-moss a { color: var(--lh-on-moss); }
.lh-band-moss a:hover { color: var(--lh-amber-soft); }

/* ============ Header (matches the prototype exactly) ============ */
.lh-announce { padding-top: 9px !important; padding-bottom: 9px !important; }
.lh-announce p { font-family: var(--lh-ui); font-size: .8125rem; letter-spacing: .03em; text-align: center; margin: 0; }
.lh-announce a { color: inherit; }
/* Sticky: the whole header template part sticks; header.js offsets it by the announcement
   bar's height so the bar scrolls away and the menu row stays pinned (as in the prototype). */
header.wp-block-template-part:has(> .lh-header), .wp-block-template-part:has(> .lh-header) { position: sticky; top: 0; z-index: 40; }
.admin-bar header.wp-block-template-part:has(> .lh-header) { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part:has(> .lh-header) { top: 0; } }
.lh-header { position: relative; background: color-mix(in srgb, var(--lh-paper) 94%, transparent); backdrop-filter: saturate(1.2) blur(8px); -webkit-backdrop-filter: saturate(1.2) blur(8px); border-bottom: 1px solid transparent; transition: border-color .25s; }
.lh-header.is-scrolled, .editor-styles-wrapper .lh-header { border-bottom-color: var(--lh-line); }
.lh-header-inner { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 78px; gap: 16px; }
.lh-header-inner > * { margin: 0 !important; }
.lh-header-inner > .lh-nav-left, .lh-header-inner > .lh-menu-btn { grid-column: 1; grid-row: 1; }
.lh-header-inner > .lh-brand { grid-column: 2; grid-row: 1; }
.lh-header-inner > .lh-header-tools { grid-column: 3; grid-row: 1; justify-self: end; gap: clamp(14px, 2vw, 28px) !important; }
.lh-menu-foot { display: none !important; }
.editor-styles-wrapper .lh-menu-foot { display: block !important; grid-column: 1 / -1; font-family: var(--lh-ui); font-size: .8rem; color: var(--lh-ink-faint); border-top: 1px dashed var(--lh-line); padding-block: 6px; }
.editor-styles-wrapper .lh-menu-foot::before { content: "Phone menu footer (only shown in the mobile menu)"; font-weight: 600; display: block; }

.lh-brand { text-align: center; line-height: 1; }
.lh-brand a { text-decoration: none; display: inline-flex; flex-direction: column; align-items: center; color: var(--lh-ink); }
.lh-brand a:hover { color: var(--lh-ink); }
.lh-brand .lh-brand-name { font-family: var(--lh-display); font-size: 1.9rem; letter-spacing: .01em; }
.lh-brand .lh-brand-sub { font-family: var(--lh-ui); font-size: .625rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; margin-top: 7px; color: var(--lh-ink-soft); }

.lh-nav, .lh-nav .wp-block-navigation__container { gap: clamp(16px, 2vw, 30px) !important; }
.lh-nav-right, .lh-nav-right .wp-block-navigation__container { gap: clamp(14px, 2vw, 28px) !important; }
.lh-nav .wp-block-navigation-item__content { font-family: var(--lh-ui); font-size: .9rem; font-weight: 500; letter-spacing: .01em; text-decoration: none; padding: 8px 0 !important; border-bottom: 1px solid transparent; color: var(--lh-ink); }
.lh-nav .wp-block-navigation-item__content:hover, .lh-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--lh-ink); border-bottom-color: var(--lh-ink); }
.lh-nav .wp-block-navigation-item__description { display: none; }

/* mini-cart styled as the prototype's basket button */
.lh-header .wc-block-mini-cart__button { padding: 8px 0; gap: 9px; }
.lh-header .wc-block-mini-cart__quantity-badge { display: inline-flex; align-items: center; gap: 9px; position: static; }
.lh-header .wc-block-mini-cart__icon { display: none; }
.lh-header .wc-block-mini-cart__quantity-badge::before { content: ""; width: 22px; height: 22px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 9h16l-1.4 10.2a1.5 1.5 0 0 1-1.5 1.3H6.9a1.5 1.5 0 0 1-1.5-1.3L4 9Z'/%3E%3Cpath d='M8.5 9 12 3.5 15.5 9'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 9h16l-1.4 10.2a1.5 1.5 0 0 1-1.5 1.3H6.9a1.5 1.5 0 0 1-1.5-1.3L4 9Z'/%3E%3Cpath d='M8.5 9 12 3.5 15.5 9'/%3E%3C/svg%3E") center / contain no-repeat; }
.lh-header .wc-block-mini-cart__badge, .lh-header .wc-block-mini-cart__badge[hidden] { display: inline-grid !important; place-items: center; position: static !important; transform: none !important; opacity: 1 !important;
  min-width: 22px; height: 22px; border-radius: 11px; padding: 0 6px; margin: 0 !important; font-family: var(--lh-ui); font-size: .72rem !important; font-weight: 700; font-variant-numeric: tabular-nums;
  background: var(--lh-moss) !important; color: var(--lh-on-moss) !important; border: 1px solid var(--lh-moss); box-sizing: border-box; }
.lh-header .wc-block-mini-cart__badge[hidden] { background: transparent !important; color: var(--lh-ink-soft) !important; border-color: var(--lh-line-strong); }

/* Menu button + full-screen phone menu (built by assets/js/header.js from the two menus above) */
.lh-menu-btn { display: none; background: none; border: 0; padding: 10px 0; align-items: center; gap: 10px; font-family: var(--lh-ui); font-weight: 600; font-size: .9rem; color: var(--lh-ink); cursor: pointer; justify-self: start; }
.lh-menu-btn svg { width: 22px; }
.lh-mobile-menu { position: fixed; inset: 0; z-index: 100000; background: var(--lh-paper); display: flex; flex-direction: column; padding: calc(env(safe-area-inset-top, 0px) + 12px) clamp(16px, 4vw, 48px) calc(env(safe-area-inset-bottom, 0px) + 28px); overflow-y: auto; animation: lhFade .25s var(--lh-ease); }
.lh-mobile-menu[hidden] { display: none; }
.lh-mm-top { display: flex; justify-content: space-between; align-items: center; min-height: 56px; }
.lh-mm-top .lh-brand { margin: 0 !important; text-align: left; }
.lh-mm-top .lh-brand a { align-items: flex-start; }
.lh-mm-top .lh-brand .lh-brand-name { font-size: 1.6rem; }
.lh-mm-close { background: none; border: 0; width: 44px; height: 44px; display: grid; place-items: center; margin-right: -10px; color: var(--lh-ink); cursor: pointer; }
.lh-mm-close svg { width: 24px; }
.lh-mobile-menu nav { display: grid; margin-top: 28px; }
.lh-mobile-menu nav a { font-family: var(--lh-display); font-size: 2.1rem; line-height: 1.7; text-decoration: none; color: var(--lh-ink); padding: 12px 0; border-bottom: 1px solid var(--lh-line); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.lh-mobile-menu nav a:hover { color: var(--lh-amber); }
.lh-mobile-menu nav a small { font-family: var(--lh-ui); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--lh-ink-faint); white-space: nowrap; }
.lh-mm-foot { margin-top: auto; padding-top: 32px; font-family: var(--lh-ui); font-size: .875rem; color: var(--lh-ink-soft); display: grid; gap: 6px; }
.lh-mm-foot p { margin: 0; }
@keyframes lhFade { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 1020px) {
  .lh-header-inner > .lh-nav-left { display: none !important; }
  .lh-header .lh-nav-right { display: none !important; }
  .lh-menu-btn { display: inline-flex; }
  .lh-header-inner { min-height: 68px; }
  .lh-brand .lh-brand-name { font-size: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) { .lh-mobile-menu { animation: none; } }

/* ============ Footer ============ */
.lh-footer { font-family: var(--lh-ui); font-size: .9rem; }
.lh-footer a { text-decoration: none; color: inherit; }
.lh-footer a:hover { color: var(--lh-amber-soft); text-decoration: underline; }
.lh-footer-cols { padding-top: clamp(56px, 7vw, 96px); padding-bottom: 40px; }
.lh-footer .lh-footer-brand { font-family: var(--lh-display); font-size: 2.3rem; margin: 0; }
.lh-footer .is-style-label { color: #8E978F; }
.lh-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.lh-footer-delivery { border-top: 1px solid #38423D; border-bottom: 1px solid #38423D; padding-block: 22px; gap: 10px 36px; }
.lh-footer-delivery p { margin: 0; color: #C2C8C1; }
.lh-footer-legal { padding-block: 26px 36px; }
.lh-footer-legal p { color: #8E978F; font-size: .8125rem; line-height: 1.6; }

/* ============ Page head ============ */
.lh-page-head { padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(32px, 4vw, 56px); border-bottom: 1px solid var(--lh-line); }
.lh-page-head h1 { max-width: 18ch; }
.lh-page-head .lh-lead { max-width: 58ch; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { font-family: var(--lh-ui); font-size: .8125rem; color: var(--lh-ink-faint); }

/* ============ Home ============ */
.lh-hero { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(56px, 7vw, 104px); }
.lh-hero-cols { gap: clamp(32px, 6vw, 96px) !important; }
.lh-hero-title { font-size: var(--wp--preset--font-size--hero) !important; line-height: 1.02 !important; letter-spacing: -.02em !important; max-width: 13ch; }
.lh-credential { margin-top: 28px !important; padding-top: 24px; border-top: 1px solid var(--lh-line); max-width: 480px; padding-left: 68px; position: relative; font-family: var(--lh-ui); font-size: .85rem; color: var(--lh-ink-soft); line-height: 1.5; }
.lh-credential strong { font-family: var(--lh-text); font-weight: 400; font-size: 1.12rem; color: var(--lh-ink); display: inline-block; margin-bottom: 2px; }
.lh-credential::before { content: ""; position: absolute; left: 0; top: 24px; width: 52px; height: 52px; border: 1px solid var(--lh-amber); border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393561A' stroke-width='1.4'%3E%3Cpath d='M5 19C5 10 10 5 19 5c0 9-5 14-14 14Z'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E") center / 24px no-repeat; }
.lh-hero .is-style-arch img { max-height: 620px; }

.lh-proof { border-top: 1px solid var(--lh-line); border-bottom: 1px solid var(--lh-line); padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.lh-proof-cols { gap: 0 !important; }
.lh-proof-cols > .wp-block-column { padding-inline: clamp(20px, 3vw, 40px); border-left: 1px solid var(--lh-line); }
.lh-proof-cols > .wp-block-column:first-child { padding-left: 0; border-left: 0; }
@media (max-width: 781px) { .lh-proof-cols > .wp-block-column { padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--lh-line); } .lh-proof-cols > .wp-block-column:first-child { border-top: 0; padding-top: 0; } }

.lh-section-head { margin-bottom: clamp(36px, 5vw, 64px) !important; gap: clamp(24px, 5vw, 80px) !important; }

/* product cards (product collection) */
.lh-products .wc-block-product-template { gap: clamp(28px, 3vw, 44px) clamp(18px, 2.2vw, 32px) !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 960px) { .lh-products .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.lh-products .wc-block-components-product-button { align-items: flex-start !important; justify-content: flex-start !important; text-align: left !important; }
.lh-products .wc-block-product { text-align: left; display: flex; flex-direction: column; gap: 10px; }
.lh-products .wc-block-components-product-image { margin: 0 0 8px !important; overflow: hidden; background: var(--lh-paper-3); }
.lh-products .wc-block-components-product-image img { aspect-ratio: 4 / 5; object-fit: cover; transition: transform 1.2s var(--lh-ease); }
.lh-products .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.04); }
.lh-card-title, .lh-products .wp-block-post-title { font-family: var(--lh-display) !important; font-size: 1.45rem !important; line-height: 1.12 !important; text-align: left !important; margin: 0 !important; }
.lh-card-title a { text-decoration: none; }
.lh-products .wc-block-components-product-price { font-family: var(--lh-ui); font-size: .95rem !important; text-align: left !important; margin: 0 !important; color: var(--lh-amber); }
.lh-products .wp-block-button.wc-block-components-product-button { justify-content: flex-start; margin-top: auto !important; }
.lh-products .wc-block-components-product-button .wp-block-button__link, .lh-products .wc-block-components-product-button .add_to_cart_button {
  background: transparent !important; color: var(--lh-ink) !important; border: 1px solid var(--lh-line-strong) !important; font-size: .875rem !important; padding: .7rem 1.1rem !important; width: auto !important; }
.lh-products .wc-block-components-product-button .wp-block-button__link:hover { background: var(--lh-ink) !important; color: var(--lh-paper) !important; }
.lh-herbalist-tile { padding: clamp(24px, 4vw, 48px) !important; margin-top: clamp(40px, 5vw, 64px) !important; }
.lh-herbalist-tile .lh-display { margin: 0; max-width: 22ch; }

.lh-heritage { gap: clamp(32px, 7vw, 112px) !important; }
.lh-year { font-family: var(--lh-display); font-size: clamp(5rem, 3rem + 7vw, 10rem) !important; line-height: .8 !important; color: var(--lh-amber); margin-top: -.42em !important; letter-spacing: -.03em; position: relative; mix-blend-mode: multiply; }
.lh-heritage img { filter: sepia(.25) saturate(.85); }
.lh-pull { font-style: italic; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.55rem); line-height: 1.45; border-left: 2px solid var(--lh-amber); padding-left: 24px; max-width: 40ch; }
.lh-facts { gap: 24px !important; margin-top: 28px !important; padding-top: 28px; border-top: 1px solid var(--lh-line-strong); }
.lh-fact { font-family: var(--lh-display); font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.5rem); line-height: 1; margin: 0; }
.lh-fact-label { font-family: var(--lh-ui); font-size: .85rem; line-height: 1.45; color: var(--lh-ink-soft); margin-top: 10px !important; }

.lh-nextgen { gap: clamp(32px, 7vw, 112px) !important; }
.lh-ng-quote p:first-child { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem) !important; line-height: 1.5 !important; }
.lh-ng-quote p { font-style: normal !important; font-size: 1.1rem !important; }

.lh-senses { gap: clamp(32px, 7vw, 112px) !important; }
.lh-senses-title { font-size: clamp(2.2rem, 1.5rem + 3vw, 4.1rem) !important; line-height: 1.04 !important; max-width: 15ch; }
.lh-senses .wp-block-quote { padding-top: 28px !important; border-top: 1px solid rgba(238,234,223,.25) !important; }
.lh-senses .wp-block-quote p:not(.lh-quote-lg) { font-style: normal; font-size: 1rem; color: #C4CCBF; }
.lh-quote-lg { font-size: clamp(1.25rem, 1.05rem + .7vw, 1.6rem) !important; }
.lh-caption-link { font-family: var(--lh-ui); font-size: .9rem; display: flex; justify-content: space-between; gap: 12px; padding-top: 12px; border-top: 1px solid rgba(238,234,223,.25); }
.lh-caption-link span { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; }
.lh-caption-link a { font-weight: 600; text-decoration: none; }

.lh-highland { position: relative; min-height: clamp(520px, 52vw, 700px); background: #DCCFB2; overflow: hidden; }
.lh-highland > .lh-highland-art { position: absolute; inset: 0; margin: 0 !important; max-width: none !important; width: 100%; }
.lh-highland > .lh-highland-art img { width: 100%; height: 100%; object-fit: cover; object-position: 60% bottom; }
.lh-highland-copy { position: relative; padding-top: clamp(48px, 7vw, 104px); padding-bottom: 48px; }
.lh-highland-copy h2 { max-width: 15ch; }
.lh-highland-copy p:not(.is-style-eyebrow) { max-width: 48ch; font-size: 1.1rem; color: #2F3833; }
@media (max-width: 781px) {
  .lh-highland { min-height: 0; display: flex; flex-direction: column-reverse; }
  .lh-highland > .lh-highland-art { position: relative; aspect-ratio: 4 / 3; }
}

.lh-journal-cards .wp-block-post-template { gap: clamp(28px, 4vw, 48px) !important; }
.lh-journal-cards .wp-block-post-featured-image { margin-bottom: 18px; overflow: hidden; }
.lh-journal-cards .wp-block-post-featured-image img { transition: transform 1s var(--lh-ease); }
.lh-journal-cards li:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.lh-journal-cards .wp-block-post-title { font-family: var(--lh-display); font-size: clamp(1.4rem, 1.2rem + .8vw, 1.9rem); line-height: 1.12; margin: 8px 0 10px; }
.lh-journal-cards .wp-block-post-title a { text-decoration: none; }
.lh-journal-cards .wp-block-post-excerpt { color: var(--lh-ink-soft); font-size: 1rem; }
.lh-journal-cards .wp-block-post-excerpt__more-text { font-family: var(--lh-ui); font-weight: 600; font-size: .9rem; }

.lh-closing { padding-top: var(--lh-section); padding-bottom: var(--lh-section); border-top: 1px solid var(--lh-line); }
.lh-closing > * { max-width: var(--wp--style--global--wide-size) !important; }
.lh-closing-title { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.6rem) !important; line-height: 1.1 !important; max-width: 22ch; }
.lh-closing-title em { color: var(--lh-amber); font-family: var(--lh-text); }

/* Bottle tagline — product card subtitle */
.lh-card-epithet {
	font-family: var(--wp--preset--font-family--display, "Fraunces"), Georgia, serif;
	font-style: italic;
	font-size: 1.05rem;
	line-height: 1.25;
	color: var(--wp--preset--color--moss, #4A5D3A);
	margin: 0.1rem 0 0.5rem 0;
	letter-spacing: 0.005em;
}

/* Tighten the gap between the title and the new subtitle */
.lh-products .lh-card-title {
	margin-bottom: 0.1rem;
}

/* ============ Our story ============ */
.lh-story-hero { position: relative; min-height: clamp(460px, 62vw, 720px); display: flex; align-items: flex-end; background: #3A4038; overflow: hidden; }
.lh-story-hero > .lh-story-hero-img { position: absolute; inset: 0; margin: 0 !important; max-width: none !important; }
.lh-story-hero > .lh-story-hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.lh-story-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,26,23,.12) 20%, rgba(20,26,23,.72) 100%); pointer-events: none; }
.lh-story-hero-copy { position: relative; z-index: 1; width: 100%; padding-block: clamp(40px, 6vw, 88px); }
.lh-story-hero-copy h1 { color: #F6F3EC; font-size: var(--wp--preset--font-size--hero); }
.lh-story-hero-copy .is-style-eyebrow { color: #E4E0D6; }
.lh-story-hero-copy .lh-lead { color: #E8E4DA; max-width: 52ch; }
.lh-big-quote { font-family: var(--lh-display) !important; font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.6rem) !important; line-height: 1.18 !important; max-width: 30ch; }
.lh-big-quote em { font-family: var(--lh-text); color: var(--lh-amber); }
.lh-timeline { gap: 0 !important; border-top: 1px solid var(--lh-line-strong); margin-top: 40px !important; }
.lh-timeline > .wp-block-column { position: relative; padding: 22px 20px 0 0; }
.lh-timeline > .wp-block-column::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--lh-amber); }
@media (max-width: 781px) { .lh-timeline { border-top: 0; border-left: 1px solid var(--lh-line-strong); padding-left: 22px; gap: 22px !important; } .lh-timeline > .wp-block-column { padding: 0; } .lh-timeline > .wp-block-column::before { left: -27px; top: 8px; } }
.lh-story-body { padding-top: var(--lh-section); padding-bottom: var(--lh-section); }
.lh-story-cols { gap: clamp(32px, 6vw, 96px) !important; }
.lh-chapters { position: sticky; top: 130px; align-self: flex-start; }
.lh-chapter-list { list-style: none; padding: 0; margin: 14px 0 0; font-family: var(--lh-ui); font-size: .875rem; }
.lh-chapter-list li { margin: 0; }
.lh-chapter-list a { display: grid; grid-template-columns: 44px 1fr; padding: 10px 0; border-top: 1px solid var(--lh-line); text-decoration: none; color: var(--lh-ink-soft); }
.lh-chapter-list a span { font-weight: 600; color: var(--lh-ink-faint); font-variant-numeric: tabular-nums; }
.lh-chapter-list a:hover, .lh-chapter-list a.is-active { color: var(--lh-ink); }
.lh-chapter-list a.is-active span { color: var(--lh-amber); }
.lh-story-main > * { max-width: 64ch; }
.lh-story-main > .wp-block-group > * { max-width: 64ch; }
.lh-story-main .wp-block-image, .lh-story-main .wp-block-columns { max-width: none; }
.lh-story-main > .lh-chapter:first-of-type { }
@media (max-width: 960px) { .lh-chapters { display: none !important; } .lh-story-cols { display: block !important; } }
.lh-feature-quote { max-width: 900px; margin: 0 !important; }
.lh-reading > .wp-block-post-content > * { max-width: 64ch; }
.lh-story-body p { font-size: 1.12rem; line-height: 1.8; }
.lh-chapter { padding-top: clamp(56px, 7vw, 104px); margin-top: clamp(56px, 7vw, 104px) !important; border-top: 1px solid var(--lh-line); max-width: none !important; }
.lh-chapter > * { max-width: 64ch; }
.lh-chapter > .wp-block-image, .lh-chapter > .wp-block-columns, .lh-chapter > .wp-block-quote { max-width: none; }
.lh-chapter h2 { scroll-margin-top: 120px; margin-bottom: 1.5rem; }
.has-drop-cap:not(:focus)::first-letter { font-family: var(--lh-display); color: var(--lh-amber); font-size: 4.4em; line-height: .82; margin: .06em .08em 0 0; }

/* ============ Testimonials ============ */
.lh-masonry { columns: 3 300px; column-gap: clamp(24px, 3vw, 44px); }
.lh-masonry > * { break-inside: avoid; margin: 0 0 0 !important; padding: 26px 0 !important; border-top: 1px solid var(--lh-line) !important; }
.lh-masonry .wp-block-quote.is-style-plain p { font-size: 1.02rem; line-height: 1.65; font-style: normal; }
.lh-masonry .wp-block-quote p::before { content: "\201C"; font-family: var(--lh-display); color: var(--lh-amber); font-size: 2.4rem; line-height: 0; vertical-align: -.42em; margin-right: 4px; }
.lh-masonry cite { font-weight: 600; }
.lh-after-list { margin-top: 56px !important; padding-top: 36px; border-top: 1px solid var(--lh-line); }

/* ============ Contact / legal ============ */
.lh-contact { gap: clamp(40px, 7vw, 112px) !important; }
.lh-contact-aside { border-top: 1px solid var(--lh-line-strong); }
.lh-detail { padding-block: 22px; border-bottom: 1px solid var(--lh-line); margin: 0 !important; }
.lh-detail p { margin: 0; }
.lh-detail > * + * { margin-top: 8px !important; }
.lh-legal { gap: clamp(32px, 6vw, 96px) !important; }
.lh-toc { position: sticky; top: 130px; align-self: flex-start; max-height: calc(100vh - 160px); overflow-y: auto; }
.lh-toc-list { list-style: none; padding: 0; font-family: var(--lh-ui); font-size: .875rem; }
.lh-toc-list li a { display: block; text-decoration: none; padding: 6px 0 6px 14px; border-left: 1px solid var(--lh-line); color: var(--lh-ink-soft); line-height: 1.35; }
.lh-toc-list li a:hover { color: var(--lh-ink); border-left-color: var(--lh-amber); }
@media (max-width: 781px) { .lh-toc { position: static; max-height: none; } }
.lh-reading { font-size: 1.1rem; line-height: 1.78; }
.lh-reading > * { max-width: 64ch; }
.lh-reading h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin-top: 2em; scroll-margin-top: 130px; }
.lh-reading h3 { font-family: var(--lh-text); font-weight: 700; font-size: 1.18rem; margin-top: 1.8em; scroll-margin-top: 130px; }
.lh-reading li::marker { color: var(--lh-amber); }

/* ============ Journal ============ */
.lh-article-head { padding-top: clamp(40px, 6vw, 80px); padding-bottom: 24px; }
.lh-article-head .wp-block-post-title { max-width: 18ch; }
.lh-article-head .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--large); color: var(--lh-ink-soft); max-width: 56ch; }
.lh-article-hero img { aspect-ratio: 21 / 9; object-fit: cover; width: 100%; }
.lh-article-cols { gap: clamp(40px, 6vw, 96px) !important; padding-top: clamp(40px, 5vw, 72px); padding-bottom: var(--lh-section); }
.lh-article-body { font-size: 1.1rem; line-height: 1.78; }
.lh-article-body h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin-top: 2em; }
.lh-article-body a { color: var(--lh-moss); }
.lh-article-aside { position: sticky; top: 130px; }
.lh-post-nav { border-top: 1px solid var(--lh-line); padding-top: 28px; margin-top: 48px !important; font-family: var(--lh-ui); }

/* ============ WooCommerce ============ */
.lh-shop-chips .wp-block-categories-list, ul.lh-shop-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.lh-shop-chips li a { font-family: var(--lh-ui); font-size: .875rem; font-weight: 500; text-decoration: none; border: 1px solid var(--lh-line-strong); padding: 9px 16px; display: inline-block; border-radius: 2px; }
.lh-shop-chips li a:hover, .lh-shop-chips li.current-cat a { background: var(--lh-ink); color: var(--lh-paper); border-color: var(--lh-ink); }
.lh-chip-all { margin: 0 !important; flex: none; }
.lh-chip-all a { font-family: var(--lh-ui); font-size: .875rem; font-weight: 500; text-decoration: none; border: 1px solid var(--lh-line-strong); padding: 9px 16px; display: inline-block; border-radius: 2px; white-space: nowrap; }
.lh-chip-all a:hover, .post-type-archive-product .lh-chip-all a { background: var(--lh-ink); color: var(--lh-paper); border-color: var(--lh-ink); }
.lh-shop-chips li a { white-space: nowrap; }
@media (max-width: 781px) {
  .lh-shop-bar { overflow-x: auto; scrollbar-width: none; margin-inline: calc(clamp(16px, 4vw, 48px) * -1) !important; padding-inline: clamp(16px, 4vw, 48px) !important; gap: 10px !important; }
  .lh-shop-bar::-webkit-scrollbar { display: none; }
  .lh-shop-chips .wp-block-categories-list, ul.lh-shop-chips { flex-wrap: nowrap; }
}
.lh-shop-bar { padding-block: 28px; border-bottom: 1px solid var(--lh-line); margin-bottom: clamp(32px, 4vw, 56px) !important; gap: 16px 24px; }
.lh-assure { border-top: 1px solid var(--lh-line); margin-top: clamp(56px, 7vw, 96px) !important; padding-top: 36px; font-family: var(--lh-ui); font-size: .9rem; }
.lh-assure strong { display: block; }

.lh-pdp { padding-top: 24px; padding-bottom: var(--lh-section); }
.lh-pdp-cols { gap: clamp(32px, 6vw, 96px) !important; margin-top: 24px !important; }
.lh-pdp-media { position: sticky; top: 130px; align-self: flex-start; }
.lh-pdp-media .woocommerce-product-gallery__image img, .lh-pdp-media .wc-block-components-product-image img { aspect-ratio: 4 / 5; object-fit: cover; }
.lh-pdp-line { font-style: italic; color: var(--lh-ink-soft); max-width: 44ch; }
.lh-pdp .wp-block-post-title { font-size: clamp(2.3rem, 1.7rem + 2.2vw, 3.6rem); line-height: 1.04; }
.lh-pdp .wc-block-components-product-price, .lh-pdp .price { font-family: var(--lh-ui); color: var(--lh-amber); font-size: 1.2rem; }
.lh-pdp .wc-block-components-product-summary p, .lh-pdp .wp-block-woocommerce-product-summary p { margin: 0 0 1em; font-size: 1.12rem; }
.lh-kicker { font-family: var(--lh-display); font-style: italic; color: var(--lh-amber); font-size: clamp(1.4rem, 1.2rem + .8vw, 1.9rem) !important; margin-bottom: .4em !important; }
.wc-block-components-product-metadata .lh-kicker, .wc-block-components-product-metadata__description .lh-kicker { font-size: .95rem !important; font-family: var(--lh-text); margin: 4px 0 0 !important; }
.lh-latin { font-style: italic; color: var(--lh-ink-soft); font-size: .95rem !important; }
.lh-highlight { background: var(--lh-paper-2); padding: 22px 24px; border-left: 2px solid var(--lh-amber); }
.lh-pdp form.cart { display: flex; gap: 12px; flex-wrap: wrap; padding-block: 24px; border-block: 1px solid var(--lh-line); margin: 8px 0 !important; }
.lh-pdp .quantity input { height: 52px; width: 72px; border: 1px solid var(--lh-line-strong); background: #FBFAF6; font-family: var(--lh-ui); font-size: 1rem; text-align: center; }
.lh-pdp .single_add_to_cart_button { flex: 1 1 220px; min-height: 52px; }
.lh-buy-note { font-family: var(--lh-ui); font-size: .85rem; color: var(--lh-ink-soft); }
.lh-pdp .woocommerce-tabs { margin-top: 40px; }
.lh-pdp-media .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce .lh-pdp div.product .woocommerce-tabs ul.tabs, .lh-pdp .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 24px !important; overflow-x: auto; scrollbar-width: none; }
.lh-pdp .woocommerce-tabs ul.tabs::before, .lh-pdp .woocommerce-tabs ul.tabs li::before, .lh-pdp .woocommerce-tabs ul.tabs li::after { display: none !important; }
.lh-pdp .woocommerce-tabs ul.tabs li { border: 0 !important; background: none !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; }
.lh-pdp .woocommerce-tabs ul.tabs li a { padding: 14px 20px 14px 0 !important; }
.lh-pdp .woocommerce-tabs .panel { padding: 0; margin: 0 0 1.5rem; }
.lh-pdp .woocommerce-tabs ul.tabs { list-style: none; display: flex; gap: 0; padding: 0; margin: 0 0 24px; border-bottom: 1px solid var(--lh-line); overflow-x: auto; }
.lh-pdp .woocommerce-tabs ul.tabs li { margin: 0; }
.lh-pdp .woocommerce-tabs ul.tabs li a { display: block; padding: 14px 20px 14px 0; margin-right: 20px; font-family: var(--lh-ui); font-weight: 600; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--lh-ink-soft); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.lh-pdp .woocommerce-tabs ul.tabs li.active a { color: var(--lh-ink); border-bottom-color: var(--lh-amber); }
.lh-pdp .woocommerce-Tabs-panel { max-width: 64ch; }
.lh-pdp .woocommerce-Tabs-panel > h2:first-child { display: none; }
.lh-pdp .woocommerce-Tabs-panel table { border-collapse: collapse; width: 100%; font-family: var(--lh-ui); font-size: .95rem; font-variant-numeric: tabular-nums; }
.lh-pdp .woocommerce-Tabs-panel td, .lh-pdp .woocommerce-Tabs-panel th { text-align: left; padding: 10px 16px 10px 0; border-bottom: 1px solid var(--lh-line); }
.lh-pdp .woocommerce-Tabs-panel li::marker { color: var(--lh-amber); }
.lh-related { border-top: 1px solid var(--lh-line); padding-top: var(--lh-section); margin-top: var(--lh-section) !important; }
.wc-block-mini-cart__button { font-family: var(--lh-ui); }
.lh-wc-page { padding-top: clamp(32px, 4vw, 56px) !important; }
.wc-block-components-totals-shipping__via { font-size: .85rem !important; }
a.added_to_cart, .wc-block-components-product-button a.wc-forward, .wc-block-components-notice-banner > .wc-block-components-notice-banner__content a.button.wc-forward { padding-top: 10px !important; padding-bottom: 10px !important; line-height: 1.2 !important; font-family: var(--lh-ui); font-size: .875rem; font-weight: 600; padding-block: 10px; }
.lh-mini-cart-static .wc-block-mini-cart__button { display: inline-flex; align-items: center; text-decoration: none; color: var(--lh-ink); }

/* ============ Touch targets (WCAG 2.2: at least 24px; aim for ~44px on phones) ============ */
@media (max-width: 781px) {
  .lh-footer ul { gap: 0; }
  .lh-footer li a { display: inline-block; padding-block: 11px; }
  .woocommerce-breadcrumb a, .wc-block-breadcrumbs a, .wp-block-post-terms a, .lh-post-nav a, .wp-block-post-navigation-link a { display: inline-block; padding-block: 10px; }
  .lh-toc-list li a { padding-block: 10px; }
  .lh-footer-legal a { display: inline-block; padding-block: 8px; }
}
.woocommerce-form__input-checkbox, .woocommerce form .form-row input[type="checkbox"] { width: 24px; height: 24px; accent-color: var(--lh-moss); }
.woocommerce .show-password-input { min-width: 44px; min-height: 44px; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox], .wc-block-components-radio-control .wc-block-components-radio-control__input { width: 24px !important; height: 24px !important; min-width: 24px; }
.wc-block-components-radio-control__option { padding-left: 3em !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: 4px 20px; font-family: var(--lh-ui); }
.woocommerce-MyAccount-navigation a { display: inline-block; padding-block: 10px; }
