/*
Theme Name: Print3DCell
Theme URI: https://print3dcell.com
Author: Print3DCell
Description: Block theme for Print3DCell. Premium, technical and minimal, built for WooCommerce and the Site Editor. No page builder required.
Version: 0.5.76
Requires at least: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: print3dcell
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

.wp-site-blocks > * + * { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--wp--preset--color--accent-dark); outline-offset: 3px; }

/* ---------- Header ---------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }

.p3d-header {
	max-width: 1600px;
	margin: 0 auto;
	padding: 14px var(--wp--preset--spacing--40);
}
.p3d-header .wp-block-site-title a { text-decoration: none; letter-spacing: -0.02em; }
.p3d-header .wp-block-navigation a { text-decoration: none; font-weight: 500; }
.p3d-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }

/* Light text and icons on the dark header */
header.wp-block-template-part a,
header.wp-block-template-part .wp-block-navigation-item__content,
header.wp-block-template-part .wp-block-site-title a { color: var(--wp--preset--color--base); }
header.wp-block-template-part a:hover { color: var(--wp--preset--color--accent); }
header.wp-block-template-part :focus-visible { outline-color: var(--wp--preset--color--base); }
header.wp-block-template-part .wc-block-mini-cart__button,
header.wp-block-template-part .wc-block-customer-account a,
header.wp-block-template-part .wp-block-navigation__responsive-container-open,
header.wp-block-template-part .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--base); }
header.wp-block-template-part .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}
.p3d-header-tools { gap: var(--wp--preset--spacing--30); }

/* ---------- Footer ---------- */
footer.wp-block-template-part {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.p3d-footer {
	max-width: 1600px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
}
footer.wp-block-template-part a { color: var(--wp--preset--color--base); text-decoration: none; }
footer.wp-block-template-part a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; }
footer.wp-block-template-part h2,
footer.wp-block-template-part h3,
footer.wp-block-template-part h4 { color: var(--wp--preset--color--base); }
.p3d-footer-note { opacity: .7; font-size: .875rem; }
.p3d-footer-bottom {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(255,255,255,.18);
}

/* ---------- Home sections ---------- */
.p3d-lead { max-width: 640px; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); }
.p3d-muted { color: var(--wp--preset--color--muted); }
.p3d-section-head { margin-bottom: var(--wp--preset--spacing--50); }

.p3d-card {
	height: 100%;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--50);
	transition: border-color .2s ease;
}
.p3d-card:hover { border-color: var(--wp--preset--color--accent); }

.p3d-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--surface);
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: 8px;
	color: var(--wp--preset--color--muted);
	font-size: .875rem;
}

/* Buttons on dark sections */
.has-contrast-background-color .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--base);
	background: transparent;
}
.has-contrast-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1.5px solid var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* ---------- WooCommerce ---------- */
.wc-block-components-product-price,
.wc-block-grid__product-price,
.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--accent-dark);
	font-weight: 600;
}
.wc-block-grid__product-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-weight: 600;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
}
.wc-block-grid__product-image img,
.woocommerce ul.products li.product a img {
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
}

/* Headings on dark sections */
.has-contrast-background-color :is(h1, h2, h3, h4) { color: var(--wp--preset--color--base); }
.has-contrast-background-color a:not(.wp-element-button) { color: var(--wp--preset--color--base); }
.has-contrast-background-color .p3d-lead { color: rgba(255,255,255,.8); }

/* ---------- v0.1.1 fixes ---------- */
/* Lead paragraphs: keep the narrow measure but align left (layout CSS centres them with !important) */
.wp-block-group .p3d-lead {
	margin-left: max(0px, calc((100% - 1600px) / 2)) !important;
	margin-right: auto !important;
}

/* Header/footer already get side padding from the page; avoid double indent */
.p3d-header, .p3d-footer { padding-left: 0; padding-right: 0; }

/* Header search: quiet icon button instead of a large blue square */
.p3d-header .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--base);
	border: 0;
	padding: 6px;
	margin-left: 0;
}
.p3d-header .wp-block-search__button:hover { color: var(--wp--preset--color--accent); background: transparent; }

/* Separate dark call-to-action from dark footer */
footer.wp-block-template-part { border-top: 1px solid rgba(255,255,255,.12); }

/* ---------- v0.2.0: Services page and quote form ---------- */
[id="quote"], [id="projects"] { scroll-margin-top: 90px; }

.p3d-step-num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	margin-bottom: var(--wp--preset--spacing--30);
	border: 1.5px solid var(--wp--preset--color--accent-dark);
	border-radius: 50%;
	color: var(--wp--preset--color--accent-dark);
	font-weight: 700;
}

.p3d-form { display: grid; gap: 1.1rem; }
.p3d-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 600px) { .p3d-form-row { grid-template-columns: 1fr; } }
.p3d-form label { display: block; margin-bottom: .35rem; font-weight: 600; }
.p3d-form .p3d-hint { font-weight: 400; color: var(--wp--preset--color--muted); }
.p3d-form input[type="text"],
.p3d-form input[type="email"],
.p3d-form input[type="tel"],
.p3d-form input[type="file"],
.p3d-form select,
.p3d-form textarea {
	width: 100%;
	padding: .7rem .85rem;
	border: 1px solid #8A949B;
	border-radius: 6px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}
.p3d-form textarea { min-height: 9rem; resize: vertical; }
.p3d-form input:focus, .p3d-form select:focus, .p3d-form textarea:focus {
	border-color: var(--wp--preset--color--accent-dark);
	outline: 2px solid var(--wp--preset--color--accent-dark);
	outline-offset: 1px;
}
.p3d-consent { display: flex; gap: .6rem; align-items: flex-start; }
.p3d-consent input { margin-top: .35rem; }
.p3d-consent label { margin: 0; font-weight: 400; }
.p3d-form button[type="submit"] { justify-self: start; border: 0; cursor: pointer; }
.p3d-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.p3d-notice { padding: .9rem 1.1rem; border-radius: 6px; border: 1px solid; margin-bottom: 1.1rem; }
.p3d-notice--success { border-color: var(--wp--preset--color--accent-dark); background: var(--wp--preset--color--surface); }
.p3d-notice--error { border-color: #B3261E; background: #FDF1F0; }

/* ---------- v0.2.2: quote form sizing ---------- */
.p3d-form, .p3d-form * { box-sizing: border-box; }
.p3d-form-row > * { min-width: 0; }
.p3d-form select { appearance: auto; min-height: 2.9rem; }
.p3d-form input[type="file"] { padding: .55rem .7rem; }
.p3d-consent input[type="checkbox"] {
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: .2rem;
	accent-color: var(--wp--preset--color--accent-dark);
}

/* ---------- v0.2.3: quote form errors ---------- */
.p3d-field-error {
	margin: .4rem 0 0;
	color: #B3261E;
	font-size: .875rem;
	font-weight: 600;
}
.p3d-form [aria-invalid="true"] { border-color: #B3261E; }
.p3d-form input[type="checkbox"][aria-invalid="true"] { outline: 2px solid #B3261E; outline-offset: 2px; }

/* ---------- v0.2.4: remove-file button ---------- */
.p3d-file-row { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.p3d-file-row input[type="file"] { flex: 1 1 14rem; min-width: 0; width: auto; }
.p3d-remove-file {
	padding: .55rem .9rem;
	border: 1.5px solid var(--wp--preset--color--contrast);
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
}
.p3d-remove-file:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.p3d-remove-file[hidden] { display: none; }

/* ---------- v0.3.2: Contact page, matching side-by-side blocks ---------- */
.p3d-equal > .wp-block-column { display: flex; flex-direction: column; }
.p3d-equal > .wp-block-column > .p3d-card { flex: 1 1 auto; width: 100%; }
.p3d-info { display: flex; flex-direction: column; }
.p3d-info-item { padding-bottom: var(--wp--preset--spacing--40); margin-bottom: var(--wp--preset--spacing--40); border-bottom: 1px solid var(--wp--preset--color--border); }
.p3d-info-item:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.p3d-info-item > :first-child { margin-top: 0; }
.p3d-info-item h3 { margin-bottom: var(--wp--preset--spacing--20); }

/* v0.3.3: intro inside the Contact details card */
.p3d-info .p3d-lead { max-width: none; margin-left: 0 !important; font-size: var(--wp--preset--font-size--medium); }
.p3d-info h1 { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: var(--wp--preset--spacing--30); }

/* =====================================================================
   v0.4.0: dark image sections and the shared form design
   ===================================================================== */

/* Dark sections: white text, no boxes */
.p3d-dark h1, .p3d-dark h2, .p3d-dark h3, .p3d-dark h4,
.p3d-dark p, .p3d-dark li, .p3d-dark label { color: var(--wp--preset--color--base); }
.p3d-dark .p3d-muted, .p3d-dark .p3d-lead { color: rgba(255,255,255,.78); }
.p3d-dark a:not(.wp-element-button) { color: var(--wp--preset--color--base); text-decoration: underline; text-underline-offset: 3px; }
.p3d-dark a:not(.wp-element-button):hover { color: var(--wp--preset--color--accent); }
.p3d-dark .p3d-card { background: transparent; border: 0; padding: 0; border-radius: 0; }
.p3d-dark .p3d-card:hover { border-color: transparent; }
.p3d-dark .p3d-info-item { border-bottom-color: rgba(255,255,255,.18); }
.p3d-dark .wp-block-social-links.is-style-logos-only .wp-social-link { color: var(--wp--preset--color--base) !important; }
.p3d-dark .wp-block-social-links .wp-social-link a { text-decoration: none; }
.p3d-dark :focus-visible { outline-color: var(--wp--preset--color--base); }

/* Form design: rounded, lighter grey fields on a dark background */
.p3d-form { color-scheme: dark; gap: 1.15rem; }
.p3d-form label { color: var(--wp--preset--color--base); }
.p3d-form .p3d-hint { color: rgba(255,255,255,.72); }
.p3d-form input[type="text"],
.p3d-form input[type="email"],
.p3d-form input[type="tel"],
.p3d-form input[type="file"],
.p3d-form select,
.p3d-form textarea {
	background: #3C3C3C;
	color: var(--wp--preset--color--base);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: 999px;
	padding: .85rem 1.3rem;
}
.p3d-form textarea { border-radius: 22px; padding: 1rem 1.3rem; }
.p3d-form select { min-height: 3.1rem; }
.p3d-form input[type="file"] { padding: .5rem .8rem; }
.p3d-form input[type="file"]::file-selector-button {
	margin-right: .9rem;
	padding: .45rem 1.1rem;
	border: 0;
	border-radius: 999px;
	background: rgba(255,255,255,.18);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.p3d-form input:focus, .p3d-form select:focus, .p3d-form textarea:focus {
	border-color: var(--wp--preset--color--accent);
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 1px;
}
.p3d-form button[type="submit"] { justify-self: stretch; width: 100%; padding: .95rem 2rem; border-radius: 999px; }
.p3d-consent label { color: rgba(255,255,255,.88); }
.p3d-consent input[type="checkbox"] { accent-color: var(--wp--preset--color--accent); }

.p3d-remove-file {
	border-color: var(--wp--preset--color--base);
	border-radius: 999px;
	color: var(--wp--preset--color--base);
}
.p3d-remove-file:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }

.p3d-notice { border-radius: 14px; color: var(--wp--preset--color--base); }
.p3d-notice--success { border-color: var(--wp--preset--color--accent); background: rgba(66,148,184,.22); }
.p3d-notice--error { border-color: #FFB4AB; background: rgba(255,180,171,.12); }
.p3d-field-error { color: #FFB4AB; }
.p3d-form [aria-invalid="true"] { border-color: #FFB4AB; }
.p3d-form input[type="checkbox"][aria-invalid="true"] { outline-color: #FFB4AB; }

/* ---------- v0.4.2: every button is pill-shaped ---------- */
.wp-element-button,
.wp-block-button__link,
.wp-block-button .wp-block-button__link,
.wp-block-search__button,
.wc-block-components-button:not(.is-link),
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit { border-radius: 999px; }

/* =====================================================================
   v0.5.0: shop and product pages
   ===================================================================== */

/* Toolbar above the grid */
.p3d-toolbar { margin-bottom: var(--wp--preset--spacing--40); }
.p3d-toolbar .woocommerce-result-count,
.p3d-toolbar .wc-block-product-results-count { margin: 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.wc-block-catalog-sorting select, .woocommerce-ordering select {
	padding: .6rem 1rem;
	border: 1px solid #8A949B;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

/* Sidebar: shop by vehicle */
.p3d-sidebar h3 { margin-top: 0; }
.p3d-sidebar .wc-block-product-categories-list,
.p3d-sidebar .wc-block-product-categories-list ul { margin: 0; padding: 0; list-style: none; }
.p3d-sidebar .wc-block-product-categories-list-item a {
	display: inline-block;
	padding: .4rem 0;
	color: var(--wp--preset--color--contrast);
	font-weight: 500;
	text-decoration: none;
}
.p3d-sidebar .wc-block-product-categories-list-item a:hover { color: var(--wp--preset--color--accent-dark); }
.p3d-sidebar .wc-block-product-categories-list--depth-1,
.p3d-sidebar .wc-block-product-categories-list-item ul { padding-left: 1rem; border-left: 1px solid var(--wp--preset--color--border); margin-bottom: .4rem; }
.p3d-sidebar .wc-block-product-categories-list-item-count { margin-left: .4rem; color: var(--wp--preset--color--muted); font-size: .85em; }
.p3d-sidebar .wc-block-product-categories-list-item-count::before,
.p3d-sidebar .wc-block-product-categories-list-item-count::after { content: none; }

/* Product cards (shop, home and related products) */
.wc-block-product { padding-bottom: var(--wp--preset--spacing--30); }
.wc-block-components-product-image { margin-bottom: .9rem; }
.wc-block-components-product-image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 18px;
	background: var(--wp--preset--color--surface);
}
.wc-block-components-product-sale-badge {
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}
.wp-block-post-title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.wp-block-post-title a:hover { color: var(--wp--preset--color--accent-dark); }
.wc-block-product .wp-block-post-title { margin: 0 0 .25rem; }
.wc-block-components-product-button { margin-top: .6rem; }

/* Pagination */
.wp-block-query-pagination { gap: .4rem; margin-top: var(--wp--preset--spacing--50); }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers {
	padding: .4rem .85rem;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.wp-block-query-pagination a:hover { background: var(--wp--preset--color--surface); }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* Breadcrumbs */
.woocommerce-breadcrumb, .wc-block-breadcrumbs { margin: 0 0 var(--wp--preset--spacing--30); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.woocommerce-breadcrumb a { color: var(--wp--preset--color--muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent-dark); text-decoration: underline; }

/* Product page */
.p3d-product .woocommerce-product-gallery img,
.p3d-product .wp-block-woocommerce-product-image-gallery img { border-radius: 18px; }
.p3d-product-summary h1 { font-size: var(--wp--preset--font-size--x-large); margin: 0 0 .25rem; }
.p3d-product-summary .wc-block-components-product-price,
.p3d-product-summary .price { color: var(--wp--preset--color--accent-dark); font-weight: 700; }
.p3d-product-summary .woocommerce-product-details__short-description,
.p3d-product-summary .wp-block-post-excerpt { margin: 0; }
.p3d-product-summary .quantity .qty,
.wc-block-add-to-cart-form .quantity .qty {
	width: 5.5rem;
	padding: .8rem 1rem;
	border: 1px solid #8A949B;
	border-radius: 999px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	text-align: center;
}
.p3d-product-summary form.cart { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }
.p3d-product-summary .product_meta, .p3d-product-summary .wp-block-post-terms { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.p3d-product-summary .wp-block-post-terms a { color: var(--wp--preset--color--muted); }
.p3d-product-help { padding-top: var(--wp--preset--spacing--30); border-top: 1px solid var(--wp--preset--color--border); }

/* Description / reviews tabs */
.woocommerce-tabs ul.tabs, .wc-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40); padding: 0; list-style: none; border: 0; }
.woocommerce-tabs ul.tabs::before, .woocommerce-tabs ul.tabs::after { content: none; }
.woocommerce-tabs ul.tabs li { margin: 0; border: 0; background: transparent; }
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: .55rem 1.2rem;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-tabs ul.tabs li.active a { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.woocommerce-tabs .panel h2 { font-size: var(--wp--preset--font-size--large); }
.p3d-related-title { margin-top: var(--wp--preset--spacing--70); margin-bottom: var(--wp--preset--spacing--40); }

/* ---------- v0.5.1: product cards in the Etsy style ---------- */
.wc-block-product { padding-bottom: var(--wp--preset--spacing--20); }
.wc-block-product .wc-block-components-product-image { margin-bottom: .7rem; }
.wc-block-product .wc-block-components-product-image img { border-radius: 14px; transition: opacity .2s ease; }
.wc-block-product .wc-block-components-product-image a:hover img { opacity: .92; }

/* one-line name, cut off with an ellipsis, light weight */
.wc-block-product .wp-block-post-title {
	margin: 0 0 .2rem;
	font-weight: 400;
	line-height: 1.4;
}
.wc-block-product .wp-block-post-title a {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

/* bold dark price under the name */
.wc-block-product .wc-block-components-product-price {
	margin: 0;
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
}
.wc-block-product .wc-block-components-product-price del { color: var(--wp--preset--color--muted); font-weight: 400; }
.wc-block-product .wc-block-components-product-price ins { text-decoration: none; }

/* ---------- v0.5.2: card hover shadow + header refresh ---------- */
.wc-block-product {
	padding: .6rem .6rem var(--wp--preset--spacing--20);
	border-radius: 18px;
	background: transparent;
	transition: box-shadow .25s ease, background-color .25s ease;
}
.wc-block-product:hover,
.wc-block-product:focus-within {
	background: var(--wp--preset--color--base);
	box-shadow: 0 6px 24px rgba(35, 35, 35, .14), 0 1px 4px rgba(35, 35, 35, .08);
}

/* header: logo left, nav with space after it, account + cart on the right */
.p3d-header { align-items: center; }
.p3d-header .wp-block-navigation {
	margin-right: auto;
	margin-left: clamp(2rem, 8vw, 9rem);
}
.p3d-header .wp-block-navigation .wp-block-navigation__container { gap: clamp(1.25rem, 2.6vw, 2.75rem); }
.p3d-header .wp-block-navigation a {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: .03em;
	text-transform: uppercase;
}
.p3d-header .wp-block-site-title a { font-weight: 600; font-size: 1.5rem; }
.p3d-header-tools {
	gap: var(--wp--preset--spacing--20);
	align-items: center;
	padding-left: var(--wp--preset--spacing--30);
	border-left: 1px solid rgba(255, 255, 255, .22);
}
header.wp-block-template-part .wc-block-mini-cart__badge {
	background: #D64545;
	color: #fff;
}
@media (max-width: 781px) {
	.p3d-header .wp-block-navigation { margin-left: 0; }
}

/* ---------- v0.5.4: logo in the header ---------- */
.p3d-brand { align-items: center; gap: 0; }
.p3d-brand .wp-block-site-logo { line-height: 0; }
.p3d-brand .wp-block-site-logo img { height: auto; max-height: 44px; width: auto; max-width: 100%; }
/* when a logo is set, hide the text title (it stays in the page for search engines) */
.p3d-brand:has(.wp-block-site-logo img) .wp-block-site-title {
	position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- v0.5.5: footer logo, legal links, email ---------- */
.p3d-footer .p3d-brand .wp-block-site-logo img { max-height: 84px; }
.p3d-footer-links { margin: var(--wp--preset--spacing--40) 0 0; font-size: .9375rem; line-height: 2; }
footer.wp-block-template-part .p3d-footer-links a { color: var(--wp--preset--color--accent); text-decoration: none; }
footer.wp-block-template-part .p3d-footer-links a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; }
.p3d-footer-links a + a::before {
	content: "|";
	display: inline-block;
	margin: 0 .7rem;
	color: rgba(255,255,255,.35);
	text-decoration: none;
}
.p3d-footer-email { margin: .6rem 0 0; }
footer.wp-block-template-part .p3d-footer-email a {
	display: inline-flex; align-items: center; gap: .75rem;
	color: var(--wp--preset--color--accent); text-decoration: none; font-size: 1rem;
}
footer.wp-block-template-part .p3d-footer-email a::before {
	content: ""; width: 24px; height: 18px; flex: none;
	background: var(--wp--preset--color--accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 22' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round'%3E%3Crect x='1.5' y='1.5' width='27' height='19' rx='2'/%3E%3Cpath d='M2 3l13 10L28 3'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 22' fill='none' stroke='black' stroke-width='2.4' stroke-linejoin='round'%3E%3Crect x='1.5' y='1.5' width='27' height='19' rx='2'/%3E%3Cpath d='M2 3l13 10L28 3'/%3E%3C/svg%3E") center/contain no-repeat;
}
footer.wp-block-template-part .p3d-footer-email a:hover { text-decoration: underline; }

/* ---------- v0.5.6: footer bottom bar: payments + socials ---------- */
.p3d-footer-bottom { gap: 1.25rem 2rem; align-items: center; }
.p3d-footer-bottom p { margin: 0; }
.p3d-payments { display: flex; flex-wrap: wrap; gap: .5rem; }
.p3d-payments span {
	padding: .3rem .85rem;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 999px;
	font-size: .8125rem;
	font-weight: 500;
	color: var(--wp--preset--color--base);
	background: rgba(255,255,255,.06);
	white-space: nowrap;
}
.p3d-socials.wp-block-social-links { gap: 1.5rem; margin: 0; padding-left: 2rem; border-left: 1px dashed rgba(255,255,255,.35); }
.p3d-socials .wp-block-social-link a { padding: 0; color: var(--wp--preset--color--base); }
.p3d-socials .wp-block-social-link a:hover { color: var(--wp--preset--color--accent); }
.p3d-socials .wp-block-social-link svg { width: 1.6rem; height: 1.6rem; fill: currentColor; }
@media (max-width: 781px) { .p3d-socials.wp-block-social-links { padding-left: 0; border-left: 0; } }

/* ---------- v0.5.8: product page in the Etsy style ---------- */
.p3d-product { max-width: 1240px; margin-left: auto; margin-right: auto; }
.wp-block-woocommerce-breadcrumbs, .woocommerce-breadcrumb { max-width: 1240px; margin-left: auto; margin-right: auto; }

/* gallery: thumbnails in a column on the left, large rounded photo */
.p3d-product .woocommerce-product-gallery { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 1rem; align-items: start; }
.p3d-product .woocommerce-product-gallery .flex-viewport,
.p3d-product .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper { grid-column: 2; grid-row: 1; border-radius: 18px; overflow: hidden; background: var(--wp--preset--color--surface); }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs li { width: 100%; float: none; margin: 0; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs img { border-radius: 10px; opacity: .6; cursor: pointer; border: 2px solid transparent; transition: opacity .15s ease; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.p3d-product .woocommerce-product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active { border-color: var(--wp--preset--color--contrast); }
.p3d-product .woocommerce-product-gallery__trigger { background: var(--wp--preset--color--base); border-radius: 50%; box-shadow: 0 2px 8px rgba(35,35,35,.18); }
@media (max-width: 781px) {
	.p3d-product .woocommerce-product-gallery { grid-template-columns: 1fr; }
	.p3d-product .woocommerce-product-gallery .flex-control-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; }
	.p3d-product .woocommerce-product-gallery .flex-control-thumbs li { width: 64px; }
}

/* summary */
.p3d-product-summary h1 { font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.25; letter-spacing: -.01em; margin: 0 0 .75rem; }
.p3d-product-summary .wc-block-components-product-price,
.p3d-product-summary .price { color: var(--wp--preset--color--contrast); font-weight: 700; font-size: 1.75rem; margin: 0; }
.p3d-tax-note { margin: .25rem 0 1rem; color: var(--wp--preset--color--muted); font-size: .875rem; }
.p3d-trust { list-style: none; margin: 0 0 1.5rem; padding: 0; font-size: .9375rem; }
.p3d-trust li { position: relative; margin: 0 0 .4rem; padding-left: 1.6rem; }
.p3d-trust li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1rem; height: 1rem;
	background: var(--wp--preset--color--accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 8.5l3.5 3.5 7.5-8'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* options, quantity and the add to cart button: full-width pills */
.p3d-product-summary form.cart { display: flex; flex-direction: column; align-items: stretch; gap: .9rem; }
.p3d-product-summary .quantity { width: 100%; }
.p3d-product-summary .quantity .qty { width: 100%; box-sizing: border-box; text-align: left; padding: .9rem 1.4rem; }
.p3d-product-summary select, .p3d-product-summary table.variations select {
	width: 100%; box-sizing: border-box; padding: .9rem 1.4rem; border: 1px solid #8A949B; border-radius: 999px;
	background-color: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font: inherit;
}
.p3d-product-summary table.variations th, .p3d-product-summary table.variations td { display: block; padding: 0 0 .4rem; text-align: left; }
.p3d-product-summary .single_add_to_cart_button,
.p3d-product-summary .wp-element-button.single_add_to_cart_button {
	width: 100%; justify-content: center; text-align: center; padding: 1.05rem 1.5rem; font-size: 1rem; font-weight: 600;
	background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
}
.p3d-product-summary .single_add_to_cart_button:hover { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--contrast); }

/* details below: clean underlined tabs (replaces the pill tabs) */
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 2rem; margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40); padding: 0; border-bottom: 1px solid var(--wp--preset--color--border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { content: none; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none; box-shadow: none; border: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block; padding: .6rem 0; margin-bottom: -1px; border-radius: 0; background: transparent;
	color: var(--wp--preset--color--muted); font-weight: 600; border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover { background: transparent; color: var(--wp--preset--color--contrast); border-bottom-color: var(--wp--preset--color--contrast); }
.woocommerce-tabs .panel > h2:first-child { display: none; }

/* ---------- v0.5.9: larger gallery and thumbnails ---------- */
.p3d-product .woocommerce-product-gallery,
.woocommerce div.product div.images.woocommerce-product-gallery { width: 100% !important; float: none !important; grid-template-columns: 94px minmax(0, 1fr); }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs { width: 94px !important; max-height: 640px; overflow-y: auto; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs li { width: 100% !important; float: none !important; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs li img { width: 100% !important; height: auto; aspect-ratio: 1 / 1; object-fit: cover; opacity: .75; }
.p3d-product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
.p3d-product .woocommerce-product-gallery .flex-control-thumbs li img:hover { opacity: 1; }
@media (max-width: 781px) {
	.p3d-product .woocommerce-product-gallery .flex-control-thumbs { width: 100% !important; flex-direction: row; max-height: none; overflow-x: auto; }
	.p3d-product .woocommerce-product-gallery .flex-control-thumbs li { width: 84px !important; flex: none; }
}

/* ---------- v0.5.10: round arrows next to the big photo ---------- */
.p3d-product .woocommerce-product-gallery { position: relative; }
.p3d-product .flex-direction-nav { list-style: none; margin: 0; padding: 0; }
.p3d-product .flex-direction-nav li { margin: 0; padding: 0; }
.p3d-product .flex-direction-nav a {
	position: absolute; top: 50%; z-index: 5; display: block !important;
	width: 46px; height: 46px; margin: -23px 0 0; padding: 0; overflow: hidden;
	border-radius: 50%; background: var(--wp--preset--color--base);
	box-shadow: 0 2px 10px rgba(35,35,35,.22);
	font-size: 0; line-height: 0; text-indent: -9999px; opacity: 1 !important; text-decoration: none;
	transition: box-shadow .2s ease, transform .2s ease;
}
.p3d-product .flex-direction-nav a:hover { box-shadow: 0 4px 16px rgba(35,35,35,.3); transform: scale(1.06); }
.p3d-product .flex-direction-nav a.flex-prev { left: calc(94px + 1rem + 14px); right: auto; }
.p3d-product .flex-direction-nav a.flex-next { right: 14px; left: auto; }
.p3d-product .flex-direction-nav a::before {
	content: ""; position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; font-size: 0; text-indent: 0;
	background: #6B747A;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M26 15l-8 8 8 8'/%3E%3C/svg%3E") center/100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M26 15l-8 8 8 8'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
.p3d-product .flex-direction-nav a.flex-next::before { transform: scaleX(-1); }
.p3d-product .flex-direction-nav a.flex-disabled { display: none !important; }
@media (max-width: 781px) { .p3d-product .flex-direction-nav a.flex-prev { left: 14px; } }

/* ---------- v0.5.11: gallery fills its column, quantity + variation drop-downs ---------- */
.p3d-product .wp-block-woocommerce-product-image-gallery,
.p3d-product div.images,
.p3d-product .woocommerce-product-gallery { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; float: none !important; }
.p3d-product .woocommerce-product-gallery .flex-viewport { width: 100% !important; }

.p3d-product-summary .p3d-qty-label,
.p3d-product-summary table.variations label { display: block; margin: 0 0 .4rem; font-size: .9375rem; font-weight: 600; color: var(--wp--preset--color--contrast); }
.p3d-product-summary select,
.p3d-product-summary table.variations select {
	-webkit-appearance: none; appearance: none; cursor: pointer;
	padding-right: 3rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%23232323' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 1.4rem center;
}
.p3d-product-summary table.variations { width: 100%; margin: 0 0 .9rem; border: 0; }
.p3d-product-summary table.variations tr { display: block; margin-bottom: .9rem; }
.p3d-product-summary .reset_variations { display: inline-block; margin-top: .4rem; font-size: .875rem; }
.p3d-product-summary .woocommerce-variation-add-to-cart { display: flex; flex-direction: column; gap: .9rem; }
.p3d-product-summary .woocommerce-variation-price .price { font-size: 1.5rem; }
.p3d-product-summary .woocommerce-variation-description { margin-bottom: .9rem; color: var(--wp--preset--color--muted); }

/* ---------- v0.5.12: variation + quantity drop-downs, properly formatted ---------- */
/* make the variations table behave like normal stacked blocks (full width) */
.p3d-product-summary table.variations,
.p3d-product-summary table.variations tbody,
.p3d-product-summary table.variations tr,
.p3d-product-summary table.variations th,
.p3d-product-summary table.variations td { display: block; width: 100%; box-sizing: border-box; }
.p3d-product-summary table.variations th.label { padding: 0 0 .4rem; }
.p3d-product-summary table.variations td.value { padding: 0; }

/* every drop-down in the summary: same pill, visible text, arrow kept */
.woocommerce div.product .p3d-product-summary form.cart select,
.p3d-product-summary .quantity select.qty,
.p3d-product-summary table.variations select {
	display: block; width: 100%; max-width: 100%; min-width: 0; margin: 0; box-sizing: border-box;
	padding: .9rem 3rem .9rem 1.4rem;
	border: 1px solid #8A949B; border-radius: 999px;
	background-color: var(--wp--preset--color--base);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%23232323' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 1.4rem center;
	-webkit-appearance: none; appearance: none;
	color: #232323; font: inherit; font-size: 1rem; line-height: 1.4; text-align: left; text-indent: 0; opacity: 1;
	text-overflow: ellipsis; white-space: nowrap; overflow: hidden;
}
.p3d-product-summary select option { color: #232323; background: #fff; }
.p3d-product-summary select:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* quantity label above the box, not beside it */
.p3d-product-summary .quantity { display: block; width: 100%; }
.p3d-product-summary .quantity .p3d-qty-label { display: block; width: 100%; margin: 0 0 .4rem; }

/* remove the empty gaps WooCommerce leaves around the variation area */
.p3d-product-summary .reset_variations[style*="hidden"] { display: none; }
.p3d-product-summary .single_variation_wrap { margin: 0; }
.p3d-product-summary .woocommerce-variation { margin: 0; }
.p3d-product-summary .woocommerce-variation:empty { display: none; }

/* disabled Add to cart while no option is chosen */
.p3d-product-summary .single_add_to_cart_button.disabled,
.p3d-product-summary .single_add_to_cart_button:disabled { opacity: .4; cursor: not-allowed; }

/* ---------- v0.5.13: second photo slides in when hovering a shop tile ---------- */
.wc-block-product .wc-block-components-product-image { position: relative; overflow: hidden; border-radius: 14px; }
.wc-block-product .wc-block-components-product-image img { transition: transform .45s cubic-bezier(.4, 0, .2, 1), opacity .2s ease; will-change: auto; }
.wc-block-product .wc-block-components-product-image .p3d-hover-img {
	position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
	transform: translateX(100%); pointer-events: none;
}
@media (hover: hover) {
	.wc-block-product:hover .wc-block-components-product-image img:not(.p3d-hover-img) { transform: translateX(-100%); }
	.wc-block-product:hover .wc-block-components-product-image .p3d-hover-img { transform: translateX(0); }
}
@media (hover: none) { .wc-block-product .p3d-hover-img { display: none; } }
@media (prefers-reduced-motion: reduce) {
	.wc-block-product .wc-block-components-product-image img { transition: none; }
}

/* ---------- v0.5.14: header search with live drop-down ---------- */
body.search .p3d-title-archive { display: none; }
.p3d-header-tools { position: relative; }
.p3d-search { position: relative; display: flex; align-items: center; }
.p3d-search__toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0;
	border: 0; border-radius: 50%; background: transparent; color: var(--wp--preset--color--base); cursor: pointer;
}
.p3d-search__toggle:hover, .p3d-search.is-open .p3d-search__toggle { color: var(--wp--preset--color--accent); }
.p3d-search__panel {
	position: absolute; top: calc(100% + 18px); right: -110px; z-index: 60; width: min(440px, calc(100vw - 2rem));
	padding: .75rem; border-radius: 22px; background: var(--wp--preset--color--base);
	box-shadow: 0 12px 40px rgba(35, 35, 35, .28);
}
.p3d-search__panel[hidden] { display: none; }
.p3d-search__panel input[type="search"] {
	display: block; width: 100%; box-sizing: border-box; padding: .85rem 1.3rem; border: 1px solid #8A949B; border-radius: 999px;
	background: var(--wp--preset--color--base); color: #232323; font: inherit; font-size: 1rem; -webkit-appearance: none; appearance: none;
}
.p3d-search__panel input[type="search"]:focus { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; border-color: transparent; }
.p3d-search__results { list-style: none; margin: .5rem 0 0; padding: 0; max-height: 60vh; overflow-y: auto; }
.p3d-search__results:empty { display: none; }
.p3d-search__results li { margin: 0; padding: 0; }
header.wp-block-template-part .p3d-search__item {
	display: flex; align-items: center; gap: .85rem; padding: .55rem; border-radius: 14px; color: #232323; text-decoration: none;
}
header.wp-block-template-part .p3d-search__item:hover,
header.wp-block-template-part .p3d-search__item.is-active { background: var(--wp--preset--color--surface); color: #232323; }
.p3d-search__thumb { flex: none; width: 54px; height: 54px; border-radius: 10px; overflow: hidden; background: var(--wp--preset--color--surface); }
.p3d-search__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p3d-search__text { display: flex; flex-direction: column; min-width: 0; }
.p3d-search__name { font-size: .9375rem; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.p3d-search__price { font-size: .9375rem; font-weight: 700; }
.p3d-search__empty { padding: .9rem 1rem; color: var(--wp--preset--color--muted); font-size: .9375rem; }
header.wp-block-template-part .p3d-search__all {
	display: block; margin-top: .35rem; padding: .7rem; border-radius: 999px; text-align: center; font-weight: 600; font-size: .9375rem;
	background: #232323; color: #fff; text-decoration: none;
}
header.wp-block-template-part .p3d-search__all:hover { background: var(--wp--preset--color--accent); color: #232323; }
@media (max-width: 781px) { .p3d-search__panel { position: fixed; top: 64px; left: 1rem; right: 1rem; width: auto; } }

/* ---------- v0.5.15: tidier option + quantity boxes ---------- */
.woocommerce div.product .p3d-product-summary form.cart select,
.p3d-product-summary .quantity select.qty,
.p3d-product-summary table.variations select {
	border: 1px solid #D3D9DD;
	border-radius: 10px;
	height: auto;
	min-height: 3rem;
	padding: .75rem 2.75rem .75rem 1rem;
	line-height: 1.4;
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
	background-position: right 1rem center;
}
.p3d-product-summary select:hover { border-color: #AEB6BB; }
.p3d-product-summary select:focus,
.p3d-product-summary select:focus-visible { border-color: var(--wp--preset--color--accent); outline: 0; box-shadow: 0 0 0 3px rgba(66, 148, 184, .22); }

/* quantity: label above, box full width (it was sitting beside the label) */
.woocommerce div.product .p3d-product-summary .quantity,
.p3d-product-summary .woocommerce-variation-add-to-cart .quantity { display: block !important; width: 100% !important; float: none !important; margin: 0 !important; }
.p3d-product-summary .quantity .p3d-qty-label { display: block !important; width: 100%; margin: 0 0 .4rem; }
.p3d-product-summary .quantity select.qty { width: 100% !important; max-width: 100% !important; }

/* remove the tall empty space under the option box */
.p3d-product-summary table.variations { margin: 0 0 .75rem; }
.p3d-product-summary table.variations tr { margin: 0; }
.p3d-product-summary table.variations th.label,
.p3d-product-summary table.variations td.value { padding: 0; }
.p3d-product-summary .reset_variations { display: inline-block; margin: .5rem 0 0; font-size: .875rem; line-height: 1.2; }
.p3d-product-summary .single_variation_wrap { display: flex; flex-direction: column; gap: .9rem; margin: 0; }
.p3d-product-summary .single_variation_wrap > *,
.p3d-product-summary .woocommerce-variation > * { margin-top: 0; margin-bottom: 0; }
.p3d-product-summary .woocommerce-variation { margin: 0; padding: 0; min-height: 0; }
.p3d-product-summary .woocommerce-variation-add-to-cart { margin: 0; gap: .9rem; }

/* ---------- v0.5.16: blue cart icon and a roomier mini cart ---------- */
/* cart icon white, count bubble blue with a white number */
header.wp-block-template-part .wc-block-mini-cart__button,
header.wp-block-template-part .wc-block-mini-cart__button:focus { color: var(--wp--preset--color--base); }
header.wp-block-template-part .wc-block-mini-cart__button:hover { color: var(--wp--preset--color--accent); opacity: 1; }
header.wp-block-template-part .wc-block-mini-cart__icon,
header.wp-block-template-part .wc-block-mini-cart__button svg { color: inherit; fill: currentColor; }
header.wp-block-template-part .wc-block-mini-cart__badge,
header.wp-block-template-part .wc-block-mini-cart__button .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
	font-weight: 700;
}
/* no box around the icon after a mouse click (keyboard focus still shows a ring) */
header.wp-block-template-part .wc-block-mini-cart__button:focus:not(:focus-visible) { outline: 0; box-shadow: none; }

/* wider drawer */
.wc-block-mini-cart__drawer .wc-block-components-drawer,
.wp-block-woocommerce-mini-cart-contents { max-width: 560px; }
.wc-block-mini-cart__drawer h2 { font-size: 1.6rem; }

/* bigger cart items */
.wc-block-mini-cart__drawer .wc-block-cart-items__row {
	grid-template-columns: 120px minmax(0, 1fr) auto !important;
	column-gap: 1.1rem;
	padding: 1.25rem 0;
}
.wc-block-mini-cart__drawer .wc-block-cart-item__image { width: 120px; }
.wc-block-mini-cart__drawer .wc-block-cart-item__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; }
.wc-block-mini-cart__drawer .wc-block-components-product-name {
	color: var(--wp--preset--color--contrast); font-size: 1.0625rem; font-weight: 600; line-height: 1.35; text-decoration: none;
}
.wc-block-mini-cart__drawer .wc-block-components-product-name:hover { color: var(--wp--preset--color--accent-dark); text-decoration: underline; }
.wc-block-mini-cart__drawer .wc-block-components-product-price,
.wc-block-mini-cart__drawer .wc-block-cart-item__total .wc-block-components-product-price { color: var(--wp--preset--color--contrast); font-size: 1.0625rem; font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-components-product-metadata,
.wc-block-mini-cart__drawer .wc-block-components-product-details { font-size: .9375rem; color: var(--wp--preset--color--muted); }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector { height: 2.75rem; border-radius: 10px; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector input { font-size: 1rem; }
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button { font-size: 1.1rem; min-width: 2.5rem; }
.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link svg { width: 1.4rem; height: 1.4rem; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__label,
.wc-block-mini-cart__drawer .wc-block-mini-cart__footer .wc-block-components-totals-item__value { font-size: 1.125rem; }

/* ---------- v0.5.17: keep the cart colours after the page finishes loading ---------- */
/* WooCommerce re-renders the mini cart with its own colours once its script runs; these win over that. */
header.wp-block-template-part .wc-block-mini-cart__button,
header.wp-block-template-part .wc-block-mini-cart__button:focus,
header.wp-block-template-part .wc-block-mini-cart__button .wc-block-mini-cart__quantity-badge { color: #fff !important; background: transparent !important; }
header.wp-block-template-part .wc-block-mini-cart__button svg,
header.wp-block-template-part .wc-block-mini-cart__button .wc-block-mini-cart__icon { color: #fff !important; fill: #fff !important; }
header.wp-block-template-part .wc-block-mini-cart__button:hover svg,
header.wp-block-template-part .wc-block-mini-cart__button:hover .wc-block-mini-cart__icon { color: var(--wp--preset--color--accent) !important; fill: var(--wp--preset--color--accent) !important; }
header.wp-block-template-part .wc-block-mini-cart__badge,
header.wp-block-template-part .wc-block-mini-cart__button .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--accent) !important;
	color: #fff !important;
	font-weight: 700;
}

/* ---------- v0.5.19: cart + checkout full width, larger order summary ---------- */
body.woocommerce-checkout main.wp-block-group,
body.woocommerce-cart main.wp-block-group { padding-left: var(--wp--preset--spacing--40); padding-right: var(--wp--preset--spacing--40); }
body.woocommerce-checkout main.wp-block-group > *,
body.woocommerce-cart main.wp-block-group > *,
body.woocommerce-checkout .wp-block-post-content,
body.woocommerce-cart .wp-block-post-content,
body.woocommerce-checkout .wp-block-post-content > *,
body.woocommerce-cart .wp-block-post-content > *,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart { max-width: 1600px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
body.woocommerce-checkout .wp-block-post-title,
body.woocommerce-cart .wp-block-post-title { text-align: left; }

/* form column and a bigger order summary */
.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-cart.wc-block-components-sidebar-layout .wc-block-components-main { width: 60% !important; padding-right: 3rem !important; }
.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wc-block-cart.wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 40% !important; padding-left: 0 !important; position: sticky; top: 110px; align-self: flex-start; }
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block {
	padding: 1.75rem; border: 1px solid var(--wp--preset--color--border); border-radius: 18px; background: var(--wp--preset--color--surface);
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__image { width: 92px; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__image img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; }
.wc-block-components-order-summary-item { gap: 1rem; padding: 1rem 0; }
.wc-block-components-order-summary .wc-block-components-product-name { color: var(--wp--preset--color--contrast); font-size: 1.0625rem; font-weight: 600; line-height: 1.35; text-decoration: none; }
.wc-block-components-order-summary .wc-block-components-product-price,
.wc-block-components-order-summary-item__total-price { font-size: 1.0625rem; font-weight: 700; color: var(--wp--preset--color--contrast); }
.wc-block-components-order-summary .wc-block-components-product-metadata,
.wc-block-components-order-summary .wc-block-components-product-details { font-size: .9375rem; color: var(--wp--preset--color--muted); }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity { min-width: 1.6rem; height: 1.6rem; font-size: .875rem; }
.wc-block-components-totals-wrapper .wc-block-components-totals-item { font-size: 1.0625rem; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 1.375rem; font-weight: 700; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-footer-item-tax-value { font-size: 1.5rem; font-weight: 700; }
.wc-block-components-order-summary__button-text,
.wc-block-components-totals-coupon__button { font-size: 1.0625rem; }
@media (max-width: 781px) {
	.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-components-main,
	.wc-block-checkout.wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 100% !important; padding-right: 0 !important; position: static; }
}

/* ---------- v0.5.20: order summary photo really is bigger ---------- */
.wc-block-components-order-summary .wc-block-components-order-summary-item { display: grid !important; grid-template-columns: 104px minmax(0, 1fr) auto !important; column-gap: 1.1rem; align-items: start; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__image,
.wc-block-components-order-summary-item__image {
	width: 104px !important; min-width: 104px !important; max-width: 104px !important; flex: 0 0 104px !important; padding: 0 !important; position: relative;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__image > img,
.wc-block-components-order-summary-item__image img {
	display: block; width: 100% !important; max-width: none !important; height: auto !important; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px;
}
.wc-block-components-order-summary-item__quantity { top: -8px; right: -8px; }

/* ---------- v0.5.21: My account in the site's design ---------- */
body.woocommerce-account .p3d-account .wp-block-post-content,
body.woocommerce-account .p3d-account .wp-block-post-content > * { max-width: 1600px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; }
.woocommerce-account .woocommerce { font-size: 1rem; }

/* logged in: menu left, content card right */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none !important; width: 100% !important; margin: 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: .6rem; border: 1px solid var(--wp--preset--color--border); border-radius: 18px; background: var(--wp--preset--color--surface); }
.woocommerce-MyAccount-navigation li { margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li a {
	display: block; padding: .8rem 1.1rem; border-radius: 12px; color: var(--wp--preset--color--contrast);
	font-weight: 500; text-decoration: none; transition: background-color .15s ease;
}
.woocommerce-MyAccount-navigation li a:hover { background: #fff; }
.woocommerce-MyAccount-navigation li.is-active a { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--wp--preset--color--muted); }
.woocommerce-MyAccount-content { padding: 2rem; border: 1px solid var(--wp--preset--color--border); border-radius: 18px; background: #fff; }
.woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.woocommerce-MyAccount-content a:not(.button):not(.woocommerce-button) { color: var(--wp--preset--color--accent-dark); }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 { font-size: 1.375rem; margin: 0 0 1rem; }

/* tables (orders, downloads) */
.woocommerce-account table.shop_table { width: 100%; border: 0; border-collapse: collapse; }
.woocommerce-account table.shop_table th { padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--border); text-align: left; font-size: .8125rem; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--muted); font-weight: 600; background: transparent; }
.woocommerce-account table.shop_table td { padding: 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--border); background: transparent; }
.woocommerce-account table.shop_table tr:last-child td { border-bottom: 0; }

/* buttons: round, like the rest of the site */
.woocommerce-account .woocommerce a.button,
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce input.button,
.woocommerce-account .woocommerce .woocommerce-button {
	display: inline-block; padding: .8rem 1.6rem; border: 0; border-radius: 999px; background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast); font-weight: 600; font-size: 1rem; line-height: 1.2; text-decoration: none; cursor: pointer;
}
.woocommerce-account .woocommerce a.button:hover,
.woocommerce-account .woocommerce button.button:hover,
.woocommerce-account .woocommerce .woocommerce-button:hover { background: var(--wp--preset--color--accent-dark); color: #fff; }

/* form fields */
.woocommerce-account form .form-row { margin: 0 0 1.1rem; padding: 0; }
.woocommerce-account form .form-row label { display: block; margin: 0 0 .4rem; font-size: .9375rem; font-weight: 600; color: var(--wp--preset--color--contrast); }
.woocommerce-account form .input-text,
.woocommerce-account form select,
.woocommerce-account form textarea {
	width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 1px solid #D3D9DD; border-radius: 12px;
	background: #fff; color: var(--wp--preset--color--contrast); font: inherit; line-height: 1.4;
}
.woocommerce-account form .input-text:focus,
.woocommerce-account form select:focus,
.woocommerce-account form textarea:focus { outline: 0; border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 3px rgba(66, 148, 184, .22); }
.woocommerce-account form em, .woocommerce-account form .description { color: var(--wp--preset--color--muted); font-size: .875rem; }
.woocommerce-account fieldset { margin: 1.5rem 0; padding: 1.25rem 1.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: 14px; }
.woocommerce-account fieldset legend { padding: 0 .5rem; font-weight: 600; }

/* addresses */
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.woocommerce-account .woocommerce-Addresses .u-column1, .woocommerce-account .woocommerce-Addresses .u-column2 { float: none; width: 100%; padding: 1.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: 14px; background: var(--wp--preset--color--surface); }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0; }

/* logged out: login and register side by side as cards */
.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) { max-width: 1100px; margin-left: auto; margin-right: auto; }
.woocommerce-account #customer_login { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 2rem; }
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 { float: none; width: 100%; padding: 2rem; border: 1px solid var(--wp--preset--color--border); border-radius: 18px; background: #fff; }
.woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register { margin: 0; padding: 0; border: 0; }
.woocommerce-account .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: .5rem; font-weight: 400; }
.woocommerce-account .lost_password { margin: 1rem 0 0; }

/* notices */
.woocommerce-account .woocommerce-message, .woocommerce-account .woocommerce-info, .woocommerce-account .woocommerce-error {
	margin: 0 0 1.5rem; padding: 1rem 1.25rem 1rem 1.5rem; border: 0; border-left: 4px solid var(--wp--preset--color--accent);
	border-radius: 12px; background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); list-style: none;
}
.woocommerce-account .woocommerce-error { border-left-color: #D64545; }
.woocommerce-account .woocommerce-message::before, .woocommerce-account .woocommerce-info::before, .woocommerce-account .woocommerce-error::before { display: none; }

@media (max-width: 900px) {
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 1fr; gap: 1.5rem; }
	.woocommerce-MyAccount-navigation ul { display: flex; gap: .25rem; overflow-x: auto; }
	.woocommerce-MyAccount-navigation li a { white-space: nowrap; }
	.woocommerce-MyAccount-content, .woocommerce-account #customer_login .u-column1, .woocommerce-account #customer_login .u-column2 { padding: 1.25rem; }
}

/* ---------- v0.5.22: My account alignment fixes ---------- */
/* title in the grey band lines up with the header */
.p3d-shop-head > .wp-block-post-title { max-width: 1600px !important; width: 100%; margin-left: auto !important; margin-right: auto !important; text-align: left; }

/* WooCommerce adds an empty notices block first: it must not take a grid cell */
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; margin: 0; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; }
.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; }

/* menu items: normal height, no underline */
.woocommerce-MyAccount-navigation ul { display: flex; flex-direction: column; gap: .2rem; }
.woocommerce-MyAccount-navigation li { margin: 0 !important; padding: 0 !important; list-style: none; }
.woocommerce-MyAccount-navigation li a { padding: .85rem 1.1rem; font-size: 1rem; line-height: 1.4; text-decoration: none !important; }
.woocommerce-MyAccount-content { font-size: 1rem; line-height: 1.6; }
.woocommerce-MyAccount-content p { margin: 0 0 1rem; }
.woocommerce-MyAccount-content a { text-underline-offset: 3px; }
@media (max-width: 900px) {
	.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { grid-column: 1; }
	.woocommerce-MyAccount-navigation ul { flex-direction: row; }
}

/* ---------- hero with image and dark overlay (home + services) ---------- */
/* outline buttons on dark sections: white outline and text */
.p3d-dark .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--base); border: 1.5px solid var(--wp--preset--color--base); }
.p3d-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }

/* hero: the section itself is padded so its content starts where the header and sections below start */
.p3d-hero.wp-block-cover {
	padding: var(--wp--preset--spacing--70) max(var(--wp--preset--spacing--40), calc((100% - 1600px) / 2 + var(--wp--preset--spacing--40))) !important;
	box-sizing: border-box;
}
.p3d-hero .wp-block-cover__inner-container { width: 100%; max-width: none !important; margin: 0 !important; padding: 0 !important; text-align: left; }
.p3d-hero .wp-block-cover__inner-container > * { max-width: none; margin-left: 0; margin-right: 0; }
.p3d-hero h1 { font-size: clamp(2.5rem, 5vw, 4.25rem); line-height: 1.05; }
.p3d-hero .wp-block-cover__inner-container > .p3d-lead { max-width: 640px; }

/* v0.5.28 - variation price shows only in the main price at the top */
.single-product .woocommerce-variation-price,.single-product .woocommerce-variation-description{display:none !important;}
.single-product .wp-block-woocommerce-product-price .price{font-size:inherit;font-weight:inherit;}

/* v0.5.29 - keep the swapped variation price the same size and weight as the main price */
.single-product .wp-block-woocommerce-product-price,.single-product .wp-block-woocommerce-product-price .wc-block-components-product-price,.single-product .wp-block-woocommerce-product-price .price,.single-product .wp-block-woocommerce-product-price .woocommerce-Price-amount,.single-product .wp-block-woocommerce-product-price bdi{font-size:var(--wp--preset--font-size--x-large) !important;font-weight:700 !important;line-height:1.2;color:inherit;}

/* v0.5.32 - login / register / lost password forms styled like the quote form */
.woocommerce-account .woocommerce-form-row, .woocommerce-account .woocommerce-form .form-row { margin: 0 0 1.1rem; padding: 0; width: 100%; float: none; }
.woocommerce-account .woocommerce-form label { display: block; margin-bottom: .35rem; font-weight: 600; font-size: 1rem; }
.woocommerce-account .woocommerce-form label.woocommerce-form__label-for-checkbox { display: inline-flex; font-weight: 400; margin: 0 0 0 1rem; }
.woocommerce-account .woocommerce-form input.input-text,
.woocommerce-account .woocommerce-form input[type="text"],
.woocommerce-account .woocommerce-form input[type="email"],
.woocommerce-account .woocommerce-form input[type="password"] {
	width: 100%; box-sizing: border-box; min-height: 2.9rem; padding: .7rem .85rem; border: 1px solid #8A949B; border-radius: 10px;
	background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); font: inherit; font-size: 1rem;
}
.woocommerce-account .woocommerce-form input:focus { border-color: var(--wp--preset--color--accent-dark); outline: 2px solid var(--wp--preset--color--accent-dark); outline-offset: 1px; }
.woocommerce-account .woocommerce-form .password-input { display: block; width: 100%; }
.woocommerce-account .woocommerce-form .show-password-input { right: .85rem; top: 50%; transform: translateY(-50%); }
.woocommerce-account .woocommerce-form .woocommerce-button, .woocommerce-account .woocommerce-form button[type="submit"] { min-height: 2.9rem; padding: .7rem 1.8rem; font-size: 1rem; font-weight: 600; cursor: pointer; }
.woocommerce-account .woocommerce-form .woocommerce-LostPassword { margin: 1rem 0 0; }
.woocommerce-account .woocommerce-form .woocommerce-LostPassword a { font-size: 1rem; }

/* v0.5.33 - stronger login form rules (WooCommerce styles were winning) */
body.woocommerce-account .woocommerce form.woocommerce-form label { display: block !important; margin: 0 0 .4rem !important; font-size: 1rem !important; font-weight: 600 !important; line-height: 1.3 !important; }
body.woocommerce-account .woocommerce form.woocommerce-form label.woocommerce-form__label-for-checkbox { display: inline-flex !important; align-items: center; gap: .5rem; font-weight: 400 !important; margin: 0 0 0 1rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .woocommerce-form-row,
body.woocommerce-account .woocommerce form.woocommerce-form .form-row { margin: 0 0 1.25rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form input.input-text,
body.woocommerce-account .woocommerce form.woocommerce-form input[type="text"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="email"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="password"] {
	min-height: 3rem !important; padding: .75rem 1rem !important; font-size: 1rem !important; border: 1px solid #8A949B !important; border-radius: 10px !important; background: #fff !important;
}
body.woocommerce-account .woocommerce form.woocommerce-form input:focus { border-color: var(--wp--preset--color--accent-dark) !important; outline: 2px solid var(--wp--preset--color--accent-dark) !important; outline-offset: 1px; }
body.woocommerce-account .woocommerce form.woocommerce-form button[type="submit"] { min-height: 3rem !important; padding: .75rem 2rem !important; font-size: 1rem !important; font-weight: 600 !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .lost_password a { font-size: 1rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .p3d-google, body.woocommerce-account .woocommerce form.woocommerce-form [class*="google"] { margin-bottom: 1.25rem; }

/* v0.5.34 - account forms: pill fields like the contact form, on a light background */
body.woocommerce-account .woocommerce form.woocommerce-form input.input-text,
body.woocommerce-account .woocommerce form.woocommerce-form input[type="text"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="email"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="password"] {
	min-height: 3.4rem !important; padding: .8rem 1.4rem !important; border: 1px solid #D5DADD !important; border-radius: 999px !important; background: var(--wp--preset--color--surface, #F4F6F7) !important; color: #232323 !important;
}
body.woocommerce-account .woocommerce form.woocommerce-form .password-input input { padding-right: 3.4rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .show-password-input { right: 1.3rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form input:focus { background: #fff !important; border-color: var(--wp--preset--color--accent) !important; outline: 2px solid var(--wp--preset--color--accent) !important; }
body.woocommerce-account .woocommerce form.woocommerce-form button[type="submit"],
body.woocommerce-account .woocommerce form.woocommerce-form .woocommerce-button {
	display: block !important; width: 100% !important; min-height: 3.4rem !important; border-radius: 999px !important; background: var(--wp--preset--color--accent) !important; color: #232323 !important; border: 0 !important; margin: .5rem 0 1rem !important;
}
body.woocommerce-account .woocommerce form.woocommerce-form label.woocommerce-form__label-for-checkbox { margin: 0 !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .woocommerce-form-login__rememberme { display: inline-flex !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .form-row:has(.woocommerce-form-login__submit) { margin-bottom: 0 !important; }

/* v0.5.35 - account forms: match the contact form's scale */
body.woocommerce-account .woocommerce form.woocommerce-form label { font-size: 1.125rem !important; margin-bottom: .5rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form input.input-text,
body.woocommerce-account .woocommerce form.woocommerce-form input[type="text"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="email"],
body.woocommerce-account .woocommerce form.woocommerce-form input[type="password"] { min-height: 3.75rem !important; font-size: 1.125rem !important; padding-left: 1.5rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form .form-row, body.woocommerce-account .woocommerce form.woocommerce-form .woocommerce-form-row { margin-bottom: 1.5rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form button[type="submit"], body.woocommerce-account .woocommerce form.woocommerce-form .woocommerce-button { min-height: 3.75rem !important; font-size: 1.125rem !important; }
body.woocommerce-account .woocommerce form.woocommerce-form label.woocommerce-form__label-for-checkbox, body.woocommerce-account .woocommerce form.woocommerce-form .lost_password a { font-size: 1.05rem !important; }
body.woocommerce-account #customer_login .u-column1, body.woocommerce-account #customer_login .u-column2 { padding: 2.5rem !important; }

/* v0.5.36 - login and register side by side: dark login card, light register card */
body.woocommerce-account #customer_login { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
@media (max-width: 800px) { body.woocommerce-account #customer_login { grid-template-columns: 1fr; } }
body.woocommerce-account #customer_login .u-column1 { background: #232323 !important; border-color: #232323 !important; color: #fff; }
body.woocommerce-account #customer_login .u-column1 h2 { color: #fff; }
body.woocommerce-account #customer_login .u-column1 form.woocommerce-form label { color: #fff; }
body.woocommerce-account #customer_login .u-column1 form.woocommerce-form input.input-text { background: #fff !important; border-color: #fff !important; }
body.woocommerce-account #customer_login .u-column1 a { color: #fff; }
body.woocommerce-account #customer_login .u-column1 [class*="divider"], body.woocommerce-account #customer_login .u-column1 [class*="or"] { color: #cfd6da; }
body.woocommerce-account #customer_login .u-column2 > h2:first-child { display: none; }
.p3d-register-intro h2 { margin: 0 0 .25rem; font-size: var(--wp--preset--font-size--x-large, 1.75rem); }
.p3d-register-sub { margin: 0 0 1rem; color: var(--wp--preset--color--accent-dark); font-weight: 600; font-size: 1.15rem; }
.p3d-checks { list-style: none; margin: 0 0 1.75rem; padding: 0; display: grid; gap: .6rem; }
.p3d-checks li { position: relative; padding-left: 1.9rem; }
.p3d-checks li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--wp--preset--color--accent); font-weight: 700; font-size: 1.15rem; }
.woocommerce-account .woocommerce-privacy-policy-text { font-size: .9rem; color: var(--wp--preset--color--muted); margin-bottom: 1rem; }

/* v0.5.37 - My account (logged out): register call-to-action left, login right; dedicated register page */
.p3d-auth { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; align-items: stretch; max-width: 1100px; margin: 0 auto; }
@media (max-width: 800px) { .p3d-auth { grid-template-columns: 1fr; } }
.p3d-auth h2 { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--x-large, 1.75rem); }
.p3d-auth__register, .p3d-card { padding: 2.5rem; border: 1px solid var(--wp--preset--color--border); border-radius: 22px; background: #fff; }
.p3d-auth__sub { margin: 0 0 1.25rem; color: var(--wp--preset--color--accent-dark); font-weight: 600; font-size: 1.2rem; }
.p3d-checks { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: .7rem; }
.p3d-checks li { position: relative; padding-left: 2rem; font-size: 1.05rem; }
.p3d-checks li::before { content: "\2713"; position: absolute; left: 0; top: -.05rem; color: var(--wp--preset--color--accent); font-weight: 700; font-size: 1.25rem; }
.p3d-auth__btn { display: block; box-sizing: border-box; width: 100%; padding: 1rem 2rem; border-radius: 999px; background: var(--wp--preset--color--accent); color: #232323 !important; font-weight: 700; font-size: 1.125rem; text-align: center; text-decoration: none !important; }
.p3d-auth__btn:hover { filter: brightness(1.08); }
.p3d-auth__login { padding: 2.5rem; border-radius: 22px; background: #232323; color: #fff; }
.p3d-auth__login h2, .p3d-auth__login label, .p3d-auth__login a { color: #fff; }
.p3d-auth form.woocommerce-form, .p3d-card form.woocommerce-form { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.p3d-auth__login input.input-text { background: #fff !important; border-color: #fff !important; }
.p3d-auth__login .lost_password { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 !important; }
.p3d-auth__login .woocommerce-form-login__submit { margin-bottom: 1rem !important; }
.p3d-register-page { max-width: 640px; margin: 0 auto; }
.p3d-card h2 { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--x-large, 1.75rem); }
.p3d-note, .p3d-register-page .woocommerce-privacy-policy-text { color: var(--wp--preset--color--muted); font-size: .95rem; margin: 0 0 1.25rem; }
.p3d-switch { margin: 1.25rem 0 0; text-align: center; }

/* v0.5.38 - login on the left, readable text on the dark card */
.p3d-auth__login { order: -1; }
body.woocommerce-account .p3d-auth__login h2,
body.woocommerce-account .p3d-auth__login form.woocommerce-form label,
body.woocommerce-account .p3d-auth__login form.woocommerce-form label span,
body.woocommerce-account .p3d-auth__login .lost_password a,
body.woocommerce-account .p3d-auth__login .woocommerce-form-login__rememberme { color: #fff !important; }
body.woocommerce-account .p3d-auth__login .required { color: #ff7b7b !important; }
body.woocommerce-account .p3d-auth__login h2 { margin-bottom: 1.25rem; }
body.woocommerce-account .p3d-auth__login form.woocommerce-form input.input-text { color: #232323 !important; }
body.woocommerce-account .p3d-auth__login form.woocommerce-form label.woocommerce-form__label-for-checkbox { margin: 0 !important; }

/* v0.5.39 - register page: dark card like the login, two-column name/password rows */
body.woocommerce-account .p3d-register-page .p3d-card, .p3d-register-page .p3d-card { background: #232323; border-color: #232323; color: #fff; }
.p3d-register-page .p3d-card h2, .p3d-register-page .p3d-card label, .p3d-register-page .p3d-card .p3d-checks li, .p3d-register-page .p3d-card .p3d-switch, .p3d-register-page .p3d-card .p3d-switch a, .p3d-register-page .p3d-card .p3d-note, .p3d-register-page .p3d-card .woocommerce-privacy-policy-text, .p3d-register-page .p3d-card .woocommerce-privacy-policy-text a { color: #fff !important; }
.p3d-register-page .p3d-card .required { color: #ff7b7b !important; }
.p3d-register-page .p3d-card .p3d-opt { font-weight: 400; color: #cfd6da; }
.p3d-register-page .p3d-card input.input-text { background: #fff !important; border-color: #fff !important; color: #232323 !important; }
.p3d-register-page .p3d-card .p3d-checks { margin-bottom: 1.5rem; }
.p3d-register-page { max-width: 760px; }
.p3d-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 600px) { .p3d-row { grid-template-columns: 1fr; } }
.p3d-row > .form-row { min-width: 0; }

/* v0.5.40 - lighter dark grey on the login and register cards */
.p3d-auth__login, body.woocommerce-account .p3d-register-page .p3d-card, .p3d-register-page .p3d-card { background: #3d4247 !important; border-color: #3d4247 !important; }

/* v0.5.41 - register button: full-width pill like the login button */
.p3d-register-page .p3d-card .form-row:has(button[type="submit"]) { margin: .5rem 0 0 !important; padding: 0 !important; width: 100%; }
.p3d-register-page .p3d-card button[type="submit"] {
	display: block !important; width: 100% !important; box-sizing: border-box; min-height: 3.75rem !important; padding: .75rem 2rem !important; border: 0 !important; border-radius: 999px !important;
	background: var(--wp--preset--color--accent) !important; color: #232323 !important; font-size: 1.125rem !important; font-weight: 700 !important; cursor: pointer;
}
.p3d-register-page .p3d-card button[type="submit"]:hover { filter: brightness(1.08); }

/* v0.5.42 - home call-to-action on a blurred image with a blue overlay; same aligned padding as the heroes */
.p3d-cta.wp-block-cover { padding: var(--wp--preset--spacing--70) max(var(--wp--preset--spacing--40), calc((100% - 1600px) / 2 + var(--wp--preset--spacing--40))) !important; box-sizing: border-box; }
.p3d-cta .wp-block-cover__inner-container { width: 100%; max-width: none !important; margin: 0 !important; padding: 0 !important; text-align: left; }
.p3d-cta h2, .p3d-cta .p3d-lead { color: #fff; }
.p3d-cta .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: #232323; }

/* v0.5.43 - CTA overlay lighter so the machine photo shows through */
.p3d-cta .wp-block-cover__background { opacity: .58 !important; }
.p3d-cta .wp-block-cover__image-background { opacity: 1; }

/* v0.5.44 - shop breadcrumb aligned with the title */
.p3d-shop-head .wp-block-woocommerce-breadcrumbs, .p3d-shop-head .woocommerce-breadcrumb { max-width: none !important; margin: 0 0 var(--wp--preset--spacing--30) !important; padding: 0; text-align: left; font-size: .95rem; letter-spacing: .01em; }
.p3d-shop-head .woocommerce-breadcrumb a { color: var(--wp--preset--color--accent-dark); font-weight: 500; }
.p3d-shop-head .woocommerce-breadcrumb { color: var(--wp--preset--color--muted); }

/* v0.5.45 - shop breadcrumb sits under the title, aligned with it, same grey style as the product page */
.p3d-shop-head .wp-block-woocommerce-breadcrumbs, .p3d-shop-head .woocommerce-breadcrumb { max-width: 1600px !important; margin: .35rem auto 0 !important; padding: 0; font-size: var(--wp--preset--font-size--small); letter-spacing: 0; }
.p3d-shop-head .woocommerce-breadcrumb, .p3d-shop-head .woocommerce-breadcrumb a { color: var(--wp--preset--color--muted); font-weight: 400; text-decoration: none; }
.p3d-shop-head .woocommerce-breadcrumb a:hover { color: var(--wp--preset--color--accent-dark); text-decoration: underline; }

/* v0.5.46 - header menu: white line on top and slightly dimmer text on hover / current page */
.p3d-header { min-height: 84px; box-sizing: border-box; }
@media (min-width: 782px) {
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content {
		position: relative; display: flex; align-items: center; min-height: 56px; padding: 0 .1rem;
		transition: color .2s ease;
	}
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content::before {
		content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 2px;
		background: #fff; transform: scaleX(0); transform-origin: center; transition: transform .22s ease;
	}
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content:hover,
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content:focus-visible,
	header.wp-block-template-part .p3d-header .current-menu-item > .wp-block-navigation-item__content { color: rgba(255, 255, 255, .62) !important; }
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content:hover::before,
	header.wp-block-template-part .p3d-header .wp-block-navigation-item__content:focus-visible::before,
	header.wp-block-template-part .p3d-header .current-menu-item > .wp-block-navigation-item__content::before { transform: scaleX(1); }
}

/* v0.5.48 - header logo 7% bigger, original proportions (height cap 44px -> 47px, width follows) */
.p3d-header .p3d-brand .wp-block-site-logo img { max-height: 47px; height: auto; width: auto; }

/* v0.5.49 - best-sellers carousel */
.p3d-carousel { position: relative; }
.p3d-carousel .wc-block-product-template, .p3d-carousel .wp-block-woocommerce-product-template {
	display: flex !important; flex-wrap: nowrap !important; gap: 1.5rem; margin: 0; padding: 0 0 .5rem; list-style: none;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth;
}
.p3d-carousel .wc-block-product-template::-webkit-scrollbar, .p3d-carousel .wp-block-woocommerce-product-template::-webkit-scrollbar { display: none; }
.p3d-carousel .wc-block-product-template > li, .p3d-carousel .wp-block-woocommerce-product-template > li { flex: 0 0 calc((100% - 4.5rem) / 4) !important; width: auto !important; max-width: none !important; scroll-snap-align: start; margin: 0 !important; }
@media (max-width: 900px) { .p3d-carousel .wc-block-product-template > li, .p3d-carousel .wp-block-woocommerce-product-template > li { flex-basis: calc((100% - 1.5rem) / 2) !important; } }
@media (max-width: 560px) { .p3d-carousel .wc-block-product-template > li, .p3d-carousel .wp-block-woocommerce-product-template > li { flex-basis: 78% !important; } }
.p3d-car-btn {
	position: absolute; z-index: 5; width: 46px; height: 46px; margin: -23px 0 0; padding: 0; border: 0; border-radius: 50%; cursor: pointer;
	background: var(--wp--preset--color--base); box-shadow: 0 2px 10px rgba(35,35,35,.22);
	transition: box-shadow .2s ease, transform .2s ease, opacity .2s ease; top: 40%;
}
.p3d-car-btn:hover { box-shadow: 0 4px 16px rgba(35,35,35,.3); transform: scale(1.06); }
.p3d-car-btn.is-hidden { opacity: 0; pointer-events: none; }
.p3d-car-prev { left: 12px; }
.p3d-car-next { right: 12px; }
.p3d-car-btn::before {
	content: ""; position: absolute; inset: 0; background: #6B747A;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M26 15l-8 8 8 8'/%3E%3C/svg%3E") center/100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M26 15l-8 8 8 8'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
.p3d-car-next::before { transform: scaleX(-1); }

/* v0.5.50 - carousel arrows in side gutters (outside the photos), always visible */
.p3d-carousel { padding-left: 72px; padding-right: 72px; box-sizing: border-box; }
.p3d-car-prev { left: 0; }
.p3d-car-next { right: 0; }
.p3d-car-btn.is-hidden { opacity: .4; pointer-events: none; box-shadow: 0 1px 5px rgba(35,35,35,.12); }
@media (max-width: 900px) { .p3d-carousel { padding-left: 56px; padding-right: 56px; } .p3d-car-btn { width: 40px; height: 40px; margin-top: -20px; } }
@media (max-width: 560px) { .p3d-carousel { padding-left: 0; padding-right: 0; } .p3d-car-btn { display: none; } }

/* v0.5.51 - centre the "View all parts" button */
.wp-block-group:has(> .p3d-carousel) > .wp-block-buttons { justify-content: center; margin-top: var(--wp--preset--spacing--40); }

/* v0.5.52 - contact page: blue accent line under the title, bigger social icons */
.p3d-title-line { position: relative; padding-bottom: .9rem; margin-bottom: 1rem; }
.p3d-title-line::after { content: ""; position: absolute; left: 0; bottom: 0; width: 5.5rem; height: 5px; border-radius: 999px; background: var(--wp--preset--color--accent); }
.p3d-info .wp-block-social-links { gap: 1.1rem; margin-top: .5rem; }
.p3d-info .wp-block-social-links .wp-social-link { font-size: 2.1rem !important; width: auto; height: auto; }
.p3d-info .wp-block-social-links .wp-social-link a { padding: .3rem; }
.p3d-info .wp-block-social-links .wp-social-link svg { width: 1em; height: 1em; }
.p3d-info .wp-block-social-links .wp-social-link:hover { color: var(--wp--preset--color--accent) !important; }

/* v0.5.53 - blue title line on the hero headings; social icons 15% bigger */
.p3d-hero h1 { position: relative; padding-bottom: 1.1rem; }
.p3d-hero h1::after { content: ""; position: absolute; left: 0; bottom: 0; width: 5.5rem; height: 5px; border-radius: 999px; background: var(--wp--preset--color--accent); }
.p3d-info .wp-block-social-links .wp-social-link { font-size: 2.42rem !important; }
.p3d-info .wp-block-social-links .wp-social-link svg { width: 2.42rem !important; height: 2.42rem !important; }
.p3d-info .wp-block-social-links { gap: 1.25rem; }

/* v0.5.54 - title lines 20% wider (5.5rem -> 6.6rem) */
.p3d-title-line::after, .p3d-hero h1::after { width: 6.6rem; }

/* v0.5.63 - service boxes 10% larger; an Image (or Cover) block added inside a box becomes a banner with a soft grey overlay */
.p3d-service-grid { gap: 1.65rem; }
.p3d-service-grid > .p3d-card {
	--p3d-pad: calc(var(--wp--preset--spacing--50) * 1.1);
	padding: var(--p3d-pad); min-height: 253px; height: auto; overflow: hidden; position: relative;
	display: flex; flex-direction: column; border-radius: 18px;
}
.p3d-service-grid > .p3d-card > * { margin-block: 0; }
.p3d-service-grid > .p3d-card > h3 { margin-bottom: .6rem; font-size: 1.65rem; }
/* An Image (or Cover) block added inside a box becomes that box's own background, under a grey overlay; the text stays on top with its normal padding. */
.p3d-service-grid > .p3d-card > .wp-block-image,
.p3d-service-grid > .p3d-card > .wp-block-cover {
	position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; padding: 0 !important; width: 100% !important; height: 100% !important;
	max-width: none !important; min-height: 0 !important; border-radius: 0 !important; float: none !important; aspect-ratio: auto !important;
}
.p3d-service-grid > .p3d-card > .wp-block-image img { position: absolute; inset: 0; display: block; width: 100%; height: 100% !important; object-fit: cover; aspect-ratio: auto; border-radius: 0; }
.p3d-service-grid > .p3d-card > .wp-block-image::after { content: ""; position: absolute; inset: 0; background: rgba(60, 66, 72, .58); pointer-events: none; }
.p3d-service-grid > .p3d-card > .wp-block-image figcaption { display: none; }
.p3d-service-grid > .p3d-card > :not(.wp-block-image):not(.wp-block-cover) { position: relative; z-index: 1; }
.p3d-service-grid > .p3d-card:has(> .wp-block-image) > h3,
.p3d-service-grid > .p3d-card:has(> .wp-block-cover) > h3 { color: #fff; }
.p3d-service-grid > .p3d-card:has(> .wp-block-image) > p,
.p3d-service-grid > .p3d-card:has(> .wp-block-cover) > p { color: rgba(255, 255, 255, .88); }
/* v0.5.65 - choose which part of a box image stays visible: add one of these as the image block's Additional CSS class */
.p3d-service-grid .p3d-pos-top img { object-position: center top; }
.p3d-service-grid .p3d-pos-bottom img { object-position: center bottom; }
.p3d-service-grid .p3d-pos-left img { object-position: left center; }
.p3d-service-grid .p3d-pos-right img { object-position: right center; }
.p3d-service-grid .p3d-pos-top-left img { object-position: left top; }
.p3d-service-grid .p3d-pos-top-right img { object-position: right top; }

/* v0.5.66 - project photos: an Image block dropped into a "Project image" box fills it */
.p3d-placeholder:has(.wp-block-image) { position: relative; overflow: hidden; border: 0; padding: 0; border-radius: 14px; }
.p3d-placeholder:has(.wp-block-image) > p { display: none; }
.p3d-placeholder .wp-block-image { position: absolute; inset: 0; margin: 0; width: 100%; height: 100%; max-width: none; }
.p3d-placeholder .wp-block-image img { display: block; width: 100%; height: 100% !important; object-fit: cover; border-radius: 0; }

/* v0.5.67 - Recent projects gallery fed by Dashboard > Latest projects */
.p3d-proj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
@media (max-width: 900px) { .p3d-proj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .p3d-proj-grid { grid-template-columns: 1fr; } }
.p3d-proj { display: block; position: relative; overflow: hidden; border-radius: 14px; aspect-ratio: 4 / 3; background: var(--wp--preset--color--surface); }
.p3d-proj img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.p3d-proj:hover img { transform: scale(1.04); }

/* v0.5.69 - project gallery: grey filler tiles up to 6; slider with side arrows beyond 6 */
.p3d-proj--empty { background: #5a6168; }
.p3d-proj-carousel .p3d-proj-track {
	display: grid; grid-template-rows: repeat(2, auto); grid-auto-flow: column; grid-auto-columns: calc((100% - 3rem) / 3); gap: 1.5rem;
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; scroll-behavior: smooth; padding-bottom: .25rem;
}
.p3d-proj-carousel .p3d-proj-track::-webkit-scrollbar { display: none; }
.p3d-proj-carousel .p3d-proj { scroll-snap-align: start; }
.p3d-proj-carousel .p3d-car-btn { top: 50%; }
@media (max-width: 900px) { .p3d-proj-carousel .p3d-proj-track { grid-auto-columns: calc((100% - 1.5rem) / 2); } }
@media (max-width: 560px) { .p3d-proj-carousel .p3d-proj-track { grid-auto-columns: 78%; } }

/* v0.5.71 - lighter grey filler tiles */
.p3d-proj--empty { background: #8f989f; }

/* v0.5.72 - project gallery is 3 x 3; the slider moves one column at a time */

/* v0.5.73 - back to 3 columns x 2 rows; lighter grey filler tiles */
.p3d-proj--empty { background: #aab2b8; }

/* v0.5.75 - checkout order summary: photo on the left, name and options get the full width, price under the name */
.wc-block-components-order-summary .wc-block-components-order-summary-item { grid-template-columns: 88px minmax(0, 1fr) !important; grid-template-rows: auto auto; column-gap: 1rem; row-gap: .15rem; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__image,
.wc-block-components-order-summary-item__image { width: 88px !important; min-width: 88px !important; max-width: 88px !important; flex: 0 0 88px !important; grid-column: 1; grid-row: 1 / span 2; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__description { grid-column: 2; grid-row: 1; min-width: 0; padding: 0 !important; width: auto !important; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__total-price { grid-column: 2; grid-row: 2; text-align: left; margin: 0 !important; min-width: 0; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__individual-prices,
.wc-block-components-order-summary .wc-block-components-order-summary-item__description .wc-block-components-product-price { display: none !important; }
.wc-block-components-order-summary .wc-block-components-product-name { display: block; overflow-wrap: anywhere; word-break: normal; font-size: 1rem; line-height: 1.35; margin: 0 0 .25rem; }
.wc-block-components-order-summary .wc-block-components-product-details { margin: 0; }

/* v0.5.76 - product page: remove the empty gap between the variation selector and Quantity */
.single-product .single_variation_wrap { gap: 0 !important; }
.single-product .woocommerce-variation { display: none !important; }
.single-product .woocommerce-variation:has(.stock),
.single-product .woocommerce-variation:has(.woocommerce-variation-availability p) { display: block !important; margin: 0 0 .9rem !important; }
.single-product .woocommerce-variation-availability:empty { display: none !important; }
.single-product form.variations_form table.variations { margin-bottom: 0 !important; }
.single-product form.variations_form table.variations tr:last-child { margin-bottom: 0 !important; }
.single-product form.variations_form table.variations td,
.single-product form.variations_form table.variations th { padding-bottom: 0 !important; }
.single-product .woocommerce-variation-add-to-cart { margin-top: .9rem !important; }
