/* ==========================================================================
   22apothecary — natural y ligero
   ========================================================================== */

/* Fuentes incluidas en el tema (licencia OFL, ver assets/fonts) */
@font-face { font-family: 'Jost'; src: url('../fonts/jost.woff') format('woff'); font-weight: 300 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-italic-300.woff') format('woff'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-soft-300.woff') format('woff'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Fraunces'; src: url('../fonts/fraunces-soft-300-italic.woff') format('woff'); font-weight: 300; font-style: italic; font-display: swap; }
@font-face { font-family: 'Marcellus SC'; src: url('../fonts/marcellus-sc.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }

:root {
	--ink: #26261F;
	--ink-2: #5C5850;
	--white: #FFFFFF;
	--sand: #F5EEE6;
	--sand-2: #EFE3D8;
	--sage: #EEF1E8;
	--forest: #23402A;
	--accent: #5F6B26;
	--honey: #D9B36A;
	--line: #ECE5DB;
	--line-2: #E2D8CB;
	--head: 'Jost', system-ui, sans-serif;
	--head-var: normal;
	--body: 'Jost', system-ui, sans-serif;
	--wrap: 1320px;
	--gutter: 48px;
	--radius: 2px;
}

/* Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--white);
	color: var(--ink);
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--ink); text-underline-offset: 3px; }
a:hover { color: var(--accent); }
p { margin: 0 0 1em; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .5em; font-weight: 400; line-height: 1.2; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
::selection { background: var(--sand-2); }

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	left: 12px; top: 12px; z-index: 1000; padding: 12px 18px;
	background: var(--white); color: var(--ink); box-shadow: 0 0 0 2px var(--accent);
}

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.wrap-narrow { max-width: 760px; margin: 0 auto; padding: 0 var(--gutter); }
.wrap-mid { max-width: 1040px; margin: 0 auto; padding: 0 var(--gutter); }
.center { text-align: center; }
.muted { color: var(--ink-2); }
.lead { font-size: 17px; }
.philosophy { display: flex; flex-direction: column; gap: 14px; }
.philosophy p { margin: 0; font-size: 16px; line-height: 1.7; }
.stack { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.stack > * { margin: 0; }
.stack-center { display: flex; flex-direction: column; gap: 20px; align-items: center; }
.stack-center > * { margin: 0; }

/* Type ------------------------------------------------------------------ */
.hd { font-family: var(--head); font-weight: 300; font-variation-settings: var(--head-var); letter-spacing: -0.005em; }
.h1 { font-size: 64px; line-height: 1.05; }
.h1b { font-size: 30px; line-height: 1.25; color: var(--accent); }
.h2 { font-size: 36px; line-height: 1.15; margin: 0; }
.h3 { font-size: 24px; line-height: 1.2; margin: 0; }
.page-title { font-size: 48px; line-height: 1.1; margin: 0; }
.eyebrow { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; margin: 0; }
.eyebrow a { text-decoration: none; color: inherit; }
.accent { color: var(--accent); }
.tag {
	font-family: 'Fraunces', Georgia, serif; font-style: italic; font-weight: 300;
	font-variation-settings: 'SOFT' 100, 'WONK' 0; line-height: 1; color: var(--accent); margin: 0;
}
.subhead { font-size: 17px; font-weight: 400; color: var(--accent); margin: 6px 0 0; }
.link-underline { text-decoration: underline; text-underline-offset: 4px; font-size: 15px; }

/* Buttons --------------------------------------------------------------- */
.btn, .button, button.button, a.button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wp-element-button, .wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 50px; padding: 0 28px; border: 1px solid var(--ink); border-radius: var(--radius);
	background: var(--ink); color: var(--white); font-family: var(--body); font-size: 15px; font-weight: 400;
	line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color .25s, color .25s, border-color .25s;
}
.btn:hover, .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .wp-element-button:hover,
.wc-block-components-button:not(.is-link):hover, input[type="submit"]:hover {
	background: var(--accent); border-color: var(--accent); color: var(--white);
}
.btn-sm { min-height: 44px; padding: 0 18px; font-size: 14px; }
.btn-outline, .woocommerce a.button.btn-outline { background: transparent; color: var(--ink); }
.btn-outline:hover { background: var(--ink); color: var(--white); border-color: var(--ink); }
.btn-light { background: var(--white); color: var(--forest); border-color: var(--white); }
.btn-light:hover { background: var(--sand); color: var(--forest); border-color: var(--sand); }
.btn-outline-light { background: transparent; color: var(--white); border-color: var(--white); }
.btn-outline-light:hover { background: var(--white); color: var(--forest); border-color: var(--white); }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; }
.iconbtn {
	width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: 22px; background: transparent; color: var(--ink); cursor: pointer; text-decoration: none; position: relative;
}
.iconbtn:hover { background: var(--sand); color: var(--ink); }
summary.iconbtn { list-style: none; }
summary.iconbtn::-webkit-details-marker { display: none; }

/* Forms ----------------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="password"],
input[type="number"], input[type="url"], select, textarea,
.woocommerce form .form-row .input-text, .woocommerce form .form-row select {
	width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: var(--radius);
	background: var(--white); font-size: 16px;
}
textarea { min-height: 120px; }
input:focus, select:focus, textarea:focus { border-color: var(--ink); outline: none; box-shadow: 0 0 0 2px var(--sand-2); }
label { font-size: 14px; }

/* Top bar & header ------------------------------------------------------- */
.topbar { background: var(--forest); color: var(--white); text-align: center; padding: 10px 16px; font-size: 14px; font-weight: 500; }
.topbar p { margin: 0; }
.site-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: 1px solid var(--line); }
.admin-bar .site-header { top: 32px; }
.head { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 24px; height: 88px; }
.head-left, .head-right { display: flex; align-items: center; gap: 4px; }
.head-right { justify-content: flex-end; }
.site-header .head-logo img, .site-header .head-logo .custom-logo { height: 60px; width: auto; max-width: none; }
.nav-primary .menu { list-style: none; display: flex; gap: 28px; margin: 0; padding: 0; }
.nav-primary a { text-decoration: none; font-size: 15px; padding: 8px 0; display: inline-block; }
.nav-primary a:hover, .nav-primary .current-menu-item > a { color: var(--accent); }
.nav-primary .menu-item-has-children { position: relative; }
.nav-primary .sub-menu {
	display: none; position: absolute; top: 100%; left: -16px; min-width: 220px; list-style: none; margin: 0; padding: 10px 0;
	background: var(--white); border: 1px solid var(--line); box-shadow: 0 10px 30px rgba(38,38,31,.08); z-index: 60;
}
.nav-primary .sub-menu a { display: block; padding: 8px 16px; }
.nav-primary .menu-item-has-children:hover > .sub-menu, .nav-primary .menu-item-has-children:focus-within > .sub-menu { display: block; }
.lang { list-style: none; display: flex; gap: 8px; margin: 0 8px 0 0; padding: 0; font-size: 13px; text-transform: uppercase; }
.lang a { text-decoration: none; color: var(--ink-2); }
.lang .current-lang a { color: var(--ink); }
.cart-count {
	position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
	background: var(--forest); color: var(--white); font-size: 11px; line-height: 18px; text-align: center;
}
.cart-count.is-empty { display: none; }

/* Drawer (mobile menu) & search */
.drawer { display: none; }
.drawer-panel {
	position: fixed; top: 0; left: 0; bottom: 0; width: min(86vw, 360px); background: var(--white); z-index: 200;
	padding: 76px 24px 32px; overflow-y: auto; box-shadow: 0 0 0 100vmax rgba(38,38,31,.35);
}
.drawer[open] > summary { position: fixed; top: 16px; left: 16px; z-index: 201; background: var(--sand); }
.drawer-menu { list-style: none; margin: 0 0 24px; padding: 0; }
.drawer-menu a { display: block; padding: 12px 0; font-size: 20px; font-weight: 300; text-decoration: none; border-bottom: 1px solid var(--line); }
.drawer-menu .sub-menu { list-style: none; padding-left: 14px; margin: 0; }
.drawer-menu .sub-menu a { font-size: 16px; }
.drawer-cats .menu { list-style: none; padding: 0; margin: 10px 0 24px; }
.drawer-cats a { display: block; padding: 7px 0; text-decoration: none; }
.drawer-account { display: inline-flex; gap: 8px; align-items: center; text-decoration: none; }
.searchbox > summary { list-style: none; }
.search-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-bottom: 1px solid var(--line); padding: 20px 0; box-shadow: 0 16px 30px rgba(38,38,31,.06); }
.search-form { display: flex; gap: 10px; }
.search-form .search-field { flex: 1 1 auto; }
.search-form .btn { flex: none; }

/* Hero ------------------------------------------------------------------ */
.hero { display: grid; grid-template-columns: minmax(0,7fr) minmax(0,5fr); align-items: stretch; }
.hero-text {
	background: var(--sand); display: flex; flex-direction: column; justify-content: center; gap: 24px;
	padding: 88px 72px 88px max(var(--gutter), calc((100% - var(--wrap)) / 2 + var(--gutter)));
}
.hero-text > * { margin: 0; }
.hero-tag { font-size: 32px; }
.hero-banner-m { display: none; }
.tagline-emblem {
	align-self: center; display: flex; align-items: center; gap: 18px; width: min(100%, 420px);
}
.tagline-emblem::before, .tagline-emblem::after { content: ""; flex: 1 1 0; height: 1px; background: var(--accent); opacity: .45; }
.tagline-text { font-size: 36px; line-height: 1.1; color: var(--accent); white-space: nowrap; }
.hero-title { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.hero-copy { max-width: 520px; display: flex; flex-direction: column; gap: 12px; color: var(--ink-2); }
.hero-copy p { margin: 0; }
.hero-media { position: relative; min-height: 640px; aspect-ratio: 7 / 10; }
.hero-frame { position: absolute; inset: 0; overflow: hidden; background: var(--sand-2); }
.hero-img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.seal { position: absolute; left: -90px; bottom: 72px; width: 180px; height: 180px; z-index: 2; }
.seal-bg { fill: var(--forest); }
.seal-ring { transform-origin: 100px 100px; }
.seal-num { font-family: 'Fraunces', Georgia, serif; font-weight: 300; font-variation-settings: 'SOFT' 100, 'WONK' 0; }
.seal-tag { font-family: 'Fraunces', Georgia, serif; font-style: italic; font-weight: 300; }

/* Promise --------------------------------------------------------------- */
.promise-band { padding: 52px 0; border-bottom: 1px solid var(--line); }
.promise { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.promise li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.promise-icon {
	width: 60px; height: 60px; border-radius: 30px; border: 1px solid var(--accent); color: var(--accent);
	display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.promise-title { font-size: 15px; font-weight: 500; }
.promise-text { font-size: 14px; color: var(--ink-2); max-width: 220px; }
.promise-compact { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 16px; }
.promise-compact li { flex-direction: row; text-align: left; gap: 10px; }
.promise-compact .promise-icon { width: 38px; height: 38px; }
.promise-compact .promise-title { font-size: 14px; font-weight: 400; }

/* Category circles ------------------------------------------------------ */
.sec-cats { padding: 64px 0 0; }
.cats { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 24px; width: 100%; max-width: 100%; min-width: 0; }
.cats a { display: flex; flex-direction: column; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); text-align: center; }
.circ {
	width: 150px; height: 150px; border-radius: 50%; background: var(--sand);
	display: flex; align-items: center; justify-content: center; transition: transform .4s ease, background-color .4s ease;
}
.circ img { height: 96px; width: auto; max-width: 100px; object-fit: contain; }
.cats .lbl { font-size: 17px; line-height: 1.3; }
.cats a:hover .circ, .cats a.is-current .circ { transform: translateY(-6px); background: var(--sand-2); }
.cats a:hover .lbl, .cats a.is-current .lbl { text-decoration: underline; text-underline-offset: 4px; }

/* Sections -------------------------------------------------------------- */
.sec { padding: 96px 0; }
.sec-tight-top { padding-top: 0; }
.sec-title { margin-bottom: 28px; }
.sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.sec-head > * { margin: 0; }
.band-sage { background: var(--sage); }
.split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center; }
.split-end { align-items: end; margin-bottom: 40px; }
.split > * { margin: 0; }
.page-hero { padding: 88px 0 56px; }

/* Collections */
.collections { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.collection { position: relative; display: block; overflow: hidden; text-decoration: none; color: var(--ink); background: var(--sand); }
.collection img { width: 100%; height: 540px; object-fit: cover; }
.collection-label { position: absolute; left: 16px; bottom: 16px; background: var(--white); padding: 12px 18px; display: flex; flex-direction: column; gap: 2px; }
.collection-name { font-size: 18px; }
.collection-cta { font-size: 13px; color: var(--ink-2); }

/* Zoom on hover */
.zoom { transition: transform .7s ease; }
a:hover .zoom, .card:hover .zoom, .post-card:hover .zoom { transform: scale(1.04); }

/* Families */
.families { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 16px; margin-bottom: 40px; }
.family img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.family-names { font-size: 13px; line-height: 1.45; color: var(--ink-2); margin: 10px 0 0; }
.family-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.family-card { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 24px; align-items: center; padding: 16px; background: var(--sand); }
.family-card img { width: 140px; height: 140px; object-fit: cover; }
.family-card h3 { margin: 4px 0 6px; }
.family-card p { margin: 0; }
.howto { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.howto-step { padding: 28px; border: 1px solid var(--line); }
.family-rows { display: flex; flex-direction: column; gap: 80px; }
.family-row { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 64px; align-items: center; }
.family-row.is-flipped { grid-template-columns: minmax(0,7fr) minmax(0,5fr); }
.family-row.is-flipped .family-row-img { order: 2; }
.family-row-img { width: 100%; max-width: 440px; aspect-ratio: 1 / 1; object-fit: cover; justify-self: center; border-radius: 6px; }
.family-row-text { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.family-row-text > * { margin: 0; }
.family-row-text .muted { font-size: 16px; line-height: 1.75; }
.howto-num { font-size: 44px; color: var(--accent); display: block; margin-bottom: 8px; line-height: 1; }
.howto-step p { margin: 0; color: var(--ink-2); }

/* Founder */
.founder-img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 30% 40%; background: var(--sand); }
.about { display: grid; grid-template-columns: minmax(0,5fr) minmax(0,7fr); gap: 72px; align-items: start; }
.about-media { display: flex; flex-direction: column; gap: 18px; margin: 0; }
.about-media figcaption { display: flex; flex-direction: column; gap: 8px; }
.about-name { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin: 0; }
.about-bio { margin: 0; font-size: 15px; line-height: 1.7; color: var(--ink-2); }
.quote { margin: 0; padding: 22px 0 0; border-top: 1px solid var(--line); font-size: 20px; font-style: italic; font-weight: 300; line-height: 1.45; }
.signoff { display: flex; flex-direction: column; gap: 6px; }
.signoff .tag { font-size: 22px; }
.signoff img { width: 150px; }

/* Blog cards */
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 32px 24px; }
.post-card { display: flex; flex-direction: column; background: var(--white); }
.post-card-media { display: block; overflow: hidden; background: var(--sand); }
.post-card-media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.post-card-body { display: flex; flex-direction: column; gap: 10px; padding: 18px 0 0; }
.post-card-body > * { margin: 0; }
.post-card-title { font-size: 24px; line-height: 1.25; }
.post-card-title a { text-decoration: none; }
.post-card-excerpt { color: var(--ink-2); }
.post-card-wide { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); background: var(--sand); }
.post-card-wide { grid-template-columns: minmax(0,5fr) minmax(0,7fr); }
.post-card-wide .post-card-media { position: relative; min-height: 340px; }
.post-card-wide .post-card-media img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.post-card-wide .post-card-body { padding: 36px 48px; justify-content: center; }
.post-card-wide .post-card-title { font-size: 30px; }
.nav-links { display: flex; gap: 8px; justify-content: center; margin-top: 48px; flex-wrap: wrap; }
.nav-links .page-numbers { min-width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-2); text-decoration: none; }
.nav-links .page-numbers.current { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* Page header & content */
.page-header { padding: 72px 0 40px; }
.page-header .eyebrow, .page-header .tag { margin-bottom: 12px; }
.page-intro { color: var(--ink-2); font-size: 17px; max-width: 640px; margin: 14px 0 0; }
.prose { max-width: 760px; font-size: 17px; }
.prose h2 { font-family: var(--head); font-weight: 300; font-size: 30px; margin: 1.6em 0 .5em; }
.prose h3 { font-size: 22px; margin: 1.4em 0 .5em; }
.prose ul, .prose ol { padding-left: 1.2em; }
.prose img { margin: 1.5em 0; }
.prose blockquote { margin: 1.5em 0; padding-left: 20px; border-left: 2px solid var(--accent); font-style: italic; }
.entry-wide { padding-bottom: 96px; }
.page-default .entry-content { padding-bottom: 96px; }
.post-header { padding-top: 72px; padding-bottom: 32px; display: flex; flex-direction: column; gap: 14px; }
.post-header > * { margin: 0; }
.post-hero { margin: 0 auto 40px; }
.post-hero img { width: 100%; }
.post-footer { padding-top: 24px; padding-bottom: 40px; }
.search-again { max-width: 640px; margin: 0 auto 40px; }

/* Contact */
.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-bottom: 56px; }
.contact-card { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: var(--sand); text-decoration: none; color: var(--ink); transition: background-color .3s; }
.contact-card:hover { background: var(--sand-2); color: var(--ink); }
.contact-label { font-size: 18px; }
.contact-split { align-items: start; }
.map iframe { width: 100%; height: 420px; border: 0; display: block; }

/* Newsletter & footer ---------------------------------------------------- */
.newsletter { background: var(--forest); color: var(--white); padding: 80px 0; }
.newsletter-inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.newsletter-inner > * { margin: 0; }
.newsletter .tag { color: var(--honey); font-size: 24px; }
.newsletter-text { color: #DCE3D6; max-width: 480px; }
.newsletter-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }
.newsletter-form { width: 100%; max-width: 520px; margin-top: 8px; }
.newsletter-form input[type="email"], .newsletter-form input[type="text"] { border: 0; }
.newsletter-form label { color: var(--white); }
.site-footer { background: var(--sand); padding: 72px 0 32px; }
.foot { display: grid; grid-template-columns: minmax(0,2fr) repeat(3, minmax(0,1fr)); gap: 40px; }
.foot-brand { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.foot-brand > * { margin: 0; }
.site-footer .foot-logo { height: 56px; width: auto; max-width: none; }
.foot-brand .tag { font-size: 24px; }
.foot-brand .muted { font-size: 14px; max-width: 340px; }
.foot-col .eyebrow { margin-bottom: 14px; }
.foot-col .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.foot-col a { color: var(--ink-2); text-decoration: none; }
.foot-col a:hover { color: var(--accent); text-decoration: underline; }
.foot-bottom { border-top: 1px solid var(--line-2); margin-top: 48px; padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 12px; color: var(--ink-2); }
.foot-bottom p { margin: 0; }
.wa-float {
	position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 56px; height: 56px; border-radius: 28px;
	background: var(--forest); color: var(--white); display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 24px rgba(35,64,42,.3); transition: transform .3s;
}
.wa-float:hover { color: var(--white); transform: translateY(-3px); }

/* ==========================================================================
   WooCommerce
   ========================================================================== */
.shop-main { padding: 40px 0 96px; }
.woocommerce-breadcrumb.crumbs, .woocommerce .woocommerce-breadcrumb { font-size: 13px; color: var(--ink-2); margin: 0 0 28px; }
.crumbs a { color: var(--ink-2); text-decoration: none; }
.crumbs .sep { margin: 0 8px; }
.woocommerce-products-header { margin-bottom: 8px; }
.woocommerce-products-header__title.page-title { font-family: var(--head); font-weight: 300; font-variation-settings: var(--head-var); }
.term-description { color: var(--ink-2); max-width: 680px; }
.shop-cats { margin: 32px 0 48px; }
.shop-cats .circ { width: 112px; height: 112px; }
.shop-cats .circ img { height: 72px; }
.shop-cats .lbl { font-size: 15px; }
.woocommerce .woocommerce-result-count { color: var(--ink-2); font-size: 14px; margin: 12px 0 24px; }
.woocommerce .woocommerce-ordering { margin: 0 0 24px; }
.woocommerce .woocommerce-ordering select { min-height: 44px; width: auto; }

/* Product grid & card */
.woocommerce ul.products, ul.products {
	list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 32px 20px;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.woocommerce ul.products li.product, ul.products li.card,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product {
	width: auto; float: none; clear: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0;
}
.card-media { position: relative; background: var(--sand); height: 360px; overflow: hidden; }
.card-media-link { position: relative; display: flex; align-items: center; justify-content: center; height: 100%; padding: 46px 40px 26px; isolation: isolate; }
.card-media-link::before {
	content: ""; position: absolute; inset: 22px 26px 18px; z-index: -1;
	border: 1.5px solid var(--accent); border-radius: 999px 999px 22px 22px; background: rgba(238,241,232,.75);
	transition: border-color .4s ease, background-color .4s ease;
}
.card-media-link img { max-width: 80% !important; }
.card:hover .card-media-link::before, li.product:hover .card-media-link::before { background: var(--sage); }
.card-media img, .woocommerce ul.products li.product .card-media img {
	width: auto; max-width: 100%; height: 100%; max-height: 100%; object-fit: contain; margin: 0; box-shadow: none;
}
.card-wish { position: absolute; top: 10px; right: 10px; }
.woocommerce span.onsale, .card-media .onsale {
	position: absolute; top: 12px; left: 12px; right: auto; min-height: 0; min-width: 0; padding: 4px 10px; margin: 0;
	border-radius: var(--radius); background: var(--forest); color: var(--white); font-size: 12px; line-height: 1.5; font-weight: 400;
}
.card-body { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; flex: 1 1 auto; }
.card-body > * { margin: 0; }
.card-blend { font-size: 13px; letter-spacing: .03em; color: var(--accent); }
.product-blend { text-transform: none; letter-spacing: .03em; font-size: 14px; }
.card-title, .woocommerce ul.products li.product .woocommerce-loop-product__title.card-title {
	font-family: var(--body); font-size: 18px; font-weight: 400; line-height: 1.3; padding: 0; margin: 0;
}
.card-title a { text-decoration: none; }
.card-price .price, .woocommerce ul.products li.product .price { color: var(--ink-2); font-size: 15px; margin: 0; display: block; }
.price del { opacity: .6; margin-right: 6px; }
.price ins { text-decoration: none; color: var(--ink); }
.card-action { margin-top: auto; padding-top: 6px; }
.card-action .button, .woocommerce ul.products li.product .button {
	display: flex; align-items: center; justify-content: center; text-align: center;
	width: 100%; min-height: 46px; margin: 0; padding: 0 12px; font-size: 14px; line-height: 1.2;
}
.woocommerce ul.products li.product .added_to_cart { display: block; text-align: center; padding-top: 8px; font-size: 14px; }
.woocommerce .star-rating { color: var(--accent); font-size: 13px; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 8px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	min-width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line-2);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: var(--white); border-color: var(--ink); }
.woocommerce nav.woocommerce-pagination { margin-top: 48px; }

/* Single product */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: start; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto; float: none; margin: 0; }
.woocommerce div.product div.images { background: var(--sand); padding: 32px; }
.woocommerce div.product div.images img { margin: 0 auto; max-height: 640px; width: auto; object-fit: contain; }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 12px; display: flex; gap: 8px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; float: none; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; }
.woocommerce div.product div.summary { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 120px; }
.woocommerce div.product div.summary > * { margin: 0; }
.woocommerce div.product .product_title { font-size: 44px; line-height: 1.1; font-weight: 300; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--ink); font-size: 22px; }
.woocommerce-product-details__short-description { color: var(--ink-2); font-size: 17px; }
.woocommerce div.product form.cart { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; margin: 6px 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { content: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity .qty { width: 80px; min-height: 50px; text-align: center; }
.woocommerce div.product form.cart .button { float: none; flex: 1 1 220px; }
.woocommerce div.product form.cart .variations { margin-bottom: 8px; width: 100%; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 6px 0; display: block; }
.woocommerce div.product form.cart .reset_variations { font-size: 13px; }
.woocommerce div.product form.cart .variations th, .woocommerce div.product form.cart .variations td { text-align: left; }
.woocommerce div.product form.cart .variations th label { font-weight: 500; font-size: 14px; }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce input.button.alt { background: var(--ink); border-color: var(--ink); color: var(--white); }
.woocommerce button.button.alt:hover, .woocommerce a.button.alt:hover { background: var(--accent); border-color: var(--accent); color: var(--white); }
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce button.button.alt:disabled[disabled],
.woocommerce button.button.alt.disabled:hover, .woocommerce button.button:disabled[disabled]:hover {
	background: var(--ink); border-color: var(--ink); color: var(--white); opacity: .45; padding: 0 28px;
}
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; gap: 12px; flex-wrap: wrap; width: 100%; }
.product-promise { padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.product_meta { font-size: 13px; color: var(--ink-2); display: flex; flex-direction: column; gap: 4px; }
.product_meta a { color: var(--ink-2); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 24px 0 0; border-bottom: 1px solid var(--line); display: flex; gap: 28px; overflow-x: auto; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: none; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; font-weight: 400; color: var(--ink-2); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); box-shadow: inset 0 -2px 0 var(--ink); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 28px 0; max-width: 760px; font-size: 17px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
.related > h2, .upsells > h2, .cross-sells > h2 { font-family: var(--head); font-weight: 300; font-size: 32px; margin: 40px 0 24px; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { padding: 10px; border-color: var(--line); font-style: normal; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	border-top: 0; border-left: 3px solid var(--accent); background: var(--sand); color: var(--ink); border-radius: 0;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--accent); }
.woocommerce-error { border-left-color: #A6382B; }
.woocommerce-store-notice, p.demo_store { background: var(--forest); }

/* Cart / checkout (classic and blocks) */
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--line); padding: 14px 12px; }
.woocommerce table.shop_table img { width: 72px; background: var(--sand); }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout-review-order { background: var(--sand); padding: 24px; }
.woocommerce-checkout #payment { background: var(--sand); border-radius: 0; }
.wc-block-cart, .wc-block-checkout { font-family: var(--body); }
.wc-block-components-sidebar .wc-block-components-totals-wrapper, .wc-block-components-order-summary { border-color: var(--line); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select { border-color: var(--line-2) !important; border-radius: var(--radius) !important; }
.wc-block-components-product-name { text-decoration: none; }
.wp-block-woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image img { background: var(--sand); }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 48px; }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { content: none; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--accent); }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon { border: 1px solid var(--line); border-radius: 0; padding: 28px; }

/* ==========================================================================
   Motion
   ========================================================================== */
@keyframes tta-spin { to { transform: rotate(360deg); } }
@keyframes tta-hero { from { transform: scale(1.07); } to { transform: scale(1); } }
@keyframes tta-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
	.seal-ring { animation: tta-spin 60s linear infinite; }
	.hero-img { animation: tta-hero 2.4s cubic-bezier(.2,.7,.2,1) both; }
	@supports (animation-timeline: view()) {
		.reveal { animation: tta-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
	}
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.zoom, .circ { transition: none; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.families { grid-template-columns: repeat(4, minmax(0,1fr)); }
	.woocommerce ul.products, ul.products { grid-template-columns: repeat(3, minmax(0,1fr)); }
	.hero-text { padding-right: 48px; }
}

@media (max-width: 900px) {
	:root { --gutter: 20px; }
	.admin-bar .site-header { top: 0; }
	.head { height: 72px; gap: 8px; }
	.site-header .head-logo img, .site-header .head-logo .custom-logo { height: 48px; }
	.nav-primary, .hide-m { display: none !important; }
	.drawer { display: block; }
	.h1 { font-size: 42px; }
	.h1b { font-size: 22px; }
	.h2 { font-size: 28px; }
	.page-title { font-size: 34px; }
	.sec { padding: 64px 0; }
	.sec-tight-top { padding-top: 0; }
	.page-header { padding: 48px 0 28px; }
	.page-hero { padding: 56px 0 32px; }

	.hero { grid-template-columns: minmax(0,1fr); min-height: 0; }
	.hero-banner-m { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--sand-2); }
	.hero-banner-m img { display: block; width: 100%; height: 100%; object-fit: cover; }
	.hero-banner-m + .hero-text { padding-top: 36px; }
	.hero-text { padding: 52px 20px 88px; }
	.topbar { font-size: 13px; padding: 8px 14px; }
	.hero-tag { font-size: 28px; }
	.tagline-emblem { gap: 14px; }
	.tagline-text { font-size: 30px; }
	.hero-media { min-height: 0; aspect-ratio: 7 / 10; }
	.hero-img { object-position: center 52%; }
	.seal { left: auto; right: 16px; bottom: auto; top: -60px; width: 120px; height: 120px; }

	.promise { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 28px; }
	.promise-compact { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }

	.cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px 14px; }
	.cats a { flex: 0 0 100px; }
	.circ, .shop-cats .circ { width: 96px; height: 96px; }
	.circ img, .shop-cats .circ img { height: 62px; max-width: 64px; }
	.cats .lbl, .shop-cats .lbl { font-size: 14px; }

	.split { grid-template-columns: minmax(0,1fr); gap: 36px; }
	.collections { grid-template-columns: minmax(0,1fr); gap: 16px; }
	.collection img { height: 420px; }
	.families { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
	.family-list { grid-template-columns: minmax(0,1fr); }
	.family-card { grid-template-columns: 96px minmax(0,1fr); gap: 16px; }
	.family-card img { width: 96px; height: 96px; }
	.family-rows { gap: 56px; }
	.family-row { grid-template-columns: minmax(0,1fr); gap: 24px; }
	.family-row.is-flipped { grid-template-columns: minmax(0,1fr); }
	.family-row.is-flipped .family-row-img { order: 0; }
	.family-row-img { max-width: 100%; }
	.howto { grid-template-columns: minmax(0,1fr); }
	.founder-img { height: auto; }
	.about { grid-template-columns: minmax(0,1fr); gap: 40px; }
	.post-grid { grid-template-columns: minmax(0,1fr); }
	.post-card-wide { grid-template-columns: minmax(0,1fr); }
	.post-card-wide .post-card-media { position: static; min-height: 0; }
	.post-card-wide .post-card-media img { position: static; height: auto; aspect-ratio: 3 / 2; }
	.post-card-wide .post-card-body { padding: 24px 20px 28px; }
	.post-card-wide .post-card-title { font-size: 24px; }
	.foot { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; }
	.foot-brand { grid-column: 1 / -1; }
	.map iframe { height: 300px; }

	.woocommerce ul.products, ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px 12px; }
	.card-media { height: 220px; }
	.card-media-link { padding: 18px; }
	.card-title, .woocommerce ul.products li.product .woocommerce-loop-product__title.card-title { font-size: 16px; }
	.card-action .button, .woocommerce ul.products li.product .button { font-size: 13px; padding: 0 10px; }
	.woocommerce div.product { grid-template-columns: minmax(0,1fr); gap: 28px; }
	.woocommerce div.product div.summary { position: static; }
	.woocommerce div.product .product_title { font-size: 34px; }
	.woocommerce-account .woocommerce { grid-template-columns: minmax(0,1fr); gap: 24px; }
	.search-form .btn span { display: none; }
	.search-form .btn { padding: 0 16px; }
}

@media (max-width: 782px) {
	.admin-bar .site-header { top: 0; }
}
