/* Snusly product details — Vikings-inspired, #3B5998 / black / white */

.snp-page,
.snp-page * { box-sizing: border-box; }

body.snusly-product-page {
	background: #fff;
}

body.snusly-product-page .site-main,
body.snusly-product-page .content-area,
body.snusly-product-page #content,
body.snusly-product-page .woocommerce {
	max-width: none !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	background: #fff !important;
	border: 0 !important;
}

body.snusly-product-page .snp-page ~ .woocommerce-tabs,
body.snusly-product-page .snp-page ~ .related.products,
body.snusly-product-page .snp-page ~ .upsells,
body.snusly-product-page .product > .woocommerce-product-gallery,
body.snusly-product-page .product > .summary,
body.snusly-product-page .product > .woocommerce-tabs,
body.snusly-product-page .product > .related,
body.snusly-product-page div.product.snp-page .onsale {
	display: none !important;
}

.snp-page {
	--snp: #8A4381;
	background: #fff;
	color: #111;
	font-family: "Alike", Georgia, "Times New Roman", serif;
	padding: 0 0 72px;
}

body.snusly-product-page,
body.snusly-product-page .snp-page,
body.snusly-product-page .snp-page button,
body.snusly-product-page .snp-page input,
body.snusly-product-page .snp-page select,
body.snusly-product-page .snp-page textarea,
body.snusly-product-page .snp-page a,
body.snusly-product-page .snp-page label,
body.snusly-product-page .snp-page p,
body.snusly-product-page .snp-page h1,
body.snusly-product-page .snp-page h2,
body.snusly-product-page .snp-page h3,
body.snusly-product-page .snp-page li,
body.snusly-product-page .snp-page dt,
body.snusly-product-page .snp-page dd,
body.snusly-product-page .snp-page span,
body.snusly-product-page .comment-respond,
body.snusly-product-page .comment-form,
body.snusly-product-page .woocommerce-Reviews {
	font-family: "Alike", Georgia, "Times New Roman", serif !important;
}

.snp-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 24px 20px 0;
}

.snp-crumbs {
	font-size: 13px;
	color: #666;
	margin: 0 0 14px;
}
.snp-crumbs a { color: var(--snp); text-decoration: none; }
.snp-crumbs a:hover { text-decoration: underline; }
.snp-crumbs__sep { margin: 0 7px; color: #ccc; }

.snp-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr);
	gap: 36px 48px;
	align-items: start;
}

.snp-stage {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 16px;
	align-items: center;
}

.snp-gallery {
	margin: 0;
	background: #fff;
	border: 1px solid #eee;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 380px;
	padding: 28px;
}

.snp-gallery__img {
	display: block;
	width: 100%;
	max-width: 420px;
	height: auto;
	max-height: 420px;
	object-fit: contain;
}

.snp-icons {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-width: 88px;
}
.snp-icons li {
	text-align: center;
	font-size: 12px;
	color: #111;
}
.snp-icons__k {
	display: block;
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #777;
	margin-bottom: 4px;
}

.snp-thumbs {
	display: flex;
	gap: 8px;
	margin: 12px 0 0;
	flex-wrap: wrap;
}
.snp-thumbs__img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	border: 1px solid #e6e6e6;
	background: #fff;
}

.snp-brand {
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--snp);
}

.snp-title {
	margin: 0 0 10px;
	font-family: inherit;
	font-size: clamp(26px, 3vw, 34px);
	font-weight: 800;
	line-height: 1.15;
	color: #111;
}

.snp-meta-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 8px;
	font-size: 13px;
}
.snp-stars { display: inline-flex; gap: 1px; letter-spacing: 0; }
.snp-star { color: #d0d0d0; font-size: 14px; line-height: 1; }
.snp-star.is-on { color: var(--snp); }
.snp-stock { color: #2e7d32; font-weight: 600; }

.snp-brand-link { margin: 0 0 18px; font-size: 13px; }
.snp-brand-link a { color: var(--snp); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.snp-price {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 800;
	color: #111;
}
.snp-price--unit {
	margin: -8px 0 16px;
	font-size: 14px;
	font-weight: 600;
	color: #666;
}

.snp-packs {
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
	margin: 0 0 16px;
	background: #fff;
}
.snp-pack {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 12px;
	align-items: center;
	padding: 12px 14px;
	border-bottom: 1px solid #eee;
	cursor: pointer;
}
.snp-pack:last-child { border-bottom: 0; }
.snp-pack.is-checked { background: #f7f8fb; }
.snp-pack__label { font-size: 14px; font-weight: 600; color: #111; }
.snp-pack__price { font-size: 14px; font-weight: 800; color: #111; }
.snp-pack input { accent-color: var(--snp); }

.snp-qty-row { margin: 0 0 14px; }
.snp-page .snp-qty {
	display: grid !important;
	grid-template-columns: 44px 52px 44px;
	width: 140px;
	height: 42px;
	border: 1px solid #cfcfcf;
	background: #fff;
	overflow: hidden;
}
.snp-page .snp-qty__btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 42px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	cursor: pointer;
	line-height: 1 !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	color: #333 !important;
	font-family: "Alike", Georgia, "Times New Roman", serif !important;
	appearance: none;
}
.snp-page .snp-qty__btn span {
	display: block;
	line-height: 1;
	font-weight: 400;
	transform: translateY(-1px);
}
.snp-page .snp-qty__btn:hover {
	background: #f7f7f7 !important;
}
.snp-page .snp-qty input.qty,
.snp-page .snp-qty__input {
	width: 100% !important;
	max-width: none !important;
	height: 42px !important;
	min-height: 42px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-left: 1px solid #cfcfcf !important;
	border-right: 1px solid #cfcfcf !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	text-align: center !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	font-family: inherit !important;
	color: #111 !important;
	-moz-appearance: textfield;
	appearance: textfield;
}
.snp-page .snp-qty__input::-webkit-outer-spin-button,
.snp-page .snp-qty__input::-webkit-inner-spin-button { appearance: none; margin: 0; }

.snp-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 48px;
	margin: 0 0 10px;
	padding: 0 16px;
	font-family: inherit;
	font-weight: 800;
	font-size: 13px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	border-radius: 2px;
	line-height: 1;
	transition: background 0.2s ease, color 0.2s ease;
}
.snp-btn--ghost {
	background: #fff;
	color: #8A4381;
	border: 2px solid #8A4381;
}
.snp-btn--ghost:hover {
	/* Fill wipe handled in buttons.css */
	background: transparent;
	color: #fff !important;
}
.snp-btn--solid {
	background: #8A4381;
	color: #fff !important;
	border: 1px solid #8A4381;
}
.snp-btn--solid:hover {
	/* Fill wipe handled in buttons.css */
	background: #8A4381;
	border-color: #8A4381;
}

.snp-ship {
	margin-top: 8px;
	border: 1px solid #ddd;
	background: #fff;
	padding: 16px 16px 8px;
}
.snp-ship__lead {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.5;
	color: #111;
}

.snp-story { margin-top: 28px; }
.snp-story__tabs {
	display: flex;
	gap: 28px;
	margin: 0 0 18px;
	border-bottom: 1px solid #e5e5e5;
}
.snp-story__tab {
	appearance: none;
	border: 0;
	background: none;
	padding: 0 0 10px;
	margin: 0 0 -1px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	color: #888;
	cursor: pointer;
	border-bottom: 3px solid transparent;
}
.snp-story__tab.is-active {
	color: #111;
	border-bottom-color: var(--snp);
}

.snp-prose {
	max-width: 62ch;
	font-size: 15px;
	line-height: 1.7;
	color: #111;
}
.snp-prose h1, .snp-prose h2, .snp-prose h3 {
	font-family: inherit;
	color: #111;
	font-weight: 800;
	margin: 1.2em 0 0.4em;
}
.snp-prose h2 { font-size: 20px; }
.snp-prose h3 { font-size: 16px; }
.snp-prose p { margin: 0 0 0.9em; color: #111; }
.snp-prose ul { margin: 0 0 1em; padding-left: 1.15em; }
.snp-prose a { color: var(--snp); font-weight: 700; }

.snp-specs { margin: 0; max-width: 520px; }
.snp-specs > div {
	display: grid;
	grid-template-columns: 150px 1fr;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid #eee;
}
.snp-specs dt { margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; color: #666; font-weight: 700; }
.snp-specs dd { margin: 0; font-size: 15px; color: #111; }

.snp-reviews,
.snp-related,
.snp-faq {
	margin-top: 56px;
	padding-top: 8px;
}

.snp-sec-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin-bottom: 16px;
}

.snp-sec-title {
	margin: 0 0 18px;
	font-family: inherit;
	font-size: 26px;
	font-weight: 800;
	color: #111;
	text-align: left;
}
.snp-sec-head .snp-sec-title { margin: 0; }

.snp-write {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 16px;
	background: var(--snp);
	color: #fff !important;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 2px;
}

.snp-related__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}
.snp-rcard {
	background: #fff;
	border: 1px solid #eee;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
	padding: 12px 12px 14px;
	display: flex;
	flex-direction: column;
}
.snp-rcard__media { display: block; background: #f6f6f6; margin-bottom: 10px; }
.snp-rcard__img { width: 100%; height: 150px; object-fit: contain; }
.snp-rcard__stars { margin: 0 0 4px; color: var(--snp); font-size: 12px; }
.snp-rcard__brand {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--snp);
	font-weight: 700;
}
.snp-rcard__title {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
}
.snp-rcard__title a { color: #111; text-decoration: none; }
.snp-rcard__price { margin: 0 0 10px; font-size: 14px; font-weight: 800; color: #111; }
.snp-rcard__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	margin-top: auto;
	background: #8A4381;
	color: #fff !important;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
}

.snp-acc__item { border-top: 1px solid #e5e5e5; }
.snp-acc__item:last-child { border-bottom: 1px solid #e5e5e5; }
.snp-acc__btn {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	background: none;
	border: 0;
	padding: 14px 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	color: var(--snp);
	text-align: left;
	cursor: pointer;
}
.snp-acc__mark {
	width: 12px;
	height: 12px;
	position: relative;
	flex: 0 0 12px;
}
.snp-acc__mark::before,
.snp-acc__mark::after {
	content: "";
	position: absolute;
	background: var(--snp);
	left: 50%;
	top: 50%;
}
.snp-acc__mark::before { width: 12px; height: 1.5px; transform: translate(-50%, -50%); }
.snp-acc__mark::after { width: 1.5px; height: 12px; transform: translate(-50%, -50%); }
.snp-acc__item.is-open .snp-acc__mark::after { display: none; }
.snp-acc__panel { padding: 0 0 14px; font-size: 14px; line-height: 1.6; color: #333; max-width: 62ch; }
.snp-acc__panel p { margin: 0; }

.snp-reviews .comment-form-comment textarea,
.snp-reviews input[type="text"],
.snp-reviews input[type="email"] {
	width: 100%;
	border: 1px solid #ddd;
	border-radius: 0;
	padding: 10px 12px;
	background: #fff;
	font-family: inherit;
	color: #111;
}
.snp-reviews .form-submit input,
.snp-reviews .submit {
	background: var(--snp) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 2px !important;
	height: 44px;
	padding: 0 18px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 800;
}

@media (max-width: 900px) {
	.snp-grid { grid-template-columns: 1fr; gap: 28px; }
	.snp-stage { grid-template-columns: 1fr; }
	.snp-icons { flex-direction: row; justify-content: center; min-width: 0; }
	.snp-gallery { min-height: 0; padding: 16px; }
	.snp-gallery__img { max-height: 280px; }
	.snp-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.snp-title { font-size: 26px; }
}

@media (max-width: 560px) {
	.snp-wrap { padding: 16px 14px 0; }
	.snp-related__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
	.snp-specs > div { grid-template-columns: 1fr; gap: 4px; }
}
