/**
 * Snusly mobile / tablet hard fixes
 * Loaded last so grids stack correctly even if Elementor desktop columns leak.
 * Breakpoints match Elementor defaults: tablet 1024, mobile 767.
 */

/* ========== Kill empty gap above header (mobile) ========== */
@media (max-width: 1024px) {
	body .elementor-location-header,
	body .elementor-location-header .e-con,
	body .elementor-location-header .elementor-section,
	body .elementor-location-header .elementor-element,
	.elementor-section:has(.sch-header),
	.e-con:has(.sch-header),
	.elementor-element:has(.sch-header),
	.sch-header,
	.sch-header-widget,
	.elementor-widget-snusly_custom_header {
		margin-top: 0 !important;
		padding-top: 0 !important;
	}

	/* Theme empty header / spacer above Snusly */
	body:has(.sch-header) .site-header:not(:has(.sch-header)),
	body:has(.sch-header) #masthead:not(:has(.sch-header)),
	body:has(.sch-header) header[role="banner"]:not(:has(.sch-header)):not(.sch-header) {
		display: none !important;
		height: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		overflow: hidden !important;
	}

	.sch-header .sch-announce {
		margin-top: 0 !important;
	}

	/* Hero mobile: no arrows (belt + suspenders with hero.css) */
	.scy-arrow {
		display: none !important;
	}
}

/* ========== TABLET ≤ 1024 ========== */
@media (max-width: 1024px) {
	.elementor-widget-snusly_custom_cards .scc-grid,
	.elementor-widget-snusly_premium_picks .scp-grid,
	.scc-grid,
	.scp-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_features .scb-grid,
	.scb-grid {
		grid-template-columns: 1fr !important;
		gap: 36px !important;
	}

	.elementor-widget-snusly_shop_filters .scf2-flavours__grid,
	.scf2-flavours__grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
		row-gap: 22px !important;
	}

	.elementor-widget-snusly_shop_filters .scf2-strength__grid,
	.scf2-strength__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		row-gap: 28px !important;
	}
}

/* ========== MOBILE ≤ 767 ========== */
@media (max-width: 767px) {
	/*
	 * Shop by Brand + Premium Picks:
	 * Horizontal peek carousel (1.5 cards) + autoplay via slider.js.
	 * Track owns horizontal scroll; section only clips page bleed.
	 */
	.elementor-widget-snusly_custom_cards,
	.elementor-widget-snusly_custom_cards .elementor-widget-container,
	.elementor-widget-snusly_premium_picks,
	.elementor-widget-snusly_premium_picks .elementor-widget-container,
	.scc-section,
	.scp-section {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: clip !important;
		box-sizing: border-box !important;
	}

	.scc-inner,
	.scp-inner {
		width: 100% !important;
		max-width: 100% !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
		overflow: visible !important;
		box-sizing: border-box !important;
	}

	/* —— Shop by Brand —— */
	.elementor-widget-snusly_custom_cards .scc-grid,
	.scc-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		grid-template-columns: none !important;
		align-items: stretch;
		gap: 12px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 16px 12px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 16px;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
	}

	.scc-grid::-webkit-scrollbar { display: none; }

	.scc-card {
		flex: 0 0 calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		max-width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		min-width: 0 !important;
		margin: 0 !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.scc-card__media,
	.scc-card__placeholder {
		height: min(var(--scc-img-h, 360px), 56vw) !important;
		min-height: 200px !important;
		max-height: 300px !important;
	}

	.scc-card__name,
	.scc-card__price,
	.scc-card__btn {
		white-space: normal !important;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.scc-heading {
		font-size: 22px !important;
		padding: 0 16px;
	}

	/* —— Premium Picks —— */
	.elementor-widget-snusly_premium_picks .scp-grid,
	.scp-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		grid-template-columns: none !important;
		align-items: stretch;
		gap: 12px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 16px 12px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 16px;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
	}

	.scp-grid::-webkit-scrollbar { display: none; }

	.scp-card {
		flex: 0 0 calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		max-width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		min-width: 0 !important;
		margin: 0 !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.scp-card__visual,
	.scp-card__img-wrap {
		min-height: 220px !important;
	}

	.scp-card__title,
	.scp-card__brand,
	.scp-price,
	.scp-unit,
	.scp-card__btn {
		white-space: normal !important;
		overflow-wrap: break-word;
		word-break: normal;
	}

	.scp-card__meta {
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 8px;
	}

	.scp-pricing {
		text-align: right;
		white-space: normal;
	}

	.scp-heading {
		font-size: 24px !important;
		padding: 0 16px;
	}

	/* —— Feature Highlights —— */
	.elementor-widget-snusly_features .scb-grid,
	.scb-grid {
		grid-template-columns: 1fr !important;
		gap: 40px !important;
	}

	.scb-item {
		max-width: 340px;
		margin-left: auto;
		margin-right: auto;
		width: 100%;
	}

	.scb-item__title,
	.scb-item__desc {
		overflow-wrap: break-word;
		word-break: normal;
		white-space: normal !important;
	}

	.scb-bubble {
		max-width: 280px !important;
	}

	.scb-inner {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* —— Flavour profile —— */
	.elementor-widget-snusly_shop_filters .scf2-flavours__grid,
	.scf2-flavours__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 18px 12px !important;
		justify-items: center !important;
	}

	.scf2-flavour {
		max-width: 140px;
		width: 100%;
	}

	.scf2-flavour__label {
		font-size: 12px !important;
		line-height: 1.25 !important;
		white-space: normal !important;
		overflow-wrap: break-word;
		hyphens: auto;
	}

	.scf2-flavour__icon-wrap {
		width: 72px !important;
		height: 72px !important;
	}

	.scf2-flavours__title {
		font-size: 22px !important;
		padding: 0 8px;
	}

	.scf2-flavours .scf2-inner {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* —— Strength (full bleed + 2×2) —— */
	.elementor-widget-snusly_shop_filters .scf2-strength,
	.scf2-strength {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		margin-bottom: 0 !important;
		padding-bottom: 40px !important;
		box-sizing: border-box !important;
	}

	.elementor-widget-snusly_shop_filters .scf2-strength__grid,
	.scf2-strength__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 28px 12px !important;
		width: 100% !important;
		max-width: none !important;
	}

	.scf2-level__name {
		font-size: 14px !important;
		letter-spacing: 0.04em;
	}

	.scf2-level__range {
		font-size: 12px !important;
	}

	.scf2-strength__title {
		font-size: 22px !important;
	}

	.scf2-strength__desc {
		font-size: 14px !important;
		padding: 0 12px;
		margin-bottom: 28px !important;
	}

	.scf2-strength .scf2-inner {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* Kill leftover Elementor white gutters under strength */
	.elementor-widget-snusly_shop_filters,
	.elementor-element:has(.scf2-wrap),
	.e-con:has(.scf2-wrap) {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}
}

/* ========== SMALL PHONES ≤ 480 ========== */
@media (max-width: 480px) {
	.elementor-widget-snusly_shop_filters .scf2-flavours__grid,
	.scf2-flavours__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.scf2-flavour__icon-wrap {
		width: 64px !important;
		height: 64px !important;
	}
}

/* Prevent page-level horizontal scroll from full-bleed */
html,
body {
	overflow-x: clip;
}

/* ========== Popular Brands & New Arrivals mobile ========== */
@media (max-width: 1024px) {
	.elementor-widget-snusly_popular_brands .scbr-grid,
	.scbr-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_new_arrivals .scna-grid,
	.scna-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.elementor-widget-snusly_popular_brands .scbr-grid,
	.scbr-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_new_arrivals .scna-section,
	.scna-section {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}

	.elementor-widget-snusly_new_arrivals .scna-grid,
	.scna-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 480px) {
	.elementor-widget-snusly_popular_brands .scbr-grid,
	.scbr-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_new_arrivals .scna-grid,
	.scna-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* ========== Exclusive Bundles & Shop Categories ========== */
@media (max-width: 1024px) {
	.elementor-widget-snusly_exclusive_bundles .sceb-grid,
	.sceb-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_shop_categories .sccc-grid,
	.sccc-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.elementor-widget-snusly_exclusive_bundles .sceb-grid,
	.sceb-grid {
		display: flex !important;
		grid-template-columns: none !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 16px;
		gap: 12px !important;
		padding: 0 16px 10px 0 !important;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.sceb-grid::-webkit-scrollbar { display: none; }

	.sceb-card {
		flex: 0 0 calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		max-width: calc((100% - 12px) / var(--snusly-visible, 1.5)) !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		scroll-snap-align: start;
	}

	.sceb-card__title,
	.sceb-card__brand,
	.sceb-price,
	.sceb-card__btn {
		white-space: normal !important;
		overflow-wrap: break-word;
	}

	.sceb-inner {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	.elementor-widget-snusly_shop_categories .sccc-grid,
	.sccc-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 14px !important;
	}

	.sccc-inner {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

@media (max-width: 480px) {
	.elementor-widget-snusly_exclusive_bundles .sceb-grid,
	.sceb-grid {
		grid-template-columns: 1fr !important;
	}

	.elementor-widget-snusly_shop_categories .sccc-grid,
	.sccc-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

/* ========== Reviews ========== */
@media (max-width: 1024px) {
	.elementor-widget-snusly_reviews .scr-grid,
	.scr-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 767px) {
	.elementor-widget-snusly_reviews .scr-grid,
	.scr-grid {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}

	.scr-inner {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.scr-card__quote,
	.scr-card__name,
	.scr-heading,
	.scr-sub {
		white-space: normal !important;
		overflow-wrap: break-word;
		word-break: normal;
	}
}

/* ========== Blog ========== */
@media (max-width: 1024px) {
	.elementor-widget-snusly_blog .scbl-list,
	.scbl-list {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.elementor-widget-snusly_blog .scbl-card--feature,
	.scbl-card--feature {
		grid-column: 1 / -1 !important;
	}
}

@media (max-width: 767px) {
	.elementor-widget-snusly_blog .scbl-list,
	.scbl-list {
		grid-template-columns: 1fr !important;
		gap: 28px !important;
	}

	.scbl-heading,
	.scbl-card__title,
	.scbl-card__excerpt,
	.scbl-sub {
		white-space: normal !important;
		overflow-wrap: break-word;
		word-break: normal;
	}

	.scbl-filters {
		gap: 8px !important;
	}

	.scbl-filter {
		padding: 7px 12px !important;
		font-size: 11px !important;
	}
}

/* ========== Intro (Trusted UK store) ========== */
@media (max-width: 900px) {
	.elementor-widget-snusly_intro,
	.sci-widget,
	.sci-section {
		overflow: hidden !important;
		max-width: 100% !important;
	}

	.sci-inner {
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: wrap !important;
		align-items: stretch !important;
		width: 100% !important;
		max-width: 100% !important;
		gap: 18px !important;
	}

	.sci-copy {
		width: 100% !important;
		max-width: 100% !important;
		flex: 0 0 auto !important;
		flex-basis: auto !important;
	}

	.sci-aside {
		width: 100% !important;
		max-width: 100% !important;
	}

	.sci-media,
	.sci-media__img {
		display: none !important;
	}
}

/* Shop by Category */
@media (max-width: 1024px) {
	.elementor-widget-snusly_shop_catalog .snc-layout,
	.snc-layout {
		grid-template-columns: 1fr !important;
	}
	.elementor-widget-snusly_shop_catalog .sna-grid,
	.sna-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 767px) {
	.elementor-widget-snusly_shop_catalog,
	.elementor-widget-snusly_shop_catalog .elementor-widget-container,
	.snc-page,
	.sna-page,
	.sna-wrap {
		width: 100% !important;
		max-width: 100% !important;
		overflow-x: hidden !important;
	}
	.elementor-widget-snusly_shop_catalog .sna-grid,
	.sna-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 10px !important;
	}
	.elementor-widget-snusly_shop_catalog .snc-how__steps,
	.snc-how__steps,
	.elementor-widget-snusly_shop_catalog .snc-formats__grid,
	.snc-formats__grid {
		grid-template-columns: 1fr !important;
	}
}
@media (max-width: 420px) {
	.elementor-widget-snusly_shop_catalog .sna-grid,
	.sna-grid {
		grid-template-columns: 1fr !important;
	}
}

/* Signup popup: compact centred box on phones */
@media (max-width: 1024px) {
	.scsu,
	.elementor-widget-snusly_signup_popup .scsu {
		padding: 16px 12px !important;
		align-items: center !important;
	}
	.scsu__box,
	.elementor-widget-snusly_signup_popup .scsu__box {
		display: flex !important;
		flex-direction: column !important;
		width: min(420px, calc(100% - 8px)) !important;
		max-width: min(420px, calc(100% - 8px)) !important;
		max-height: min(88dvh, 720px) !important;
		height: auto !important;
		border-radius: 22px !important;
	}
	.scsu__visual,
	.elementor-widget-snusly_signup_popup .scsu__visual {
		flex: 0 0 min(var(--scsu-mob-h, 128px), 140px) !important;
		width: 100% !important;
		max-width: 100% !important;
		height: min(var(--scsu-mob-h, 128px), 140px) !important;
		min-height: 0 !important;
		max-height: min(var(--scsu-mob-h, 128px), 140px) !important;
	}
	.scsu__img--desk {
		display: none !important;
	}
	.scsu__img--mob {
		display: block !important;
	}
	.scsu__form,
	.elementor-widget-snusly_signup_popup .scsu__form {
		flex: 0 1 auto !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		width: 100% !important;
		text-align: center !important;
		align-items: center !important;
	}
	.scsu__kicker,
	.elementor-widget-snusly_signup_popup .scsu__kicker {
		align-self: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.scsu__h,
	.scsu__sub,
	.scsu__disc,
	.scsu__hint,
	.elementor-widget-snusly_signup_popup .scsu__h,
	.elementor-widget-snusly_signup_popup .scsu__sub,
	.elementor-widget-snusly_signup_popup .scsu__disc,
	.elementor-widget-snusly_signup_popup .scsu__hint {
		text-align: center !important;
		width: 100% !important;
		padding-right: 0 !important;
	}
	.scsu__perks,
	.elementor-widget-snusly_signup_popup .scsu__perks {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		flex-direction: unset !important;
		align-items: stretch !important;
		width: 100% !important;
		gap: 6px !important;
	}
	.scsu__perk,
	.elementor-widget-snusly_signup_popup .scsu__perk {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		text-align: center !important;
		width: auto !important;
		border-radius: 12px !important;
		padding: 8px 4px !important;
		box-sizing: border-box !important;
	}
}
