/* =========================================================================
   Wedlender — section widget styles
   Every color/size below is also exposed as an Elementor control, these are
   only the defaults taken from the client design.
   ====================================================================== */

:root {
	--wl-rose: #a3737f;
	--wl-rose-dark: #8d5f6c;
	--wl-rose-soft: #c9a3ad;
	--wl-cream: #f7f3ef;
	--wl-dark: #111111;
	--wl-ink: #1a1a1a;
	--wl-muted: #6f6f6f;
	--wl-line: #e4ded9;
	--wl-font-display: "Playfair Display", Georgia, "Times New Roman", serif;
	--wl-font-body: "Roboto Condensed", -apple-system, "Segoe UI", Arial, sans-serif;

	--wed-mauve:#a5677c;
	--wed-white:#ffffff;
	--wed-font-body:'Poppins', Arial, sans-serif;
}

.wed-ticker{
	background:var(--wed-mauve);
	color:var(--wed-white);
	overflow:hidden;
	white-space:nowrap;
	padding:10px 0;
	font-family:var(--wed-font-body);
	font-size:13px;
	letter-spacing:.03em;
}
.wed-ticker__track{
	display:inline-flex;
	align-items:center;
	animation:wed-ticker-scroll 26s linear infinite;
}
.wed-ticker:hover .wed-ticker__track{ animation-play-state:paused; }
.wed-ticker__item{ display:inline-flex; align-items:center; padding:0 22px; }
.wed-ticker__sep{
	height:1em;      /* scales with .wed-ticker's font-size — bump that to resize everywhere at once */
	width:auto;
	vertical-align:middle;
	display:inline-block;
	opacity:.8;
}
@keyframes wed-ticker-scroll{
	0%{ transform:translateX(0); }
	100%{ transform:translateX(-50%); }
}

.wl-section {
	position: relative;
	font-family: var(--wl-font-body);
	color: var(--wl-ink);
}

.wl-section * {
	box-sizing: border-box;
}

.wl-wrap {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 24px;
}

.wl-title {
	font-family: var(--wl-font-display);
	font-weight: 500;
	letter-spacing: 0.01em;
	margin: 0;
}

/* ------------------------------------------------------------------ *
 * Scroll reveal (icons / images / words slide up on scroll)
 * ------------------------------------------------------------------ */

.wl-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
		transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
	transition-delay: var(--wl-delay, 0ms);
	will-change: transform, opacity;
}

.wl-reveal.is-visible {
	opacity: 1;
	transform: none;
}

/* Never hide content from the Elementor editor or from crawlers with JS off */
.elementor-editor-active .wl-reveal,
.no-js .wl-reveal {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	.wl-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}

/* ==================================================================== *
 * 1. HERO
 * ==================================================================== */

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

.wl-hero__stage {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: var(--wl-hero-h, 640px);
	overflow: hidden;
}

.wl-hero__slides {
	position: absolute;
	inset: 0;
}

.wl-hero__slide {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transform: scale(1.06);
	transition: opacity 1.2s ease, transform 7s linear;
}

.wl-hero__slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.wl-hero__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}

.wl-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1000px;
	padding: 90px 24px;
	text-align: center;
	color: #fff;
}

.wl-hero__title {
	font-family: var(--wl-font-display);
	font-size: clamp(38px, 5.2vw, 68px);
	line-height: 1.08;
	font-weight: 400;
	margin: 0;
	color: #fff;
}

.wl-hero__sub {
	margin: 14px 0 0;
	font-size: clamp(13px, 1.4vw, 19px);
	letter-spacing: 0.34em;
	text-transform: uppercase;
	font-weight: 500;
	color: #fff;
}

.wl-hero__sub em {
	font-style: normal;
	color: var(--wl-rose-soft);
}

/* search */
.wl-hero__search {
	margin: 58px auto 0;
	max-width: 430px;
	width: 100%;
}

.wl-search {
	position: relative;
	display: flex;
	align-items: center;
	background: #f0eeec;
	border-radius: 999px;
	padding: 4px 4px 4px 26px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.wl-search input[type="search"],
.wl-search input[type="text"] {
	flex: 1;
	border: 0;
	outline: 0;
	background: transparent;
	height: 54px;
	font-family: var(--wl-font-body);
	font-size: 15px;
	color: var(--wl-ink);
	min-width: 0;
}

.wl-search input::placeholder {
	color: #8a8a8a;
}

.wl-search__btn {
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border: 0;
	background: transparent;
	border-radius: 50%;
	cursor: pointer;
	color: var(--wl-rose);
	transition: background 0.25s ease, transform 0.25s ease;
}

.wl-search__btn:hover {
	background: rgba(163, 115, 127, 0.12);
	transform: scale(1.05);
}

.wl-search__btn svg {
	width: 20px;
	height: 20px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
}

/* buttons */
.wl-hero__actions {
	margin-top: 46px;
	display: flex;
	gap: 18px;
	justify-content: center;
	flex-wrap: wrap;
}

.wl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 224px;
	height: 56px;
	padding: 0 30px;
	border-radius: 999px;
	background: var(--wl-rose);
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: background 0.25s ease, transform 0.25s ease;
}

.wl-btn:hover {
	background: var(--wl-rose-dark);
	color: #fff;
	transform: translateY(-2px);
}

.wl-hero__note {
	text-align: center;
	padding: 30px 24px;
	font-family: var(--wl-font-display);
	font-size: clamp(15px, 1.5vw, 19px);
	background: #fff;
	color: var(--wl-ink);
}

/* ==================================================================== *
 * 2. CATEGORY CARDS
 * ==================================================================== */

.wl-cats__grid {
	display: grid;
	align-items: start;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
	padding: 30px 0;
}

.wl-cat {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	border-radius: 18px;
	text-decoration: none;
	background: #ddd;
}

/* Spacer sets the card height — no aspect-ratio dependency */
.wl-cat::before {
	content: "";
	display: block;
	padding-top: var(--wl-cat-pad, 153%);
}

.wl-cat__img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transform: scale(1);
	transition: transform 6s cubic-bezier(0.19, 1, 0.22, 1);
}

.wl-cat:hover .wl-cat__img {
	transform: scale(1.16);
}

.wl-cat__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.32) 55%, rgba(0, 0, 0, 0.18) 100%);
	transition: background 0.5s ease;
}

.wl-cat:hover .wl-cat__shade {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.42) 55%, rgba(0, 0, 0, 0.28) 100%);
}

.wl-cat__label {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 20px;
	text-align: center;
	font-family: var(--wl-font-display);
	font-size: clamp(22px, 2.4vw, 34px);
	letter-spacing: 0.02em;
	color: #fff;
	text-transform: uppercase;
}

/* ==================================================================== *
 * 3. PRODUCT SCROLLERS + CARD
 * ==================================================================== */

.wl-scroller {
	padding: 46px 0 26px;
}

.wl-scroller__head {
	text-align: center;
	margin-bottom: 26px;
}

.wl-scroller__title {
	font-family: var(--wl-font-display);
	font-size: clamp(20px, 2vw, 27px);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wl-rose);
	margin: 0;
}

.wl-track {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scroll-behavior: smooth;
	padding: 4px 4px 18px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	cursor: grab;
}

.wl-track::-webkit-scrollbar {
	display: none;
}

.wl-track.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	scroll-snap-type: none;
}

.wl-track > * {
	scroll-snap-align: start;
	flex: 0 0 auto;
	width: var(--wl-card-w, 180px);
}

.wl-pcard {
	display: block;
	text-decoration: none;
	color: inherit;
}

.wl-pcard__media {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: #f1eeeb;
	border-radius: 2px;
}

.wl-pcard__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.5s ease, transform 4s ease;
}

.wl-pcard__img.is-active {
	opacity: 1;
}

.wl-pcard:hover .wl-pcard__img.is-active {
	transform: scale(1.04);
}

.wl-pcard__ph {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, #efeae6, #e2dbd5);
}

.wl-pcard__brand {
	display: block;
	margin-top: 10px;
	font-size: 9px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wl-rose);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* All names occupy the same height — longer names are trimmed. */
.wl-pcard__title {
	margin: 4px 0 0;
	font-family: var(--wl-font-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.25;
	color: var(--wl-ink);
	min-height: calc(1.25em * var(--wl-title-lines, 1));
	display: -webkit-box;
	-webkit-line-clamp: var(--wl-title-lines, 1);
	line-clamp: var(--wl-title-lines, 1);
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wl-pcard__price {
	margin-top: 4px;
	font-size: 12px;
	color: var(--wl-ink);
	display: flex;
	gap: 8px;
	align-items: baseline;
	flex-wrap: wrap;
}

.wl-pcard__price ins {
	text-decoration: none;
	color: var(--wl-rose);
}

.wl-pcard__price del {
	color: #a6a6a6;
	font-size: 11px;
}

.wl-scroller__more {
	display: inline-block;
	margin-top: 14px;
	font-family: var(--wl-font-display);
	font-size: 17px;
	color: var(--wl-rose);
	text-decoration: underline;
	text-underline-offset: 5px;
}

.wl-scroller__more:hover {
	color: var(--wl-rose-dark);
}

.wl-empty {
	padding: 40px 0;
	text-align: center;
	color: var(--wl-muted);
}

/* ==================================================================== *
 * 4. HOW IT WORKS (accordion)
 * ==================================================================== */

.wl-how {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--wl-cream);
	position: relative;
}

.wl-how::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: var(--wl-how-bar, 30px);
	background: var(--wl-rose);
}

.wl-how__left {
	/* left padding always clears the accent bar, whatever width it is set to */
	padding: 60px 60px 70px calc(var(--wl-how-bar, 30px) + 60px);
	min-width: 0;
}

.wl-how__title {
	font-family: var(--wl-font-display);
	font-size: clamp(32px, 3.4vw, 48px);
	margin: 0 0 34px;
	font-weight: 400;
}

.wl-acc__item + .wl-acc__item {
	margin-top: 10px;
}

.wl-acc__head {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 12px;
	background: none;
	border: 0;
	padding: 14px 0;
	cursor: pointer;
	font-family: var(--wl-font-body);
	font-size: clamp(22px, 2.2vw, 31px);
	font-weight: 400;
	color: var(--wl-ink);
	text-align: left;
	line-height: 1.2;
	-webkit-tap-highlight-color: transparent;
}

/* Beat Elementor / Hello global button hover+focus fills */
.wl-acc__head:hover,
.wl-acc__head:focus,
.wl-acc__head:focus-visible,
.wl-acc__head:active {
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
}

.wl-acc__sign {
	color: var(--wl-rose);
	font-size: 0.9em;
	line-height: 1;
	transition: transform 0.35s ease;
	display: inline-block;
}

.wl-acc__item.is-open .wl-acc__sign {
	transform: rotate(45deg);
}

.wl-acc__panel {
	overflow: hidden;
	height: 0;
	transition: height 0.4s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.wl-acc__panel-inner {
	padding: 0 0 18px 6px;
	max-width: 520px;
	font-size: 17px;
	line-height: 1.6;
	color: #444;
}

.wl-how__right {
	position: relative;
	min-height: var(--wl-how-h, 520px);
	background-size: cover;
	background-position: center;
}

.wl-how__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: 0;
	transition: opacity 0.6s ease;
}

.wl-how__media.is-active {
	opacity: 1;
}

/* ==================================================================== *
 * 5. WEDDING ESSENTIALS
 * ==================================================================== */

.wl-ess {
	padding: 60px 0 50px;
	background: #fff;
}

.wl-ess__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 30px;
}

.wl-ess__title {
	font-family: var(--wl-font-display);
	font-size: clamp(28px, 3vw, 42px);
	margin: 0;
	font-weight: 400;
}

.wl-ess__link {
	font-weight: 700;
	font-size: 15px;
	color: var(--wl-ink);
	text-decoration: underline;
	text-underline-offset: 6px;
	white-space: nowrap;
}

.wl-ess .wl-track > * {
	width: var(--wl-ess-card-w, 300px);
}

.wl-ecard {
	display: block;
	text-decoration: none;
	color: inherit;
}

.wl-ecard__media {
	position: relative;
	aspect-ratio: 1 / 1.05;
	background: #f1f1f1;
	border-radius: 4px;
	overflow: hidden;
	display: grid;
	place-items: center;
}

.wl-ecard__media img {
	width: 78%;
	height: 78%;
	object-fit: contain;
	transition: transform 0.6s ease;
}

.wl-ecard:hover .wl-ecard__media img {
	transform: scale(1.06);
}

.wl-badges {
	position: absolute;
	top: 14px;
	left: 14px;
	display: flex;
	gap: 8px;
	z-index: 2;
}

.wl-badge {
	background: #fff;
	border-radius: 999px;
	padding: 5px 13px;
	font-size: 12px;
	font-weight: 500;
	color: var(--wl-ink);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.wl-badge--sale {
	background: #cdeab5;
}

.wl-ecard__cat {
	display: block;
	margin-top: 14px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #9a9a9a;
}

.wl-ecard__title {
	margin: 6px 0 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	min-height: calc(1.3em * 1);
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wl-ecard__price {
	margin-top: 6px;
	font-size: 16px;
	font-weight: 700;
	display: flex;
	gap: 8px;
	align-items: baseline;
}

.wl-ecard__price del {
	font-weight: 400;
	color: #9a9a9a;
	font-size: 14px;
}

.wl-ecard__price ins {
	text-decoration: none;
}

/* progress bar + arrows */
.wl-ess__foot {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-top: 10px;
}

.wl-progress {
	position: relative;
	flex: 1;
	height: 2px;
	background: #e6e6e6;
}

.wl-progress__bar {
	position: absolute;
	left: 0;
	top: -1px;
	height: 4px;
	width: 30%;
	background: var(--wl-ink);
	transition: transform 0.15s linear;
}

.wl-arrows {
	display: flex;
	gap: 10px;
}

.wl-arrow {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid #d8d8d8;
	background: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: background 0.25s ease, border-color 0.25s ease;
}

.wl-arrow:hover {
	background: var(--wl-cream);
	border-color: var(--wl-rose);
}

.wl-arrow svg {
	width: 16px;
	height: 16px;
	stroke: var(--wl-ink);
	fill: none;
	stroke-width: 1.6;
}

/* ==================================================================== *
 * 6. RENT IT / LIST IT / BUY IT
 * ==================================================================== */

.wl-rlb {
	position: relative;
	overflow: hidden;
	min-height: var(--wl-rlb-h, 620px);
	display: flex;
	align-items: center;
	justify-content: center;
}

.wl-rlb__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.9s ease;
	background-size: cover;
	background-position: center;
}

.wl-rlb__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.wl-rlb__shade {
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.1);
}

.wl-rlb__content {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 40px 24px;
}

.wl-rlb__title {
	font-family: var(--wl-font-display);
	font-size: clamp(34px, 4vw, 54px);
	margin: 0;
	color: var(--wl-ink);
	font-weight: 400;
}

.wl-rlb__text {
	margin: 22px 0 0;
	font-size: clamp(17px, 1.7vw, 24px);
	color: var(--wl-ink);
}

.wl-rlb__link {
	margin-top: 26px;
	font-family: var(--wl-font-display);
	font-size: clamp(16px, 1.5vw, 21px);
	color: var(--wl-rose);
	text-decoration: underline;
	text-underline-offset: 6px;
}

.wl-rlb__link:hover {
	color: var(--wl-rose-dark);
}

.wl-dots {
	position: absolute;
	left: 50%;
	bottom: 42px;
	transform: translateX(-50%);
	display: flex;
	gap: 14px;
	z-index: 3;
}

.wl-dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: rgba(255, 255, 255, 0.75);
	cursor: pointer;
	transition: transform 0.25s ease, background 0.25s ease;
}

.wl-dot.is-active {
	background: #fff;
	transform: scale(1.25);
}

.wl-dots--rose .wl-dot {
	background: var(--wl-rose-soft);
}

.wl-dots--rose .wl-dot.is-active {
	background: var(--wl-rose);
}

/* ==================================================================== *
 * 7. STORIES (blog)
 * ==================================================================== */

.wl-stories {
	padding: 56px 0 60px;
	text-align: center;
}

.wl-stories__title {
	font-family: var(--wl-font-display);
	font-size: clamp(30px, 3.2vw, 44px);
	margin: 0 0 34px;
	font-weight: 400;
}

.wl-stories__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
	text-align: left;
}

.wl-story {
	display: block;
	text-decoration: none;
	color: inherit;
}

.wl-story__media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: #eee;
	border-radius: 4px;
}

.wl-story__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.6s cubic-bezier(0.19, 1, 0.22, 1);
}

.wl-story:hover .wl-story__media img {
	transform: scale(1.08);
}

.wl-story__date {
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	background: var(--wl-rose);
	color: #fff;
	font-size: 14px;
	letter-spacing: 0.06em;
	padding: 9px 26px;
	border-radius: 4px;
	white-space: nowrap;
}

.wl-story__meta {
	display: flex;
	gap: 26px;
	align-items: center;
	margin: 22px 0 10px;
	font-size: 14px;
	color: #555;
}

.wl-story__meta span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.wl-story__meta svg {
	width: 16px;
	height: 16px;
	stroke: var(--wl-ink);
	fill: none;
	stroke-width: 1.5;
}

.wl-story__title {
	margin: 0 0 10px;
	font-size: clamp(18px, 1.8vw, 23px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--wl-rose);
	transition: color 0.25s ease;
}

.wl-story:hover .wl-story__title {
	color: var(--wl-rose-dark);
}

.wl-story__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: #4a4a4a;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.wl-stories__more {
	display: inline-block;
	margin-top: 40px;
	font-family: var(--wl-font-display);
	font-size: 22px;
	color: var(--wl-ink);
	text-decoration: underline;
	text-underline-offset: 7px;
}

/* ==================================================================== *
 * 8. FEATURE CARDS
 * ==================================================================== */

.wl-features {
	background: var(--wl-cream);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.wl-feature {
	padding: 46px 34px 52px;
	text-align: center;
	border-right: 1px solid rgba(0, 0, 0, 0.08);
}

.wl-feature:last-child {
	border-right: 0;
}

.wl-feature__icon {
	height: 62px;
	display: grid;
	place-items: center;
	margin-bottom: 18px;
}

.wl-feature__icon img,
.wl-feature__icon svg {
	max-height: 62px;
	width: auto;
}

.wl-feature__title {
	font-family: var(--wl-font-display);
	font-size: clamp(19px, 1.9vw, 27px);
	margin: 0 0 14px;
	font-weight: 400;
}

.wl-feature__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: #3d3d3d;
}

/* ==================================================================== *
 * 9. LOVE LETTERS
 * ==================================================================== */

.wl-love {
	position: relative;
	padding: 62px 0 74px;
}

.wl-love__bgs {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-columns: repeat(var(--wl-love-cols, 3), 1fr);
	z-index: 0;
}

.wl-love__bg {
	background-size: cover;
	background-position: center;
}

.wl-love__shade {
	position: absolute;
	inset: 0;
	background: rgba(20, 12, 10, 0.42);
	z-index: 1;
}

.wl-love__inner {
	position: relative;
	z-index: 2;
}

.wl-love__title {
	text-align: center;
	font-family: var(--wl-font-display);
	font-size: clamp(26px, 3vw, 42px);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 54px;
	font-weight: 400;
}

.wl-love__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 34px;
}

.wl-quote {
	position: relative;
	padding: 0 6px;
}

.wl-quote__box {
	position: relative;
	border: 1px solid rgba(255, 255, 255, 0.75);
	padding: 26px 28px;
	color: #fff;
	font-size: clamp(14px, 1.2vw, 17px);
	line-height: 1.55;
	text-align: center;
}

.wl-quote__box::before,
.wl-quote__box::after {
	content: "";
	position: absolute;
	width: 34px;
	height: 30px;
	background-repeat: no-repeat;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 28'%3E%3Cpath fill='%23ffffff' d='M13 28V14C13 6.3 7.3.6 0 0v6c4 .6 7 4 7 8H0v14h13zm19 0V14c0-7.7-5.7-13.4-13-14v6c4 .6 7 4 7 8h-7v14h13z'/%3E%3C/svg%3E");
}

.wl-quote__box::before {
	top: -14px;
	left: -12px;
}

.wl-quote__box::after {
	bottom: -14px;
	right: -12px;
	transform: rotate(180deg);
}

.wl-quote__name {
	margin: 20px 0 0;
	font-family: var(--wl-font-display);
	font-size: clamp(18px, 1.8vw, 25px);
	color: #fff;
}

/* ==================================================================== *
 * 10. COMMUNITY / INSTAGRAM
 * ==================================================================== */

.wl-community {
	padding: 60px 0 70px;
	text-align: center;
	background: #fff;
}

.wl-community__title {
	font-family: var(--wl-font-display);
	font-size: clamp(28px, 3.2vw, 44px);
	margin: 0 0 22px;
	font-weight: 400;
}

.wl-community__follow {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 34px;
	font-size: 16px;
	color: #2b2b2b;
	text-decoration: none;
}

.wl-community__handle {
	border: 1px solid #d9d5d1;
	border-radius: 999px;
	padding: 9px 20px;
	font-weight: 700;
	transition: border-color 0.25s ease, color 0.25s ease;
}

.wl-community__follow:hover .wl-community__handle {
	border-color: var(--wl-rose);
	color: var(--wl-rose);
}

.wl-community .wl-track {
	gap: 20px;
	padding-bottom: 26px;
}

.wl-community .wl-track > * {
	width: var(--wl-ig-w, 300px);
}

.wl-ig {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	border-radius: 14px;
	overflow: hidden;
	background: #eee;
}

.wl-ig img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s cubic-bezier(0.19, 1, 0.22, 1);
}

.wl-ig:hover img {
	transform: scale(1.08);
}

.wl-ig__hover {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(0, 0, 0, 0.35);
	opacity: 0;
	transition: opacity 0.35s ease;
}

.wl-ig:hover .wl-ig__hover {
	opacity: 1;
}

.wl-ig__hover svg {
	width: 34px;
	height: 34px;
	fill: #fff;
}

.wl-community .wl-dots {
	position: static;
	transform: none;
	justify-content: center;
	margin-top: 10px;
}

/* ==================================================================== *
 * 11. ABOUT / DEDICATED MARKETPLACE
 * ==================================================================== */

.wl-about {
	display: grid;
	grid-template-columns: var(--wl-about-media, 38%) auto;
	background: var(--wl-rose);
	color: #fff;
}

.wl-about__media {
	min-height: var(--wl-about-h, 640px);
	background-size: cover;
	background-position: center;
}

.wl-about__body {
	padding: 70px 60px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
}

.wl-about__title {
	font-family: var(--wl-font-display);
	font-size: clamp(28px, 3.1vw, 44px);
	line-height: 1.2;
	margin: 0 0 34px;
	font-weight: 400;
	color: #fff;
}

.wl-about__text p {
	margin: 0 0 18px;
	font-size: clamp(16px, 1.4vw, 19px);
	line-height: 1.5;
	color: #fff;
}

.wl-about__logo {
	margin: 26px auto 30px;
	max-width: 130px;
}

.wl-about__logo img {
	width: 100%;
	height: auto;
}

.wl-about__link {
	font-size: 18px;
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 6px;
}

.wl-about__link:hover {
	color: #f2e4e8;
}

/* ==================================================================== *
 * 12. SUBSCRIBE
 * ==================================================================== */

.wl-subscribe {
	background: var(--wl-cream);
	padding: 76px 0 92px;
	text-align: center;
}

.wl-subscribe__logo {
	max-width: 70px;
	margin: 0 auto 18px;
}

.wl-subscribe__logo img {
	width: 100%;
	height: auto;
}

.wl-subscribe__title {
	font-family: var(--wl-font-display);
	font-size: clamp(20px, 2.2vw, 30px);
	margin: 0 0 40px;
	font-weight: 400;
}

.wl-subform {
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 720px;
	margin: 0 auto;
	border-bottom: 1px solid #cfc8c1;
	padding-bottom: 10px;
}

.wl-subform input[type="email"] {
	flex: 1;
	border: 0;
	background: transparent;
	outline: 0;
	font-family: var(--wl-font-body);
	font-size: 16px;
	color: var(--wl-ink);
	padding: 8px 4px;
	min-width: 0;
}

.wl-subform input::placeholder {
	color: #9a938c;
}

.wl-subform button {
	border: 0;
	background: transparent;
	cursor: pointer;
	font-family: var(--wl-font-body);
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #2b2b2b;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	transition: color 0.25s ease, transform 0.25s ease;
}

.wl-subform button:hover {
	color: var(--wl-rose);
	transform: translateX(2px);
}

.wl-subform__msg {
	margin-top: 14px;
	font-size: 14px;
	min-height: 20px;
	color: var(--wl-rose-dark);
}

/* ==================================================================== *
 * RESPONSIVE
 * ==================================================================== */

@media (max-width: 1024px) {
	.wl-cats__grid {
		gap: 18px;
	}

	.wl-how,
	.wl-about {
		grid-template-columns: 1fr;
	}

	.wl-how__left {
		padding: 50px 34px 56px calc(var(--wl-how-bar, 30px) + 26px);
	}

	.wl-how__right,
	.wl-about__media {
		min-height: 380px;
		order: -1;
	}

	.wl-about__body {
		padding: 50px 28px 60px;
	}

	.wl-feature:nth-child(2n) {
		border-right: 0;
	}

	.wl-feature:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.wl-love__grid,
	.wl-stories__grid {
		gap: 40px;
	}

	.wl-love__bgs {
		grid-template-columns: 1fr;
	}

	.wl-love__bg:not(:first-child) {
		display: none;
	}
}

@media (max-width: 767px) {
	.wl-wrap {
		padding: 0 16px;
	}

	.wl-hero__stage {
		min-height: 560px;
	}

	.wl-hero__inner {
		padding: 70px 18px;
	}

	.wl-hero__search {
		margin-top: 38px;
	}

	.wl-hero__actions {
		margin-top: 32px;
		gap: 12px;
	}

	.wl-btn {
		min-width: 190px;
		height: 50px;
		font-size: 14px;
	}

	.wl-cats__grid {
		gap: 16px;
	}

	.wl-cat::before {
		padding-top: var(--wl-cat-pad-m, var(--wl-cat-pad, 113%));
	}

	.wl-how__left {
		padding: 40px 20px 46px calc(var(--wl-how-bar, 30px) + 18px);
	}

	.wl-ess__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.wl-feature {
		border-right: 0;
		border-bottom: 1px solid rgba(0, 0, 0, 0.08);
	}

	.wl-rlb {
		min-height: 520px;
	}

	.wl-track > * {
		width: var(--wl-card-w-mobile, 150px);
	}

	.wl-ess .wl-track > * {
		width: 230px;
	}

	.wl-community .wl-track > * {
		width: 230px;
	}
}

/* ==================================================================== *
 * BLOG TEMPLATE (single.php fallback)
 * ==================================================================== */

.wl-post {
	padding: 56px 0 80px;
}

.wl-post .wl-wrap {
	max-width: 820px;
}

.wl-post__header {
	text-align: center;
	margin-bottom: 34px;
}

.wl-post__eyebrow {
	margin: 0 0 14px;
	font-size: 13px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wl-rose);
}

.wl-post__title {
	font-family: var(--wl-font-display);
	font-size: clamp(30px, 4vw, 50px);
	line-height: 1.15;
	margin: 0 0 16px;
	font-weight: 400;
}

.wl-post__meta {
	margin: 0;
	font-size: 15px;
	color: var(--wl-muted);
	display: flex;
	gap: 10px;
	justify-content: center;
}

.wl-post__hero {
	margin-bottom: 40px;
}

.wl-post__hero img {
	width: 100%;
	height: auto;
	border-radius: 6px;
}

.wl-post__body {
	font-size: 18px;
	line-height: 1.75;
	color: #2c2c2c;
}

.wl-post__body h2,
.wl-post__body h3 {
	font-family: var(--wl-font-display);
	font-weight: 500;
	margin: 40px 0 14px;
}

.wl-post__body h2 {
	font-size: clamp(24px, 2.6vw, 32px);
}

.wl-post__body h3 {
	font-size: clamp(20px, 2.2vw, 26px);
}

.wl-post__body a {
	color: var(--wl-rose);
	text-decoration: underline;
	text-underline-offset: 4px;
}

.wl-post__body blockquote {
	margin: 32px 0;
	padding: 6px 0 6px 24px;
	border-left: 3px solid var(--wl-rose);
	font-family: var(--wl-font-display);
	font-size: 22px;
	color: #333;
}

.wl-post__body img {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
}

.wl-post__comments {
	margin-top: 60px;
	padding-top: 34px;
	border-top: 1px solid var(--wl-line);
}

/* ==================================================================== *
 * FOOTER
 * ==================================================================== */

.wl-footer {
	background: #f7f5f3;
	color: var(--wl-ink);
	padding: 48px 24px 40px;
	width: 100%;
	margin: 0;
}

.wl-footer--bleed {
	box-shadow: 0 0 0 100vmax #f7f5f3;
	clip-path: inset(0 -100vmax);
}

.wl-footer-inner {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 28px 24px;
	align-items: start;
}

.wl-brand img {
	display: block;
	width: 150px;
	max-width: 100%;
	height: auto;
}

.wl-brand__badge {
	margin-top: 14px;
}

.wl-brand__badge img {
	width: 130px;
}

.wl-col h4 {
	margin: 0 0 14px;
	color: var(--wl-rose);
	font-size: 16px;
	font-weight: 600;
	font-family: inherit;
}

.wl-col ul,
.wl-col .wl-col__menu {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.wl-col ul li,
.wl-col .wl-col__menu li {
	list-style: none !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
}

.wl-col ul li::before,
.wl-col ul li::marker,
.wl-col .wl-col__menu li::before,
.wl-col .wl-col__menu li::marker {
	content: none !important;
	display: none !important;
}

.wl-col a {
	color: var(--wl-ink);
	text-decoration: none;
	font-size: 14px;
	transition: color 0.2s ease;
}

.wl-col a:hover {
	text-decoration: underline;
}

.wl-social {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}

.wl-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--wl-ink);
	text-decoration: none;
	line-height: 0;
	transition: opacity 0.2s ease;
}

.wl-social a:hover {
	opacity: 0.75;
}

.wl-social svg {
	width: 26px;
	height: 26px;
	display: block;
	fill: currentColor;
}

.wl-social i {
	font-size: 26px;
	line-height: 1;
}

.wl-copy {
	margin: 0;
	font-size: 13px;
}

@media (max-width: 767px) {
	.wl-footer {
		padding: 32px 16px 24px;
	}

	.wl-footer-inner {
		gap: 24px;
	}

	.wl-social svg {
		width: 28px;
		height: 28px;
	}
}

/* ==================================================================== *
 * MOBILE REFINEMENTS
 * Loaded last so it wins over the section blocks above. Heights use
 * min(var(), vh) — an Elementor per-device value still applies, it just
 * can never grow taller than the phone screen.
 * ==================================================================== */

@media (max-width: 1024px) {
	.wl-about {
		grid-template-columns: 1fr;
	}

	.wl-about__media {
		min-height: min(var(--wl-about-h, 640px), 46vh);
	}

	.wl-how__right {
		min-height: min(var(--wl-how-h, 520px), 44vh);
	}
}

@media (max-width: 767px) {
	.wl-section {
		max-width: 100%;
		overflow-wrap: break-word;
	}

	/* Hero ---------------------------------------------------------- */
	.wl-hero__stage {
		min-height: min(var(--wl-hero-h, 640px), 92vh);
	}

	.wl-hero__title {
		line-height: 1.12;
	}

	.wl-hero__sub {
		letter-spacing: 0.2em;
		line-height: 1.7;
	}

	.wl-hero__actions {
		flex-direction: column;
		align-items: center;
		width: 100%;
	}

	.wl-btn {
		width: 100%;
		max-width: 320px;
		min-width: 0;
	}

	.wl-search {
		padding-left: 18px;
	}

	/* 16px keeps iOS Safari from zooming the page when the field is tapped */
	.wl-search input[type="search"],
	.wl-search input[type="text"],
	.wl-subform input[type="email"] {
		font-size: 16px;
	}

	.wl-search input[type="search"],
	.wl-search input[type="text"] {
		height: 50px;
	}

	.wl-search__btn {
		width: 44px;
		height: 44px;
	}

	.wl-hero__note {
		padding: 22px 18px;
	}

	/* Scroll strips run to the screen edge so it reads as swipeable ---- */
	.wl-scroller .wl-track,
	.wl-ess .wl-track,
	.wl-community .wl-track {
		margin-inline: -16px;
		padding-inline: 16px;
		scroll-padding-inline: 16px;
	}

	.wl-ess__foot {
		gap: 14px;
	}

	.wl-arrow {
		width: 40px;
		height: 40px;
	}

	/* How it works --------------------------------------------------- */
	.wl-how__right {
		min-height: min(var(--wl-how-h, 520px), 40vh);
	}

	.wl-acc__head {
		padding: 12px 0;
	}

	.wl-acc__panel-inner {
		font-size: 16px;
	}

	/* Rotating slider ------------------------------------------------ */
	.wl-rlb {
		min-height: min(var(--wl-rlb-h, 620px), 82vh);
	}

	.wl-dots {
		bottom: 26px;
	}

	.wl-dot {
		width: 13px;
		height: 13px;
	}

	/* About ---------------------------------------------------------- */
	.wl-about__media {
		min-height: min(var(--wl-about-h, 640px), 40vh);
	}

	/* Stories & quotes ----------------------------------------------- */
	.wl-story__meta {
		flex-wrap: wrap;
		gap: 14px;
	}

	.wl-stories__more {
		font-size: 19px;
	}

	.wl-quote {
		padding: 0 10px;
	}

	.wl-quote__box {
		padding: 22px 20px;
	}

	.wl-love__title {
		margin-bottom: 34px;
	}

	/* Subscribe ------------------------------------------------------ */
	.wl-subform {
		gap: 10px;
	}

	.wl-subform button {
		font-size: 11px;
		letter-spacing: 0.08em;
	}
}

@media (max-width: 480px) {
	.wl-hero__sub {
		letter-spacing: 0.14em;
		font-size: 12px;
	}

	.wl-cat::before {
		padding-top: var(--wl-cat-pad-m, var(--wl-cat-pad, 100%));
	}

	.wl-how__left {
		padding: 34px 14px 40px calc(var(--wl-how-bar, 30px) + 14px);
	}

	.wl-feature {
		padding: 34px 18px 38px;
	}

	.wl-about__body {
		padding: 40px 20px 46px;
	}

	.wl-footer-inner {
		grid-template-columns: 1fr;
	}
}

/* ==================================================================== *
 * OVERLAP GUARDS
 * Boxes sized purely by aspect-ratio hold absolutely-positioned images
 * and labels. If aspect-ratio is unsupported or a custom ratio is typed
 * in wrong, the box collapses to zero height and its contents paint over
 * whatever follows. These rules give every such box a floor.
 * ==================================================================== */

.wl-cats,
.wl-scroller,
.wl-ess,
.wl-community,
.wl-stories,
.wl-how {
	/* contains the edge-to-edge strips instead of letting them push the page sideways */
	overflow-x: clip;
}

.wl-cats__grid,
.wl-track,
.wl-stories__grid {
	min-width: 0;
}

/* Floors, so a bad ratio degrades to "a bit short" rather than "overlapping" */
.wl-pcard__media,
.wl-ecard__media {
	min-height: 150px;
}

.wl-ig,
.wl-story__media {
	min-height: 160px;
}

/* Percentage-padding fallback for engines without aspect-ratio */
@supports not (aspect-ratio: 3 / 4) {
	.wl-pcard__media,
	.wl-ecard__media,
	.wl-ig,
	.wl-story__media {
		height: 0;
		overflow: hidden;
	}

	.wl-pcard__media {
		padding-bottom: 133%;
	}

	.wl-ecard__media {
		padding-bottom: 105%;
	}

	.wl-ig {
		padding-bottom: 100%;
	}

	.wl-story__media {
		padding-bottom: 56.25%;
	}
}

@media (max-width: 767px) {
	/* the card is the flex item; never let its text spill onto the next card */
	.wl-track > * {
		min-width: 0;
	}

	.wl-pcard__brand,
	.wl-pcard__title,
	.wl-pcard__price,
	.wl-ecard__title,
	.wl-ecard__cat {
		max-width: 100%;
	}
}

/* ==================================================================== *
 * CATEGORY CARDS — SWIPE ROW ON MOBILE
 * Below 768px the grid becomes a snapping horizontal strip. Native touch
 * scrolling does the work, so there is no JS and no dependency on the
 * grid template the responsive Columns control writes.
 * ==================================================================== */

@media (max-width: 767px) {
	.wl-cats__grid--swipe {
		display: flex;
		grid-template-columns: none;
		align-items: stretch;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		/* run to the screen edge so it reads as scrollable */
		margin-inline: -16px;
		padding-inline: 16px;
		scroll-padding-inline: 16px;
	}

	.wl-cats__grid--swipe::-webkit-scrollbar {
		display: none;
	}

	.wl-cats__grid--swipe > .wl-cat {
		flex: 0 0 auto;
		width: var(--wl-cat-w, 74%);
		scroll-snap-align: start;
	}

	/* Reveal the row as one unit — cards waiting off to the right should not
	   sit at opacity 0 until they are swiped into view. */
	.wl-cats__grid--swipe > .wl-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}