/*
Theme Name: Printstores Cards
Theme URI: https://www.cmsmart.net/
Author: Cmsmart
Author URI: https://www.cmsmart.net/
Description: Child theme of Cmsmart Stores for the Print Cards online print shop. Reproduces the original solution1 demo: top bar, header over the hero slider, home sections, footer and inner pages.
Template: cmsmart-stores
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.0
Version: 0.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: printstores-cards
Tags: e-commerce, block-patterns, custom-colors, custom-logo, custom-menu, editor-style, translation-ready
*/

/* Print Cards storefront. Tokens live in theme.json; this file only holds what theme.json cannot express. */

/* ---------- shared bits ---------- */
:root {
	--ps-blue: #25bce9;
	--ps-icon-thumbs-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 10h4v12H2zM8 10l4-8c1.7 0 3 1.3 3 3v4h5.5a2 2 0 0 1 2 2.4l-1.5 8A2 2 0 0 1 19 22H8z'/%3E%3C/svg%3E");
	--ps-icon-paper-plane: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 11 22 2l-4 20-6-5-4 4v-6l9-9-11 7z'/%3E%3C/svg%3E");
	--ps-icon-leaf: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 3C9 3 3 9 3 16c0 1.4.3 2.7.8 3.5L2 21.3 3.2 22.5l1.8-1.8c.8.5 2 .8 3 .8 7 0 13-6 13-18.5z'/%3E%3C/svg%3E");
	--ps-icon-money: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 6h20v12H2zm10 2.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7z' fill-rule='evenodd'/%3E%3C/svg%3E");
	--ps-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.250.2 2.450.57 3.570a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E");
}

.ps-headline {
	text-transform: uppercase;
	font-size: 16px;
	font-weight: 500;
	margin: 0 0 14px;
}

.ps-headline-grey {
	color: var(--wp--preset--color--headline);
	text-transform: uppercase;
	font-size: 18px;
	font-weight: 500;
}

.ps-subheadline {
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	font-weight: 400;
}

/* short grey line with a blue dot in the middle */
.ps-divider.wp-block-separator {
	position: relative;
	width: 25%;
	max-width: 285px;
	height: 1px;
	margin: 0 auto 40px;
	border: 0;
	background: #d6d6d6;
	overflow: visible;
}

.ps-divider.wp-block-separator::after {
	content: "";
	position: absolute;
	left: 50%;
	top: -4px;
	width: 9px;
	height: 9px;
	margin-left: -4px;
	border-radius: 50%;
	background: var(--ps-blue);
}

.ps-section {
	padding-top: 60px;
	padding-bottom: 60px;
	margin-block: 0;
}

.ps-section > .wp-block-group,
.wp-site-blocks main.wp-block-group > * {
	margin-block-start: 0;
}

/* outlined "READ MORE" / "ORDER NOW" buttons (wire theme) */
.ps-button-outline .wp-block-button__link {
	background: transparent;
	color: #0b6783; /* AA (5:1) on the grey #e6e7e8 band as well as on white */
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 0.25em;
	padding: 8px 18px;
	font-size: 12px;
}

.ps-button-outline .wp-block-button__link:hover,
.ps-button-outline .wp-block-button__link:focus {
	background: var(--wp--preset--color--primary-dark);
	border-color: var(--wp--preset--color--primary-dark);
	color: #fff;
}

/* ---------- header ---------- */
header.wp-block-template-part {
	position: relative;
	z-index: 20;
}

.ps-topbar {
	padding: 12px 0;
	font-size: 14px;
}

.ps-topbar > .wp-block-group,
.ps-header > .wp-block-group {
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 0;
	padding-right: 0;
}

.ps-topbar .wc-block-customer-account a {
	color: #fff;
}

.ps-topbar .wp-block-social-links {
	gap: 22px;
}

.ps-topbar .wp-block-social-links .wp-social-link a {
	padding: 0;
}

.ps-topbar__phone {
	margin: 0;
}

.ps-topbar__phone::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: 4px;
	background: currentColor;
	-webkit-mask: var(--ps-icon-phone) center / contain no-repeat;
	mask: var(--ps-icon-phone) center / contain no-repeat;
}

.ps-header {
	padding: 0;
	min-height: 96px;
	display: flex;
	align-items: center;
}

.ps-header > .wp-block-group {
	width: 100%;
	flex-wrap: nowrap;
}

.ps-header .wp-block-site-logo img {
	display: block;
	height: auto;
}

.ps-main-nav {
	flex: 1 1 auto;
	justify-content: center;
}

.ps-main-nav .wp-block-navigation__container {
	gap: 40px;
}

.ps-main-nav .wp-block-navigation-item__content {
	text-transform: uppercase;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
}

.ps-main-nav .wp-block-navigation__submenu-container {
	background: #fff;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	min-width: 220px;
}

.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	text-transform: none;
	padding: 8px 16px;
	color: var(--wp--preset--color--contrast);
}

.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--primary);
}

/* Shopping: the old mega grid. A top-level submenu whose children have children of their own lists them in two columns,
   with the grandchildren always shown under their column heading (they open and close with the panel). */
@media (min-width: 600px) {
	.ps-main-nav .wp-block-navigation__container > .wp-block-navigation-submenu:has(.wp-block-navigation-submenu) > .wp-block-navigation__submenu-container {
		display: grid;
		grid-template-columns: repeat(2, minmax(200px, 1fr));
		align-items: start;
		min-width: 460px;
		padding: 12px 8px;
	}

	.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
		position: static;
		visibility: inherit;
		opacity: 1;
		height: auto;
		width: auto;
		min-width: 0;
		overflow: visible;
		border: 0;
		padding: 0;
		background: transparent;
	}

	.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > .wp-block-navigation-item__content {
		font-weight: 700;
		text-transform: uppercase;
		font-size: 13px;
	}

	.ps-main-nav .wp-block-navigation__submenu-container .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
		display: none;
	}
}

.ps-header__tools {
	gap: 18px;
	flex-wrap: nowrap;
}

.ps-header__tools .wc-block-mini-cart__button,
.ps-header__tools .wp-block-search__button {
	color: inherit;
}

/* home: header floats over the hero with a translucent dark band */
body.home .ps-header {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: rgba(14, 40, 60, 0.35) !important;
	color: #fff;
	z-index: 20;
}

body.home .ps-header,
body.home .ps-header a,
body.home .ps-header .wc-block-mini-cart__button,
body.home .ps-header .wp-block-search__button,
body.home .ps-header .wp-block-navigation {
	color: #fff;
}

body.home .ps-header .wp-block-navigation__responsive-container-open svg {
	fill: #fff;
}

/* ---------- hero ---------- */
.ps-hero .cmsmart-slide__content {
	max-width: 1140px;
	padding-left: 0;
	padding-right: 0;
	text-align: left;
}

.ps-hero .cmsmart-slide__heading {
	font-size: clamp(2.5rem, 5vw, 4.4rem);
	font-weight: 700;
	text-transform: uppercase;
	line-height: 1.1;
	color: #fff;
}

.ps-hero .cmsmart-slide__heading::first-line {
	font-size: clamp(1.25rem, 2.2vw, 1.95rem);
	font-weight: 300;
}

.ps-hero .cmsmart-slide__text {
	display: inline-block;
	margin: 0 40px 0 0;
	font-size: clamp(1.1rem, 2.6vw, 2.4rem);
	font-weight: 300;
	color: #fff;
}

.ps-hero .cmsmart-slide__text strong {
	font-weight: 700;
}

.ps-hero .cmsmart-slide__button {
	vertical-align: middle;
	padding: 8px 30px;
	background: var(--wp--preset--color--primary-dark);
	color: #fff;
	font-size: 14px;
	text-transform: uppercase;
	border-radius: 0;
}

@media (max-width: 781px) {
	.ps-hero .cmsmart-slide__content {
		padding: 0 20px;
	}

	.ps-hero .cmsmart-slide__text {
		margin-right: 16px;
	}
}

/* ---------- home sections ---------- */
.ps-features {
	padding: 60px 0;
}

.ps-feature p:not(.ps-icon) {
	font-size: 12px;
	line-height: 1.7;
}

.ps-icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background-color: var(--ps-blue);
	position: relative;
}

.ps-icon::after {
	content: "";
	position: absolute;
	inset: 22px;
	background: #fff;
	-webkit-mask: var(--ps-icon) center / contain no-repeat;
	mask: var(--ps-icon) center / contain no-repeat;
}

.ps-icon--thumbs-up { --ps-icon: var(--ps-icon-thumbs-up); }
.ps-icon--paper-plane { --ps-icon: var(--ps-icon-paper-plane); }
.ps-icon--leaf { --ps-icon: var(--ps-icon-leaf); }
.ps-icon--money { --ps-icon: var(--ps-icon-money); }

.ps-promotions {
	padding-bottom: 30px;
}

.ps-templates {
	padding-top: 30px;
}

.ps-products .wp-block-woocommerce-product-template {
	gap: 30px;
}

.ps-products .wc-block-components-product-price,
.ps-products .wp-block-woocommerce-product-price {
	color: var(--wp--preset--color--primary-dark);
}

.ps-products .wc-block-components-product-image img {
	width: 100%;
	height: auto;
}

.ps-products .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--accent-orange);
	color: var(--wp--preset--color--contrast);
	border-radius: 50%;
	min-width: 46px;
	min-height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 700;
	padding: 0;
}

.ps-tabs {
	gap: 4px;
	margin-bottom: 30px;
}

.ps-tab .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	padding: 6px 12px;
	font-size: 11px;
	font-weight: 500;
}

.ps-tab.is-active .wp-block-button__link,
.ps-tab .wp-block-button__link:hover,
.ps-tab .wp-block-button__link:focus {
	background: var(--wp--preset--color--primary-dark);
	border-color: var(--wp--preset--color--primary-dark);
	color: #fff;
}

/* parallax photo bands */
.ps-blog,
.ps-capabilities,
.ps-testimonial {
	padding: 60px 20px;
}

.ps-blog .wp-block-cover__inner-container,
.ps-capabilities .wp-block-cover__inner-container,
.ps-testimonial .wp-block-cover__inner-container {
	max-width: 1140px;
	width: 100%;
}

.ps-post-card {
	padding: 16px;
	min-height: 140px;
}

.ps-post-card a:not(.ps-readmore) {
	color: #fff;
}

.ps-howto {
	padding-bottom: 60px;
}

.ps-step {
	margin-bottom: 24px;
}

.ps-step h4 {
	margin: 0 0 6px;
}

.ps-step p {
	margin: 0;
}

.ps-capabilities .ps-headline,
.ps-blog .ps-headline {
	color: #fff;
}

.ps-ring {
	position: relative;
	width: 120px;
	height: 120px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: conic-gradient(var(--ps-ring) calc(var(--ps-pct) * 1%), rgba(255, 255, 255, 0.55) 0);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ps-ring::before {
	content: "";
	position: absolute;
	inset: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--tertiary);
}

.ps-ring span {
	position: relative;
	font-size: 20px;
	font-weight: 700;
	color: var(--wp--preset--color--headline);
}

.ps-capabilities h4 {
	font-size: 14px;
	text-transform: uppercase;
	color: #fff;
}

.ps-capabilities p {
	font-size: 12px;
}

.ps-service__title {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	margin-top: 10px;
}

.ps-service p {
	font-size: 12px;
}

.ps-service img {
	width: 100%;
	height: auto;
	display: block;
}

.ps-works {
	padding-top: 90px;
	padding-bottom: 30px;
}

.ps-works__grid .wp-block-post-template {
	gap: 0;
}

.ps-works__grid img {
	display: block;
	width: 100%;
	height: auto;
}

.ps-testimonial .wp-block-quote {
	border: 0;
	padding: 0;
	text-align: center;
	background: #f0f0f0;
	padding: 24px;
	margin: 20px 0 0;
}

.ps-testimonial cite {
	display: block;
	margin-top: 12px;
	font-style: normal;
	font-weight: 700;
	color: #0b6783; /* 4.5:1 on the #f0f0f0 box (primary-dark is 3.97:1) */
}

.ps-brands {
	padding: 30px 0 60px;
}

.ps-brand {
	border: 1px solid var(--wp--preset--color--border);
	padding: 16px;
	width: 170px;
	display: flex;
	align-items: center;
	justify-content: center;
	filter: grayscale(1);
}

.ps-brand img {
	max-width: 100%;
	height: auto;
}

/* ---------- inner pages ---------- */
.ps-page-title {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ps-page-title h1,
.ps-page-title .wp-block-post-title {
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.ps-page-title .wc-block-breadcrumbs,
.ps-page-title .woocommerce-breadcrumb {
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

/* ---------- footer ---------- */
.ps-footer {
	padding: 60px 0 30px;
}

.ps-footer .ps-footer__columns {
	max-width: 1140px;
	margin: 0 auto;
	gap: 30px;
}

.ps-footer__title {
	position: relative;
	margin: 0 0 24px;
	padding-bottom: 10px;
	border-bottom: 1px solid #333;
	color: var(--ps-blue);
	font-size: 14px;
	font-weight: 400;
	text-transform: uppercase;
}

.ps-footer__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -1px;
	width: 28px;
	height: 1px;
	background: var(--ps-blue);
}

.ps-footer p,
.ps-footer li {
	font-size: 12px;
	line-height: 1.9;
}

.ps-footer a {
	text-decoration: none;
}

.ps-footer a:hover,
.ps-footer a:focus {
	color: #fff;
	text-decoration: underline;
}

.ps-footer__contact {
	list-style: none;
	margin: 12px 0;
	padding: 0;
}

.ps-footer__social {
	gap: 8px;
}

.ps-footer__nav .wp-block-navigation__container {
	gap: 0;
	align-items: flex-start;
}

.ps-footer__nav .wp-block-navigation-item__content {
	font-size: 12px;
	line-height: 2;
	padding: 0;
}

.ps-footer__newsletter .wp-block-search__input {
	font-size: 12px;
	padding: 6px 8px;
	border: 0;
	background: #fff;
}

.ps-footer__newsletter .wp-block-search__button {
	background: var(--wp--preset--color--primary-dark);
	color: #fff;
	border: 0;
	font-size: 12px;
	margin: 0;
}

.ps-footer__bottom {
	background: #111 !important;
	padding: 20px 0;
	font-size: 12px;
}

.ps-footer__bottom p {
	max-width: 1140px;
	margin: 0 auto;
	font-size: 12px;
}

.ps-footer__bottom a {
	color: #fff;
}

/* ---------- page title bar, blog, contact ---------- */
.ps-page-title {
	padding-top: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.ps-page-title__text {
	gap: 0;
}

.ps-page-title__site::before {
	content: " - ";
	white-space: pre;
}

.ps-page-title .wp-block-post-title,
.ps-page-title__site {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	text-transform: none;
	color: var(--wp--preset--color--muted);
}

.ps-blog-banner {
	margin-top: 0;
}

.ps-blog-banner h1 {
	font-size: 22px;
	font-weight: 400;
	text-transform: uppercase;
	color: #fff;
}

.ps-post-meta {
	gap: 20px;
	color: var(--wp--preset--color--muted);
	font-size: 14px;
}

.ps-post-meta a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.ps-widget-box {
	border: 2px solid var(--ps-blue);
	padding: 30px 20px;
	margin-bottom: 40px;
}

.ps-widget-title {
	font-size: 18px;
	font-weight: 400;
	text-transform: uppercase;
	margin: 0 0 20px;
}

.ps-categories {
	list-style: none;
	padding: 0;
	margin: 0;
}

.ps-categories li {
	display: flex;
	justify-content: space-between;
	padding: 18px 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-transform: uppercase;
	font-size: 14px;
}

.ps-categories a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.ps-cf {
	display: grid;
	grid-template-columns: 2fr 1.3fr;
	gap: 30px;
}

.ps-cf p {
	margin: 0;
}

.ps-cf__side > p,
.ps-cf__side > .wpcf7-form-control-wrap {
	margin: 0 0 16px;
	display: block;
}

.ps-contact .wpcf7-form input[type="text"],
.ps-contact .wpcf7-form input[type="email"],
.ps-contact .wpcf7-form textarea {
	width: 100%;
	border: 1px solid #ddd;
	padding: 10px;
	font: inherit;
	box-sizing: border-box;
	margin-bottom: 16px;
}

.ps-contact .wpcf7-form textarea {
	min-height: 215px;
	margin: 0;
}

@media (max-width: 781px) {
	.ps-cf {
		grid-template-columns: 1fr;
	}
}

.ps-contact .wpcf7-submit {
	width: 100%;
}

.ps-contact__address,
.ps-contact__phone,
.ps-contact__fax,
.ps-contact__web {
	position: relative;
	padding-left: 30px;
	font-size: 12px;
	line-height: 2.2;
}

.ps-contact__address::before,
.ps-contact__phone::before,
.ps-contact__fax::before,
.ps-contact__web::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.8em;
	width: 14px;
	height: 14px;
	background: var(--wp--preset--color--contrast);
	-webkit-mask: var(--ps-fi) center / contain no-repeat;
	mask: var(--ps-fi) center / contain no-repeat;
}

.ps-contact__address { --ps-fi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 12h3v9h5v-6h4v6h5v-9h3z'/%3E%3C/svg%3E"); }
.ps-contact__phone { --ps-fi: var(--ps-icon-phone); }
.ps-contact__fax { --ps-fi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3h10l4 4v3h2v10H3V10h2zm2 2v5h10V8h-3V5z' fill-rule='evenodd'/%3E%3C/svg%3E"); }
.ps-contact__web { --ps-fi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1 2.1V8H8.2A8 8 0 0 1 11 4.100zM4.300 13H8c.1 1.200.3 2.300.7 3.300A8 8 0 0 1 4.300 13z'/%3E%3C/svg%3E"); }

.ps-contact .wpcf7-submit {
	background: var(--wp--preset--color--accent-orange);
	color: var(--wp--preset--color--contrast);
	border: 0;
	padding: 10px 24px;
	font-weight: 600;
	text-transform: uppercase;
	cursor: pointer;
}

/* ---------- fixes after first comparison ---------- */
header.wp-block-template-part > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

.ps-topbar {
	padding: 0;
	min-height: 50px;
	display: flex;
	align-items: center;
}

.ps-topbar > .wp-block-group {
	width: 100%;
}

.ps-topbar .wc-block-customer-account svg,
.ps-topbar .wc-block-customer-account a {
	color: #fff;
	fill: #fff;
}

.ps-topbar .wp-block-social-links .wp-social-link {
	background: transparent;
}

.ps-header .wp-block-search__button {
	background: transparent;
	border: 0;
	padding: 4px;
}

.ps-header .wc-block-mini-cart__button {
	padding: 4px;
}

.ps-hero .cmsmart-slide__content {
	margin-left: auto;
	margin-right: auto;
}

body.home .ps-header .wp-block-navigation__container > li > .wp-block-navigation-item__content,
body.home .ps-header .wp-block-navigation .has-header-text-color,
body.home .ps-header.has-header-text-color {
	color: #fff !important;
}

/* ---------- second pass ---------- */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.ps-divider.wp-block-separator {
	margin-top: 20px;
}

.ps-products .wc-block-product-template__responsive {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px;
}

@media (max-width: 781px) {
	.ps-products .wc-block-product-template__responsive {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
}

.ps-products .wp-block-woocommerce-product-image,
.ps-products .wc-block-components-product-image {
	margin-bottom: 12px;
}

.ps-step h4 {
	text-transform: none;
	font-size: 14px;
}

.ps-testimonial .wp-block-quote,
.ps-testimonial .wp-block-quote p {
	color: var(--wp--preset--color--contrast);
}

.ps-brands__row {
	flex-wrap: nowrap;
	gap: 0;
}

.ps-brand {
	flex: 1 1 0;
	width: auto;
	margin: 0 5px;
}

@media (max-width: 781px) {
	.ps-brands__row {
		flex-wrap: wrap;
	}

	.ps-brand {
		flex: 0 0 calc(50% - 10px);
	}
}

.ps-footer__contact li {
	position: relative;
	padding-left: 22px;
}

.ps-footer__contact li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 12px;
	height: 12px;
	background: currentColor;
	-webkit-mask: var(--ps-fi) center / contain no-repeat;
	mask: var(--ps-fi) center / contain no-repeat;
}

.ps-footer__address { --ps-fi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 12h3v9h5v-6h4v6h5v-9h3z'/%3E%3C/svg%3E"); }
.ps-footer__phone { --ps-fi: var(--ps-icon-phone); }
.ps-footer__mail { --ps-fi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 5h20v14H2zm2 2v.5l8 5.5 8-5.5V7zm16 3-8 5.500L4 10v7h16z' fill-rule='evenodd'/%3E%3C/svg%3E"); }

.ps-footer .wp-block-navigation + .ps-footer__title {
	margin-top: 30px;
}

.ps-footer__social .wp-social-link {
	border-radius: 50%;
}

/* ---------- third pass ---------- */
.ps-feature p:not(.ps-icon) {
	font-size: 14px;
	line-height: 1.7;
}

.ps-icon {
	width: 90px;
	height: 90px;
}

.ps-icon::after {
	inset: 26px;
}

.ps-feature-grid {
	gap: 30px;
	margin-bottom: 30px;
}

.ps-products--feature {
	background: #eeeeea;
	padding: 60px 20px 30px;
	text-align: center;
	height: 100%;
}

.ps-products--feature .wc-block-components-product-image img {
	max-width: 80%;
	margin: 0 auto;
}

.ps-products--feature .wp-block-post-title {
	font-size: 24px;
	font-weight: 400;
}

.ps-products--feature .wc-block-components-product-price,
.ps-products--feature .wp-block-woocommerce-product-price {
	font-size: 24px;
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
}

.ps-products--feature .wp-block-woocommerce-product-button .wp-block-button__link {
	font-size: 12px;
	padding: 6px 14px;
}

.ps-feature-grid .wp-block-column:last-child .ps-products .wc-block-product-template__responsive {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ps-feature-grid .ps-products--feature .wc-block-product-template__responsive {
	grid-template-columns: 1fr;
}

.ps-works__grid .wp-block-post-template {
	gap: 10px;
}

.ps-works__grid .wp-block-post-featured-image {
	margin: 0;
}

.ps-services {
	padding-top: 70px;
}

.ps-capabilities {
	padding: 90px 20px;
}

/* ---------- shop ---------- */
.ps-breadcrumbs {
	gap: 6px;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}

.ps-breadcrumbs p,
.ps-breadcrumbs .woocommerce-breadcrumb,
.ps-breadcrumbs a {
	margin: 0;
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.ps-shop-columns {
	gap: 40px;
}

.ps-mini-product {
	gap: 14px;
	margin-bottom: 18px;
}

.ps-mini-product img {
	border: 1px solid var(--wp--preset--color--border);
}

.ps-mini-product .wp-block-post-title {
	margin: 0 0 4px;
	font-weight: 700;
}

.ps-brands__row--grid {
	gap: 8px;
	margin: 30px 0;
}

.ps-brands__row--grid .ps-brand {
	flex: 0 0 calc(50% - 4px);
	margin: 0;
	padding: 8px;
}

.ps-shop-toolbar {
	margin-bottom: 20px;
}

.ps-shop-toolbar .woocommerce-result-count {
	font-weight: 700;
	color: var(--wp--preset--color--muted);
}

.ps-products--shop .wp-block-woocommerce-product-button {
	margin-bottom: 0;
}

@media (hover: hover) {
	.ps-products--shop .ps-hover-action {
		opacity: 0;
		transition: opacity 0.2s;
	}

	.ps-products--shop li:hover .ps-hover-action,
	.ps-products--shop li:focus-within .ps-hover-action {
		opacity: 1;
	}
}

.ps-products--shop .wc-block-product-template__responsive {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 781px) {
	.ps-products--shop .wc-block-product-template__responsive {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ps-brands__row.ps-brands__row--grid {
	flex-wrap: wrap;
}

.ps-brands__row--grid .ps-brand {
	width: calc(50% - 4px);
	max-width: calc(50% - 4px);
}

.ps-main .wp-block-query .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* per-slide heading sizes (old layers: 70px / 45px / 90px) */
.ps-hero .swiper-slide[data-swiper-slide-index="1"] .cmsmart-slide__heading,
.ps-hero .swiper-slide:nth-child(2) .cmsmart-slide__heading {
	font-size: clamp(1.75rem, 3.1vw, 2.8rem);
}

.ps-hero .swiper-slide[data-swiper-slide-index="1"] .cmsmart-slide__heading::first-line,
.ps-hero .swiper-slide:nth-child(2) .cmsmart-slide__heading::first-line {
	font-size: clamp(1.1rem, 2.1vw, 1.9rem);
}

.ps-cart-link {
	margin: 0;
}

.ps-cart-link a {
	display: block;
	width: 24px;
	height: 24px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 18a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM1 2v2h2l3.600 7.600L5.200 14c-.1.300-.2.600-.2 1 0 1.100.9 2 2 2h12v-2H7.400a.250.250 0 0 1-.2-.4l.9-1.600h7.500c.8 0 1.400-.4 1.700-1l3.600-6.500A1 1 0 0 0 20 4H5.200l-.9-2z'/%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 24 24'%3E%3Cpath d='M7 18a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm10 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zM1 2v2h2l3.600 7.600L5.200 14c-.1.300-.2.600-.2 1 0 1.100.9 2 2 2h12v-2H7.400a.250.250 0 0 1-.2-.4l.9-1.600h7.500c.8 0 1.400-.4 1.700-1l3.600-6.500A1 1 0 0 0 20 4H5.200l-.9-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- product ---------- */
.ps-page-title__plain {
	margin: 0;
	font-size: 16px;
	color: var(--wp--preset--color--muted);
}

.ps-product-top {
	gap: 30px;
}

.ps-product-top .wp-block-post-title {
	font-weight: 500;
}

.ps-product-top .wp-block-woocommerce-product-price {
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

.ps-main .wc-block-components-product-sale-badge {
	background: var(--wp--preset--color--accent-orange);
	color: var(--wp--preset--color--contrast);
}

/* ---------- p7b: carousels, product tabs, mega panel ---------- */
.wp-block-cmsmart-carousel {
	--cmsmart-carousel-accent: var(--wp--preset--color--primary);
	--cmsmart-carousel-arrow-bg: #8a8a8a;
	--cmsmart-carousel-arrow-size: 26px;
	--cmsmart-carousel-arrow-radius: 0;
}

.ps-carousel--posts,
.ps-carousel--testimonials {
	--cmsmart-carousel-accent: #fff;
}

.ps-carousel--posts .cmsmart-carousel__dots,
.ps-carousel--testimonials .cmsmart-carousel__dots {
	color: #fff;
}

.ps-carousel--posts .cmsmart-carousel__prev,
.ps-carousel--posts .cmsmart-carousel__next {
	top: 50%;
}

.ps-carousel--brands {
	margin-top: 0;
}

.ps-carousel--brands .swiper-slide.ps-brand {
	flex: 0 0 auto;
	margin-left: 0;
	width: auto;
}

.ps-carousel--brands .cmsmart-carousel__toggle {
	color: var(--wp--preset--color--muted);
}

/* promotions: same card look as the other product grids */
.ps-carousel .wp-block-woocommerce-product-template {
	margin: 0;
	padding: 0;
}

/* recent blog posts: white and blue cards alternate, the blue ones sit above their image */
.ps-carousel--posts .wp-block-post {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.ps-carousel--posts .wp-block-post-featured-image {
	margin: 0;
}

.ps-carousel--posts .ps-post-card {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 20px 16px 24px;
	background: #fff;
	color: var(--wp--preset--color--contrast);
}

.ps-carousel--posts .ps-post-card .wp-block-post-title {
	font-size: 14px;
	font-weight: 500;
	text-transform: none;
}

.ps-carousel--posts .ps-post-card a:not(.ps-readmore) {
	color: inherit;
	text-decoration: none;
}

.ps-carousel--posts .ps-post-card .wp-block-post-excerpt {
	flex: 1 1 auto;
}

.ps-carousel--posts .ps-post-card .wp-block-post-excerpt__excerpt {
	margin-top: 0;
}

.ps-carousel--posts .swiper-slide:nth-child(even) .wp-block-post-featured-image {
	order: 2;
}

.ps-carousel--posts .swiper-slide:nth-child(even) .ps-post-card {
	order: 1;
	background: var(--wp--preset--color--primary-dark);
	color: #fff;
}

.wp-block-read-more.ps-readmore {
	display: block;
	box-sizing: border-box;
	width: 100%;
	align-self: stretch;
	margin: 0;
	padding: 9px 12px;
	font-size: 12px;
	text-align: center;
	text-decoration: none;
	color: var(--wp--preset--color--primary-dark);
	background: transparent;
	border: 1px solid var(--wp--preset--color--primary-dark);
}

.wp-block-read-more.ps-readmore:hover,
.wp-block-read-more.ps-readmore:focus-visible {
	background: var(--wp--preset--color--primary-dark);
	color: #fff;
}

.ps-carousel--posts .swiper-slide:nth-child(even) .wp-block-read-more.ps-readmore {
	color: #fff;
	border-color: #fff;
}

.ps-carousel--posts .swiper-slide:nth-child(even) .wp-block-read-more.ps-readmore:hover,
.ps-carousel--posts .swiper-slide:nth-child(even) .wp-block-read-more.ps-readmore:focus-visible {
	background: #fff;
	color: var(--wp--preset--color--primary-dark);
}

/* testimonials slider */
.ps-testimonial__item {
	padding-bottom: 4px;
}

/* NEW PRINT TEMPLATE tabs: same look as the old tab bar */
.ps-product-tabs {
	--cmsmart-ptabs-accent: var(--wp--preset--color--primary-dark);
}

.ps-product-tabs .cmsmart-ptabs__tab {
	color: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--border);
	font-size: 11px;
	font-weight: 500;
}

.ps-product-tabs .cmsmart-ptabs__tab:hover,
.ps-product-tabs .cmsmart-ptabs__tab.is-active {
	color: #fff;
}

.ps-product-tabs .cmsmart-ptabs__title {
	font-size: 14px;
	font-weight: 400;
}

.ps-product-tabs .is-feature .cmsmart-ptabs__item:first-child .cmsmart-ptabs__title {
	font-size: 24px;
}

.ps-product-tabs .is-feature .cmsmart-ptabs__item:first-child .cmsmart-ptabs__price {
	font-size: 24px;
	color: var(--wp--preset--color--contrast);
}

.ps-product-tabs .cmsmart-ptabs__badge {
	background: var(--wp--preset--color--accent-orange);
}

.ps-product-tabs .cmsmart-ptabs__item {
	margin-bottom: 20px;
}

/* main menu: About mega panel (text + banner) */
.ps-header .has-cmsmart-mega > .wp-block-navigation__submenu-container {
	background: #fff;
	color: var(--wp--preset--color--contrast);
	border: 0;
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.ps-header .cmsmart-mega-menu h4 {
	text-transform: uppercase;
	font-size: 14px;
	color: var(--wp--preset--color--contrast);
}

.ps-header .cmsmart-mega-menu p {
	font-size: 14px;
	line-height: 1.7;
	color: var(--wp--preset--color--contrast);
}

.ps-banner {
	margin: 24px 0;
}

.ps-banner img {
	display: block;
	width: 100%;
	height: auto;
}

/* product gallery: large image, thumbnail strip below */
.ps-product-top .wc-block-product-gallery {
	gap: 10px;
}

.ps-product-top .wc-block-product-gallery-thumbnails {
	gap: 8px;
}

/* the mega panel is as wide as it needs to be, aligned to the right edge of the header row */
@media (min-width: 600px) {
	.ps-header {
		position: relative;
	}

	.ps-header .wp-block-group,
	.ps-header .wp-block-navigation,
	.ps-header .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
	.ps-header .wp-block-navigation__responsive-dialog,
	.ps-header .wp-block-navigation__responsive-container-content,
	.ps-header .wp-block-navigation__container,
	.ps-header .has-cmsmart-mega {
		position: static;
	}

	.ps-header .wp-block-navigation .has-cmsmart-mega > .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container {
		left: auto;
		right: max(0px, calc((100% - 1140px) / 2));
		top: 100%;
	}
}

.ps-header .cmsmart-mega-menu p {
	margin: 0 0 12px;
}

/* ---------- p8b: performance and contrast ---------- */
/* WooCommerce dims the inactive product tabs with opacity .65 (3.69:1); a solid grey keeps the look and passes 4.5:1. */
html body .wp-block-woocommerce-product-details.is-style-minimal ul.tabs.wc-tabs li:not(.active, :hover, :focus-within) {
	opacity: 1;
	color: #666;
}

/* Sections below the first screen are laid out and painted only when they come near the viewport
   (cuts the initial style/layout work of the long home page); the browser remembers the real height once rendered. */
.ps-section {
	content-visibility: auto;
	contain-intrinsic-size: auto 700px;
}
