TikTok Special Offer
<!-- ==========================================
ULTIMATE TIKTOK SHOP PREMIUM UI (Warm Cream & Sweet Citrus Style)
- Style: Warm Cream background with energetic Sweet Citrus Orange accents.
- Fix: Standardized both star ratings to a high-contrast Golden Yellow (#ffb000) using high-priority selectors.
- Preserved: V16 core functional structure, original packages config, tracking code, and lazy loaded images.
=========================================== -->
<script>
window.EC_KING_CRAB_CONFIG = {
// 支付链接
LINKS: {
pack1: { qty1: "https://wugoule.shop/cart/44702398382122:1", qty2: "https://wugoule.shop/cart/44702398382122:2" },
pack2: { qty1: "https://wugoule.shop/cart/44702398414890:1", qty2: "https://wugoule.shop/cart/44702398414890:2" },
pack3: { qty1: "https://wugoule.shop/cart/44702398447658:1", qty2: "https://wugoule.shop/cart/44702398447658:2" }
},
PACKAGES: {
pack1: {
title: "3LB (Buy 1)",
weight: 3,
price: 39.99,
shipping: 8,
comparePrice: 119,
image: "https://cdn.shopify.com/s/files/1/0756/4728/7435/files/1_ecc0e3eb-8d1b-4e4e-8b59-f37e19f0bd01.png?v=1787298620"
},
pack2: {
title: "9LB (Buy 2 Get 1 Free)",
weight: 9,
price: 79.99,
shipping: 0,
comparePrice: 357,
image: "https://cdn.shopify.com/s/files/1/0756/4728/7435/files/2.png?v=1787298622"
},
pack3: {
title: "15LB (Buy 3 Get 2 Free)",
weight: 15,
price: 99.99,
shipping: 0,
comparePrice: 595,
image: "https://cdn.shopify.com/s/files/1/0756/4728/7435/files/4.png?v=1787298622"
}
},
DEFAULT_PACKAGE: 'pack1'
};
</script>
<style>
html {
scroll-behavior: smooth;
}
.tk-pro {
--tk-red: #ea580c; /* 鲜亮温暖的甘橙红色 */
--tk-red-gradient: linear-gradient(135deg, #f97316 0%, #ea580c 100%);
--tk-bg: #fffbf7; /* 高级乳酪白底色 */
--tk-text-main: #4a2711; /* 暖可可深褐,代替生硬的黑色 */
--tk-text-sub: #8c7365; /* 暖灰褐色 */
--tk-border: #f0e4dc; /* 柔和浅褐边框 */
--tk-green: #15803d; /* 自然绿 */
--tk-orange: #f97316; /* 元气橙 */
width: calc(100% + 24px);
margin-left: -12px;
max-width: 600px;
background: var(--tk-bg);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
position: relative;
box-sizing: border-box;
padding-bottom: 90px;
}
@media (min-width: 600px) {
.tk-pro {
width: 100%;
margin: 0 auto;
}
}
.tk-pro * {
box-sizing: border-box;
}
.tk-pro p,
.tk-pro h1,
.tk-pro h2,
.tk-pro span {
margin: 0;
padding: 0;
line-height: 1.4;
color: var(--tk-text-main);
}
.tk-pro button {
appearance: none !important;
-webkit-appearance: none !important;
outline: none !important;
border: none;
background: transparent;
cursor: pointer;
margin: 0;
padding: 0;
font-family: inherit;
}
.tk-section {
background: #ffffff;
padding: 14px 14px;
margin-bottom: 8px;
border-radius: 8px;
border: 1px solid rgba(240, 228, 220, 0.4);
}
/* 1. HERO & FLASH SALE BANNER */
.tk-hero-wrap {
position: relative;
background: #fff;
}
@media (max-width: 599px) {
.tk-hero-wrap {
width: 100vw !important;
margin-left: calc(-50vw + 50%) !important;
}
}
.tk-hero-track {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.tk-hero-track::-webkit-scrollbar {
display: none;
}
.tk-hero-slide {
flex: 0 0 100%;
width: 100%;
aspect-ratio: 1 / 1;
object-fit: cover;
scroll-snap-align: start;
background: #fdfbf7;
}
.tk-hero-indicator {
position: absolute;
bottom: 58px;
right: 12px;
background: rgba(74, 39, 17, 0.6);
color: #fff;
font-size: 11px;
font-weight: 700;
padding: 4px 10px;
border-radius: 20px;
backdrop-filter: blur(4px);
z-index: 10;
}
.tk-flash-banner {
background: var(--tk-red-gradient);
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 14px;
color: #fff;
}
.tk-flash-left {
display: flex;
align-items: center;
gap: 6px;
font-size: 16px;
font-weight: 800;
font-style: italic;
letter-spacing: -0.5px;
color: #fff;
}
.tk-flash-right {
display: flex;
flex-direction: column;
align-items: flex-end;
}
.tk-flash-text {
font-size: 10px;
font-weight: 600;
opacity: 0.95;
margin-bottom: 2px;
text-transform: uppercase;
color: #fff;
}
.tk-timer-box {
display: flex;
gap: 4px;
color: #fff;
}
.tk-time-unit {
background: #4a2711; /* 温暖深咖啡色代替硬黑 */
color: #fff;
font-size: 12px;
font-weight: 800;
padding: 2px 4px;
border-radius: 4px;
min-width: 22px;
text-align: center;
}
/* 2. PRICE & INFO */
.tk-price-area {
display: flex;
align-items: flex-end;
gap: 8px;
margin-bottom: 10px;
flex-wrap: wrap;
}
.tk-current-price {
color: var(--tk-red);
font-size: 32px;
font-weight: 800;
line-height: 1;
letter-spacing: -1px;
}
.tk-current-price span {
font-size: 18px;
margin-right: 2px;
color: var(--tk-red);
}
.tk-old-price {
color: var(--tk-text-sub);
font-size: 16px;
text-decoration: line-through;
margin-bottom: 4px;
}
.tk-discount-tag {
background: #ffedd5; /* 明亮粉橙底色 */
color: var(--tk-red);
font-size: 12px;
font-weight: 800;
padding: 4px 8px;
border-radius: 4px;
margin-bottom: 4px;
}
.tk-title {
font-size: 17px;
font-weight: 700;
line-height: 1.4;
margin-bottom: 10px;
color: var(--tk-text-main);
}
span.tk-title-badge {
display: inline-block !important;
background: var(--tk-red-gradient) !important;
color: #ffffff !important;
font-size: 11px !important;
font-weight: 800 !important;
padding: 3px 6px !important;
border-radius: 4px !important;
vertical-align: middle !important;
margin-right: 6px !important;
margin-bottom: 2px !important;
letter-spacing: 0.5px;
}
.tk-stats-row {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 13px;
color: var(--tk-text-sub);
border-top: 1px solid var(--tk-border);
padding-top: 12px;
}
/* 精准高优先级定位,强制星星呈现高饱和金黄色 */
.tk-pro span.tk-stars,
.tk-stars {
color: #ffb000 !important;
font-size: 14px;
letter-spacing: 1px;
display: inline-block !important;
}
.tk-sold-fire {
color: var(--tk-orange);
font-weight: 600;
display: flex;
align-items: center;
gap: 4px;
}
/* 2.5 TRENDING MEDIA BAR */
.tk-trending-bar {
background: #fffdfa;
padding: 12px 14px;
border-bottom: 1px solid var(--tk-border);
text-align: center;
}
.tk-trending-title {
font-size: 10px;
color: var(--tk-text-sub);
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1.5px;
margin-bottom: 10px;
}
.tk-trending-logos {
display: flex;
justify-content: center;
align-items: center;
gap: 24px;
filter: sepia(40%) grayscale(60%);
opacity: 0.45;
transition: opacity 0.3s;
color: var(--tk-text-main);
}
.tk-trending-logos svg {
height: 18px;
width: auto;
}
/* 3. SKU SELECTOR */
.tk-section-header {
font-size: 15px;
font-weight: 800;
margin-bottom: 12px;
display: flex;
justify-content: space-between;
align-items: center;
color: var(--tk-text-main);
}
.tk-stock-wrap {
background: #fff7ed;
padding: 12px;
border-radius: 8px;
margin-bottom: 16px;
border: 1px solid #ffedd5;
}
.tk-stock-text {
font-size: 12px;
font-weight: 700;
color: var(--tk-red);
margin-bottom: 8px;
display: flex;
justify-content: space-between;
}
.tk-progress-bg {
width: 100%;
height: 6px;
background: #fed7aa;
border-radius: 99px;
overflow: hidden;
}
.tk-progress-bar {
height: 100%;
background: var(--tk-red-gradient);
width: 88%;
border-radius: 99px;
animation: tkFill 1.5s ease;
}
@keyframes tkFill {
0% { width: 0%; }
100% { width: 88%; }
}
.tk-sku-grid {
display: flex;
flex-direction: column;
gap: 12px;
}
.tk-sku-card {
display: flex;
align-items: center;
padding: 10px 12px;
border: 1.5px solid var(--tk-border);
border-radius: 10px;
cursor: pointer;
transition: all 0.2s ease;
position: relative;
background: #ffffff;
gap: 12px;
}
.tk-sku-card:active {
transform: scale(0.99);
}
.tk-sku-img {
width: 54px;
height: 54px;
object-fit: cover;
border-radius: 6px;
border: 1px solid var(--tk-border);
flex-shrink: 0;
}
.tk-sku-info {
flex: 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.tk-sku-detail-left {
display: flex;
flex-direction: column;
gap: 2px;
}
.tk-sku-title {
font-size: 14px;
font-weight: 700;
color: var(--tk-text-main);
margin: 0;
}
.tk-sku-subtext {
font-size: 11px;
color: var(--tk-text-sub);
}
.tk-sku-detail-right {
display: flex;
flex-direction: column;
align-items: flex-end;
}
.tk-sku-price {
font-size: 16px;
font-weight: 800;
color: var(--tk-red);
margin: 0;
}
/* 显眼的运费标签UI */
.tk-shipping-prominent {
color: var(--tk-red);
border: 1px solid var(--tk-red);
padding: 2px 6px;
border-radius: 4px;
font-size: 11px;
font-weight: 700;
margin-top: 4px;
background: #fff;
display: inline-block;
}
.tk-shipping-free {
color: var(--tk-text-sub);
font-size: 11px;
font-weight: 600;
margin-top: 4px;
}
.tk-sku-card.is-active {
border-color: var(--tk-red);
background: #fffbf7;
box-shadow: 0 0 0 1px var(--tk-red);
}
.tk-sku-card.is-active::after {
content: "✔";
position: absolute;
bottom: -1px;
right: -1px;
background: var(--tk-red);
color: #fff;
font-size: 9px;
font-weight: bold;
width: 18px;
height: 18px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 6px 0 8px 0;
}
.tk-recommend-badge {
position: absolute;
top: -8px;
left: 12px;
background: var(--tk-red-gradient);
color: #fff;
font-size: 9px;
font-weight: 800;
padding: 2px 6px;
border-radius: 4px;
letter-spacing: 0.5px;
box-shadow: 0 2px 4px rgba(234, 88, 12, 0.2);
}
.tk-qty-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid var(--tk-border);
}
.tk-qty-control {
display: flex;
align-items: center;
border: 1px solid var(--tk-border);
border-radius: 6px;
}
.tk-qty-btn {
width: 36px !important;
height: 36px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
font-size: 20px !important;
color: var(--tk-text-main) !important;
background: #fffdfa !important;
}
.tk-qty-val {
width: 44px;
text-align: center;
font-size: 15px;
font-weight: 700;
border-left: 1px solid var(--tk-border);
border-right: 1px solid var(--tk-border);
color: var(--tk-text-main);
}
/* 4. TRUST & LOGISTICS */
.tk-trust-shield {
display: flex;
align-items: center;
gap: 8px;
background: #fffdfa;
border: 1px solid var(--tk-border);
border-radius: 8px;
padding: 10px 12px;
margin-bottom: 12px;
}
.tk-trust-text {
font-size: 12px;
color: var(--tk-text-main);
font-weight: 600;
}
.tk-trust-sub {
font-size: 11px;
color: var(--tk-text-sub);
margin-top: 2px;
}
.tk-logistic-row {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 13px;
color: var(--tk-text-main);
margin-bottom: 8px;
}
.tk-logistic-highlight {
color: var(--tk-green);
font-weight: 700;
}
/* 5. SVG PAY & SUPPORT */
.tk-pay-module {
border: 1px solid var(--tk-border);
border-radius: 8px;
overflow: hidden;
background: #fff;
margin-top: 6px;
}
.tk-pay-header {
background: #4a2711; /* 深褐色代替纯黑 */
color: #fff;
text-align: center;
padding: 12px;
font-size: 15px;
font-weight: 900;
letter-spacing: 1px;
text-transform: uppercase;
}
.tk-pay-body {
padding: 16px 10px;
}
.tk-pay-icons-row {
display: flex;
justify-content: center;
align-items: center;
gap: 6px;
flex-wrap: wrap;
margin-bottom: 20px;
}
.tk-pay-icon {
width: 48px;
height: 30px;
display: block;
border: 1px solid var(--tk-border);
border-radius: 4px;
background: #fff;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.tk-pay-icon-lg {
width: 75px;
height: 30px;
display: block;
border: 1px solid #c2b0a2;
border-radius: 4px;
background: linear-gradient(180deg, #fffdfa 0%, #f0e4dc 100%);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.tk-trust-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 12px;
}
.tk-trust-list li {
display: flex;
align-items: flex-start;
gap: 10px;
font-size: 14px;
font-weight: 700;
color: var(--tk-text-main);
}
.tk-trust-list svg {
width: 20px;
height: 20px;
color: var(--tk-red);
flex-shrink: 0;
}
/* 6. REVIEWS SECTION */
.tk-reviews-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 16px;
}
.tk-tag {
background: #fff7ed;
color: var(--tk-red);
font-size: 12px;
font-weight: 600;
padding: 6px 12px;
border-radius: 20px;
}
.tk-reviews-scroll-wrap {
position: relative;
height: 275px;
overflow: hidden;
-webkit-mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
}
.tk-reviews-track {
display: flex;
flex-direction: column;
gap: 14px;
animation: tkScrollUp 20s linear infinite;
}
.tk-reviews-scroll-wrap:hover .tk-reviews-track,
.tk-reviews-scroll-wrap:active .tk-reviews-track {
animation-play-state: paused;
}
@keyframes tkScrollUp {
0% { transform: translateY(0); }
100% { transform: translateY(-50%); }
}
.tk-review-card {
border-bottom: 1px solid var(--tk-border);
padding-bottom: 12px;
}
.tk-review-head {
display: flex;
justify-content: space-between;
margin-bottom: 4px;
align-items: center;
}
.tk-r-user {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
font-weight: 600;
color: var(--tk-text-main);
}
.tk-r-user img {
width: 30px;
height: 30px;
border-radius: 50%;
border: 1px solid var(--tk-border);
}
.tk-r-user-name {
font-family: monospace;
font-size: 14px;
letter-spacing: -0.5px;
color: var(--tk-text-main);
}
.tk-verified-icon {
width: 14px;
height: 14px;
color: var(--tk-green);
flex-shrink: 0;
}
.tk-r-text {
font-size: 14px;
line-height: 1.5;
color: var(--tk-text-main);
margin: 6px 0;
}
.tk-r-date {
font-size: 11px;
color: var(--tk-text-sub);
margin-top: 4px;
}
/* 7. PRODUCT DETAILS & FAKE TIKTOK UI */
.tk-aplus-wrap {
background: var(--tk-bg);
padding-bottom: 8px;
}
.tk-aplus-header {
background: #fff;
padding: 18px 14px;
text-align: center;
margin-bottom: 8px;
border-bottom: 1px solid var(--tk-border);
}
.tk-aplus-header h2 {
font-size: 18px;
font-weight: 900;
color: var(--tk-text-main);
letter-spacing: -0.5px;
}
.tk-fake-tiktok {
position: relative;
width: 100%;
aspect-ratio: 4 / 5;
background: #000;
overflow: hidden;
margin-bottom: 8px;
}
.tk-ft-video {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
opacity: 0.9;
}
.tk-video-sound-btn {
position: absolute;
top: 50%;
left: 50%;
z-index: 25;
transform: translate(-50%, -50%);
display: flex !important;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 42px;
padding: 10px 16px !important;
border: 1px solid rgba(255, 255, 255, 0.36) !important;
border-radius: 999px;
background: rgba(74, 39, 17, 0.75) !important; /* 使用暖褐半透,消除纯黑冷感 */
color: #fff !important;
font-size: 14px;
font-weight: 800;
line-height: 1;
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
backdrop-filter: blur(8px);
}
.tk-video-sound-btn::before {
content: "";
width: 0;
height: 0;
border-top: 7px solid transparent;
border-bottom: 7px solid transparent;
border-left: 11px solid #fff;
}
.tk-video-sound-btn.is-hidden {
display: none !important;
}
.tk-ft-ui-right {
position: absolute;
right: 12px;
bottom: 30px;
display: flex;
flex-direction: column;
gap: 16px;
z-index: 10;
align-items: center;
}
.tk-ft-icon {
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
color: #fff;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.tk-ft-icon svg {
width: 32px;
height: 32px;
fill: #fff;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}
.tk-ft-icon span {
font-size: 12px;
font-weight: 700;
font-family: -apple-system, sans-serif;
}
.tk-ft-ui-bottom {
position: absolute;
left: 12px;
bottom: 20px;
right: 60px;
color: #fff;
z-index: 10;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.tk-ft-user {
font-size: 15px;
font-weight: 700;
margin-bottom: 6px;
display: flex;
align-items: center;
gap: 6px;
}
.tk-ft-user::before {
content: '@';
font-size: 14px;
}
.tk-ft-desc {
font-size: 13px;
line-height: 1.4;
font-weight: 500;
}
.tk-ft-tags {
color: #facc15;
font-weight: 700;
margin-top: 4px;
}
.tk-aplus-block {
position: relative;
margin-bottom: 24px;
}
.tk-aplus-img {
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
display: block;
}
.tk-aplus-card {
background: #fff;
margin: -40px 16px 0;
position: relative;
z-index: 2;
padding: 16px;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(74, 39, 17, 0.06);
border-top: 4px solid var(--tk-red);
}
.tk-aplus-card h3 {
font-size: 16px;
font-weight: 800;
color: var(--tk-text-main);
margin: 0 0 8px 0;
line-height: 1.3;
}
.tk-aplus-card p {
font-size: 13.5px;
color: var(--tk-text-sub);
line-height: 1.6;
margin: 0;
}
/* 8. FAQ SECTION */
.tk-faq-wrap {
background: #fff;
padding: 18px 14px;
margin-bottom: 16px;
border-bottom: 1px solid var(--tk-border);
}
.tk-faq-title {
font-size: 16px;
font-weight: 800;
margin-bottom: 16px;
display: flex;
align-items: center;
gap: 6px;
color: var(--tk-text-main);
letter-spacing: -0.5px;
}
.tk-faq-item {
margin-bottom: 14px;
border-bottom: 1px solid var(--tk-border);
padding-bottom: 14px;
}
.tk-faq-item:last-child {
margin-bottom: 0;
border-bottom: none;
padding-bottom: 0;
}
.tk-faq-q {
font-size: 14px;
font-weight: 700;
color: var(--tk-text-main);
margin-bottom: 6px;
display: flex;
gap: 6px;
align-items: flex-start;
}
.tk-faq-q::before {
content: 'Q:';
color: var(--tk-red);
font-weight: 900;
}
.tk-faq-a {
font-size: 13px;
color: var(--tk-text-sub);
line-height: 1.5;
display: flex;
gap: 6px;
align-items: flex-start;
}
.tk-faq-a::before {
content: 'A:';
color: var(--tk-green);
font-weight: 900;
}
/* 9. BOTTOM BAR */
.tk-bottom-nav {
position: fixed;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 100%;
max-width: 600px;
height: 75px;
background: rgba(255, 253, 250, 0.95);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
display: flex;
align-items: center;
padding: 0 10px;
box-shadow: 0 -4px 20px rgba(74, 39, 17, 0.05);
z-index: 100;
border-top: 1px solid var(--tk-border);
}
.tk-nav-icons {
display: flex;
gap: 6px;
margin-right: 10px;
}
.tk-nav-icon {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
width: 46px !important;
color: var(--tk-text-sub) !important;
gap: 4px !important;
}
.tk-nav-icon svg {
width: 22px;
height: 22px;
fill: currentColor;
}
.tk-nav-icon span {
font-size: 10px;
font-weight: 600;
margin-top: 2px;
color: var(--tk-text-sub);
}
.tk-buy-btn {
flex: 1 !important;
height: 50px !important;
background: var(--tk-red-gradient) !important;
color: #fff !important;
border-radius: 25px !important;
font-size: 16px !important;
font-weight: 800 !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
gap: 6px !important;
box-shadow: 0 4px 12px rgba(234, 88, 12, 0.3) !important;
animation: tkPulse 2s infinite;
position: relative;
}
@keyframes tkPulse {
0% { transform: scale(1); }
50% { transform: scale(1.02); box-shadow: 0 6px 16px rgba(234, 88, 12, 0.4) !important; }
100% { transform: scale(1); }
}
.tk-buy-btn:active {
transform: scale(0.96) !important;
animation: none !important;
}
.tk-safe-spinner {
display: none !important;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 24px;
height: 24px;
border: 3px solid rgba(255, 255, 255, 0.3);
border-top-color: #fff;
border-radius: 50%;
animation: tkSpin 0.7s linear infinite;
}
.is-loading .tk-safe-spinner {
display: block !important;
}
.is-loading .tk-btn-text {
opacity: 0 !important;
visibility: hidden !important;
}
.is-loading {
pointer-events: none;
opacity: 0.95;
animation: none !important;
}
@keyframes tkSpin {
100% { transform: translate(-50%, -50%) rotate(360deg); }
}
/* 10. TOAST (明亮白底,配暖褐字与甘橙微光) */
.tk-toast {
position: fixed;
top: 16px;
left: 16px;
right: 16px;
max-width: 500px;
margin: 0 auto;
background: rgba(255, 253, 250, 0.98);
border: 1px solid var(--tk-border);
backdrop-filter: blur(8px);
border-radius: 12px;
padding: 10px 12px;
display: flex;
align-items: center;
gap: 10px;
z-index: 1001;
transform: translateY(-150%);
transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-shadow: 0 8px 30px rgba(74, 39, 17, 0.1);
}
.tk-toast.is-visible {
transform: translateY(0);
}
.tk-toast-img {
width: 36px;
height: 36px;
border-radius: 50%;
object-fit: cover;
border: 1.5px solid var(--tk-border);
}
.tk-toast-text,
.tk-toast-text span {
color: var(--tk-text-main) !important;
font-size: 13px;
line-height: 1.3;
}
.tk-toast-time {
color: var(--tk-green) !important;
font-size: 11px;
font-weight: 700;
margin-top: 2px;
}
</style>
<div class="tk-pro">
<!-- Toast Notification -->
<div class="tk-toast" id="js-tk-toast">
<img src="https://randomuser.me/api/portraits/women/68.jpg" class="tk-toast-img" id="js-toast-img">
<div>
<div class="tk-toast-text"><span id="js-toast-name" style="font-weight:700;">Jessica</span> just bought
<strong style="color:var(--tk-red) !important;" id="js-toast-item">9LB Box</strong></div>
<div class="tk-toast-time">✔ Verified Order · Just now</div>
</div>
</div>
<!-- 1. Hero & Flash Sale -->
<div class="tk-hero-wrap">
<div class="tk-hero-track" id="tk-slider">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/1_ecc0e3eb-8d1b-4e4e-8b59-f37e19f0bd01.png?v=1787298620" alt="Premium Alaskan King Crab Legs">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/2.png?v=1787298622" alt="Juicy King Crab Meat" loading="lazy">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/3.png?v=1787298615" alt="Delicious King Crab Dish" loading="lazy">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/4.png?v=1787298622" alt="Colossal Size King Crab" loading="lazy">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/5.png?v=1787298621" alt="Freshly Cooked King Crab" loading="lazy">
<img class="tk-hero-slide" src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/6fb53c51539b47559cf0d122a832cf63.png?v=1787298618" alt="High Quality Seafood" loading="lazy">
</div>
<div class="tk-hero-indicator" id="tk-slider-count">1/6</div>
<div class="tk-flash-banner">
<div class="tk-flash-left">
<svg width="20" height="20" viewBox="0 0 24 24" fill="white">
<path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" />
</svg>
FLASH SALE
</div>
<div class="tk-flash-right">
<div class="tk-flash-text">Ends In</div>
<div class="tk-timer-box">
<div class="tk-time-unit js-time-h">09</div><span>:</span>
<div class="tk-time-unit js-time-m">45</div><span>:</span>
<div class="tk-time-unit js-time-s">12</div>
</div>
</div>
</div>
</div>
<!-- 2. Price & Title Module -->
<div class="tk-section" style="padding-bottom: 8px;">
<div class="tk-price-area">
<div class="tk-current-price"><span>$</span><span class="js-sale-price">39.90</span></div>
<div class="tk-old-price js-compare-price">$119.00</div>
<div class="tk-discount-tag js-save-badge">-66% OFF</div>
</div>
<h1 class="tk-title">
<span class="tk-title-badge">🔥 TOP PICK</span>
Premium Wild-Caught Alaskan King Crab Legs (Pre-Cooked, Ships Frozen)
</h1>
<div class="tk-stats-row">
<div style="display:flex; gap:8px; align-items:center;">
<span class="tk-stars">★★★★★</span> <span style="font-weight:600; color:var(--tk-text-main);">4.9</span> (1.2K+ Reviews)
</div>
<div class="tk-sold-fire">
<svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2c0 0-4 4-4 9a4 4 0 0 0 8 0c0-5-4-9-4-9zm0 13a2 2 0 1 1 0-4 2 2 0 0 1 0 4z" />
</svg>
15K+ Sold
</div>
</div>
</div>
<!-- 2.5 TRENDING MEDIA BAR -->
<div class="tk-trending-bar">
<div class="tk-trending-title">🔥 Trending On</div>
<div class="tk-trending-logos">
<svg viewBox="0 0 448 512" fill="currentColor"><path d="M448 209.91a210.06 210.06 0 0 1-122.77-39.25V349.38A162.55 162.55 0 1 1 185 188.31v89.89a74.62 74.62 0 1 0 52.23 71.18V0l88 0a121.18 121.18 0 0 0 1.86 22.17h0A122.18 122.18 0 0 0 381 102.39a121.43 121.43 0 0 0 67 20.14Z" /></svg>
<svg viewBox="0 0 448 512" fill="currentColor"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" /></svg>
<svg viewBox="0 0 320 512" fill="currentColor"><path d="M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z" /></svg>
</div>
</div>
<!-- 3. SKU SELECTOR -->
<div class="tk-section" id="tk-buy-box">
<div class="tk-section-header">
<span>Specification</span>
<span style="color:var(--tk-text-sub); font-weight:500; font-size:13px;" class="js-unit-note">Selected: 3LB</span>
</div>
<div class="tk-stock-wrap">
<div class="tk-stock-text">
<span>🔥 High Demand! Almost Sold Out</span>
<span>14 Left</span>
</div>
<div class="tk-progress-bg">
<div class="tk-progress-bar"></div>
</div>
</div>
<div class="tk-sku-grid" id="js-sku-grid"></div>
<div class="tk-qty-row">
<span style="font-size:14px; font-weight:600; color:var(--tk-text-main);">Quantity</span>
<div class="tk-qty-control">
<button class="tk-qty-btn js-qty-minus" disabled>−</button>
<div class="tk-qty-val js-qty-value">1</div>
<button class="tk-qty-btn js-qty-plus">+</button>
</div>
</div>
</div>
<!-- 4. TRUST & LOGISTICS -->
<div class="tk-section" style="padding-bottom:10px;">
<div class="tk-trust-shield">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#15803d" stroke-width="2">
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
<polyline points="9 12 11 14 15 10" />
</svg>
<div>
<div class="tk-trust-text">Shop Purchase Protection</div>
<div class="tk-trust-sub">Secure Payment • 30-Day Guarantee</div>
</div>
</div>
<div class="tk-logistic-row">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="3" y="8" width="18" height="12" rx="2" ry="2" />
<line x1="3" y1="12" x2="21" y2="12" />
<line x1="8" y1="5" x2="8" y2="8" />
<line x1="16" y1="5" x2="16" y2="8" />
</svg>
<div>
<div style="font-weight:600;">Standard Shipping - <span class="tk-logistic-highlight js-shipping-fee">FREE</span></div>
<div style="font-size:12px; color:var(--tk-text-sub); margin-top:2px;">Ships frozen with dry ice. Delivery in 3-10 days.</div>
</div>
</div>
</div>
<!-- 5. SVG PAY & SUPPORT -->
<div class="tk-section" id="tk-support">
<div class="tk-pay-module">
<div class="tk-pay-header">SHOPPING WITH GUARANTEE</div>
<div class="tk-pay-body">
<div class="tk-pay-icons-row">
<svg class="tk-pay-icon" viewBox="0 0 50 32"><text x="25" y="22" font-family="Arial, sans-serif" font-style="italic" font-weight="900" font-size="18" fill="#1434CB" text-anchor="middle">VISA</text></svg>
<svg class="tk-pay-icon" viewBox="0 0 50 32"><circle cx="18" cy="16" r="10" fill="#EA001B" /><circle cx="32" cy="16" r="10" fill="#F7A000" opacity="0.8" /></svg>
<svg class="tk-pay-icon" viewBox="0 0 50 32"><circle cx="18" cy="13" r="10" fill="#EA001B" /><circle cx="32" cy="13" r="10" fill="#009CDE" opacity="0.8" /><text x="25" y="29" font-family="Arial, sans-serif" font-weight="bold" font-size="9" fill="#000" text-anchor="middle">maestro.</text></svg>
<svg class="tk-pay-icon" viewBox="0 0 50 32"><rect x="5" y="3" width="40" height="26" fill="none" stroke="#004B87" stroke-width="1.5" /><circle cx="25" cy="12" r="6" fill="none" stroke="#004B87" stroke-width="2" /><line x1="22" y1="8" x2="22" y2="16" stroke="#004B87" stroke-width="2" /><line x1="28" y1="8" x2="28" y2="16" stroke="#004B87" stroke-width="2" /><text x="25" y="23" font-family="Arial, sans-serif" font-size="5" fill="#004B87" text-anchor="middle">Diners Club</text><text x="25" y="28" font-family="Arial, sans-serif" font-size="3.5" fill="#004B87" text-anchor="middle">INTERNATIONAL</text></svg>
<svg class="tk-pay-icon" viewBox="0 0 50 32"><rect x="2" y="2" width="46" height="28" fill="#63A657" /><text x="25" y="20" font-family="Arial, sans-serif" font-weight="900" font-size="8" fill="#000" text-anchor="middle">DISC VER</text><circle cx="30" cy="17" r="3.5" fill="#F78200" /></svg>
<svg class="tk-pay-icon-lg" viewBox="0 0 80 32"><rect x="0" y="0" width="55" height="32" fill="transparent" /><rect x="55" y="0" width="25" height="32" fill="#b1d227" /><text x="5" y="12" font-family="Arial, sans-serif" font-weight="900" font-size="9" fill="#111">SSL</text><text x="5" y="20" font-family="Arial, sans-serif" font-weight="600" font-size="6.5" fill="#111">Secure</text><text x="5" y="27" font-family="Arial, sans-serif" font-weight="600" font-size="6.5" fill="#111">Connection</text><rect x="62" y="14" width="10" height="10" rx="1" fill="#FFC107" stroke="#d4a005" stroke-width="0.5" /><path d="M64 14 v-3 a3 3 0 0 1 6 0 v3" fill="none" stroke="#d4a005" stroke-width="1.5" /><path d="M65 18 l1.5 1.5 l3.5 -3.5" fill="none" stroke="#fff" stroke-width="1.5" /></svg>
</div>
<ul class="tk-trust-list">
<li><svg viewBox="0 0 24 24"><path fill="currentColor" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg> Ships within 24 hours of purchase</li>
<li><svg viewBox="0 0 24 24"><path fill="currentColor" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg> Worldwide shipping available</li>
<li><svg viewBox="0 0 24 24"><path fill="currentColor" d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg> 60 days free and fast returns</li>
</ul>
</div>
</div>
</div>
<!-- 6. CUSTOMER REVIEWS -->
<div class="tk-section" id="tk-reviews">
<div class="tk-section-header"><span>Customer Reviews (1,284)</span></div>
<div class="tk-reviews-tags">
<span class="tk-tag">Very fresh (342)</span>
<span class="tk-tag">Huge size (215)</span>
<span class="tk-tag">Fast shipping (188)</span>
<span class="tk-tag">Delicious (156)</span>
</div>
<div class="tk-reviews-scroll-wrap">
<div class="tk-reviews-track" id="js-review-track">
<div class="tk-review-card">
<div class="tk-review-head">
<div class="tk-r-user">
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="User">
<span class="tk-r-user-name">M***l</span>
<svg class="tk-verified-icon" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg>
</div>
<span class="tk-stars">★★★★★</span>
</div>
<p class="tk-r-text">Huge crab legs, exactly as advertised! Arrived rock-solid frozen with dry ice. Thawed them out and steamed them briefly. The meat was sweet and didn't stick to the shell at all.</p>
<div class="tk-r-date">Color: 9LB Box | 04/14/2026</div>
</div>
<div class="tk-review-card">
<div class="tk-review-head">
<div class="tk-r-user">
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User">
<span class="tk-r-user-name">S***h</span>
<svg class="tk-verified-icon" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg>
</div>
<span class="tk-stars">★★★★☆</span>
</div>
<p class="tk-r-text">Perfect for my husband's birthday dinner. One or two legs were snapped in transit but the meat inside was flawless so I really don't mind. Will be buying again.</p>
<div class="tk-r-date">Color: 15LB Box | 04/11/2026</div>
</div>
<div class="tk-review-card">
<div class="tk-review-head">
<div class="tk-r-user">
<img src="https://randomuser.me/api/portraits/men/67.jpg" alt="User">
<span class="tk-r-user-name">D***d</span>
<svg class="tk-verified-icon" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg>
</div>
<span class="tk-stars">★★★★★</span>
</div>
<p class="tk-r-text">Better than what I can get at my local grocery store, and much cheaper too. Highly recommend if you love good seafood.</p>
<div class="tk-r-date">Color: 9LB Box | 04/09/2026</div>
</div>
<div class="tk-review-card">
<div class="tk-review-head">
<div class="tk-r-user">
<img src="https://randomuser.me/api/portraits/women/12.jpg" alt="User">
<span class="tk-r-user-name">E***y</span>
<svg class="tk-verified-icon" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" /></svg>
</div>
<span class="tk-stars">★★★★★</span>
</div>
<p class="tk-r-text">Got the 3LB just to try it out. So easy to prepare since they are already cooked. Squeezed some lemon and dipped in melted butter... absolutely delicious.</p>
<div class="tk-r-date">Color: 3LB Box | 04/05/2026</div>
</div>
</div>
</div>
</div>
<!-- 7. PRODUCT DETAILS & FAKE TIKTOK UI -->
<div class="tk-aplus-wrap">
<div class="tk-aplus-header">
<h2>Why Choose Our King Crab?</h2>
</div>
<div class="tk-fake-tiktok" id="tk-video">
<video src="https://cdn.shopify.com/videos/c/o/v/fd4bd73055ef4e5781b6a6ee7a74aa40.mp4" class="tk-ft-video" autoplay loop muted playsinline
poster="https://cdn.shopify.com/s/files/1/0822/3490/0695/files/generated-cd594ec3-597e-4810-8117-1b23767f9a9e.jpg?v=1779774981"></video>
<button class="tk-video-sound-btn" type="button" data-video-sound>Tap for Sound</button>
<div class="tk-ft-ui-right">
<div class="tk-ft-icon">
<img src="https://randomuser.me/api/portraits/women/65.jpg" style="width:40px; height:40px; border-radius:50%; border:2px solid #fff; box-shadow:0 2px 4px rgba(0,0,0,0.3);">
</div>
<div class="tk-ft-icon">
<svg viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" /></svg>
<span>124.6K</span>
</div>
<div class="tk-ft-icon">
<svg viewBox="0 0 24 24"><path d="M21.99 10.98c0 5.52-4.5 10-10.02 10-1.63 0-3.17-.4-4.55-1.11L3 21l1.15-4.32a9.96 9.96 0 0 1-1.16-4.7C2.99 5.46 7.49.98 13.01.98c5.52 0 8.98 4.48 8.98 10z" /></svg>
<span>1,204</span>
</div>
<div class="tk-ft-icon">
<svg viewBox="0 0 24 24" style="fill:none; stroke:#fff; stroke-width:2; stroke-linejoin:round;"><path d="M7 10v4h2v5h6v-5h2l4-5H7z" /></svg>
<span>Share</span>
</div>
</div>
<div class="tk-ft-ui-bottom">
<div class="tk-ft-user">OceanPrime_Seafood</div>
<div class="tk-ft-desc">The biggest King Crab legs I've ever seen! Literal butter bombs 🤤🧈
<span class="tk-ft-tags">#kingcrab #seafood #foodie</span></div>
</div>
</div>
<div class="tk-aplus-block">
<img src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/2.png?v=1787298622" class="tk-aplus-img" alt="Steaming Crab" loading="lazy">
<div class="tk-aplus-card">
<h3>🤤 Irresistibly Sweet & Juicy</h3>
<p>Infused with natural ocean flavors. Every colossal leg is packed with tender, snow-white meat that pulls out perfectly intact.</p>
</div>
</div>
<div class="tk-aplus-block">
<img src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/3.png?v=1787298615" class="tk-aplus-img" alt="Crab Meat Dip" loading="lazy">
<div class="tk-aplus-card">
<h3>🧈 The Perfect Butter Bite</h3>
<p>Forget the messy cracking! Our premium king crab legs are pre-scored or easy to snap, so you get straight to the massive chunks of meat.</p>
</div>
</div>
<div class="tk-aplus-block" style="margin-bottom:0;">
<img src="https://cdn.shopify.com/s/files/1/0756/4728/7435/files/5.png?v=1787298621" class="tk-aplus-img" alt="Lemon Closeup" loading="lazy">
<div class="tk-aplus-card">
<h3>👨🍳 Pre-Cooked & Ready to Serve</h3>
<p>We’ve done the hard work. Fully cooked at sea—simply thaw overnight, gently warm for 5 minutes, squeeze some fresh lemon, and enjoy!</p>
</div>
</div>
</div>
<!-- 8. FAQ SECTION -->
<div class="tk-section tk-faq-wrap" id="tk-faq">
<div class="tk-faq-title">
<svg width="22" height="22" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z" />
</svg>
Frequently Asked Questions
</div>
<div class="tk-faq-item">
<div class="tk-faq-q">How is it shipped to prevent thawing?</div>
<div class="tk-faq-a">We pack all orders in heavy-duty styrofoam coolers with plenty of dry ice. They will arrive frozen solid at your doorstep.</div>
</div>
<div class="tk-faq-item">
<div class="tk-faq-q">Are the crab legs raw or cooked?</div>
<div class="tk-faq-a">They are pre-cooked on the boat immediately after catching to lock in peak sweetness. Just thaw them, warm them up, and enjoy!</div>
</div>
<div class="tk-faq-item">
<div class="tk-faq-q">How long do they last in the freezer?</div>
<div class="tk-faq-a">You can safely store them in a standard home freezer for up to 4 months without losing any premium quality or taste.</div>
</div>
</div>
<!-- 9. Sticky Bottom Navigation -->
<div class="tk-bottom-nav">
<div class="tk-nav-icons">
<button class="tk-nav-icon" onclick="document.getElementById('tk-faq').scrollIntoView({behavior: 'smooth'})">
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 16h-2v-2h2v2zm0-4h-2c0-2.25 3-2.5 3-5 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 2.5-3 2.75-3 5z"></path></svg>
<span>FAQ</span>
</button>
<button class="tk-nav-icon" onclick="document.getElementById('tk-video').scrollIntoView({behavior: 'smooth'})">
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M19 3H5c-1.11 0-2 .89-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.11-.9-2-2-2zm-9 13V8l5 4-5 4z"></path></svg>
<span>Video</span>
</button>
</div>
<button class="tk-buy-btn js-main-buy">
<div class="tk-safe-spinner"></div>
<span class="tk-btn-text">Buy Now <span class="js-btn-price"></span></span>
</button>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const config = window.EC_KING_CRAB_CONFIG;
let currentPack = config.DEFAULT_PACKAGE;
let qty = 1;
const maxQty = 2;
const slider = document.getElementById('tk-slider');
const indicator = document.getElementById('tk-slider-count');
if (slider && indicator) {
const slides = slider.querySelectorAll('.tk-hero-slide');
slider.addEventListener('scroll', () => {
const index = Math.round(slider.scrollLeft / slider.clientWidth) + 1;
indicator.textContent = `${index}/${slides.length}`;
});
}
const reviewTrack = document.getElementById('js-review-track');
if (reviewTrack) { reviewTrack.innerHTML += reviewTrack.innerHTML; }
const kingCrabVideo = document.querySelector('.tk-ft-video');
const soundBtn = document.querySelector('[data-video-sound]');
function enableVideoSound() {
if (!kingCrabVideo) return;
kingCrabVideo.muted = false;
kingCrabVideo.removeAttribute('muted');
kingCrabVideo.volume = 1;
const playPromise = kingCrabVideo.play();
if (playPromise && typeof playPromise.then === 'function') {
playPromise.then(() => {
if (soundBtn) soundBtn.classList.add('is-hidden');
}).catch(() => {
if (soundBtn) soundBtn.classList.remove('is-hidden');
});
} else if (soundBtn) {
soundBtn.classList.add('is-hidden');
}
}
if (soundBtn) {
soundBtn.addEventListener('click', function(event) {
event.preventDefault();
event.stopPropagation();
enableVideoSound();
});
}
if (kingCrabVideo) {
kingCrabVideo.addEventListener('click', enableVideoSound);
}
const skuGrid = document.getElementById('js-sku-grid');
Object.keys(config.PACKAGES).forEach((key) => {
const pack = config.PACKAGES[key];
const isPopular = key === 'pack2';
const activeClass = key === currentPack ? 'is-active' : '';
const html = `
<div class="tk-sku-card ${activeClass}" data-pack="${key}">
${isPopular ? '<div class="tk-recommend-badge">RECOMMENDED</div>' : ''}
<img src="${pack.image}" class="tk-sku-img" alt="${pack.title}" loading="lazy">
<div class="tk-sku-info">
<div class="tk-sku-detail-left">
<div class="tk-sku-title">${pack.title}</div>
<div class="tk-sku-subtext">${pack.weight}LB Pack · Frozen Fresh</div>
</div>
<div class="tk-sku-detail-right">
<div class="tk-sku-price">$${pack.price.toFixed(2)}</div>
<div class="${pack.shipping > 0 ? 'tk-shipping-prominent' : 'tk-sku-shipping'}">
${pack.shipping > 0 ? `+ $${pack.shipping.toFixed(2)} shipping` : 'FREE Shipping'}
</div>
</div>
</div>
</div>
`;
skuGrid.insertAdjacentHTML('beforeend', html);
});
const elSalePrice = document.querySelector('.js-sale-price');
const elComparePrice = document.querySelector('.js-compare-price');
const elSaveBadge = document.querySelector('.js-save-badge');
const elUnitNote = document.querySelector('.js-unit-note');
const elQtyValue = document.querySelector('.js-qty-value');
const elBtnPrice = document.querySelector('.js-btn-price');
const elShippingFee = document.querySelector('.js-shipping-fee');
const btnMinus = document.querySelector('.js-qty-minus');
const btnPlus = document.querySelector('.js-qty-plus');
function updatePricing() {
const data = config.PACKAGES[currentPack];
const shipping = Number(data.shipping || 0) * qty;
const totalSaleNumber = (data.price * qty);
const totalSale = totalSaleNumber.toFixed(2);
const totalCompare = (data.comparePrice * qty).toFixed(2);
const percentOff = Math.round(((totalCompare - totalSale) / totalCompare) * 100);
elSalePrice.textContent = (data.price * qty).toFixed(2);
elComparePrice.textContent = `$${totalCompare}`;
elSaveBadge.textContent = `-${percentOff}% OFF`;
elUnitNote.textContent = `Selected: ${data.weight * qty}LB`;
elQtyValue.textContent = qty;
elBtnPrice.textContent = `- $${totalSale}`;
if (elShippingFee) {
elShippingFee.textContent = shipping > 0 ? `$${shipping.toFixed(2)}` : 'FREE';
}
btnMinus.disabled = (qty <= 1);
btnPlus.disabled = (qty >= maxQty);
}
const MARKETING_STORAGE_KEY = 'ec_king_crab_marketing_params';
const TIKTOK_PARAM_NAMES = ['ttclid', 'ttp', '_ttp', 'pixel', 'pixel_id'];
function isMarketingParam(name) {
const lowerName = String(name || '').toLowerCase();
return lowerName.indexOf('utm_') === 0 || TIKTOK_PARAM_NAMES.indexOf(lowerName) !== -1;
}
function readMarketingParamsFromUrl() {
const urlParams = new URLSearchParams(window.location.search);
const marketingParams = new URLSearchParams();
urlParams.forEach((value, key) => {
if (value && isMarketingParam(key)) {
marketingParams.set(key, value);
}
});
return marketingParams;
}
function readStoredMarketingParams() {
try {
return new URLSearchParams(
sessionStorage.getItem(MARKETING_STORAGE_KEY) ||
localStorage.getItem(MARKETING_STORAGE_KEY) ||
''
);
} catch (error) {
return new URLSearchParams();
}
}
function storeMarketingParams(params) {
const serialized = params.toString();
if (!serialized) return;
try {
sessionStorage.setItem(MARKETING_STORAGE_KEY, serialized);
localStorage.setItem(MARKETING_STORAGE_KEY, serialized);
} catch (error) {}
}
function getMarketingParams() {
const storedParams = readStoredMarketingParams();
const currentParams = readMarketingParamsFromUrl();
currentParams.forEach((value, key) => {
storedParams.set(key, value);
});
storeMarketingParams(storedParams);
return storedParams;
}
function appendMarketingParamsToCheckoutLink(link) {
const checkoutUrl = new URL(link, window.location.origin);
const marketingParams = getMarketingParams();
marketingParams.forEach((value, key) => {
if (!value) return;
checkoutUrl.searchParams.set(key, value);
checkoutUrl.searchParams.set(`attributes[${key}]`, value);
});
return checkoutUrl.toString();
}
storeMarketingParams(readMarketingParamsFromUrl());
function triggerCheckout() {
const buyBtn = document.querySelector('.js-main-buy');
buyBtn.classList.add('is-loading');
document.body.style.pointerEvents = 'none';
const baseLink = config.LINKS[currentPack]['qty' + qty] || config.LINKS[currentPack].qty1;
const finalLink = appendMarketingParamsToCheckoutLink(baseLink);
setTimeout(() => {
window.top.location.href = finalLink;
}, 350);
}
const skuCards = document.querySelectorAll('.tk-sku-card');
skuCards.forEach(card => {
card.addEventListener('click', () => {
skuCards.forEach(c => c.classList.remove('is-active'));
card.classList.add('is-active');
currentPack = card.dataset.pack;
updatePricing();
});
});
btnMinus.addEventListener('click', () => { if (qty > 1) { qty--; updatePricing(); } });
btnPlus.addEventListener('click', () => { if (qty < maxQty) { qty++; updatePricing(); } });
updatePricing();
const elH = document.querySelector('.js-time-h');
const elM = document.querySelector('.js-time-m');
const elS = document.querySelector('.js-time-s');
let time = 9 * 3600 + 45 * 60 + 12;
setInterval(() => {
if (time <= 0) time = 9 * 3600 + 45 * 60 + 12;
time--;
const h = Math.floor(time / 3600);
const m = Math.floor((time % 3600) / 60);
const s = time % 60;
elH.textContent = h < 10 ? '0' + h : h;
elM.textContent = m < 10 ? '0' + m : m;
elS.textContent = s < 10 ? '0' + s : s;
}, 1000);
const toast = document.getElementById('js-tk-toast');
const toastImg = document.getElementById('js-toast-img');
const toastName = document.getElementById('js-toast-name');
const toastItem = document.getElementById('js-toast-item');
const buyers =[
{ n: "Jessica T.", g: "women", id: 31, item: "9LB Box" },
{ n: "Robert K.", g: "men", id: 11, item: "15LB Box" },
{ n: "Olivia P.", g: "women", id: 5, item: "3LB Box" },
{ n: "Daniel M.", g: "men", id: 45, item: "9LB Box" }
];
function showToast() {
const b = buyers[Math.floor(Math.random() * buyers.length)];
toastImg.src = `https://randomuser.me/api/portraits/${b.g}/${b.id}.jpg`;
toastName.textContent = b.n;
toastItem.textContent = b.item;
toast.classList.add('is-visible');
setTimeout(() => { toast.classList.remove('is-visible'); }, 4000);
const nextTime = Math.floor(Math.random() * 6000) + 8000;
setTimeout(showToast, nextTime);
}
setTimeout(showToast, 3000);
const buyBtn = document.querySelector('.js-main-buy');
buyBtn.addEventListener('click', (e) => {
e.preventDefault();
triggerCheckout();
});
window.addEventListener('pageshow', (e) => {
if (e.persisted) {
document.querySelector('.js-main-buy').classList.remove('is-loading');
document.body.style.pointerEvents = 'auto';
}
});
});
</script>