/*
Theme Name: LMB Atelier
Theme URI: https://lmbatelier.ro
Author: RMA
Description: Tema magazinului LMB Atelier (WooCommerce): hârtie, verdele siglei și etichetele borcanelor din atelier.
Requires at least: 7.0
Requires PHP: 8.3
Version: 0.3.6
Text Domain: lmbatelier
*/

/*
 * Colours, type and spacing are in theme.json (var(--wp--preset--…)).
 * The handmade bits, in the order they appear:
 *   - paper grain on the page background;
 *   - the handwritten face (Patrick Hand) only for notes in the margin;
 *   - the pinned photo in the hero;
 *   - jar labels on the shelf, after the labels on the shop's own jars;
 *   - rubber-stamp sale marks and paper slips on product photos;
 *   - a stitched (dashed) focus ring.
 */

:root {
	--lmb-paper: var(--wp--preset--color--paper);
	--lmb-wax: var(--wp--preset--color--wax);
	--lmb-forest: var(--wp--preset--color--forest);
	--lmb-forest-deep: var(--wp--preset--color--forest-deep);
	--lmb-sage: var(--wp--preset--color--sage);
	--lmb-stem: var(--wp--preset--color--stem);
	--lmb-ink: var(--wp--preset--color--ink);
	--lmb-white: var(--wp--preset--color--white);
	--lmb-rule: #cfcdb3;
	--lmb-hand: var(--wp--preset--font-family--hand);
	--lmb-display: var(--wp--preset--font-family--display);
	--lmb-wide: 1240px;
	--lmb-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .16 0 0 0 0 .1 .1 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	--lmb-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='6' viewBox='0 0 16 6'%3E%3Cpath d='M0 3.2Q4 .4 8 3t8 .2' fill='none' stroke='%2310641a' stroke-width='1.3'/%3E%3C/svg%3E");
	--lmb-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.2 13.8C2.6 7.4 7.4 2.6 14 2.2c-.2 6.6-5.2 11.4-11.8 11.6z' fill='%235f8a66'/%3E%3Cpath d='M2.6 13.4 10.5 5.6' stroke='%23f5f4e8' stroke-width='.9' stroke-linecap='round'/%3E%3C/svg%3E");
	--lmb-sprig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='28' viewBox='0 0 140 28'%3E%3Cpath d='M4 20C40 14 90 19 134 9' fill='none' stroke='%236d7068' stroke-width='1.1' stroke-linecap='round'/%3E%3Cg fill='%235f8a66'%3E%3Cpath d='M34 16.4c-4-7.6-11.4-9.6-15.6-8.6 2.8 5 8.6 8.2 15.6 8.6z'/%3E%3Cpath d='M57 16.6c4.4-7.4 11.8-9 16-7.8-3 4.8-9 7.6-16 7.8z'/%3E%3Cpath d='M86 15.6c-3.6-7.8-10.8-10.2-15.2-9.4 2.6 5.2 8.2 8.6 15.2 9.4z'/%3E%3Cpath d='M108 13c4.8-7 12.4-8.2 16.4-6.8-3.2 4.6-9.4 7-16.4 6.8z'/%3E%3Ccircle cx='134.5' cy='8.6' r='2.4'/%3E%3C/g%3E%3C/svg%3E");
}

body {
	background-color: var(--lmb-paper);
	background-image: var(--lmb-grain);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px dashed var(--lmb-forest);
	outline-offset: 3px;
}

img { height: auto; }

.lmb-hand {
	font-family: var(--lmb-hand);
	font-size: 1.35rem;
	line-height: 1.3;
	color: var(--lmb-sage);
}

.lmb-main { padding-bottom: var(--wp--preset--spacing--60); }

.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1.5px solid var(--lmb-forest);
	color: var(--lmb-forest);
	background: transparent;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--lmb-forest);
	color: var(--lmb-white);
}

/* Header ------------------------------------------------------------------ */

.lmb-header { margin-bottom: 0; }

.lmb-announce {
	background: var(--lmb-wax);
	color: var(--lmb-forest);
	font-family: var(--lmb-hand);
	font-size: 1.15rem;
	padding-block: 0.35rem;
}
.lmb-announce p { margin: 0; }

/*
 * Desktop: search | mark | account, cart; the menu on its own row.
 * Phone (the menu folds into a button below 600px): menu | mark | account, cart; search below.
 */
.lmb-masthead {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas: "search brand tools" "nav nav nav";
	align-items: center;
	column-gap: 1rem;
	max-width: var(--lmb-wide);
	margin: 0 auto;
	padding: 1.1rem var(--wp--style--root--padding-right) 0 var(--wp--style--root--padding-left);
}
.lmb-masthead > * { margin: 0 !important; }
.lmb-search { grid-area: search; }
.lmb-brand { grid-area: brand; }
.lmb-tools { grid-area: tools; }
.lmb-nav { grid-area: nav; }

.lmb-brand { display: block; line-height: 0; }
.lmb-brand img { height: 124px; width: auto; }

.lmb-search { max-width: 15rem; width: 100%; }
.lmb-search .wp-block-search__inside-wrapper {
	border: 0 !important;
	border-bottom: 1px solid var(--lmb-stem) !important;
	padding: 0 !important;
	background: transparent;
}
.lmb-search .wp-block-search__input {
	background: transparent;
	border: 0;
	font-size: 1rem;
	padding: 0.4rem 0;
	color: var(--lmb-ink);
	min-width: 0;
}
.lmb-search .wp-block-search__input::placeholder { color: var(--lmb-stem); }
.lmb-search .wp-block-search__button {
	background: transparent !important;
	color: var(--lmb-forest) !important;
	padding: 0.2rem !important;
	margin: 0;
}

.lmb-tools { gap: 0.4rem; }
.lmb-tools svg { width: 26px; height: 26px; }
.lmb-tools a, .lmb-tools button { color: var(--lmb-forest); }
.lmb-tools .wc-block-mini-cart__button,
.lmb-tools .wc-block-customer-account a { padding: 0.45rem; }
.wc-block-mini-cart__badge {
	background: var(--lmb-forest) !important;
	color: var(--lmb-white) !important;
	font-family: var(--wp--preset--font-family--body);
}

.lmb-nav {
	padding: 0.5rem 0 0.9rem;
	font-size: 1.14rem;
	font-weight: 500;
	gap: 0.25rem 1.9rem;
}
.lmb-nav .wp-block-navigation-item__content {
	color: var(--lmb-forest);
	padding: 0.25rem 0 0.4rem;
	text-decoration: none;
}
.lmb-nav .wp-block-navigation-item__content:hover,
.lmb-nav .current-menu-item > .wp-block-navigation-item__content {
	background: var(--lmb-wave) repeat-x left bottom / 16px 6px;
}
.lmb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background: var(--lmb-white) !important;
	border: 1px solid var(--lmb-rule) !important;
	padding: 0.5rem 0;
}
/* widened only while open: a closed one would still push the page sideways */
.lmb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:where(:hover, :focus-within) > .wp-block-navigation__submenu-container {
	min-width: 16rem !important;
}
/* the last menu opens leftwards, so it stays on screen */
.lmb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child:last-child > .wp-block-navigation__submenu-container {
	left: auto;
	right: 0;
}
.lmb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.45rem 1.1rem;
	font-weight: 400;
}
.lmb-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--lmb-paper);
}

/* the folded menu, on phones */
.lmb-nav .wp-block-navigation__responsive-container-open,
.lmb-nav .wp-block-navigation__responsive-container-close {
	color: var(--lmb-forest);
	padding: 0.45rem;
	margin: -0.45rem;
}
.lmb-nav .wp-block-navigation__responsive-container-open svg,
.lmb-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.lmb-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--lmb-paper) var(--lmb-grain) !important;
	color: var(--lmb-forest) !important;
	padding: 1.25rem var(--wp--style--root--padding-left) 2.5rem;
}
.lmb-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 3rem !important;
	align-items: stretch !important;
}
.lmb-nav .is-menu-open .wp-block-navigation__container {
	width: 100%;
	align-items: stretch !important;
	gap: 0 !important;
}
.lmb-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	align-items: flex-start !important;
	width: 100%;
	padding: 0.65rem 0;
	border-bottom: 1px solid var(--lmb-rule);
}
.lmb-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--lmb-display);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.2;
	padding: 0.15rem 0;
	color: var(--lmb-forest);
}
.lmb-nav .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	background: none !important;
	padding: 0.3rem 0 0.2rem 1rem !important;
	min-width: 0 !important;
	gap: 0 !important;
	align-items: flex-start !important;
}
.lmb-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1.12rem;
	font-weight: 400;
	color: var(--lmb-ink);
	padding: 0.4rem 0 !important;
}
.lmb-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none; }

@media (max-width: 781px) {
	.lmb-brand img { height: 84px; }
	.lmb-search { max-width: 11rem; }
}
@media (max-width: 599px) {
	.lmb-masthead {
		grid-template-areas: "nav brand tools" "search search search";
		padding-top: 0.6rem;
	}
	.lmb-nav { padding: 0; justify-self: start; }
	.lmb-brand img { height: 74px; }
	.lmb-search { max-width: none; margin: 0.7rem 0 0.6rem !important; }
	.lmb-tools { gap: 0; }
}

/* Carousel ------------------------------------------------------------------ */

.lmb-hero {
	max-width: var(--lmb-wide);
	margin: 0 auto;
	padding: var(--wp--preset--spacing--30) var(--wp--style--root--padding-right) var(--wp--preset--spacing--50) var(--wp--style--root--padding-left);
}
.lmb-hero__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.lmb-hero__track::-webkit-scrollbar { display: none; }
.lmb-slide {
	box-sizing: border-box;
	flex: 0 0 100%;
	scroll-snap-align: start;
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
	/* room for the tape, the tilt and the print's shadow inside the scroller */
	padding: 1.8rem 1.6rem 2.2rem;
}
.lmb-slide__text { max-width: 33rem; }
.lmb-slide__title {
	font-family: var(--lmb-display);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.08;
	color: var(--lmb-forest);
	margin: 0 0 1.3rem;
}
.lmb-lede { font-size: 1.3rem; line-height: 1.5; margin: 0 0 2rem; }

.lmb-hero__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
}
.lmb-hero__prev, .lmb-hero__next {
	display: grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	padding: 0;
	border: 1.5px solid var(--lmb-forest);
	border-radius: 52% 46% 55% 44% / 47% 55% 45% 53%;
	background: transparent;
	color: var(--lmb-forest);
	cursor: pointer;
}
.lmb-hero__next { border-radius: 45% 55% 48% 52% / 55% 44% 56% 46%; }
.lmb-hero__prev:hover, .lmb-hero__next:hover { background: var(--lmb-forest); color: var(--lmb-white); }
.lmb-hero__dots {
	list-style: none;
	display: flex;
	margin: 0;
	padding: 0;
}
.lmb-hero__dots button {
	display: block;
	width: 1.6rem;
	height: 1.6rem;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}
.lmb-hero__dots button::before {
	content: "";
	display: block;
	width: 0.6rem;
	height: 0.6rem;
	margin: auto;
	border: 1.5px solid var(--lmb-forest);
	border-radius: 50% 45% 55% 48%;
}
.lmb-hero__dots button[aria-current="true"]::before { background: var(--lmb-forest); }

.lmb-pinned {
	position: relative;
	margin: 0;
	background: var(--lmb-white);
	padding: 0.85rem 0.85rem 3.2rem;
	transform: rotate(1.4deg);
	box-shadow: 0 1px 1px rgba(31, 42, 28, 0.14), 0 22px 30px -22px rgba(31, 42, 28, 0.45);
}
.lmb-slide:nth-child(even) .lmb-pinned { transform: rotate(-1.2deg); }
.lmb-pinned::before {
	/* a strip of paper tape */
	content: "";
	position: absolute;
	top: -15px;
	left: 50%;
	width: 132px;
	height: 32px;
	transform: translateX(-50%) rotate(-3.5deg);
	background: rgba(214, 211, 178, 0.78);
	clip-path: polygon(2% 8%, 9% 0, 17% 7%, 26% 1%, 38% 6%, 51% 0, 63% 7%, 74% 1%, 86% 6%, 100% 2%, 98% 92%, 89% 100%, 77% 94%, 64% 100%, 52% 93%, 40% 100%, 27% 94%, 14% 100%, 0 95%);
}
.lmb-pinned img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.lmb-pinned figcaption {
	position: absolute;
	left: 1rem;
	right: 1rem;
	bottom: 0.75rem;
	font-family: var(--lmb-hand);
	font-size: 1.2rem;
	color: var(--lmb-ink);
	text-align: center;
	transform: rotate(-1deg);
}

@media (max-width: 959px) {
	.lmb-slide { grid-template-columns: 1fr; gap: 1.6rem; align-content: start; padding: 1.4rem 0.9rem 1.6rem; }
	.lmb-slide__text { max-width: 38rem; }
	.lmb-slide .lmb-pinned { order: -1; padding: 0.55rem 0.55rem 2.6rem; }
	.lmb-slide__title { font-size: clamp(1.75rem, 7vw, 2.4rem); margin-bottom: 0.9rem; }
	.lmb-lede { font-size: 1.15rem; margin-bottom: 1.4rem; }
	.lmb-pinned figcaption { font-size: 1.05rem; bottom: 0.55rem; }
}

/* The shelf: jar labels ---------------------------------------------------- */

.lmb-shelf { padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50); }
.lmb-shelf h2 { margin-bottom: 2rem; }
.lmb-shelf__jars {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.6rem 1.6rem;
}
.lmb-jar { display: block; text-decoration: none; color: inherit; }
.lmb-jar img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 2px;
}
.lmb-label {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.1rem;
	margin: -2.4rem 0.9rem 0;
	padding: 0.75rem 0.7rem 0.85rem;
	background: var(--lmb-white);
	border: 1px solid var(--lmb-forest);
	box-shadow: inset 0 0 0 3px var(--lmb-white), inset 0 0 0 4px var(--lmb-forest);
	text-align: center;
}
.lmb-label__brand {
	font-family: var(--lmb-display);
	font-size: 0.78rem;
	color: var(--lmb-stem);
	letter-spacing: 0.04em;
}
.lmb-label__name {
	font-family: var(--lmb-display);
	font-style: italic;
	font-size: 1.32rem;
	line-height: 1.15;
	color: var(--lmb-forest);
}
.lmb-label__note { font-size: 0.95rem; color: var(--lmb-stem); line-height: 1.3; }
.lmb-jar:hover .lmb-label__name,
.lmb-jar:focus-visible .lmb-label__name {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

@media (max-width: 960px) { .lmb-shelf__jars { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) {
	.lmb-shelf__jars { gap: 2rem 0.9rem; }
	.lmb-label { margin-inline: 0.45rem; padding-inline: 0.4rem; }
	.lmb-label__name { font-size: 1.1rem; }
	.lmb-label__note { font-size: 0.85rem; }
}

/* Home sections ------------------------------------------------------------ */

.lmb-section { padding-block: var(--wp--preset--spacing--50); }
.lmb-section__head {
	gap: 0.5rem 2rem;
	margin-bottom: 1.8rem;
}
.lmb-section__head h2 { margin: 0 0 0.4rem; }
.lmb-section__head p { margin: 0; max-width: 40rem; }
.lmb-section__head > p a,
.lmb-section__head > .wp-block-group + p a { font-weight: 500; white-space: nowrap; }

.lmb-story, .lmb-sand {
	background: var(--lmb-wax) var(--lmb-grain);
	padding-block: var(--wp--preset--spacing--60);
	margin-block: var(--wp--preset--spacing--40);
}
.lmb-story__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
	margin-bottom: var(--wp--preset--spacing--50);
}
.lmb-story__photo { margin: 0; max-width: 28rem; }
.lmb-story__photo img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; }
.lmb-story__photo figcaption {
	font-family: var(--lmb-hand);
	font-size: 1.2rem;
	color: var(--lmb-stem);
	margin-top: 0.5rem;
}
.lmb-story__text { max-width: 33rem; }
.lmb-story__text h2 { margin-top: 0; }

.lmb-sand__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	margin-bottom: var(--wp--preset--spacing--50);
}
.lmb-sand__text h2 { margin-top: 0; }
.lmb-steps {
	list-style: none;
	counter-reset: step;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.1rem;
	align-content: center;
}
.lmb-steps li {
	counter-increment: step;
	display: grid;
	grid-template-columns: 2.6rem 1fr;
	gap: 1rem;
	align-items: center;
	font-size: 1.2rem;
}
.lmb-steps li::before {
	content: counter(step);
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	font-family: var(--lmb-hand);
	font-size: 1.45rem;
	color: var(--lmb-forest);
	border: 1.5px solid var(--lmb-forest);
	/* drawn by hand, not by compass */
	border-radius: 52% 46% 55% 44% / 47% 55% 45% 53%;
}
.lmb-steps li:nth-child(even)::before { border-radius: 45% 55% 48% 52% / 55% 44% 56% 46%; }

@media (max-width: 781px) {
	.lmb-story__inner, .lmb-sand__inner { grid-template-columns: 1fr; }
}

/* Product grid (home sections, shop, categories, related) ------------------- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2.6rem 1.6rem;
	margin: 0 0 2rem;
	padding: 0;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product.lmb-card {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
}
.lmb-card__link { display: block; width: 100%; color: inherit; text-decoration: none; }
.lmb-card__photo {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	background: var(--lmb-wax);
	border-radius: 2px;
	overflow: hidden;
}
.woocommerce ul.products li.product .lmb-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	margin: 0;
}
.woocommerce ul.products li.product .lmb-card__name {
	font-family: var(--lmb-display);
	font-size: 1.06rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--lmb-ink);
	margin: 0.85rem 0 0.3rem;
	padding: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.lmb-card__link:hover .lmb-card__name,
.lmb-card__link:focus-visible .lmb-card__name {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}
.lmb-card__price {
	font-weight: 500;
	font-size: 1.12rem;
	color: var(--lmb-forest);
	margin-bottom: 0.7rem;
}
.lmb-card__price del { color: var(--lmb-stem); font-weight: 400; margin-right: 0.35rem; opacity: 1; }
.lmb-card__price ins { text-decoration: none; }
.woocommerce ul.products li.product.lmb-card .button {
	margin-top: auto;
	background: transparent;
	color: var(--lmb-forest);
	border: 1.5px solid var(--lmb-forest);
	border-radius: 3px;
	font-weight: 500;
	font-size: 0.98rem;
	padding: 0.4em 0.95em;
}
.woocommerce ul.products li.product.lmb-card .button:hover {
	background: var(--lmb-forest);
	color: var(--lmb-white);
}
.woocommerce ul.products li.product.lmb-card .added_to_cart {
	font-size: 0.98rem;
	padding-top: 0.35rem;
}

/* marks on the photo */
.lmb-stamp {
	position: absolute;
	top: 0.7rem;
	left: 0.7rem;
	display: grid;
	place-items: center;
	width: 3.6rem;
	height: 3.6rem;
	border: 2px solid var(--lmb-forest);
	border-radius: 50%;
	outline: 1px dashed var(--lmb-forest);
	outline-offset: -7px;
	background: rgba(255, 254, 248, 0.88);
	color: var(--lmb-forest);
	font-family: var(--lmb-hand);
	font-size: 1.15rem;
	transform: rotate(-11deg);
}
.lmb-slip {
	position: absolute;
	top: 0.9rem;
	right: -2px;
	padding: 0.05rem 0.8rem 0.1rem 0.7rem;
	background: var(--lmb-white);
	color: var(--lmb-forest);
	font-family: var(--lmb-hand);
	font-size: 1.15rem;
	transform: rotate(2.5deg);
	box-shadow: 0 1px 0 rgba(31, 42, 28, 0.18);
}
.lmb-slip--out { color: var(--lmb-stem); }
.outofstock .lmb-card__photo img { filter: grayscale(0.55); opacity: 0.8; }

@media (max-width: 960px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
}

/* Shop and categories ------------------------------------------------------ */

.lmb-shop, .lmb-product { padding-top: var(--wp--preset--spacing--40); }

.woocommerce .woocommerce-breadcrumb {
	font-size: 0.95rem;
	color: var(--lmb-stem);
	margin: 0 0 1.4rem;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--lmb-stem); }
.lmb-crumb-sep { margin: 0 0.45rem; opacity: 0.6; }

.woocommerce-products-header { margin-bottom: 1.6rem; }
.woocommerce-products-header__title.page-title { margin: 0 0 0.6rem; }
.term-description { max-width: 42rem; }

.woocommerce .woocommerce-result-count { color: var(--lmb-stem); margin: 0.4rem 0 1.6rem; }
.woocommerce .woocommerce-ordering { margin: 0 0 1.6rem; }
.woocommerce .woocommerce-ordering select { width: auto; }
.woocommerce ul.products { clear: both; }

.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	padding: 0.4rem 0.8rem;
	font-size: 1.05rem;
	color: var(--lmb-forest);
}
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: transparent;
	color: var(--lmb-ink);
	background-image: var(--lmb-wave);
	background-repeat: repeat-x;
	background-position: left bottom;
	background-size: 16px 6px;
}

/* Product page ------------------------------------------------------------- */

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: 0 clamp(2rem, 5vw, 4.5rem);
	align-items: start;
}
.woocommerce div.product > * { grid-column: 1 / -1; }
.woocommerce div.product div.images.woocommerce-product-gallery {
	grid-column: 1;
	width: auto;
	float: none;
	margin: 0 0 2rem;
}
.woocommerce div.product div.summary {
	grid-column: 2;
	width: auto;
	float: none;
	margin: 0 0 2rem;
	position: sticky;
	top: 1.5rem;
}
.woocommerce div.product div.images img { border-radius: 2px; }
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.6rem;
	margin-top: 0.6rem;
}
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { aspect-ratio: 1; object-fit: cover; opacity: 0.65; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { opacity: 1; outline: 1.5px solid var(--lmb-forest); outline-offset: 2px; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { background: var(--lmb-white); }

.woocommerce div.product .product_title {
	font-size: clamp(1.9rem, 3.2vw, 2.6rem);
	line-height: 1.12;
	margin: 0 0 1rem;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--lmb-forest);
	font-size: 1.65rem;
	font-weight: 500;
	margin-bottom: 1.2rem;
}
.woocommerce div.product p.price del { color: var(--lmb-stem); font-size: 1.2rem; font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins { text-decoration: none; }
.woocommerce-product-details__short-description { font-size: 1.15rem; }
.woocommerce-product-details__short-description p:first-child { margin-top: 0; }
.woocommerce-product-details__short-description :is(h1, h2, h3, h4) { font-size: 1.25rem; line-height: 1.3; margin: 1.2rem 0 0.6rem; }

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	align-items: stretch;
	margin: 1.6rem 0 1.4rem;
}
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce .quantity input.qty,
.woocommerce div.product form.cart .quantity input.qty {
	box-sizing: border-box;
	width: 4.2rem;
	height: 3.1rem;
	padding: 0 0.4rem;
	border: 1px solid var(--lmb-rule);
	border-radius: 3px;
	background: var(--lmb-white);
	font-size: 1.1rem;
}
.woocommerce div.product form.cart .button { float: none; flex: 1 1 14rem; }
.woocommerce div.product form.cart.variations_form { display: block; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; gap: 0.8rem; margin-top: 1rem; align-items: center; }
.woocommerce div.product form.cart table.variations { margin-bottom: 0.4rem; }
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td { display: block; padding: 0; text-align: left; line-height: 1.4; }
.woocommerce div.product form.cart table.variations th label { font-weight: 500; }
.woocommerce div.product form.cart table.variations td { margin-bottom: 0.8rem; }
.woocommerce div.product form.cart .reset_variations { font-size: 0.95rem; margin-left: 0.6rem; }
.woocommerce div.product .stock { color: var(--lmb-sage); font-weight: 500; }
.woocommerce div.product .stock.out-of-stock { color: var(--lmb-stem); }

.lmb-facts {
	list-style: none;
	margin: 0;
	padding: 1.1rem 0 0;
	border-top: 1px solid var(--lmb-rule);
	color: var(--lmb-stem);
	font-size: 1.02rem;
}
.lmb-facts li { padding-left: 1.5rem; margin-bottom: 0.4rem; background: var(--lmb-leaf) no-repeat 0 0.3em / 0.95rem auto; }
.lmb-facts__sku { background: none !important; }

.woocommerce div.product .woocommerce-tabs { margin-top: var(--wp--preset--spacing--40); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 2rem;
	padding: 0;
	margin: 0 0 1.6rem;
	border-bottom: 1px solid var(--lmb-rule);
}
.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 {
	display: block;
	padding: 0.5rem 0 0.6rem;
	font-family: var(--lmb-display);
	font-weight: 400;
	font-size: 1.2rem;
	color: var(--lmb-stem);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: none; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--lmb-forest);
	background: var(--lmb-wave) repeat-x left bottom / 16px 6px;
}
.woocommerce div.product .woocommerce-tabs .panel { max-width: 44rem; margin-bottom: 2rem; }
.woocommerce div.product .woocommerce-tabs .panel h2:first-child { display: none; }

.woocommerce div.product .related,
.woocommerce div.product .upsells { margin-top: var(--wp--preset--spacing--40); }
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 { margin-bottom: 1.6rem; }

#reviews #comments ol.commentlist { padding: 0; }
.woocommerce #review_form #respond textarea { min-height: 7rem; }

@media (max-width: 781px) {
	.woocommerce div.product { grid-template-columns: 1fr; }
	.woocommerce div.product div.summary { grid-column: 1; position: static; }
}

/* WooCommerce buttons, forms, notices --------------------------------------- */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .wc-block-components-button:not(.is-link) {
	background: var(--lmb-forest);
	color: var(--lmb-white);
	border: 0;
	border-radius: 3px;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 500;
	font-size: 1.05rem;
	line-height: 1.3;
	padding: 0.75em 1.4em;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	background: var(--lmb-forest-deep);
	color: var(--lmb-white);
}
.woocommerce button.button:disabled,
.woocommerce button.button.disabled,
.woocommerce button.button.alt.disabled { background: var(--lmb-stem); opacity: 0.6; }

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce-page form .form-row .input-text,
.woocommerce .woocommerce-ordering select,
.woocommerce div.product form.cart .variations select,
.lmb-main input[type="text"],
.lmb-main input[type="email"],
.lmb-main input[type="tel"],
.lmb-main input[type="password"],
.lmb-main textarea {
	border: 1px solid var(--lmb-rule);
	border-radius: 3px;
	background: var(--lmb-white);
	padding: 0.6rem 0.75rem;
	font: inherit;
	font-size: 1.05rem;
	color: var(--lmb-ink);
}
.woocommerce form .form-row label { font-weight: 500; margin-bottom: 0.25rem; }
.woocommerce form .form-row .required { color: var(--lmb-forest); text-decoration: none; }
.select2-container--default .select2-selection--single {
	border: 1px solid var(--lmb-rule);
	border-radius: 3px;
	height: auto;
	padding: 0.45rem 0.4rem;
	background: var(--lmb-white);
}
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error,
body .woocommerce-noreviews,
body p.no-comments {
	background: var(--lmb-white);
	border: 0;
	border-top: 3px solid var(--lmb-forest);
	border-radius: 0;
	color: var(--lmb-ink);
	font-size: 1.05rem;
}
body .woocommerce-info::before, body .woocommerce-message::before { color: var(--lmb-forest); }
body .woocommerce-info a { color: var(--lmb-forest); }
body .wc-block-components-notice-banner {
	background: var(--lmb-white);
	border: 0;
	border-top: 3px solid var(--lmb-forest);
	border-radius: 0;
	color: var(--lmb-ink);
	font-size: 1.05rem;
}
body .wc-block-components-notice-banner > svg { background: var(--lmb-forest); fill: var(--lmb-white); }
body .wc-block-components-notice-banner.is-error { border-top-color: #9b2c1f; }
body .wc-block-components-notice-banner.is-error > svg { background: #9b2c1f; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--lmb-forest); }
.woocommerce-error { border-top-color: #9b2c1f; }
.woocommerce-error::before { color: #9b2c1f; }
.woocommerce-message .button, .woocommerce-info .button { font-size: 0.95rem !important; padding: 0.5em 1em !important; }

.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--lmb-forest); }

/* Cart and checkout ---------------------------------------------------------- */

.woocommerce table.shop_table {
	border: 0;
	border-collapse: collapse;
	border-radius: 0;
	background: transparent;
}
.woocommerce table.shop_table th {
	font-weight: 500;
	color: var(--lmb-stem);
	border-bottom: 1px solid var(--lmb-rule);
}
.woocommerce table.shop_table td {
	border-top: 0;
	border-bottom: 1px solid var(--lmb-rule);
	padding-block: 1rem;
}
.woocommerce-cart table.cart img { width: 84px; border-radius: 2px; }
.woocommerce-cart table.cart td.product-name a { font-family: var(--lmb-display); font-size: 1.1rem; color: var(--lmb-ink); text-decoration: none; }
.woocommerce a.remove { color: var(--lmb-stem) !important; }
.woocommerce a.remove:hover { background: var(--lmb-stem); color: var(--lmb-white) !important; }
.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
	background: var(--lmb-white);
	padding: 1.5rem 1.6rem;
}
.woocommerce-checkout #order_review_heading { margin: 2rem 0 0; padding-bottom: 0; }
.woocommerce-checkout #order_review { margin-top: 0; }
body.woocommerce-checkout #payment { background: var(--lmb-paper); border-radius: 3px; }
body.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--lmb-rule); }
body.woocommerce-checkout #payment div.payment_box { background: var(--lmb-wax); color: var(--lmb-ink); font-size: 1rem; }
body.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--lmb-wax); }
body.woocommerce-checkout #payment input[type="radio"] { accent-color: var(--lmb-forest); }
.woocommerce-checkout #order_review table.shop_table { background: transparent; }

/* the cart drawer */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-size: 1.7rem; font-weight: 400; }
.wc-block-mini-cart__drawer .wc-block-components-product-name { font-family: var(--lmb-display); color: var(--lmb-ink); text-decoration: none; }
.woocommerce-checkout h3 { font-size: 1.5rem; }

/* Text pages ----------------------------------------------------------------- */

.lmb-page { padding-top: var(--wp--preset--spacing--50); }
.lmb-page__title { margin-bottom: 1.6rem; }
.lmb-page--text .wp-block-post-content { font-size: 1.15rem; }
.lmb-page--text .wp-block-post-content h2 { font-size: 1.7rem; margin-top: 2.4rem; }
.lmb-page--text .wp-block-post-content h3 { font-size: 1.35rem; margin-top: 2rem; }
.lmb-page--text .wp-block-post-content hr { border: 0; height: 28px; background: var(--lmb-sprig) no-repeat center / 120px auto; margin: 2rem 0; }

/* Footer --------------------------------------------------------------------- */

.lmb-footer {
	position: relative;
	background: var(--lmb-wax) var(--lmb-grain);
	padding-block: var(--wp--preset--spacing--60) 2rem;
	font-size: 1.02rem;
}
.lmb-footer::before {
	content: "";
	position: absolute;
	top: 1.4rem;
	left: 50%;
	width: 140px;
	height: 28px;
	transform: translateX(-50%);
	background: var(--lmb-sprig) no-repeat center / contain;
}
.lmb-footer__cols { gap: 2.5rem 3rem; }
.lmb-footer__mark { width: 84px; height: auto; display: block; margin-bottom: 1rem; }
.lmb-footer__title {
	font-size: 1.25rem;
	margin: 0 0 0.8rem;
}
.lmb-footer__links { list-style: none; padding: 0; margin: 0; }
.lmb-footer__links li { margin-bottom: 0.35rem; }
.lmb-footer a { color: var(--lmb-forest); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.lmb-footer__links a { text-decoration: none; }
.lmb-footer__links a:hover { text-decoration: underline; }
.lmb-footer__social a { margin-right: 1rem; }
.lmb-footer__legal { color: var(--lmb-stem); font-size: 0.95rem; }
.lmb-footer__anpc a {
	display: inline-block;
	margin: 0 0.5rem 0.5rem 0;
	padding: 0.25rem 0.6rem;
	border: 1px solid var(--lmb-forest);
	border-radius: 3px;
	font-size: 0.9rem;
	text-decoration: none;
}
.lmb-footer__copy {
	max-width: var(--lmb-wide);
	margin: 2.5rem auto 0 !important;
	padding-top: 1.2rem;
	border-top: 1px solid var(--lmb-rule);
	color: var(--lmb-stem);
	font-size: 0.92rem;
}
