/*
Theme Name: SWP Florist
Theme URI: https://scintillawpthemes.com/product/swp-florist/
Author: scintillawpthemes
Author URI: https://scintillawpthemes.com/
Description: SWP Florist is a soft, glass-panelled WordPress block theme for florists, flower shops, flower delivery services, floral design studios, bouquet and gift boutiques, wedding and event stylists, plant shops, nurseries and garden centres. Built for the Site Editor and Gutenberg, and fully compatible with WooCommerce, it ships with ready-made shop, cart, checkout, account and single-product templates plus bouquet cards, an occasion ticker, subscription plans, a testimonials carousel, a portfolio-style gallery and a journal blog loop made only from core WordPress blocks. Orchid and rose tones, Cormorant Garamond headings and self-hosted Jost body type give the layout a calm, editorial feel, while fluid responsive typography, generous spacing and accessible colour contrast keep it readable on mobile, tablet and desktop. Lightweight, fast-loading and SEO friendly, with Global Styles, block patterns, block styles, custom colours, custom logo, template editing, full-width templates and translation-ready strings, it suits any small business, agency, ecommerce store, landing page, portfolio or blog site without touching code.
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
Version: 1.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: swp-florist
Domain Path: /languages
Tags: blog, e-commerce, portfolio, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, grid-layout, sticky-post, template-editing, threaded-comments, translation-ready, wide-blocks
*/

/* Colours, type, spacing and block defaults live in theme.json.
   This file carries only what theme.json cannot express: the fixed backdrop,
   glass panels, positioning, pseudo-elements, motion and WooCommerce styling. */

/* ==========================================================================
   1. TOKENS + BASE
   ========================================================================== */

:root {
	--swp-pad-x: var(--wp--preset--spacing--gutter, clamp(24px, calc((100vw - 1320px) / 2), 300px));
	--swp-line: rgba(124, 87, 168, 0.16);
	--swp-line-strong: rgba(124, 87, 168, 0.35);
	--swp-glass: rgba(255, 255, 255, 0.74);
	--swp-glass-line: rgba(255, 255, 255, 0.9);
	--swp-shadow-soft: 0 24px 60px -28px rgba(83, 54, 120, 0.35);
	--swp-shadow-tile: 0 14px 34px -18px rgba(83, 54, 120, 0.28);
	--swp-r-sm: 12px;
	--swp-r-md: 20px;
	--swp-r-lg: 32px;
}

html {
	scroll-behavior: smooth;
	background-color: #f4e9f2;
}

body {
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	background-color: #f4e9f2;
	background-image:
		radial-gradient(34% 20% at 30% 40%, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 70%),
		radial-gradient(28% 16% at 70% 58%, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0) 70%),
		radial-gradient(58% 44% at 12% 8%, #ffe3d2 0%, rgba(255, 227, 210, 0) 70%),
		radial-gradient(52% 40% at 88% 6%, #d9c6f2 0%, rgba(217, 198, 242, 0) 70%),
		radial-gradient(70% 55% at 78% 84%, #bfd9ee 0%, rgba(191, 217, 238, 0) 72%),
		radial-gradient(60% 46% at 14% 88%, #f7c9dd 0%, rgba(247, 201, 221, 0) 72%),
		linear-gradient(180deg, #f9e7ea 0%, #ebddf3 46%, #d9dff0 100%);
	background-attachment: fixed;
	background-repeat: no-repeat;
	background-size: cover;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	overflow-wrap: break-word;
	word-break: normal;
}

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

:where(.wp-site-blocks) > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Visible keyboard focus everywhere. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--orchid-deep);
	outline-offset: 3px;
}

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #fff;
	border-radius: 999px;
	box-shadow: var(--swp-shadow-tile);
	clip-path: none;
	color: var(--wp--preset--color--orchid-deep);
	display: block;
	font-size: 0.9rem;
	height: auto;
	left: 20px;
	line-height: normal;
	padding: 14px 24px;
	text-decoration: none;
	top: 20px;
	width: auto;
	z-index: 100000;
}

/* ==========================================================================
   2. SHARED SECTION FURNITURE
   ========================================================================== */

/* Full-bleed frosted panel. */
.swp-panel,
.wp-block-group.is-style-glass-panel {
	background: var(--swp-glass);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	border-top: 1px solid var(--swp-glass-line);
	border-bottom: 1px solid var(--swp-glass-line);
}

/* Eyebrow: small caps label with a rule before it. */
.swp-eyebrow,
p.is-style-eyebrow {
	align-items: center;
	color: var(--wp--preset--color--orchid-deep);
	display: flex;
	font-size: var(--wp--preset--font-size--eyebrow);
	font-weight: 600;
	gap: 10px;
	letter-spacing: 0.24em;
	line-height: 1.4;
	margin: 0 0 16px;
	text-transform: uppercase;
}

.swp-eyebrow::before,
p.is-style-eyebrow::before {
	background: var(--wp--preset--color--orchid);
	content: "";
	flex: none;
	height: 1px;
	width: 26px;
}

.has-text-align-center .swp-eyebrow,
.swp-eyebrow.has-text-align-center,
p.is-style-eyebrow.has-text-align-center {
	justify-content: center;
}

.swp-eyebrow.has-text-align-center::after,
p.is-style-eyebrow.has-text-align-center::after {
	background: var(--wp--preset--color--orchid);
	content: "";
	flex: none;
	height: 1px;
	width: 26px;
}

.swp-eyebrow.is-light,
.swp-eyebrow.is-light::before,
.swp-eyebrow.is-light::after {
	color: #fff;
}

.swp-eyebrow.is-light::before,
.swp-eyebrow.is-light::after {
	background: var(--wp--preset--color--rose);
}

.swp-lead,
p.is-style-lead {
	font-size: var(--wp--preset--font-size--lead);
	max-width: 56ch;
}

.has-text-align-center .swp-lead,
.swp-lead.has-text-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* Italic accent used inside headings. */
.swp-italic {
	color: var(--wp--preset--color--orchid-deep);
	font-style: italic;
	font-weight: 500;
}

.swp-italic-light {
	color: var(--wp--preset--color--petal);
	font-style: italic;
	font-weight: 500;
}

/* Split section heading: copy left, action right. */
.swp-section-head {
	align-items: flex-end;
	justify-content: space-between;
}

.swp-section-head > .wp-block-group:first-child {
	max-width: 640px;
}

/* Soft white card used by bouquets, quotes, tiles, steps. */
.swp-card,
.wp-block-group.is-style-card {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
}

/* Button variants. */
.wp-block-button__link {
	align-items: center;
	display: inline-flex;
	gap: 10px;
	transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease, color 0.25s ease;
}

.wp-block-button__link:hover {
	box-shadow: 0 20px 36px -12px rgba(124, 87, 168, 0.6);
	transform: translateY(-2px);
}

.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) {
	background: rgba(255, 255, 255, 0.55);
	border-color: var(--swp-line-strong);
	box-shadow: none;
	color: var(--wp--preset--color--orchid-deep);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: #fff;
	box-shadow: var(--swp-shadow-tile);
	color: var(--wp--preset--color--orchid-deep);
}

.swp-btn-small .wp-block-button__link {
	font-size: 12.8px;
	padding: 11px 22px;
}

.swp-btn-light .wp-block-button__link {
	background: #fff;
	background-image: none;
	box-shadow: var(--swp-shadow-tile);
	color: var(--wp--preset--color--orchid-deep);
}

.swp-btn-light .wp-block-button__link:hover {
	background: var(--wp--preset--color--petal);
	color: var(--wp--preset--color--plum);
}

/* Inline icon images sit on the text baseline, never stretch. */
.swp-icon img,
.swp-icon-sm img,
.swp-icon-lg img {
	display: block;
	height: auto;
}

.swp-icon {
	flex: none;
	width: 20px;
}

.swp-icon-sm {
	flex: none;
	width: 16px;
}

.swp-icon-lg {
	flex: none;
	width: 32px;
}

/* Check list used in the studio and subscription sections. */
.swp-check-list li,
.wp-block-list.is-style-checks li {
	list-style: none;
	padding-left: 34px;
	position: relative;
}

.swp-check-list,
.wp-block-list.is-style-checks {
	display: grid;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.swp-check-list li::before,
.wp-block-list.is-style-checks li::before {
	background-color: var(--wp--preset--color--orchid-deep);
	content: "";
	height: 20px;
	left: 0;
	-webkit-mask: url("assets/images/icons/check.svg") no-repeat center / contain;
	mask: url("assets/images/icons/check.svg") no-repeat center / contain;
	position: absolute;
	top: 3px;
	width: 20px;
}

.swp-check-list strong,
.wp-block-list.is-style-checks strong {
	color: var(--wp--preset--color--plum);
	font-weight: 500;
}

/* Petal separator. */
.wp-block-separator.is-style-petal {
	background: none;
	border: 0;
	height: 14px;
	-webkit-mask: url("assets/images/icons/flower.svg") no-repeat center / contain;
	mask: url("assets/images/icons/flower.svg") no-repeat center / contain;
	background-color: var(--wp--preset--color--rose-deep);
	width: 14px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   3. HEADER
   ========================================================================== */

.swp-header {
	position: sticky;
	top: 0;
	z-index: 60;
}

.swp-nav {
	background: rgba(255, 255, 255, 0.55);
	border-bottom: 1px solid rgba(255, 255, 255, 0.75);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	transition: background 0.35s ease, box-shadow 0.35s ease;
}

/* Frosted-to-solid nav on scroll, without any JavaScript. */
@supports (animation-timeline: scroll()) {
	.swp-nav {
		animation: swp-nav-scrolled linear both;
		animation-timeline: scroll();
		animation-range: 0 140px;
	}
}

@keyframes swp-nav-scrolled {
	to {
		background: rgba(255, 255, 255, 0.88);
		box-shadow: 0 16px 40px -22px rgba(83, 54, 120, 0.4);
	}
}

.swp-logo {
	align-items: center;
	display: flex;
	gap: 12px;
}

.swp-logo-mark,
.swp-logo-mark a {
	display: block;
	line-height: 0;
}

.swp-logo-mark img,
.wp-block-site-logo img {
	height: auto;
	max-width: 100%;
}

.swp-nav .swp-logo-mark img,
.swp-nav .wp-block-site-logo img {
	width: clamp(118px, 12vw, 150px);
	height: auto;
}

/* The supplied footer mark is white line art. Recolour it so it stays legible
   on the light frosted footer panel. */
.swp-footer-logo img {
	width: clamp(140px, 14vw, 170px);
}

.swp-logo .wp-block-site-title,
.swp-logo .wp-block-site-title a {
	line-height: 1;
	text-decoration: none;
}

.swp-logo .wp-block-site-title em {
	color: var(--wp--preset--color--orchid-deep);
	font-style: italic;
	font-weight: 500;
}

.swp-nav-phone {
	align-items: center;
	color: var(--wp--preset--color--plum);
	display: flex;
	font-size: 14px;
	font-weight: 500;
	gap: 8px;
}

.swp-nav-phone a {
	color: inherit;
}

/* Core navigation tuned to the reference underline behaviour. */
.swp-nav .wp-block-navigation .wp-block-navigation-item__content {
	padding: 4px 0;
	position: relative;
}

.swp-nav .wp-block-navigation .wp-block-navigation-item__content::after {
	background: var(--wp--preset--color--orchid);
	border-radius: 2px;
	bottom: 0;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transition: width 0.3s ease;
	width: 0;
}

.swp-nav .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.swp-nav .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after {
	width: 100%;
}

.swp-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(255, 255, 255, 0.97);
	padding: 32px 24px;
}

.swp-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	display: none;
}

.swp-nav .wp-block-navigation__responsive-container-open,
.swp-nav .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--plum);
}

/* backdrop-filter creates a containing block for fixed children, which would
   trap the mobile overlay inside the bar. Drop the blur while it is open. */
.swp-nav:has(.wp-block-navigation__responsive-container.is-menu-open) {
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

/* Core switches the navigation overlay on at 600px. This theme has a phone
   number and two shop controls in the bar, so the overlay takes over at
   1200px instead. */
@media (max-width: 1199px) {
	.swp-nav .wp-block-navigation__responsive-container:not(.is-menu-open) {
		background-color: inherit;
		display: none;
	}

	.swp-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.swp-nav .wp-block-navigation__responsive-container.is-menu-open {
		display: flex;
		flex-direction: column;
		background-color: rgba(255, 255, 255, 0.97);
		padding: 32px 24px;
	}

	.swp-nav .wp-block-navigation__responsive-container-close {
		display: block;
	}

	/* Below the overlay breakpoint the menu is a single burger, so it moves to
	   the end of the bar: logo · account · cart · phone + CTA · menu. */
	.swp-header .swp-nav > .wp-block-navigation {
		flex: 0 0 auto;
		justify-content: flex-end;
		margin-inline: 0;
		order: 5;
	}

	.swp-header .swp-nav > .wp-block-woocommerce-customer-account {
		margin-inline-start: auto;
		order: 2;
	}

	.swp-header .swp-nav > .wp-block-woocommerce-mini-cart {
		order: 3;
	}

	.swp-header .swp-nav > .swp-nav-cta {
		order: 4;
	}

	/* With no shop blocks in the bar, the CTA group takes the free space. */
	.swp-header .swp-nav:not(:has(.wp-block-woocommerce-customer-account)) > .swp-nav-cta {
		margin-inline-start: auto;
	}
}

@media (min-width: 1200px) {
	.swp-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: none;
	}
}

/* The phone number and order button are dropped on phones, where the bar only
   has room for the logo, the shop controls and the menu toggle. */
@media (max-width: 781px) {
	.swp-header .swp-nav > .swp-nav-cta {
		display: none;
	}

	.swp-header .swp-nav > .wp-block-woocommerce-customer-account {
		margin-inline-start: auto;
	}
}

/* ==========================================================================
   4. HERO
   ========================================================================== */

.swp-hero {
	overflow: hidden;
	position: relative;
}

.swp-hero::before {
	background: radial-gradient(circle, rgba(233, 175, 199, 0.35), rgba(233, 175, 199, 0) 70%);
	content: "";
	height: 460px;
	pointer-events: none;
	position: absolute;
	right: -140px;
	top: -140px;
	width: 460px;
}

.swp-hero > * {
	position: relative;
}

.swp-hero-stats {
	border-top: 1px solid var(--swp-line);
	padding-top: 28px;
}

.swp-hero-stats > .wp-block-group {
	flex: 1;
	padding-right: 24px;
}

.swp-hero-stats > .wp-block-group + .wp-block-group {
	border-left: 1px solid var(--swp-line);
	padding-left: 24px;
}

.swp-stat-n {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 30px;
	font-weight: 700;
	line-height: 1;
	margin: 0;
}

.swp-stat-n em {
	color: var(--wp--preset--color--orchid-deep);
	font-style: normal;
}

.swp-stat-t {
	font-size: 12.5px;
	letter-spacing: 0.04em;
	margin: 6px 0 0;
}

/* Arch photo with dashed ring and floating chips. */
.swp-hero-visual {
	justify-content: center;
	position: relative;
}

.swp-arch-wrap {
	margin-inline: auto;
	max-width: 400px;
	position: relative;
	width: 100%;
}

.swp-arch-wrap::after {
	border: 1px dashed rgba(124, 87, 168, 0.4);
	border-radius: 250px 250px 34px 34px;
	content: "";
	inset: -14px;
	pointer-events: none;
	position: absolute;
}

.swp-arch,
.wp-block-image.is-style-arch {
	background: linear-gradient(180deg, #e6d6f2, #f4d7e4);
	border: 1px solid rgba(255, 255, 255, 0.85);
	border-radius: 240px 240px 26px 26px;
	box-shadow: 0 34px 70px -30px rgba(83, 54, 120, 0.5);
	margin: 0;
	overflow: hidden;
}

.swp-arch img,
.wp-block-image.is-style-arch img {
	aspect-ratio: 4 / 5.1;
	display: block;
	object-fit: cover;
	transform: scale(1.02);
	transition: transform 6s ease;
	width: 100%;
}

.swp-hero-visual:hover .swp-arch img {
	transform: scale(1.08);
}

.swp-chip {
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid #fff;
	border-radius: 999px;
	box-shadow: var(--swp-shadow-tile);
	color: var(--wp--preset--color--plum);
	font-size: 12.5px;
	font-weight: 500;
	padding: 10px 18px;
	position: absolute;
	z-index: 3;
}

.swp-chip p {
	margin: 0;
}

.swp-chip-a {
	animation: swp-bob 5s ease-in-out infinite;
	left: -26px;
	top: 64px;
}

.swp-chip-b {
	animation: swp-bob 6s ease-in-out 1.2s infinite;
	bottom: 96px;
	left: -10px;
}

@keyframes swp-bob {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-10px);
	}
}

.swp-stamp {
	align-items: center;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid #fff;
	border-radius: 50%;
	bottom: 52px;
	box-shadow: var(--swp-shadow-tile);
	display: flex;
	height: 118px;
	justify-content: center;
	position: absolute;
	right: -8px;
	width: 118px;
	z-index: 3;
}

.swp-stamp-ring {
	inset: 0;
	margin: 0;
	position: absolute;
}

.swp-stamp-ring img {
	animation: swp-spin 16s linear infinite;
	width: 100%;
}

.swp-stamp-core {
	margin: 0;
	position: relative;
	width: 34px;
}

@keyframes swp-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ==========================================================================
   5. OCCASION TICKER
   ========================================================================== */

.swp-ticker {
	overflow: hidden;
}

.swp-ticker-track {
	animation: swp-slide 30s linear infinite;
	display: flex;
	flex-wrap: nowrap;
	width: max-content;
}

.swp-ticker-set {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: 44px;
	padding-right: 44px;
}

.swp-ticker-set p {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 18.5px;
	font-style: italic;
	margin: 0;
	white-space: nowrap;
}

.swp-ticker-set .swp-ticker-sep {
	flex: none;
	margin: 0;
	width: 14px;
}

@keyframes swp-slide {
	to {
		transform: translateX(-50%);
	}
}

.swp-ticker:hover .swp-ticker-track {
	animation-play-state: paused;
}

/* ==========================================================================
   6. BOUQUET / PRODUCT CARDS
   ========================================================================== */

.swp-bq-grid {
	display: grid;
	gap: 26px;
	grid-template-columns: repeat(3, 1fr);
}

.swp-bq {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	position: relative;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.swp-bq:hover {
	box-shadow: 0 26px 50px -22px rgba(83, 54, 120, 0.42);
	transform: translateY(-6px);
}

.swp-bq-media {
	background: linear-gradient(160deg, var(--wp--preset--color--lavender), var(--wp--preset--color--blush));
	overflow: hidden;
	position: relative;
}

.swp-bq-media figure,
.swp-bq-media .wp-block-image {
	margin: 0;
}

.swp-bq-media img {
	aspect-ratio: 1 / 1.02;
	display: block;
	object-fit: cover;
	transition: transform 0.8s ease;
	width: 100%;
}

.swp-bq:hover .swp-bq-media img {
	transform: scale(1.06);
}

.swp-bq-badge {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	font-size: 10.9px;
	font-weight: 600;
	left: 14px;
	letter-spacing: 0.12em;
	margin: 0;
	padding: 6px 14px;
	position: absolute;
	text-transform: uppercase;
	top: 14px;
	z-index: 2;
}

.swp-bq-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 22px 24px 24px;
}

.swp-bq-body h3 {
	margin: 0 0 4px;
}

.swp-bq-stems {
	font-size: 13.2px;
	margin: 0 0 14px;
}

.swp-bq-foot {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-top: auto;
}

.swp-bq-price {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
}

.swp-bq-price small {
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 11.5px;
	font-weight: 400;
}

/* Circular "add" control: the label stays in the accessibility tree. */
.swp-bq-add .wp-block-button__link {
	background: #fff;
	background-image: none;
	border: 1px solid var(--swp-line-strong);
	border-radius: 50%;
	box-shadow: none;
	font-size: 0;
	height: 42px;
	padding: 0;
	position: relative;
	transition: 0.25s ease;
	width: 42px;
}

.swp-bq-add .wp-block-button__link::before {
	background-color: var(--wp--preset--color--orchid-deep);
	content: "";
	height: 16px;
	inset: 0;
	margin: auto;
	-webkit-mask: url("assets/images/icons/plus.svg") no-repeat center / contain;
	mask: url("assets/images/icons/plus.svg") no-repeat center / contain;
	position: absolute;
	transition: background-color 0.25s ease;
	width: 16px;
}

.swp-bq-add .wp-block-button__link:hover {
	background: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	transform: rotate(90deg);
}

.swp-bq-add .wp-block-button__link:hover::before {
	background-color: #fff;
}

/* ==========================================================================
   7. SUBSCRIPTION PANEL
   ========================================================================== */

.swp-sub-panel {
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
	border-top: 1px solid rgba(255, 255, 255, 0.4);
	overflow: hidden;
	position: relative;
}

.swp-sub-panel::before,
.swp-sub-panel::after {
	border-radius: 50%;
	content: "";
	pointer-events: none;
	position: absolute;
}

.swp-sub-panel::before {
	background: radial-gradient(circle, rgba(233, 175, 199, 0.4), transparent 70%);
	height: 380px;
	right: -120px;
	top: -140px;
	width: 380px;
}

.swp-sub-panel::after {
	background: radial-gradient(circle, rgba(255, 255, 255, 0.16), transparent 70%);
	bottom: -120px;
	height: 300px;
	left: -90px;
	width: 300px;
}

.swp-sub-panel > * {
	position: relative;
}

.swp-sub-note {
	align-items: center;
	color: rgba(255, 255, 255, 0.7);
	display: flex;
	font-size: 12.8px;
	gap: 10px;
	margin-top: 22px;
}

.swp-plan {
	align-items: center;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: var(--swp-r-sm);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	display: flex;
	gap: 18px;
	justify-content: space-between;
	padding: 18px 24px;
	transition: background 0.3s ease, transform 0.3s ease;
}

.swp-plan:hover {
	background: rgba(255, 255, 255, 0.18);
	transform: translateX(6px);
}

.swp-plan .swp-plan-name {
	color: #fff;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.2;
	margin: 0;
}

.swp-plan .swp-plan-sub {
	color: rgba(255, 255, 255, 0.75);
	font-size: 12.8px;
	margin: 2px 0 0;
}

.swp-plan .swp-plan-price {
	color: var(--wp--preset--color--petal);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 24px;
	font-weight: 700;
	margin: 0;
	white-space: nowrap;
}

.swp-plan .swp-plan-price small {
	color: rgba(255, 255, 255, 0.7);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 11.2px;
	font-weight: 400;
}

/* ==========================================================================
   8. TESTIMONIALS
   ========================================================================== */

.swp-quote {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 30px 28px;
}

.swp-stars {
	display: flex;
	gap: 4px;
}

.swp-stars .wp-block-image {
	margin: 0;
	width: 15px;
}

.swp-quote-text {
	font-size: 14.8px;
	margin: 0;
}

.swp-quote-who {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-top: auto;
}

.swp-avatar {
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 6px 14px -6px rgba(83, 54, 120, 0.4);
	flex: none;
	margin: 0;
	overflow: hidden;
	width: 46px;
}

.swp-avatar img {
	border-radius: 50%;
	display: block;
	width: 100%;
}

.swp-quote-name {
	color: var(--wp--preset--color--plum);
	font-size: 14.5px;
	font-weight: 500;
	margin: 0;
}

.swp-quote-role {
	font-size: 12px;
	margin: 0;
}

/* ---- carousel ---------------------------------------------------------- */

/* Room below the track for the pagination bullets, and to the sides so the
   card shadows are not clipped by the slider's own overflow:hidden. */
.swp-reviews-slider.swiper {
	margin-inline: -14px;
	padding: 6px 14px 52px;
	position: relative;
}

.swp-reviews-slider .swiper-wrapper {
	align-items: stretch;
	box-sizing: border-box;
}

.swp-reviews-slider .swiper-slide {
	box-sizing: border-box;
	display: flex;
	height: auto;
}

.swp-reviews-slider .swiper-slide > .swp-quote {
	flex: 1;
}

/* Before Swiper boots, show the first cards side by side rather than stacked. */
.swp-reviews-slider:not(.swiper-initialized) .swiper-wrapper {
	display: flex;
	gap: 24px;
}

.swp-reviews-slider:not(.swiper-initialized) .swiper-slide {
	flex: 0 0 100%;
}

@media (min-width: 600px) {
	.swp-reviews-slider:not(.swiper-initialized) .swiper-slide {
		flex: 0 0 calc(50% - 12px);
	}
}

@media (min-width: 1080px) {
	.swp-reviews-slider:not(.swiper-initialized) .swiper-slide {
		flex: 0 0 calc(33.333% - 16px);
	}
}

/* Bullets */
.swp-reviews-slider .swp-swiper-pagination.swiper-pagination-bullets {
	bottom: 14px;
	line-height: 0;
}

.swp-reviews-slider .swiper-pagination-bullet {
	background: var(--wp--preset--color--orchid-deep);
	height: 8px;
	opacity: 0.28;
	transition: opacity 0.25s ease, width 0.25s ease;
	width: 8px;
}

.swp-reviews-slider .swiper-pagination-bullet-active {
	border-radius: 999px;
	opacity: 1;
	width: 26px;
}

/* ==========================================================================
   9. BLOG · ARCHIVE · SINGLE
   ========================================================================== */

.swp-post-card {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.swp-post-card:hover {
	box-shadow: 0 26px 50px -22px rgba(83, 54, 120, 0.42);
	transform: translateY(-6px);
}

.swp-post-card .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}

.swp-post-card .wp-block-post-featured-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.8s ease;
	width: 100%;
}

.swp-post-card:hover .wp-block-post-featured-image img {
	transform: scale(1.06);
}

.swp-post-card .wp-block-post-title {
	font-size: 21px;
}

.swp-post-meta {
	color: var(--wp--preset--color--ink);
	font-size: 12.5px;
}

.swp-post-meta .wp-block-post-terms a {
	color: var(--wp--preset--color--orchid-deep);
}

.swp-entry-content > * {
	margin-block-start: 26px;
}

.swp-entry-content > :first-child {
	margin-block-start: 0;
}

.wp-block-post-navigation-link a {
	color: var(--wp--preset--color--orchid-deep);
	font-weight: 500;
}

.wp-block-query-pagination {
	font-size: 14.5px;
}

.wp-block-query-pagination .page-numbers {
	align-items: center;
	border: 1px solid var(--swp-line);
	border-radius: 999px;
	display: inline-flex;
	height: 40px;
	justify-content: center;
	min-width: 40px;
	padding: 0 12px;
	transition: 0.25s ease;
}

.wp-block-query-pagination .page-numbers:hover,
.wp-block-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	color: #fff;
}

/* Comments and forms. */
.wp-block-post-comments-form input[type="text"],
.wp-block-post-comments-form input[type="email"],
.wp-block-post-comments-form input[type="url"],
.wp-block-post-comments-form textarea,
.wp-block-search__input,
.swp-field input,
.swp-field select,
.swp-field textarea {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25);
	border-radius: var(--swp-r-sm);
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 15px;
	padding: 15px 18px;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	width: 100%;
}

.wp-block-post-comments-form input:focus,
.wp-block-post-comments-form textarea:focus,
.wp-block-search__input:focus {
	border-color: var(--wp--preset--color--orchid);
	box-shadow: 0 0 0 4px rgba(155, 114, 201, 0.15);
	outline: none;
}

.wp-block-search__button {
	border-radius: 999px;
	padding: 15px 26px;
}

.wp-block-comment-author-name a {
	color: var(--wp--preset--color--plum);
	font-weight: 500;
}

/* ==========================================================================
   10. FOOTER
   ========================================================================== */

.swp-footer .swp-foot-h {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 18px;
}

.swp-foot-links ul,
.swp-foot-links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.swp-foot-links li {
	margin-bottom: 10px;
}

.swp-foot-links a {
	color: var(--wp--preset--color--ink);
	font-size: 14.5px;
	transition: color 0.2s ease;
}

.swp-foot-links a:hover {
	color: var(--wp--preset--color--orchid-deep);
}

.swp-foot-contact {
	display: grid !important;
	gap: 14px;
	grid-template-columns: minmax(0, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.swp-footer .swp-foot-contact > .wp-block-group,
.swp-foot-contact li {
	align-items: flex-start !important;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	gap: 12px;
	min-width: 0;
	width: 100%;
}

.swp-foot-contact .swp-foot-ico,
.swp-footer .swp-foot-contact .wp-block-image,
.swp-footer .swp-foot-contact figure {
	flex: 0 0 18px;
	height: 18px;
	margin: 3px 0 0 !important;
	width: 18px;
}

.swp-foot-contact .swp-foot-ico,
.swp-footer .swp-foot-contact .wp-block-image img {
	display: block;
	height: 18px;
	max-width: 18px;
	width: 18px;
}

.swp-foot-contact p {
	flex: 1 1 auto;
	font-size: 14.5px;
	line-height: 1.5;
	margin: 0;
	min-width: 0;
}

.swp-socials {
	display: flex;
	gap: 10px;
}

.swp-socials .wp-block-social-links {
	gap: 10px;
}

.swp-socials .wp-block-social-link,
.swp-social-btn {
	align-items: center;
	background: #fff;
	border: 1px solid var(--swp-line-strong);
	border-radius: 50%;
	display: flex;
	height: 38px;
	justify-content: center;
	transition: 0.25s ease;
	width: 38px;
}

.swp-social-btn img {
	width: 15px;
}

.swp-social-btn:hover {
	background: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	transform: translateY(-3px);
}

.swp-social-btn:hover img {
	filter: brightness(0) invert(1);
}

.swp-foot-bar {
	border-top: 1px solid var(--swp-line);
	font-size: 12.8px;
}

.swp-foot-bar p {
	margin: 0;
}

.swp-footer p[style*="indianred"],
.swp-foot-subscribe p[style*="indianred"] {
	display: none !important;
}

.swp-foot-subscribe .mc4wp-form-fields,
.swp-foot-subscribe .swp-subscribe-form {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.swp-foot-subscribe .mc4wp-form-fields p {
	margin: 0;
}

.swp-foot-subscribe input[type="email"] {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25);
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	flex: 1 1 160px;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 14px;
	min-width: 0;
	padding: 12px 16px;
}

.swp-foot-subscribe input[type="email"]:focus {
	border-color: var(--wp--preset--color--orchid);
	box-shadow: 0 0 0 4px rgba(155, 114, 201, 0.15);
	outline: none;
}

.swp-foot-subscribe input[type="submit"],
.swp-foot-subscribe button[type="submit"] {
	background: var(--wp--preset--color--orchid-deep);
	border: 0;
	border-radius: 999px;
	color: #fff;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.5px;
	font-weight: 500;
	padding: 12px 18px;
}

.swp-foot-subscribe input[type="submit"]:hover,
.swp-foot-subscribe button[type="submit"]:hover {
	background: var(--wp--preset--color--orchid);
}

.swp-subscribe-ok {
	color: var(--wp--preset--color--orchid-deep);
	font-size: 13.5px;
	margin: 0 0 10px;
}

.swp-pay-icons {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

.swp-pay-icons img {
	border-radius: 3px;
	display: block;
	height: 24px;
	width: auto;
}

/* ==========================================================================
   11. WOOCOMMERCE
   ========================================================================== */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner,
.swp-notice {
	align-items: flex-start;
	background: rgba(217, 198, 242, 0.38) !important;
	border: 1px solid rgba(124, 87, 168, 0.22) !important;
	border-radius: var(--swp-r-sm) !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--plum) !important;
	display: flex;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 14.5px;
	gap: 12px;
	line-height: 1.5;
	list-style: none !important;
	margin: 0 0 16px !important;
	padding: 14px 16px !important;
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before,
.woocommerce-error li::before {
	content: none !important;
	display: none !important;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error,
.swp-notice--error {
	background: rgba(247, 201, 221, 0.48) !important;
	border-color: rgba(201, 92, 127, 0.28) !important;
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success,
.swp-notice--ok {
	background: rgba(191, 217, 238, 0.5) !important;
	border-color: rgba(124, 87, 168, 0.18) !important;
}

.wc-block-components-notice-banner svg,
.swp-notice svg {
	flex: 0 0 22px;
	height: 22px;
	margin: 1px 0 0;
	width: 22px;
}

.wc-block-components-notice-banner.is-error svg,
.swp-notice--error svg {
	fill: var(--wp--preset--color--rose-deep) !important;
	color: var(--wp--preset--color--rose-deep) !important;
}

.wc-block-components-notice-banner.is-info svg,
.wc-block-components-notice-banner.is-success svg,
.swp-notice--info svg,
.swp-notice--ok svg {
	fill: var(--wp--preset--color--orchid-deep) !important;
	color: var(--wp--preset--color--orchid-deep) !important;
}

.wc-block-components-notice-banner__content {
	color: inherit;
	flex: 1;
	margin: 0;
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background-image: linear-gradient(120deg, #9b72c9 0%, #7c57a8 100%) !important;
	background-color: transparent;
	border: 1px solid transparent;
	border-radius: 999px;
	box-shadow: 0 14px 28px -12px rgba(124, 87, 168, 0.55);
	color: #fff !important;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.8px;
	font-weight: 500;
	letter-spacing: 0.06em;
	padding: 15px 30px;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.wc-block-components-button:not(.is-link):hover {
	box-shadow: 0 20px 36px -12px rgba(124, 87, 168, 0.6);
	transform: translateY(-2px);
}

.woocommerce .button.alt,
.woocommerce button.button.alt {
	background-color: transparent;
}

/* --- product grid (product collection + legacy loop) --- */
.wc-block-product-template,
.woocommerce ul.products {
	gap: 26px;
}

.wc-block-product-template__responsive-wrapper .wc-block-product,
li.wc-block-product,
.woocommerce ul.products li.product {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: 0 0 24px;
	position: relative;
	text-align: left;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

li.wc-block-product:hover,
.woocommerce ul.products li.product:hover {
	box-shadow: 0 26px 50px -22px rgba(83, 54, 120, 0.42);
	transform: translateY(-6px);
}

li.wc-block-product .wc-block-components-product-image,
.woocommerce ul.products li.product a img {
	background: linear-gradient(160deg, var(--wp--preset--color--lavender), var(--wp--preset--color--blush));
	border-radius: 0;
	margin: 0 0 20px;
	overflow: hidden;
}

li.wc-block-product .wc-block-components-product-image img,
.woocommerce ul.products li.product a img {
	aspect-ratio: 1 / 1.02;
	display: block;
	object-fit: cover;
	transition: transform 0.8s ease;
	width: 100%;
}

li.wc-block-product:hover .wc-block-components-product-image img,
.woocommerce ul.products li.product:hover a img {
	transform: scale(1.06);
}

li.wc-block-product > *:not(.wc-block-components-product-image),
.woocommerce ul.products li.product > *:not(a:first-of-type):not(.woocommerce-LoopProduct-link) {
	padding-left: 24px;
	padding-right: 24px;
}

li.wc-block-product .wp-block-post-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	margin: 0 0 6px;
	text-align: left;
}

li.wc-block-product .wp-block-post-title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title a {
	color: inherit;
}

li.wc-block-product .wc-block-components-product-price,
.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 16px;
	text-align: left;
}

li.wc-block-product .wc-block-components-product-price del,
.woocommerce ul.products li.product .price del {
	color: var(--wp--preset--color--ink);
	font-size: 17px;
	opacity: 0.7;
}

li.wc-block-product .wc-block-components-product-price ins,
.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

li.wc-block-product .wc-block-components-product-rating,
.woocommerce ul.products li.product .star-rating {
	margin-bottom: 10px;
}

li.wc-block-product .wp-block-button,
li.wc-block-product .wc-block-components-product-button {
	margin-top: auto;
	text-align: left;
}

li.wc-block-product .wp-block-button__link,
.woocommerce ul.products li.product a.button {
	display: inline-flex;
	margin: 0;
	width: auto;
}

/* Sale / stock badges. */
.wc-block-components-product-sale-badge,
.woocommerce span.onsale {
	background: rgba(255, 255, 255, 0.92);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 10.9px;
	font-weight: 600;
	left: 14px;
	letter-spacing: 0.12em;
	line-height: 1;
	margin: 0;
	min-height: 0;
	min-width: 0;
	padding: 8px 14px;
	position: absolute;
	right: auto;
	text-transform: uppercase;
	top: 14px;
	z-index: 3;
}

/* Bouquet-grid variant on the front page keeps the circular add control. */
.swp-bouquets li.wc-block-product .wc-block-components-product-button .wp-block-button__link {
	font-size: 0;
	height: 42px;
	padding: 0;
	position: relative;
	width: 42px;
	background-image: none !important;
	background-color: #fff;
	border: 1px solid var(--swp-line-strong);
	border-radius: 50%;
	box-shadow: none;
	color: transparent !important;
}

.swp-bouquets li.wc-block-product .wc-block-components-product-button .wp-block-button__link::before {
	background-color: var(--wp--preset--color--orchid-deep);
	content: "";
	height: 16px;
	inset: 0;
	margin: auto;
	-webkit-mask: url("assets/images/icons/plus.svg") no-repeat center / contain;
	mask: url("assets/images/icons/plus.svg") no-repeat center / contain;
	position: absolute;
	width: 16px;
}

.swp-bouquets li.wc-block-product .wc-block-components-product-button .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	transform: rotate(90deg);
}

.swp-bouquets li.wc-block-product .wc-block-components-product-button .wp-block-button__link:hover::before {
	background-color: #fff;
}

.swp-bouquets li.wc-block-product .wc-block-components-product-price {
	margin-bottom: 0;
}

.swp-bouquets li.wc-block-product .swp-bq-foot,
.swp-bouquets li.wc-block-product .wc-block-components-product-button {
	margin-top: auto;
}

/* --- single product --- */
.swp-shop .woocommerce-product-gallery,
.wp-block-woocommerce-product-image-gallery {
	border-radius: var(--swp-r-md);
	overflow: hidden;
}

.swp-shop .woocommerce-product-gallery img,
.wp-block-woocommerce-product-image-gallery img {
	border-radius: var(--swp-r-md);
}

.wp-block-woocommerce-product-image-gallery .flex-control-thumbs li img {
	border-radius: var(--swp-r-sm);
}

.wp-block-woocommerce-product-price .woocommerce-Price-amount,
.swp-shop .summary .price {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-weight: 700;
}

.wp-block-woocommerce-add-to-cart-form .quantity input.qty,
.woocommerce .quantity input.qty {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25);
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--jost);
	height: 52px;
	padding: 0 14px;
	text-align: center;
	width: 72px;
}

.swp-single-product .rz-social-proof-box,
.swp-product-summary .rz-social-proof-box,
.swp-single-product .woocommerce-product-details__short-description,
.swp-product-summary .wp-block-post-excerpt,
.swp-product-promise {
	display: none !important;
}

.swp-product-summary .wp-block-woocommerce-add-to-cart-form,
.swp-single-product .wp-block-woocommerce-add-to-cart-form {
	display: block;
	margin-top: 8px;
}

.swp-product-summary form.cart,
.swp-single-product form.cart {
	align-items: stretch;
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
}

.swp-product-summary table.variations,
.swp-single-product table.variations {
	border: 0;
	display: block;
	margin: 0;
	width: 100%;
}

.swp-product-summary table.variations tbody,
.swp-product-summary table.variations tr,
.swp-single-product table.variations tbody,
.swp-single-product table.variations tr {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
}

.swp-product-summary table.variations th.label,
.swp-single-product table.variations th.label {
	display: block;
	float: none;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	order: -1;
	padding: 0;
	text-align: left;
	width: auto;
}

.swp-product-summary table.variations td,
.swp-product-summary table.variations td.value,
.swp-single-product table.variations td,
.swp-single-product table.variations td.value {
	display: block;
	float: none;
	padding: 0;
	width: 100%;
}

.swp-size-select-hidden {
	display: none !important;
}

.swp-size-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.swp-size-swatch {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.28);
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1;
	min-width: 44px;
	padding: 11px 16px;
}

.swp-size-swatch:hover,
.swp-size-swatch.is-selected {
	background: var(--wp--preset--color--orchid-deep);
	border-color: var(--wp--preset--color--orchid-deep);
	color: #fff;
}

.swp-product-summary .reset_variations,
.swp-single-product .reset_variations {
	font-size: 13px;
	margin-left: 6px;
}

.swp-product-summary .woocommerce-variation-add-to-cart,
.swp-product-summary form.cart:not(.variations_form),
.swp-single-product .woocommerce-variation-add-to-cart {
	align-items: stretch;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 10px;
}

.swp-product-summary .razzi-free-shipping-bar,
.swp-single-product .razzi-free-shipping-bar {
	border: 0;
	display: flex;
	flex: 0 0 100%;
	flex-wrap: wrap;
	justify-content: flex-start;
	margin: 0;
	order: 1;
	padding: 0;
	width: 100%;
}

.swp-product-summary .razzi-free-shipping-bar__message,
.swp-single-product .razzi-free-shipping-bar__message {
	color: var(--wp--preset--color--ink);
	font-size: 14px;
	margin: 0 0 8px;
}

.swp-product-summary .razzi-free-shipping-bar__progress,
.swp-single-product .razzi-free-shipping-bar__progress {
	background: rgba(124, 87, 168, 0.14);
	border-radius: 999px;
	height: 6px;
	overflow: hidden;
	width: calc(100% - 52px);
}

.swp-product-summary .razzi-free-shipping-bar__progress-bar,
.swp-single-product .razzi-free-shipping-bar__progress-bar {
	background: var(--wp--preset--color--orchid);
	border-radius: 999px;
}

.swp-product-summary .razzi-free-shipping-bar__percent-value,
.swp-single-product .razzi-free-shipping-bar__percent-value {
	color: var(--wp--preset--color--ink);
	margin-top: 0;
}

.swp-product-summary .quantity,
.swp-single-product .woocommerce-variation-add-to-cart .quantity {
	flex: 0 0 auto;
	order: 2;
}

.swp-product-summary .single_add_to_cart_button,
.swp-product-summary .rz-buy-now-button,
.swp-single-product .single_add_to_cart_button,
.swp-single-product .rz-buy-now-button {
	align-items: center;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	display: inline-flex;
	flex: 1 1 140px;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 15px;
	font-weight: 600;
	height: 52px;
	justify-content: center;
	line-height: 1;
	margin: 0;
	min-width: 0;
	order: 3;
	padding: 0 22px;
	text-align: center;
}

.swp-product-summary .single_add_to_cart_button::before,
.swp-product-summary .single_add_to_cart_button::after,
.swp-product-summary .rz-buy-now-button::before,
.swp-product-summary .rz-buy-now-button::after,
.swp-single-product .single_add_to_cart_button::before,
.swp-single-product .single_add_to_cart_button::after,
.swp-product-summary .single_add_to_cart_button .razzi-svg-icon,
.swp-single-product .single_add_to_cart_button .razzi-svg-icon {
	display: none;
}

.swp-product-summary .rz-buy-now-button,
.swp-single-product .rz-buy-now-button {
	order: 4;
}

.swp-single-product .single_add_to_cart_button,
.swp-product-summary .single_add_to_cart_button {
	background: var(--wp--preset--color--orchid-deep);
	color: #fff;
}

.swp-single-product .rz-buy-now-button,
.swp-product-summary .rz-buy-now-button {
	background: var(--wp--preset--color--plum);
	box-shadow: none;
	color: #fff;
	opacity: 1;
}

.swp-single-product .single_add_to_cart_button:hover,
.swp-product-summary .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--orchid);
}

.swp-single-product .rz-buy-now-button:hover,
.swp-product-summary .rz-buy-now-button:hover {
	background: var(--wp--preset--color--orchid-deep);
	opacity: 1;
	transform: none;
}

.swp-single-product .rz-buy-now-button.disabled,
.swp-product-summary .rz-buy-now-button.disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.swp-product-summary .wp-block-woocommerce-product-meta,
.swp-single-product .wp-block-woocommerce-product-meta {
	margin-top: 8px;
}

/* Block cart, mini cart and checkout share one stepper. The pill lives on the
   wrapper so the minus, value and plus sit inside a single control. */
.wc-block-components-quantity-selector {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25);
	border-radius: 999px;
	box-shadow: none;
	display: flex;
	align-items: center;
	height: 40px;
	margin: 0;
	max-width: 116px;
	min-width: 108px;
	overflow: hidden;
	width: auto;
}

.wc-block-components-quantity-selector::after {
	display: none;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--wp--preset--color--plum);
	flex: 1 1 auto;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 14.5px;
	height: 100%;
	line-height: 1;
	margin: 0;
	min-width: 0;
	padding: 0;
	text-align: center;
	width: auto;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input:focus {
	box-shadow: none;
	outline: none;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	background: transparent;
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--orchid-deep);
	cursor: pointer;
	filter: none;
	flex: none;
	font-size: 18px;
	height: 100%;
	line-height: 1;
	margin: 0;
	min-width: 0;
	opacity: 1;
	padding: 0;
	transition: background 0.2s ease, color 0.2s ease;
	width: 32px;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	background: var(--wp--preset--color--lavender);
	color: var(--wp--preset--color--plum);
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled {
	color: var(--wp--preset--color--ink);
	cursor: default;
	opacity: 0.4;
}

/* The mini cart drawer is narrow, so keep the stepper compact there. */
.wc-block-mini-cart__drawer .wc-block-components-quantity-selector {
	height: 36px;
	max-width: 104px;
	min-width: 96px;
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	width: 30px;
}

.wc-block-cart-item__remove-link,
.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link {
	color: var(--wp--preset--color--ink);
	font-size: 12.5px;
}

.wc-block-cart-item__remove-link:hover {
	color: var(--wp--preset--color--orchid-deep);
}

.woocommerce div.product form.cart {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom: 1px solid var(--swp-line);
	margin: 0 0 24px;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border-bottom: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 26px 0 0;
	padding: 0 0 12px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.8px;
	font-weight: 500;
	letter-spacing: 0.06em;
	padding: 0;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--orchid-deep);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	border-bottom: 2px solid var(--wp--preset--color--orchid);
}

.wp-block-woocommerce-product-details.is-style-minimal .wc-tabs-wrapper,
.wp-block-woocommerce-product-details .wc-tab {
	font-size: 15.5px;
}

/* Ratings. */
.woocommerce .star-rating span::before,
.wc-block-components-product-rating__stars span::before,
.wc-block-review-list-item__rating > div::before {
	color: #e3b23c;
}

/* --- cart, checkout, account panels --- */
.swp-shop .wp-block-woocommerce-cart,
.swp-shop .wp-block-woocommerce-checkout,
.swp-shop .woocommerce-account .woocommerce,
.swp-shop .woocommerce-order,
.wc-block-order-confirmation-totals,
.wc-block-order-confirmation-summary {
	font-size: 15.5px;
}

.wc-block-cart-items__row,
.woocommerce table.shop_table {
	border-color: var(--swp-line);
}

.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
	background: #fff;
	border-radius: var(--swp-r-md);
}

.wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block,
.wc-block-checkout__sidebar .wc-block-components-order-summary {
	border: 1px solid rgba(255, 255, 255, 0.9);
	box-shadow: var(--swp-shadow-tile);
	padding: 26px 24px;
}

.wc-block-components-title,
.wc-block-components-checkout-step__title,
.woocommerce-account h2,
.woocommerce-account h3 {
	color: var(--wp--preset--color--plum) !important;
	font-family: var(--wp--preset--font-family--cormorant-garamond) !important;
	font-weight: 600 !important;
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-select__container,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25) !important;
	border-radius: var(--swp-r-sm) !important;
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 15px;
	min-height: 52px;
	padding: 14px 18px;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus,
.woocommerce form .form-row input.input-text:focus {
	border-color: var(--wp--preset--color--orchid) !important;
	box-shadow: 0 0 0 4px rgba(155, 114, 201, 0.15);
	outline: none;
}

.woocommerce-account nav.woocommerce-MyAccount-navigation ul {
	display: grid;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account nav.woocommerce-MyAccount-navigation li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.woocommerce-account nav.woocommerce-MyAccount-navigation li::marker {
	content: "";
}

.woocommerce-account .woocommerce-MyAccount-navigation li a {
	border: 1px solid transparent;
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	display: block;
	font-size: 14.5px;
	padding: 12px 20px;
	text-decoration: none;
	transition: 0.25s ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation li a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: #fff;
	border-color: rgba(255, 255, 255, 0.9);
	box-shadow: var(--swp-shadow-tile);
	color: var(--wp--preset--color--orchid-deep);
}

.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	padding: clamp(24px, 3vw, 38px);
}

.woocommerce table.shop_table,
.wc-block-order-confirmation-totals table {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	overflow: hidden;
}

.woocommerce table.shop_table th {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--jost);
	font-weight: 500;
}

.wc-block-components-product-name,
.woocommerce table.shop_table td.product-name a {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 19px;
	font-weight: 600;
}

.wc-block-breadcrumbs,
.woocommerce-breadcrumb {
	color: var(--wp--preset--color--ink);
	font-size: 12.8px;
	letter-spacing: 0.04em;
}

.wc-block-breadcrumbs a,
.woocommerce-breadcrumb a {
	color: var(--wp--preset--color--orchid-deep);
}

.woocommerce-ordering select,
.wc-block-catalog-sorting select {
	background: #fff;
	border: 1px solid rgba(124, 87, 168, 0.25);
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.5px;
	padding: 11px 18px;
}

.woocommerce-result-count,
.wc-block-product-results-count {
	color: var(--wp--preset--color--ink);
	font-size: 13.5px;
	margin: 0;
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
	display: flex;
	gap: 8px;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	background: #fff;
	border: 1px solid var(--swp-line);
	border-radius: 999px;
	color: var(--wp--preset--color--plum);
	min-width: 40px;
	padding: 10px 14px;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	color: #fff;
}

/* Mini cart button in the header. */
.swp-cart-link {
	align-items: center;
	background: #fff;
	border: 1px solid var(--swp-line-strong);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	display: inline-flex;
	font-size: 13px;
	font-weight: 500;
	gap: 8px;
	padding: 10px 18px;
	transition: 0.25s ease;
}

.swp-cart-link:hover {
	background: var(--wp--preset--color--orchid);
	color: #fff;
}

/* ==========================================================================
   12. RESPONSIVE
   ========================================================================== */

@media (max-width: 1080px) {
	.swp-bq-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.swp-hero-visual {
		order: -1;
	}
}

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

	.swp-hero-stats {
		align-items: flex-start;
		flex-direction: column;
		gap: 18px;
	}

	.swp-hero-stats > .wp-block-group {
		width: 100%;
	}

	.swp-hero-stats > .wp-block-group + .wp-block-group {
		border-left: 0;
		padding-left: 0;
	}

	.swp-chip-a,
	.swp-chip-b {
		left: 4px;
	}

	.swp-stamp {
		height: 96px;
		right: 4px;
		width: 96px;
	}

	.swp-section-head {
		align-items: flex-start;
	}

	.swp-plan {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
	}

}

@media (max-width: 600px) {
	.swp-arch-wrap::after {
		inset: -8px;
	}
}

/* ==========================================================================
   13. MOTION PREFERENCES
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}

	.swp-ticker-track {
		transform: none;
	}
}

/* ==========================================================================
   14. PATTERN DETAILS
   ========================================================================== */

/* Arrow suffix on the primary call-to-action buttons. */
.swp-btn-arrow .wp-block-button__link::after {
	background-color: currentColor;
	content: "";
	display: inline-block;
	flex: none;
	height: 15px;
	-webkit-mask: url("assets/images/icons/arrow-right.svg") no-repeat center / contain;
	mask: url("assets/images/icons/arrow-right.svg") no-repeat center / contain;
	transition: transform 0.25s ease;
	width: 15px;
}

.swp-btn-arrow .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

/* Subscription plan rows are whole-row links. */
.swp-plan-name a {
	color: #fff;
}

.swp-plan-name a:hover {
	color: var(--wp--preset--color--petal);
}

/* Post terms reused as an eyebrow label. */
.swp-eyebrow-terms {
	color: var(--wp--preset--color--orchid-deep);
	font-weight: 600;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}

.swp-eyebrow-terms a {
	color: inherit;
}

/* Section banners shared by blog, page and shop templates. */
.swp-page-banner .wp-block-post-title,
.swp-page-banner .wp-block-query-title {
	margin-left: auto;
	margin-right: auto;
	max-width: 36ch;
}

.swp-404-mark {
	opacity: 0.9;
}

/* Ticker rows stay vertically centred even when the gap collapses. */
.swp-ticker-track,
.swp-ticker-set {
	align-items: center;
}

/* Social icons: bordered circles that fill on hover. */
.swp-socials.wp-block-social-links .wp-block-social-link {
	border: 1px solid var(--swp-line-strong);
	border-radius: 50%;
	transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.swp-socials.wp-block-social-links .wp-block-social-link:hover {
	background-color: var(--wp--preset--color--orchid) !important;
	border-color: var(--wp--preset--color--orchid);
	transform: translateY(-3px);
}

.swp-socials.wp-block-social-links .wp-block-social-link:hover .wp-block-social-link-anchor {
	color: #fff !important;
	fill: #fff !important;
}

/* Product page promise list. */
.swp-product-promise .swp-check-list li {
	font-size: 14.5px;
}

/* WooCommerce product collection grids follow the bouquet gutter. */
.wp-block-woocommerce-product-collection .wc-block-product-template {
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.swp-shop-archive .wc-block-product-template,
.swp-related .wc-block-product-template,
.swp-bouquets .wc-block-product-template {
	gap: 26px;
}

/* Card grids fall back gracefully where grid layout is unavailable. */
.swp-post-card .wp-block-post-title a {
	color: var(--wp--preset--color--plum);
}

.swp-post-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--orchid-deep);
}

/* Featured image frame on single posts and pages. */
.swp-frame.wp-block-post-featured-image {
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-soft);
	overflow: hidden;
}

.swp-frame.wp-block-post-featured-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	width: 100%;
}

/* Entry content rhythm. */
.swp-entry-content h2,
.swp-entry-content h3,
.swp-entry-content h4 {
	margin-block-start: 40px;
}

.swp-entry-content ul,
.swp-entry-content ol {
	padding-left: 22px;
}

.swp-entry-content li {
	margin-bottom: 8px;
}

/* Pasted legal HTML uses `.page { max-width }`, which also hits body.page. */
body.swp-policy-page.page {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.swp-policy-page .swp-page-banner,
.swp-policy-page .wp-block-comments,
.swp-policy-page .wp-block-post-featured-image {
	display: none !important;
}

.swp-policy-page main > .swp-panel.alignfull {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	padding-left: clamp(20px, 6vw, 80px);
	padding-right: clamp(20px, 6vw, 80px);
	width: 100%;
}

.swp-policy-page .swp-entry-content {
	color: var(--wp--preset--color--ink);
	font-size: 15.5px;
	line-height: 1.7;
	margin-left: auto;
	margin-right: auto;
	max-width: 1080px;
	width: 100%;
}

.swp-policy-page .shell,
.swp-policy-page .about {
	color: inherit;
	font-family: inherit;
	margin: 0;
	max-width: none;
	padding: 0;
	width: 100%;
}

.swp-policy-page .utility-bar {
	align-items: baseline;
	color: var(--wp--preset--color--orchid-deep);
	display: flex;
	flex-wrap: wrap;
	font-size: 13px;
	font-weight: 600;
	gap: 12px 18px;
	justify-content: space-between;
	letter-spacing: 0.02em;
	margin: 0 0 22px;
}

.swp-policy-page .masthead {
	border-bottom: 1px solid var(--swp-line);
	margin: 0 0 28px;
	padding: 0 0 22px;
}

.swp-policy-page .masthead-label {
	color: var(--wp--preset--color--orchid-deep);
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.swp-policy-page .masthead .eyebrow,
.swp-policy-page .masthead p.eyebrow {
	color: var(--wp--preset--color--orchid-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.swp-policy-page .masthead-rule {
	background: var(--wp--preset--color--orchid);
	height: 2px;
	margin: 14px 0 0;
	max-width: 72px;
}

.swp-policy-page .masthead-copy {
	margin: 12px 0 0;
	max-width: 46rem;
}

.swp-policy-page .directory-layout {
	display: grid;
	gap: 28px 40px;
	grid-template-columns: minmax(0, 1fr);
}

.swp-policy-page .page-menu {
	background: rgba(255, 255, 255, 0.55);
	border: 1px solid var(--swp-line);
	border-radius: var(--swp-r-md);
	padding: 16px 18px;
}

.swp-policy-page .page-menu .label {
	color: var(--wp--preset--color--plum);
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 10px;
}

.swp-policy-page .page-menu p,
.swp-policy-page .page-menu nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
}

.swp-policy-page .page-menu a {
	background: #fff;
	border: 1px solid var(--swp-line);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	font-size: 13px;
	padding: 6px 12px;
	text-decoration: none;
}

.swp-policy-page .page-menu a:hover,
.swp-policy-page .page-menu a:focus {
	border-color: var(--wp--preset--color--orchid);
	color: var(--wp--preset--color--plum);
}

.swp-policy-page .delivery-flow,
.swp-policy-page .process-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	margin: 0 0 28px;
}

.swp-policy-page .delivery-stage,
.swp-policy-page .process-item,
.swp-policy-page .chapter {
	background: rgba(255, 255, 255, 0.62);
	border: 1px solid var(--swp-glass-line);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	padding: 16px 18px;
}

.swp-policy-page .chapter {
	margin: 0 0 16px;
}

.swp-policy-page .chapter-head h2,
.swp-policy-page .about h2 {
	margin-top: 0;
}

.swp-policy-page .stage-label {
	color: var(--wp--preset--color--orchid-deep);
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.swp-policy-page .record-list {
	display: grid;
	gap: 8px 18px;
	grid-template-columns: minmax(140px, 34%) 1fr;
	margin: 0;
}

.swp-policy-page .record-list dt {
	color: var(--wp--preset--color--plum);
	font-weight: 600;
	margin: 0;
}

.swp-policy-page .record-list dd {
	margin: 0;
}

@media (min-width: 900px) {
	.swp-policy-page .directory-layout {
		align-items: start;
		grid-template-columns: 220px minmax(0, 1fr);
	}

	.swp-policy-page .page-menu {
		position: sticky;
		top: 96px;
	}

	.swp-policy-page .page-menu p,
	.swp-policy-page .page-menu nav {
		flex-direction: column;
	}
}

@media (max-width: 700px) {
	.swp-policy-page .record-list {
		grid-template-columns: 1fr;
	}
}

.swp-policy-page .swp-entry-content > :first-child {
	margin-block-start: 0;
}

.swp-policy-page .swp-entry-content h1 {
	color: var(--wp--preset--color--plum);
	font-size: clamp(2rem, 3vw, 2.6rem);
	line-height: 1.15;
	margin: 10px 0 16px;
}

.swp-policy-page .swp-entry-content > p:first-child,
.swp-policy-page .swp-entry-content > p:first-child strong {
	color: var(--wp--preset--color--orchid-deep);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.swp-policy-page .swp-entry-content table {
	border-collapse: collapse;
	margin: 28px 0;
	width: 100%;
}

.swp-policy-page .swp-entry-content tr {
	border-bottom: 1px solid var(--swp-line);
}

.swp-policy-page .swp-entry-content th,
.swp-policy-page .swp-entry-content td {
	padding: 12px 16px 12px 0;
	text-align: left;
	vertical-align: top;
}

.swp-policy-page .swp-entry-content th,
.swp-policy-page .swp-entry-content td:first-child {
	color: var(--wp--preset--color--plum);
	font-weight: 600;
}

.swp-policy-page .swp-entry-content ul,
.swp-policy-page .swp-entry-content ol {
	margin: 12px 0 20px;
}

.swp-policy-page .swp-entry-content .wp-block-columns {
	align-items: flex-start;
	gap: 12px 28px;
	margin: 6px 0;
}

.swp-policy-page .swp-entry-content .wp-block-columns .wp-block-column:first-child {
	color: var(--wp--preset--color--plum);
	flex-basis: 34% !important;
	font-weight: 600;
}

.swp-policy-page .swp-entry-content .page,
.swp-policy-page .imprint-shell,
.swp-policy-page .ds-wrap {
	display: block;
	margin: 0 auto;
	max-width: none;
	padding: 0;
	width: 100%;
}

.swp-policy-page .kicker {
	background: rgba(155, 114, 201, 0.12);
	border: 1px solid var(--swp-line);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	display: inline-flex;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-bottom: 10px;
	padding: 5px 12px;
}

.swp-policy-page .imprint-top,
.swp-policy-page .faq-head,
.swp-policy-page .size-head,
.swp-policy-page .ship-head,
.swp-policy-page .pay-head,
.swp-policy-page .returns-head,
.swp-policy-page [class$="-head"] {
	align-items: flex-start;
	border-bottom: 1px solid var(--swp-line);
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: space-between;
	margin-bottom: 22px;
	padding-bottom: 18px;
}

.swp-policy-page .legal-mark {
	display: none;
}

.swp-policy-page .ledger {
	border: 1px solid var(--swp-line);
	border-radius: var(--swp-r-md);
	overflow: hidden;
}

.swp-policy-page .ledger-row {
	border-top: 1px solid var(--swp-line);
	display: grid;
	grid-template-columns: minmax(140px, 34%) 1fr;
}

.swp-policy-page .ledger-row:first-child {
	border-top: 0;
}

.swp-policy-page .ledger dt,
.swp-policy-page .ledger dd {
	margin: 0;
	padding: 14px 18px;
}

.swp-policy-page .ledger dt {
	background: rgba(255, 255, 255, 0.55);
	color: var(--wp--preset--color--plum);
	font-weight: 600;
}

.swp-policy-page .contact-strip {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	margin-top: 18px;
}

.swp-policy-page .card,
.swp-policy-page .note,
.swp-policy-page .faq-group {
	background: rgba(255, 255, 255, 0.62);
	border: 1px solid var(--swp-glass-line);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	padding: 18px 20px;
}

.swp-policy-page .table-wrap {
	margin: 22px 0;
	overflow-x: auto;
}

.swp-policy-page .jump {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
}

.swp-policy-page .jump a {
	background: #fff;
	border: 1px solid var(--swp-line);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	font-size: 13px;
	padding: 6px 12px;
}

.swp-policy-page .faq-grid {
	display: grid;
	gap: 16px;
}

.swp-policy-page .faq-group h2 {
	margin-top: 0;
}

.swp-policy-page details {
	border-bottom: 1px solid var(--swp-line);
	padding: 10px 0;
}

.swp-policy-page summary {
	color: var(--wp--preset--color--plum);
	cursor: pointer;
	font-weight: 500;
}

.swp-policy-page .derbivo-swiss {
	background: transparent;
	color: inherit;
	font-family: inherit;
}

.swp-policy-page .ds-hero,
.swp-policy-page .ds-manifesto,
.swp-policy-page .ds-philosophy,
.swp-policy-page .ds-shop,
.swp-policy-page .ds-final {
	background: transparent;
	border: 0;
	padding: 0 0 28px;
}

.swp-policy-page .ds-hero h1,
.swp-policy-page .ds-hero h1 span {
	color: var(--wp--preset--color--plum);
	display: inline;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(2rem, 3.4vw, 2.8rem);
	font-weight: 500;
	letter-spacing: -0.01em;
	line-height: 1.15;
	text-transform: none;
}

.swp-policy-page .ds-label {
	color: var(--wp--preset--color--orchid-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
}

.swp-policy-page .ds-hero-keyword,
.swp-policy-page .ds-hero-note,
.swp-policy-page .ds-philosophy-item,
.swp-policy-page .ds-band {
	background: rgba(255, 255, 255, 0.62);
	border: 1px solid var(--swp-line);
	border-radius: var(--swp-r-sm);
	color: var(--wp--preset--color--ink);
}

.swp-policy-page .ds-hero-grid,
.swp-policy-page .ds-philosophy-grid,
.swp-policy-page .ds-bands,
.swp-policy-page .ds-final-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 782px) {
	.swp-policy-page .ds-hero-grid,
	.swp-policy-page .ds-philosophy-grid {
		grid-template-columns: 1.2fr 0.8fr;
	}
}

@media (max-width: 700px) {
	.swp-policy-page .ledger-row {
		grid-template-columns: 1fr;
	}

	.swp-policy-page .ledger dd {
		padding-top: 0;
	}
}

.swp-policy-page .woocommerce {
	max-width: 100%;
}

.swp-policy-page .order-info {
	background: var(--swp-glass);
	border: 1px solid var(--swp-glass-line);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	margin: 8px 0 20px;
	padding: 22px;
}

.swp-policy-page .order-info mark {
	background: transparent;
	color: var(--wp--preset--color--orchid-deep);
	font-weight: 600;
}

.swp-policy-page form.woocommerce-form-track-order,
.swp-policy-page .swp-track-form {
	background: var(--swp-glass);
	border: 1px solid var(--swp-glass-line);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	display: grid;
	float: none !important;
	gap: 18px;
	margin-top: 8px;
	padding: 24px;
	width: 100% !important;
}

.swp-policy-page .swp-track-lead {
	color: var(--wp--preset--color--ink);
	font-size: 15px;
	line-height: 1.6;
	margin: 0;
}

.swp-policy-page .swp-track-fields {
	display: grid;
	gap: 14px;
}

.swp-policy-page .woocommerce-form-track-order .form-row,
.swp-policy-page .woocommerce-form-track-order .form-row-first,
.swp-policy-page .woocommerce-form-track-order .form-row-last {
	display: grid;
	float: none !important;
	gap: 8px;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

.swp-policy-page .woocommerce-form-track-order label {
	color: var(--wp--preset--color--plum);
	font-size: 14px;
	font-weight: 500;
}

.swp-policy-page .woocommerce-form-track-order .input-text {
	background: #fff !important;
	border: 1px solid rgba(124, 87, 168, 0.25) !important;
	border-radius: 12px !important;
	box-sizing: border-box !important;
	color: var(--wp--preset--color--plum) !important;
	font-family: var(--wp--preset--font-family--jost) !important;
	font-size: 15px !important;
	max-width: none !important;
	min-height: 48px;
	padding: 13px 16px !important;
	width: 100% !important;
}

.swp-policy-page .woocommerce-form-track-order .input-text:focus {
	border-color: var(--wp--preset--color--orchid) !important;
	box-shadow: 0 0 0 4px rgba(155, 114, 201, 0.15);
	outline: none;
}

.swp-policy-page .woocommerce-form-track-order .swp-track-submit {
	margin-top: 4px;
}

.swp-policy-page .woocommerce-form-track-order button[type="submit"] {
	background: var(--wp--preset--color--orchid-deep) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: var(--wp--preset--shadow--button);
	color: #fff !important;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.8px;
	font-weight: 500;
	padding: 13px 26px !important;
	width: 100%;
}

.swp-policy-page .woocommerce-form-track-order button[type="submit"]:hover {
	background: var(--wp--preset--color--orchid) !important;
}

@media (min-width: 700px) {
	.swp-policy-page .swp-track-fields {
		grid-template-columns: 1fr 1fr;
	}
}

/* ==========================================================================
   15. WOOCOMMERCE PRODUCT GRID SIZING
   ========================================================================== */

/* WooCommerce sizes its responsive grid from a 1.25em gap. Widening the gap
   without restating the tracks makes a three-column grid wrap to two, so the
   tracks are declared explicitly here. */
.wc-block-product-template__responsive {
	gap: 26px;
}

.wc-block-product-template__responsive.columns-2,
.wc-block-product-template__responsive.columns-3,
.wc-block-product-template__responsive.columns-4,
.wc-block-product-template__responsive.columns-5,
.wc-block-product-template__responsive.columns-6 {
	grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 601px) {
	.wc-block-product-template__responsive.columns-2,
	.wc-block-product-template__responsive.columns-3,
	.wc-block-product-template__responsive.columns-4,
	.wc-block-product-template__responsive.columns-5,
	.wc-block-product-template__responsive.columns-6 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1081px) {
	.wc-block-product-template__responsive.columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

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

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

/* Card internals align left like the bouquet cards. */
li.wc-block-product .wc-block-components-product-button,
li.wc-block-product .wc-block-components-product-price,
li.wc-block-product .wc-block-components-product-rating {
	text-align: left;
}

li.wc-block-product .wp-block-button.wc-block-components-product-button {
	align-items: flex-start;
	justify-content: flex-start;
	margin-top: auto;
	padding-top: 4px;
}

.swp-bouquets li.wc-block-product .wp-block-button.wc-block-components-product-button {
	padding-top: 0;
}

li.wc-block-product .wc-block-components-product-image {
	display: block;
	position: relative;
}

li.wc-block-product .wc-block-components-product-image a {
	display: block;
}

/* Loading/added states keep the pill shape. */
.wc-block-components-product-button .wp-block-button__link.loading,
.wc-block-components-product-button .wp-block-button__link.added {
	opacity: 0.85;
}

.wc-block-components-product-button .added_to_cart {
	color: var(--wp--preset--color--orchid-deep);
	display: inline-block;
	font-size: 12.8px;
	margin-top: 10px;
	text-decoration: underline;
}

/* Front-page bouquet grid: price and circular add control share a row. */
.swp-bouquets li.wc-block-product .swp-bq-foot {
	padding-left: 24px;
	padding-right: 24px;
}

.swp-bouquets li.wc-block-product .swp-bq-foot > * {
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   16. WOOCOMMERCE HEADER BLOCKS + ACCOUNT
   ========================================================================== */

/* The nav bar is a plain left-aligned flex row. Auto margins on the menu push
   the logo hard left and pack everything after it into one right-hand cluster,
   which is where WooCommerce injects the account and mini-cart blocks. */
.swp-nav.wp-block-group {
	gap: 14px;
	justify-content: flex-start;
}

.swp-nav > .wp-block-navigation {
	margin-inline: auto;
}

.swp-nav > .wp-block-woocommerce-customer-account,
.swp-nav > .wp-block-woocommerce-mini-cart {
	flex: none;
	margin: 0;
}

.swp-nav > .swp-nav-cta {
	flex: none;
}

.swp-nav .wp-block-woocommerce-customer-account a,
.swp-nav .wc-block-mini-cart__button {
	align-items: center;
	background: #fff;
	border: 1px solid var(--swp-line-strong);
	border-radius: 999px;
	color: var(--wp--preset--color--orchid-deep);
	display: inline-flex;
	gap: 6px;
	height: 40px;
	justify-content: center;
	min-width: 40px;
	padding: 0 12px;
	transition: 0.25s ease;
}

.swp-nav .wp-block-woocommerce-customer-account a:hover,
.swp-nav .wc-block-mini-cart__button:hover {
	background: var(--wp--preset--color--orchid);
	border-color: var(--wp--preset--color--orchid);
	color: #fff;
}

.swp-nav .wc-block-customer-account__account-icon,
.swp-nav .wc-block-mini-cart__quantity-badge svg {
	height: 18px;
	width: 18px;
}

.swp-nav .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--orchid);
	color: #fff;
}

/* Account: login card and dashboard split. */
.woocommerce-account .woocommerce {
	max-width: 100%;
}

.woocommerce-account form.login,
.woocommerce-account form.register,
.woocommerce-account form.lost_reset_password {
	background: #fff;
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	padding: clamp(24px, 3vw, 34px);
}

.woocommerce-account #customer_login > .col-1:only-child,
.woocommerce-account .u-columns > .col-1:only-child {
	float: none;
	margin: 0 auto;
	max-width: 560px;
	width: 100%;
}

.woocommerce-account #customer_login.col2-set {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.woocommerce-account #customer_login .col-1,
.woocommerce-account #customer_login .col-2 {
	float: none;
	width: 100%;
}

/* WooCommerce floats the account sidebar and content at 30%/68%. Those rules
   are more specific than a plain class, so the split is rebuilt here as a flex
   row with matching specificity. Login, register and password screens have no
   sidebar and fall through to the full-width branch below. */
body.woocommerce-account .woocommerce {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 34px;
}

body.woocommerce-account .woocommerce > nav.woocommerce-MyAccount-navigation {
	flex: 0 0 260px;
	float: none;
	max-width: 100%;
	width: 260px;
}

body.woocommerce-account .woocommerce > .woocommerce-MyAccount-content {
	flex: 1 1 320px;
	float: none;
	min-width: 0;
	width: auto;
}

/* Everything else in the wrapper spans the full row. */
body.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-account .woocommerce > h2,
body.woocommerce-account .woocommerce > p,
body.woocommerce-account .woocommerce > form,
body.woocommerce-account .woocommerce > .u-columns,
body.woocommerce-account .woocommerce > #customer_login {
	flex: 1 1 100%;
	min-width: 0;
}

@media (max-width: 781px) {
	body.woocommerce-account .woocommerce > nav.woocommerce-MyAccount-navigation {
		flex: 1 1 100%;
		width: 100%;
	}
}

.woocommerce form .form-row label {
	color: var(--wp--preset--color--plum);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.woocommerce form .form-row .required {
	color: var(--wp--preset--color--rose-deep);
}

/* Logged-out account screens sit in a centred column. */
body.woocommerce-account .woocommerce:not(:has(nav.woocommerce-MyAccount-navigation)) {
	gap: 18px;
	margin-left: auto;
	margin-right: auto;
	max-width: 560px;
}

.woocommerce-account .woocommerce h2 {
	font-size: 24px;
	margin-bottom: 18px;
}

.woocommerce-account form.login .woocommerce-form-login__submit {
	margin-right: 14px;
}

/* ==========================================================================
   17. RESPONSIVE GRID FALLBACKS
   ========================================================================== */

/* Core grid layouts with a fixed column count do not collapse on their own.
   Step them down so every card grid stays inside the viewport. */
@media (max-width: 1080px) {
	.swp-panel .wp-block-group.is-layout-grid,
	.swp-panel .wp-block-post-template.is-layout-grid,
	.swp-sub-panel .wp-block-group.is-layout-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 781px) {
	.swp-panel .wp-block-group.is-layout-grid,
	.swp-panel .wp-block-post-template.is-layout-grid,
	.swp-sub-panel .wp-block-group.is-layout-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Flex rows that hold a constrained text block need to be allowed to shrink. */
.swp-quote-who > .wp-block-group,
.swp-plan > .wp-block-group,
.swp-logo > .wp-block-group,
.swp-nav-phone > *,
.swp-foot-contact .wp-block-group > * {
	min-width: 0;
}

.swp-quote-name,
.swp-quote-role,
.swp-plan-name,
.swp-plan-sub {
	overflow-wrap: anywhere;
}

/* ==========================================================================
   18. CONTACT US
   ========================================================================== */

.swp-contact-page .wp-block-comments,
.swp-contact-page .wp-block-post-featured-image {
	display: none;
}

.swp-contact-page main > .swp-panel.alignfull {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	padding-left: clamp(20px, 6vw, 80px);
	padding-right: clamp(20px, 6vw, 80px);
	width: 100%;
}

.swp-contact-page .swp-page-banner {
	padding-bottom: 8px;
}

.swp-contact-page .swp-contact-content,
.swp-contact-page .swp-contact-content > .elementor,
.swp-contact-page main .elementor {
	margin-left: auto;
	margin-right: auto;
	max-width: 960px;
	width: 100%;
}

.swp-contact-page main .elementor-section.elementor-top-section {
	min-height: 0 !important;
	padding: 0 !important;
}

.swp-contact-page main .elementor-section.elementor-top-section > .elementor-container {
	align-items: start;
	display: grid !important;
	gap: 40px 56px;
	grid-template-columns: minmax(220px, 0.9fr) minmax(340px, 1.2fr);
	margin-left: auto;
	margin-right: auto;
	max-width: 960px !important;
	width: 100%;
}

.swp-contact-page main .elementor-section.elementor-top-section > .elementor-container > .elementor-column {
	float: none !important;
	margin: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.swp-contact-page .razzi-icon-box {
	align-items: center;
	display: flex;
	gap: 14px;
	margin: 0 0 8px;
}

.swp-contact-page .elementor-widget-razzi-icon-box > .elementor-widget-container {
	padding: 0 0 10px !important;
}

.swp-contact-page .razzi-icon-box__icon {
	align-items: center;
	background: rgba(155, 114, 201, 0.16) !important;
	border-radius: 999px;
	display: flex;
	flex: 0 0 56px;
	height: 56px;
	justify-content: center;
	margin: 0 !important;
	width: 56px;
}

.swp-contact-page .razzi-icon__icon {
	background: transparent !important;
	border: 0 !important;
	color: var(--wp--preset--color--orchid-deep) !important;
	display: flex;
	fill: var(--wp--preset--color--orchid-deep) !important;
	font-size: 24px !important;
	line-height: 0;
}

.swp-contact-page .e-font-icon-svg,
.swp-contact-page .razzi-svg-icon svg,
.swp-contact-page .razzi-svg-icon svg path {
	color: var(--wp--preset--color--orchid-deep) !important;
	fill: var(--wp--preset--color--orchid-deep) !important;
	height: 22px;
	width: 22px;
}

.swp-contact-page .razzi-icon-box__title,
.swp-contact-page .razzi-icon-box__title a {
	color: var(--wp--preset--color--plum) !important;
	font-family: var(--wp--preset--font-family--cormorant-garamond) !important;
	font-size: 22px !important;
	font-weight: 500 !important;
}

.swp-contact-page main .elementor-widget-text-editor,
.swp-contact-page main .elementor-widget-shortcode {
	color: var(--wp--preset--color--ink);
}

.swp-contact-page main .elementor-heading-title {
	color: var(--wp--preset--color--plum);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.swp-contact-page main .elementor-widget-heading {
	margin: 16px 0 4px;
}

.swp-contact-page main .elementor-shortcode,
.swp-contact-page main a {
	color: var(--wp--preset--color--orchid-deep);
}

.swp-contact-page .razzi-contact-form-7 {
	background: rgba(255, 255, 255, 0.74);
	border: 1px solid rgba(255, 255, 255, 0.9);
	border-radius: var(--swp-r-md);
	box-shadow: var(--swp-shadow-tile);
	padding: 22px;
}

.swp-contact-page main .elementor-widget-razzi-contact-form-7 > .elementor-widget-container {
	padding: 0 !important;
}

.swp-contact-page main .wpcf7-form {
	display: grid;
	gap: 12px;
	width: 100%;
}

.swp-contact-page .wpcf7-form p {
	display: grid;
	gap: 12px;
	margin: 0;
}

.swp-contact-page .wpcf7-form br {
	display: none;
}

.swp-contact-page .wpcf7-form-control-wrap {
	display: block;
}

.swp-contact-page main .wpcf7-form-control,
.swp-contact-page main input:not([type="submit"]):not([type="checkbox"]):not([type="hidden"]):not([type="radio"]):not([type="file"]),
.swp-contact-page main textarea,
.swp-contact-page main select {
	background: #fff !important;
	border: 1px solid rgba(124, 87, 168, 0.25) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	color: var(--wp--preset--color--plum) !important;
	font-family: var(--wp--preset--font-family--jost) !important;
	font-size: 15px !important;
	max-width: 100%;
	padding: 13px 16px !important;
	width: 100% !important;
}

.swp-contact-page main textarea {
	min-height: 140px;
	resize: vertical;
}

.swp-contact-page main input:focus,
.swp-contact-page main textarea:focus {
	border-color: var(--wp--preset--color--orchid);
	box-shadow: 0 0 0 4px rgba(155, 114, 201, 0.15);
	outline: none;
}

.swp-contact-page main input[type="submit"],
.swp-contact-page main button[type="submit"] {
	background: var(--wp--preset--color--orchid-deep) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: var(--wp--preset--shadow--button);
	color: #fff !important;
	cursor: pointer;
	display: inline-flex;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 13.8px;
	font-weight: 500;
	justify-content: center;
	margin-top: 4px;
	padding: 13px 26px !important;
	width: 100% !important;
}

.swp-contact-page main input[type="submit"]:hover,
.swp-contact-page main button[type="submit"]:hover {
	background: var(--wp--preset--color--orchid) !important;
}

@media (max-width: 781px) {
	.swp-contact-page main .elementor-section.elementor-top-section > .elementor-container {
		grid-template-columns: minmax(0, 1fr);
	}
}



