/*
 * ZPM Template: maps the --zpm-* design tokens of Zisima Project Manager on the
 * theme palette when "Use the colors of ZPM Template" is ticked in ZPM > Settings >
 * Appearance (body class zpm-follow-theme). Fonts, shapes and layouts stay the
 * plugin's own. Unlayered, so it wins over the plugin token layer.
 * Kept out of theme.json so that style variations and custom CSS never remove it.
 */
body.zpm-follow-theme{
	--zpm-color-bg:var(--wp--preset--color--base);
	--zpm-color-surface:var(--wp--preset--color--surface);
	--zpm-color-surface-2:var(--wp--preset--color--surface-2);
	--zpm-color-border:var(--wp--preset--color--border);
	--zpm-color-text:var(--wp--preset--color--contrast);
	--zpm-color-text-muted:var(--wp--preset--color--muted);
	--zpm-color-brand:var(--wp--preset--color--primary);
	--zpm-color-primary:var(--wp--preset--color--primary);
	--zpm-color-primary-contrast:var(--wp--preset--color--primary-contrast);
	--zpm-color-link:var(--wp--preset--color--primary);
	--zpm-color-focus:var(--wp--preset--color--focus);
	--zpm-color-success:var(--wp--preset--color--success);
	--zpm-color-warning:var(--wp--preset--color--warning);
	--zpm-color-danger:var(--wp--preset--color--danger);
	--zpm-color-info:var(--wp--preset--color--info);
	--zpm-color-neutral:var(--wp--preset--color--neutral);}
:where(.wp-site-blocks) :focus-visible{
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
.skip-link.screen-reader-text:focus{
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast)}
.zpm-template-num,.wp-block-table td{
	font-variant-numeric:tabular-nums}
.wp-block-navigation a{
	min-height:44px;
	display:inline-flex;
	align-items:center}
.wp-block-details summary{
	cursor:pointer;
	min-height:44px;
	display:flex;
	align-items:center}
@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{
	animation-duration:.01ms!important;
	transition-duration:.01ms!important;
	scroll-behavior:auto!important}
}
/* Search bar: pill, centered by default. Width and alignment follow ZPM > Settings >
   Appearance > Layouts > "Search bar" (variables printed by functions.php). */
.wp-site-blocks .wp-block-search.wp-block-search{
	width:100%;
	max-width:var(--zpm-search-max,720px);
	margin-inline:var(--zpm-search-margin,auto)!important}
/* Pages built with ZPM blocks are full screen: their title follows. */
.wp-site-blocks main:has(.zpm-page.alignfull) > :is(.wp-block-post-title,.wp-block-post-excerpt){
	max-width:none}
.wp-block-search .wp-block-search__inside-wrapper{
	align-items:center;
	gap:6px;
	min-height:56px;
	padding:5px 5px 5px 22px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:999px;
	background:var(--wp--preset--color--surface);
	box-shadow:0 1px 2px rgb(16 24 40/.05),0 14px 34px -22px rgb(16 24 40/.4);
	transition:border-color .2s ease,box-shadow .2s ease}
.wp-block-search .wp-block-search__inside-wrapper:hover{
	border-color:color-mix(in srgb,var(--wp--preset--color--primary) 45%,var(--wp--preset--color--border))}
.wp-block-search .wp-block-search__inside-wrapper:focus-within{
	border-color:var(--wp--preset--color--primary);
	box-shadow:0 0 0 4px color-mix(in srgb,var(--wp--preset--color--primary) 18%,transparent),0 14px 34px -22px rgb(16 24 40/.4)}
.wp-block-search .wp-block-search__input{
	min-height:44px;
	padding:0;
	border:0;
	background:transparent;
	color:var(--wp--preset--color--contrast);
	font-size:var(--wp--preset--font-size--medium,1.125rem)}
.wp-block-search .wp-block-search__input:focus{
	outline:none}
.wp-block-search .wp-block-search__inside-wrapper:has(.wp-block-search__input:focus-visible){
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:3px}
.wp-block-search .wp-block-search__button{
	display:inline-grid;
	place-items:center;
	min-width:46px;
	min-height:46px;
	margin:0;
	padding:0 14px;
	border:0;
	border-radius:999px;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
.wp-block-search .wp-block-search__button svg{
	fill:currentColor}
.wp-site-blocks > * + *{
	margin-block-start:0}
/* Header: stays at the top while scrolling, menu links with a brand hover. */
.zpm-sticky-header .wp-site-blocks > header.wp-block-template-part{
	position:sticky;
	top:var(--wp-admin--admin-bar--height,0px);
	z-index:50}
.zpm-template-header{
	backdrop-filter:saturate(160%) blur(10px);
	background-color:color-mix(in srgb,var(--wp--preset--color--surface) 88%,transparent)!important}
.zpm-template-header .wp-block-site-title{
	font-size:var(--wp--preset--font-size--medium);
	font-weight:700}
.zpm-template-header .wp-block-site-title a{
	text-decoration:none}
.zpm-nav-primary:not(.zpm-nav-stack) .wp-block-navigation-item__content{
	display:flex;
	align-items:center;
	padding-block:8px;
	font-weight:500;
	text-decoration:none;
	transition:color .15s ease}
.zpm-nav-primary .wp-block-navigation-item__content:hover,
.zpm-nav-primary .current-menu-item>.wp-block-navigation-item__content{
	color:var(--wp--preset--color--primary)}
.zpm-header-cta .wp-block-button__link{
	min-height:44px;
	padding:10px 20px;
	white-space:nowrap}
@media (max-width:781px){
	.wp-block-buttons.zpm-header-cta{
	display:none}
	.zpm-template-header .wp-block-site-title{
	white-space:nowrap}
}
/* Footer: headings and stacked menus. */
.zpm-footer-heading{
	margin:0 0 var(--wp--preset--spacing--40);
	color:var(--wp--preset--color--muted);
	letter-spacing:.08em;
	text-transform:uppercase}
.zpm-nav-stack .wp-block-navigation-item__content{
	text-decoration:none}
.zpm-nav-stack .wp-block-navigation-item__content:hover{
	color:var(--wp--preset--color--primary);
	text-decoration:underline}
.zpm-template-footer .wp-block-site-title a{
	text-decoration:none}
/* Stacked footer menus: compact rows (24 px targets minimum). */
.zpm-nav-stack .wp-block-navigation-item__content{
	min-height:32px;
	display:flex;
	align-items:center}
/* ---------- Footer (Appearance › Customize › ZPM Template › Footer) ---------- */
.zpm-footer--dark{
	--zpm-foot-head:#fff;
	--zpm-foot-text:#c5d2e2;
	--zpm-foot-muted:#93a6bd;
	--zpm-foot-line:rgb(255 255 255/.12);
	--zpm-foot-link:#e2e8f0;
	--zpm-foot-hover:color-mix(in srgb,var(--wp--preset--color--primary) 45%,#fff);
	--zpm-foot-chip:rgb(255 255 255/.08);
	--zpm-foot-icon:color-mix(in srgb,var(--wp--preset--color--primary) 60%,#fff);
	background:linear-gradient(180deg,#10284a 0%,#0a172b 100%)}
.zpm-footer--light{
	--zpm-foot-head:var(--wp--preset--color--contrast);
	--zpm-foot-text:var(--wp--preset--color--muted);
	--zpm-foot-muted:var(--wp--preset--color--muted);
	--zpm-foot-line:var(--wp--preset--color--border);
	--zpm-foot-link:var(--wp--preset--color--contrast);
	--zpm-foot-hover:var(--wp--preset--color--primary);
	--zpm-foot-chip:var(--wp--preset--color--surface);
	--zpm-foot-icon:var(--wp--preset--color--primary);
	background:var(--wp--preset--color--surface-2)}
.zpm-footer--brand{
	--zpm-foot-head:#fff;
	--zpm-foot-text:rgb(255 255 255/.86);
	--zpm-foot-muted:rgb(255 255 255/.74);
	--zpm-foot-line:rgb(255 255 255/.2);
	--zpm-foot-link:#fff;
	--zpm-foot-hover:#fff;
	--zpm-foot-chip:rgb(255 255 255/.14);
	--zpm-foot-icon:#fff;
	background:linear-gradient(160deg,color-mix(in srgb,var(--wp--preset--color--primary) 88%,#000) 0%,color-mix(in srgb,var(--wp--preset--color--primary) 48%,#000) 100%)}
.zpm-template-footer{
	color:var(--zpm-foot-text)}
.zpm-template-footer a{
	color:var(--zpm-foot-link);
	text-decoration:none}
.zpm-template-footer a:hover{
	color:var(--zpm-foot-hover);
	text-decoration:underline;
	text-underline-offset:3px}
.zpm-template-footer a:focus-visible{
	outline:2px solid currentColor;
	outline-offset:2px}
.zpm-template-footer .wp-block-site-title a{
	color:var(--zpm-foot-head);
	font-weight:800;
	text-decoration:none}
.zpm-footer__cols{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
	gap:clamp(32px,4vw,48px) clamp(24px,4vw,64px)}
@media (min-width:960px){
	.zpm-footer__cols--4{
	grid-template-columns:1.5fr 1fr 1fr 1.25fr}
	.zpm-footer__cols--3:has(.zpm-footer__brand){
	grid-template-columns:1.6fr 1fr 1fr}
}
.zpm-footer__cols > *,
.zpm-footer__col > *{
	margin-block:0}
.zpm-footer__col{
	display:grid;
	align-content:start;
	gap:16px}
.zpm-template-footer .zpm-footer-heading{
	margin:0;
	color:var(--zpm-foot-head);
	font-weight:700;
	letter-spacing:.1em;
	text-transform:uppercase}
.zpm-footer__about{
	max-width:40ch;
	color:var(--zpm-foot-text);
	line-height:1.65}
.zpm-footer__social{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin:4px 0 0;
	padding:0;
	list-style:none}
.zpm-template-footer .zpm-footer__social a{
	display:inline-grid;
	place-items:center;
	width:40px;
	height:40px;
	border-radius:12px;
	background:var(--zpm-foot-chip);
	color:var(--zpm-foot-link);
	text-decoration:none;
	transition:background-color .15s ease,color .15s ease,transform .15s ease}
.zpm-template-footer .zpm-footer__social a:hover{
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast);
	transform:translateY(-2px)}
.zpm-footer--brand .zpm-footer__social a:hover{
	background:#fff;
	color:color-mix(in srgb,var(--wp--preset--color--primary) 80%,#000)}
.zpm-template-footer .zpm-nav-stack .wp-block-navigation-item__content{
	min-height:32px;
	color:var(--zpm-foot-link)}
.zpm-footer__contact-list{
	display:grid;
	gap:12px;
	margin:0;
	padding:0;
	list-style:none}
.zpm-footer__contact-list li{
	display:flex;
	align-items:flex-start;
	gap:10px;
	overflow-wrap:anywhere}
.zpm-footer__contact-list svg{
	flex:none;
	margin-top:3px;
	color:var(--zpm-foot-icon)}
.zpm-footer__cta .wp-block-button__link{
	min-height:44px}
.zpm-footer--brand .zpm-footer__cta .wp-block-button__link{
	background:#fff;
	color:color-mix(in srgb,var(--wp--preset--color--primary) 80%,#000)}
.zpm-template-footer .zpm-footer__bottom{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:14px;
	margin-top:clamp(40px,5vw,64px);
	padding-top:24px;
	border-top:1px solid var(--zpm-foot-line);
	color:var(--zpm-foot-muted);
	font-size:var(--wp--preset--font-size--small);
	text-align:center}
.zpm-footer__bottom p{
	margin:0}
.zpm-footer__legalese{
	display:grid;
	gap:4px}
.zpm-footer__legal-menu{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:6px 22px;
	margin:0;
	padding:0;
	list-style:none}
@media (min-width:782px){
	.zpm-template-footer .zpm-footer__bottom--split{
	flex-direction:row-reverse;
	justify-content:space-between;
	text-align:left}
	.zpm-footer__bottom--split .zpm-footer__legal-menu{
	justify-content:flex-end}
}
.zpm-to-top{
	position:fixed;
	right:clamp(12px,2vw,24px);
	bottom:clamp(12px,2vw,24px);
	z-index:45;
	display:grid;
	place-items:center;
	width:44px;
	height:44px;
	border-radius:50%;
	background:var(--wp--preset--color--primary);
	box-shadow:0 12px 24px -12px rgb(0 0 0/.55);
	opacity:0;
	pointer-events:none;
	transform:translateY(12px);
	transition:opacity .2s ease,transform .2s ease}
.zpm-template-footer a.zpm-to-top,
.zpm-template-footer a.zpm-to-top:hover{
	color:var(--wp--preset--color--primary-contrast);
	text-decoration:none}
.zpm-to-top svg{
	transform:rotate(90deg)}
.zpm-show-top .zpm-to-top{
	opacity:1;
	pointer-events:auto;
	transform:none}
/* Header account button: sign-in icon, initial once signed in. */
.zpm-header-account{
	display:inline-grid;
	flex:none;
	place-items:center;
	box-sizing:border-box;
	width:44px;
	height:44px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:50%;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	text-decoration:none;
	transition:border-color .15s ease,color .15s ease}
.zpm-header-account:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-header-account.is-signed{
	border:0;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast);
	font-weight:800}
.zpm-header-account:focus-visible{
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
/* Phone tabs (website mode). */
.zpm-tabbar{
	display:none}
@media (max-width:781px){
	.zpm-tabbar{
	position:fixed;
	right:0;
	bottom:0;
	left:0;
	z-index:50;
	display:grid;
	grid-auto-columns:minmax(0,1fr);
	grid-auto-flow:column;
	gap:4px;
	padding:8px 8px calc(8px + env(safe-area-inset-bottom));
	border-top:1px solid var(--wp--preset--color--border);
	background:color-mix(in srgb,var(--wp--preset--color--surface) 94%,transparent);
	box-shadow:0 -12px 30px -20px rgb(15 23 42/.4);
	backdrop-filter:saturate(160%) blur(12px)}
	.zpm-template-footer .zpm-tabbar a.zpm-tabbar__tab,
	.zpm-tabbar__tab{
	display:grid;
	justify-items:center;
	gap:3px;
	min-height:54px;
	padding:7px 2px 5px;
	border-radius:14px;
	color:var(--wp--preset--color--muted);
	font-size:.68rem;
	font-weight:600;
	line-height:1.15;
	text-align:center;
	text-decoration:none}
	.zpm-tabbar__tab span{
	max-width:100%;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap}
	.zpm-template-footer .zpm-tabbar a.zpm-tabbar__tab[aria-current="page"],
	.zpm-tabbar__tab[aria-current="page"]{
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
	.zpm-tabbar__tab:focus-visible{
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
	.zpm-has-tabbar .wp-site-blocks{
	padding-bottom:calc(76px + env(safe-area-inset-bottom))}
	.zpm-has-tabbar .zpm-to-top{
	bottom:calc(88px + env(safe-area-inset-bottom))}
	.zpm-has-tabbar [data-zpm-mobilebar]{
	bottom:calc(76px + env(safe-area-inset-bottom))}
}
/* Header: the logo never shrinks; the menu opens in a tidy panel. */
.zpm-template-header .wp-block-site-logo{
	flex:none}
.zpm-template-header .wp-block-site-title{
	white-space:nowrap}
.zpm-template-header .wp-block-navigation__responsive-container-open{
	display:inline-grid;
	place-items:center;
	width:44px;
	height:44px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	background:var(--wp--preset--color--surface)}
.zpm-template-header .wp-block-navigation__responsive-container-open:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-template-header .wp-block-navigation__responsive-container.is-menu-open{
	padding:clamp(16px,4vw,40px);
	background:var(--wp--preset--color--surface)!important;
	color:var(--wp--preset--color--contrast)!important;
	animation:zpm-menu-in .2s ease}
@keyframes zpm-menu-in{
	from{
	opacity:0;
	transform:translateY(-8px)}
}
.zpm-template-header .is-menu-open .wp-block-navigation__responsive-container-close{
	display:grid;
	place-items:center;
	width:44px;
	height:44px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	top:clamp(16px,4vw,40px);
	right:clamp(16px,4vw,40px)}
.zpm-template-header .is-menu-open .wp-block-navigation__responsive-container-content{
	align-items:stretch;
	width:100%;
	max-width:560px;
	margin-inline:auto;
	padding-top:72px}
.zpm-template-header .is-menu-open .wp-block-navigation__container{
	align-items:stretch!important;
	gap:6px!important;
	width:100%}
.zpm-template-header .is-menu-open .wp-block-navigation-item{
	width:100%}
.zpm-template-header .is-menu-open .wp-block-navigation-item__content{
	display:flex;
	align-items:center;
	box-sizing:border-box;
	width:100%;
	min-height:56px;
	padding:0 18px!important;
	border-radius:14px;
	font-size:1.2rem;
	font-weight:700}
.zpm-template-header .is-menu-open .wp-block-navigation-item__content:hover{
	background:var(--wp--preset--color--surface-2);
	color:var(--wp--preset--color--contrast)}
.zpm-template-header .is-menu-open .current-menu-item>.wp-block-navigation-item__content{
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,var(--wp--preset--color--surface));
	color:var(--wp--preset--color--primary)}
.zpm-template-header .zpm-nav-cta{
	margin-top:12px}
.zpm-template-header .is-menu-open .zpm-nav-cta>.wp-block-navigation-item__content,
.zpm-template-header .is-menu-open .zpm-nav-cta>.wp-block-navigation-item__content:hover{
	justify-content:center;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
@media (prefers-reduced-motion:reduce){
	.zpm-template-header .wp-block-navigation__responsive-container.is-menu-open{
	animation:none}
}
/* Open menu: a parent with a submenu is a small group, its links in a
   rounded box right under it, aligned on the left like the other links. */
.zpm-template-header .is-menu-open .wp-block-navigation-item.has-child{
	display:flex;
	flex-direction:column;
	align-items:stretch!important}
.zpm-template-header .is-menu-open .wp-block-navigation__submenu-icon{
	display:none}
.zpm-template-header .is-menu-open .has-child>.wp-block-navigation-item__content{
	min-height:44px;
	color:var(--wp--preset--color--muted,#64748b);
	font-size:.8rem;
	letter-spacing:.06em;
	text-transform:uppercase}
.zpm-template-header .is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
	position:static!important;
	display:flex!important;
	flex-direction:column;
	align-items:stretch!important;
	gap:2px;
	width:100%!important;
	min-width:0!important;
	height:auto!important;
	margin:0 0 6px!important;
	padding:6px!important;
	border:1px solid var(--wp--preset--color--border)!important;
	border-radius:16px;
	background:var(--wp--preset--color--surface-2)!important;
	box-shadow:none!important;
	opacity:1!important;
	visibility:visible!important;
	transform:none!important}
.zpm-template-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
	min-height:48px;
	padding:0 14px!important;
	border-radius:12px;
	font-size:1.05rem;
	font-weight:600}
.zpm-template-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{
	background:var(--wp--preset--color--surface)}
/* The blur of the header would trap the open menu inside the header band. */
.zpm-template-header:has(.is-menu-open){
	backdrop-filter:none;
	background-color:var(--wp--preset--color--surface)!important}
/* The open menu covers the phone tabs. */
.wp-site-blocks > header.wp-block-template-part:has(.is-menu-open){
	position:relative;
	z-index:200}
/* Header icon buttons: services and quote (text on large screens). */
.zpm-header-btn{
	display:inline-flex;
	flex:none;
	align-items:center;
	justify-content:center;
	gap:8px;
	box-sizing:border-box;
	min-width:44px;
	height:44px;
	padding:0 11px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font-size:.9rem;
	font-weight:700;
	text-decoration:none;
	white-space:nowrap;
	transition:border-color .15s ease,color .15s ease,filter .15s ease,transform .15s ease}
.zpm-header-btn:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-header-btn--primary{
	border-color:transparent;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast);
	box-shadow:0 10px 22px -14px var(--wp--preset--color--primary)}
.zpm-header-btn--primary:hover{
	color:var(--wp--preset--color--primary-contrast);
	filter:brightness(1.08);
	transform:translateY(-1px)}
.zpm-header-btn:focus-visible{
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
.zpm-header-btn__label{
	display:none}
@media (min-width:1024px) and (max-width:1279.98px),(min-width:1440px){
	.zpm-header-btn{
	padding:0 16px}
	.zpm-header-btn__label{
	display:inline}
}
.zpm-template-header .wp-block-group:has(> .zpm-header-btn){
	gap:10px}
/* Very small screens: the quote button gives way to the tabs at the bottom;
   services (and complete packs) stay in the header. */
@media (max-width:419.98px){
	.zpm-header-btn--primary{
	display:none}
	.zpm-template-header .wp-block-group:has(> .zpm-header-btn){
	gap:6px}
}
/* Icon-only button (complete packs): square, always shown, name in a tooltip. */
.zpm-header-btn--icon{
	position:relative;
	width:44px;
	padding:0}
.zpm-header-btn--icon::after{
	content:attr(data-tooltip);
	position:absolute;
	top:calc(100% + 8px);
	left:50%;
	z-index:30;
	padding:6px 10px;
	border-radius:8px;
	background:var(--wp--preset--color--contrast);
	color:var(--wp--preset--color--base);
	font-size:.8rem;
	font-weight:600;
	white-space:nowrap;
	pointer-events:none;
	opacity:0;
	transform:translate(-50%,-4px);
	transition:opacity .15s ease,transform .15s ease}
.zpm-header-btn--icon:hover::after,
.zpm-header-btn--icon:focus-visible::after{
	opacity:1;
	transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){
	.zpm-header-btn--icon::after{
	transition:none}
}

/* Phone tabs: lower, hide while scrolling down, come back when scrolling up. */
@media (max-width:781px){
	.zpm-tabbar{
	gap:2px;
	padding:5px 6px calc(5px + env(safe-area-inset-bottom));
	transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease}
	html.zpm-tabbar-hidden .zpm-tabbar{
	opacity:0;
	pointer-events:none;
	transform:translateY(calc(100% + 12px))}
	.zpm-template-footer .zpm-tabbar a.zpm-tabbar__tab,
	.zpm-tabbar__tab{
	gap:2px;
	min-height:46px;
	padding:5px 2px 4px;
	border-radius:12px;
	font-size:.64rem}
	button.zpm-tabbar__tab{
	display:grid;
	justify-items:center;
	width:100%;
	margin:0;
	border:0;
	background:transparent;
	color:var(--wp--preset--color--muted);
	font-family:inherit;
	font-weight:600;
	line-height:1.15;
	cursor:pointer}
	button.zpm-tabbar__tab[aria-expanded="true"]{
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,transparent);
	color:var(--wp--preset--color--primary)}
	.zpm-has-tabbar .wp-site-blocks{
	padding-bottom:calc(62px + env(safe-area-inset-bottom))}
	.zpm-has-tabbar .zpm-to-top{
	bottom:calc(72px + env(safe-area-inset-bottom))}
	html.zpm-tabbar-hidden .zpm-has-tabbar .zpm-to-top{
	bottom:clamp(12px,2vw,24px)}
	.zpm-has-tabbar [data-zpm-mobilebar]{
	bottom:calc(62px + env(safe-area-inset-bottom));
	transition:bottom .28s ease}
	html.zpm-tabbar-hidden .zpm-has-tabbar [data-zpm-mobilebar]{
	bottom:0}
}

/* Legal sheet (bottom sheet). */
.zpm-sheet{
	position:fixed;
	inset:auto 0 0;
	box-sizing:border-box;
	width:100%;
	max-width:560px;
	max-height:80dvh;
	margin:0 auto;
	padding:10px 16px calc(16px + env(safe-area-inset-bottom));
	overflow-y:auto;
	border:0;
	border-radius:22px 22px 0 0;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	box-shadow:0 -20px 50px -20px rgb(15 23 42/.5)}
.zpm-sheet[open]{
	animation:zpm-sheet-in .25s cubic-bezier(.2,.8,.2,1)}
@keyframes zpm-sheet-in{
	from{
	transform:translateY(40px);
	opacity:0}
}
.zpm-sheet::backdrop{
	background:rgb(15 23 42/.45)}
.zpm-sheet::before{
	content:"";
	display:block;
	width:44px;
	height:5px;
	margin:0 auto 12px;
	border-radius:999px;
	background:var(--wp--preset--color--border)}
.zpm-sheet__head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:8px}
.zpm-sheet__title{
	display:flex;
	align-items:center;
	gap:10px;
	margin:0;
	font-family:var(--wp--preset--font-family--heading);
	font-size:1.15rem;
	font-weight:800}
.zpm-sheet__title svg{
	color:var(--wp--preset--color--primary)}
.zpm-sheet__close{
	display:grid;
	place-items:center;
	width:40px;
	height:40px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	cursor:pointer}
.zpm-sheet__list{
	display:grid;
	gap:4px;
	margin:0;
	padding:0;
	list-style:none}
.zpm-template-footer .zpm-sheet__list a,
.zpm-sheet__list a{
	display:flex;
	align-items:center;
	gap:12px;
	min-height:52px;
	padding:0 12px;
	border-radius:12px;
	color:var(--wp--preset--color--contrast);
	font-weight:600;
	text-decoration:none}
.zpm-sheet__list a span{
	flex:1}
.zpm-sheet__list a svg:first-child{
	color:var(--wp--preset--color--primary)}
.zpm-sheet__list a svg:last-child{
	color:var(--wp--preset--color--muted)}
.zpm-template-footer .zpm-sheet__list a:hover,
.zpm-sheet__list a:hover{
	background:var(--wp--preset--color--surface-2);
	color:var(--wp--preset--color--contrast);
	text-decoration:none}
.zpm-sheet__list a:focus-visible,
.zpm-sheet__close:focus-visible{
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
@media (prefers-reduced-motion:reduce){
	.zpm-tabbar,
	.zpm-sheet[open]{
	transition:none;
	animation:none}
}
/* Menu in a ☰ button: the icons share the width evenly, in this order:
   services, quote, menu, account (inline menu: see functions.php). */
.zpm-template-header .wp-block-group:has(> .zpm-nav-header){
	flex:1 1 auto;
	justify-content:space-evenly;
	min-width:0}
.zpm-template-header .zpm-header-btn{
	order:1}
.zpm-template-header .zpm-header-btn--icon{
	order:0}
.zpm-template-header .zpm-header-btn--primary{
	order:2}
.zpm-template-header .zpm-nav-header{
	order:3;
	flex:none}
.zpm-template-header .zpm-header-account{
	order:4}
/* Site name: full, abbreviation, or full on large screens and abbreviation on phones. */
.zpm-site-name{
	margin:0}
.zpm-site-name__short{
	display:none;
	font-weight:800;
	letter-spacing:.04em}
.zpm-site-name--short .zpm-site-name__full{
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(0 0 0 0);
	white-space:nowrap}
.zpm-site-name--short .zpm-site-name__short{
	display:inline}
@media (max-width:600px){
	.zpm-site-name--responsive .zpm-site-name__full{
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(0 0 0 0);
	white-space:nowrap}
	.zpm-site-name--responsive .zpm-site-name__short{
	display:inline}
}

/* Footer navigation: sub-menus (e.g. "Our software") shown open, as a short indented list. */
.zpm-template-footer .zpm-nav-stack .wp-block-navigation__submenu-icon{
	display:none}
.zpm-template-footer .zpm-nav-stack .wp-block-navigation-item.has-child{
	flex-direction:column;
	align-items:flex-start}
.zpm-template-footer .zpm-nav-stack .has-child .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
	position:static;
	visibility:visible;
	opacity:1;
	width:auto;
	min-width:0;
	height:auto;
	overflow:visible;
	margin-top:6px;
	padding:0 0 0 12px;
	border:0;
	border-left:2px solid color-mix(in srgb,currentColor 18%,transparent);
	background:transparent;
	box-shadow:none;
	color:inherit;
	gap:6px}
.zpm-template-footer .zpm-nav-stack .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
	padding:2px 0;
	font-size:.92em;
	opacity:.85}

/* Footer "Our sites": folded list at the top of the logo column. */
.zpm-footer-sites{
	width:100%;
	max-width:340px;
	border:1px solid color-mix(in srgb,var(--zpm-foot-link) 16%,transparent);
	border-radius:14px 18px 18px 14px;
	background:var(--zpm-foot-chip);
	overflow:hidden}
.zpm-footer-sites summary{
	display:flex;
	align-items:center;
	gap:10px;
	min-height:48px;
	padding:8px 14px 8px 8px;
	color:var(--zpm-foot-head);
	font-weight:700;
	cursor:pointer;
	list-style:none}
.zpm-footer-sites summary::-webkit-details-marker{
	display:none}
.zpm-footer-sites summary:focus-visible{
	outline:2px solid var(--wp--preset--color--primary);
	outline-offset:2px;
	border-radius:12px}
.zpm-footer-sites__icon{
	display:grid;
	flex:none;
	place-items:center;
	width:34px;
	height:34px;
	border-radius:10px 13px 13px 10px;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
.zpm-footer-sites__title{
	flex:1}
.zpm-footer-sites__count{
	min-width:24px;
	padding:2px 8px;
	border-radius:999px;
	background:color-mix(in srgb,var(--zpm-foot-link) 14%,transparent);
	color:var(--zpm-foot-text);
	font-size:.75rem;
	text-align:center}
.zpm-footer-sites__chevron{
	display:grid;
	color:var(--zpm-foot-icon);
	transition:transform .2s ease}
.zpm-footer-sites[open] .zpm-footer-sites__chevron{
	transform:rotate(90deg)}
.zpm-footer-sites__list{
	display:grid;
	gap:2px;
	margin:0;
	padding:0 8px 8px;
	list-style:none}
.zpm-template-footer .zpm-footer-sites__list a{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	padding:9px 10px;
	border-radius:10px;
	color:var(--zpm-foot-link);
	text-decoration:none;
	transition:background-color .15s ease,color .15s ease}
.zpm-template-footer .zpm-footer-sites__list a:hover,
.zpm-template-footer .zpm-footer-sites__list a:focus-visible{
	background:color-mix(in srgb,var(--zpm-foot-link) 10%,transparent);
	color:var(--zpm-foot-head)}
.zpm-footer-sites__list svg{
	flex:none;
	opacity:.6}
@media (prefers-reduced-motion:reduce){
	.zpm-footer-sites__chevron{
	transition:none}
}
/* The sites are listed above: no second copy as a sub-menu of the navigation column. */
.zpm-template-footer:has(.zpm-footer-sites) .zpm-nav-stack .wp-block-navigation-item.has-child{
	display:none}

/* Phones: every footer column centered. */
@media (max-width:781px){
	.zpm-footer__col{
	justify-items:center;
	text-align:center}
	.zpm-footer__brand > .wp-block-group{
	justify-content:center}
	.zpm-footer__about{
	margin-inline:auto}
	.zpm-footer__social,
	.zpm-footer__cta{
	justify-content:center}
	.zpm-template-footer .zpm-nav-stack{
	align-items:center}
	.zpm-template-footer .zpm-nav-stack .wp-block-navigation__container{
	align-items:center}
	.zpm-footer__contact-list li{
	justify-content:center}
	.zpm-footer-sites{
	margin-inline:auto;
	text-align:left}
}

/* Header icons sized to the screen: one variable for every button. */
.zpm-template-header{
	--zpm-hbtn:44px;
	--zpm-hbtn-icon:20px}
@media (max-width:781px){
	.zpm-template-header{
	--zpm-hbtn:40px;
	--zpm-hbtn-icon:19px}
}
@media (max-width:480px){
	.zpm-template-header{
	--zpm-hbtn:36px;
	--zpm-hbtn-icon:18px}
	.zpm-template-header .wp-block-group:has(> .zpm-header-btn){
	gap:6px}
}
@media (max-width:360px){
	.zpm-template-header{
	--zpm-hbtn:34px;
	--zpm-hbtn-icon:17px}
	.zpm-template-header .wp-block-group:has(> .zpm-header-btn){
	gap:4px}
}
.zpm-template-header .zpm-header-btn{
	min-width:var(--zpm-hbtn);
	height:var(--zpm-hbtn)}
.zpm-template-header .zpm-header-btn--icon{
	width:var(--zpm-hbtn)}
.zpm-template-header .zpm-header-account,
.zpm-template-header .wp-block-navigation__responsive-container-open{
	width:var(--zpm-hbtn);
	height:var(--zpm-hbtn)}
.zpm-template-header .zpm-header-btn svg,
.zpm-template-header .zpm-header-account svg,
.zpm-template-header .wp-block-navigation__responsive-container-open svg{
	width:var(--zpm-hbtn-icon);
	height:var(--zpm-hbtn-icon)}
@media (max-width:480px){
	.zpm-template-header .zpm-header-btn,
	.zpm-template-header .zpm-header-account,
	.zpm-template-header .wp-block-navigation__responsive-container-open{
	border-radius:10px}
}
/* Without their label (below 1024 px), header buttons are square. */
@media (max-width:1023.98px){
	.zpm-template-header .zpm-header-btn{
	width:var(--zpm-hbtn);
	padding:0}
}

/* ===================================================================== */
/* Content pages (legal, about, contact): core blocks only, readable.    */
/* Classes set on core blocks: zpm-doc-hero, zpm-doc, zpm-doc-card,      */
/* zpm-doc-toc, zpm-doc-note, zpm-doc-cta, zpm-tiles, zpm-tile, zpm-wa,  */
/* zpm-ico--* (icon of a tile).                                          */
/* ===================================================================== */
.zpm-doc-hero{
	position:relative;
	isolation:isolate;
	margin-block-start:0 !important;
	padding:clamp(48px,8vw,96px) var(--wp--preset--spacing--40) clamp(32px,5vw,56px);
	overflow:hidden;
	background:linear-gradient(180deg,color-mix(in srgb,var(--wp--preset--color--primary) 8%,var(--wp--preset--color--base)),var(--wp--preset--color--base));
	text-align:center}
.zpm-doc-hero::before{
	content:"";
	position:absolute;
	top:-200px;
	left:50%;
	z-index:-1;
	width:min(900px,120vw);
	height:420px;
	border-radius:50%;
	background:radial-gradient(closest-side,color-mix(in srgb,var(--zpm-color-brand,#ff6900) 22%,transparent),transparent);
	translate:-50% 0}
.zpm-doc-hero > *{
	max-width:760px;
	margin-inline:auto !important}
.zpm-doc-hero__eyebrow{
	display:inline-block;
	margin-block:0 14px !important;
	padding:6px 14px;
	border-radius:999px;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,var(--wp--preset--color--surface));
	color:var(--wp--preset--color--primary);
	font-size:.8rem;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase}
.zpm-doc-hero .zpm-doc-hero__title{
	margin-block:0 !important;
	font-weight:800;
	font-size:clamp(2.1rem,1.3rem + 3.4vw,3.4rem);
	line-height:1.1;
	letter-spacing:-.03em;
	text-wrap:balance}
.zpm-doc-hero__intro{
	margin-block:14px 0 !important;
	color:var(--wp--preset--color--muted);
	font-size:clamp(1.05rem,.98rem + .4vw,1.25rem);
	text-wrap:balance}
/* Title of a page (page template): same heading, glued to the header. */
.zpm-page:has(> .zpm-page-hero){
	padding-top:0 !important}
.zpm-page-hero{
	margin-block-end:clamp(24px,4vw,48px) !important}
.zpm-doc-hero__meta{
	margin-block:12px 0 !important;
	color:var(--wp--preset--color--muted);
	font-size:.85rem}
@media (prefers-reduced-motion:no-preference){
	.zpm-doc-hero > *{
	animation:zpm-doc-in 1000ms cubic-bezier(.22,1,.36,1) 250ms both}
	.zpm-doc-hero > *:nth-child(2){
	animation-delay:400ms}
	.zpm-doc-hero > *:nth-child(3){
	animation-delay:550ms}
	.zpm-doc-hero > *:nth-child(n+4){
	animation-delay:650ms}
}
@keyframes zpm-doc-in{
	from{
	opacity:0;
	transform:translate3d(0,10px,0)}
}

/* Body: comfortable reading. */
.zpm-doc{
	padding-block:clamp(24px,4vw,48px) clamp(48px,7vw,88px)}
.zpm-doc h2.wp-block-heading{
	margin-block:clamp(32px,4vw,48px) 12px;
	font-size:clamp(1.35rem,1.15rem + .8vw,1.7rem);
	letter-spacing:-.02em;
	scroll-margin-top:110px}
.zpm-doc h3.wp-block-heading{
	margin-block:24px 8px;
	font-size:1.15rem}
.zpm-doc p,
.zpm-doc li{
	line-height:1.7}
.zpm-doc .wp-block-list{
	padding-left:1.25em}
.zpm-doc .wp-block-list li + li{
	margin-top:6px}
.zpm-doc .wp-block-list li::marker{
	color:var(--wp--preset--color--primary)}

/* Cards: key points, notes, table of contents. */
.zpm-doc-card,
.zpm-doc-note,
.zpm-doc-toc{
	padding:clamp(18px,3vw,28px) !important;
	border:1px solid color-mix(in srgb,var(--wp--preset--color--border) 80%,transparent);
	border-radius:18px 22px 22px 18px;
	background:var(--wp--preset--color--surface);
	box-shadow:0 1px 2px rgb(16 24 40 / .05),0 14px 34px -20px rgb(16 24 40 / .3)}
.zpm-doc-card > :first-child,
.zpm-doc-note > :first-child,
.zpm-doc-toc > :first-child{
	margin-top:0 !important}
.zpm-doc-card > :last-child,
.zpm-doc-note > :last-child,
.zpm-doc-toc > :last-child{
	margin-bottom:0 !important}
.zpm-doc-card{
	background:linear-gradient(160deg,color-mix(in srgb,var(--wp--preset--color--primary) 7%,var(--wp--preset--color--surface)),var(--wp--preset--color--surface) 70%)}
.zpm-doc .zpm-doc-card h2.wp-block-heading{
	margin-top:0;
	font-size:1.2rem}
.zpm-doc .zpm-doc-card .wp-block-list{
	padding-left:0;
	list-style:none}
.zpm-doc-card .wp-block-list li{
	position:relative;
	padding-left:30px}
.zpm-doc-card .wp-block-list li::before{
	content:"";
	position:absolute;
	top:.32em;
	left:0;
	width:20px;
	height:20px;
	border-radius:7px;
	background:var(--wp--preset--color--primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/72% no-repeat}
.zpm-doc-note{
	border-color:color-mix(in srgb,var(--wp--preset--color--warning) 35%,var(--wp--preset--color--border));
	background:color-mix(in srgb,var(--wp--preset--color--warning) 7%,var(--wp--preset--color--surface));
	box-shadow:none}
.zpm-doc-toc{
	margin-top:24px !important;
	box-shadow:none}
.zpm-doc-toc__title{
	margin-bottom:10px !important;
	color:var(--wp--preset--color--muted);
	font-size:.8rem;
	font-weight:800;
	letter-spacing:.08em;
	text-transform:uppercase}
.zpm-doc .zpm-doc-toc .wp-block-list{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	padding:0;
	list-style:none}
.zpm-doc .zpm-doc-toc .wp-block-list li{
	margin:0}
.zpm-doc-toc a{
	display:inline-block;
	padding:6px 12px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:10px 13px 13px 10px;
	background:var(--wp--preset--color--base);
	color:var(--wp--preset--color--contrast);
	font-size:.9rem;
	font-weight:600;
	text-decoration:none;
	transition:border-color .15s ease,color .15s ease}
.zpm-doc-toc a:hover,
.zpm-doc-toc a:focus-visible{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}

/* Tiles (about, contact): icon, title, short text. */
.zpm-tiles{
	display:grid !important;
	grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));
	gap:14px}
.zpm-tiles > *{
	margin:0 !important}
.zpm-tile{
	padding:20px !important;
	border:1px solid color-mix(in srgb,var(--wp--preset--color--border) 80%,transparent);
	border-radius:18px 22px 22px 18px;
	background:var(--wp--preset--color--surface);
	box-shadow:0 1px 2px rgb(16 24 40 / .05),0 12px 30px -20px rgb(16 24 40 / .3);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.zpm-tile:hover{
	border-color:color-mix(in srgb,var(--wp--preset--color--primary) 35%,var(--wp--preset--color--border));
	box-shadow:0 2px 4px rgb(16 24 40 / .06),0 20px 40px -22px rgb(16 24 40 / .38);
	transform:translateY(-3px)}
.zpm-tile > *{
	margin-block:0 !important}
.zpm-tile > * + *{
	margin-top:6px !important}
.zpm-doc .zpm-tile h3.wp-block-heading{
	margin-top:12px !important;
	font-size:1.1rem}
.zpm-tile p{
	color:var(--wp--preset--color--muted);
	font-size:.95rem;
	line-height:1.55}
.zpm-tile a{
	font-weight:700}
@media (prefers-reduced-motion:reduce){
	.zpm-tile{
	transition:none}
	.zpm-tile:hover{
	transform:none}
}
/* Tile icons: a mask of the theme icons on a gradient badge. */
[class*="zpm-ico--"]::before{
	content:"";
	display:block;
	width:46px;
	height:46px;
	border-radius:14px 18px 18px 14px;
	background:linear-gradient(135deg,var(--zpm-color-brand,#ff6900),var(--wp--preset--color--primary));
	-webkit-mask:var(--zpm-ico) center/22px no-repeat,linear-gradient(#000 0 0);
	-webkit-mask-composite:xor;
	mask:var(--zpm-ico) center/22px no-repeat exclude,linear-gradient(#000 0 0)}
.zpm-ico--globe{--zpm-ico:url(../icons/globe.svg)}
.zpm-ico--phone{--zpm-ico:url(../icons/phone.svg)}
.zpm-ico--mail{--zpm-ico:url(../icons/mail.svg)}
.zpm-ico--map{--zpm-ico:url(../icons/map-pin.svg)}
.zpm-ico--calendar{--zpm-ico:url(../icons/calendar.svg)}
.zpm-ico--quote{--zpm-ico:url(../icons/file-text.svg)}
.zpm-ico--track{--zpm-ico:url(../icons/list-checks.svg)}
.zpm-ico--store{--zpm-ico:url(../icons/store.svg)}
.zpm-ico--monitor{--zpm-ico:url(../icons/monitor.svg)}
.zpm-ico--code{--zpm-ico:url(../icons/code.svg)}
.zpm-ico--package{--zpm-ico:url(../icons/package.svg)}
.zpm-ico--shield{--zpm-ico:url(../icons/shield-check.svg)}
.zpm-ico--coins{--zpm-ico:url(../icons/coins.svg)}
.zpm-ico--rocket{--zpm-ico:url(../icons/rocket.svg)}
.zpm-ico--star{--zpm-ico:url(../icons/star.svg)}
.zpm-ico--layers{--zpm-ico:url(../icons/layers.svg)}
.zpm-ico--whatsapp{--zpm-ico:url(../icons/social/whatsapp.svg)}

/* WhatsApp first: the main contact card. */
.zpm-wa{
	display:grid;
	justify-items:center;
	gap:10px;
	padding:clamp(24px,4vw,40px) !important;
	border-radius:22px 26px 26px 22px;
	background:radial-gradient(120% 90% at 100% 0,rgb(255 255 255 / .14),transparent 55%),linear-gradient(150deg,#1ea952,#128c4a);
	color:#fff;
	box-shadow:0 26px 60px -28px rgb(18 140 74 / .75);
	text-align:center}
.zpm-wa > *{
	margin:0 !important}
.zpm-wa.zpm-ico--whatsapp::before{
	width:64px;
	height:64px;
	border-radius:20px 24px 24px 20px;
	background:#fff;
	-webkit-mask:var(--zpm-ico) center/32px no-repeat,linear-gradient(#000 0 0);
	-webkit-mask-composite:xor;
	mask:var(--zpm-ico) center/32px no-repeat exclude,linear-gradient(#000 0 0)}
.zpm-doc .zpm-wa h2.wp-block-heading{
	margin:0;
	color:#fff;
	font-size:clamp(1.4rem,1.2rem + 1vw,1.9rem)}
.zpm-wa p{
	color:rgb(255 255 255 / .92)}
.zpm-wa .zpm-wa__number{
	color:#fff;
	font-size:clamp(1.3rem,1.1rem + 1vw,1.7rem);
	font-weight:800;
	letter-spacing:.02em}
.zpm-wa .wp-block-button__link{
	background:#fff !important;
	color:#128c4a !important;
	box-shadow:0 12px 26px -12px rgb(0 0 0 / .45)}

/* Call to action at the end of a page. */
.zpm-doc-cta{
	margin-top:clamp(36px,5vw,56px) !important;
	padding:clamp(24px,4vw,40px) !important;
	border-radius:22px 26px 26px 22px;
	background:radial-gradient(120% 80% at 100% 0,color-mix(in srgb,var(--zpm-color-brand,#ff6900) 30%,transparent),transparent 60%),#0b1220;
	color:#f8fafc;
	text-align:center}
.zpm-doc-cta > *{
	margin-block:0 !important}
.zpm-doc-cta > * + *{
	margin-top:12px !important}
.zpm-doc .zpm-doc-cta h2.wp-block-heading{
	margin-top:0;
	color:#fff}
.zpm-doc-cta p{
	color:#cbd5e1}
.zpm-doc-cta .wp-block-buttons,
.zpm-wa .wp-block-buttons{
	justify-content:center}
.zpm-doc .is-style-zpm-whatsapp .wp-block-button__link{
	background:#1ea952;
	color:#fff}
.zpm-doc-cta .is-style-outline .wp-block-button__link{
	border-color:rgb(255 255 255 / .35);
	background:transparent;
	color:#fff}
/* Wider blocks inside a content page (tiles, WhatsApp card): up to 1080 px. */
.zpm-doc > .alignwide{
	max-width:min(1080px,100%) !important;
	margin-inline:auto !important}
/* About, contact: section titles and short lines centered over the wide tiles. */
.zpm-doc--center > h2.wp-block-heading,
.zpm-doc--center > p{
	text-align:center;
	text-wrap:balance}
.zpm-doc--center > .wp-block-details{
	text-align:left}

/* ===================================================================== */
/* Blog: list of articles (blog, categories, search) and the article.    */
/* ===================================================================== */
.zpm-blog,
.zpm-article{
	padding-bottom:clamp(48px,7vw,96px)}
.zpm-blog-hero{
	padding-bottom:clamp(24px,4vw,40px)}

/* Categories as chips under the heading. */
.zpm-blog-cats.wp-block-categories{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:8px;
	margin-block:22px 0 !important;
	padding:0;
	list-style:none}
.zpm-blog-cats li{
	margin:0}
.zpm-blog-cats a{
	display:inline-block;
	padding:7px 14px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:10px 13px 13px 10px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font-size:.9rem;
	font-weight:600;
	text-decoration:none;
	transition:border-color .15s ease,color .15s ease}
.zpm-blog-cats a:hover,
.zpm-blog-cats a:focus-visible,
.zpm-blog-cats .current-cat a{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-blog-search{
	max-width:560px;
	margin-top:20px !important}

/* Article cards. */
.zpm-blog__list{
	margin-top:clamp(24px,4vw,40px) !important}
.zpm-blog__list .wp-block-post-template,
.zpm-related .wp-block-post-template{
	gap:clamp(16px,2vw,24px)}
.zpm-post-card{
	display:flex;
	flex-direction:column;
	height:100%;
	overflow:hidden;
	border:1px solid color-mix(in srgb,var(--wp--preset--color--border) 80%,transparent);
	border-radius:18px 22px 22px 18px;
	background:var(--wp--preset--color--surface);
	box-shadow:0 1px 2px rgb(16 24 40 / .05),0 14px 34px -22px rgb(16 24 40 / .35);
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.zpm-post-card:hover{
	border-color:color-mix(in srgb,var(--wp--preset--color--primary) 30%,var(--wp--preset--color--border));
	box-shadow:0 2px 4px rgb(16 24 40 / .06),0 24px 46px -24px rgb(16 24 40 / .42);
	transform:translateY(-4px)}
.zpm-post-card > *{
	margin:0 !important}
.zpm-post-card .wp-block-post-featured-image{
	overflow:hidden;
	background:var(--wp--preset--color--surface-2)}
.zpm-post-card .wp-block-post-featured-image img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .4s ease}
.zpm-post-card:hover .wp-block-post-featured-image img{
	transform:scale(1.04)}
.zpm-post-card__body{
	display:flex;
	flex:1;
	flex-direction:column;
	gap:10px;
	padding:18px 20px 20px}
.zpm-post-card__body > *{
	margin:0 !important}
.zpm-post-card__cat,
.zpm-post-hero__cats{
	font-size:.78rem;
	font-weight:800;
	letter-spacing:.05em;
	text-transform:uppercase}
.zpm-post-card__cat a,
.zpm-post-hero__cats a{
	color:var(--wp--preset--color--primary);
	text-decoration:none}
.zpm-post-card__cat .wp-block-post-terms__separator{
	color:var(--wp--preset--color--muted)}
.zpm-post-card__title{
	font-size:clamp(1.1rem,1rem + .4vw,1.3rem) !important;
	line-height:1.3;
	letter-spacing:-.01em}
.zpm-post-card__title a{
	color:var(--wp--preset--color--contrast);
	text-decoration:none}
.zpm-post-card__title a:hover{
	color:var(--wp--preset--color--primary)}
.zpm-post-card__excerpt{
	color:var(--wp--preset--color--muted);
	font-size:.95rem;
	line-height:1.6}
.zpm-post-card__excerpt .wp-block-post-excerpt__excerpt{
	margin:0}
.zpm-post-card__meta{
	gap:6px 14px !important;
	margin-top:auto !important;
	padding-top:12px;
	border-top:1px solid color-mix(in srgb,var(--wp--preset--color--border) 70%,transparent);
	color:var(--wp--preset--color--muted);
	font-size:.85rem}
.zpm-post-card__meta > *{
	margin:0 !important}
.zpm-reading-time{
	display:inline-flex;
	align-items:center;
	gap:6px;
	margin:0}
.zpm-reading-time svg{
	flex:none;
	color:var(--wp--preset--color--primary)}

/* Pagination. */
.zpm-pagination{
	gap:8px;
	margin-top:clamp(28px,4vw,44px) !important}
.zpm-pagination .page-numbers,
.zpm-pagination .wp-block-query-pagination-previous,
.zpm-pagination .wp-block-query-pagination-next{
	display:inline-grid;
	place-items:center;
	min-width:42px;
	height:42px;
	padding:0 12px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:10px 13px 13px 10px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font-weight:700;
	text-decoration:none}
.zpm-pagination .page-numbers.current{
	border-color:transparent;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
.zpm-blog__cta{
	margin-top:clamp(36px,5vw,64px) !important}

/* Article: heading. */
.zpm-post-hero{
	padding-bottom:clamp(28px,4vw,44px)}
.zpm-post-hero__cats{
	margin-block:0 14px !important}
.zpm-post-hero__cats a{
	display:inline-block;
	padding:5px 12px;
	border-radius:999px;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,var(--wp--preset--color--surface))}
.zpm-post-hero__cats .wp-block-post-terms__separator{
	display:inline-block;
	width:6px;
	font-size:0}
.zpm-post-hero__meta{
	gap:8px 18px !important;
	margin-top:18px !important;
	color:var(--wp--preset--color--muted);
	font-size:.92rem}
.zpm-post-hero__meta > *{
	margin:0 !important}
.zpm-post-hero__author{
	display:inline-flex;
	align-items:center;
	gap:8px}
.zpm-post-hero__author .wp-block-post-author__avatar{
	margin:0}
.zpm-post-hero__author img{
	border-radius:50%}
.zpm-post-hero__author .wp-block-post-author__name{
	color:var(--wp--preset--color--contrast);
	font-weight:700}
.zpm-post-hero__author .wp-block-post-author__content{
	display:flex;
	align-items:center}

/* Article: cover image. */
.zpm-article > .zpm-post-cover{
	max-width:min(1080px,calc(100% - 2 * var(--wp--preset--spacing--40))) !important;
	margin-inline:auto !important;
	overflow:hidden;
	border-radius:22px 26px 26px 22px;
	box-shadow:0 30px 60px -34px rgb(16 24 40 / .45)}
.zpm-post-cover img{
	width:100%;
	height:100%;
	object-fit:cover}

/* Article: comfortable reading. */
.zpm-post-content{
	margin-top:clamp(28px,4vw,48px) !important;
	font-size:clamp(1.02rem,.98rem + .2vw,1.12rem);
	line-height:1.8}
.zpm-post-content > *{
	margin-block:0 1.15em}
.zpm-post-content h2{
	margin-block:2em .6em;
	font-size:clamp(1.45rem,1.2rem + 1vw,1.85rem);
	line-height:1.25;
	letter-spacing:-.02em;
	scroll-margin-top:110px}
.zpm-post-content h3{
	margin-block:1.6em .5em;
	font-size:clamp(1.18rem,1.08rem + .4vw,1.35rem);
	line-height:1.3}
.zpm-post-content h4{
	margin-block:1.4em .4em;
	font-size:1.05rem}
.zpm-post-content a{
	color:var(--wp--preset--color--primary);
	text-decoration-thickness:1px;
	text-underline-offset:3px}
.zpm-post-content ul,
.zpm-post-content ol{
	padding-left:1.3em}
.zpm-post-content li + li{
	margin-top:.35em}
.zpm-post-content li::marker{
	color:var(--wp--preset--color--primary);
	font-weight:700}
.zpm-post-content strong{
	color:var(--wp--preset--color--contrast)}
.zpm-post-content img{
	height:auto;
	border-radius:14px 18px 18px 14px}
.zpm-post-content figcaption{
	color:var(--wp--preset--color--muted);
	font-size:.88rem;
	text-align:center}
.zpm-post-content blockquote,
.zpm-post-content .wp-block-quote{
	margin-inline:0;
	padding:16px 20px;
	border-left:4px solid var(--wp--preset--color--primary);
	border-radius:0 16px 16px 0;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 6%,var(--wp--preset--color--surface));
	font-style:normal}
.zpm-post-content blockquote p:last-child{
	margin-bottom:0}
.zpm-post-content hr{
	margin-block:2.4em;
	border:0;
	border-top:1px solid var(--wp--preset--color--border)}
/* Tables: rounded, header tinted, scroll sideways on phones. */
.zpm-post-content .wp-block-table,
.zpm-post-content figure:has(> table){
	overflow-x:auto}
.zpm-post-content table{
	width:100%;
	overflow:hidden;
	border:1px solid var(--wp--preset--color--border);
	border-radius:14px;
	border-spacing:0;
	border-collapse:separate;
	font-size:.95rem;
	line-height:1.5}
.zpm-post-content th,
.zpm-post-content td{
	padding:10px 14px;
	border:0;
	border-bottom:1px solid var(--wp--preset--color--border);
	text-align:left}
.zpm-post-content tr:last-child td{
	border-bottom:0}
.zpm-post-content thead th,
.zpm-post-content tr:first-child th{
	background:color-mix(in srgb,var(--wp--preset--color--primary) 10%,var(--wp--preset--color--surface));
	color:var(--wp--preset--color--contrast);
	font-weight:800}
.zpm-post-content tbody tr:nth-child(even) td{
	background:var(--wp--preset--color--surface-2)}

/* Article: footer (tags, share, contact box, previous / next). */
.zpm-post-footer{
	margin-top:clamp(28px,4vw,40px) !important}
.zpm-post-footer > *{
	margin-block:0 22px !important}
.zpm-post-tags{
	display:flex;
	flex-wrap:wrap;
	gap:8px}
.zpm-post-tags a{
	padding:5px 12px;
	border-radius:999px;
	background:var(--wp--preset--color--surface-2);
	color:var(--wp--preset--color--contrast);
	font-size:.85rem;
	text-decoration:none}
.zpm-post-tags a::before{
	content:"#";
	color:var(--wp--preset--color--primary)}
.zpm-post-tags .wp-block-post-terms__separator{
	display:none}
.zpm-share{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:8px;
	padding:14px 0;
	border-block:1px solid var(--wp--preset--color--border)}
.zpm-share__label{
	margin-right:6px;
	color:var(--wp--preset--color--muted);
	font-size:.85rem;
	font-weight:800;
	letter-spacing:.06em;
	text-transform:uppercase}
.zpm-share__btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	min-width:42px;
	height:42px;
	padding:0 12px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:10px 13px 13px 10px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font:inherit;
	font-size:.9rem;
	font-weight:700;
	text-decoration:none;
	cursor:pointer;
	transition:border-color .15s ease,color .15s ease,background-color .15s ease}
.zpm-share__btn:hover,
.zpm-share__btn:focus-visible{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-share__btn--whatsapp{
	border-color:transparent;
	background:#1ea952;
	color:#fff}
.zpm-share__btn--whatsapp:hover,
.zpm-share__btn--whatsapp:focus-visible{
	border-color:transparent;
	background:#128c4a;
	color:#fff}
.zpm-share__btn.is-copied{
	border-color:var(--wp--preset--color--success);
	color:var(--wp--preset--color--success)}
.zpm-post-cta{
	display:grid;
	justify-items:center;
	gap:10px;
	padding:clamp(24px,4vw,36px);
	border-radius:22px 26px 26px 22px;
	background:radial-gradient(120% 80% at 100% 0,color-mix(in srgb,var(--zpm-color-brand,#ff6900) 30%,transparent),transparent 60%),#0b1220;
	color:#f8fafc;
	text-align:center}
.zpm-post-cta p{
	margin:0}
.zpm-post-cta__title{
	color:#fff;
	font-family:var(--wp--preset--font-family--heading,inherit);
	font-size:clamp(1.25rem,1.1rem + .8vw,1.6rem);
	font-weight:800;
	line-height:1.25}
.zpm-post-cta__text{
	max-width:52ch;
	color:#cbd5e1}
.zpm-post-cta__actions{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:10px;
	margin-top:8px}
.zpm-post-cta__btn{
	display:inline-flex;
	align-items:center;
	gap:8px;
	min-height:46px;
	padding:0 20px;
	border:1px solid rgb(255 255 255 / .35);
	border-radius:15px 20px 20px 15px;
	color:#fff;
	font-weight:700;
	text-decoration:none}
.zpm-post-cta__btn:hover{
	border-color:#fff;
	color:#fff}
.zpm-post-cta__btn--wa{
	border-color:transparent;
	background:#1ea952}
.zpm-post-cta__btn--wa:hover{
	background:#128c4a}
.zpm-post-nav{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
	gap:12px}
.zpm-post-nav > *{
	margin:0 !important}
.zpm-post-nav a{
	display:block;
	height:100%;
	padding:16px 18px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:16px 20px 20px 16px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font-weight:700;
	line-height:1.4;
	text-decoration:none;
	transition:border-color .15s ease,color .15s ease}
.zpm-post-nav a:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-post-nav .post-navigation-link-next{
	text-align:right}

/* Related articles. */
.zpm-related{
	max-width:min(1080px,calc(100% - 2 * var(--wp--preset--spacing--40))) !important;
	margin:clamp(40px,6vw,72px) auto 0 !important}
.zpm-related__title{
	margin-bottom:20px !important;
	font-size:clamp(1.35rem,1.15rem + .8vw,1.7rem);
	text-align:center}
.zpm-related .wp-block-query{
	margin:0}
.zpm-comments{
	margin-top:clamp(36px,5vw,56px) !important}
@media (prefers-reduced-motion:reduce){
	.zpm-post-card,
	.zpm-post-card .wp-block-post-featured-image img{
	transition:none}
	.zpm-post-card:hover,
	.zpm-post-card:hover .wp-block-post-featured-image img{
	transform:none}
}
/* Cards: only the first category (several make the card noisy). */
.zpm-post-card__cat a:not(:first-of-type),
.zpm-post-card__cat .wp-block-post-terms__separator{
	display:none}
/* Few articles: cards stay centered and keep a reasonable width. */
.zpm-blog__list .wp-block-post-template.is-layout-grid,
.zpm-related .wp-block-post-template.is-layout-grid{
	grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),380px)) !important;
	justify-content:center}

/* Search button of the header: same look as the icon buttons (it is a <button>). */
button.zpm-header-btn,
button.zpm-app-icon-btn{
	font-family:inherit;
	cursor:pointer;
	appearance:none}

/* Search window: a panel at the top of the screen, full screen on phones. */
.zpm-sitesearch{
	position:fixed;
	inset:clamp(12px,8vh,88px) 0 auto;
	box-sizing:border-box;
	width:min(760px,calc(100% - 24px));
	max-height:calc(100dvh - 2 * clamp(12px,8vh,88px));
	margin:0 auto;
	padding:0;
	overflow:hidden;
	border:1px solid var(--wp--preset--color--border);
	border-radius:22px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	box-shadow:0 30px 70px -30px rgb(15 23 42/.55)}
.zpm-sitesearch[open]{
	display:flex;
	animation:zpm-sitesearch-in .2s cubic-bezier(.2,.8,.2,1)}
@keyframes zpm-sitesearch-in{
	from{
	opacity:0;
	transform:translateY(-12px)}
}
.zpm-sitesearch::backdrop{
	background:rgb(15 23 42/.5);
	backdrop-filter:blur(2px)}
.zpm-sitesearch__form{
	display:flex;
	flex-direction:column;
	width:100%;
	min-height:0}
.zpm-sitesearch__bar{
	display:flex;
	align-items:center;
	gap:10px;
	padding:14px 14px 14px 18px;
	border-bottom:1px solid var(--wp--preset--color--border);
	color:var(--wp--preset--color--muted)}
.zpm-sitesearch__input{
	flex:1;
	min-width:0;
	padding:8px 0;
	border:0;
	outline:0;
	background:transparent;
	color:var(--wp--preset--color--contrast);
	font:inherit;
	font-size:1.1rem}
.zpm-sitesearch__close{
	display:grid;
	flex:none;
	place-items:center;
	width:40px;
	height:40px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	background:transparent;
	color:var(--wp--preset--color--contrast);
	cursor:pointer}
.zpm-sitesearch__close:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-sitesearch__filters{
	display:flex;
	gap:8px;
	margin:0;
	padding:12px 16px;
	overflow-x:auto;
	border:0;
	border-bottom:1px solid var(--wp--preset--color--border);
	scrollbar-width:none}
.zpm-sitesearch__chip{
	position:relative;
	display:inline-flex;
	flex:none;
	align-items:center;
	gap:6px;
	padding:7px 13px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:999px;
	font-size:.88rem;
	font-weight:600;
	cursor:pointer;
	transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.zpm-sitesearch__chip input{
	position:absolute;
	opacity:0;
	pointer-events:none}
.zpm-sitesearch__chip:has(input:checked){
	border-color:var(--wp--preset--color--primary);
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
.zpm-sitesearch__chip:has(input:focus-visible){
	outline:2px solid var(--wp--preset--color--focus);
	outline-offset:2px}
/* After a search, the filters without results step aside. */
.zpm-sitesearch__chip.is-empty:not(:has(input:checked)){
	display:none}
.zpm-sitesearch__count:empty{
	display:none}
.zpm-sitesearch__count{
	min-width:1.4em;
	padding:0 6px;
	border-radius:999px;
	background:color-mix(in srgb,currentColor 14%,transparent);
	font-size:.78rem;
	text-align:center}
.zpm-sitesearch__results{
	flex:1;
	min-height:120px;
	padding:6px 10px 10px;
	overflow-y:auto;
	overscroll-behavior:contain}
.zpm-sitesearch__results[aria-busy="true"]{
	opacity:.6;
	transition:opacity .2s ease}
.zpm-sitesearch__hint{
	margin:0;
	padding:26px 12px;
	color:var(--wp--preset--color--muted);
	text-align:center}
.zpm-sitesearch__group + .zpm-sitesearch__group{
	margin-top:6px;
	padding-top:6px;
	border-top:1px dashed var(--wp--preset--color--border)}
.zpm-sitesearch__group-title{
	display:flex;
	gap:8px;
	align-items:center;
	margin:8px 8px 4px;
	color:var(--wp--preset--color--muted);
	font-size:.75rem;
	font-weight:700;
	letter-spacing:.06em;
	text-transform:uppercase}
.zpm-sitesearch__group-title span{
	font-weight:600}
.zpm-sitesearch__list{
	margin:0;
	padding:0;
	list-style:none}
.zpm-sitesearch__item{
	display:flex;
	gap:12px;
	align-items:flex-start;
	padding:10px;
	border-radius:14px;
	color:inherit;
	text-decoration:none;
	outline:0}
.zpm-sitesearch__item:hover,
.zpm-sitesearch__item:focus-visible{
	background:color-mix(in srgb,var(--wp--preset--color--primary) 9%,transparent)}
.zpm-sitesearch__item:focus-visible{
	box-shadow:inset 0 0 0 2px var(--wp--preset--color--focus)}
.zpm-sitesearch__img,
.zpm-sitesearch__icon{
	flex:none;
	width:44px;
	height:44px;
	border-radius:11px 14px 14px 11px;
	object-fit:cover}
.zpm-sitesearch__icon{
	display:grid;
	place-items:center;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,transparent);
	color:var(--wp--preset--color--primary)}
.zpm-sitesearch__body{
	display:grid;
	gap:2px;
	min-width:0}
.zpm-sitesearch__title{
	font-weight:700;
	line-height:1.3}
.zpm-sitesearch__text{
	display:-webkit-box;
	overflow:hidden;
	color:var(--wp--preset--color--muted);
	font-size:.88rem;
	line-height:1.45;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical}
.zpm-sitesearch__meta{
	color:var(--wp--preset--color--muted);
	font-size:.76rem}
.zpm-sitesearch mark,
.zpm-sitesearch-page mark{
	padding:0 2px;
	border-radius:4px;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 22%,transparent);
	color:inherit}
.zpm-sitesearch__more{
	display:inline-block;
	margin:2px 10px 6px;
	color:var(--wp--preset--color--primary);
	font-size:.88rem;
	font-weight:700}
.zpm-sitesearch__foot{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:8px 16px;
	padding:12px 16px;
	border-top:1px solid var(--wp--preset--color--border)}
.zpm-sitesearch__all{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:10px 16px;
	border:0;
	border-radius:15px 20px 20px 15px;
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast);
	font:inherit;
	font-weight:700;
	cursor:pointer}
.zpm-sitesearch__all:hover{
	filter:brightness(1.08)}
.zpm-sitesearch__keys{
	color:var(--wp--preset--color--muted);
	font-size:.8rem}
.zpm-sitesearch__keys kbd{
	padding:1px 6px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:6px;
	font:inherit;
	font-size:.75rem}
@media (max-width:599.98px){
	.zpm-sitesearch{
	inset:0;
	width:100%;
	max-width:none;
	height:100dvh;
	max-height:none;
	border:0;
	border-radius:0}
	.zpm-sitesearch__keys{
	display:none}
	.zpm-sitesearch__all{
	width:100%;
	justify-content:center}
}
@media (prefers-reduced-motion:reduce){
	.zpm-sitesearch[open]{
	animation:none}
}

/* Full results page (?s=): filters with counts, then the results. */
.zpm-sitesearch-page{
	box-sizing:border-box;
	width:min(900px,100%);
	margin:0 auto;
	padding:0 16px}
.zpm-sitesearch-tabs{
	display:flex;
	gap:8px;
	margin:0 0 14px;
	padding-bottom:4px;
	overflow-x:auto;
	scrollbar-width:none}
.zpm-sitesearch-tab{
	display:inline-flex;
	flex:none;
	align-items:center;
	gap:6px;
	padding:8px 14px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:999px;
	background:var(--wp--preset--color--surface);
	color:var(--wp--preset--color--contrast);
	font-size:.9rem;
	font-weight:600;
	text-decoration:none}
.zpm-sitesearch-tab:hover{
	border-color:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary)}
.zpm-sitesearch-tab.is-current{
	border-color:var(--wp--preset--color--primary);
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
.zpm-sitesearch-tab__count{
	padding:0 7px;
	border-radius:999px;
	background:color-mix(in srgb,currentColor 14%,transparent);
	font-size:.78rem}
.zpm-sitesearch-page__summary{
	margin:0 0 10px;
	color:var(--wp--preset--color--muted)}
.zpm-sitesearch-page__empty,
.zpm-sitesearch-page__none{
	display:grid;
	justify-items:center;
	gap:10px;
	padding:40px 16px;
	color:var(--wp--preset--color--muted);
	text-align:center}
.zpm-sitesearch-list{
	display:grid;
	gap:10px;
	margin:0;
	padding:0;
	list-style:none}
.zpm-sitesearch-item__link{
	display:flex;
	gap:14px;
	align-items:flex-start;
	padding:14px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:16px;
	background:var(--wp--preset--color--surface);
	color:inherit;
	text-decoration:none;
	transition:border-color .15s ease,box-shadow .15s ease}
.zpm-sitesearch-item__link:hover,
.zpm-sitesearch-item__link:focus-visible{
	border-color:var(--wp--preset--color--primary);
	box-shadow:0 12px 26px -20px rgb(15 23 42/.45)}
.zpm-sitesearch-item__img,
.zpm-sitesearch-item__icon{
	flex:none;
	width:64px;
	height:64px;
	border-radius:12px 16px 16px 12px;
	object-fit:cover}
.zpm-sitesearch-item__icon{
	display:grid;
	place-items:center;
	background:color-mix(in srgb,var(--wp--preset--color--primary) 12%,transparent);
	color:var(--wp--preset--color--primary)}
.zpm-sitesearch-item__body{
	display:grid;
	gap:4px;
	min-width:0}
.zpm-sitesearch-item__type{
	color:var(--wp--preset--color--muted);
	font-size:.78rem;
	font-weight:600;
	letter-spacing:.03em;
	text-transform:uppercase}
.zpm-sitesearch-item__title{
	font-size:1.08rem;
	font-weight:700;
	line-height:1.3}
.zpm-sitesearch-item__text{
	color:var(--wp--preset--color--muted);
	font-size:.93rem;
	line-height:1.5}
.zpm-sitesearch-pages{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:6px;
	margin:22px 0 8px}
.zpm-sitesearch-pages__page{
	display:grid;
	place-items:center;
	min-width:40px;
	height:40px;
	border:1px solid var(--wp--preset--color--border);
	border-radius:12px;
	color:inherit;
	text-decoration:none}
.zpm-sitesearch-pages__page.is-current{
	border-color:var(--wp--preset--color--primary);
	background:var(--wp--preset--color--primary);
	color:var(--wp--preset--color--primary-contrast)}
@media (max-width:599.98px){
	.zpm-sitesearch-item__img,
	.zpm-sitesearch-item__icon{
	width:48px;
	height:48px}
}

/* Header too narrow (assets/js/header-fit.js): the buttons keep only their icon. */
html.zpm-header-compact .zpm-header-btn__label{
	display:none}
html.zpm-header-compact .zpm-header-btn{
	padding:0 11px}

/* Touch screens: the header and the bottom tabs stay put while the page moves
   under them; a frosted-glass blur would be computed again at every pixel of
   scroll. An almost opaque background looks the same and scrolls smoothly. */
@media (hover:none),(pointer:coarse){
	.zpm-template-header{
	backdrop-filter:none;
	background-color:color-mix(in srgb,var(--wp--preset--color--surface) 97%,transparent)!important}
	.zpm-tabbar{
	backdrop-filter:none;
	background:var(--wp--preset--color--surface)}
}

/* Phones: a long site name gives way (« … ») instead of pushing the buttons
   out of the screen. A short name (Appearance › Editor › Identity) avoids it. */
@media (max-width:599.98px){
	.zpm-template-header > .wp-block-group > .wp-block-group:first-child{
	flex:0 1 auto;
	min-width:0}
	.zpm-template-header > .wp-block-group > .wp-block-group:last-child{
	flex-shrink:0;
	min-width:max-content}
	.zpm-template-header .zpm-site-name{
	min-width:0;
	overflow:hidden}
	.zpm-template-header .zpm-site-name a{
	display:block;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap}
}
