/*
 * Site chrome: wordmark, header, primary navigation, utilities, mobile menu and footer
 * (design §3.1–3.2, missing states M-24/M-25/M-27/M-43). Tokens from theme.json only.
 */

/* Visually hidden text (also used by blocks from line-core). */
.screen-reader-text {
	block-size: 1px;
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

/* ---------------------------------------------------------------- Wordmark */

/* The site title shows the studio logo (inc/logo.php): an inline SVG filled with the text colour,
   so hover and the dark footer recolour it. "line" is Latin: the link is isolated left-to-right. */
.line-wordmark a {
	align-items: center;
	direction: ltr;
	display: inline-flex;
	min-block-size: var(--wp--custom--target--min);
	unicode-bidi: isolate;
}

/* The typed name, only if the logo file is missing: the tracking compensation sits on its left. */
.line-wordmark a:not(:has(.line-logo)) {
	padding-inline-start: var(--wp--custom--letter-spacing--wordmark);
}

/* Height per place (theme.json custom.logo); the width follows the mark's proportions. */
.line-logo {
	block-size: var(--wp--custom--logo--header);
	display: block;
	inline-size: auto;
}

/* The block is a flex box, so the link's 44 px box sits without the text baseline gap below it. */
.line-wordmark {
	display: flex;
}

.line-wordmark a:hover {
	color: var(--wp--preset--color--accent);
}

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

/* Solid paper, a hairline below (a shadow, so it takes no height); no glass. */
.line-header {
	background-color: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--hairline-lift);
	view-transition-name: line-header;
}

/* The template part's own <header> is the sticky box: the inner group, sticky until the premium
   polish without motion, only had its own height to stick within, so the header scrolled away
   with the page and never came back on the way up. Template parts are full-bleed (root padding
   applies to .has-global-padding content only). */
.wp-site-blocks > header:has(.line-header) {
	inset-block-start: 0;
	margin-block-start: 0;
	position: sticky;
	z-index: var(--wp--custom--z--header);
}

/* Steps aside while the reader scrolls down (assets/js/header.js sets the state); the sticky
   filter bar follows it up. Movement only without reduced motion (the script never hides then). */
@media (prefers-reduced-motion: no-preference) {

	.wp-site-blocks > header:has(.line-header),
	.line-filterbar {
		transition: transform var(--wp--custom--motion--duration--base) var(--wp--custom--motion--easing--enter);
	}

	/* Stepping aside is quicker than coming back (exit faster than entrance). */
	:root[data-line-header="hidden"] :is(.wp-site-blocks > header:has(.line-header), .line-filterbar) {
		transition: transform var(--wp--custom--motion--duration--quick) var(--wp--custom--motion--easing--exit);
	}
}

:root[data-line-header="hidden"] .wp-site-blocks > header:has(.line-header) {
	transform: translateY(-100%);
}

:root[data-line-header="hidden"] .line-filterbar {
	transform: translateY(calc(var(--wp--custom--sticky--header) * -1));
}

.line-header__inner {
	gap: var(--wp--preset--spacing--70);
	margin-inline: auto;
	max-inline-size: var(--wp--custom--container--max);
	padding-block: var(--wp--preset--spacing--50);
	padding-inline: var(--wp--custom--gutter);
}

.line-header__wordmark {
	font-size: var(--wp--preset--font-size--wordmark);
	line-height: normal;
}

.line-header__utilities {
	font-size: var(--wp--preset--font-size--500);
	gap: var(--wp--preset--spacing--20);
}

/* Primary navigation (desktop row). */
.line-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.line-nav--horizontal .line-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--wp--preset--spacing--50);
}

.line-header__nav {
	font-size: var(--wp--preset--font-size--500);
}

/* Links are quiet links (global.css): 44 px targets with the sliding underline. */
.line-nav__link {
	color: inherit;
	justify-content: center;
	min-inline-size: var(--wp--custom--target--min);
}

.line-nav__link:hover {
	color: var(--wp--preset--color--accent);
}

/* The current page keeps its underline. */
.line-header__nav .line-nav__link[aria-current="page"]::after {
	transform: scaleX(1);
}

/* Collections panel (premium polish round 5, #33; after 21st.dev's Hover Image List): a button
   beside "Collections" opens the collections with a photograph of the one pointed at
   (line-core Blocks\Nav prints it, assets/js/enhance.js opens it). Paper, the overlay shadow. */
.line-nav__item--panel {
	align-items: center;
	display: flex;
	position: relative;
}

.line-nav__toggle {
	align-items: center;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-block-size: var(--wp--custom--target--min);
	min-inline-size: var(--wp--custom--target--min);
	padding: 0;
}

.line-nav__toggle[hidden],
.line-nav__panel[hidden] {
	display: none;
}

.line-nav__toggle::before {
	background-color: currentcolor;
	block-size: var(--wp--custom--icon--arrow);
	content: "";
	inline-size: var(--wp--custom--icon--arrow);
	mask: var(--line-icon-arrow) center / contain no-repeat;
	transform: rotate(90deg);
}

.line-nav__toggle[aria-expanded="true"]::before {
	transform: rotate(-90deg);
}

.line-nav__toggle:hover {
	color: var(--wp--preset--color--accent);
}

.line-nav__panel {
	background-color: var(--wp--preset--color--surface);
	box-shadow: var(--wp--preset--shadow--overlay);
	display: grid;
	gap: var(--wp--preset--spacing--60);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	inline-size: var(--wp--custom--container--drawer);
	inset-block-start: calc(100% + var(--wp--preset--spacing--50));
	inset-inline-start: 0;
	padding: var(--wp--preset--spacing--50);
	position: absolute;
	transform: translateY(calc(var(--wp--preset--spacing--30) * -1));
}

.line-nav__panel.is-open {
	transform: none;
}

.line-nav__panel-list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

.line-nav__panel-link {
	color: inherit;
	display: flex;
	min-block-size: var(--wp--custom--target--min);
}

.line-nav__panel-link:hover {
	color: var(--wp--preset--color--accent);
}

.line-nav__panel-media {
	align-self: start;
	aspect-ratio: 4 / 5;
	background-color: var(--wp--preset--color--surface-sunken);
	overflow: clip;
	position: relative;
}

.line-nav__preview {
	block-size: 100%;
	inline-size: 100%;
	inset: 0;
	object-fit: cover;
	opacity: 0;
	position: absolute;
}

.line-nav__preview.is-active {
	opacity: 1;
}

@media (prefers-reduced-motion: no-preference) {

	.line-nav__panel {
		transition: transform var(--wp--custom--motion--duration--base) var(--wp--custom--motion--easing--enter);
	}

	.line-nav__toggle::before {
		transition: transform var(--wp--custom--motion--duration--base) var(--wp--custom--motion--easing--standard);
	}

	.line-nav__preview {
		transition: opacity var(--wp--custom--motion--duration--base) var(--wp--custom--motion--easing--standard);
	}
}

/* Text-style controls in the utilities: search toggle, language, cart, menu — each a 44×44
   target around its word (the words keep their size and rhythm). */
.line-header__utilities :is(.wp-block-search__button, .wc-block-mini-cart__button, .line-mobile-menu__toggle) {
	background: none;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font: inherit;
	margin: 0;
}

.line-header__utilities :is(.wp-block-search__button, .wc-block-mini-cart__button, .line-mobile-menu__toggle, .line-lang__link),
.line-mobile-menu__extras :is(a, .line-lang__link) {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-block-size: var(--wp--custom--target--min);
	min-inline-size: var(--wp--custom--target--min);
	padding-block: 0;
	padding-inline: var(--wp--preset--spacing--20);
}

.line-lang__link {
	color: inherit;
}

.line-header__utilities :is(.wp-block-search__button, .wc-block-mini-cart__button, .line-mobile-menu__toggle, .line-lang__link):hover {
	color: var(--wp--preset--color--accent);
}

.line-header__search .wp-block-search__inside-wrapper {
	align-items: center;
	border: 0;
	gap: var(--wp--preset--spacing--40);
	padding: 0;
}

/* Collapsed search takes only the height of its text button (the header stays 76 px). */
.line-header__search.wp-block-search__searchfield-hidden .wp-block-search__input {
	block-size: 0;
	min-block-size: 0;
}

.line-header__search .wp-block-search__input {
	background: var(--wp--preset--color--surface-raised);
	min-block-size: var(--wp--custom--target--min);
	border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--line-control);
	font: inherit;
	padding-block: var(--wp--preset--spacing--20);
	padding-inline: var(--wp--preset--spacing--40);
}

/* Cart as "סל (N)": no icon, count in parentheses (mirrored automatically in RTL), a word space
   between them (premium polish without motion, #49). */
.wc-block-mini-cart__button {
	display: inline-flex;
	gap: var(--wp--preset--spacing--20);
}

.wc-block-mini-cart__quantity-badge svg {
	display: none;
}

.wc-block-mini-cart__quantity-badge .wc-block-mini-cart__badge {

	/* WooCommerce binds badge colours as inline styles; the design shows plain text. */

	/* stylelint-disable-next-line declaration-no-important */
	background-color: transparent !important;
	border: 0;

	/* stylelint-disable-next-line declaration-no-important */
	color: inherit !important;
	font: inherit;
	inset: auto;
	min-inline-size: 0;
	padding: 0;
	position: static;
	transform: none;
}

.wc-block-mini-cart__badge::before {
	content: "(";
}

.wc-block-mini-cart__badge::after {
	content: ")";
}

.wc-block-mini-cart__badge[hidden] {
	display: inline;
}

/* ------------------------------------------------------------- Mobile menu */

/* A full-screen page of its own (PLAN §7 #2): large light links, the language, account and the
   studio's contacts below. Native <dialog>: focus trap, Esc and the inert page come from the
   platform. The page fades in and the links settle one after another (movement only). */
.line-mobile-menu {
	display: none;
}

.line-mobile-menu__dialog {
	background: var(--wp--preset--color--surface);
	block-size: 100dvb;
	border: 0;
	color: var(--wp--preset--color--ink);
	inline-size: 100%;
	inset: 0;
	margin: 0;
	max-block-size: none;
	max-inline-size: none;
	opacity: 0;
	overflow: auto;
	overscroll-behavior: contain;
	padding: 0;
}

.line-mobile-menu__dialog[open] {
	opacity: 1;
}

.line-mobile-menu__dialog::backdrop {
	background: var(--wp--custom--color--scrim);
}

html:has(.line-mobile-menu__dialog[open]) {
	overflow: hidden;
}

.line-mobile-menu__panel {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--80);
	min-block-size: 100%;
	padding-block: max(var(--wp--preset--spacing--50), env(safe-area-inset-top)) max(var(--wp--preset--spacing--90), env(safe-area-inset-bottom));
	padding-inline: max(var(--wp--custom--gutter), env(safe-area-inset-left), env(safe-area-inset-right));
}

.line-mobile-menu__close {
	align-items: center;
	align-self: flex-end;
	background: none;
	block-size: var(--wp--custom--component--close--size);
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font-size: var(--wp--preset--font-size--1000);
	inline-size: var(--wp--custom--component--close--size);
	justify-content: center;
	padding: 0;
}

.line-mobile-menu .line-nav__item {
	border-block-end: var(--wp--custom--border--hairline) solid var(--wp--preset--color--line);
}

.line-mobile-menu .line-nav__link {
	display: flex;
	font-size: var(--wp--preset--font-size--title-2);
	font-weight: var(--wp--custom--font-weight--display);
	justify-content: flex-start;
	line-height: var(--wp--custom--line-height--tight);
	min-block-size: var(--wp--custom--target--control);
	padding-block: var(--wp--preset--spacing--40);
}

.line-mobile-menu .line-nav__link::after {
	content: none;
}

.line-mobile-menu .line-nav__link[aria-current="page"] {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--link--underline-thickness);
	text-underline-offset: var(--wp--custom--link--underline-offset);
}

.line-mobile-menu__extras {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	font-size: var(--wp--preset--font-size--500);
	gap: var(--wp--preset--spacing--40);
	margin-block-start: auto;
}

.line-mobile-menu__contact {
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--preset--font-size--400);
}

.line-mobile-menu__contact .line-business--contacts {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0;
}

.line-mobile-menu__contact a {
	color: inherit;
}

/* The order of arrival: links first, one after another, then the extras. */
.line-mobile-menu .line-nav__item:nth-child(2) {
	--line-step: 1;
}

.line-mobile-menu .line-nav__item:nth-child(3) {
	--line-step: 2;
}

.line-mobile-menu .line-nav__item:nth-child(4) {
	--line-step: 3;
}

.line-mobile-menu .line-nav__item:nth-child(5) {
	--line-step: 4;
}

.line-mobile-menu .line-nav__item:nth-child(6) {
	--line-step: 5;
}

.line-mobile-menu .line-nav__item:nth-child(n + 7) {
	--line-step: 6;
}

.line-mobile-menu__extras,
.line-mobile-menu__contact {
	--line-step: 7;
}

@media (prefers-reduced-motion: no-preference) {

	.line-mobile-menu__dialog {
		transition:
			opacity var(--wp--custom--motion--duration--base) var(--wp--custom--motion--easing--standard),
			overlay var(--wp--custom--motion--duration--base) allow-discrete,
			display var(--wp--custom--motion--duration--base) allow-discrete;
	}

	/* The rows settle by movement only: the text is at full contrast at every moment (a fade on
	   each row left the last rows half-transparent for most of a second after opening). */
	.line-mobile-menu .line-nav__item,
	.line-mobile-menu__extras,
	.line-mobile-menu__contact {
		transition: transform var(--wp--custom--motion--duration--slow) var(--wp--custom--motion--easing--enter);
		transition-delay: calc(var(--wp--custom--motion--stagger) * var(--line-step, 0));
	}

	@starting-style {

		.line-mobile-menu__dialog[open] {
			opacity: 0;
		}

		.line-mobile-menu__dialog[open] :is(.line-nav__item, .line-mobile-menu__extras, .line-mobile-menu__contact) {
			transform: translateY(var(--wp--preset--spacing--50));
		}
	}
}

@media (max-width: 1024px) {

	.line-header__inner {
		justify-content: center;
	}

	.line-header__nav {
		display: none;
	}

	.line-mobile-menu {
		display: block;
	}

	/* The language link moves into the menu sheet on small screens. */
	.line-header__utilities > .line-lang {
		display: none;
	}
}

/* ------------------------------------------------------------------ Footer */
.wp-site-blocks > footer:has(.line-footer) {
	margin-block-start: 0;
}

/* The footer is the container its oversized wordmark is sized against (cqi). */
.line-footer {
	container-type: inline-size;
}

.line-footer__grid,
.line-footer__bar {
	margin-inline: auto;
	max-inline-size: var(--wp--custom--container--max);
	padding-inline: var(--wp--custom--gutter);
}

.line-footer__grid {
	display: grid;
	gap: var(--wp--preset--spacing--80);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--wp--custom--layout--footer-column)), 1fr));
	padding-block: var(--wp--preset--spacing--100) var(--wp--preset--spacing--70);
}

.line-footer__brand {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--50);
}

/* Phones (premium polish without motion, #42, after 21st.dev's Footer Two): the brand and the
   newsletter across, the three link groups in two columns — about half the length. */
@media (max-width: 767px) {

	.line-footer__grid {
		column-gap: var(--wp--preset--spacing--60);
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.line-footer__brand {
		grid-column: 1 / -1;
	}
}

.line-footer__wordmark {
	font-size: var(--wp--preset--font-size--1100);
	margin: 0;
}

.line-footer__wordmark .line-logo {
	block-size: var(--wp--custom--logo--footer);
}

.line-footer a {
	color: var(--wp--preset--color--on-ink);
}

.line-footer a:hover {
	color: var(--wp--preset--color--surface-raised);
}

.line-business--tagline {
	color: var(--wp--preset--color--on-ink-muted);
	font-size: var(--wp--preset--font-size--500);
	margin: 0;
	max-inline-size: var(--wp--custom--measure--30);
}

.line-footer .line-nav__title {
	color: var(--wp--preset--color--on-ink-muted);
	font-size: var(--wp--preset--font-size--200);
	font-weight: var(--wp--custom--font-weight--body);
	line-height: var(--wp--custom--line-height--body);
	margin-block: 0 var(--wp--preset--spacing--50);
}

.line-footer .line-nav__title:lang(en) {
	letter-spacing: var(--wp--custom--letter-spacing--overline);
}

.line-footer .line-nav--vertical .line-nav__list {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	font-size: var(--wp--preset--font-size--500);
	gap: 0;
}

/* The oversized mark at the foot of the page (PLAN §7 #11): the same site title, shown as the logo
   (plans/site-logo_2026-10-01), in a quiet warm grey on the kiln band (a brand mark, still 4.4:1). */
.line-footer__mark {
	color: var(--wp--preset--color--line-control);
	margin-block: var(--wp--preset--spacing--70) 0;
	margin-inline: auto;
	max-inline-size: min(calc(100% - var(--wp--custom--gutter) * 2), var(--wp--custom--container--max));
}

.line-footer__bar {
	align-items: center;
	border-block-start: var(--wp--custom--border--hairline) solid var(--wp--preset--color--ink-soft);
	color: var(--wp--preset--color--on-ink-muted);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--wp--preset--font-size--300);
	gap: var(--wp--preset--spacing--50);
	justify-content: space-between;
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

.line-footer__bar p {
	margin: 0;
}

.line-footer__bar a {
	color: var(--wp--preset--color--on-ink-muted);
}

/* "Back to top" (#50b): the text block's link without its button frame — a quiet link like the
   others in the bar, a 44px target (the bar's selector outranks the outline button's). */
.line-footer__bar .line-back-to-top.wp-block-button {
	margin: 0;
}

.line-footer__bar .line-back-to-top.is-style-outline .wp-block-button__link {
	background: none;
	border: 0;
	color: var(--wp--preset--color--on-ink-muted);
	font-size: inherit;
	min-block-size: var(--wp--custom--target--min);
	padding: 0;
}

.line-footer__bar .line-back-to-top.is-style-outline .wp-block-button__link:is(:hover, :focus-visible) {
	background: none;
	color: var(--wp--preset--color--on-ink);
}

.line-business--contacts,
.line-footer__legal .line-nav__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0;
}

.line-business--contacts li {
	unicode-bidi: isolate;
}

/* ------------------------------------------------- Newsletter (footer skin) */
.line-newsletter {
	max-inline-size: var(--wp--custom--layout--footer-form);
}

.line-newsletter__row {
	border-block-end: var(--wp--custom--border--hairline) solid var(--wp--preset--color--on-ink-muted);
	display: flex;
	position: relative;
}

/* On focus a second line in the text colour draws itself over the hairline from the reading
   start (premium polish round 2, 21st.dev #18). */
.line-newsletter__row::after {
	background-color: currentcolor;
	block-size: var(--wp--custom--border--hairline);
	content: "";
	inset-block-end: calc(-1 * var(--wp--custom--border--hairline));
	inset-inline: 0;
	pointer-events: none;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left center;
}

.line-newsletter__row:dir(rtl)::after {
	transform-origin: right center;
}

.line-newsletter__row:focus-within::after {
	transform: scaleX(1);
}

@media (prefers-reduced-motion: no-preference) {

	.line-newsletter__row::after {
		transition: transform var(--wp--custom--motion--duration--relaxed) var(--wp--custom--motion--easing--enter);
	}
}

.line-newsletter__email {
	background: transparent;
	border: 0;
	color: inherit;
	flex: 1;
	font: inherit;
	font-size: var(--wp--preset--font-size--500);
	min-inline-size: 0;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: 0;
}

.line-newsletter__email::placeholder {
	color: var(--wp--preset--color--on-ink-muted);
}

.line-newsletter__submit {
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	font: inherit;
	font-size: var(--wp--preset--font-size--500);
	min-block-size: var(--wp--custom--target--control);
	min-inline-size: var(--wp--custom--target--min);
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--45) 0;
}

.line-newsletter__consent,
.line-newsletter__status {
	color: var(--wp--preset--color--on-ink-muted);
	font-size: var(--wp--preset--font-size--300);
	margin-block: var(--wp--preset--spacing--30) 0;
}

.line-newsletter__status:empty {
	display: none;
}

/* On ink, "error" red fails contrast: errors use on-ink with an underline (M-43). */
.line-footer .line-newsletter__status.is-error {
	color: var(--wp--preset--color--on-ink);
	text-decoration: underline;
}

.line-hp {
	block-size: 1px;
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

/* ---------------------------------------------------------- Mini-cart drawer */

/* A quiet sheet (PLAN §7 #3): full width on phones, a fixed column from there on, a long soft
   shadow over the page's scrim, 44 px controls, the reassurance line under the progress. */
.wc-block-components-drawer__screen-overlay:not(.wc-block-components-drawer__screen-overlay--is-hidden) {
	background-color: var(--wp--custom--color--scrim);
}

.wc-block-components-drawer.wc-block-mini-cart__drawer {
	box-shadow: var(--wp--preset--shadow--overlay);
	inline-size: min(var(--wp--custom--container--drawer), 100%);
}

@media (max-width: 479px) {

	.wc-block-components-drawer.wc-block-mini-cart__drawer {
		inline-size: 100%;
	}
}

@media (prefers-reduced-motion: no-preference) {

	.wc-block-components-drawer.wc-block-mini-cart__drawer {
		transition-duration: var(--wp--custom--motion--duration--relaxed);
		transition-timing-function: var(--wp--custom--motion--easing--enter);
	}
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
	font-size: var(--wp--preset--font-size--title-3);
	font-weight: var(--wp--custom--font-weight--display);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button {
	min-block-size: var(--wp--custom--target--min);
	min-inline-size: var(--wp--custom--target--min);
}

/* The stepper is three 44 px targets side by side (WooCommerce fixes it at 107 px). */
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector {
	inline-size: auto;
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-inline-size: var(--wp--custom--target--min);
}

.wc-block-mini-cart__drawer .wc-block-components-product-name {
	align-items: center;
	display: inline-flex;
	min-block-size: var(--wp--custom--target--min);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-block-size: var(--wp--custom--target--min);
	min-inline-size: var(--wp--custom--target--min);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer-actions .wc-block-components-button {
	min-block-size: var(--wp--custom--target--control);
	padding-block: var(--wp--preset--spacing--40);
}

.wc-block-mini-cart__drawer .wc-block-mini-cart__footer {
	padding-block-end: max(var(--wp--preset--spacing--60), env(safe-area-inset-bottom));
}

.line-mini-cart__note {
	color: var(--wp--preset--color--ink-muted);
	font-size: var(--wp--preset--font-size--300);
	margin: 0;
	padding-block: 0 var(--wp--preset--spacing--45);
	padding-inline: var(--wp--preset--spacing--60);
}

/*
 * WooCommerce's closed mini-cart drawer only slides off-screen: its links stay focusable while
 * aria-hidden. Hide it after the slide so keyboard focus cannot enter it (axe aria-hidden-focus).
 */
.wc-block-components-drawer__screen-overlay--is-hidden .wc-block-mini-cart__drawer {
	transition: visibility 0s linear var(--wp--custom--motion--duration--relaxed);
	visibility: hidden;
}

/*
 * Sale announcement (plans/sales_2026-10-01 4.6; after 21st.dev's Promo Banner, rebuilt natively):
 * a thin ink strip above the header with the owner's line and link. Off until the owner turns it
 * on; closed for the visit by its button (enhance.js; the head script hides it before the first
 * paint on the next pages). No motion.
 */
.line-announce {
	align-items: center;
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--on-ink);
	display: flex;
	font-size: var(--wp--preset--font-size--400);
	justify-content: center;
	min-block-size: var(--wp--custom--target--min);
	padding-inline: calc(var(--wp--custom--gutter) + var(--wp--custom--target--min));
	position: relative;
	text-align: center;
}

.line-announce-closed .line-announce {
	display: none;
}

.line-announce__text {
	margin: 0;
	text-wrap: balance;
}

.line-announce__link {
	align-items: center;
	color: inherit;
	display: inline-flex;
	min-block-size: var(--wp--custom--target--min);
	text-decoration-line: underline;
}

.line-announce__link:focus-visible,
.line-announce__close:focus-visible {
	outline-color: var(--wp--preset--color--on-ink);
}

.line-announce__close {
	align-items: center;
	background: none;
	block-size: var(--wp--custom--target--min);
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	font-size: var(--wp--preset--font-size--800);
	inline-size: var(--wp--custom--target--min);
	inset-block-start: 50%;
	inset-inline-end: var(--wp--custom--gutter);
	justify-content: center;
	padding: 0;
	position: absolute;
	transform: translateY(-50%);
}

.line-announce__close[hidden] {
	display: none;
}

/*
 * The phone menu's collections (polish without motion, round 4, #58; after 21st.dev's Immersive
 * Full Screen Navigation): under the links, a sideways row of the collections — each one's
 * photograph (4:5, in the media well) and name — snapping card by card. The photographs load
 * when the menu first opens (enhance.js).
 */
.line-menu-collections {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	grid-auto-columns: minmax(0, 40%);
	grid-auto-flow: column;
	list-style: none;
	margin: 0;
	overflow: auto;
	overscroll-behavior-inline: contain;
	padding: 0 0 var(--wp--preset--spacing--30);
	scroll-snap-type: inline mandatory;
}

.line-menu-collections > li {
	scroll-snap-align: start;
}

.line-menu-collections__link {
	color: inherit;
	display: grid;
	gap: var(--wp--preset--spacing--30);
	text-decoration: none;
}

.line-menu-collections__image {
	aspect-ratio: 4 / 5;
	background-color: var(--wp--preset--color--media-placeholder);
	block-size: auto;
	display: block;
	inline-size: 100%;
	object-fit: cover;
}

.line-menu-collections__name {
	font-size: var(--wp--preset--font-size--500);
}

.line-menu-collections__link:is(:hover, :focus-visible) .line-menu-collections__name {
	text-decoration: underline;
	text-decoration-thickness: var(--wp--custom--link--underline-thickness);
	text-underline-offset: var(--wp--custom--link--underline-offset);
}

@media (min-width: 600px) {

	.line-menu-collections {
		grid-auto-columns: minmax(0, 28%);
	}
}
