/*
Theme Name:   Pawz Party
Theme URI:    https://www.pawzpartyinc.com/
Description:  Pawz Party Inc child theme for Hello Elementor. Brand styles live in Elementor > Site Settings; this file only holds effects Elementor cannot express.
Author:       Pawz Party Inc
Template:     hello-elementor
Version:      1.0.0
Requires PHP: 7.4
Text Domain:  pawzparty
*/

/* ---------- Brand tokens (mirror of Elementor global colours) ---------- */
:root {
	--pawz-red: #d62828;
	--pawz-yellow: #f9d71c;
	--pawz-lime: #8dc63f;
	--pawz-green: #2e7d32;
	--pawz-sky: #a9d8f5;
	--pawz-navy: #1f2a6b;
	--pawz-cream: #fff9ec;
	--pawz-ink: #1a1a1a;
	--pawz-outline: 3px;
	--pawz-shadow: 6px 6px 0 var(--pawz-ink);
	--pawz-ease: cubic-bezier(0.34, 1.56, 0.64, 1);
}

body {
	background-color: var(--pawz-cream);
	-webkit-font-smoothing: antialiased;
}

/* ---------- Sticker title: logo-style outline + offset shadow ----------
   Add CSS class "pawz-sticker-title" to any Elementor Heading widget. */
.pawz-sticker-title .elementor-heading-title {
	-webkit-text-stroke: var(--pawz-outline) var(--pawz-ink);
	paint-order: stroke fill;
	text-shadow: 4px 5px 0 var(--pawz-ink);
	letter-spacing: 0.01em;
}

/* ---------- Sticker card: white die-cut card with hard shadow ----------
   Add CSS class "pawz-card" to any Elementor Container. */
.pawz-card {
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 22px;
	box-shadow: var(--pawz-shadow);
	transition: transform 0.25s var(--pawz-ease), box-shadow 0.25s var(--pawz-ease);
}
.pawz-card:hover,
.pawz-card:focus-within {
	transform: translate(-3px, -3px) rotate(-0.6deg);
	box-shadow: 9px 9px 0 var(--pawz-ink);
}

/* ---------- Buttons: chunky sticker buttons ----------
   Add CSS class "pawz-btn" to any Elementor Button widget. */
.pawz-btn .elementor-button {
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	box-shadow: 4px 4px 0 var(--pawz-ink);
	transition: transform 0.18s var(--pawz-ease), box-shadow 0.18s var(--pawz-ease);
}
.pawz-btn .elementor-button:hover,
.pawz-btn .elementor-button:focus-visible {
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--pawz-ink);
}
.pawz-btn .elementor-button:active {
	transform: translate(2px, 2px);
	box-shadow: 1px 1px 0 var(--pawz-ink);
}

/* ---------- Green tagline ribbon ----------
   Add CSS class "pawz-ribbon" to a Heading widget. */
.pawz-ribbon .elementor-heading-title {
	display: inline-block;
	position: relative;
	padding: 0.45em 1.6em;
	background: var(--pawz-green);
	color: var(--pawz-cream);
	clip-path: polygon(0 0, 100% 0, 96% 50%, 100% 100%, 0 100%, 4% 50%);
}

/* ---------- Bunting strip ----------
   Add CSS class "pawz-bunting" to an empty Container (height ~40px). */
.pawz-bunting {
	background-image: url("assets/img/bunting.svg");
	background-repeat: repeat-x;
	background-size: auto 100%;
}

/* ---------- Party bus drive-in (hero logo) ----------
   Add CSS class "pawz-bus" to an Image widget. */
@keyframes pawz-drive-in {
	0% { transform: translateX(-60vw) rotate(-2deg); opacity: 0; }
	70% { transform: translateX(2%) rotate(1deg); opacity: 1; }
	85% { transform: translateX(-1%) rotate(-0.5deg); }
	100% { transform: translateX(0) rotate(0); }
}
@keyframes pawz-idle-bounce {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}
.pawz-bus img {
	animation: pawz-drive-in 1.4s var(--pawz-ease) both, pawz-idle-bounce 2.6s ease-in-out 1.6s infinite;
	filter: drop-shadow(0 18px 18px rgba(31, 42, 107, 0.25));
}

/* ---------- Sky scene: sun, clouds and rolling hills like the box art ----------
   Add CSS class "pawz-sky-scene" to a full-width Container. */
.pawz-sky-scene {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.pawz-sky-scene::before,
.pawz-sky-scene::after {
	content: "";
	position: absolute;
	pointer-events: none;
	z-index: -1;
}
.pawz-sky-scene::before {
	inset: 0 0 auto 0;
	height: 100%;
	background:
		url("assets/img/sun.svg") no-repeat right 3% top 56px / clamp(70px, 9vw, 130px),
		url("assets/img/cloud.svg") no-repeat left 3% top 120px / clamp(110px, 14vw, 210px),
		url("assets/img/cloud.svg") no-repeat right 30% top 62% / clamp(70px, 8vw, 130px);
}
.pawz-sky-scene::after {
	inset: auto 0 0 0;
	height: clamp(120px, 22vw, 300px);
	background: url("assets/img/hills.svg") no-repeat center bottom / 100% 100%;
}

/* ---------- Tilted sticker photos ---------- */
.pawz-tilt-left { transform: rotate(-4deg); }
.pawz-tilt-right { transform: rotate(3.5deg); }
.pawz-tilt-left,
.pawz-tilt-right { transition: transform 0.3s var(--pawz-ease); }
.pawz-tilt-left:hover,
.pawz-tilt-right:hover { transform: rotate(0) scale(1.04); }
.pawz-photo img {
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 18px;
	box-shadow: var(--pawz-shadow);
	background: #fff;
}

/* ---------- Social icons ---------- */
.pawz-social .elementor-social-icon {
	box-shadow: 3px 3px 0 var(--pawz-ink);
	transition: transform 0.18s var(--pawz-ease);
}
.pawz-social .elementor-social-icon:hover { transform: translate(-2px, -2px) rotate(-6deg); }

/* ---------- Small sticker bits ---------- */
.pawz-eyebrow .elementor-heading-title { letter-spacing: 0.02em; }

.pawz-badge {
	position: absolute !important;
	right: 4%;
	top: 6%;
	width: auto !important;
}
.pawz-badge .elementor-heading-title {
	display: grid;
	place-items: center;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: var(--pawz-yellow);
	border: var(--pawz-outline) solid var(--pawz-ink);
	box-shadow: 5px 5px 0 var(--pawz-ink);
	transform: rotate(12deg);
	text-align: center;
	line-height: 1;
	animation: pawz-wiggle 3.2s ease-in-out 1.6s infinite;
}
@keyframes pawz-wiggle {
	0%, 100% { transform: rotate(12deg); }
	50% { transform: rotate(4deg) scale(1.05); }
}
@media (max-width: 767px) {
	.pawz-badge .elementor-heading-title { width: 86px; height: 86px; }
}
.pawz-hero-visual { position: relative; }

.pawz-chip .elementor-heading-title {
	display: inline-block;
	padding: 0.45em 1.1em;
	background: #fff;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 999px;
	box-shadow: 3px 3px 0 var(--pawz-ink);
}
.pawz-chip:nth-child(odd) .elementor-heading-title { transform: rotate(-2deg); }
.pawz-chip:nth-child(even) .elementor-heading-title { transform: rotate(2deg); }

.pawz-step-number .elementor-heading-title {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--pawz-yellow);
	border: var(--pawz-outline) solid var(--pawz-ink);
	box-shadow: 3px 3px 0 var(--pawz-ink);
}

.pawz-offset-down { margin-top: 48px; }

/* Occasion cards */
.pawz-card-img img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 14px;
	border: 2px solid var(--pawz-ink);
	background: #fff;
}
.pawz-card .elementor-widget-heading a { color: inherit; }
.pawz-card-foot { margin-top: auto; }
.pawz-card--gentle {
	border-color: #2b2c7a;
	box-shadow: 6px 6px 0 #c9b8f0;
	background: linear-gradient(180deg, #ffffff 60%, #f3eefe 100%) !important;
}
.pawz-card--gentle:hover { box-shadow: 9px 9px 0 #c9b8f0; }

/* Icon boxes */
.pawz-iconbox { flex: 1 1 220px; }
.pawz-iconbox .elementor-icon {
	border: var(--pawz-outline) solid var(--pawz-ink);
	box-shadow: 4px 4px 0 var(--pawz-ink);
}

/* ---------- Header ---------- */
.pawz-announce p { margin: 0; text-align: center; }
.pawz-header-bar .elementor-widget-theme-site-logo img { max-height: 74px; width: auto; }
.pawz-nav .elementor-nav-menu--dropdown {
	box-shadow: 6px 6px 0 var(--pawz-ink);
	overflow: hidden;
}
.elementor-sticky--effects .pawz-announce { display: none; }
.elementor-sticky--effects .pawz-header-bar { box-shadow: 0 6px 0 rgba(26, 26, 26, 0.08); }
@media (max-width: 1024px) {
	.pawz-header-actions .pawz-btn { display: none; }
}

/* ---------- Footer ---------- */
.pawz-footer a { color: var(--pawz-cream); }
.pawz-footer a:hover { color: var(--pawz-yellow); }
.pawz-footer .elementor-widget-theme-site-logo img {
	background: var(--pawz-cream);
	border-radius: 18px;
	padding: 10px;
	border: var(--pawz-outline) solid var(--pawz-ink);
}
.pawz-footer-menu .elementor-nav-menu a { padding-left: 0 !important; }

/* ---------- Forms ---------- */
.pawz-form .elementor-field-group .elementor-field {
	min-height: 52px;
	padding: 12px 16px;
}
.pawz-form .elementor-message-success {
	padding: 14px 18px;
	border-radius: 14px;
	background: #ecf7df;
	color: var(--pawz-green);
	font-weight: 700;
}

/* ---------- Accordion (FAQ) ---------- */
.pawz-accordion .elementor-accordion-item {
	margin-bottom: 14px;
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 18px;
	box-shadow: 5px 5px 0 var(--pawz-ink);
	overflow: hidden;
	background: #fff;
}
.pawz-accordion .elementor-tab-title { padding: 18px 22px !important; }
.pawz-accordion .elementor-tab-content { border-top: 2px dashed var(--pawz-ink) !important; }

/* ---------- Policy pages ---------- */
.pawz-legal-text h2 {
	margin: 1.6em 0 0.5em;
	font-family: "Fredoka", sans-serif;
	font-size: 1.55rem;
	color: var(--pawz-navy);
	scroll-margin-top: 130px;
}
.pawz-legal-text h2:first-of-type { margin-top: 0.8em; }
.pawz-legal-text ul { padding-left: 1.2em; }
.pawz-legal-text li { margin-bottom: 0.45em; }
.pawz-legal-text li::marker { color: var(--pawz-red); }
.pawz-legal-text .pawz-updated {
	display: inline-block;
	padding: 0.3em 0.9em;
	background: var(--pawz-sky);
	border: 2px solid var(--pawz-ink);
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.9rem;
}
.pawz-toc .elementor-toc__header { border-bottom: var(--pawz-outline) solid var(--pawz-ink); }
.pawz-toc { box-shadow: 5px 5px 0 var(--pawz-ink); border-radius: 18px; }

/* ---------- WooCommerce: product grid ---------- */
.woocommerce ul.products li.product,
.pawz-product-grid ul.products li.product,
.pawz-related ul.products li.product {
	padding: 16px 16px 20px !important;
	background: #fff;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 22px;
	box-shadow: var(--pawz-shadow);
	text-align: left;
	transition: transform 0.25s var(--pawz-ease), box-shadow 0.25s var(--pawz-ease);
}
.woocommerce ul.products li.product:hover {
	transform: translate(-3px, -3px) rotate(-0.6deg);
	box-shadow: 9px 9px 0 var(--pawz-ink);
}
.woocommerce ul.products li.product a img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 14px;
	border: 2px solid var(--pawz-ink);
	margin-bottom: 14px !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: "Fredoka", sans-serif !important;
	font-weight: 600 !important;
	font-size: 1.3rem !important;
	color: var(--pawz-navy) !important;
}
.woocommerce ul.products li.product .price {
	font-family: "Fredoka", sans-serif;
	font-weight: 700;
	font-size: 1.25rem !important;
	color: var(--pawz-red) !important;
}
.woocommerce ul.products li.product .button,
.woocommerce div.product form.cart .button,
.woocommerce .button.alt,
.woocommerce-cart .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--pawz-red) !important;
	color: #fff !important;
	font-family: "Nunito", sans-serif;
	font-weight: 800 !important;
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 999px !important;
	box-shadow: 4px 4px 0 var(--pawz-ink);
	padding: 0.8em 1.6em !important;
	transition: transform 0.18s var(--pawz-ease), box-shadow 0.18s var(--pawz-ease);
}
.woocommerce ul.products li.product .button:hover,
.woocommerce div.product form.cart .button:hover {
	background: var(--pawz-yellow) !important;
	color: var(--pawz-ink) !important;
	transform: translate(-2px, -2px);
	box-shadow: 6px 6px 0 var(--pawz-ink);
}
.woocommerce span.onsale {
	background: var(--pawz-yellow);
	color: var(--pawz-ink);
	border: 2px solid var(--pawz-ink);
}

/* ---------- WooCommerce: single product ---------- */
.pawz-gallery .woocommerce-product-gallery__image img,
.pawz-gallery .flex-control-thumbs img {
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 18px;
	background: #fff;
}
.pawz-gallery .woocommerce-product-gallery { box-shadow: none; }
.pawz-gallery .flex-control-thumbs { display: flex; gap: 10px; margin-top: 12px !important; }
.pawz-gallery .flex-control-thumbs li { width: 22% !important; }
.pawz-breadcrumb .woocommerce-breadcrumb { font-weight: 700; font-size: 0.95rem; }
.pawz-atc .quantity .qty {
	min-height: 52px;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 14px;
	font-weight: 800;
}
.pawz-short { font-size: 1.15rem; }
.pawz-tabs .woocommerce-tabs ul.tabs li {
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 14px 14px 0 0 !important;
	background: var(--pawz-cream) !important;
}
.pawz-tabs .woocommerce-tabs ul.tabs li.active { background: var(--pawz-yellow) !important; }
.pawz-tabs .woocommerce-Tabs-panel {
	padding: 26px 28px !important;
	background: #fff;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 0 18px 18px 18px;
	box-shadow: 5px 5px 0 var(--pawz-ink);
}
.pawz-tabs .woocommerce-Tabs-panel h2 { display: none; }
.pawz-tabs .woocommerce-Tabs-panel h3 { color: var(--pawz-navy); font-family: "Fredoka", sans-serif; }
ul.pawz-inside { list-style: none; padding-left: 0; }
ul.pawz-inside li { position: relative; padding-left: 1.8em; margin-bottom: 0.5em; }
ul.pawz-inside li::before { content: "🐾"; position: absolute; left: 0; }

/* Gentle memorial product page */
.single-product.postid-47 .pawz-price .price { color: #2b2c7a !important; }
.single-product.postid-47 .pawz-product-title .elementor-heading-title { color: #2b2c7a; }

/* ---------- Cart / checkout / account pages ---------- */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main {
	max-width: 1240px;
	margin: 0 auto;
	padding: 40px 20px 80px;
}
.woocommerce-cart .page-header .entry-title,
.woocommerce-checkout .page-header .entry-title,
.woocommerce-account .page-header .entry-title {
	font-family: "Fredoka", sans-serif;
	color: var(--pawz-navy);
}

/* ---------- Cookie banner (CookieAdmin) brand skin ----------
   Accept and Reject get equal visual weight (consent best practice). */
.cookieadmin_law_container .cookieadmin_consent_inside,
.cookieadmin_cookie_modal {
	background: #fff !important;
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 20px !important;
	box-shadow: 6px 6px 0 var(--pawz-ink) !important;
	font-family: "Nunito", sans-serif !important;
	color: var(--pawz-ink) !important;
}
#cookieadmin_notice_title,
.cookieadmin_preference_title {
	font-family: "Fredoka", sans-serif !important;
	font-weight: 600 !important;
	font-size: 1.2rem !important;
	color: var(--pawz-navy) !important;
}
#cookieadmin_notice_title::before { content: "🍪 "; }
#cookieadmin_notice { color: var(--pawz-ink) !important; font-size: 0.95rem !important; }
.cookieadmin_consent_btns .cookieadmin_btn,
.cookieadmin_cookie_modal .cookieadmin_btn {
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 999px !important;
	font-family: "Nunito", sans-serif !important;
	font-weight: 800 !important;
	box-shadow: 3px 3px 0 var(--pawz-ink) !important;
	transition: transform 0.18s var(--pawz-ease) !important;
}
.cookieadmin_consent_btns .cookieadmin_btn:hover { transform: translate(-1px, -1px); }
.cookieadmin_accept_btn,
.cookieadmin_reject_btn {
	background: var(--pawz-red) !important;
	color: #fff !important;
}
.cookieadmin_customize_btn {
	background: #fff !important;
	color: var(--pawz-ink) !important;
}

/* ---------- Keyboard focus ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--pawz-green);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ---------- Late fixes ---------- */
.pawz-btn .elementor-button { white-space: nowrap; }
.pawz-logo img { max-height: 74px; width: auto; }
.pawz-footer-logo img {
	max-height: none;
	background: var(--pawz-cream);
	border-radius: 18px;
	padding: 10px;
	border: var(--pawz-outline) solid var(--pawz-ink);
}

/* ---------- Compact one-row header on tablet/phone ---------- */
@media (max-width: 1024px) {
	.pawz-header-bar > .e-con-inner,
	.pawz-header-bar.e-con { flex-wrap: nowrap !important; }
	.pawz-header-bar .pawz-logo { flex: 0 0 auto; order: 1; }
	.pawz-header-actions { width: auto !important; flex: 0 0 auto !important; order: 2; margin-left: auto; }
	.pawz-header-bar .pawz-nav { flex: 0 0 auto; order: 3; width: auto !important; }
	.pawz-header-bar .pawz-nav .elementor-nav-menu--dropdown { left: 0; right: 0; }
}
@media (max-width: 767px) {
	.pawz-announce { display: none; }
	.pawz-logo img { max-height: 56px; }
	.pawz-cart .elementor-menu-cart__toggle .elementor-button-text { display: none; }
}

/* =====================================================================
   DESIGN PASS 2: header blend, hanging logo, motion, framed photos,
   decorated section breaks.
   ===================================================================== */

/* ---------- Header that melts into the sky ---------- */
.pawz-header { position: relative; z-index: 60; }
.pawz-header-bar { position: relative; overflow: visible !important; transition: background-color .3s, box-shadow .3s; }
/* bunting garland hanging under the header */
.pawz-header::after {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 100%;
	height: 34px;
	background: url("assets/img/bunting.svg") repeat-x top left / auto 100%;
	pointer-events: none;
	transform-origin: top center;
	animation: pawz-garland 4.5s ease-in-out infinite;
	z-index: 2;
}
@keyframes pawz-garland {
	0%, 100% { transform: translateY(0) scaleY(1); }
	50% { transform: translateY(2px) scaleY(1.06); }
}
/* pages without a sky banner: soft sky wave under the header instead of a hard edge */
body:not(.pawz-has-sky) .pawz-header-bar::after {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 100%;
	height: 26px;
	background: url("assets/img/wave-sky.svg") repeat-x top left / 160px 26px;
	pointer-events: none;
}
body:not(.pawz-has-sky) .pawz-header::after { top: calc(100% + 14px); }

/* Big logo that hangs below the bar, proportions untouched */
.pawz-header-bar .pawz-logo { position: relative; z-index: 5; align-self: flex-start; }
.pawz-header-bar .pawz-logo img {
	height: 128px !important;
	width: auto !important;
	max-height: none !important;
	max-width: none !important;
	margin-bottom: -58px;
	filter: drop-shadow(0 8px 10px rgba(31, 42, 107, .28));
	transition: height .35s var(--pawz-ease), margin .35s var(--pawz-ease);
}
.pawz-header-bar .pawz-logo a:hover img { animation: pawz-honk .5s ease-in-out; }
@keyframes pawz-honk {
	0%, 100% { transform: rotate(0); }
	25% { transform: rotate(-3deg) translateY(-2px); }
	75% { transform: rotate(2deg); }
}
/* after scrolling: compact frosted bar, small logo, no garland */
.elementor-sticky--effects .pawz-header-bar {
	background-color: rgba(143, 203, 241, .92) !important;
	backdrop-filter: blur(8px);
	box-shadow: 0 8px 24px rgba(31, 42, 107, .18);
}
.elementor-sticky--effects .pawz-header-bar .pawz-logo img { height: 62px !important; margin-bottom: 0; }
.elementor-sticky--effects.pawz-header::after,
.elementor-sticky--effects .pawz-header-bar::after { opacity: 0; }
.pawz-nav .elementor-item { color: var(--pawz-navy) !important; }
@media (max-width: 1024px) {
	.pawz-header-bar .pawz-logo img { height: 96px !important; margin-bottom: -40px; }
	.elementor-sticky--effects .pawz-header-bar .pawz-logo img { height: 54px !important; margin-bottom: 0; }
}
@media (max-width: 767px) {
	.pawz-header-bar .pawz-logo img { height: 82px !important; margin-bottom: -34px; }
	.pawz-header::after { height: 24px; }
}

/* ---------- Ticker announcement ---------- */
.pawz-announce { overflow: hidden; display: flex !important; }
.pawz-announce .elementor-widget-text-editor { width: 100%; }
.pawz-announce p { margin: 0; }
.pawz-ticker { display: flex; width: max-content; font-weight: 700; letter-spacing: .02em; }
.pawz-ticker__track { display: flex; flex-shrink: 0; animation: pawz-marquee 38s linear infinite; }
.pawz-ticker__track span { padding: 0 1.6em; white-space: nowrap; }
.pawz-ticker__track span::after { content: "✦"; margin-left: 3.2em; color: var(--pawz-yellow); }
.pawz-announce:hover .pawz-ticker__track { animation-play-state: paused; }
@keyframes pawz-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* ---------- Sky scenes: drifting clouds + falling confetti ---------- */
.pawz-sky-scene::before { animation: pawz-drift 9s ease-in-out infinite alternate; }
@keyframes pawz-drift { from { transform: translateX(-14px); } to { transform: translateX(14px); } }
.pawz-confetti {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	pointer-events: none;
	overflow: hidden;
	z-index: 0;
}
.pawz-confetti::before {
	content: "";
	position: absolute;
	left: 0; right: 0; top: -320px; bottom: 0;
	background: url("assets/img/confetti.svg") repeat;
	opacity: .5;
	animation: pawz-fall 22s linear infinite;
}
@keyframes pawz-fall { from { transform: translateY(0); } to { transform: translateY(320px); } }
.pawz-sky-scene > .e-con:not(.pawz-confetti),
.pawz-sky-scene > .elementor-element:not(.pawz-confetti) { position: relative; z-index: 1; }
.pawz-bob img { animation: pawz-idle-bounce 2.8s ease-in-out infinite; }

/* ---------- Photos never spill out of their frame ----------
   (Elementor 4 optimized markup has no widget wrapper, so the frame lives on the <img>.) */
.pawz-photo img,
.pawz-card-img img {
	display: block;
	width: 100% !important;
	height: auto !important;
	object-fit: contain !important;
	padding: 10px;
	background: #fff;
	border: var(--pawz-outline) solid var(--pawz-ink) !important;
	border-radius: 18px !important;
	box-shadow: var(--pawz-shadow) !important;
	transition: transform .4s var(--pawz-ease), box-shadow .4s var(--pawz-ease);
}
.pawz-photo img { aspect-ratio: 4 / 5; max-height: 520px; }
.pawz-card-img img { aspect-ratio: 4 / 3; border-width: 2px !important; border-radius: 14px !important; box-shadow: none !important; }
.pawz-photo:hover img { transform: translate(-3px, -4px) rotate(-1deg); box-shadow: 9px 10px 0 var(--pawz-ink) !important; }
.pawz-card:hover .pawz-card-img img { transform: scale(1.03); }
.pawz-tilt-left, .pawz-tilt-right { padding: 14px !important; }
.pawz-spot-photo .pawz-photo img { aspect-ratio: 5 / 6; }

/* WooCommerce grids: whole product visible, no hard crop */
.woocommerce ul.products li.product a img {
	aspect-ratio: 4 / 3;
	object-fit: contain !important;
	background: #fff;
	padding: 8px;
	transition: transform .5s var(--pawz-ease);
}
.woocommerce ul.products li.product:hover a img { transform: scale(1.05); }
.pawz-gallery .woocommerce-product-gallery__image img { object-fit: contain; background: #fff; padding: 10px; }

/* ---------- Decorated section breaks ---------- */
.pawz-occasions { position: relative; overflow: hidden; }
.pawz-occasions::before {
	content: "";
	position: absolute;
	inset: -220px 0 0 0;
	background: url("assets/img/paws-pattern.svg") repeat;
	animation: pawz-fall 60s linear infinite;
	pointer-events: none;
}
.pawz-occasions > .e-con, .pawz-occasions > .elementor-element { position: relative; z-index: 1; }
.pawz-paw-divider {
	background: url("assets/img/paw-trail.svg") repeat-x center / auto 56px;
	animation: pawz-walk 30s linear infinite;
}
@keyframes pawz-walk { from { background-position: 0 center; } to { background-position: 480px center; } }

/* Hand-drawn squiggle under section headings */
.pawz-squiggle .elementor-heading-title { position: relative; display: inline-block; padding-bottom: 14px; }
.pawz-squiggle .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -4px;
	width: 120px;
	height: 14px;
	transform: translateX(-50%);
	background-color: var(--pawz-red);
	-webkit-mask: url("assets/img/squiggle.svg") no-repeat center / contain;
	mask: url("assets/img/squiggle.svg") no-repeat center / contain;
}
.pawz-squiggle--left .elementor-heading-title::after { left: 0; transform: none; }
.pawz-squiggle--ink .elementor-heading-title::after { background-color: var(--pawz-navy); }
.pawz-occasions .pawz-squiggle .elementor-heading-title::after { background-color: var(--pawz-yellow); }

/* ---------- Life on hover ---------- */
.pawz-btn .elementor-button-icon { transition: transform .25s var(--pawz-ease); }
.pawz-btn .elementor-button:hover .elementor-button-icon { transform: translateX(5px); }
.pawz-iconbox:hover .elementor-icon { animation: pawz-honk .6s ease-in-out; }
.pawz-chip .elementor-heading-title { transition: transform .25s var(--pawz-ease), background .25s; }
.pawz-chip:hover .elementor-heading-title { transform: rotate(0) scale(1.08); background: var(--pawz-yellow); }
.pawz-step:hover .pawz-step-number .elementor-heading-title { animation: pawz-honk .6s ease-in-out; background: var(--pawz-red); color: #fff; }
.pawz-card--confetti { position: relative; overflow: hidden; }
.pawz-card--confetti::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("assets/img/confetti.svg") repeat;
	opacity: .14;
	pointer-events: none;
}

/* Cart / checkout / account: room for the hanging logo */
.woocommerce-cart .site-main,
.woocommerce-checkout .site-main,
.woocommerce-account .site-main { padding-top: 110px !important; }

/* Hero/banner entrance: pure CSS so it starts at first paint (no LCP delay) */
@keyframes pawz-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.pawz-rise > .elementor-element:not(.pawz-confetti):not(.elementor-widget-spacer) { animation: pawz-rise .7s var(--pawz-ease) both; }
.pawz-rise > .elementor-element:nth-child(2) { animation-delay: .05s; }
.pawz-rise > .elementor-element:nth-child(3) { animation-delay: .15s; }
.pawz-rise > .elementor-element:nth-child(4) { animation-delay: .28s; }
.pawz-rise > .elementor-element:nth-child(5) { animation-delay: .4s; }

/* =====================================================================
   RESPONSIVE PASS: phones (portrait + landscape), tablets, laptops,
   large monitors and TVs.
   ===================================================================== */

/* ---------- Tablets: keep the bus a sensible size ---------- */
@media (max-width: 1024px) {
	.pawz-hero-visual { max-width: 520px; margin-left: auto !important; margin-right: auto !important; }
	.pawz-hero-row .pawz-rise { width: 100% !important; }
}
/* Landscape tablets (and small laptops in tablet mode): side-by-side hero */
@media (min-width: 900px) and (max-width: 1024px) {
	.pawz-hero-row,
	.pawz-hero-row > .e-con-inner { flex-wrap: nowrap !important; }
	.pawz-hero-row .pawz-rise { width: 55% !important; }
	.pawz-hero-row .pawz-hero-visual { width: 42% !important; max-width: none; margin: 0 !important; }
}

/* ---------- Small phones ---------- */
@media (max-width: 380px) {
	.pawz-sticker-title h1.elementor-heading-title { font-size: 31px !important; }
	.pawz-sticker-title .elementor-heading-title { -webkit-text-stroke-width: 2px; text-shadow: 3px 4px 0 var(--pawz-ink); }
	.pawz-header-bar .pawz-logo img { height: 72px !important; margin-bottom: -28px; }
	.pawz-ticker { font-size: 13px; }
	.pawz-badge .elementor-heading-title { width: 74px; height: 74px; font-size: 18px !important; }
}

/* ---------- Phones held sideways (short, wide screens) ---------- */
@media (orientation: landscape) and (max-height: 500px) {
	.pawz-announce { display: none !important; }
	.pawz-header-bar { padding-top: 4px !important; padding-bottom: 4px !important; }
	.pawz-header-bar .pawz-logo img,
	.elementor-sticky--effects .pawz-header-bar .pawz-logo img { height: 50px !important; margin-bottom: 0 !important; }
	.pawz-header::after { height: 18px; }
	body:not(.pawz-has-sky) .pawz-header::after { top: calc(100% + 10px); }

	/* hero: two columns so the headline and the bus share the screen */
	.pawz-hero-row { padding-top: 0 !important; }
	.pawz-hero-row > .e-con-inner { padding-top: 40px !important; padding-bottom: 0 !important; }
	.pawz-hero-row .pawz-hero-visual { align-self: center; }
	.pawz-hero-row,
	.pawz-hero-row > .e-con-inner { flex-wrap: nowrap !important; }
	.pawz-hero-row .pawz-rise { width: 58% !important; gap: 10px !important; }
	.pawz-hero-row .pawz-hero-visual { width: 38% !important; max-width: none; margin: 0 !important; }
	.pawz-hero h1.elementor-heading-title { font-size: clamp(24px, 4.4vw, 36px) !important; }
	.pawz-hero .pawz-rise p { font-size: 15px !important; line-height: 1.5 !important; }
	.pawz-hero .pawz-eyebrow .elementor-heading-title { font-size: 16px !important; }
	.pawz-badge .elementor-heading-title { width: 70px; height: 70px; font-size: 16px !important; }

	/* inner page banners + shorter scenery */
	.pawz-sky-scene.pawz-rise { padding-top: 46px !important; }
	.pawz-sky-scene h1.elementor-heading-title { font-size: clamp(26px, 4.6vw, 38px) !important; }
	.pawz-sky-scene .elementor-widget-spacer .elementor-spacer-inner { height: 80px !important; }
	.pawz-sky-scene::after { height: 90px; }

	/* coming soon + closing: keep the big bus from filling a short screen */
	.pawz-sky-scene > .elementor-widget-image img { max-height: 44vh; width: auto !important; }

	/* product page top + legal sidebar */
	.pawz-product-top { padding-top: 50px !important; }
	.pawz-legal-side { position: static !important; }
}

/* ---------- Large monitors and TVs: scale the whole design ----------
   Breakpoints still follow the real screen width; zoom only enlarges the
   desktop layout so it fills big screens instead of floating in the middle. */
@media (min-width: 1800px) { body { zoom: 1.1; } }
@media (min-width: 2200px) { body { zoom: 1.3; } }
@media (min-width: 2500px) { body { zoom: 1.4; } }
@media (min-width: 3000px) { body { zoom: 1.7; } }
@media (min-width: 3600px) { body { zoom: 2; } }

/* =====================================================================
   DESIGN PASS 3 — client mockup (2026-10-24): no confetti behind text,
   bigger logo, shopping-menu tiles, Why / How / Real Dogs sections.
   ===================================================================== */

/* Text must never compete with decoration */
.pawz-v2 .pawz-confetti { display: none !important; }
.pawz-v2 .pawz-header::after { display: none !important; }    /* garland off (not in mockup) */
body.pawz-v2:not(.pawz-has-sky) .pawz-header::after { display: none !important; }

/* ---------- Header: bigger logo, account icon ---------- */
.pawz-v2 .pawz-header-bar .pawz-logo img { height: 158px !important; margin-bottom: -78px; }
.pawz-v2 .elementor-sticky--effects .pawz-header-bar .pawz-logo img { height: 66px !important; margin-bottom: 0; }
.pawz-v2 .pawz-account .elementor-icon {
	display: grid; place-items: center;
	width: 44px; height: 44px;
	background: #fff;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 50%;
	box-shadow: 3px 3px 0 var(--pawz-ink);
	transition: transform .18s var(--pawz-ease);
}
.pawz-v2 .pawz-account .elementor-icon svg { width: 18px; height: 18px; fill: var(--pawz-navy); }
.pawz-v2 .pawz-account .elementor-icon:hover { transform: translate(-2px, -2px); }
@media (max-width: 1024px) {
	.pawz-v2 .pawz-header-bar .pawz-logo img { height: 112px !important; margin-bottom: -52px; }
}
@media (max-width: 767px) {
	.pawz-v2 .pawz-header-bar .pawz-logo img { height: 88px !important; margin-bottom: -36px; }
	.pawz-v2 .pawz-account .elementor-icon { width: 40px; height: 40px; }
}

/* ---------- Hero ---------- */
.pawz-hero-title .elementor-heading-title {
	position: relative;
	-webkit-text-stroke: 2px #fff;
	paint-order: stroke fill;
	text-shadow: 3px 4px 0 rgba(31, 42, 107, .18);
	transform: rotate(-2deg);
	transform-origin: left center;
}
/* yellow "spark" doodle + red heart, like the mockup */
.pawz-hero-title .elementor-heading-title::before {
	content: "";
	position: absolute;
	right: -10px; top: -26px;
	width: 46px; height: 40px;
	background:
		linear-gradient(var(--pawz-yellow), var(--pawz-yellow)) 6px 18px / 18px 6px no-repeat,
		linear-gradient(var(--pawz-yellow), var(--pawz-yellow)) 20px 0 / 6px 18px no-repeat,
		linear-gradient(var(--pawz-yellow), var(--pawz-yellow)) 30px 12px / 6px 16px no-repeat;
	transform: rotate(20deg);
	border-radius: 4px;
}
.pawz-hero-title .elementor-heading-title::after {
	content: "❤";
	position: absolute;
	color: var(--pawz-red);
	font-size: .45em;
	margin-left: .15em;
	transform: rotate(14deg) translateY(-.6em);
	display: inline-block;
	-webkit-text-stroke: 0;
	animation: pawz-beat 1.6s ease-in-out infinite;
}
@keyframes pawz-beat { 0%, 100% { transform: rotate(14deg) translateY(-.6em) scale(1); } 50% { transform: rotate(14deg) translateY(-.6em) scale(1.18); } }
.pawz-hero-box img {
	width: 100% !important;
	max-height: 640px;
	object-fit: contain;
	transform: rotate(3deg);
	filter: drop-shadow(0 26px 22px rgba(31, 42, 107, .32));
	animation: pawz-box-float 5s ease-in-out infinite;
}
@keyframes pawz-box-float { 0%, 100% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-10px); } }
.pawz-hero .pawz-badge { right: 2%; top: 4%; }
@media (max-width: 1024px) {
	.pawz-hero-box img { max-height: 460px; }
}

/* Cream panel that rises over the hero (mockup) */
.pawz-panel-up {
	position: relative;
	z-index: 3;
	margin-top: -46px !important;
	border-radius: 44px 44px 0 0;
	box-shadow: 0 -10px 30px rgba(31, 42, 107, .12);
}

/* little paw prints either side of section headings */
.pawz-paws-around .elementor-heading-title { position: relative; }
.pawz-paws-around .elementor-heading-title::before {
	content: "";
	position: absolute;
	left: -58px; top: 6px;
	width: 34px; height: 34px;
	background-color: var(--pawz-yellow);
	-webkit-mask: url("assets/img/paw.svg") no-repeat center / contain;
	mask: url("assets/img/paw.svg") no-repeat center / contain;
	transform: rotate(-20deg);
}
.pawz-paws-around.pawz-squiggle .elementor-heading-title::after { /* keep squiggle; paw on the right via box-shadow trick */ }
.pawz-paws-around { position: relative; }
.pawz-paws-around::after {
	content: "";
	position: absolute;
	right: calc(50% - 280px); top: 0;
	width: 30px; height: 30px;
	background-color: var(--pawz-sky);
	-webkit-mask: url("assets/img/paw.svg") no-repeat center / contain;
	mask: url("assets/img/paw.svg") no-repeat center / contain;
	transform: rotate(18deg);
	pointer-events: none;
}
.pawz-how .pawz-paws-around::after { background-color: #6FA8FF; }
@media (max-width: 767px) {
	.pawz-paws-around .elementor-heading-title::before { left: -40px; width: 26px; height: 26px; }
	.pawz-paws-around::after { display: none; }
}
.pawz-squiggle--yellow .elementor-heading-title::after { background-color: var(--pawz-yellow) !important; }

/* ---------- Shop by Occasion tiles (shopping menu) ---------- */
.pawz-tile {
	display: flex !important;
	flex-direction: column;
	border: var(--pawz-outline) solid var(--pawz-ink);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: var(--pawz-shadow);
	text-decoration: none !important;
	transition: transform .25s var(--pawz-ease), box-shadow .25s var(--pawz-ease);
}
.pawz-tile:hover,
.pawz-tile:focus-visible {
	transform: translate(-3px, -4px) rotate(-.8deg);
	box-shadow: 9px 10px 0 var(--pawz-ink);
}
.pawz-tile-img { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; }
.pawz-tile-img img {
	width: 100% !important;
	aspect-ratio: 5 / 4;
	object-fit: contain;
	filter: drop-shadow(0 10px 10px rgba(26, 26, 26, .18));
	transition: transform .4s var(--pawz-ease);
}
.pawz-tile:hover .pawz-tile-img img { transform: scale(1.07) rotate(-2deg); }
.pawz-tile-label { margin: 12px -14px 0 !important; width: calc(100% + 28px) !important; }
.pawz-tile-label .elementor-heading-title {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 14px 18px;
	background: var(--pawz-tile, var(--pawz-red));
	color: var(--pawz-tile-ink, #fff) !important;
	border-top: var(--pawz-outline) solid var(--pawz-ink);
}
.pawz-tile-arrow { transition: transform .25s var(--pawz-ease); font-size: 1.15em; }
.pawz-tile:hover .pawz-tile-arrow { transform: translateX(6px); }
@media (max-width: 767px) {
	.pawz-tile-label { margin: 10px -10px 0 !important; width: calc(100% + 20px) !important; }
	.pawz-tile-label .elementor-heading-title { padding: 11px 12px; }
	.pawz-tile { border-radius: 18px; box-shadow: 4px 4px 0 var(--pawz-ink); }
}

/* ---------- Why Pawz Party ---------- */
.pawz-why-item .elementor-icon {
	border: var(--pawz-outline) solid var(--pawz-ink);
	box-shadow: 5px 5px 0 var(--pawz-ink);
}
.pawz-why-item { flex: 1 1 220px; }
.pawz-why-scene::after { height: clamp(90px, 14vw, 180px); }

/* ---------- How the Paw-ty Works ---------- */
.pawz-how { position: relative; overflow: hidden; }
.pawz-how::before {
	content: "";
	position: absolute; inset: 0;
	background: url("assets/img/paws-pattern.svg") repeat;
	pointer-events: none;
}
.pawz-how > .e-con, .pawz-how > .elementor-element { position: relative; z-index: 1; }
.pawz-step { align-items: center; text-align: center; }
.pawz-step-badge .elementor-heading-title {
	display: grid; place-items: center;
	width: 46px; height: 46px; margin: 0 auto -18px;
	border-radius: 50%;
	background: var(--pawz-badge, var(--pawz-lime));
	border: var(--pawz-outline) solid #fff;
	position: relative; z-index: 2;
}
.pawz-step-icon .elementor-icon { border: 4px solid var(--pawz-yellow); box-shadow: 0 0 0 6px rgba(255, 255, 255, .12); }
.pawz-step:hover .pawz-step-icon .elementor-icon { animation: pawz-honk .6s ease-in-out; }

/* ---------- Real Dogs. Real Paw-ties. ---------- */
.pawz-meadow { position: relative; overflow: hidden; }
.pawz-meadow::after {
	content: "";
	position: absolute; left: 0; right: 0; bottom: 0;
	height: 120px;
	background:
		url("assets/img/fence.svg") repeat-x left bottom 26px / auto 90px,
		linear-gradient(transparent 60%, #8DC63F 60%);
	pointer-events: none;
}
.pawz-meadow > .e-con, .pawz-meadow > .elementor-element { position: relative; z-index: 1; }
.pawz-sign .elementor-heading-title {
	display: inline-block;
	padding: .45em 1.1em;
	background: linear-gradient(180deg, #FFE45C, #F9D71C);
	border: 4px solid var(--pawz-ink);
	border-radius: 18px;
	box-shadow: 6px 6px 0 var(--pawz-ink);
	transform: rotate(-1.5deg);
	line-height: 1.15;
}
.pawz-polaroid {
	border: 2px solid #e9e2d0;
	box-shadow: 0 14px 24px rgba(26, 26, 26, .22) !important;
	position: relative;
}
.pawz-polaroid::before {          /* tape */
	content: "";
	position: absolute; top: -12px; left: 50%;
	width: 80px; height: 24px;
	transform: translateX(-50%) rotate(-4deg);
	background: rgba(249, 215, 28, .75);
	border: 1px solid rgba(26, 26, 26, .15);
}
.pawz-polaroid-img img {
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0;
}
.pawz-polaroid-cap p { margin: 0; text-align: center; font-family: "Fredoka", sans-serif; font-weight: 600; }

/* ---------- Celebrate + Made in Mellen ---------- */
.pawz-celebrate-img img {
	width: 100% !important;
	max-height: 460px;
	object-fit: contain;
	transform: rotate(-3deg);
	filter: drop-shadow(0 22px 18px rgba(31, 42, 107, .28));
}
.pawz-mellen .elementor-widget-text-editor p { line-height: 1.7; }

/* Landscape phones: hero box beside the copy, still readable */
@media (orientation: landscape) and (max-height: 500px) {
	.pawz-header-bar .pawz-logo img { height: 52px !important; margin-bottom: 0 !important; }
	.pawz-hero-box img { max-height: 62vh; }
	.pawz-panel-up { margin-top: -24px !important; border-radius: 28px 28px 0 0; }
}

@media (max-width: 380px) {
	.pawz-v2 .pawz-header-bar .pawz-logo img { height: 74px !important; margin-bottom: -28px; }
	.pawz-hero-title h1.elementor-heading-title { font-size: 34px !important; }
}


/* Sky sections with text: sun + one corner cloud only, nothing behind the words */
.pawz-why-scene::before,
.pawz-mellen::before {
	background:
		url("assets/img/sun.svg") no-repeat right 4% top 60px / clamp(64px, 7vw, 110px),
		url("assets/img/cloud.svg") no-repeat left 2% top 70px / clamp(90px, 10vw, 160px);
}
@media (max-width: 767px) {
	.pawz-why-scene::before, .pawz-mellen::before, .pawz-v2 .pawz-hero::before {
		background: url("assets/img/sun.svg") no-repeat right 3% top 24px / 56px;
	}
}

@media (max-width: 767px) {
	.pawz-why { flex-wrap: wrap !important; }
	.pawz-why > .e-con-inner { flex-wrap: wrap !important; }
	.pawz-why-item { flex: 0 0 calc(50% - 12px) !important; width: calc(50% - 12px) !important; }
	.pawz-why-item .elementor-icon { font-size: 30px; padding: 20px !important; }
}

/* =====================================================================
   HOME VERSION 2 — matches the client's mockup (classes: pawz2-*)
   ===================================================================== */

/* Hero: sky fading to a grass strip, photo of the dog + box on the right */
.pawz2-hero { position: relative; overflow: hidden; }
.pawz2-hero::after {               /* grass strip along the bottom */
	content: "";
	position: absolute; left: 0; right: 0; bottom: 0;
	height: 110px;
	background: linear-gradient(180deg, rgba(141, 198, 63, 0) 0%, #8DC63F 55%, #6FAF2E 100%);
	pointer-events: none;
	z-index: 0;
}
.pawz2-hero-row { position: relative; z-index: 1; }
.pawz2-hero-copy { padding-bottom: 120px !important; }
.pawz2-hero-title .elementor-heading-title {
	position: relative;
	-webkit-text-stroke: 2px #fff;
	paint-order: stroke fill;
	transform: rotate(-3deg);
	transform-origin: left center;
	line-height: 1.02;
}
.pawz2-hero-title .elementor-heading-title::after {
	content: "❤";
	position: absolute;
	right: -8px; top: -18px;
	font-size: .42em;
	color: #E63946;
	-webkit-text-stroke: 0;
	animation: pawz-beat 1.6s ease-in-out infinite;
}
.pawz2-hero-img img { width: 100% !important; max-height: 600px; object-fit: contain; display: block; }
@media (max-width: 1024px) {
	.pawz2-hero-copy { padding-bottom: 10px !important; }
	.pawz2-hero-img img { max-height: 480px; margin: 0 auto; }
}

/* Section titles: one short squiggle, paw prints either side (as in the mockup) */
.pawz2-title .elementor-heading-title { position: relative; display: inline-block; padding-bottom: 10px; }
.pawz2-title .elementor-heading-title::after {
	content: "";
	position: absolute; left: 50%; bottom: -6px;
	width: 96px; height: 12px;
	transform: translateX(-50%);
	background-color: #E63946;
	-webkit-mask: url("assets/img/squiggle.svg") no-repeat center / contain;
	mask: url("assets/img/squiggle.svg") no-repeat center / contain;
}
.pawz2-title--left .elementor-heading-title::after { left: 0; transform: none; }
.pawz2-title--yellow .elementor-heading-title::after { background-color: var(--pawz-yellow); }
.pawz2-title--plain .elementor-heading-title::after { display: none; }
.pawz2-paws .elementor-heading-title::before {
	content: "";
	position: absolute; left: -48px; top: 4px;
	width: 30px; height: 30px;
	background-color: #F4B400;
	-webkit-mask: url("assets/img/paw.svg") no-repeat center / contain;
	mask: url("assets/img/paw.svg") no-repeat center / contain;
	transform: rotate(-18deg);
}
.pawz2-how .pawz2-paws .elementor-heading-title::before { background-color: #6FA8FF; }

/* Cream panel rising over the hero */
.pawz2-panel {
	position: relative; z-index: 3;
	margin-top: -34px !important;
	border-radius: 34px 34px 0 0;
}

/* Occasion tiles: photo on top, full-width coloured bar with arrow */
.pawz2-tile {
	display: flex !important;
	flex-direction: column;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 6px 16px rgba(31, 42, 107, .16);
	text-decoration: none !important;
	transition: transform .22s var(--pawz-ease), box-shadow .22s var(--pawz-ease);
}
.pawz2-tile:hover,
.pawz2-tile:focus-visible { transform: translateY(-5px); box-shadow: 0 14px 26px rgba(31, 42, 107, .24); }
.pawz2-tile-img img {
	width: 100% !important;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	display: block;
	transition: transform .4s var(--pawz-ease);
}
.pawz2-tile:hover .pawz2-tile-img img { transform: scale(1.06); }
.pawz2-tile-bar .elementor-heading-title {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	padding: 11px 16px;
	background: var(--bar);
	color: var(--bar-ink) !important;
}
.pawz2-arrow { transition: transform .22s var(--pawz-ease); }
.pawz2-tile:hover .pawz2-arrow { transform: translateX(5px); }
@media (max-width: 767px) { .pawz2-tile-bar .elementor-heading-title { padding: 9px 11px; } }

/* Why Pawz Party */
.pawz2-why-item { flex: 1 1 0; }
.pawz2-why-item .elementor-icon { box-shadow: 0 6px 14px rgba(31, 42, 107, .14); }
.pawz2-why-item .elementor-icon-box-title { margin-bottom: 4px !important; }
@media (max-width: 767px) {
	.pawz2-why, .pawz2-why > .e-con-inner { flex-wrap: wrap !important; }
	.pawz2-why-item { flex: 0 0 calc(50% - 10px) !important; }
}

/* Real Dogs: meadow + picket fence, wooden sign, polaroids */
.pawz2-meadow {
	position: relative; overflow: hidden;
	background: linear-gradient(180deg, #CFEAFB 0%, #CFEAFB 30%, #A6D86A 30.1%, #8DC63F 100%);
}
.pawz2-meadow::before {
	content: "";
	position: absolute; left: 0; right: 0; top: calc(30% - 70px);
	height: 90px;
	background: url("assets/img/fence.svg") repeat-x left bottom / auto 90px;
	pointer-events: none;
}
.pawz2-meadow > .e-con, .pawz2-meadow > .elementor-element { position: relative; z-index: 1; }
.pawz2-sign .elementor-heading-title {
	display: inline-block;
	padding: .4em 1em;
	background: linear-gradient(180deg, #FFE27A, #F6C443);
	border: 3px solid #8A5A1E;
	border-radius: 10px;
	box-shadow: 0 6px 0 #8A5A1E;
	transform: rotate(-1.5deg);
	line-height: 1.15;
}
.pawz2-polaroid {
	box-shadow: 0 10px 22px rgba(26, 26, 26, .25);
	transition: transform .3s var(--pawz-ease);
}
.pawz2-tilt-l { transform: rotate(-4deg); }
.pawz2-tilt-r { transform: rotate(3deg); }
.pawz2-polaroid:hover { transform: rotate(0) scale(1.04); }
.pawz2-polaroid-img img { width: 100% !important; aspect-ratio: 1 / 1; object-fit: cover; display: block; }

/* Birthday Pup Box spotlight */
.pawz2-crumbs { margin: 0; color: var(--pawz-navy); font-weight: 700; }
.pawz2-crumbs a { color: var(--pawz-navy); }
.pawz2-spot-img img { width: 100% !important; max-height: 420px; object-fit: contain; transform: rotate(4deg);
	filter: drop-shadow(0 18px 16px rgba(31, 42, 107, .25)); }
.pawz2-thumbs { flex-wrap: nowrap !important; overflow-x: auto; }
.pawz2-thumb { flex: 0 0 auto; }
.pawz2-thumb img {
	width: 110px !important; height: 110px; object-fit: cover; display: block;
	border-radius: 12px; box-shadow: 0 4px 10px rgba(31, 42, 107, .18); background: #fff;
}
.pawz2-thumb-next .elementor-heading-title a {
	display: grid; place-items: center;
	width: 42px; height: 42px; border-radius: 50%;
	background: #fff; box-shadow: 0 4px 10px rgba(31, 42, 107, .18); color: var(--pawz-navy);
}
@media (max-width: 767px) { .pawz2-thumb img { width: 76px !important; height: 76px; } }

/* How the Paw-ty Works */
.pawz2-step { align-items: center; text-align: center; }
.pawz2-step-num .elementor-heading-title {
	display: grid; place-items: center;
	width: 40px; height: 40px; margin: 0 auto -16px;
	border-radius: 50%; background: #5BAE3C; border: 3px solid #fff;
	position: relative; z-index: 2;
}

/* Reviews */
.pawz2-stars { margin: 0; color: #F4B400; letter-spacing: .12em; }
.pawz2-review { border-radius: 20px; box-shadow: 0 8px 22px rgba(31, 42, 107, .14); }
.pawz2-review-avatar img { width: 120px !important; height: 140px; object-fit: cover; border-radius: 14px; display: block; }
.pawz2-quote p { margin: 0; font-style: italic; }
.pawz2-quote-name p { margin: 0; font-weight: 800; }

/* Celebrate banner */
.pawz2-celebrate {
	background: linear-gradient(90deg, #BFE3F7 0%, #E3F4FD 55%, #D9F0C4 100%);
	overflow: hidden;
}
.pawz2-celebrate-img img { width: 100% !important; height: 100%; max-height: 380px; object-fit: cover; display: block; }
.pawz2-celebrate-title .elementor-heading-title { transform: rotate(-2deg); }

/* Made with Love + meadow scene */
.pawz2-mellen-scene img { width: 100% !important; max-height: 340px; object-fit: cover; display: block; }
.pawz2-mellen > .elementor-widget-image { width: 100%; }

/* Landscape phones */
@media (orientation: landscape) and (max-height: 500px) {
	.pawz2-hero-row { padding-top: 70px !important; }
	.pawz2-hero-row, .pawz2-hero-row > .e-con-inner { flex-wrap: nowrap !important; }
	.pawz2-hero-copy { width: 56% !important; padding-bottom: 40px !important; }
	.pawz2-hero-visual { width: 42% !important; }
	.pawz2-hero-img img { max-height: 70vh; }
}

/* v2 polish */
.pawz2-hero-title .elementor-heading-title { display: inline-block; }
.pawz2-hero-img img { max-height: 680px; }
.pawz2-mellen-scene { width: 100% !important; max-width: 900px; margin: 0 auto; }
.pawz2-mellen-scene img { max-height: none; object-fit: contain; border-radius: 22px 22px 0 0; }
