/* ==========================================================================
   Bluestone Lane Wholesale page
   Scoped to .bl-wholesale. Loads only on template-wholesale.php.
   Tokens defined on .bl-wholesale so they scope to this template only and
   never leak into the global stylesheet.
   ========================================================================== */

/* 1. Tokens ------------------------------------------------------------- */
.bl-wholesale {
	--bl-ws-navy:    #24295c;
	--bl-ws-blue:    #426da3;
	--bl-ws-blue-dk: #35587f;
	--bl-ws-body:    #58595b;
	--bl-ws-muted:   #6f7280;
	--bl-ws-white:   #ffffff;

	--bl-ws-tint:    #f6f8fc;
	--bl-ws-tint-2:  #eef3fa;
	--bl-ws-rule:    #dfe3ee;

	--bl-ws-radius: 2px;

	--bl-ws-max:    1320px;
	--bl-ws-gut:    clamp(20px, 4vw, 56px);
	--bl-ws-sec:    clamp(56px, 7vw, 104px);
	--bl-ws-gap:    clamp(16px, 1.8vw, 24px);
	--bl-ws-gap-lg: clamp(28px, 4vw, 72px);

	--bl-ws-font-head: Lusitana, Georgia, serif;
	--bl-ws-font-body: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* 2. Base --------------------------------------------------------------- */
/* Scope horizontal overflow prevention to the body on this template only.
   WordPress adds page-template-template-wholesale to body automatically. */
body.page-template-template-wholesale {
	overflow-x: hidden;
}

.bl-wholesale {
	font-family: var(--bl-ws-font-body);
	color: var(--bl-ws-navy);
	background: var(--bl-ws-white);
	overflow-x: hidden;
}

.bl-wholesale a              { color: var(--bl-ws-blue); text-decoration: none; }
.bl-wholesale a:hover        { color: var(--bl-ws-navy); text-decoration: underline; }
.bl-wholesale img            { display: block; max-width: 100%; }
.bl-wholesale [hidden]       { display: none !important; }

.bl-wholesale :focus-visible {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 2px;
}

/* Visually hidden utility */
.bl-ws-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* 3. Layout: bands and wrap --------------------------------------------- */
.bl-ws-band {
	padding-block: var(--bl-ws-sec);
}
.bl-ws-band--tint { background: var(--bl-ws-tint); }
.bl-ws-band--navy { background: var(--bl-ws-navy); }

/* .bl-wrap is shared with the rest of the site; redeclare here for safety
   since wholesale.css only loads on the wholesale template. */
.bl-wholesale .bl-wrap {
	max-width: var(--bl-ws-max);
	margin-inline: auto;
	padding-inline: var(--bl-ws-gut);
}

/* 4. Type roles --------------------------------------------------------- */
.bl-ws-eyebrow {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bl-ws-blue);
	margin: 0 0 14px;
}

.bl-ws-h2 {
	font-family: var(--bl-ws-font-body);
	font-size: clamp(24px, 2.8vw, 36px);
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--bl-ws-navy);
	margin: 0 0 32px;
}

.bl-ws-h3 {
	font-family: var(--bl-ws-font-body);
	font-size: 22px;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-wrap: balance;
	color: var(--bl-ws-navy);
	margin: 0 0 14px;
}

.bl-ws-prose { color: var(--bl-ws-body); font-size: 16px; line-height: 28px; }
.bl-ws-prose p { margin: 0 0 18px; }
.bl-ws-prose p:last-child { margin-bottom: 0; }
.bl-ws-prose strong { color: var(--bl-ws-navy); }

/* 5. Buttons ------------------------------------------------------------ */
.bl-ws-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 13px 26px;
	border: 0;
	border-radius: var(--bl-ws-radius);
	font-family: var(--bl-ws-font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	text-decoration: none;
}

.bl-ws-btn--navy {
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white) !important;
	border: 0;
}
.bl-ws-btn--navy:hover { background: #1a1e44; color: var(--bl-ws-white) !important; text-decoration: none; }

.bl-ws-btn--solid {
	background: var(--bl-ws-blue);
	color: var(--bl-ws-white) !important;
}
.bl-ws-btn--solid:hover { background: var(--bl-ws-blue-dk); color: var(--bl-ws-white) !important; text-decoration: none; }

.bl-ws-btn--outline {
	background: transparent;
	color: var(--bl-ws-navy);
	border: 2px solid var(--bl-ws-navy);
}
.bl-ws-btn--outline:hover { background: var(--bl-ws-tint-2); text-decoration: none; }

.bl-ws-btn--outline-white {
	background: transparent;
	color: var(--bl-ws-white) !important;
	border: 2px solid var(--bl-ws-white);
}
.bl-ws-btn--outline-white:hover { background: rgba(255,255,255,0.18); text-decoration: none; }

.bl-ws-btn:focus-visible {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 3px;
}

/* 6. Hero --------------------------------------------------------------- */
.bl-ws-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	min-height: 560px;
	background: var(--bl-ws-white);
}

.bl-ws-hero__left {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	padding: clamp(48px, 6vw, 88px) clamp(20px, 4vw, 56px) clamp(96px, 9vw, 128px);
}

.bl-ws-hero__left .bl-ws-eyebrow {
	margin-bottom: 18px;
}

.bl-ws-hero__h1 {
	font-family: var(--bl-ws-font-body);
	font-size: clamp(32px, 4.2vw, 56px);
	font-weight: 900;
	line-height: 1.06;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bl-ws-navy);
	margin: 0 0 24px;
	text-wrap: balance;
}

.bl-ws-hero__standfirst {
	font-size: 16px;
	line-height: 28px;
	color: var(--bl-ws-body);
	margin: 0 0 32px;
	max-width: 46ch;
	text-wrap: pretty;
}

.bl-ws-hero__cta-group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px 28px;
}

.bl-ws-hero__partner-link {
	font-size: 14px;
	font-weight: 600;
	color: var(--bl-ws-blue) !important;
}
.bl-ws-hero__partner-link:hover { color: var(--bl-ws-navy) !important; }

.bl-ws-hero__right {
	position: relative;
	min-height: 420px;
	background: var(--bl-ws-tint-2);
	overflow: hidden;
}

.bl-ws-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (max-width: 768px) {
	.bl-ws-hero {
		grid-template-columns: 1fr;
		min-height: unset;
	}
	.bl-ws-hero__left {
		order: 2;
		padding: clamp(32px, 5vw, 56px) var(--bl-ws-gut);
	}
	.bl-ws-hero__right {
		order: 1;
		min-height: 260px;
		aspect-ratio: 4 / 3;
	}
}

/* 7. Trust bar ---------------------------------------------------------- */
/* Overlaps the hero bottom by pulling up with a negative margin. */
.bl-ws-trust {
	position: relative;
	z-index: 2;
	margin-top: -64px;
	padding: 0 var(--bl-ws-gut);
}

.bl-ws-trust__outer {
	max-width: 1208px;
	margin-inline: auto;
}

.bl-ws-trust__container {
	background: var(--bl-ws-white);
	border: 1px solid var(--bl-ws-rule);
	border-top: 4px solid var(--bl-ws-blue);
	border-radius: var(--bl-ws-radius);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
}

.bl-ws-trust__container--solo {
	padding: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bl-ws-trust__cell {
	padding: 28px 28px 26px;
	border-right: 1px solid var(--bl-ws-rule);
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.bl-ws-trust__cell:last-child { border-right: 0; }

.bl-ws-trust__number {
	font-family: var(--bl-ws-font-body);
	font-size: clamp(30px, 3vw, 40px);
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.01em;
	color: var(--bl-ws-navy);
}

.bl-ws-trust__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bl-ws-body);
}

.bl-ws-trust__sub {
	margin: 28px 0 0;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bl-ws-muted);
}

.bl-ws-trust__fallback {
	margin: 0;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bl-ws-muted);
}

@media (max-width: 640px) {
	.bl-ws-trust {
		margin-top: -40px;
	}
	.bl-ws-trust__container {
		grid-template-columns: repeat(2, 1fr);
	}
	/* right border: only on odd cells (col 1); bottom border on all but last row */
	.bl-ws-trust__cell {
		border-right: 0;
		border-bottom: 1px solid var(--bl-ws-rule);
	}
	.bl-ws-trust__cell:nth-child(odd) {
		border-right: 1px solid var(--bl-ws-rule);
	}
	/* remove bottom border from last two cells */
	.bl-ws-trust__cell:nth-last-child(-n+2) {
		border-bottom: 0;
	}
}

/* 8. Segments ----------------------------------------------------------- */
.bl-ws-segments .bl-ws-h2 {
	margin-bottom: 40px;
}

.bl-ws-seg-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
	gap: var(--bl-ws-gap);
}

.bl-ws-seg-card {
	text-align: left;
	padding: 0;
	background: var(--bl-ws-white);
	border: 1px solid var(--bl-ws-rule);
	border-top: 4px solid var(--bl-ws-blue);
	border-radius: var(--bl-ws-radius);
	display: flex;
	flex-direction: column;
	cursor: pointer;
	color: var(--bl-ws-navy);
	font-family: var(--bl-ws-font-body);
}
.bl-ws-seg-card:hover { border-color: var(--bl-ws-blue); }
.bl-ws-seg-card[aria-pressed="true"] {
	border-color: var(--bl-ws-navy);
	border-top-color: var(--bl-ws-navy);
}

.bl-ws-seg-card__img-wrap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: var(--bl-ws-tint-2);
	overflow: hidden;
}

.bl-ws-seg-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bl-ws-seg-card__body {
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.bl-ws-seg-card__title {
	font-size: 17px;
	font-weight: 900;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	line-height: 1.2;
}

.bl-ws-seg-card__copy {
	font-size: 14px;
	line-height: 22px;
	color: var(--bl-ws-body);
	margin: 0;
	flex: 1;
}

.bl-ws-seg-card__cta {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bl-ws-blue);
	margin-top: 6px;
}

/* 9. Coffee story ------------------------------------------------------- */
.bl-ws-story .bl-ws-h2 {
	margin-bottom: 28px;
}

.bl-ws-story__layout {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bl-ws-gap-lg);
	align-items: flex-start;
}

.bl-ws-story__sidebar {
	position: sticky;
	top: 24px;
	flex: 1 1 240px;
	max-width: 300px;
}

.bl-ws-story__tabs {
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--bl-ws-rule);
}

.bl-ws-story__tab {
	display: flex;
	gap: 14px;
	align-items: baseline;
	text-align: left;
	padding: 16px 14px;
	min-height: 44px;
	border: 0;
	border-bottom: 1px solid var(--bl-ws-rule);
	background: transparent;
	color: var(--bl-ws-navy);
	cursor: pointer;
	font-family: var(--bl-ws-font-body);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.bl-ws-story__tab--active,
.bl-ws-story__tab[aria-pressed="true"] {
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white);
}

.bl-ws-story__tab-n {
	font-size: 11px;
	opacity: 0.7;
}

.bl-ws-story__panels {
	flex: 999 1 480px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 32px;
}

.bl-ws-story__panel-inner {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.bl-ws-story__copy {
	max-width: 52ch;
}

.bl-ws-story__hero-img {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: var(--bl-ws-tint-2);
	border-radius: var(--bl-ws-radius);
	overflow: hidden;
}
.bl-ws-story__hero-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bl-ws-story__img-pair {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}
.bl-ws-story__img-pair-cell {
	position: relative;
	aspect-ratio: 1;
	background: var(--bl-ws-tint-2);
	border-radius: var(--bl-ws-radius);
	overflow: hidden;
}
.bl-ws-story__img-pair-cell img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Blend cards */
.bl-ws-blends {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: var(--bl-ws-gap);
}

.bl-ws-blend-card {
	background: var(--bl-ws-white);
	border: 1px solid var(--bl-ws-rule);
	border-radius: var(--bl-ws-radius);
	display: flex;
	flex-direction: column;
}

.bl-ws-blend-card__img-wrap {
	aspect-ratio: 3 / 2;
	background: var(--bl-ws-tint-2);
	overflow: hidden;
}
.bl-ws-blend-card__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bl-ws-blend-card__img-placeholder {
	aspect-ratio: 3 / 2;
	background: var(--bl-ws-tint-2);
}

.bl-ws-blend-card__body {
	padding: 26px 24px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.bl-ws-blend-card__name {
	font-family: var(--bl-ws-font-head);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.05;
	color: var(--bl-ws-navy);
}

.bl-ws-blend-card__notes {
	font-family: var(--bl-ws-font-head);
	font-size: 17px;
	font-style: italic;
	color: var(--bl-ws-blue);
}

.bl-ws-blend-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.bl-ws-blend-card__tag {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--bl-ws-tint-2);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bl-ws-blend-card__fit {
	border-top: 1px solid var(--bl-ws-rule);
	padding-top: 14px;
	font-size: 14px;
	line-height: 22px;
	color: var(--bl-ws-body);
	margin: 0;
}

/* Wellness grid */
.bl-ws-wellness-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
	gap: clamp(20px, 3vw, 40px);
}

.bl-ws-well-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	text-align: center;
}

.bl-ws-well-item__img-wrap {
	width: min(100%, 200px);
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
	background: var(--bl-ws-tint-2);
}
.bl-ws-well-item__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bl-ws-well-item__name {
	font-family: var(--bl-ws-font-head);
	font-size: 26px;
	font-weight: 700;
	color: var(--bl-ws-navy);
}

/* Story actions row */
.bl-ws-story__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	padding-top: 8px;
}

@media (max-width: 768px) {
	.bl-ws-story__sidebar {
		position: static;
		max-width: 100%;
		flex-basis: 100%;
	}
	.bl-ws-story__tabs {
		flex-direction: row;
		overflow-x: auto;
	}
	.bl-ws-story__tab {
		flex: 1;
		justify-content: center;
		white-space: nowrap;
	}
}

/* 10. Pillars ----------------------------------------------------------- */
.bl-ws-pillars {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
}

.bl-ws-pillars__image-col {
	position: relative;
	min-height: 480px;
	background: var(--bl-ws-tint-2);
	overflow: hidden;
}

.bl-ws-pillars__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bl-ws-pillars__content-col {
	padding: var(--bl-ws-sec) clamp(20px, 4vw, 56px);
}

.bl-ws-pillars__content-col .bl-ws-h2 {
	margin-bottom: 32px;
}

.bl-ws-pillars__list {
	display: flex;
	flex-direction: column;
	border-top: 1px solid var(--bl-ws-rule);
}

.bl-ws-pillar-row {
	display: grid;
	grid-template-columns: 48px 1fr;
	gap: 20px;
	padding: 24px 0;
	border-bottom: 1px solid var(--bl-ws-rule);
	align-items: start;
}

.bl-ws-pillar-row__badge {
	width: 40px;
	height: 40px;
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white);
	border-radius: var(--bl-ws-radius);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 900;
	letter-spacing: 0.08em;
	flex: none;
}

.bl-ws-pillar-row__title {
	font-size: 17px;
	font-weight: 900;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 6px;
}

.bl-ws-pillar-row__copy {
	font-size: 15px;
	line-height: 25px;
	color: var(--bl-ws-body);
	margin: 0;
}

/* 11. Testimonials ------------------------------------------------------ */
.bl-ws-testimonials {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white);
}

.bl-ws-testimonials__left {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--bl-ws-sec) clamp(20px, 4vw, 56px);
}

.bl-ws-test-slide__eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	margin: 0 0 24px;
}

.bl-ws-test-slide__count {
	font-weight: 400;
}

.bl-ws-test-slide__quote {
	margin: 0 0 28px;
	font-family: var(--bl-ws-font-head);
	font-size: clamp(24px, 2.4vw, 32px);
	line-height: 1.35;
	text-wrap: pretty;
}

.bl-ws-test-slide__quote p {
	margin: 0;
}

.bl-ws-test-slide__who {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.bl-ws-test-slide__meta {
	font-size: 14px;
	color: rgba(255,255,255,0.85);
	margin-top: 4px;
}

/* Dots */
.bl-ws-test-dots {
	display: flex;
	gap: 4px;
	margin-top: 32px;
	align-items: center;
}

.bl-ws-test-dot {
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.bl-ws-test-dot__bar {
	display: block;
	width: 28px;
	height: 3px;
	background: rgba(255,255,255,0.35);
}

.bl-ws-test-dot--active .bl-ws-test-dot__bar,
.bl-ws-test-dot[aria-pressed="true"] .bl-ws-test-dot__bar {
	background: var(--bl-ws-white);
}

.bl-ws-test-cta {
	margin-top: 28px;
}

/* Right image panel */
.bl-ws-testimonials__right {
	position: relative;
	min-height: 440px;
	background: #1a1e44;
	overflow: hidden;
}

.bl-ws-test-venue {
	position: absolute;
	inset: 0;
}

.bl-ws-test-venue__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 12. How it works ------------------------------------------------------ */
.bl-ws-hiw {
	background: var(--bl-ws-white);
}

.bl-ws-hiw .bl-ws-h2 {
	margin-bottom: 48px;
}

.bl-ws-hiw__steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: clamp(28px, 4vw, 56px);
}

/* Horizontal connecting line behind circles */
.bl-ws-hiw__steps::before {
	content: "";
	position: absolute;
	left: 28px;
	right: 28px;
	top: 27px;
	border-top: 2px solid var(--bl-ws-rule);
}

.bl-ws-hiw__step {
	position: relative;
	display: flex;
	flex-direction: column;
}

.bl-ws-hiw__circle {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: 900;
	margin-bottom: 24px;
	box-shadow: 0 0 0 8px var(--bl-ws-white);
	flex: none;
}

.bl-ws-hiw__title {
	font-family: var(--bl-ws-font-body);
	font-size: 22px;
	font-weight: 900;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--bl-ws-navy);
	margin: 0 0 10px;
}

.bl-ws-hiw__copy {
	font-size: 16px;
	line-height: 28px;
	color: var(--bl-ws-body);
	margin: 0;
	max-width: 34ch;
}

@media (max-width: 700px) {
	.bl-ws-hiw__steps::before { display: none; }
	.bl-ws-hiw__circle { box-shadow: none; }
}

/* 13. FAQ accordion ----------------------------------------------------- */
.bl-ws-faq {
	padding-bottom: var(--bl-ws-sec);
	padding-top: 0;
}

.bl-ws-faq__layout {
	display: flex;
	flex-wrap: wrap;
	gap: var(--bl-ws-gap-lg);
}

.bl-ws-faq__label-col {
	flex: 1 1 260px;
	max-width: 380px;
}

.bl-ws-faq__h2 {
	font-family: var(--bl-ws-font-body);
	font-size: clamp(24px, 2.8vw, 36px);
	font-weight: 900;
	line-height: 1.15;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bl-ws-navy);
	margin: 0;
}

.bl-ws-faq__items-col {
	flex: 999 1 480px;
	border-top: 1px solid var(--bl-ws-rule);
	min-width: 0;
}

.bl-ws-faq__item {
	border-bottom: 1px solid var(--bl-ws-rule);
}

.bl-ws-faq__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	width: 100%;
	min-height: 44px;
	padding: 20px 4px;
	border: 0;
	background: transparent;
	font-family: var(--bl-ws-font-body);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bl-ws-navy);
	text-align: left;
	cursor: pointer;
}
.bl-ws-faq__trigger:hover { color: var(--bl-ws-blue); }

.bl-ws-faq__trigger:focus-visible {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 2px;
}

.bl-ws-faq__q {
	flex: 1;
}

.bl-ws-faq__icon {
	flex: none;
	font-size: 22px;
	font-weight: 400;
	color: var(--bl-ws-blue);
	line-height: 1;
}

.bl-ws-faq__trigger[aria-expanded="true"] .bl-ws-faq__icon {
	content: "−";
}

.bl-ws-faq__panel {
	padding: 0 4px 22px;
}

.bl-ws-faq__answer {
	max-width: 62ch;
}

/* 14. Enquiry form ------------------------------------------------------ */
.bl-ws-form-section {
	scroll-margin-block-start: 80px;
	padding-inline: var(--bl-ws-gut);
}

.bl-ws-form-wrap {
	max-width: 560px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.bl-ws-form-header {
	text-align: center;
}

.bl-ws-form-header .bl-ws-eyebrow {
	color: var(--bl-ws-blue);
}

.bl-ws-form-header .bl-ws-h2 {
	margin: 0;
}

/* Error region */
.bl-ws-form-alert {
	font-size: 14px;
	line-height: 22px;
	color: #b91c1c;
}
.bl-ws-form-alert:empty { display: none; }

/* Chip fieldset */
.bl-ws-chips-fieldset {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.bl-ws-chips-fieldset legend {
	float: left;
	width: 100%;
	margin-bottom: 10px;
}

.bl-ws-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	clear: both;
}

.bl-ws-chip {
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid var(--bl-ws-rule);
	border-radius: var(--bl-ws-radius);
	background: var(--bl-ws-white);
	color: var(--bl-ws-navy);
	font-family: var(--bl-ws-font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
}
.bl-ws-chip:hover { border-color: var(--bl-ws-blue); }
.bl-ws-chip[aria-pressed="true"] {
	background: var(--bl-ws-navy);
	color: var(--bl-ws-white);
	border-color: var(--bl-ws-navy);
}
.bl-ws-chip:focus-visible {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 2px;
}

/* Form layout */
.bl-ws-form-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	gap: 18px;
}

.bl-ws-form-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bl-ws-form-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bl-ws-navy);
}

.bl-ws-form-req {
	color: var(--bl-ws-blue);
}

.bl-ws-form-input,
.bl-ws-form-select {
	width: 100%;
	font-family: var(--bl-ws-font-body);
	font-size: 15px;
	line-height: 1.5;
	color: var(--bl-ws-navy);
	background: var(--bl-ws-white);
	border: 1px solid var(--bl-ws-rule);
	border-radius: var(--bl-ws-radius);
	padding: 12px 14px;
	min-height: 46px;
	appearance: none;
}

.bl-ws-form-input:focus,
.bl-ws-form-select:focus {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 0;
	border-color: var(--bl-ws-blue);
}

.bl-ws-form-input.is-invalid,
.bl-ws-form-select.is-invalid {
	border-color: #b91c1c;
}

.bl-ws-form-textarea {
	resize: vertical;
	min-height: 110px;
}

/* Message toggle button */
.bl-ws-form-msg-toggle {
	display: flex;
}

.bl-ws-form-msg-btn {
	min-height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--bl-ws-blue);
	font-family: var(--bl-ws-font-body);
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
}
.bl-ws-form-msg-btn:focus-visible {
	outline: 2px solid var(--bl-ws-blue);
	outline-offset: 2px;
}

/* Submit: full-width, navy */
.bl-ws-form-submit {
	width: 100%;
	min-height: 48px;
	padding: 16px 26px;
	font-size: 12px;
}

.bl-ws-form-submit:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.bl-ws-form-fineprint {
	font-size: 13px;
	line-height: 21px;
	color: var(--bl-ws-muted);
	margin: 0;
	text-align: center;
}

/* Success state */
.bl-ws-form-success {
	max-width: 560px;
	margin: 0 auto;
	text-align: center;
	padding-block: 16px;
}

.bl-ws-form-success .bl-ws-h2 {
	margin-bottom: 16px;
}

.bl-ws-form-success__copy {
	font-size: 16px;
	line-height: 27px;
	color: var(--bl-ws-body);
	margin: 0;
}

/* Honeypot: off-screen, out of tab order */
.bl-ws-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* 15. Responsive summary ------------------------------------------------ */
@media (max-width: 640px) {
	.bl-ws-form-row { grid-template-columns: 1fr; }
}

/* 16. Reduced motion ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.bl-wholesale *,
	.bl-wholesale *::before,
	.bl-wholesale *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* ==========================================================================
   17. Reference alignment (Bluestone_Lane_Wholesale.html) and leak reset
   Appended so sections 1 to 16 stay diffable. Values copied from the
   reference's computed inline styles. Selectors carry body + template
   class so they also beat the site-wide Additional CSS regardless of order.
   ========================================================================== */

/* 17a. Reset: theme main.min.css (Bootstrap 3) and Additional CSS leaks */
body.page-template-template-wholesale .bl-wholesale {
	font-size: 16px;            /* theme body is 15px */
	line-height: normal;        /* theme body is 1.42857 */
	font-family: var(--bl-ws-font-body);
}
body.page-template-template-wholesale .bl-wholesale label { margin-bottom: 0; font-weight: 700; max-width: none; }
body.page-template-template-wholesale .bl-wholesale h1,
body.page-template-template-wholesale .bl-wholesale h2,
body.page-template-template-wholesale .bl-wholesale h3 { font-family: var(--bl-ws-font-body); }
body.page-template-template-wholesale .bl-wholesale button,
body.page-template-template-wholesale .bl-wholesale input,
body.page-template-template-wholesale .bl-wholesale textarea { line-height: normal; }
/* Additional CSS "CTA contrast fix" button rule has 3 IDs in :not(), so only
   !important wins here. Remove these once that rule is wrapped in :where(). */
body.page-template-template-wholesale .bl-wholesale .bl-ws-btn--navy,
body.page-template-template-wholesale .bl-wholesale .bl-ws-form-submit,
body.page-template-template-wholesale .bl-wholesale .bl-ws-story__tab--active,
body.page-template-template-wholesale .bl-wholesale .bl-ws-story__tab[aria-pressed="true"],
body.page-template-template-wholesale .bl-wholesale .bl-ws-chip[aria-pressed="true"],
body.page-template-template-wholesale .bl-wholesale .bl-ws-btn--outline-white,
body.page-template-template-wholesale .bl-wholesale .bl-ws-testimonials button { color: #fff !important; }
body.page-template-template-wholesale .bl-wholesale .bl-ws-story__tab:not(.bl-ws-story__tab--active):not([aria-pressed="true"]) { color: var(--bl-ws-navy) !important; }

/* 17b. Hero: reference is a full-bleed split; text column capped at 680px
   and pushed to the centre line so it aligns with .bl-wrap content. */
body.page-template-template-wholesale .bl-wholesale section.bl-ws-hero {
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	position: relative;
}
body.page-template-template-wholesale .bl-wholesale section.bl-ws-hero .bl-ws-hero__left {
	max-width: 680px;
	width: 100%;
	justify-self: end;
	padding: clamp(48px, 6vw, 88px) clamp(20px, 4vw, 56px) clamp(96px, 9vw, 128px);
}
.bl-wholesale .bl-ws-hero .bl-ws-btn { padding: 15px 26px; }
@media (max-width: 768px) {
	/* Reference keeps text first, image second, and the desktop paddings */
	body.page-template-template-wholesale .bl-wholesale section.bl-ws-hero .bl-ws-hero__left { order: 0; justify-self: stretch; max-width: none; }
	.bl-wholesale .bl-ws-hero__right { order: 0; min-height: 420px; aspect-ratio: auto; }
}

/* 17c. Trust bar: reference uses auto-fit at every width (1 column at 390) */
@media (max-width: 640px) {
	.bl-wholesale .bl-ws-trust { margin-top: -64px; }
	.bl-wholesale .bl-ws-trust__container { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
	.bl-wholesale .bl-ws-trust__cell,
	.bl-wholesale .bl-ws-trust__cell:nth-child(odd),
	.bl-wholesale .bl-ws-trust__cell:nth-last-child(-n+2) { border-right: 1px solid var(--bl-ws-rule); border-bottom: 0; }
}

/* 17d. Story: panel = 16:9 image, then text + image pair grid (reference) */
.bl-wholesale .bl-ws-story__panel-inner { gap: 32px; }
.bl-wholesale .bl-ws-story__panel-body {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(24px, 3vw, 48px);
	align-items: start;
}
.bl-wholesale .bl-ws-story__panel-body .bl-ws-h3 { margin: 0 0 14px; }
.bl-wholesale .bl-ws-story__panel-body .bl-ws-prose { margin: 0; max-width: 52ch; font-size: 16px; line-height: 28px; }
.bl-wholesale .bl-ws-story__img-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bl-wholesale .bl-ws-story__img-pair-cell { min-width: 0; border-radius: 0; }
.bl-wholesale .bl-ws-story__hero-img img,
.bl-wholesale .bl-ws-story__img-pair-cell img { position: absolute; inset: 0; display: block; }
@media (max-width: 768px) {
	/* Reference keeps tabs stacked vertically on mobile */
	.bl-wholesale .bl-ws-story__tabs { flex-direction: column; overflow-x: visible; }
	.bl-wholesale .bl-ws-story__tab { flex: none; justify-content: flex-start; white-space: normal; }
}

/* 17e. Pillars and testimonials: content columns capped like the reference */
.bl-wholesale .bl-ws-pillars__content-col { max-width: 680px; width: 100%; }
.bl-wholesale .bl-ws-testimonials__left { max-width: 720px; width: 100%; justify-self: end; }
.bl-wholesale .bl-ws-faq .bl-ws-eyebrow,
.bl-wholesale .bl-ws-hiw .bl-ws-eyebrow { margin: 0 0 14px; }

/* 17f. Theme leak: main.min.css ".content img { max-width:100%; height:auto }"
   (0,1,1) beats the single-class image rules, so cover images collapse. */
.bl-wholesale img.bl-ws-hero__img,
.bl-wholesale img.bl-ws-pillars__img,
.bl-wholesale img.bl-ws-test-venue__img,
.bl-wholesale .bl-ws-story__hero-img img,
.bl-wholesale .bl-ws-story__img-pair-cell img,
.bl-wholesale .bl-ws-seg-card__img-wrap img,
.bl-wholesale .bl-ws-blend-card__img-wrap img,
.bl-wholesale .bl-ws-well-item__img-wrap img { width: 100%; height: 100%; max-width: none; object-fit: cover; }

/* 17g. Theme leak: ".content p { max-width:100% }" (0,1,1) cancels ch caps */
.bl-wholesale p.bl-ws-hero__standfirst { max-width: 46ch; }
.bl-wholesale p.bl-ws-story__copy,
.bl-wholesale .bl-ws-story__panel-body p.bl-ws-prose { max-width: 52ch; }
.bl-wholesale p.bl-ws-hiw__copy { max-width: 34ch; }
.bl-wholesale .bl-ws-faq__answer,
.bl-wholesale p.bl-ws-faq__answer { max-width: 62ch; }

/* Story panel 0: 16:9 hero first, then text (left) + two square images (right) */
.bl-ws-story .bl-ws-story__panel-inner { gap: 32px; }

.bl-ws-story .bl-ws-story__panel-body {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: clamp(24px, 3vw, 48px);
	align-items: start;
}
.bl-ws-story .bl-ws-story__panel-body .bl-ws-h3 { margin: 0 0 14px; }
.bl-ws-story .bl-ws-story__panel-body .bl-ws-prose { margin: 0; max-width: 52ch; font-size: 16px; line-height: 28px; }

.bl-ws-story .bl-ws-story__hero-img { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; }
.bl-ws-story .bl-ws-story__img-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bl-ws-story .bl-ws-story__img-pair-cell { position: relative; aspect-ratio: 1; min-width: 0; overflow: hidden; }

.bl-ws-story .bl-ws-story__hero-img img,
.bl-ws-story .bl-ws-story__img-pair-cell img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}