/* Juan Melli theme: gallery styling on top of theme.json */

:root {
	--jm-ink: var(--wp--preset--color--ink);
	--jm-muted: var(--wp--preset--color--muted);
	--jm-subtle: var(--wp--preset--color--subtle);
	--jm-line: var(--wp--preset--color--line);
	--jm-panel: var(--wp--preset--color--panel);
	--jm-stone: var(--wp--preset--color--stone);
	--jm-brass: var(--wp--preset--color--brass);
	--jm-display: var(--wp--preset--font-family--display);
	--jm-body: var(--wp--preset--font-family--body);
	--jm-gutter: clamp(20px, 4vw, 56px);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }

/* ---------- Shared type helpers ---------- */
.jm-eyebrow,
.jm-eyebrow-heading {
	font-family: var(--jm-body) !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--jm-brass);
	line-height: 1.5 !important;
	margin: 0;
}
.jm-eyebrow-heading { color: var(--jm-ink); letter-spacing: 0.24em; }
.jm-eyebrow--light { color: var(--wp--preset--color--brass-light); }
.jm-lead { font-size: 1.125rem; color: var(--jm-muted); max-width: 36rem; margin-left: auto !important; margin-right: auto !important; }
.jm-muted { color: var(--jm-muted); }
.jm-meta { color: var(--jm-subtle); font-size: 0.875rem; margin: 0; }
.jm-statement { font-family: var(--jm-display); font-size: clamp(1.75rem, 2.4vw, 2.125rem); line-height: 1.15; margin: 0; }
.jm-numeral { font-family: var(--jm-display); font-style: italic; font-size: 1.6rem; color: var(--jm-brass); margin: 0; }
.jm-link-caps { margin: 0; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; }
.jm-link-caps a { text-underline-offset: 0.35em; text-decoration-thickness: 1px; }
.jm-link-caps--light a { color: #FAFAF7; }
.jm-caption-title { font-family: var(--jm-display); font-style: italic; font-size: 1.1rem; color: var(--wp--preset--color--graphite); margin: 0; }

/* Outline buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--jm-ink);
	border: 1px solid var(--jm-ink);
	padding: calc(1.05rem - 1px) calc(2.25rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--jm-ink); color: #FAFAF7; }

/* ---------- Header ---------- */
.jm-header { position: relative; z-index: 20; background: var(--wp--preset--color--ground); }
.jm-header__inner > * { align-self: center; margin: 0 !important; }
.jm-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem 2rem;
}
.jm-nav--left { justify-self: start; }
.jm-header__right { justify-self: end; }
.jm-wordmark { align-items: center; text-align: center; }
.jm-wordmark p { margin: 0; line-height: 1; }
.jm-wordmark__name { font-family: var(--jm-display); font-size: 1.9rem; font-weight: 500; letter-spacing: 0.24em; padding-left: 0.24em; text-transform: uppercase; }
.jm-wordmark__name a { text-decoration: none; color: var(--jm-ink); }
.jm-wordmark__tag { font-size: 0.625rem; letter-spacing: 0.5em; padding-left: 0.5em; text-transform: uppercase; color: var(--jm-subtle); }
.jm-nav .wp-block-navigation-item__content { padding: 0.4rem 0; }
.jm-nav .wp-block-navigation-item__content:hover { color: var(--jm-brass); }
.jm-mobile-only { display: none !important; }
.wp-block-navigation__responsive-container.is-menu-open .jm-mobile-only { display: flex !important; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--ground) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-family: var(--jm-display); font-size: 1.9rem; letter-spacing: 0.02em; text-transform: none; }

/* Mini cart */
.jm-cart .wc-block-mini-cart__button { padding: 0.4rem 0; font-size: 0.75rem; letter-spacing: 0.18em; }
.jm-cart .wc-block-mini-cart__icon { width: 20px; height: 20px; }
.jm-cart .wc-block-mini-cart__badge { background: var(--jm-ink); color: #FAFAF7; font-size: 0.625rem; }
.wc-block-mini-cart__drawer .components-modal__content { background: var(--wp--preset--color--ground); }
.wc-block-mini-cart__title { font-family: var(--jm-display) !important; font-weight: 400 !important; }

/* Below 1080px the two-sided menu no longer fits on one line, so the header
   switches to menu icon / wordmark / cart (core only does this below 600px). */
@media (max-width: 1079px) {
	.jm-header__inner > * { align-self: center; margin: 0 !important; }
	.jm-header__inner { grid-template-columns: 44px 1fr 44px; }
	.jm-nav--right { display: none !important; }
	.jm-nav--left .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.jm-nav--left .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
@media (max-width: 781px) {
	.jm-wordmark__name { font-size: 1.35rem; letter-spacing: 0.18em; padding-left: 0.18em; }
	.jm-wordmark__tag { font-size: 0.5625rem; }
}

/* ---------- Home ---------- */
.jm-hero__image { margin: 0; }
.jm-hero__image img { display: block; width: 100%; height: clamp(420px, 62vw, 780px); object-fit: cover; object-position: center 45%; }
.jm-hero__caption { padding-top: 0.9rem; padding-bottom: 0.9rem; }
.jm-hero__caption .alignwide { gap: 0.5rem 1.5rem; }
.jm-intro h1 { margin-top: 0.4rem; }
.jm-section-head { border-top: 1px solid var(--jm-line); padding-top: 1.75rem; margin-bottom: 3rem; }
.jm-section-head .jm-eyebrow-heading { margin: 0; }
.jm-tile__image { margin: 0 0 0.9rem; overflow: hidden; background: var(--jm-panel); }
.jm-tile__image img { display: block; width: 100%; transition: transform 0.9s cubic-bezier(.2,.6,.2,1); }
.jm-tile:hover .jm-tile__image img { transform: scale(1.025); }
.jm-tile__title { font-size: 1.9rem; margin: 0; }
.jm-tile__title a { text-decoration: none; color: var(--jm-ink); }
.jm-about { color: #E9E6DF; }
.jm-about__statement { font-family: var(--jm-display); font-size: clamp(1.6rem, 2.5vw, 2.35rem); line-height: 1.3; color: #FAFAF7; }
.jm-press { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; line-height: 2.2; color: #B8B5AE; }
.jm-about .wp-block-image { margin: 0; }
.jm-social .wp-social-link { font-size: 22px; }
@media (max-width: 781px) {
	.jm-about .wp-block-columns { gap: 2.5rem; }
}

/* ---------- Product grid (shop, collections, home, related) ---------- */
.woocommerce ul.products,
.wc-block-grid__products {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr));
	gap: 4rem 2.25rem;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	padding: 0 !important;
	text-align: left;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 0.2rem; text-decoration: none; color: var(--jm-ink); }
.woocommerce ul.products li.product a img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	margin: 0 0 1rem !important;
	background: var(--jm-panel);
	transition: opacity 0.4s ease;
}
.woocommerce ul.products li.product a:hover img { opacity: 0.92; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--jm-display);
	font-size: 1.5rem !important;
	font-weight: 500;
	line-height: 1.2;
	padding: 0 !important;
	margin: 0;
	order: 1;
}
.woocommerce ul.products li.product .price {
	order: 3;
	color: var(--jm-subtle) !important;
	font-size: 0.875rem !important;
	margin: 0 !important;
	font-weight: 400;
}
.jm-card-meta { order: 2; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--jm-subtle); }
.jm-card-oos { order: 4; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--jm-brass); }
.woocommerce ul.products li.product.outofstock img { opacity: 0.75; }

/* ---------- Shop / collection archive ---------- */
.jm-shop { padding: var(--wp--preset--spacing--50) var(--jm-gutter) var(--wp--preset--spacing--60); }
.jm-shop .woocommerce,
.jm-shop > .wp-block-woocommerce-legacy-template { max-width: 1360px; margin: 0 auto; }
.jm-archive-head { text-align: center; max-width: 760px; margin: 0 auto 3.5rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.jm-archive-title { font-family: var(--jm-display); font-weight: 400; font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.05; margin: 0; }
.jm-archive-desc { color: var(--jm-muted); font-size: 1.0625rem; }
.jm-archive-desc p { margin: 0; }
.jm-collection-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 2rem; margin-top: 0.75rem; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; }
.jm-collection-nav a { text-decoration: none; padding: 0.55rem 0; border-bottom: 1px solid transparent; color: var(--jm-subtle); }
.jm-collection-nav a[aria-current="page"],
.jm-collection-nav a:hover { color: var(--jm-ink); border-bottom-color: var(--jm-ink); }
.woocommerce-pagination { margin-top: 4rem; text-align: center; }

/* ---------- Single product ---------- */
.jm-product { padding: var(--wp--preset--spacing--40) var(--jm-gutter) 0; }
.jm-product .woocommerce-notices-wrapper,
.jm-product div.product { max-width: 1360px; margin-left: auto; margin-right: auto; }
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 3rem clamp(2.5rem, 6vw, 6rem); align-items: start; }
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product > .summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product > .related,
.woocommerce div.product > section { grid-column: 1 / -1; }
.woocommerce div.product .woocommerce-product-gallery { background: var(--jm-panel); position: sticky; top: 1.5rem; }
.woocommerce div.product .woocommerce-product-gallery__image img { display: block; width: 100%; }
.woocommerce div.product .flex-control-thumbs { display: flex !important; gap: 0.75rem; padding: 0.75rem !important; margin: 0 !important; background: var(--wp--preset--color--ground); }
.woocommerce div.product .flex-control-thumbs li { width: 72px !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .flex-control-thumbs li img { opacity: 0.55; aspect-ratio: 4/5; object-fit: cover; }
.woocommerce div.product .flex-control-thumbs li img.flex-active,
.woocommerce div.product .flex-control-thumbs li img:hover { opacity: 1; }
.woocommerce-product-gallery__trigger { background: var(--wp--preset--color--ground) !important; border-radius: 0 !important; }

.woocommerce div.product .summary { display: flex; flex-direction: column; gap: 1.1rem; padding-top: 0.5rem; }
.woocommerce div.product .summary > * { margin: 0 !important; }
.woocommerce div.product .product_title { font-family: var(--jm-display); font-weight: 400; font-size: clamp(2.75rem, 4.5vw, 4rem); line-height: 1; }
.jm-product-subtitle p { font-family: var(--jm-display); font-style: italic; font-size: 1.35rem; color: var(--jm-muted); margin: 0; }
.woocommerce div.product .summary p.price { font-family: var(--jm-display); font-size: 2.1rem !important; color: var(--jm-ink) !important; border-top: 1px solid var(--jm-line); padding-top: 1.4rem; margin-top: 0.4rem !important; }
.jm-product-format { color: var(--jm-subtle); font-size: 0.9rem; margin-top: -0.6rem !important; }
.woocommerce div.product p.stock { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: #3F6B4A; }
.woocommerce div.product p.stock.out-of-stock { display: none; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 0.4rem 0 0 !important; }
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { display: none; }
.woocommerce .quantity .qty {
	width: 4.5rem; height: 3.4rem; border: 1px solid #C9C6BE; background: transparent; font: inherit; text-align: center; border-radius: 0;
}
.woocommerce div.product form.cart .button,
.woocommerce .button.alt,
.woocommerce a.button,
.woocommerce button.button {
	flex: 1 1 14rem;
	min-height: 3.4rem;
	background: var(--jm-ink) !important;
	color: #FAFAF7 !important;
	border-radius: 0 !important;
	font-family: var(--jm-body) !important;
	font-size: 0.75rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	padding: 0 1.75rem !important;
}
.woocommerce div.product form.cart .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--wp--preset--color--graphite) !important; }
.jm-ship-note { font-size: 0.85rem; color: var(--jm-subtle); }
.jm-oos { display: flex; flex-direction: column; gap: 0.75rem; }
.jm-oos__button { display: flex; align-items: center; justify-content: center; min-height: 3.4rem; background: var(--jm-line); color: var(--jm-muted); font-size: 0.75rem; letter-spacing: 0.24em; text-transform: uppercase; cursor: not-allowed; }
.jm-specs { display: grid; grid-template-columns: minmax(0, 7.5rem) minmax(0, 1fr); border-top: 1px solid var(--jm-line); font-size: 0.9rem; margin-top: 0.6rem !important; }
.jm-specs dt, .jm-specs dd { padding: 0.8rem 0; border-bottom: 1px solid var(--jm-line); margin: 0; }
.jm-specs dt { font-size: 0.6875rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jm-subtle); padding-top: 0.95rem; }
.jm-details details { border-bottom: 1px solid var(--jm-line); padding: 1.1rem 0; }
.jm-details summary { cursor: pointer; list-style: none; font-size: 0.6875rem; letter-spacing: 0.22em; text-transform: uppercase; display: flex; justify-content: space-between; align-items: center; min-height: 1.75rem; }
.jm-details summary::-webkit-details-marker { display: none; }
.jm-details summary::after { content: "+"; font-size: 1.1rem; letter-spacing: 0; color: var(--jm-subtle); }
.jm-details details[open] summary::after { content: "–"; }
.jm-details__body { color: var(--wp--preset--color--graphite); padding-top: 0.75rem; }
.jm-details__body p { margin: 0 0 0.75rem; }

.woocommerce div.product .related {
	background: var(--jm-stone);
	margin: clamp(4rem, 8vw, 7rem) calc(-1 * var(--jm-gutter)) 0 !important;
	padding: clamp(3.5rem, 6vw, 6rem) var(--jm-gutter) clamp(4rem, 7vw, 7rem);
}
.woocommerce div.product .related > h2 { font-family: var(--jm-display); font-weight: 400; font-size: 2.5rem; max-width: 1360px; margin: 0 auto 2.5rem; }
.woocommerce div.product .related ul.products { max-width: 1360px; margin: 0 auto !important; }

@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); }
	.woocommerce div.product .woocommerce-product-gallery { position: static; }
}

/* ---------- Notices, cart and checkout ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner { border-radius: 0 !important; border: 0 !important; background: var(--jm-stone) !important; color: var(--jm-ink) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--jm-brass) !important; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-size: 0.95rem; }
.wc-block-components-button:not(.is-link) { border-radius: 0 !important; background: var(--jm-ink) !important; color: #FAFAF7 !important; text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.75rem !important; font-weight: 500 !important; min-height: 3.4rem; }
.wc-block-components-text-input input, .wc-block-components-combobox-control input, .wc-blocks-components-select__select { border-radius: 0 !important; }
.wc-block-components-product-name { font-family: var(--jm-display); font-size: 1.35rem !important; text-decoration: none; }
.wc-block-cart-items__header, .wc-block-components-totals-item__label { letter-spacing: 0.04em; }
.jm-page .wp-block-woocommerce-cart, .jm-page .wp-block-woocommerce-checkout { max-width: var(--wp--style--global--wide-size, 1360px) !important; margin-left: auto !important; margin-right: auto !important; }
.wc-block-components-order-summary .wc-block-components-product-name { font-family: var(--jm-display) !important; font-weight: 500 !important; font-size: 1.25rem !important; }

/* ---------- Pages ---------- */
.jm-page__title { margin-bottom: 2.5rem; }
.jm-page .wp-block-post-content > p:first-child { font-size: 1.15rem; }
.jm-page .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--title-m); margin-top: 2.75rem; }
.jm-page .wp-block-post-content h3 { font-size: var(--wp--preset--font-size--title-s); margin-top: 2rem; }

/* ---------- Footer ---------- */
.jm-footer { font-size: 0.75rem; color: var(--jm-muted); }
.jm-footer__mark { margin: 0; font-family: var(--jm-display); font-size: 1.25rem; letter-spacing: 0.22em; text-transform: uppercase; }
.jm-footer__mark a { text-decoration: none; color: var(--jm-ink); }
.jm-footer__nav { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; }
.jm-footer__nav a { color: var(--jm-muted); }
.jm-footer__legal { margin: 0; }
.jm-footer__legal a { color: var(--jm-muted); }

/* ---------- Accessibility ---------- */
:where(a, button, summary, input):focus-visible { outline: 2px solid var(--jm-brass); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Product Collection block (home) ---------- */
.jm-collection-grid .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)) !important;
	gap: 4rem 2.25rem !important;
	margin: 0; padding: 0;
}
.jm-collection-grid .wc-block-product { margin: 0 !important; display: flex; flex-direction: column; gap: 0.2rem; text-align: left; }
.jm-collection-grid .wc-block-components-product-image { margin: 0 0 1rem !important; background: var(--jm-panel); }
.jm-collection-grid .wc-block-components-product-image img { aspect-ratio: 4/5; object-fit: cover; width: 100%; transition: opacity 0.4s ease; }
.jm-collection-grid .wc-block-components-product-image a:hover img { opacity: 0.92; }
.jm-card-title { font-family: var(--jm-display); font-size: 1.5rem !important; font-weight: 500; line-height: 1.2; margin: 0 !important; text-align: left; }
.jm-card-title a { text-decoration: none; color: var(--jm-ink); }
.jm-card-price, .jm-card-price .wc-block-components-product-price { text-align: left !important; color: var(--jm-subtle); font-size: 0.875rem !important; margin: 0 !important; }

/* Collections tiles and the craft row share one three-column grid, so their
   columns line up at every width; both stack to one column on phones. */
.jm-tiles.jm-tiles,
.jm-craft__grid.jm-craft__grid,
.jm-connect__grid.jm-connect__grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: clamp(1.25rem, 2.5vw, 2.25rem) !important; }
.jm-tiles.jm-tiles { row-gap: 2.5rem !important; }
.jm-craft__grid.jm-craft__grid { row-gap: 2.5rem !important; }
.jm-connect__grid.jm-connect__grid { row-gap: 3rem !important; }
.jm-tiles.jm-tiles > *, .jm-craft__grid.jm-craft__grid > *, .jm-connect__grid.jm-connect__grid > * { margin: 0 !important; min-width: 0; }
@media (max-width: 781px) { .jm-tiles.jm-tiles, .jm-craft__grid.jm-craft__grid, .jm-connect__grid.jm-connect__grid { grid-template-columns: minmax(0, 1fr) !important; } }
/* The figure is the 4:5 frame; the photo fills it exactly (no grey strip) */
.jm-tile__image.jm-tile__image { aspect-ratio: 4 / 5; background: var(--jm-panel); }
.jm-tile__image > a { display: block; width: 100%; height: 100%; }
.jm-tile__image.jm-tile__image img { width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; }

/* No stray gaps between header, page and footer */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.jm-product .woocommerce div.product { margin-bottom: 0 !important; }

/* Two prints per row on phones */
@media (max-width: 781px) {
	.woocommerce ul.products,
	.jm-collection-grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 2.5rem 1rem !important; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title,
	.jm-card-title { font-size: 1.15rem !important; }
	.jm-card-meta { font-size: 0.625rem; letter-spacing: 0.12em; }
}

/* Checkout header */
.jm-header--checkout .jm-back { justify-self: start; }
.jm-secure { justify-self: end; margin: 0; font-size: 0.6875rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jm-subtle); }
@media (max-width: 781px) { .jm-header--checkout .jm-header__inner { grid-template-columns: 1fr auto 1fr; } .jm-secure { display: none; } }

/* Notices */
.wc-block-components-notice-banner.wc-block-components-notice-banner,
.woocommerce-notices-wrapper .wc-block-components-notice-banner { border: 1px solid var(--jm-line) !important; background: var(--jm-stone) !important; border-radius: 0 !important; box-shadow: none !important; }
.wc-block-components-notice-banner > svg { background: var(--jm-ink) !important; fill: #FAFAF7 !important; }
.wc-block-components-notice-banner .button.wc-forward { background: none !important; color: var(--jm-ink) !important; text-decoration: underline; padding: 0 !important; min-height: 0; flex: none; }

/* Cart & checkout type */
.wc-block-components-title, .wc-block-cart__totals-title { font-family: var(--jm-display) !important; font-weight: 400 !important; font-size: 1.5rem !important; text-transform: none !important; letter-spacing: 0 !important; }
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title { font-family: var(--jm-display); font-size: 1.6rem; font-weight: 400; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--jm-display); font-size: 1.6rem !important; font-weight: 500 !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select { border-color: #C9C6BE !important; }
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button { width: 100%; }
.wc-block-components-order-summary-item__quantity { background: var(--jm-ink) !important; color: #FAFAF7 !important; border: 0 !important; }
.wc-block-components-notice-banner:focus, .woocommerce-notices-wrapper:focus, .woocommerce-message:focus { outline: none !important; }
@media (max-width: 781px) { .jm-back { font-size: 0.625rem !important; white-space: nowrap; } }

/* Kit (ConvertKit) sign-up form: match the site instead of Kit's defaults */
.convertkit-form { margin-block-start: var(--wp--preset--spacing--30); }
.convertkit-form .formkit-form[data-uid] {
	max-width: 560px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	font-family: var(--wp--preset--font-family--body) !important;
}
.convertkit-form .formkit-form[data-uid] [data-style="clean"] { padding: 0 !important; }
.convertkit-form .formkit-form[data-uid] .formkit-fields { margin: 0 !important; gap: 0.75rem; flex-wrap: nowrap !important; }
.convertkit-form .formkit-form[data-uid] .formkit-field,
.convertkit-form .formkit-form[data-uid] .formkit-submit { margin: 0 !important; }
.convertkit-form .formkit-form[data-uid] .formkit-input {
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 1rem !important;
	color: var(--wp--preset--color--ink) !important;
	background: var(--wp--preset--color--paper) !important;
	border: 1px solid #CFCBC3 !important;
	border-radius: 0 !important;
	padding: 0.95rem 1rem !important;
	height: auto !important;
}
.convertkit-form .formkit-form[data-uid] .formkit-input::placeholder { color: var(--wp--preset--color--subtle) !important; opacity: 1; }
.convertkit-form .formkit-form[data-uid] .formkit-input:focus { border-color: var(--wp--preset--color--ink) !important; outline: none; }
.convertkit-form .formkit-form[data-uid] .formkit-submit {
	flex: 0 0 auto !important;
	background: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--ground) !important;
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-weight: 500 !important;
	cursor: pointer;
}
.convertkit-form .formkit-form[data-uid] .formkit-submit > span {
	padding: 1.05rem 1.75rem !important;
	font-size: var(--wp--preset--font-size--eyebrow) !important;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.convertkit-form .formkit-form[data-uid] .formkit-submit:hover { background: var(--wp--preset--color--graphite) !important; }
.convertkit-form .formkit-form[data-uid] .formkit-submit:hover > span { background: none !important; }
.convertkit-form .formkit-form[data-uid] .formkit-alert-success {
	background: var(--wp--preset--color--stone) !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--wp--preset--color--ink) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 1rem !important;
	padding: 1rem 1.25rem !important;
	margin: 0 !important;
	text-align: left !important;
}
.convertkit-form .formkit-form[data-uid] .formkit-powered-by-convertkit-container { display: none !important; }
@media (max-width: 600px) {
	.convertkit-form .formkit-form[data-uid] .formkit-fields { flex-wrap: wrap !important; }
	.convertkit-form .formkit-form[data-uid] .formkit-field,
	.convertkit-form .formkit-form[data-uid] .formkit-submit { flex: 1 1 100% !important; }
}

/* ---------- v1.0.3 layout fixes ---------- */
/* Homepage sections butt together; each band sets its own padding */
.jm-home > * { margin-block: 0 !important; }
/* Print grids: four across on desktop (8 bestsellers = two clean rows), two on tablets and phones */
.woocommerce ul.products,
.jm-collection-grid .wc-block-product-template { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; column-gap: clamp(1rem, 2.5vw, 2.25rem) !important; }
@media (max-width: 900px) {
	.woocommerce ul.products,
	.jm-collection-grid .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
/* Press line and "Read more" need air */
.jm-press { margin-bottom: 0.75rem !important; }
.jm-about .jm-link-caps { margin-top: 1.25rem !important; }
.jm-about__photo { margin: 0 !important; }
.jm-about__photo img { display: block; width: 100%; }
/* About page portrait: show the full frame */
.jm-about-hero { margin-bottom: 2.5rem !important; }
.jm-about-hero img { display: block; width: 100%; height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; }
/* Phones: keep WELCOME TO HOBOKEN in the hero crop, and tidy the eyebrow wrap */
@media (max-width: 781px) {
	.jm-hero__image img { object-position: 22% 50%; height: clamp(320px, 95vw, 520px); }
	.jm-intro .jm-eyebrow { letter-spacing: 0.2em; }
}
/* WooCommerce's clearfix pseudo-elements become empty grid rows; drop them (removes the strip above the footer) */
.woocommerce div.product::before,
.woocommerce div.product::after { display: none !important; content: none !important; }
/* Open menu overlay: proper margins instead of text flush to the screen edge */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem var(--jm-gutter) 2.5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 1.75rem !important; right: var(--jm-gutter) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; gap: 0.25rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--jm-line); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 0.9rem 0 !important; }
/* Short pages (404, newsletter, empty cart): footer sits at the bottom of the screen, not mid-page */
.wp-site-blocks { display: flex; flex-direction: column; min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)); }
.wp-site-blocks > :not(.wp-block-template-part) { flex: 1 0 auto; }

/* "Hangs well with": same ground as the page, set off by a hairline, so there is
   no second off-white band and no white edges on very wide screens */
.woocommerce div.product .related { background: transparent !important; border-top: 1px solid var(--jm-line); margin: clamp(4rem, 8vw, 7rem) 0 0 !important; padding: clamp(3rem, 5vw, 4.5rem) 0 clamp(4rem, 7vw, 6rem) !important; }

/* ---------- Wall calendars (home) ---------- */
.jm-cal-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 2.5rem clamp(1rem, 2vw, 1.75rem); }
.jm-cal-grid > * { margin: 0 !important; min-width: 0; }
.jm-cal__image { margin: 0 0 1rem !important; background: var(--jm-panel); }
.jm-cal__image img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: opacity 0.4s ease; }
.jm-cal__image a:hover img { opacity: 0.92; }
.jm-cal__title { font-family: var(--jm-display); font-size: 1.35rem; font-weight: 500; line-height: 1.2; margin: 0 0 0.2rem !important; }
.jm-cal__title a { text-decoration: none; color: var(--jm-ink); }
/* Tablets and phones: one swipeable row instead of an uneven grid */
@media (max-width: 900px) {
	.jm-cal-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: 0.75rem; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
	.jm-cal-grid > * { flex: 0 0 min(42vw, 15rem); scroll-snap-align: start; }
	.jm-cal__title { font-size: 1.15rem; }
}

/* ---------- Portfolio ---------- */
.jm-pf-head { text-align: center; max-width: 760px; margin: 0 auto var(--wp--preset--spacing--50) !important; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.jm-pf-head h1 { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.05; margin: 0; }
.jm-pf-head .jm-lead { margin: 0 auto !important; }
.jm-pf-count { color: var(--jm-subtle); font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; margin: 0; }
.jm-page--wide { padding: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--60); }

/* Landing: 3 galleries across, then 4 (12-column grid) */
.jm-pf-index { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 3rem clamp(1.25rem, 2.5vw, 2.25rem); }
.jm-pf-index > * { grid-column: span 4; margin: 0 !important; min-width: 0; }
.jm-pf-index > :nth-child(n+4) { grid-column: span 3; }
.jm-pf-tile figure { margin: 0 0 0.9rem !important; aspect-ratio: 4 / 5; overflow: hidden; background: var(--jm-panel); }
.jm-pf-tile figure a { display: block; width: 100%; height: 100%; }
.jm-pf-tile img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform 0.9s cubic-bezier(.2,.6,.2,1); }
.jm-pf-tile:hover img { transform: scale(1.025); }
.jm-pf-tile h2 { font-size: 1.6rem; margin: 0; }
.jm-pf-tile h2 a { text-decoration: none; color: var(--jm-ink); }
.jm-pf-tile .jm-meta { margin-top: 0.2rem; }
@media (max-width: 1079px) { .jm-pf-index > *, .jm-pf-index > :nth-child(n+4) { grid-column: span 6; } }
@media (max-width: 600px) { .jm-pf-index { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; } .jm-pf-index > *, .jm-pf-index > :nth-child(n+4) { grid-column: 1 / -1; } }

/* Gallery: masonry columns, full photos (no cropping), lightbox on click */
.wp-block-gallery.jm-masonry { display: block !important; columns: 3; column-gap: clamp(0.75rem, 1.6vw, 1.5rem); }
.wp-block-gallery.jm-masonry > figure.wp-block-image { display: block !important; width: 100% !important; margin: 0 0 clamp(0.75rem, 1.6vw, 1.5rem) !important; break-inside: avoid; }
.wp-block-gallery.jm-masonry > figure.wp-block-image img { width: 100% !important; height: auto !important; display: block; }
@media (max-width: 1079px) { .wp-block-gallery.jm-masonry { columns: 2; } }
@media (max-width: 600px) { .wp-block-gallery.jm-masonry { columns: 1; } }
.wp-lightbox-overlay .scrim { background-color: var(--wp--preset--color--ground) !important; }

/* Bottom of each gallery: shop link and previous / next gallery */
.jm-pf-foot { border-top: 1px solid var(--jm-line); margin-top: var(--wp--preset--spacing--50) !important; padding-top: 2rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1.25rem 2rem; }
.jm-pf-foot p { margin: 0; }
.jm-pf-nav { display: flex; gap: 2rem; flex-wrap: wrap; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; }
.jm-pf-nav a { text-decoration: none; color: var(--jm-ink); }
.jm-pf-nav a:hover { color: var(--jm-brass); }
.jm-statement a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--jm-line); }
.jm-statement a:hover { color: var(--jm-brass); }
.jm-footer__social { margin: 0 !important; }
.jm-footer__social .wp-social-link a { color: var(--jm-muted) !important; }
.jm-footer__social .wp-social-link a:hover { color: var(--jm-brass) !important; }

/* ---------- In Print (/published/) ---------- */
.jm-pub { border-top: 1px solid var(--jm-line); padding-top: var(--wp--preset--spacing--40); margin-top: var(--wp--preset--spacing--40) !important; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); align-items: start; }
.jm-pub > * { margin: 0 !important; min-width: 0; }
.jm-pub__text { position: sticky; top: 1.5rem; align-self: start !important; justify-content: flex-start !important; height: auto !important; display: flex; flex-direction: column; gap: 0.75rem; }
.jm-pub__text h2 { font-size: var(--wp--preset--font-size--title-m); margin: 0; }
.jm-pub__text p { margin: 0; }
.jm-pub .wp-block-gallery.jm-masonry { columns: 2; }
.jm-pub .wp-block-gallery.jm-masonry.jm-masonry--one { columns: 1; max-width: 560px; }
.jm-pub .wp-block-gallery.jm-masonry > figure.wp-block-image img { box-shadow: 0 10px 30px -18px rgba(23,24,26,.45); }
@media (max-width: 900px) { .jm-pub { grid-template-columns: minmax(0, 1fr); } .jm-pub__text { position: static; } }
@media (max-width: 600px) { .jm-pub .wp-block-gallery.jm-masonry { columns: 1; } }
/* In Print: multiple images sit side by side in a grid (not stacked columns) */
.jm-pub .wp-block-gallery.jm-masonry:not(.jm-masonry--one) { display: grid !important; columns: auto !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(0.75rem, 1.6vw, 1.5rem); align-items: start; }
.jm-pub .wp-block-gallery.jm-masonry:not(.jm-masonry--one) > figure.wp-block-image { margin: 0 !important; }
@media (max-width: 600px) { .jm-pub .wp-block-gallery.jm-masonry:not(.jm-masonry--one) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; } }

/* ---------- Blog: From My Perspective ---------- */
.jm-blog { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.jm-pf-head .jm-eyebrow a { color: inherit; text-decoration: none; }
.jm-blog-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3.5rem clamp(1.25rem, 2.5vw, 2.25rem); list-style: none; margin: 0; padding: 0; }
.jm-blog-grid > li { margin: 0 !important; min-width: 0; display: flex; flex-direction: column; gap: 0.45rem; }
.jm-blog-card__image { margin: 0 0 0.6rem !important; overflow: hidden; background: var(--jm-panel); }
.jm-blog-card__image img { transition: transform 0.9s cubic-bezier(.2,.6,.2,1); }
.jm-blog-grid > li:hover .jm-blog-card__image img { transform: scale(1.025); }
.jm-blog-card__title { font-size: 1.6rem; line-height: 1.15; margin: 0 !important; }
.jm-blog-card__title a { text-decoration: none; color: var(--jm-ink); }
.jm-blog-grid .jm-card-meta a { color: var(--jm-subtle); text-decoration: none; }
.jm-blog-card__excerpt { font-size: 0.95rem; margin: 0.2rem 0 0 !important; }
.jm-blog-card__excerpt .wp-block-post-excerpt__more-text { display: none; }
.jm-pagination { margin-top: var(--wp--preset--spacing--50) !important; gap: 1.25rem; font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; }
.jm-pagination a { text-decoration: none; }
.jm-pagination .current { color: var(--jm-brass); }
@media (max-width: 1079px) { .jm-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .jm-blog-grid { grid-template-columns: minmax(0, 1fr); gap: 3rem; } }

.jm-post { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--60); }
.jm-post__head { text-align: center; max-width: 820px; margin: 0 auto var(--wp--preset--spacing--40) !important; display: flex; flex-direction: column; align-items: center; gap: 0.9rem; }
.jm-post__head h1 { font-size: clamp(2.4rem, 5vw, 3.75rem); line-height: 1.05; margin: 0; }
.jm-post__head .jm-eyebrow a { color: inherit; text-decoration: none; }
.jm-post__hero { margin-bottom: var(--wp--preset--spacing--40) !important; }
.jm-post__body { font-size: 1.125rem; line-height: 1.75; }
.jm-post__body > p:first-child { font-size: 1.3rem; line-height: 1.6; color: var(--wp--preset--color--graphite); }
.jm-post__body h2 { font-size: var(--wp--preset--font-size--title-m); margin-top: 3rem; }
.jm-post__body h3 { font-size: var(--wp--preset--font-size--title-s); margin-top: 2.25rem; }
.jm-post__body > .wp-block-image, .jm-post__body > .wp-block-gallery { margin-top: 2.25rem; margin-bottom: 2.25rem; }
.jm-post__body > .wp-block-image:not(.alignleft):not(.alignright) { max-width: min(1100px, 100%) !important; margin-left: auto !important; margin-right: auto !important; }
.jm-post__body figcaption { font-size: 0.85rem; color: var(--jm-subtle); text-align: center; margin-top: 0.6rem; }
.jm-post__body blockquote { border-left: 2px solid var(--jm-brass); padding-left: 1.5rem; font-family: var(--jm-display); font-size: 1.5rem; }
.jm-post__nav { border-top: 1px solid var(--jm-line); margin-top: var(--wp--preset--spacing--50) !important; padding-top: 2rem; gap: 1.25rem 2rem; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; align-items: baseline; }
.jm-post__nav a { text-decoration: none; color: var(--jm-ink); }
.jm-post__nav a:hover { color: var(--jm-brass); }
.jm-post__nav .post-navigation-link-next { text-align: right; }
.jm-series-links { margin: 0.5rem 0 0 !important; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jm-subtle); display: flex; gap: 1.5rem; justify-content: center; flex-wrap: wrap; }
.jm-series-links a { color: var(--jm-ink); text-decoration-thickness: 1px; text-underline-offset: 0.35em; }
.jm-series-note { max-width: 760px; margin: var(--wp--preset--spacing--40) auto 0 !important; background: var(--jm-stone); padding: 1.5rem 1.75rem; }
.jm-series-note p { margin: 0; }
.jm-series-note .jm-eyebrow { margin-bottom: 0.4rem; }
.jm-blog > .alignwide, .jm-post > .alignwide { max-width: min(var(--wp--style--global--wide-size), 100%) !important; }
.jm-blog-grid .jm-card-meta { order: 0; margin: 0; }
.jm-blog-grid .jm-blog-card__title { order: 1; } .jm-blog-grid .jm-meta { order: 2; } .jm-blog-grid .jm-blog-card__excerpt { order: 3; }
.jm-blog-grid .jm-blog-card__image { order: -1; }

/* Blog hero slideshow */
.jm-blog > .jm-blog-hero { margin-top: calc(-1 * var(--wp--preset--spacing--50)) !important; margin-bottom: var(--wp--preset--spacing--50) !important; }
.jm-blog-hero { position: relative; height: clamp(420px, 72vh, 820px); overflow: hidden; background: var(--jm-ink); }
.jm-hero-track { list-style: none; margin: 0; padding: 0; height: 100%; }
.jm-hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.1s ease, visibility 0s linear 1.1s; }
.jm-hero-slide.is-active { opacity: 1; visibility: visible; transition: opacity 1.1s ease; }
.jm-hero-slide a { display: block; height: 100%; color: #FAFAF7; text-decoration: none; }
.jm-hero-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jm-hero-slide a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,10,12,.62) 0%, rgba(10,10,12,.15) 38%, rgba(10,10,12,0) 60%); }
.jm-hero-slide__text { position: absolute; z-index: 1; left: var(--jm-gutter); right: var(--jm-gutter); bottom: clamp(2.5rem, 7vh, 4.5rem); max-width: 760px; display: flex; flex-direction: column; gap: 0.6rem; }
.jm-hero-slide__text .jm-eyebrow { color: var(--wp--preset--color--brass-light); }
.jm-hero-slide__text h2 { color: #FAFAF7; font-size: clamp(2rem, 4.5vw, 3.5rem); line-height: 1.05; margin: 0; }
.jm-hero-slide__more { font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; border-bottom: 1px solid rgba(250,250,247,.7); align-self: flex-start; padding-bottom: 0.2rem; }
.jm-hero-nav { position: absolute; z-index: 2; top: 50%; transform: translateY(-50%); width: 3rem; height: 3rem; border: 1px solid rgba(250,250,247,.6); background: rgba(10,10,12,.2); color: #FAFAF7; font-size: 1.1rem; cursor: pointer; }
.jm-hero-nav:hover { background: rgba(10,10,12,.45); }
.jm-hero-prev { left: var(--jm-gutter); } .jm-hero-next { right: var(--jm-gutter); }
.jm-hero-dots { position: absolute; z-index: 2; right: var(--jm-gutter); bottom: clamp(2.5rem, 7vh, 4.5rem); display: flex; gap: 0.6rem; }
.jm-hero-dots button { width: 9px; height: 9px; border-radius: 50%; border: 1px solid #FAFAF7; background: transparent; padding: 0; cursor: pointer; }
.jm-hero-dots button[aria-current="true"] { background: #FAFAF7; }
@media (max-width: 781px) { .jm-hero-nav { display: none; } .jm-hero-dots { left: var(--jm-gutter); right: auto; bottom: 1.25rem; } .jm-hero-slide__text { bottom: 3rem; } }

/* Series overview pages: the list of sections / chapters */
.jm-series-list { margin-top: 2.5rem !important; max-width: min(var(--wp--style--global--wide-size), 100%) !important; }
.jm-series-list .jm-eyebrow-heading { margin-bottom: 2.5rem; }
.jm-series-list .jm-blog-card__image { margin: 0 0 1.25rem; }
.jm-series-list .jm-blog-card__image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.jm-series-list .jm-blog-grid { list-style: none; padding: 0; margin: 0; }

/* Long Path: the overview post, set into the page's own intro */
.jm-series-feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: center; margin: 2.5rem 0 3rem !important; padding: 1.5rem 0; border-top: 1px solid var(--jm-line); border-bottom: 1px solid var(--jm-line); }
.jm-series-feature__image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.jm-series-feature__text { display: flex; flex-direction: column; gap: 0.75rem; }
.jm-series-feature__text h3 { margin: 0; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.15; }
.jm-series-feature__text h3 a { color: inherit; text-decoration: none; }
.jm-series-feature__text p { margin: 0; }
@media (max-width: 781px) { .jm-series-feature { grid-template-columns: 1fr; } }
.jm-series-list.alignwide { max-width: var(--wp--style--global--content-size) !important; }
.jm-series-list .jm-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 600px) { .jm-series-list .jm-blog-grid { grid-template-columns: 1fr; } }
.jm-series-feature__text .jm-eyebrow { margin-bottom: 0.25rem; }

/* Home about: lighter charcoal, body copy, caption */
.jm-about__body { color: #E9E6DF; font-size: 1.02rem; line-height: 1.75; margin-top: 1rem !important; }
.jm-about__photo figcaption, .jm-about-hero figcaption { font-size: 0.85rem; font-style: italic; margin-top: 0.75rem; }
.jm-about__photo figcaption { color: #C9C5BC; }
.jm-about__photo img { aspect-ratio: auto !important; height: auto !important; object-fit: contain !important; }

/* Empty cart: tidy the WooCommerce "New in store" grid */
.wc-block-cart__empty-cart__title.with-empty-cart-icon::before { display: none !important; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator.is-style-dots { display: none; }
.wc-block-cart__empty-cart__title { font-family: var(--jm-display); font-size: clamp(1.4rem, 2.2vw, 1.8rem) !important; margin: 1rem 0 3rem !important; }
.wp-block-woocommerce-empty-cart-block > h2:not(.wc-block-cart__empty-cart__title) { font-size: 0.78rem !important; letter-spacing: 0.2em; text-transform: uppercase; font-family: inherit; margin-bottom: 2rem !important; }
.wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 3rem 2rem; }
@media (max-width: 900px) { .wc-block-grid .wc-block-grid__products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.wc-block-grid .wc-block-grid__product { max-width: none !important; flex: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; display: flex; flex-direction: column; align-items: flex-start; text-align: left !important; gap: 0.5rem; }
.wc-block-grid__product-link { display: block; width: 100%; text-decoration: none; color: inherit; }
.wc-block-grid__product-image, .wc-block-grid__product-image img { width: 100% !important; height: auto; display: block; margin: 0 0 0.75rem !important; }
.wc-block-grid__product-title { font-family: var(--jm-display); font-size: 1.25rem !important; font-weight: 400 !important; line-height: 1.2; text-decoration: none; }
.wc-block-grid__product-price { margin: 0 !important; font-size: 0.95rem; }
.wc-block-grid__product-add-to-cart { margin: 0.5rem 0 0 !important; }
.wc-block-grid__product-add-to-cart .wp-block-button__link { white-space: nowrap; width: auto !important; writing-mode: horizontal-tb; padding: 0.8rem 1.4rem !important; font-size: 0.72rem !important; }
.jm-about-intro { font-family: var(--jm-display); font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.3; margin-top: 2rem !important; }
.wp-block-woocommerce-empty-cart-block { padding-bottom: var(--wp--preset--spacing--60); }

/* WPForms (contact form): match theme buttons and fields */
.wpforms-container {
	--wpforms-button-background-color: var(--jm-ink);
	--wpforms-button-text-color: #FAFAF7;
	--wpforms-button-border-radius: 0px;
	--wpforms-button-border-color: var(--jm-ink);
	--wpforms-field-border-radius: 0px;
	--wpforms-field-border-color: var(--jm-line);
	--wpforms-field-background-color: #FFFFFF;
	--wpforms-label-color: var(--jm-ink);
	--wpforms-label-sublabel-color: var(--jm-muted);
	--wpforms-label-error-color: #A33A2B;
	--wpforms-button-size-font-size: 0.75rem;
	--wpforms-button-size-height: auto;
	--wpforms-button-size-padding-h: 2rem;
}
.wpforms-container .wpforms-form .wpforms-submit,
.wpforms-container .wpforms-form button[type=submit] {
	background: var(--jm-ink) !important; color: #FAFAF7 !important; border: 1px solid var(--jm-ink) !important; border-radius: 0 !important;
	font-family: var(--jm-body) !important; font-size: 0.75rem !important; font-weight: 500 !important; letter-spacing: 0.2em; text-transform: uppercase;
	padding: 1rem 2.2rem !important; height: auto !important; box-shadow: none !important; cursor: pointer; transition: background .2s, color .2s;
}
.wpforms-container .wpforms-form .wpforms-submit:hover,
.wpforms-container .wpforms-form .wpforms-submit:focus { background: transparent !important; color: var(--jm-ink) !important; }
.wpforms-container .wpforms-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wpforms-container .wpforms-form textarea { border-radius: 0 !important; border-color: var(--jm-line) !important; box-shadow: none !important; font-family: var(--jm-body); }
.wpforms-container .wpforms-form input:focus, .wpforms-container .wpforms-form textarea:focus { border-color: var(--jm-ink) !important; box-shadow: none !important; outline: none; }
.wpforms-container .wpforms-field-label { font-size: 0.72rem !important; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500 !important; }
