/* Catalogue filters */
.ms-atelier .ms-catalog--filtered {
	grid-template-columns: clamp(220px, 22vw, 285px) minmax(0, 1fr);
	gap: clamp(20px, 3.4vw, 44px);
}
.ms-catalog-back {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	margin-block: 12px 1px;
	font: 620 .83rem/1.35 var(--ms-ui);
}
.ms-catalog-back .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ms-category-description { margin-top: 9px; }
.ms-category-description > summary { width: fit-content; font-size: .85rem; font-weight: 650; text-decoration: underline; }
.ms-category-description .ms-catalog-lead { padding-block: 4px 8px; }
.ms-filter-panel { border-radius: 14px; }
.ms-filter-panel > summary { min-height: 58px; padding-inline: 17px; }
.ms-filter-count, .ms-filter-group-count, .ms-facet-count {
	border-radius: 50px;
	padding: 2px 7px;
	color: var(--ms-ink);
	background: #eff1f4;
	font: 620 .7rem/1.35 var(--ms-ui);
	font-variant-numeric: tabular-nums;
}
.ms-filter-sheet-head { display: none; }
.ms-filters { padding: 0 17px; }
.ms-filter-search { padding-block: 11px 15px; }
.ms-filter-facet { display: block; padding: 0 0 8px; }
.ms-filter-facet > summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font: 680 .88rem/1.28 var(--ms-ui);
}
.ms-filter-facet > summary::-webkit-details-marker, .ms-filter-more > summary::-webkit-details-marker { display: none; }
.ms-filter-facet > summary::after {
	content: '+';
	margin-left: auto;
	font: 500 1rem/1 var(--ms-ui);
}
.ms-filter-facet[open] > summary::after { content: '−'; }
.ms-filter-options { padding-bottom: 5px; }
.ms-filter-group .ms-facet-option {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr) auto;
	align-items: center;
	min-height: 34px;
	gap: 9px;
	font: 540 .81rem/1.3 var(--ms-ui);
	cursor: pointer;
}
.ms-facet-option input[type='checkbox'] { margin: 0; width: 16px; height: 16px; accent-color: var(--ms-ink); }
.ms-facet-option:has(:checked) { color: var(--ms-deep); font-weight: 690; }
.ms-filter-more > summary {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 5px;
	min-height: 34px;
	font: 650 .74rem/1.25 var(--ms-ui);
	text-decoration: underline;
	text-underline-offset: .19em;
}
.ms-filter-more[open] > summary { margin-bottom: 4px; }
.ms-filter-prices { padding-bottom: 5px; }
.ms-filter-actions {
	display: grid;
	gap: 7px;
	padding: 12px 17px 15px;
	background: #fff;
	border-radius: 0 0 14px 14px;
	text-align: center;
}
.ms-filter-actions .ms-button { min-height: 43px; width: 100%; border-radius: 50px; }
.ms-filter-actions .ms-filter-reset { margin-top: 3px; }
.ms-filter-cancel { border: 0; background: transparent; color: var(--ms-muted); text-decoration: underline; }
.ms-filter-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 0;
	margin: 0 0 14px;
	list-style: none;
}
.ms-filter-chips a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 36px;
	padding: 5px 10px;
	background: #eff1f5;
	border-radius: 50px;
	font: 620 .76rem/1.3 var(--ms-ui);
	text-decoration: none;
}
.ms-filter-chips a:hover { background: #e3e7ee; }
.ms-filter-chips a span { font-size: 1rem; }
.ms-filter-chips .ms-filter-clear a { background: transparent; text-decoration: underline; }
.ms-atelier .ms-catalog-results ul.products { --ms-columns: 4; }
.ms-atelier .ms-catalog-results ul.products li.product .woocommerce-loop-product__title { font-size: clamp(1.15rem, 1.55vw, 1.48rem); }
.ms-atelier .ms-catalog-results ul.products .product .button { border-radius: 50px; }
.ms-card-composition, .ms-card-options { display: block; margin: 0 12px 5px; color: var(--ms-muted); font: 530 .74rem/1.4 var(--ms-ui); }
.ms-card-composition { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Product gallery, summary and purchase form */
.ms-single-product { padding-top: 14px; }
.ms-product-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
	gap: clamp(24px, 4.7vw, 66px);
	align-items: start;
}
.ms-product-media { min-width: 0; position: relative; }
.ms-atelier .ms-single-product .ms-product-hero div.woocommerce-product-gallery,
.ms-atelier .ms-single-product .ms-product-hero div.entry-summary {
	float: none;
	width: 100%;
	min-width: 0;
	margin: 0;
}
.ms-atelier .ms-product-hero .woocommerce-product-gallery img { display: block; }
.ms-atelier .ms-product-hero .woocommerce-product-gallery__wrapper { margin: 0; }
.ms-atelier .ms-product-hero .woocommerce-product-gallery__image:first-child {
	border-radius: 17px;
	background: #f3f0ea;
	overflow: hidden;
}
.ms-atelier .ms-product-hero .woocommerce-product-gallery__image:first-child img.wp-post-image {
	aspect-ratio: 1.04;
	width: 100%;
	object-fit: contain;
}
.ms-atelier .ms-product-hero .woocommerce-product-gallery__trigger {
	width: 43px;
	height: 43px;
	top: 12px;
	right: 12px;
	box-shadow: 0 2px 10px #112d5220;
}
.ms-atelier .ms-product-hero .woocommerce-product-gallery__trigger::before { top: 13px; left: 13px; }
.ms-atelier .ms-product-hero .woocommerce-product-gallery__trigger::after { top: 25px; left: 26px; }
.ms-atelier .ms-product-hero .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	gap: 8px;
	margin: 11px 0 0;
}
.ms-atelier .ms-product-hero .flex-control-thumbs li { float: none; width: auto; }
.ms-atelier .ms-product-hero .flex-control-thumbs img { border-radius: 7px; border: 1px solid var(--ms-line); }
.ms-atelier .ms-product-hero .flex-control-thumbs img.flex-active { border-color: var(--ms-ink); }
.ms-atelier .ms-single-product .ms-product-hero .entry-summary {
	border: 1px solid var(--ms-line);
	border-radius: 19px;
	padding: clamp(21px, 3.25vw, 44px);
	background: #fff;
	box-shadow: 0 8px 28px #172a4209;
}
.ms-product-brand {
	display: inline-block;
	margin-bottom: 8px;
	color: var(--ms-muted);
	font: 650 .81rem/1.25 var(--ms-ui);
	text-transform: uppercase;
	letter-spacing: .08em;
}
.ms-atelier .ms-product-hero .product_title {
	margin: 0 0 .2em;
	font-size: clamp(2.5rem, 5.2vw, 4.75rem);
	overflow-wrap: anywhere;
}
.ms-atelier .ms-product-hero .entry-summary > p.price,
.ms-atelier .ms-product-hero .woocommerce-variation-price .price {
	margin: 0 0 .46em;
	font: 700 clamp(1.28rem, 2vw, 1.7rem)/1.2 var(--ms-ui);
}
.ms-atelier .ms-product-hero .price del { opacity: .62; font-weight: 500; }
.ms-atelier .ms-product-hero .price ins { text-decoration: none; }
.ms-product-specs { margin: 14px 0 18px; padding-top: 12px; border-top: 1px solid var(--ms-line); }
.ms-product-specs > div { display: grid; grid-template-columns: minmax(90px, .85fr) minmax(0, 1.15fr); gap: 10px; padding-block: 4px; }
.ms-product-specs dt { font: 680 .79rem/1.45 var(--ms-ui); }
.ms-product-specs dd { margin: 0; color: #43546c; font: 520 .8rem/1.45 var(--ms-ui); }
.ms-product-intro { margin: 12px 0 18px; color: var(--ms-muted); font-size: .91rem; }
.ms-product-purchase { min-width: 0; scroll-margin-top: 75px; }
.ms-atelier .ms-product-purchase form.cart { margin: 0 0 13px; }
.ms-atelier .ms-product-purchase form.cart .variations { margin: 0 0 11px; }
.ms-atelier .ms-product-purchase form.cart .variations :is(tr, td, th) {
	display: block;
	text-align: left;
	border: 0;
	background: transparent;
	padding: 0;
}
.ms-atelier .ms-product-purchase form.cart .variations td { padding-bottom: 7px; }
.ms-atelier .ms-product-purchase form.cart .variations label { font: 680 .89rem/1.35 var(--ms-ui); }
.ms-atelier .ms-product-purchase .variations select {
	width: 100%;
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid var(--ms-line);
	border-radius: 7px;
	background: var(--ms-paper);
	color: var(--ms-ink);
}
.ms-atelier .ms-product-purchase .reset_variations { font-size: .76rem; }
.ms-atelier .ms-product-purchase .variable-items-wrapper { gap: 7px; margin: 7px 0; }
.ms-atelier .ms-product-purchase .variable-items-wrapper .variable-item:not(.radio-variable-item) {
	min-height: 45px;
	min-width: 45px;
	margin: 0;
	border-radius: 9px;
}
.ms-atelier .ms-product-purchase .variable-items-wrapper .image-variable-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 5px;
}
.ms-atelier .ms-product-purchase .variable-items-wrapper .variable-item.selected { box-shadow: 0 0 0 2px var(--ms-ink); }
.ms-atelier .ms-product-purchase .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 9px;
}
.ms-atelier .ms-product-purchase .quantity:not(.hidden) { margin: 0 8px 0 0; }
.ms-atelier .ms-product-purchase .quantity .qty {
	min-height: 48px;
	width: 62px;
	padding: 8px 5px;
	border: 1px solid var(--ms-line);
	border-radius: 9px;
	background: var(--ms-paper);
	color: var(--ms-ink);
}
.ms-atelier .ms-product-hero .ms-product-purchase .single_add_to_cart_button {
	float: none;
	min-height: 49px;
	max-width: 100%;
	padding: 9px clamp(15px, 2.2vw, 26px);
	border-radius: 50px;
	background: var(--ms-orange);
	color: var(--ms-deep);
	font: 720 .9rem/1.3 var(--ms-ui);
	white-space: normal;
}
.ms-atelier .ms-product-hero .ms-product-purchase .single_add_to_cart_button:hover { background: #ffab52; color: var(--ms-deep); }
.ms-atelier .ms-product-hero .ms-product-purchase .single_add_to_cart_button.disabled { background: #e8e8e9; color: #565f6c; opacity: 1; }
.ms-atelier .ms-product-purchase .stock { margin: 6px 0; font-size: .81rem; }
.ms-product-jump { display: inline-flex; align-items: center; gap: 6px; font: 620 .8rem/1.3 var(--ms-ui); }
.ms-product-jump .dashicons { width: 15px; height: 15px; font-size: 15px; }
.ms-buy-shortcut { display: none; }

/* Product specifications and existing WooCommerce tabs */
.ms-product-details, .ms-atelier .ms-single-product .woocommerce-tabs {
	clear: both;
	margin-top: clamp(25px, 5vw, 64px);
	padding: clamp(18px, 3.6vw, 43px) 0 0;
	border-top: 1px solid var(--ms-line);
}
.ms-product-details {
	display: grid;
	grid-template-columns: minmax(0, .74fr) minmax(0, 1.26fr);
	gap: 12px 30px;
}
.ms-product-details h2 { scroll-margin-top: 70px; }
.ms-atelier .ms-product-details h2, .ms-atelier .ms-single-product :is(.woocommerce-Tabs-panel, .related, .upsells) > h2 {
	margin: 0 0 .5em;
	color: var(--ms-ink);
	font: 400 clamp(2rem, 3.5vw, 3.4rem)/1.05 var(--ms-serif);
	letter-spacing: -.025em;
}
.ms-product-details-table { margin: 0; }
.ms-product-details-table > div {
	display: grid;
	grid-template-columns: minmax(100px, .67fr) minmax(0, 1.33fr);
	gap: 9px 14px;
	padding: 12px 4px;
	border-bottom: 1px solid var(--ms-line);
	font-size: .89rem;
}
.ms-product-details-table dt { font-weight: 680; }
.ms-product-details-table dd { margin: 0; color: #43546c; overflow-wrap: anywhere; }
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 0;
	margin-bottom: 22px;
}
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs::before,
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs li::before,
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 1px solid var(--ms-line); border-radius: 50px; background: #fff; }
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs li a { padding: 9px 15px; font-size: .84rem; }
.ms-atelier .ms-single-product .woocommerce-tabs ul.tabs li.active { background: var(--ms-ink); color: #fff; border-color: var(--ms-ink); }
.ms-atelier .ms-single-product .woocommerce-Tabs-panel { max-width: 100%; color: #43546c; overflow-wrap: anywhere; }
.ms-full-product-description { max-width: 78ch; }
.ms-atelier .ms-single-product :is(.related, .upsells) { padding-top: 12px; }

@media (min-width: 761px) {
	.ms-catalog-sidebar { position: sticky; top: 14px; }
	body.admin-bar .ms-catalog-sidebar { top: 47px; }
	.ms-filters { max-height: min(57vh, 650px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
	.ms-filter-actions { border-top: 1px solid var(--ms-line); }
}

@media (max-width: 1120px) {
	.ms-atelier .ms-catalog-results ul.products { --ms-columns: 3; }
}
@media (max-width: 890px) {
	.ms-atelier .ms-catalog-results ul.products { --ms-columns: 2; }
}
@media (max-width: 760px) {
	.ms-atelier .ms-catalog--filtered { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.ms-filter-panel > summary { min-height: 49px; padding: 9px 13px; font-size: 1.28rem; }
	.ms-filter-panel[data-ready='yes'][open] .ms-filter-sheet {
		position: fixed;
		inset: 0 auto 0 0;
		z-index: 10020;
		display: grid;
		grid-template-rows: auto minmax(0, 1fr) auto;
		width: min(390px, 100%);
		height: 100dvh;
		background: #fff;
		box-shadow: 0 0 0 100vmax #101c31a0;
	}
	body.ms-filter-modal-open { overflow: hidden; }
	.ms-filter-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 17px; border-bottom: 1px solid var(--ms-line); }
	.ms-filter-sheet-head strong { font: 400 1.55rem/1.2 var(--ms-serif); }
	.ms-filter-close { width: 44px; height: 44px; border: 1px solid var(--ms-line); border-radius: 100%; background: #fff; color: var(--ms-ink); font-size: 1.35rem; }
	.ms-filter-panel[data-ready='yes'] .ms-filters { overflow: auto; overscroll-behavior: contain; }
	.ms-filter-panel[data-ready='yes'] .ms-filter-actions { border-top: 1px solid var(--ms-line); padding-bottom: max(15px, env(safe-area-inset-bottom)); }
	.ms-filter-group .ms-facet-option { min-height: 39px; }
	.ms-filter-chips { margin-bottom: 8px; }
	.ms-card-composition, .ms-card-options { margin-inline: 8px; }
	.ms-product-hero, .ms-product-details { grid-template-columns: minmax(0, 1fr); }
	.ms-product-hero { gap: 14px; }
	.ms-atelier .ms-single-product .ms-product-hero .entry-summary { padding: 20px 15px; border-radius: 15px; }
	.ms-atelier .ms-product-hero .woocommerce-product-gallery__image:first-child img.wp-post-image { max-height: 385px; aspect-ratio: 1.16; }
	.ms-atelier .ms-product-purchase .single_add_to_cart_button { flex: 1 1 auto; min-height: 48px; }
	.ms-atelier .ms-product-purchase form.cart:not(.variations_form) .single_add_to_cart_button { min-width: min(170px, 100%); }
	.ms-atelier .ms-buy-shortcut:not([hidden]) {
		position: fixed;
		bottom: max(10px, env(safe-area-inset-bottom));
		left: 50%;
		z-index: 7;
		transform: translateX(-50%);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		padding: 6px 17px;
		border-radius: 50px;
		background: var(--ms-ink);
		color: #fff;
		font: 650 .81rem/1.25 var(--ms-ui);
		white-space: nowrap;
		text-decoration: none;
		box-shadow: 0 4px 16px #25334b42;
	}
}
