/* ==========================================================================
   Pink Petals — design system ported from the HTML/CSS handoff
   to WoodMart + WooCommerce + Elementor.
   Sections:
   01 Tokens & WoodMart variables   07 Shop archive
   02 Base & typography             08 Single product
   03 Buttons & utilities           09 Bundle builder
   04 Header (WoodMart builder)     10 Cart drawer, cart & checkout
   05 Home (Elementor sections)     11 Contact & forms
   06 Product cards                 12 Footer · 13 Responsive
   ========================================================================== */

/* 01 Tokens ---------------------------------------------------------------- */
html:root {
	--pp-blush: #fdf3f6;
	--pp-petal: #f7c9d7;
	--pp-rose: #e48ea6;
	--pp-plum: #41222e;
	--pp-plum-hover: #5d3041;
	--pp-steel: #b9b4bc;
	--pp-white: #fffdfd;
	--pp-muted: #765b65;
	--pp-accent-text: #a4536c;
	--pp-link: #995269;
	--pp-border: rgba(65, 34, 46, 0.13);
	--pp-shadow: 0 20px 55px rgba(99, 48, 67, 0.12);
	--pp-radius-lg: 32px;
	--pp-radius-md: 22px;
	--pp-radius-sm: 14px;
	--pp-shell: min(1180px, calc(100% - 40px));
	--pp-serif: Georgia, "Times New Roman", serif;
	--pp-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

	/* WoodMart theme variables */
	--wd-primary-color: var(--pp-plum);
	--wd-alternative-color: var(--pp-rose);
	--wd-main-bgcolor: var(--pp-blush);
	--wd-text-font: var(--pp-sans);
	--wd-text-color: var(--pp-plum);
	--wd-text-font-size: 16px;
	--wd-title-font: var(--pp-serif);
	--wd-title-font-weight: 500;
	--wd-title-color: var(--pp-plum);
	--wd-entities-title-font: var(--pp-serif);
	--wd-entities-title-font-weight: 500;
	--wd-entities-title-color: var(--pp-plum);
	--wd-entities-title-color-hover: var(--pp-link);
	--wd-alternative-font: var(--pp-serif);
	--wd-widget-title-font: var(--pp-serif);
	--wd-widget-title-color: var(--pp-plum);
	--wd-header-el-font: var(--pp-sans);
	--wd-header-el-font-weight: 750;
	--wd-header-el-transform: none;
	--wd-header-el-font-size: 15px;
	--wd-link-color: var(--pp-plum);
	--wd-link-color-hover: var(--pp-link);
	--wd-brd-radius: 14px;
	--wd-form-brd-radius: 13px;
	--wd-form-height: 48px;
	--wd-form-bg: #fff;
	--wd-form-brd-color: var(--pp-border);
	--wd-form-brd-color-focus: var(--pp-rose);
	--wd-container-w: 1210px;
	--btn-accented-bgcolor: var(--pp-plum);
	--btn-accented-bgcolor-hover: var(--pp-plum-hover);
	--btn-accented-brd-radius: 999px;
	--btn-default-bgcolor: #fff;
	--btn-default-bgcolor-hover: #fff;
	--btn-default-color: var(--pp-plum);
	--btn-default-color-hover: var(--pp-plum);
	--btn-default-brd-radius: 999px;
	--btn-accented-font-weight: 800;
	--btn-default-font-weight: 800;
	--btn-accented-transform: none;
	--btn-default-transform: none;
	--notices-success-bg: var(--pp-plum);
	--notices-success-color: #fff;
}

/* 02 Base -------------------------------------------------------------------- */
body {
	background: var(--pp-blush);
	color: var(--pp-plum);
	font-family: var(--pp-sans);
	font-size: 16px;
	line-height: 1.6;
}
body .wd-page-content,
body .website-wrapper { background-color: var(--pp-blush); }
body.pp-drawer-open { overflow: hidden; }

.pp-scope h1, .pp-scope h2,
.pp-sec h1, .pp-sec h2,
.pp-sec .elementor-heading-title {
	font-family: var(--pp-serif);
	font-weight: 500;
	color: var(--pp-plum);
}
.pp-sec h1, .pp-sec h2, .pp-sec h3,
.pp-scope h1, .pp-scope h2, .pp-scope h3 { line-height: 1.08; margin-top: 0; }
.pp-h1, .pp-h1 .elementor-heading-title,
.pp-scope h1 { font-size: clamp(3rem, 7vw, 6.6rem); letter-spacing: -0.055em; line-height: 1.08; }
.pp-h2, .pp-h2 .elementor-heading-title,
.pp-scope h2 { font-size: clamp(2.1rem, 4.4vw, 4rem); letter-spacing: -0.035em; line-height: 1.08; }
.pp-h3 .elementor-heading-title,
.pp-scope h3 { font-size: 1.15rem; line-height: 1.08; }
.pp-sec em, .pp-scope em, .pp-sec .elementor-heading-title em { color: var(--pp-rose); font-weight: 400; font-style: italic; }
.pp-sec p, .pp-scope p { margin-top: 0; }
.pp-sec a:not(.elementor-button):not(.button), .pp-scope a:not(.button) { text-decoration: none; }

/* Elementor spacing reset inside Pink Petals sections */
.pp-sec .elementor-widget:not(:last-child) { margin-bottom: 0; margin-block-end: 0; }
.pp-sec .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.pp-sec .elementor-image img, .pp-sec .elementor-widget-image img { display: block; }

/* Remove WoodMart page padding on Pink Petals Elementor pages */
.pp-builder-page .wd-content-layout { padding-block: 0; }
.pp-builder-page .page-title { display: none; }

.pp-shell { width: var(--pp-shell); margin-inline: auto; }
body .e-con.pp-shell { width: var(--pp-shell); max-width: var(--pp-shell); margin-inline: auto; }

.pp-reveal, .pp-reveal > .elementor-widget-container { animation: pp-reveal .65s ease both; }
@keyframes pp-reveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* 03 Buttons & utilities ------------------------------------------------------ */
.pp-eyebrow, .pp-eyebrow .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 8px;
	margin-bottom: 18px;
	color: var(--pp-accent-text);
	font-family: var(--pp-sans) !important;
	font-size: .78rem; font-weight: 800; letter-spacing: .15em; line-height: 1.6;
	text-transform: uppercase;
}
.pp-eyebrow .elementor-heading-title { margin-bottom: 0; }
.pp-eyebrow::before, .pp-eyebrow .elementor-heading-title::before { content: "\273F"; color: var(--pp-rose); font-size: .85rem; }
.elementor-widget.pp-eyebrow::before { content: none; }
.elementor-widget.pp-eyebrow { margin-bottom: 18px !important; display: block; }

.pp-button,
.pp-btn .elementor-button {
	min-height: 50px;
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 12px 24px;
	border: 0; border-radius: 999px;
	font-family: var(--pp-sans); font-size: 16px; font-weight: 800; line-height: 1.3;
	text-transform: none; letter-spacing: 0;
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.pp-button:hover, .pp-btn .elementor-button:hover { transform: translateY(-2px); }
.pp-button-primary,
.pp-btn-primary .elementor-button {
	background: var(--pp-plum); color: #fff;
	box-shadow: 0 10px 24px rgba(65, 34, 46, .22);
}
.pp-button-primary:hover, .pp-button-primary:focus,
.pp-btn-primary .elementor-button:hover, .pp-btn-primary .elementor-button:focus { background: var(--pp-plum-hover); color: #fff; }
.pp-button-soft,
.pp-btn-soft .elementor-button { background: #fff; color: var(--pp-plum); border: 1px solid var(--pp-border); }
.pp-button-soft:hover, .pp-btn-soft .elementor-button:hover { box-shadow: var(--pp-shadow); color: var(--pp-plum); }
.pp-button:disabled, .pp-button[disabled] { cursor: not-allowed; opacity: .48; transform: none; box-shadow: none; }
.pp-full { width: 100%; }
.pp-text-link, .pp-text-link a, .pp-text-link .elementor-heading-title a { font-family: var(--pp-sans) !important; font-size: 16px; font-weight: 800; color: var(--pp-link) !important; }
.pp-hidden, .hidden-pp { display: none !important; }

/* WooCommerce / WoodMart buttons get the same pill look */
.woocommerce .button.alt, .woocommerce-page .button.alt,
.single_add_to_cart_button, .checkout-button, #place_order,
.woocommerce-mini-cart__buttons .checkout, .btn-color-primary {
	background: var(--pp-plum) !important; color: #fff !important;
	border-radius: 999px !important; font-weight: 800 !important; text-transform: none !important;
	box-shadow: 0 10px 24px rgba(65, 34, 46, .22);
}
.single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover { background: var(--pp-plum-hover) !important; }
.woocommerce-mini-cart__buttons .btn-cart, .woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: #fff !important; color: var(--pp-plum) !important; border: 1px solid var(--pp-border) !important;
	border-radius: 999px !important; text-transform: none !important; font-weight: 800 !important;
}

/* 04 Header (WoodMart header builder) --------------------------------------- */
.whb-top-bar { background: var(--pp-plum) !important; }
.pp-announcement { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 34px; color: #fff; font-size: .78rem; letter-spacing: .03em; text-align: center; }
.pp-announcement span { color: #fff; }
.whb-general-header {
	background: rgba(253, 243, 246, .92) !important;
	border-bottom: 1px solid var(--pp-border) !important;
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
}
.whb-sticked .whb-general-header { background: rgba(253, 243, 246, .96) !important; }
.pp-brand {
	display: inline-flex; align-items: center; gap: 11px;
	color: var(--pp-plum) !important;
	font-family: var(--pp-serif); font-size: 1.55rem; font-weight: 700; letter-spacing: -.03em; line-height: 1.1;
	white-space: nowrap;
}
.pp-brand-mark { width: 38px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--pp-petal); color: var(--pp-plum); font-size: 1.1rem; }
.whb-header .wd-nav-main > li > a,
.whb-header .wd-nav.wd-nav-main > li > a {
	color: var(--pp-plum);
	font-family: var(--pp-sans); font-size: .92rem; font-weight: 750; text-transform: none; letter-spacing: 0;
}
.whb-header .wd-nav-main > li:hover > a,
.whb-header .wd-nav-main > li.current-menu-item > a,
.whb-header .wd-nav-main > li.current-menu-ancestor > a,
.whb-header .wd-nav-main > li.current_page_item > a { color: #a54d68; }
.whb-header .wd-nav-main { gap: clamp(18px, 3vw, 38px); }
.whb-header .wd-nav-main > li { margin: 0; }
.whb-header .wd-nav-main > li > a { padding-inline: 0; }

/* Mega menu (HTML block "Shop mega menu") */
.whb-header .wd-dropdown-menu.wd-design-sized,
.whb-header .wd-dropdown-menu.wd-design-full-width {
	background: var(--pp-white);
	border: 1px solid var(--pp-border);
	border-radius: 0 0 24px 24px;
	box-shadow: var(--pp-shadow);
}
.whb-header .wd-dropdown-menu.wd-design-default { border-radius: 0 0 18px 18px; box-shadow: var(--pp-shadow); }

/* Header icons (wishlist, cart, burger) */
.whb-general-header .wd-tools-element > a {
	width: 44px; height: 44px; padding: 0 !important;
	display: grid !important; place-items: center;
	border: 1px solid var(--pp-border); border-radius: 50%;
	background: #fff; color: var(--pp-plum);
	transition: background .2s ease;
}
.whb-general-header .wd-tools-element > a:hover { background: var(--pp-petal); }
.whb-general-header .wd-tools-element .wd-tools-text,
.whb-general-header .wd-header-cart .wd-cart-subtotal { display: none; }
.whb-general-header .wd-tools-element .wd-tools-icon { color: var(--pp-plum); }
.whb-general-header .wd-tools-element .wd-tools-count,
.whb-general-header .wd-header-cart .wd-cart-number {
	top: -9px; inset-inline-end: -12px;
	min-width: 20px; height: 20px; line-height: 20px; padding: 0 5px;
	border-radius: 999px; background: var(--pp-rose); color: #fff;
	font-size: .68rem; font-weight: 900;
}
.whb-general-header .whb-column { gap: 8px; }

/* Mobile menu panel */
.mobile-nav .wd-nav-mobile > li > a { font-weight: 750; color: var(--pp-plum); }
.mobile-nav, .wd-side-hidden { background-color: var(--pp-blush); }

/* 05 Home — Elementor sections ---------------------------------------------- */
/* Hero */
body .e-con.pp-hero {
	width: var(--pp-shell); max-width: var(--pp-shell); margin-inline: auto;
	min-height: 670px;
	display: grid; grid-template-columns: 1.02fr .98fr; align-items: center;
	gap: clamp(36px, 6vw, 84px);
	padding: 68px 0;
}
body .e-con.pp-hero-copy { display: block; padding: 0; animation: pp-reveal .65s ease both; }
.pp-hero-copy .pp-h1 { margin-bottom: 25px !important; }
.pp-hero-text, .pp-hero-text p { max-width: 600px; margin-bottom: 30px !important; color: var(--pp-muted); font-size: 1.1rem; }
body .e-con.pp-button-row { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; padding: 0; }
body .e-con.pp-button-row > .elementor-widget { width: auto; }
.pp-hero-notes, .pp-hero-notes p { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 26px; color: #73505d; font-size: .86rem; font-weight: 700; }
body .e-con.pp-hero-collage { display: block; position: relative; min-height: 560px; padding: 0; animation: pp-reveal .65s ease both; }
.pp-hero-image { overflow: hidden; border-radius: 34px; box-shadow: var(--pp-shadow); }
.pp-hero-image .elementor-widget-container, .pp-hero-image .elementor-image { height: 100%; }
.pp-hero-image img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
body .pp-hero-collage > .pp-hero-image-main { position: absolute !important; inset: 0 15% 8% 0; width: auto !important; transform: rotate(-2deg); }
body .pp-hero-collage > .pp-hero-image-small { position: absolute !important; width: 42% !important; height: 42%; right: 0; bottom: 0; transform: rotate(5deg); border: 10px solid var(--pp-blush); }
body .pp-hero-collage > .pp-hero-sticker { position: absolute !important; right: -8px; top: 25px; width: 140px !important; z-index: 2; }
.pp-sticker,
body .pp-hero-collage > .pp-hero-sticker {
	width: 140px; aspect-ratio: 1;
	display: grid !important; place-content: center; text-align: center;
	border-radius: 50%; background: var(--pp-plum); color: #fff;
	font-family: var(--pp-serif); line-height: 1.3;
	transform: rotate(7deg);
}
.pp-hero-sticker .elementor-widget-container { display: contents; }
.pp-hero-sticker p { margin: 0 !important; color: #fff; font-family: var(--pp-serif); }
.pp-hero-sticker strong { color: var(--pp-petal); font-size: 1.2rem; font-weight: 700; }

/* Benefit strip */
body .e-con.pp-benefit-strip { width: calc(100vw - var(--wd-scroll-w, 0px)); max-width: none; margin-inline: calc(50% - (100vw - var(--wd-scroll-w, 0px)) / 2); min-height: 60px; display: flex; flex-direction: row; justify-content: center; align-items: center; padding: 12px 18px; background: var(--pp-petal); }
.pp-benefit-strip .elementor-widget, .pp-benefit-strip .elementor-widget-container { width: auto; }
.pp-benefits, .pp-benefit-strip p {
	display: flex; justify-content: center; align-items: center; flex-wrap: nowrap;
	gap: clamp(20px, 5vw, 70px); margin: 0;
	font-size: .85rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em;
}
.pp-benefits b, .pp-benefit-strip b { color: var(--pp-rose); }

/* Section wrappers */
body .e-con.pp-section { width: var(--pp-shell); max-width: var(--pp-shell); margin-inline: auto; display: block; padding: 92px 0; }
body .e-con.pp-soft-section {
	padding-inline: clamp(20px, 4vw, 56px);
	background: rgba(255, 255, 255, .5);
	border: 1px solid rgba(255, 255, 255, .75);
	border-radius: var(--pp-radius-lg);
}
body .e-con.pp-section-heading { display: block; padding: 0; margin-bottom: 35px; }
body .e-con.pp-section-heading.pp-centered { max-width: 720px; margin-inline: auto; text-align: center; }
body .e-con.pp-heading-row { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 24px; padding: 0; margin-bottom: 35px; }
body .e-con.pp-heading-row > .e-con { display: block; padding: 0; width: auto; }
.pp-section-heading .pp-h2, .pp-heading-row .pp-h2 { margin-bottom: 12px !important; }
.pp-heading-row .elementor-widget { width: auto; }

/* Category cards (shortcode) */
.pp-category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pp-category-card {
	min-height: 240px; padding: 24px;
	display: flex; flex-direction: column; justify-content: flex-end;
	position: relative; overflow: hidden;
	border-radius: var(--pp-radius-md); background: #fff; border: 1px solid var(--pp-border);
	color: var(--pp-plum);
	transition: transform .25s ease, box-shadow .25s ease;
}
.pp-category-card::before { content: "\273F"; position: absolute; right: -18px; top: -34px; color: var(--pp-petal); font-size: 8rem; line-height: 1.6; transform: rotate(15deg); }
.pp-category-card:nth-child(4n+2) { background: #ffe5eb; }
.pp-category-card:nth-child(4n+3) { background: linear-gradient(145deg, #f8f6f8, #ded9df); }
.pp-category-card:nth-child(4n+4) { background: #f7d4de; }
.pp-category-card:hover { transform: translateY(-6px); box-shadow: var(--pp-shadow); color: var(--pp-plum); }
.pp-category-card strong { position: relative; font-family: var(--pp-serif); font-size: 1.5rem; font-weight: 500; line-height: 1.2; }
.pp-category-card small { position: relative; color: var(--pp-muted); font-size: .85rem; }

/* Bundle banner */
body .e-con.pp-bundle-banner {
	width: var(--pp-shell); max-width: var(--pp-shell); margin: 100px auto;
	display: grid; grid-template-columns: .9fr 1.1fr; padding: 0;
	overflow: hidden; border-radius: var(--pp-radius-lg); background: var(--pp-petal);
}
.pp-bundle-banner-image, .pp-bundle-banner-image .elementor-widget-container { height: 100%; }
.pp-bundle-banner-image img { width: 100% !important; height: 100% !important; min-height: 450px; max-width: none !important; object-fit: cover; }
body .e-con.pp-bundle-banner-copy { display: block; padding: clamp(42px, 7vw, 92px); align-self: center; }
.pp-bundle-banner-copy .pp-h2 { margin-bottom: 18px !important; }
.pp-bundle-banner-copy .elementor-widget-text-editor, .pp-bundle-banner-copy .elementor-widget-text-editor p { color: #704d59; font-size: 1.05rem; margin-bottom: 16px; }

/* Steps */
body .e-con.pp-steps {
	width: var(--pp-shell); max-width: var(--pp-shell); margin: 0 auto 110px;
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0;
	border-top: 1px solid var(--pp-border);
}
body .e-con.pp-step { display: block; padding: 38px; border-right: 1px solid var(--pp-border); }
body .e-con.pp-step:last-child { border-right: 0; }
.pp-step-num, .pp-step-num .elementor-heading-title { color: var(--pp-rose) !important; font-family: var(--pp-serif); font-size: 1.7rem; line-height: 1.6; }
.pp-step .pp-h3 { margin: 10px 0 12px !important; }
.pp-step .pp-h3 .elementor-heading-title { font-family: var(--pp-sans); font-weight: 700; }
.pp-step .elementor-widget-text-editor, .pp-step p { margin: 0; color: var(--pp-muted); }

/* 06 Product cards -------------------------------------------------------- */
.pp-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pp-product-card { min-width: 0; position: relative; }
.pp-product-image-wrap { position: relative; overflow: hidden; aspect-ratio: .85; border-radius: var(--pp-radius-md); background: #fff; }
.pp-product-image-wrap > a, .pp-product-image-wrap > a img { display: block; width: 100%; height: 100%; }
.pp-product-image-wrap img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .45s ease; }
.pp-product-card:hover .pp-product-image-wrap img { transform: scale(1.04); }
.pp-badge {
	position: absolute; top: 14px; left: 14px; z-index: 2;
	padding: 6px 10px; border-radius: 999px; background: rgba(255, 255, 255, .92);
	color: var(--pp-plum); font-size: .7rem; font-weight: 900; line-height: 1.3; text-transform: uppercase;
}
.pp-product-card .pp-quick-add,
.pp-product-card a.pp-quick-add.button {
	position: absolute; right: 14px; bottom: 14px; z-index: 3;
	width: 44px; height: 44px; min-height: 0; padding: 0 !important;
	display: grid !important; place-items: center;
	border: 0; border-radius: 50% !important;
	background: var(--pp-plum) !important; color: #fff !important;
	font-size: 1.3rem; font-weight: 400; line-height: 1;
	box-shadow: 0 8px 20px rgba(65, 34, 46, .25);
	transition: transform .2s ease, background .2s ease;
}
.pp-product-card .pp-quick-add:hover { transform: scale(1.06); background: var(--pp-plum-hover) !important; }
.pp-product-card .pp-quick-add.loading { opacity: .6; }
.pp-product-card .pp-quick-add.loading::after { display: none; }
.pp-product-card .pp-quick-add.added::after { content: none; }
.pp-product-card .added_to_cart { display: none !important; }
.pp-product-card .wd-wishlist-btn, .pp-product-card .pp-wishlist {
	position: absolute; right: 14px; top: 14px; z-index: 3;
}
.pp-product-info { padding: 14px 4px 0; }
.pp-product-category { color: #a15870; font-size: .69rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.pp-product-info h3 { margin: 7px 0 5px; font-family: var(--pp-serif); font-size: 1.25rem; font-weight: 500; line-height: 1.15; }
.pp-product-info h3 a { color: var(--pp-plum); }
.pp-product-info p { margin-bottom: 8px; color: var(--pp-muted); font-size: .86rem; }
.pp-product-price, .pp-product-price .amount { color: var(--pp-plum); font-weight: 900; }
.pp-product-price del { opacity: .55; font-weight: 600; margin-right: 6px; }
.pp-product-price ins { text-decoration: none; }

/* WoodMart loop wrapper around our card */
.wd-product.pp-card-item { text-align: left; }
.wd-product.pp-card-item .product-wrapper { padding: 0; background: none; box-shadow: none; }
.products.wd-products.pp-grid-loop,
.wd-products.pp-grid-loop { --wd-gap-lg: 24px; --wd-gap-md: 24px; --wd-gap-sm: 12px; }

/* 07 Shop archive --------------------------------------------------------- */
.pp-shop-hero { min-height: 280px; display: flex; align-items: center; justify-content: space-between; padding-block: 64px 42px; }
.pp-shop-hero h1 { margin-bottom: 10px; font-size: clamp(3rem, 6vw, 5.8rem); }
.pp-shop-hero p, .pp-shop-hero .term-description { color: var(--pp-muted); margin: 0; }
.pp-hero-flower { color: var(--pp-petal); font-size: clamp(5rem, 11vw, 10rem); line-height: 1; }
.pp-shop-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 22px; border-radius: var(--pp-radius-md); background: #fff; border: 1px solid var(--pp-border); }
.pp-search-box { flex: 1; display: flex; align-items: center; gap: 12px; margin: 0; padding: 0 16px; border: 1px solid var(--pp-border); border-radius: 999px; background: var(--pp-blush); }
.pp-search-box input[type="search"] { width: 100%; min-height: 48px; border: 0 !important; outline: 0; background: transparent !important; box-shadow: none !important; padding: 0; }
.pp-search-box button { border: 0; background: none; padding: 0; color: var(--pp-plum); font-size: 1.1rem; cursor: pointer; }
.pp-shop-toolbar .woocommerce-ordering { margin: 0; display: flex; align-items: center; gap: 10px; font-size: .87rem; font-weight: 800; }
.pp-shop-toolbar .woocommerce-ordering select, .pp-sort-box select { min-height: 48px; padding: 0 38px 0 16px; border: 1px solid var(--pp-border); border-radius: 999px; background-color: #fff; }
.pp-category-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-block: 25px; }
.pp-category-tabs a, .pp-category-tabs button {
	padding: 10px 16px; border: 1px solid var(--pp-border); border-radius: 999px;
	background: rgba(255, 255, 255, .65); color: var(--pp-plum);
	font-size: .92rem; font-weight: 800; line-height: 1.4; cursor: pointer;
}
.pp-category-tabs a:hover, .pp-category-tabs a.selected,
.pp-category-tabs button:hover, .pp-category-tabs button.selected { border-color: var(--pp-plum); background: var(--pp-plum); color: #fff; }
.pp-shop-page .shop-loop-head { min-height: 44px; margin-bottom: 22px; align-items: center; }
.pp-shop-page .shop-loop-head .woocommerce-ordering { display: none; }
.pp-shop-page .woocommerce-result-count { color: var(--pp-plum); }
.pp-shop-page .wd-breadcrumbs, .pp-shop-page .woocommerce-breadcrumb { font-size: .86rem; color: var(--pp-muted); }
.pp-empty-state { padding: 80px 24px; text-align: center; border: 1px dashed var(--pp-rose); border-radius: var(--pp-radius-lg); background: rgba(255, 255, 255, .48); }
.pp-empty-state > span { color: var(--pp-rose); font-size: 3rem; }
.pp-empty-state p { color: var(--pp-muted); }
.pp-shop-page .woocommerce-pagination .page-numbers li .current,
.pp-shop-page .wd-loop-footer .page-numbers .current { background: var(--pp-plum); color: #fff; border-radius: 999px; }
.pp-shop-page .products-footer { margin-top: 40px; }
.pp-shop-page.pp-live-filtering .wd-product.pp-filtered-out { display: none !important; }

/* 08 Single product ------------------------------------------------------ */
.single-product .wd-content-layout { padding-block: 45px 70px; }
.single-product .product_title { font-family: var(--pp-serif); font-weight: 500; font-size: clamp(2.8rem, 5vw, 5rem); letter-spacing: -.05em; line-height: 1.05; margin: 8px 0 18px; }
.single-product .summary-inner > .price, .single-product .summary .price { font-size: 1.35rem; font-weight: 800; color: var(--pp-plum); }
.single-product .summary .price .amount { color: var(--pp-plum); }
.single-product .woocommerce-product-details__short-description { color: var(--pp-muted); font-size: 1.05rem; }
.single-product .woocommerce-product-gallery .wd-carousel-item img,
.single-product .woocommerce-product-gallery__image img,
.single-product .wd-gallery-images img { border-radius: var(--pp-radius-lg); }
.single-product .wd-gallery-thumb img { border-radius: 14px; }
.pp-product-kicker { color: #a15870; font-size: .69rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.pp-option-block { margin-block: 28px; }
.pp-option-block > strong { display: block; margin-bottom: 12px; }
.pp-option-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pp-option-pills button {
	padding: 10px 15px; min-height: 0;
	border: 1px solid var(--pp-border); border-radius: 999px; background: #fff; color: var(--pp-plum);
	font-size: .92rem; font-weight: 600; text-transform: none; line-height: 1.3;
}
.pp-option-pills button:hover { border-color: var(--pp-plum); }
.pp-option-pills button.selected { border-color: var(--pp-plum); background: var(--pp-plum); color: #fff; }
.single-product form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin: 28px 0; }
.single-product form.cart .quantity {
	display: inline-grid; grid-template-columns: 42px 40px 42px; align-items: center;
	margin: 0; border: 1px solid var(--pp-border); border-radius: 999px; background: #fff; overflow: hidden;
}
.single-product form.cart .quantity input[type="button"],
.single-product form.cart .quantity .minus, .single-product form.cart .quantity .plus { border: 0; background: transparent; font-size: 1.15rem; height: 48px; min-height: 0; width: 42px; }
.single-product form.cart .quantity input.qty { border: 0; background: transparent; width: 40px; min-height: 48px; padding: 0; text-align: center; font-weight: 800; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 200px; min-height: 50px; }
.single-product .wd-wishlist-btn > a, .single-product .wd-compare-btn > a { font-weight: 700; }
.pp-bundle-nudge { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px; margin-top: 10px; border-radius: var(--pp-radius-sm); background: var(--pp-petal); color: var(--pp-plum); }
.pp-bundle-nudge:hover { color: var(--pp-plum); }
.pp-bundle-nudge span { display: grid; }
.pp-bundle-nudge small { color: #73505d; }
.pp-detail-list { display: grid; gap: 10px; margin: 26px 0; padding: 20px 0; border-block: 1px solid var(--pp-border); }
.pp-detail-list span::before { content: "\2713"; margin-right: 10px; color: #a54866; font-weight: 900; }
.pp-detail-assurances { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pp-detail-assurances span { display: grid; padding: 15px; border-radius: 14px; background: rgba(255, 255, 255, .6); font-size: .8rem; line-height: 1.5; }
.pp-detail-assurances small { color: var(--pp-muted); }
.single-product .related-and-upsells .title, .single-product .related-products .title,
.single-product .related-and-upsells > div > h2, .single-product section.related > h2 {
	font-family: var(--pp-serif); font-weight: 500; font-size: clamp(2.1rem, 4.4vw, 4rem); letter-spacing: -.035em; text-align: left; text-transform: none;
}

/* 09 Bundle builder ------------------------------------------------------- */
body .e-con.pp-bundle-hero { width: var(--pp-shell); max-width: 900px; margin-inline: auto; display: block; padding: 70px 0 42px; text-align: center; }
.pp-bundle-hero .pp-h1, .pp-bundle-hero .pp-h1 .elementor-heading-title { margin-bottom: 20px !important; font-size: clamp(3rem, 7vw, 6.2rem); }
.pp-bundle-hero .elementor-widget-text-editor, .pp-bundle-hero p { color: var(--pp-muted); font-size: 1.08rem; }
.pp-bundle-steps { display: flex; justify-content: center; gap: 32px; margin-top: 30px; flex-wrap: wrap; }
.pp-bundle-steps span { display: flex; align-items: center; gap: 8px; font-weight: 750; }
.pp-bundle-steps b { width: 30px; aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; background: var(--pp-petal); }
.pp-bundle-builder { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr); gap: 34px; align-items: start; padding-bottom: 110px; }
.pp-bundle-builder .pp-heading-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 10px; }
.pp-bundle-builder .pp-heading-row h2 { margin-bottom: 12px; }
.pp-bundle-products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.pp-bundle-item {
	position: relative; overflow: hidden; padding: 0; min-height: 0;
	border: 2px solid transparent; border-radius: 18px; background: #fff; color: var(--pp-plum);
	text-align: left; text-transform: none; font-weight: 400; line-height: 1.5; cursor: pointer;
}
.pp-bundle-item:hover { background: #fff; }
.pp-bundle-item.selected { border-color: var(--pp-rose); box-shadow: 0 12px 28px rgba(228, 142, 166, .22); }
.pp-bundle-item img { width: 100%; aspect-ratio: 1; height: auto; object-fit: cover; display: block; }
.pp-bundle-item > span:not(.pp-selection-mark) { display: grid; padding: 12px; }
.pp-bundle-item strong { font-weight: 700; }
.pp-bundle-item small { color: var(--pp-muted); }
.pp-bundle-item .pp-selection-mark { position: absolute; top: 9px; right: 9px; width: 26px; aspect-ratio: 1; display: grid; place-items: center; padding: 0; border-radius: 50%; background: #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .12); }
.pp-bundle-item.selected .pp-selection-mark { background: var(--pp-plum); color: #fff; }
.pp-bundle-summary { position: sticky; top: 115px; padding: 24px; border: 1px solid var(--pp-border); border-radius: var(--pp-radius-lg); background: rgba(255, 255, 255, .78); box-shadow: var(--pp-shadow); }
.pp-summary-title, .pp-unlock-row, .pp-bundle-total { display: flex; justify-content: space-between; align-items: center; }
.pp-summary-title { margin-bottom: 18px; font-family: var(--pp-serif); font-size: 1.25rem; }
.pp-animated-basket { min-height: 275px; position: relative; overflow: hidden; border-radius: 24px 24px 58px 58px; border: 3px solid #b7657d; border-top-width: 14px; background: linear-gradient(160deg, #fbd7e2, #efa7bb); box-shadow: inset 0 -18px 0 rgba(255, 255, 255, .2); }
.pp-animated-basket::before, .pp-animated-basket::after { content: ""; position: absolute; top: -28px; width: 42%; height: 80px; border: 7px solid #b7657d; border-bottom: 0; border-radius: 60px 60px 0 0; }
.pp-animated-basket::before { left: 6%; transform: rotate(-8deg); }
.pp-animated-basket::after { right: 6%; transform: rotate(8deg); }
.pp-basket-brand { position: absolute; left: 0; right: 0; bottom: 24px; text-align: center; font-family: var(--pp-serif); font-size: 1.3rem; font-weight: 800; }
.pp-basket-flower { position: absolute; left: 0; right: 0; bottom: 58px; text-align: center; color: #fff; font-size: 2.2rem; }
.pp-basket-empty { position: absolute; inset: 90px 20px auto; display: grid; text-align: center; color: #704454; }
.pp-basket-empty small { margin-top: 4px; }
.pp-basket-items { position: absolute; inset: 25px 18px 78px; }
.pp-basket-chip { width: 76px; aspect-ratio: 1; position: absolute; overflow: hidden; border: 4px solid #fff; border-radius: 18px; box-shadow: 0 8px 18px rgba(76, 32, 48, .2); animation: pp-basket-drop .45s cubic-bezier(.2, .8, .2, 1.2) both; }
.pp-basket-chip img { width: 100%; height: 100%; object-fit: cover; }
.pp-basket-chip:nth-child(1) { left: 8%; bottom: 4%; transform: rotate(-8deg); }
.pp-basket-chip:nth-child(2) { left: 34%; bottom: 12%; transform: rotate(5deg); }
.pp-basket-chip:nth-child(3) { right: 8%; bottom: 4%; transform: rotate(9deg); }
.pp-basket-chip:nth-child(4) { left: 15%; bottom: 48%; }
.pp-basket-chip:nth-child(5) { left: 42%; bottom: 54%; transform: rotate(-6deg); }
.pp-basket-chip:nth-child(6) { right: 10%; bottom: 46%; transform: rotate(7deg); }
.pp-basket-chip:nth-child(7) { left: 31%; bottom: 76%; }
.pp-basket-chip:nth-child(8) { right: 23%; bottom: 78%; }
@keyframes pp-basket-drop { from { opacity: 0; translate: 0 -45px; scale: .75; } to { opacity: 1; translate: 0 0; scale: 1; } }
.pp-unlock-row { margin: 16px 0; color: var(--pp-muted); font-size: .84rem; }
.pp-wrapping { padding-block: 16px; border-block: 1px solid var(--pp-border); }
.pp-wrapping > strong { display: block; margin-bottom: 10px; }
.pp-wrapping div { display: flex; flex-wrap: wrap; gap: 7px; }
.pp-wrapping button { padding: 8px 11px; min-height: 0; border: 1px solid var(--pp-border); border-radius: 999px; background: #fff; color: var(--pp-plum); font-size: .76rem; font-weight: 600; text-transform: none; line-height: 1.3; }
.pp-wrapping button.selected { background: var(--pp-plum); color: #fff; }
.pp-bundle-total { padding: 18px 0; }
.pp-bundle-total strong { font-size: 1.2rem; }
.pp-fine-print { margin: 11px 0 0; color: var(--pp-muted); font-size: .76rem; text-align: center; }

/* 10 Cart drawer, cart & checkout ---------------------------------------- */
.cart-widget-side { background: var(--pp-blush); box-shadow: -20px 0 50px rgba(49, 25, 34, .18); }
.cart-widget-side .wd-heading { padding: 24px; border-bottom: 1px solid var(--pp-border); }
.cart-widget-side .wd-heading .title { font-family: var(--pp-serif); font-size: 1.8rem; font-weight: 500; text-transform: none; color: var(--pp-plum); }
.cart-widget-side .woocommerce-mini-cart .mini_cart_item { border-bottom: 1px solid var(--pp-border); }
.cart-widget-side .woocommerce-mini-cart .mini_cart_item:hover { background-color: rgba(255, 255, 255, .55); }
.cart-widget-side .woocommerce-mini-cart img, .widget_shopping_cart .cart-item-image img { border-radius: 13px; }
.cart-widget-side .woocommerce-mini-cart-item .cart-info .wd-entities-title { font-family: var(--pp-serif); font-weight: 500; font-size: 1.05rem; }
.cart-widget-side .shopping-cart-widget-footer { background: #fff; border-top: 1px solid var(--pp-border); padding-top: 20px; }
.cart-widget-side .woocommerce-mini-cart__total strong { color: var(--pp-plum); }
.wd-empty-mini-cart::before { color: var(--pp-rose) !important; }
.woocommerce-mini-cart dl.variation, .woocommerce-cart-form dl.variation, .woocommerce-checkout-review-order dl.variation { color: var(--pp-muted); font-size: .82rem; }
.woocommerce-cart .wd-content-layout, .woocommerce-checkout .wd-content-layout { padding-block: 70px 110px; }
.woocommerce-cart .page-title, .woocommerce-checkout .page-title { display: none; }
.pp-checkout-heading h1 { font-size: clamp(3rem, 6vw, 5.5rem); margin-bottom: 12px; }
.pp-checkout-heading p { color: var(--pp-muted); max-width: 670px; }
.pp-checkout-heading { margin-bottom: 35px; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2,
.woocommerce-checkout #customer_details > div,
.woocommerce-checkout .checkout-order-review,
.woocommerce-checkout #order_review,
.woocommerce-cart .cart-totals-inner,
.woocommerce-cart .woocommerce-cart-form {
	padding: clamp(22px, 4vw, 34px);
	border: 1px solid var(--pp-border); border-radius: var(--pp-radius-md);
	background: rgba(255, 255, 255, .72);
}
.woocommerce-checkout h3, .woocommerce-cart .cart_totals h2, .woocommerce-checkout #order_review_heading {
	font-family: var(--pp-serif); font-weight: 500; font-size: 1.7rem; text-transform: none; letter-spacing: -.02em; color: var(--pp-plum);
}
.woocommerce form .form-row label { font-size: .85rem; font-weight: 800; color: var(--pp-plum); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single { min-height: 48px; border-radius: 13px !important; border-color: var(--pp-border); background: #fff; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color: var(--pp-rose); box-shadow: 0 0 0 3px rgba(228, 142, 166, .16); }
.woocommerce-checkout #payment { background: transparent; }
.woocommerce-checkout #payment ul.payment_methods li,
.woocommerce-shipping-methods li {
	padding: 15px; margin-bottom: 10px;
	border: 1px solid var(--pp-border); border-radius: 14px; background: #fff; list-style: none;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked),
.woocommerce-shipping-methods li:has(input:checked) { border-color: var(--pp-rose); background: #fff5f8; }
.woocommerce-checkout #payment div.payment_box { background: var(--pp-blush); border-radius: 12px; }
.woocommerce-checkout-review-order-table .order-total .amount { font-size: 1.12rem; }
.woocommerce-order .woocommerce-thankyou-order-received, .woocommerce-notice--success {
	padding: 40px 24px; text-align: center; border: 1px solid var(--pp-border); border-radius: var(--pp-radius-lg);
	background: rgba(255, 255, 255, .7); font-family: var(--pp-serif); font-size: 2rem; line-height: 1.2;
}
.woocommerce-order .woocommerce-thankyou-order-received::before { content: "\273F"; display: block; color: var(--pp-rose); font-size: 3rem; margin-bottom: 10px; }
.cart-empty.wd-empty-page, .wd-empty-page { color: var(--pp-plum); font-family: var(--pp-serif); }
.wd-empty-page::before { color: var(--pp-rose) !important; }
.woocommerce-message, .woocommerce-info { border-radius: 14px; }

/* 11 Contact & forms ------------------------------------------------------ */
body .e-con.pp-contact-page {
	width: var(--pp-shell); max-width: var(--pp-shell); margin-inline: auto;
	min-height: 760px;
	display: grid; grid-template-columns: 1fr .9fr; gap: clamp(42px, 8vw, 100px); align-items: center;
	padding: 80px 0 110px;
}
body .e-con.pp-contact-intro { display: block; padding: 0; }
.pp-contact-intro .pp-h1, .pp-contact-intro .pp-h1 .elementor-heading-title { font-size: clamp(3rem, 6vw, 5.8rem); margin-bottom: 25px !important; }
.pp-contact-lead, .pp-contact-lead p { color: var(--pp-muted); font-size: 1.05rem; }
.pp-contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-block: 36px; }
.pp-contact-details div { display: grid; }
.pp-contact-details a, .pp-contact-details span { color: var(--pp-muted); }
.pp-contact-details a:hover { color: var(--pp-link); }
.pp-quote, .pp-sec blockquote {
	margin: 0; padding: 22px;
	border-left: 4px solid var(--pp-rose); background: rgba(255, 255, 255, .55);
	font-family: var(--pp-serif); font-size: 1.2rem; font-style: normal; color: var(--pp-plum); line-height: 1.5;
}
.pp-quote small, .pp-sec blockquote small { display: block; margin-top: 8px; color: var(--pp-muted); font-family: var(--pp-sans); font-size: .76rem; text-transform: uppercase; }
body .e-con.pp-contact-card {
	display: block;
	padding: clamp(28px, 5vw, 46px);
	border: 1px solid var(--pp-border); border-radius: var(--pp-radius-lg);
	background: #fff; box-shadow: var(--pp-shadow);
}
.pp-contact-card .pp-h2 .elementor-heading-title, .pp-contact-card .pp-h2 { font-size: 2.3rem; margin-bottom: 20px !important; }
.pp-form { display: grid; gap: 15px; }
.pp-form label { display: grid; gap: 7px; margin: 0; font-size: .85rem; font-weight: 800; color: var(--pp-plum); }
.pp-form input, .pp-form select, .pp-form textarea {
	width: 100%; min-height: 48px; padding: 12px 14px;
	border: 1px solid var(--pp-border); border-radius: 13px; background: #fff; color: var(--pp-plum);
	font: inherit; font-weight: 400; outline: none;
}
.pp-form textarea { min-height: 140px; }
.pp-form input:focus, .pp-form select:focus, .pp-form textarea:focus { border-color: var(--pp-rose); box-shadow: 0 0 0 3px rgba(228, 142, 166, .16); }
.pp-form .pp-hp { position: absolute !important; left: -9999px !important; }
.pp-form-error { padding: 12px 14px; border-radius: 12px; background: #fff0f3; color: #9d3e5c; font-size: .9rem; }
.pp-contact-success { padding: 70px 20px; text-align: center; }
.pp-contact-success > span { color: var(--pp-rose); font-size: 3rem; }
.pp-contact-success h2 { font-size: 2.3rem; }

/* 12 Footer (HTML block built with Elementor) ------------------------------ */
.wd-footer, .footer-container { background: var(--pp-plum) !important; }
body .e-con.pp-footer { display: block; padding: 70px 0 28px; background: var(--pp-plum); color: #fff; }
body .e-con.pp-footer-grid { width: var(--pp-shell); max-width: var(--pp-shell); margin: auto; display: grid; grid-template-columns: 1.4fr .7fr .9fr 1.2fr; gap: 42px; padding: 0; }
body .e-con.pp-footer-grid > .e-con { display: block; padding: 0; }
.pp-footer-brand, .pp-footer-brand .elementor-heading-title { font-family: var(--pp-serif); font-size: 1.6rem; color: #fff !important; font-weight: 500; margin-bottom: 15px; }
.pp-footer p, .pp-footer a, .pp-footer .elementor-widget-text-editor { color: #e9d8de; }
.pp-footer a:hover { color: #fff; }
.pp-footer-title, .pp-footer-title .elementor-heading-title { margin-bottom: 15px !important; color: var(--pp-petal) !important; font-family: var(--pp-sans) !important; font-size: 1.15rem; font-weight: 700; }
.pp-footer-links, .pp-footer-links p { display: grid; gap: 7px; margin: 0; }
.pp-newsletter { display: flex; gap: 7px; margin-top: 12px; }
.pp-newsletter input[type="email"] { min-width: 0; flex: 1; min-height: 48px; padding: 12px 14px; border: 1px solid transparent; border-radius: 13px; background: #fff8fa; color: var(--pp-plum); }
.pp-newsletter button { width: 48px; flex: none; min-height: 48px; padding: 0; border: 0; border-radius: 13px; background: var(--pp-petal); color: var(--pp-plum); font-weight: 900; cursor: pointer; }
.pp-newsletter-note { margin-top: 8px; font-size: .82rem; color: var(--pp-petal); }
body .e-con.pp-footer-bottom, .pp-footer-bottom-inner {
	width: var(--pp-shell); max-width: var(--pp-shell); margin: 48px auto 0; padding: 22px 0 0;
	display: flex; flex-direction: row; justify-content: space-between; gap: 6px;
	border-top: 1px solid rgba(255, 255, 255, .16); color: #d8c3cb; font-size: .8rem;
}
.pp-footer-bottom p, .pp-footer-bottom-inner p { display: flex; justify-content: space-between; width: 100%; margin: 0; color: #d8c3cb; }
.pp-footer-bottom .elementor-widget { width: 100%; }
.scrollToTop { background: var(--pp-plum); color: #fff; border-radius: 50%; }

/* 13 Responsive ------------------------------------------------------------ */
@media (max-width: 1024px) {
	html:root { --pp-shell: min(calc(100% - 28px), 760px); }
	body .e-con.pp-hero { grid-template-columns: 1fr; }
	body .e-con.pp-hero-collage { min-height: 520px; }
	.pp-category-grid, .pp-product-grid { grid-template-columns: repeat(2, 1fr); }
	body .e-con.pp-bundle-banner { grid-template-columns: 1fr; }
	.pp-bundle-banner-image img { min-height: 330px; max-height: 430px; }
	.pp-bundle-builder, body .e-con.pp-contact-page { grid-template-columns: 1fr; }
	.pp-bundle-summary { position: static; }
	body .e-con.pp-footer-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	html:root { --pp-shell: min(calc(100% - 22px), 560px); }
	.pp-h1, .pp-h1 .elementor-heading-title, .pp-scope h1 { font-size: clamp(2.7rem, 14vw, 4.5rem); }
	.pp-h2, .pp-h2 .elementor-heading-title, .pp-scope h2 { font-size: clamp(2rem, 10vw, 3rem); }
	.pp-announcement span:last-child { display: none; }
	.pp-brand { font-size: 1.3rem; }
	.pp-brand-mark { width: 34px; }
	body .e-con.pp-section { padding-block: 68px; }
	body .e-con.pp-hero { min-height: auto; padding-block: 48px; }
	body .e-con.pp-hero-collage { min-height: 390px; }
	body .pp-hero-collage > .pp-hero-sticker { width: 108px !important; }
	.pp-sticker, body .pp-hero-collage > .pp-hero-sticker { font-size: .85rem; }
	body .e-con.pp-benefit-strip { overflow: auto; justify-content: flex-start; }
	.pp-benefits, .pp-benefit-strip p { white-space: nowrap; justify-content: flex-start; }
	.pp-category-grid, .pp-product-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
	.pp-category-card { min-height: 190px; padding: 18px; }
	.pp-product-info h3 { font-size: 1.02rem; }
	body .e-con.pp-heading-row, .pp-bundle-builder .pp-heading-row { align-items: flex-start; flex-direction: column; }
	body .e-con.pp-bundle-banner { margin-block: 68px; }
	body .e-con.pp-bundle-banner-copy { padding: 34px 24px; }
	body .e-con.pp-steps { grid-template-columns: 1fr; }
	body .e-con.pp-step { border-right: 0; border-bottom: 1px solid var(--pp-border); padding: 28px 8px; }
	.pp-shop-hero { min-height: auto; padding-block: 44px 25px; }
	.pp-hero-flower { display: none; }
	.pp-shop-toolbar { display: grid; padding: 14px; }
	.pp-shop-toolbar .woocommerce-ordering { justify-content: space-between; }
	.pp-detail-assurances { grid-template-columns: 1fr; }
	.pp-bundle-steps { display: grid; justify-content: start; gap: 12px; }
	.pp-bundle-products { grid-template-columns: 1fr 1fr; }
	.pp-bundle-item > span:not(.pp-selection-mark) { padding: 9px; font-size: .78rem; }
	.pp-contact-details { grid-template-columns: 1fr; }
	body .e-con.pp-footer-grid { grid-template-columns: 1fr; }
	body .e-con.pp-footer-bottom, .pp-footer-bottom p { display: grid; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
	.pp-sec *, .pp-scope * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Additions: toast, sort box, mega menu --------------------------------------- */
.pp-toast { position: fixed; right: 22px; bottom: 22px; z-index: 99999; max-width: min(360px, calc(100% - 44px)); padding: 14px 18px; border-radius: 14px; background: var(--pp-plum); color: #fff; box-shadow: var(--pp-shadow); opacity: 0; transform: translateY(20px); pointer-events: none; transition: .25s; }
.pp-toast.show { opacity: 1; transform: none; }
.pp-sort-box { display: flex; align-items: center; gap: 10px; margin: 0; font-size: .87rem; font-weight: 800; }
.pp-sort-box label { margin: 0; white-space: nowrap; }
.pp-sort-box select { width: auto; }
.pp-mega-menu { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.pp-mega-item { display: grid; padding: 15px; border-radius: 14px; color: var(--pp-plum); text-align: left; }
.pp-mega-item:hover { background: var(--pp-blush); color: var(--pp-plum); }
.pp-mega-item strong { font-family: var(--pp-serif); font-size: 1.05rem; font-weight: 500; }
.pp-mega-item small { color: var(--pp-muted); font-size: .85rem; line-height: 1.45; }
.wd-nav-mobile .pp-mega-menu { grid-template-columns: 1fr; gap: 0; }
@media (max-width: 767px) { .pp-sort-box { justify-content: space-between; } }

/* Text colour inherits the design (Elementor kit colours are disabled by setup) */
.pp-sec .elementor-widget-text-editor { color: inherit; font-family: inherit; }
.pp-benefit-strip .elementor-widget-text-editor { color: var(--pp-plum); }
.pp-hero-text.elementor-widget-text-editor, .pp-contact-lead.elementor-widget-text-editor, .pp-step .elementor-widget-text-editor { color: var(--pp-muted); }
.pp-bundle-banner-copy .elementor-widget-text-editor { margin-bottom: 24px !important; }
.pp-bundle-hero .elementor-widget-text-editor { color: var(--pp-muted); }
