/*
Theme Name: Pawsh
Theme URI: https://schedopia.com/themes/pawsh
Author: ThinkMatic
Author URI: https://schedopia.com
Description: Pawsh is a warm, playful block theme for dog and cat grooming salons. Cream backgrounds, a terracotta accent, deep teal and soft rounded cards give your salon a site that feels as friendly as your team. It ships with every page a groomer needs: home, services, pages for dog grooming, bath and tidy, puppy and cat grooming, pricing with a size guide, groomers, first visit, gallery, reviews, about, blog, FAQ, contact, booking, grooming policy and privacy policy. It works hand in hand with the free Schedopia booking plugin, so pet parents can pick a service for their pet's size, choose a groomer and book a drop-off time right on your site. One click installs Schedopia and sets up your services, groomers, opening hours and pages, so you are ready to take bookings in minutes.
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pawsh
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, one-column, style-variations, template-editing, threaded-comments, translation-ready, wide-blocks, blog
*/

/*
 * Almost all styling lives in theme.json. This file only holds what
 * theme.json cannot express: block style variations and small refinements.
 */

/* ---------- Shared shapes ---------- */

:root {
	--pawsh-paw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='5' cy='10.5' rx='2.3' ry='2.7'/%3E%3Cellipse cx='9.3' cy='5.3' rx='2.3' ry='2.8'/%3E%3Cellipse cx='14.7' cy='5.3' rx='2.3' ry='2.8'/%3E%3Cellipse cx='19' cy='10.5' rx='2.3' ry='2.7'/%3E%3Cpath d='M12 11c-3 0-6.5 4.1-6.5 7 0 1.9 1.5 3 3.3 3 1.4 0 2-.7 3.2-.7s1.8.7 3.2.7c1.8 0 3.3-1.1 3.3-3 0-2.9-3.5-7-6.5-7z'/%3E%3C/svg%3E");
}

/* ---------- Accessibility ---------- */

.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--wp--preset--color--accent) 45%, transparent);
	outline-offset: 2px;
	border-radius: var(--wp--custom--radius--sm);
}

/* ---------- Tag (eyebrow) ---------- */

.is-style-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.45em;
	width: fit-content;
	margin-bottom: 0;
	padding: 0.35em 0.85em;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-3);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.is-style-eyebrow.has-text-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* On the dark blue bands the tag turns translucent white. */
:is(.pawsh-cta, .has-deep-background-color) .is-style-eyebrow {
	background: color-mix(in srgb, currentColor 14%, transparent);
	color: inherit;
}

/* ---------- Buttons ---------- */

.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 1.5px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--contrast);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--accent-2);
	border-color: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--contrast);
}

:is(.pawsh-cta, .has-deep-background-color) .wp-block-button.is-style-outline > .wp-block-button__link {
	border-color: color-mix(in srgb, currentColor 45%, transparent);
	color: inherit;
}

:is(.pawsh-cta, .has-deep-background-color) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: color-mix(in srgb, currentColor 12%, transparent);
	color: inherit;
}

.wp-block-button.is-style-text-link > .wp-block-button__link {
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--accent);
	padding: 0;
	font-weight: 600;
}

.wp-block-button.is-style-text-link > .wp-block-button__link::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.35em;
	transition: transform 0.2s ease;
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--accent-3);
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover::after {
	transform: translateX(0.25em);
}

/* The inverse button on blue bands: page colours, so it works in every variation. */
.wp-block-button__link.has-base-background-color:hover {
	background: var(--wp--preset--color--accent-2) !important;
	color: var(--wp--preset--color--contrast) !important;
}

/* ---------- Images ---------- */

.wp-block-image.is-style-rounded img,
.wp-block-post-featured-image.is-style-rounded img {
	border-radius: var(--wp--custom--radius--lg);
	box-shadow: var(--wp--preset--shadow--soft);
}

.wp-block-image.is-style-rounded.pawsh-xl img {
	border-radius: var(--wp--custom--radius--xl);
}

/* ---------- Groups ---------- */

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	box-shadow: var(--wp--preset--shadow--soft);
	padding: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--contrast);
}

.wp-block-group.is-style-tint-card {
	background: var(--wp--preset--color--accent-2);
	border-radius: var(--wp--custom--radius--lg);
	padding: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--contrast);
}

.has-base-2-background-color .wp-block-group.is-style-tint-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
}

/* ---------- Separators ---------- */

.wp-block-separator.is-style-short {
	border: 0;
	border-top: 3px solid var(--wp--preset--color--accent);
	border-radius: 3px;
	width: 3rem;
	margin-left: 0;
	opacity: 1;
}

/* ---------- Lists ---------- */

.wp-block-list.is-style-checks {
	list-style: none;
	padding-left: 0;
}

.wp-block-list.is-style-checks li {
	position: relative;
	padding-left: 2em;
	margin-bottom: 0.7em;
}

.wp-block-list.is-style-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.3em;
	height: 1.3em;
	border-radius: 50%;
	background-color: var(--wp--preset--color--accent);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10'/%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 20 20'%3E%3Ccircle cx='10' cy='10' r='10'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wp-block-list.is-style-checks li::after {
	content: "";
	position: absolute;
	left: 0.36em;
	top: 0.48em;
	width: 0.58em;
	height: 0.32em;
	border-left: 2px solid var(--wp--preset--color--on-accent);
	border-bottom: 2px solid var(--wp--preset--color--on-accent);
	transform: rotate(-45deg);
}

/* ---------- Announcement bar and header ---------- */

.pawsh-announce a {
	text-decoration: none;
	font-weight: 600;
}

.pawsh-announce a:hover {
	text-decoration: underline;
}

.pawsh-announce p {
	margin: 0;
}

.pawsh-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
	background: transparent !important;
}

/* The frosted backdrop lives on a pseudo-element: a backdrop-filter on the
   header itself would trap the mobile menu overlay inside the header. */
.pawsh-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	backdrop-filter: saturate(1.4) blur(12px);
}

@media (max-width: 599px) {
	.pawsh-announce p + p {
		display: none;
	}
}

.admin-bar .pawsh-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

@media (max-width: 600px) {
	.admin-bar .pawsh-header {
		top: 0;
	}
}

.pawsh-header .wp-block-site-title a {
	text-decoration: none;
}

.pawsh-header .wp-block-site-title,
.pawsh-header .wp-block-button__link,
.pawsh-header__phone {
	white-space: nowrap;
}

/* A small paw before the site name when there's no logo. */
.pawsh-header .wp-block-site-title a::before {
	content: "";
	display: inline-block;
	width: 0.95em;
	height: 0.95em;
	margin-right: 0.35em;
	vertical-align: -0.12em;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--pawsh-paw) center / contain no-repeat;
	mask: var(--pawsh-paw) center / contain no-repeat;
}

.pawsh-header .wp-block-site-logo + .wp-block-site-title a::before {
	display: none;
}

.pawsh-header__phone a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

.pawsh-header__phone a:hover {
	color: var(--wp--preset--color--accent);
}

/* Dropdown: a soft card under the parent item. */
.pawsh-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 15rem !important;
	padding: 0.5rem !important;
	border: 1px solid var(--wp--preset--color--line) !important;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--white) !important;
	box-shadow: var(--wp--preset--shadow--lift);
}

.pawsh-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.55rem 0.75rem !important;
	border-radius: var(--wp--custom--radius--sm);
}

.pawsh-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--contrast);
}

.pawsh-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
}

/* Mobile overlay: big, calm list with the submenu always open. */
.pawsh-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--40);
}

.pawsh-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation__submenu-container) {
	align-items: flex-start !important;
	text-align: left;
}

.pawsh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}

.pawsh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	min-width: 0 !important;
	padding: 0.25rem 0 0 1rem !important;
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
}

.pawsh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
}

/* Collapse the menu into the overlay below 1100px, not WordPress's default 600px. */
@media (max-width: 1099px) {
	.pawsh-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.pawsh-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	.pawsh-header__phone {
		display: none;
	}
}

@media (max-width: 599px) {
	.pawsh-header .pawsh-header__cta {
		display: none;
	}
}

/* ---------- Hero ---------- */

.pawsh-hero {
	overflow: hidden;
}

.pawsh-hero__media {
	position: relative;
}

/* A soft peach blob and a few paw prints behind the hero photo. */
.pawsh-hero__media::before {
	content: "";
	position: absolute;
	inset: 6% -8% -6% 10%;
	z-index: 0;
	border-radius: 58% 42% 48% 52% / 46% 54% 46% 54%;
	background: var(--wp--preset--color--accent-2);
}

.pawsh-hero__media::after {
	content: "";
	position: absolute;
	top: -1.5rem;
	left: -1.25rem;
	z-index: 0;
	width: 5rem;
	height: 5rem;
	background: color-mix(in srgb, var(--wp--preset--color--deep) 22%, transparent);
	-webkit-mask: var(--pawsh-paw) center / contain no-repeat;
	mask: var(--pawsh-paw) center / contain no-repeat;
	transform: rotate(-18deg);
}

.pawsh-hero__media > .wp-block-image {
	position: relative;
	z-index: 1;
}

.pawsh-hero__media .wp-block-image {
	margin: 0;
}

.pawsh-float {
	position: absolute;
	z-index: 2;
	margin: 0 !important;
	padding: 0.85rem 1.1rem !important;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--lift);
	color: var(--wp--preset--color--contrast);
	line-height: 1.3;
}

.pawsh-float p {
	margin: 0;
}

.pawsh-float--rating {
	left: -1.5rem;
	bottom: 2.5rem;
}

.pawsh-float--hours {
	right: -1rem;
	top: 2rem;
}

@media (max-width: 781px) {
	.pawsh-float--rating {
		left: 0.75rem;
		bottom: 0.75rem;
	}

	.pawsh-float--hours {
		right: 0.75rem;
		top: 0.75rem;
	}
}

.pawsh-chips {
	gap: 0.5rem !important;
}

.pawsh-chip {
	margin: 0 !important;
	padding: 0.45em 0.9em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
}

.pawsh-chip::before {
	content: "\2713";
	margin-right: 0.4em;
	color: var(--wp--preset--color--accent);
	font-weight: 700;
}

/* ---------- Trust bar ---------- */

.pawsh-trust p {
	margin: 0;
}

.pawsh-trust__item {
	align-items: center;
}

/* ---------- Icons (feature cards, trust bar) ---------- */

.pawsh-icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 3rem;
	height: 3rem;
	margin: 0;
	border-radius: var(--wp--custom--radius--md);
	background: var(--wp--preset--color--accent-2);
	font-size: 0;
	line-height: 0;
}

.pawsh-icon::before {
	content: "";
	width: 1.5rem;
	height: 1.5rem;
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--pawsh-icon) center / contain no-repeat;
	mask: var(--pawsh-icon) center / contain no-repeat;
}

.pawsh-icon--sm {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--wp--custom--radius--sm);
}

.pawsh-icon--sm::before {
	width: 1.25rem;
	height: 1.25rem;
}

/* Line icons drawn for Pawsh (GPL, see readme.txt). */
.pawsh-icon--shield { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.2-8 9-4.6-.8-8-4.5-8-9V6l8-3z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.pawsh-icon--card { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='M3 10h18M7 15h4'/%3E%3C/svg%3E"); }
.pawsh-icon--calendar { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8.5 15l2 2 4-4'/%3E%3C/svg%3E"); }
.pawsh-icon--clock { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.pawsh-icon--heart { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7.5-4.4-7.5-10A4.5 4.5 0 0112 7a4.5 4.5 0 017.5 3c0 5.6-7.5 10-7.5 10z'/%3E%3C/svg%3E"); }
.pawsh-icon--sparkle { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8L12 3zM18.5 15.5l.8 2.2 2.2.8-2.2.8-.8 2.2-.8-2.2-2.2-.8 2.2-.8.8-2.2z'/%3E%3C/svg%3E"); }
.pawsh-icon--smile { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 14c1 1.5 2.4 2.2 4 2.2s3-.7 4-2.2M9 9.5h.01M15 9.5h.01'/%3E%3C/svg%3E"); }
.pawsh-icon--phone { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h3.5l1.8 4.5-2.3 1.4a11 11 0 005.1 5.1l1.4-2.3L19 14.5V18a2 2 0 01-2 2A15 15 0 013 6a2 2 0 012-2z'/%3E%3C/svg%3E"); }
.pawsh-icon--leaf { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-14 15-14 0 10-6 15-14 15M5 19l7-7'/%3E%3C/svg%3E"); }
.pawsh-icon--paw { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5.5' cy='10' r='2'/%3E%3Ccircle cx='9.5' cy='5.5' r='2'/%3E%3Ccircle cx='14.5' cy='5.5' r='2'/%3E%3Ccircle cx='18.5' cy='10' r='2'/%3E%3Cpath d='M12 11.5c-2.6 0-5.5 3.6-5.5 6.1 0 1.6 1.3 2.4 2.8 2.4 1.2 0 1.7-.6 2.7-.6s1.5.6 2.7.6c1.5 0 2.8-.8 2.8-2.4 0-2.5-2.9-6.1-5.5-6.1z'/%3E%3C/svg%3E"); }
.pawsh-icon--scissors { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M20 4L8.1 15.9M14.5 14.5L20 20M8.1 8.1L12 12'/%3E%3C/svg%3E"); }
.pawsh-icon--bubbles { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='14' r='5.5'/%3E%3Ccircle cx='17.5' cy='7' r='3'/%3E%3Ccircle cx='18.5' cy='17' r='2'/%3E%3Cpath d='M6.5 12.5a2.8 2.8 0 012.5-1.8'/%3E%3C/svg%3E"); }
.pawsh-icon--brush { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='11' height='9' rx='2.5'/%3E%3Cpath d='M12.5 11.5l7 7a1.8 1.8 0 01-2.5 2.5l-7-7M6.5 6.5h.01M10.5 6.5h.01M6.5 9h.01M10.5 9h.01'/%3E%3C/svg%3E"); }
.pawsh-icon--dog { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7.5C5 6 3.5 6.5 3 8.5l1 5 3 .5M17 7.5c2-1.5 3.5-1 4 1l-1 5-3 .5'/%3E%3Cpath d='M7 9c0-3 2.2-5 5-5s5 2 5 5v4.5c0 3.6-2.2 6.5-5 6.5s-5-2.9-5-6.5V9z'/%3E%3Cpath d='M10 10.5h.01M14 10.5h.01M10.8 14.5h2.4L12 16z'/%3E%3C/svg%3E"); }
.pawsh-icon--cat { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3.5l3.5 4h7l3.5-4V13c0 4.4-3.1 7.5-7 7.5S5 17.4 5 13V3.5z'/%3E%3Cpath d='M9.5 12h.01M14.5 12h.01M11 15.5l1 .8 1-.8M3 14.5l4-.5M3 17l4-1M21 14.5l-4-.5M21 17l-4-1'/%3E%3C/svg%3E"); }
.pawsh-icon--syringe { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 2.5l3.5 3.5M16 4.5l3.5 3.5M17.8 6.2L8 16l-3.5.5.5-3.5L14.8 3.2M10.5 7.5l2 2M8 10l2 2M5 19l-2.5 2.5'/%3E%3C/svg%3E"); }
.pawsh-icon--star { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9L12 3z'/%3E%3C/svg%3E"); }
.pawsh-icon--car { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17H3v-4.5L5.2 7h13.6l2.2 5.5V17h-2M3.5 12.5h17'/%3E%3Ccircle cx='7.5' cy='17' r='2'/%3E%3Ccircle cx='16.5' cy='17' r='2'/%3E%3Cpath d='M9.5 17h5'/%3E%3C/svg%3E"); }
.pawsh-icon--puppy { --pawsh-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6.5C6 4.5 3.5 5 3 7.5c-.4 2 .5 4.5 2.5 5M16 6.5c2-2 4.5-1.5 5 1 .4 2-.5 4.5-2.5 5'/%3E%3Ccircle cx='12' cy='12' r='6.5'/%3E%3Cpath d='M9.8 11h.01M14.2 11h.01M11 14h2l-1 1.2z'/%3E%3C/svg%3E"); }

/* ---------- Feature cards ---------- */

.pawsh-feature {
	height: 100%;
}

.pawsh-feature .wp-block-heading {
	margin-top: 0.25rem;
}

/* ---------- Steps ---------- */

.pawsh-step__number {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1;
}

/* ---------- Team ---------- */

.pawsh-person {
	height: 100%;
}

.pawsh-person .wp-block-image {
	margin-bottom: 0.5rem;
}

.pawsh-person .wp-block-heading {
	margin-top: 0.15rem;
}

.pawsh-person__role {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

/* ---------- Specialty tiles ---------- */

.pawsh-tile {
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--white);
	box-shadow: var(--wp--preset--shadow--soft);
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.pawsh-tile .wp-block-image {
	margin: 0;
	overflow: hidden;
}

.pawsh-tile .wp-block-image img {
	border-radius: 0;
	transition: transform 0.4s ease;
}

.pawsh-tile__body {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.pawsh-tile .wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

.pawsh-tile .wp-block-heading a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.pawsh-tile {
	position: relative;
}

.pawsh-tile__more {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.pawsh-tile__more::after {
	content: "\2192";
	display: inline-block;
	margin-left: 0.35em;
	transition: transform 0.2s ease;
}

.pawsh-tile:hover .pawsh-tile__more::after {
	transform: translateX(0.25em);
}

@media (prefers-reduced-motion: no-preference) {
	.pawsh-tile:hover {
		transform: translateY(-3px);
		box-shadow: var(--wp--preset--shadow--lift);
	}

	.pawsh-tile:hover .wp-block-image img {
		transform: scale(1.04);
	}
}

/* ---------- Anchor chips (Services) ---------- */

.pawsh-chipnav {
	gap: 0.5rem !important;
}

.pawsh-chipnav p {
	margin: 0;
}

.pawsh-chipnav a {
	display: inline-block;
	padding: 0.5em 1em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--white);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
}

.pawsh-chipnav a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

/* ---------- Vaccination band ---------- */

.pawsh-band {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 22%, transparent);
	border-radius: var(--wp--custom--radius--lg);
}

.pawsh-band .pawsh-icon {
	background: var(--wp--preset--color--white);
}

.wp-block-button__link.has-alert-background-color:hover {
	filter: brightness(0.92);
}

/* ---------- Call to action band ---------- */

.pawsh-cta {
	border-radius: var(--wp--custom--radius--xl);
	color: #FFFFFF;
}

.pawsh-cta a:not(.wp-block-button__link) {
	color: inherit;
}

.pawsh-cta .pawsh-muted {
	opacity: 0.85;
}

/* ---------- Opening hours table ---------- */

.pawsh-hours {
	margin: 0;
}

.pawsh-hours p {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0.6em 0;
	border-bottom: 1px solid color-mix(in srgb, currentColor 16%, transparent);
}

.pawsh-hours p span:first-child {
	font-weight: 600;
}

/* ---------- Reviews ---------- */

.pawsh-quote .wp-block-quote {
	border: 0;
	padding: 0;
	margin: 0;
}

.pawsh-quote .wp-block-quote cite {
	display: block;
	margin-top: 1rem;
}

.pawsh-stars {
	margin: 0;
	color: #F5A524;
	letter-spacing: 0.12em;
	font-size: 1.05em;
}

/* ---------- FAQ (details) ---------- */

.wp-block-details {
	margin: 0;
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.wp-block-details + .wp-block-details {
	margin-top: 0 !important;
}

.wp-block-details summary {
	cursor: pointer;
	position: relative;
	padding-right: 2.75rem;
	list-style: none;
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1.35;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-3);
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.15rem;
	font-weight: 600;
}

.wp-block-details[open] summary::after {
	content: "\2212";
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
}

.wp-block-details > :not(summary) {
	margin-top: 0.75em;
	color: var(--wp--preset--color--contrast-2);
}

/* ---------- Stats ---------- */

.pawsh-stat__number {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1;
}

/* ---------- Size guide cards ---------- */

.pawsh-size {
	position: relative;
	overflow: hidden;
}

.pawsh-size .pawsh-stat__number {
	font-size: var(--wp--preset--font-size--x-large);
	letter-spacing: -0.01em;
}

/* A paw that grows with the size band. */
.pawsh-size::after {
	content: "";
	position: absolute;
	right: -0.4rem;
	bottom: -0.4rem;
	width: calc(2rem + var(--pawsh-size-step, 1) * 0.9rem);
	height: calc(2rem + var(--pawsh-size-step, 1) * 0.9rem);
	background: var(--wp--preset--color--accent-2);
	-webkit-mask: var(--pawsh-paw) center / contain no-repeat;
	mask: var(--pawsh-paw) center / contain no-repeat;
	pointer-events: none;
}

.pawsh-size--2 { --pawsh-size-step: 2; }
.pawsh-size--3 { --pawsh-size-step: 3; }
.pawsh-size--4 { --pawsh-size-step: 4; }

.pawsh-size > * {
	position: relative;
	z-index: 1;
}

/* ---------- Add-on price list ---------- */

.pawsh-addon {
	gap: 1.5rem !important;
	padding: 1rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pawsh-addon p {
	margin: 0;
}

.pawsh-addon__price {
	flex: none;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}

/* ---------- Gallery ---------- */

.pawsh-gallery .wp-block-image {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--wp--custom--radius--lg);
}

.pawsh-gallery .wp-block-image figcaption {
	position: absolute;
	right: 0.6rem;
	bottom: 0.6rem;
	left: 0.6rem;
	margin: 0;
	padding: 0.4rem 0.7rem;
	border-radius: var(--wp--custom--radius--pill);
	background: color-mix(in srgb, var(--wp--preset--color--white) 90%, transparent);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	text-align: center;
}

@media (prefers-reduced-motion: no-preference) {
	.pawsh-gallery .wp-block-image img {
		transition: transform 0.4s ease;
	}

	.pawsh-gallery .wp-block-image:hover img {
		transform: scale(1.04);
	}
}

/* ---------- Comparison cards ---------- */

.pawsh-compare .wp-block-heading {
	margin-top: 0;
}

.pawsh-compare__tag {
	margin: 0;
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ---------- Footer ---------- */

.pawsh-footer {
	--pawsh-footer-muted: color-mix(in srgb, currentColor 72%, transparent);
}

.pawsh-footer .pawsh-brand {
	color: inherit;
}

.pawsh-footer .wp-block-navigation-item {
	margin-bottom: 0.15rem;
}

.pawsh-footer .wp-block-navigation a:hover {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.pawsh-footer .pawsh-hours p {
	padding: 0.4em 0;
}

.pawsh-footer__heading {
	margin-bottom: 0.75rem;
	opacity: 0.7;
}

/* ---------- Booking placeholder (when Schedopia is not active) ---------- */

.pawsh-booking-placeholder {
	border: 1.5px dashed var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	background: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	text-align: center;
}

.pawsh-booking-placeholder__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	margin: 0 0 0.4em;
}

.pawsh-booking-placeholder p {
	margin: 0.4em 0;
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion: no-preference) {
	.wp-block-button__link,
	.wp-block-navigation-item__content {
		transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
	}

	.wp-block-button:not(.is-style-text-link) > .wp-block-button__link:hover {
		transform: translateY(-1px);
	}
}

/* ---------- Service menu preview (before Schedopia is set up) ---------- */

.pawsh-preview-note {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--contrast-2);
	margin-bottom: var(--wp--preset--spacing--30);
}

.pawsh-services {
	list-style: none;
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0;
}

.pawsh-services--grid {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}

@media (min-width: 960px) {
	.pawsh-services--grid {
		grid-template-columns: repeat(var(--pawsh-cols, 3), minmax(0, 1fr));
	}
}

.pawsh-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--wp--custom--radius--lg);
	box-shadow: var(--wp--preset--shadow--soft);
}

.pawsh-card img {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.pawsh-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.45rem;
	padding: var(--wp--preset--spacing--30);
}

.pawsh-card__body p,
.pawsh-card__body h3 {
	margin: 0;
}

.pawsh-card__cat {
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.pawsh-card__title {
	font-size: var(--wp--preset--font-size--large);
}

.pawsh-card__desc {
	flex: 1;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.pawsh-card__meta {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--x-small);
}

.pawsh-card__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 0.5rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: var(--wp--preset--font-size--small);
}

.pawsh-card__price b {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 600;
}

.pawsh-card__price span {
	margin-left: 0.3em;
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--x-small);
}

.pawsh-card__book {
	padding: 0.45em 1em;
	border-radius: var(--wp--custom--radius--pill);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--on-accent);
	font-weight: 600;
	text-decoration: none;
}

.pawsh-card__book:hover {
	background: var(--wp--preset--color--accent-3);
	color: var(--wp--preset--color--on-accent);
}

.pawsh-card--person img {
	aspect-ratio: 4 / 5;
}

.pawsh-menu__row {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 0.25rem 1.5rem;
	align-items: baseline;
	padding: 1rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.pawsh-menu__row p {
	margin: 0;
}

.pawsh-menu__title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}

.pawsh-menu__desc {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.pawsh-menu__meta {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.pawsh-menu__price {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	white-space: nowrap;
}

/* ---------- Muted text and dividers on any background ---------- */

.pawsh-muted {
	opacity: 0.78;
}

.pawsh-divider {
	border-top-style: solid;
	border-top-color: color-mix(in srgb, currentColor 18%, transparent);
}

/* Anchored sections clear the sticky header. */
[id] {
	scroll-margin-top: 6rem;
}

/* Sections butt up against the header and footer; no gap between template parts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* ---------- Page heroes ---------- */

.pawsh-page-hero {
	background-image: radial-gradient(60rem 30rem at 85% -10%, color-mix(in srgb, var(--wp--preset--color--accent) 10%, transparent), transparent 70%);
}

/* Portraits and tiles two across on phones; tighter type to fit. */
@media (max-width: 599px) {
	.pawsh-team,
	.pawsh-tiles {
		gap: var(--wp--preset--spacing--30) !important;
	}

	.pawsh-team .wp-block-heading,
	.pawsh-tiles .wp-block-heading {
		font-size: 1.0625rem !important;
	}

	.pawsh-team .pawsh-person__role {
		font-size: var(--wp--preset--font-size--x-small);
	}
}
