/* Studio 21: responsive stability layer. */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html,
body,
.wp-site-blocks {
	max-width: 100%;
	overflow-x: clip;
}

img,
svg,
video,
canvas {
	max-width: 100%;
}

body.admin-bar .s21-site-header {
	top: 32px;
}

.s21-header-inner,
.s21-category-grid,
.s21-category-card,
.wp-block-woocommerce-product-collection,
.wc-block-product-template,
.wc-block-product {
	min-width: 0;
}

.wc-block-product-template__responsive {
	width: 100%;
}

.wc-block-components-product-image,
.wc-block-components-product-image a,
.wc-block-components-product-image img {
	display: block;
	width: 100%;
}

@media (max-width: 781px) {
	body.admin-bar .s21-site-header {
		top: 46px;
	}

	.s21-site-header {
		z-index: 2147482000;
		width: 100%;
		background: #f2efe8;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.s21-header-inner {
		gap: .55rem;
		padding-left: max(.8rem, env(safe-area-inset-left));
		padding-right: max(.8rem, env(safe-area-inset-right));
	}

	.s21-header-inner > * {
		flex-shrink: 0;
	}

	.s21-header-inner .s21-nav {
		margin-left: auto;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed !important;
		z-index: 2147483000 !important;
		inset: 0 !important;
		display: flex !important;
		width: 100vw !important;
		height: 100dvh !important;
		min-height: 100svh !important;
		max-height: none !important;
		padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
		overflow-x: hidden !important;
		overflow-y: auto !important;
		background: #fcfbf8 !important;
		color: #141310 !important;
		opacity: 1 !important;
		visibility: visible !important;
		isolation: isolate;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
		width: 100%;
		min-height: 100%;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: fixed;
		z-index: 2147483001;
		top: max(1rem, env(safe-area-inset-top));
		right: max(1rem, env(safe-area-inset-right));
	}

	html.has-modal-open,
	html.has-modal-open body {
		overflow: hidden !important;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-size: clamp(2rem, 10vw, 3.35rem);
	}

	/*
	 * The homepage cards remain untouched. Inside the hamburger overlay, expose
	 * the collection links immediately so mobile visitors do not have to open a
	 * second nested level.
	 */
	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch;
		gap: .4rem;
		width: 100%;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content,
	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
		display: none !important;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu,
	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
		display: flex !important;
		position: static !important;
		visibility: visible !important;
		opacity: 1 !important;
		transform: none !important;
		width: 100% !important;
		height: auto !important;
		min-width: 0 !important;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
		align-items: flex-start;
		gap: .15rem;
		padding: 0 0 1rem !important;
		border: 0;
		background: transparent;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		min-height: 40px;
		padding: .18rem 0;
		font-family: "Newsreader", Georgia, serif;
		font-size: clamp(1.85rem, 8vw, 2.7rem);
		font-weight: 350;
		letter-spacing: -.035em;
		line-height: 1.05;
		text-transform: none;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.wp-block-navigation-submenu) {
		border-top: 1px solid rgba(24, 22, 19, .16);
		padding-top: .65rem;
	}

	.s21-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.wp-block-navigation-submenu) > .wp-block-navigation-item__content {
		min-height: 32px;
		font-family: "Manrope", Arial, sans-serif;
		font-size: .76rem;
		font-weight: 700;
		letter-spacing: .11em;
		line-height: 1.3;
		text-transform: uppercase;
	}

	.s21-home-slider {
		height: calc(100svh - 64px);
		min-height: 520px;
		max-height: 980px;
	}

	.s21-home-copy {
		bottom: max(5.4rem, calc(env(safe-area-inset-bottom) + 4.7rem));
	}

	.s21-category-section {
		padding: 3.75rem .75rem;
	}

	.s21-category-card {
		min-height: clamp(430px, 118vw, 620px);
	}

	body.woocommerce-shop main,
	body.tax-product_cat main,
	body.single-product main,
	body.woocommerce-cart main {
		width: 100%;
		padding: 1.5rem 1rem 3.5rem;
	}

	body.tax-product_cat main > .wp-block-group.is-nowrap {
		align-items: stretch;
		flex-direction: column;
		gap: .65rem;
	}

	body.tax-product_cat .woocommerce-result-count,
	body.tax-product_cat .woocommerce-ordering {
		float: none;
		margin: 0;
		width: 100%;
	}

	body.tax-product_cat .woocommerce-ordering .orderby {
		width: 100%;
	}

	.s21-category-notice {
		width: 100%;
	}

	.wc-block-product-template__responsive.columns-2,
	.wc-block-product-template__responsive.columns-3,
	.wc-block-product-template__responsive.columns-4,
	.wc-block-product-template__responsive.columns-5,
	.wc-block-product-template__responsive.columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.4rem .75rem;
	}

	.wc-block-product-template .wp-block-post-title,
	.wc-block-product-template .wp-block-post-title a {
		overflow-wrap: anywhere;
	}

	.wc-block-product-template .wp-block-post-title {
		font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
		line-height: 1.08 !important;
	}

	.wc-block-product-template .wp-block-button,
	.wc-block-product-template .wp-block-button__link {
		width: 100%;
	}

	.wc-block-product-template .wp-block-button__link {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 46px;
		padding: .7rem .55rem;
		white-space: normal;
	}

	.woocommerce div.product,
	.woocommerce div.product .summary,
	.woocommerce div.product div.images,
	.woocommerce div.product form.cart,
	.woocommerce div.product form.cart .variations,
	.woocommerce div.product form.cart .variations select {
		max-width: 100%;
		width: 100%;
	}

	.woocommerce div.product form.cart .button {
		width: 100%;
	}

	.woocommerce table.shop_table_responsive,
	.woocommerce-page table.shop_table_responsive {
		width: 100%;
	}
}

@media (max-width: 380px) {
	.s21-logo {
		width: 4.35rem;
	}

	.s21-header-inner {
		gap: .35rem;
	}

	.s21-category-card {
		min-height: 440px;
	}

	.wc-block-product-template__responsive.columns-2,
	.wc-block-product-template__responsive.columns-3,
	.wc-block-product-template__responsive.columns-4,
	.wc-block-product-template__responsive.columns-5,
	.wc-block-product-template__responsive.columns-6 {
		gap: 1.25rem .55rem;
	}
}

@media (max-height: 700px) and (max-width: 781px) {
	.s21-home-slider {
		min-height: 500px;
	}

	.s21-home-title {
		font-size: clamp(2.35rem, 11vw, 3.15rem);
	}

	.s21-home-lede {
		font-size: .78rem;
	}
}
