<p> </p>
<p><link href="https://fonts.googleapis.com" rel="preconnect" /> <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="" /> <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&family=DM+Sans:wght@300;400;500&display=swap" rel="stylesheet" /></p>
<style>
:root {
--bg: #080706;
--surface: #0f0e0d;
--border: #1e1c1a;
--accent: #d4b896;
--accent-gold: #c9a96e;
--star: #d4a843;
--text-primary: #f0ece4;
--text-body: rgba(240,236,228,0.7);
--text-muted: #7a7470;
--font-display: 'Cormorant Garamond', serif;
--font-body: 'DM Sans', sans-serif;
/* light zone */
--lbg: #faf9f7;
--lbg2: #f2f0ec;
--lborder: #e4e0da;
--ltext: #1a1917;
--lmuted: #7a7672;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { background: var(--bg); scroll-behavior: smooth; }
body { font-family: var(--font-body); font-weight: 300; color: var(--ltext); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; }
/* ═══════════════════════════════════════
NAV (dark)
═══════════════════════════════════════ */
.site-header {
position: sticky; top: 0; z-index: 200;
padding: 1.1rem 3rem;
background: rgba(8,7,6,0.97);
border-bottom: 1px solid var(--border);
backdrop-filter: blur(12px);
}
nav { display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: var(--font-display); font-size: 1rem; font-weight: 600; letter-spacing: 0.45em; color: #fff; }
.nav-links { display: flex; list-style: none; gap: 2rem; align-items: center; }
.nav-links a { font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: #fff; opacity: 0.45; transition: opacity 0.2s; }
.nav-links a:hover, .nav-links a.active { opacity: 1; }
.nav-cta { opacity: 1 !important; border: 1px solid rgba(255,255,255,0.35); padding: 0.38rem 0.95rem; border-radius: 2px; }
/* ═══════════════════════════════════════
BREADCRUMB
═══════════════════════════════════════ */
.breadcrumb {
background: var(--lbg); padding: 0.9rem 4vw;
border-bottom: 1px solid var(--lborder);
font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase;
color: var(--lmuted); display: flex; gap: 0.6rem; align-items: center;
}
.breadcrumb a { color: var(--lmuted); transition: color 0.2s; }
.breadcrumb a:hover { color: var(--ltext); }
.breadcrumb-sep { opacity: 0.4; }
/* ═══════════════════════════════════════
PRODUCT SECTION (light)
═══════════════════════════════════════ */
.product-section {
background: var(--lbg);
padding: 3rem 4vw 5rem;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4vw;
max-width: 1440px;
margin: 0 auto;
}
/* ─── GALLERY ─── */
.gallery-col { position: sticky; top: 80px; align-self: start; }
.gallery-main {
width: 100%; aspect-ratio: 1 / 1;
overflow: hidden; border-radius: 4px;
background: var(--lbg2);
cursor: zoom-in;
}
.gallery-main img {
width: 100%; height: 100%;
object-fit: cover;
transition: transform 0.4s ease;
}
.gallery-main:hover img { transform: scale(1.03); }
.gallery-thumbs {
display: grid;
grid-template-columns: repeat(7, 1fr);
gap: 8px; margin-top: 10px;
}
.gallery-thumb {
aspect-ratio: 1 / 1; overflow: hidden; border-radius: 3px;
border: 2px solid transparent; cursor: pointer;
background: var(--lbg2); transition: border-color 0.2s;
}
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumb.active { border-color: var(--ltext); }
.gallery-thumb:hover:not(.active) { border-color: var(--lborder); }
/* ─── PURCHASE PANEL ─── */
.purchase-col { padding-top: 0.4rem; }
.prod-eyebrow {
font-size: 0.6rem; letter-spacing: 0.28em; text-transform: uppercase;
color: var(--lmuted); margin-bottom: 0.7rem;
}
.prod-title {
font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem);
font-weight: 700; line-height: 0.95; color: var(--ltext); margin-bottom: 0.5rem;
}
.prod-subtitle {
font-size: 0.8rem; color: var(--lmuted); letter-spacing: 0.05em; margin-bottom: 1rem;
}
.prod-rating {
display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.4rem;
}
.prod-stars { display: flex; gap: 2px; }
.prod-stars span { color: var(--star); font-size: 0.9rem; }
.prod-rating-num { font-size: 0.82rem; font-weight: 500; color: var(--ltext); }
.prod-rating-link { font-size: 0.75rem; color: var(--lmuted); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.prod-rating-link:hover { color: var(--ltext); }
.prod-divider { height: 1px; background: var(--lborder); margin: 1.4rem 0; }
/* ─── PRICE DISPLAY ─── */
.price-display { margin-bottom: 1.4rem; }
.price-main {
font-family: var(--font-display); font-size: 2.2rem;
font-weight: 700; color: var(--ltext); line-height: 1;
}
.price-main .price-orig {
font-size: 1.4rem; color: var(--lmuted); text-decoration: line-through;
font-weight: 400; margin-right: 0.4rem;
}
.price-sub-line {
font-size: 0.72rem; color: var(--lmuted); margin-top: 0.3rem; letter-spacing: 0.04em;
}
.price-save-badge {
display: inline-block; background: #e8f5e9; color: #2e7d32;
font-size: 0.6rem; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase;
padding: 0.22rem 0.55rem; border-radius: 20px; margin-left: 0.5rem;
}
/* ─── PURCHASE TYPE TOGGLE ─── */
.section-label-sm {
font-size: 0.58rem; letter-spacing: 0.24em; text-transform: uppercase;
color: var(--lmuted); margin-bottom: 0.65rem; display: block;
}
.purchase-toggle {
display: grid; grid-template-columns: 1fr 1fr;
border: 1px solid var(--lborder); border-radius: 3px; overflow: hidden;
margin-bottom: 1.4rem;
}
.toggle-opt {
padding: 0.9rem 1rem; text-align: center; cursor: pointer;
font-size: 0.75rem; font-weight: 400; color: var(--lmuted);
background: var(--lbg); transition: all 0.2s; border: none;
font-family: var(--font-body); line-height: 1.3;
}
.toggle-opt strong { display: block; font-size: 0.78rem; font-weight: 500; color: var(--ltext); }
.toggle-opt small { font-size: 0.65rem; color: var(--lmuted); }
.toggle-opt.active {
background: var(--ltext); color: #fff;
}
.toggle-opt.active strong { color: #fff; }
.toggle-opt.active small { color: rgba(255,255,255,0.65); }
/* ─── PACK SELECTOR ─── */
.pack-options { display: flex; flex-direction: column; gap: 8px; margin-bottom: 1.4rem; }
.pack-opt {
border: 1.5px solid var(--lborder); border-radius: 4px;
padding: 0.9rem 1.1rem; cursor: pointer;
background: var(--lbg); transition: all 0.18s;
display: flex; align-items: center; gap: 1rem;
}
.pack-opt:hover { border-color: #aaa; }
.pack-opt.active {
border-color: var(--ltext);
background: var(--lbg2);
}
.pack-radio {
width: 17px; height: 17px; border-radius: 50%;
border: 1.5px solid var(--lborder); flex-shrink: 0;
display: flex; align-items: center; justify-content: center;
transition: all 0.15s;
}
.pack-opt.active .pack-radio {
border-color: var(--ltext); background: var(--ltext);
}
.pack-radio::after {
content: ''; width: 6px; height: 6px; border-radius: 50%;
background: #fff; opacity: 0;
}
.pack-opt.active .pack-radio::after { opacity: 1; }
.pack-info { flex: 1; }
.pack-name { font-size: 0.84rem; font-weight: 500; color: var(--ltext); }
.pack-per-unit { font-size: 0.7rem; color: var(--lmuted); margin-top: 1px; }
.pack-price-col { text-align: right; }
.pack-total { font-size: 0.92rem; font-weight: 500; color: var(--ltext); }
.pack-total-sub { font-size: 0.65rem; color: var(--lmuted); }
.pack-badge {
font-size: 0.58rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
padding: 0.18rem 0.5rem; border-radius: 20px;
background: #fef3c7; color: #92400e;
}
/* 5+ qty controls */
.qty-row {
display: none; align-items: center; gap: 0; margin-top: 0.8rem;
border-top: 1px solid var(--lborder); padding-top: 0.8rem;
}
.pack-opt.active .qty-row { display: flex; }
.qty-label { font-size: 0.68rem; color: var(--lmuted); margin-right: 0.8rem; }
.qty-btn {
width: 32px; height: 32px; border: 1px solid var(--lborder);
background: var(--lbg); color: var(--ltext); font-size: 1rem;
cursor: pointer; display: flex; align-items: center; justify-content: center;
font-family: var(--font-body); transition: background 0.15s;
}
.qty-btn:first-of-type { border-radius: 3px 0 0 3px; }
.qty-btn:last-of-type { border-radius: 0 3px 3px 0; }
.qty-btn:hover { background: var(--lborder); }
.qty-num {
width: 48px; height: 32px; border: 1px solid var(--lborder);
border-left: none; border-right: none;
text-align: center; font-size: 0.88rem; font-family: var(--font-body);
color: var(--ltext); background: var(--lbg); outline: none;
-moz-appearance: textfield;
}
.qty-num::-webkit-inner-spin-button, .qty-num::-webkit-outer-spin-button { -webkit-appearance: none; }
.qty-total-line { margin-left: auto; font-size: 0.78rem; font-weight: 500; color: var(--ltext); }
/* ─── FORMULA ─── */
.formula-opt {
border: 1.5px solid var(--ltext); border-radius: 4px;
padding: 0.9rem 1.1rem; margin-bottom: 1.4rem;
display: flex; align-items: flex-start; gap: 0.9rem;
background: var(--lbg2);
}
.formula-radio {
width: 17px; height: 17px; border-radius: 50%;
border: 1.5px solid var(--ltext); background: var(--ltext);
flex-shrink: 0; margin-top: 2px;
display: flex; align-items: center; justify-content: center;
}
.formula-radio::after {
content: ''; width: 6px; height: 6px; border-radius: 50%; background: #fff;
}
.formula-info { flex: 1; }
.formula-name { font-size: 0.88rem; font-weight: 500; color: var(--ltext); margin-bottom: 0.3rem; }
.formula-desc { font-size: 0.76rem; color: var(--lmuted); line-height: 1.6; }
/* ─── ADD TO CART ─── */
.add-to-cart {
width: 100%; padding: 1.1rem 2rem;
background: var(--ltext); color: #fff;
font-family: var(--font-body); font-size: 0.82rem; font-weight: 500;
letter-spacing: 0.18em; text-transform: uppercase;
border: none; border-radius: 3px; cursor: pointer;
transition: background 0.2s, transform 0.15s;
margin-bottom: 0.8rem;
}
.add-to-cart:hover { background: #333; transform: translateY(-1px); }
.add-to-cart:active { transform: translateY(0); }
.shop-note {
font-size: 0.68rem; color: var(--lmuted); text-align: center;
margin-bottom: 1.4rem; letter-spacing: 0.04em;
}
/* ─── TRUST BADGES ─── */
.trust-badges {
display: grid; grid-template-columns: 1fr 1fr;
gap: 0.7rem; margin-bottom: 1.4rem;
}
.trust-item {
display: flex; align-items: flex-start; gap: 0.6rem;
font-size: 0.7rem; color: var(--lmuted); line-height: 1.45;
}
.trust-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
/* ─── SPEC TABLE ─── */
.spec-table { margin-top: 0.4rem; border-top: 1px solid var(--lborder); }
.spec-row {
display: flex; justify-content: space-between; align-items: center;
padding: 0.6rem 0; border-bottom: 1px solid var(--lborder);
font-size: 0.75rem;
}
.spec-key { color: var(--lmuted); letter-spacing: 0.04em; }
.spec-val { color: var(--ltext); font-weight: 400; }
/* ═══════════════════════════════════════
CERTIFICATIONS SECTION
═══════════════════════════════════════ */
.cert-section {
background: var(--bg);
padding: 5rem 4vw;
text-align: center;
border-top: 1px solid var(--border);
}
.cert-eyebrow {
font-size: 0.58rem; letter-spacing: 0.3em; text-transform: uppercase;
color: var(--text-muted); margin-bottom: 0.6rem;
}
.cert-heading {
font-family: var(--font-display); font-size: clamp(2rem, 3.5vw, 3rem);
font-weight: 700; color: var(--text-primary); line-height: 0.95;
margin-bottom: 0.5rem;
}
.cert-heading em { font-style: italic; font-weight: 300; color: var(--accent); }
.cert-subtext {
font-size: 0.82rem; color: var(--text-body); max-width: 55ch;
margin: 0 auto 3rem; line-height: 1.7;
}
.cert-grid {
display: flex; justify-content: center; align-items: stretch;
gap: 2px; flex-wrap: wrap;
max-width: 900px; margin: 0 auto;
}
.cert-card {
flex: 1; min-width: 220px; max-width: 300px;
background: var(--surface); border: 1px solid var(--border);
padding: 2.5rem 2rem 2rem;
display: flex; flex-direction: column; align-items: center; gap: 1.4rem;
transition: border-color 0.2s;
}
.cert-card:hover { border-color: rgba(212,184,150,0.4); }
.cert-img-wrap {
width: 140px; height: 140px;
display: flex; align-items: center; justify-content: center;
background: #fff; border-radius: 4px; padding: 1rem;
flex-shrink: 0;
}
.cert-img-wrap img { width: 100%; height: 100%; object-fit: contain; }
.cert-info { text-align: center; }
.cert-name {
font-size: 0.82rem; font-weight: 500; letter-spacing: 0.12em;
text-transform: uppercase; color: var(--text-primary); margin-bottom: 0.4rem;
}
.cert-desc { font-size: 0.73rem; color: var(--text-body); line-height: 1.6; }
/* ═══════════════════════════════════════
PRODUCT DESCRIPTION IMAGES (full-width)
═══════════════════════════════════════ */
.desc-section {
background: #fff;
}
.desc-section-header {
max-width: 900px; margin: 0 auto;
padding: 5rem 4vw 2.5rem;
text-align: center;
}
.desc-section-header h2 {
font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3.5rem);
font-weight: 700; color: var(--ltext); line-height: 0.95; margin-bottom: 0.8rem;
}
.desc-section-header p {
font-size: 0.92rem; color: var(--lmuted); line-height: 1.7; max-width: 60ch; margin: 0 auto;
}
.desc-img-block {
width: 100vw;
position: relative;
left: 50%;
transform: translateX(-50%);
background: #fff;
}
.desc-img-block img {
width: 100%; height: auto; display: block;
}
.desc-img-block + .desc-img-block { margin-top: 0; }
.desc-spacer { height: 4rem; background: #fff; }
/* ═══════════════════════════════════════
REVIEWS (dark)
═══════════════════════════════════════ */
.reviews-section {
background: #080706;
padding: 5rem 4vw 6rem;
}
.reviews-inner { max-width: 1000px; margin: 0 auto; }
.rev-header {
display: flex; align-items: flex-end; justify-content: space-between;
margin-bottom: 2.5rem; padding-bottom: 1.5rem;
border-bottom: 1px solid var(--border);
}
.rev-header-left h2 {
font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3.5rem);
font-weight: 700; color: var(--text-primary); line-height: 0.95;
}
.rev-header-left h2 em { font-style: italic; color: var(--accent); font-weight: 300; }
.rev-header-left p { font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 0.5rem; }
.rev-summary { display: flex; align-items: center; gap: 1rem; margin-top: 0.6rem; }
.rev-big-num { font-family: var(--font-display); font-size: 3rem; font-weight: 700; color: var(--accent); line-height: 1; }
.rev-stars-row { display: flex; gap: 3px; }
.rev-stars-row span { color: var(--star); font-size: 0.9rem; }
.rev-count { font-size: 0.65rem; color: var(--text-muted); letter-spacing: 0.12em; text-transform: uppercase; }
.rev-see-all {
font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase;
color: var(--accent); border: 1px solid rgba(212,184,150,0.35);
padding: 0.6rem 1.2rem; border-radius: 2px; transition: all 0.2s;
white-space: nowrap;
}
.rev-see-all:hover { border-color: var(--accent); background: rgba(212,184,150,0.06); }
/* mini review cards */
.rev-grid {
display: grid; grid-template-columns: 1fr 1fr;
gap: 1.5px; background: var(--border);
border: 1px solid var(--border);
}
.rev-card {
background: var(--surface); padding: 1.6rem 1.8rem;
}
.rev-card-meta { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.6rem; }
.rc-stars { display: flex; gap: 2px; }
.rc-stars span { color: var(--star); font-size: 0.78rem; }
.rc-stars .e { color: #333; }
.rc-name { font-size: 0.78rem; font-weight: 400; color: var(--text-primary); }
.rc-date { font-size: 0.65rem; color: var(--text-muted); margin-left: auto; }
.rc-title { font-size: 0.86rem; font-weight: 500; color: var(--text-primary); margin-bottom: 0.4rem; }
.rc-body { font-size: 0.82rem; line-height: 1.72; color: var(--text-body); }
/* ═══════════════════════════════════════
FOOTER (dark)
═══════════════════════════════════════ */
.site-footer {
background: #080706;
border-top: 1px solid var(--border);
padding: 2.5rem 3rem;
display: flex; justify-content: space-between; align-items: center;
}
.footer-brand { font-family: var(--font-display); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.4em; color: var(--text-primary); }
.footer-links { display: flex; gap: 2rem; }
.footer-links a { font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); transition: color 0.2s; }
.footer-links a:hover { color: var(--accent); }
/* ═══════════════════════════════════════
RESPONSIVE
═══════════════════════════════════════ */
@media (max-width: 900px) {
.product-section { grid-template-columns: 1fr; }
.gallery-col { position: static; }
.rev-grid { grid-template-columns: 1fr; }
.trust-badges { grid-template-columns: 1fr; }
.rev-header { flex-direction: column; align-items: flex-start; gap: 1rem; }
}
@media (max-width: 640px) {
.site-header { padding: 1rem 1.2rem; }
.nav-links li:nth-child(1), .nav-links li:nth-child(2) { display: none; }
.product-section { padding: 1.5rem 1.2rem 3rem; }
.gallery-thumbs { grid-template-columns: repeat(7, 1fr); gap: 5px; }
.site-footer { flex-direction: column; gap: 1.5rem; align-items: flex-start; }
}
/* add-to-cart confirmation flash */
@keyframes cartFlash {
0% { background: #2e7d32; }
80% { background: #2e7d32; }
100% { background: var(--ltext); }
}
.add-to-cart.added { animation: cartFlash 1.4s ease forwards; }
</style>
<!-- ═══════════════════════════════════════
NAV
═══════════════════════════════════════ --><header class="site-header"><nav><a class="nav-logo" href="https://repet.store/pages/index.html">REPET</a>
<ul class="nav-links">
<li><a href="https://repet.store/pages/why-tofu.html">Why Tofu?</a></li>
<li><a href="https://repet.store/pages/reviews.html">Reviews</a></li>
<li><a href="https://repet.store/pages/brand.html">Brand Story</a></li>
<li><a class="nav-cta active" href="https://repet.store/pages/product.html">Shop Now</a></li>
</ul>
</nav></header><!-- BREADCRUMB -->
<div class="breadcrumb"><a href="https://repet.store/pages/index.html">Home</a> <span class="breadcrumb-sep">/</span> <a href="https://repet.store/pages/product.html">Cat Litter</a> <span class="breadcrumb-sep">/</span>REPET Tofu Cat Litter — Original</div>
<!-- ═══════════════════════════════════════
PRODUCT SECTION
═══════════════════════════════════════ -->
<section class="product-section"><!-- GALLERY -->
<div class="gallery-col">
<div id="gallery-main" class="gallery-main"><img id="gallery-main-img" src="https://img-va.myshopline.com/image/store/1749217664136/product-main-image.jpg" alt="REPET Tofu Cat Litter — Original 7L" /></div>
<div class="gallery-thumbs">
<div class="gallery-thumb active"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-main-image.jpg" alt="Product bag" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image6.jpg" alt="Pellets" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image1.jpg" alt="Odor absorption" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image-5.jpg" alt="Dissolves in water" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image2.jpg" alt="Raw materials" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image.jpg" alt="Manufacturing" /></div>
<div class="gallery-thumb"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-image-4.jpg" alt="Precautions" /></div>
</div>
</div>
<!-- PURCHASE PANEL -->
<div class="purchase-col">
<p class="prod-eyebrow">REPET · S-Grade · Born in London</p>
<h1 class="prod-title">Tofu Cat Litter</h1>
<p class="prod-subtitle">Original · 7L per bag · Flushable · 99.9% Dust-Free</p>
<div class="prod-rating">
<div class="prod-stars">★★★★★</div>
<span class="prod-rating-num">4.8</span> <a class="prod-rating-link" href="#product-reviews">2,461 reviews</a></div>
<div class="prod-divider"> </div>
<!-- PRICE DISPLAY -->
<div class="price-display">
<div id="price-main" class="price-main"><span id="price-orig" class="price-orig" style="display: none;"></span> <span id="price-total">$29.00</span></div>
<div id="price-sub-line" class="price-sub-line">1 bag · $29.00 per bag</div>
</div>
<!-- PURCHASE TYPE TOGGLE --> <span class="section-label-sm">Purchase Type</span>
<div class="purchase-toggle"><button id="tog-onetime" class="toggle-opt active"> <strong>One-time Purchase</strong> <small>No commitment</small> </button> <button id="tog-subscribe" class="toggle-opt"> <strong>♻ Subscribe & Save 25%</strong> <small>Deliver every 4 weeks · Cancel anytime</small> </button></div>
<!-- PACK SELECTOR --> <span class="section-label-sm">How Many Bags?</span>
<div class="pack-options"><!-- 1 pack -->
<div class="pack-opt active" data-packs="1">
<div class="pack-radio"> </div>
<div class="pack-info">
<div class="pack-name">1 Bag</div>
<div class="pack-per-unit">$29.00 per bag</div>
</div>
<div class="pack-price-col">
<div id="t1" class="pack-total">$29.00</div>
</div>
</div>
<!-- 2 packs -->
<div class="pack-opt" data-packs="2">
<div class="pack-radio"> </div>
<div class="pack-info">
<div class="pack-name">2 Bags <span class="pack-badge">Save $4</span></div>
<div class="pack-per-unit">$27.00 per bag</div>
</div>
<div class="pack-price-col">
<div id="t2" class="pack-total">$54.00</div>
</div>
</div>
<!-- 3 packs -->
<div class="pack-opt" data-packs="3">
<div class="pack-radio"> </div>
<div class="pack-info">
<div class="pack-name">3 Bags <span class="pack-badge">Save $9</span></div>
<div class="pack-per-unit">$26.00 per bag</div>
</div>
<div class="pack-price-col">
<div id="t3" class="pack-total">$78.00</div>
</div>
</div>
<!-- 4 packs -->
<div class="pack-opt" data-packs="4">
<div class="pack-radio"> </div>
<div class="pack-info">
<div class="pack-name">4 Bags <span class="pack-badge">Save $16</span></div>
<div class="pack-per-unit">$25.00 per bag</div>
</div>
<div class="pack-price-col">
<div id="t4" class="pack-total">$100.00</div>
</div>
</div>
<!-- 5+ packs -->
<div class="pack-opt" data-packs="5plus">
<div class="pack-radio"> </div>
<div class="pack-info">
<div class="pack-name">5+ Bags <span class="pack-badge">Best Value</span></div>
<div class="pack-per-unit">$24.00 per bag — lowest price</div>
<!-- qty controls (only visible when selected) -->
<div id="qty-row" class="qty-row"><span class="qty-label">Quantity:</span> <button class="qty-btn">−</button> <input id="qty-input" class="qty-num" max="99" min="5" type="number" value="5" /> <button class="qty-btn">+</button> <span id="qty-total" class="qty-total-line">$120.00</span></div>
</div>
<div class="pack-price-col">
<div id="t5plus" class="pack-total">$24/bag</div>
</div>
</div>
</div>
<!-- end pack-options --> <!-- FORMULA --> <span class="section-label-sm">Formula</span>
<div class="formula-opt">
<div class="formula-radio"> </div>
<div class="formula-info">
<div class="formula-name">Original — No Added Scent</div>
<div class="formula-desc">Cats have extremely sensitive noses and lungs, so strong scents can irritate them. Our Original formula delivers powerful odour control purely through the natural porous structure of tofu fibre — no masking fragrances needed.</div>
</div>
</div>
<!-- ADD TO CART --> <button id="add-to-cart-btn" class="add-to-cart"> Add to Cart — <span id="cart-price-label">$29.00</span> </button>
<p class="shop-note">Free US shipping on orders over $35 · Ships in 1–2 business days</p>
<!-- TRUST BADGES -->
<div class="trust-badges">
<div class="trust-item"><span class="trust-icon">🚚</span> <strong>Free Shipping</strong><br />US orders over $35</div>
<div class="trust-item"><span class="trust-icon">✅</span> <strong>30-Day Guarantee</strong><br />Not happy? Full refund</div>
<div class="trust-item"><span class="trust-icon">🔒</span> <strong>Secure Checkout</strong><br />SSL encrypted</div>
<div class="trust-item"><span class="trust-icon">🌱</span> <strong>100% Biodegradable</strong><br />Flush or compost</div>
</div>
<div class="prod-divider"> </div>
<!-- SPEC TABLE -->
<div class="spec-table">
<div class="spec-row"><span class="spec-key">Volume</span><span class="spec-val">7L per bag</span></div>
<div class="spec-row"><span class="spec-key">Ingredients</span><span class="spec-val">Pea fibre, Corn starch, Guar gum</span></div>
<div class="spec-row"><span class="spec-key">Dust level</span><span class="spec-val">99.9% dust-free</span></div>
<div class="spec-row"><span class="spec-key">Flushable</span><span class="spec-val">Yes — dissolves in water</span></div>
<div class="spec-row"><span class="spec-key">Scent</span><span class="spec-val">None (Original)</span></div>
<div class="spec-row"><span class="spec-key">Safety grade</span><span class="spec-val">S-Grade food-safe</span></div>
<div class="spec-row"><span class="spec-key">Shelf life</span><span class="spec-val">2 years (sealed)</span></div>
<div class="spec-row"><span class="spec-key">Manufacturer</span><span class="spec-val">Ultron Digital & Technology Co., Ltd</span></div>
</div>
</div>
<!-- end purchase-col --></section>
<!-- ═══════════════════════════════════════
PRODUCT DESCRIPTION IMAGES (full-width)
═══════════════════════════════════════ -->
<p></p>
<!-- ═══════════════════════════════════════
CERTIFICATIONS
═══════════════════════════════════════ -->
<section class="cert-section">
<p class="cert-eyebrow">Safety & Compliance</p>
<h2 class="cert-heading">Certified <em>safe.</em><br />Without exception.</h2>
<p class="cert-subtext">Every batch is independently tested and verified against international safety standards — so you can trust what goes in your cat's litter box.</p>
<div class="cert-grid">
<div class="cert-card">
<div class="cert-img-wrap"><img src="https://img-va.myshopline.com/image/store/1749217664136/FDA-certification.png" alt="FDA Certification" /></div>
<div class="cert-info">
<div class="cert-name">FDA Certified</div>
<div class="cert-desc">Compliant with U.S. Food & Drug Administration food-contact safety standards. The same grade of material used in food packaging.</div>
</div>
</div>
<div class="cert-card">
<div class="cert-img-wrap"><img src="https://img-va.myshopline.com/image/store/1749217664136/Reach-certification.png" alt="REACH Certification" /></div>
<div class="cert-info">
<div class="cert-name">REACH Compliant</div>
<div class="cert-desc">Verified free of substances of very high concern (SVHC) under the EU REACH regulation — rigorously tested for chemical safety across all components.</div>
</div>
</div>
<div class="cert-card">
<div class="cert-img-wrap"><img src="https://img-va.myshopline.com/image/store/1749217664136/Rohs-certification.png" alt="RoHS Certification" /></div>
<div class="cert-info">
<div class="cert-name">RoHS Certified</div>
<div class="cert-desc">Restriction of Hazardous Substances certified — zero heavy metals, zero harmful chemicals. Safe for cats, safe for your home, safe for the planet.</div>
</div>
</div>
</div>
</section>
<section class="desc-section">
<div class="desc-section-header">
<h2>Why REPET<br /><em style="font-family: 'Cormorant Garamond',serif; font-style: italic; color: #7a7672; font-weight: 300;">works differently</em></h2>
<p>Every metric independently tested and scored — so you know exactly what you're buying.</p>
</div>
<div class="desc-img-block"><img src="https://img-va.myshopline.com/image/store/1749217664136/-product-description-1.jpg" alt="Strong Odor Control · Fast Clumping" /></div>
<div class="desc-img-block"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-description2.jpg" alt="Prevent Tracking Out · Resistant to Dusting" /></div>
<div class="desc-img-block"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-description3.jpg" alt="Product Limitations & Scoring Methodology" /></div>
<div class="desc-img-block"><img src="https://img-va.myshopline.com/image/store/1749217664136/product-description4.jpg" alt="Usage Recommendations" /></div>
<div class="desc-spacer"> </div>
</section>
<!-- ═══════════════════════════════════════
REVIEWS (dark)
═══════════════════════════════════════ -->
<section id="product-reviews" class="reviews-section">
<div class="reviews-inner">
<div class="rev-header">
<div class="rev-header-left">
<p>Verified Purchases · REPET Level-S Natural Tofu Cat Litter</p>
<h2>Customer<br /><em>Reviews</em></h2>
<div class="rev-summary"><span class="rev-big-num">4.8</span>
<div>
<div class="rev-stars-row">★★★★★</div>
<div class="rev-count">Based on 2,461 reviews</div>
</div>
</div>
</div>
<a class="rev-see-all" href="https://repet.store/pages/reviews.html">See All Reviews →</a></div>
<div class="rev-grid">
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">Emma T. 🇬🇧</span> <span class="rc-date">14 June 2026</span></div>
<p class="rc-title">Best litter I've ever used. Not going back.</p>
<p class="rc-body">Switched from clay three months ago. Zero dust, genuinely zero — I tested it wearing a black t-shirt while scooping. The clumps hold their shape perfectly. Flushed it for the first time and it dissolved completely in under a minute.</p>
</div>
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">@queenofcats__ 🇬🇧</span> <span class="rc-date">11 June 2026</span></div>
<p class="rc-title">Foster home tested — all kittens approved</p>
<p class="rc-body">I run a small foster home for kittens and trialled 15 litters over two years. REPET is the only one where none of the kittens showed dust irritation. The food-safe grade matters hugely when kittens groom so frequently.</p>
</div>
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">@sarah_review_ 🇺🇸</span> <span class="rc-date">26 May 2026</span></div>
<p class="rc-title">Detailed test: dust, clumping, flush — all pass</p>
<p class="rc-body">Dust: black shirt test — nothing. Clumping: solid every time. Flush: dissolves in 30–60 seconds on three different toilets. Odour: covers urine completely. Cat acceptance: both cats used it first try. 5/5 across every dimension.</p>
</div>
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">Limary Alva 🇵🇷</span> <span class="rc-date">17 June 2026</span></div>
<p class="rc-title">Natural, dust-free, dissolves in water</p>
<p class="rc-body">Esta arena de tofu me encantó por qué no suelta polvo y se disuelve con el agua, lo mejor es que es natural. My cat adapted immediately and the odour control is genuinely impressive.</p>
</div>
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">Charlotte W. 🇬🇧</span> <span class="rc-date">2 June 2026</span></div>
<p class="rc-title">My vet recommended it after respiratory issues</p>
<p class="rc-body">My cat was diagnosed with mild asthma and the vet told us to switch immediately. Found REPET and the difference was noticeable in week one. No more sneezing, no dust film on the floor mat. The vet noticed improved breathing at the follow-up.</p>
</div>
<div class="rev-card">
<div class="rev-card-meta">
<div class="rc-stars">★★★★★</div>
<span class="rc-name">Maya R. 🇮🇱</span> <span class="rc-date">5 June 2026</span></div>
<p class="rc-title">The flushable claim is 100% real</p>
<p class="rc-body">The smell when you open the bag is like fresh tofu — mild, clean, nothing synthetic. The flushable claim is 100% not marketing: the clump dissolves completely. Odour control is the best in 6 years of cat ownership.</p>
</div>
</div>
<!-- rev-grid -->
<div style="text-align: center; margin-top: 2.5rem;"><a class="rev-see-all" style="display: inline-block; padding: 0.8rem 2rem;" href="https://repet.store/pages/reviews.html"> Read All 2,461 Reviews → </a></div>
</div>
</section>
<!-- FOOTER --><footer class="site-footer"><span class="footer-brand">REPET</span>
<div class="footer-links"><a href="https://repet.store/pages/index.html">Product</a> <a href="https://repet.store/pages/why-tofu.html">Why Tofu?</a> <a href="https://repet.store/pages/reviews.html">Reviews</a> <a href="https://repet.store/pages/brand.html">Brand Story</a></div>
</footer>
<script>
/* ════════════════════════════════════════
GALLERY
════════════════════════════════════════ */
function setMain(thumb, src, alt) {
document.getElementById('gallery-main-img').src = src;
document.getElementById('gallery-main-img').alt = alt;
document.querySelectorAll('.gallery-thumb').forEach(t => t.classList.remove('active'));
thumb.classList.add('active');
}
/* ════════════════════════════════════════
PRICING STATE
════════════════════════════════════════ */
const BASE = { 1: 29, 2: 27, 3: 26, 4: 25, '5plus': 24 };
const QTY = { 1: 1, 2: 2, 3: 3, 4: 4, '5plus': 5 };
let purchaseType = 'onetime'; // 'onetime' | 'subscribe'
let selectedPack = '1';
function setPurchaseType(type) {
purchaseType = type;
document.getElementById('tog-onetime').classList.toggle('active', type === 'onetime');
document.getElementById('tog-subscribe').classList.toggle('active', type === 'subscribe');
updatePrice();
}
function selectPack(el) {
document.querySelectorAll('.pack-opt').forEach(o => o.classList.remove('active'));
el.classList.add('active');
selectedPack = el.dataset.packs;
updatePrice();
}
function changeQty(delta, e) {
e.stopPropagation();
const inp = document.getElementById('qty-input');
let v = parseInt(inp.value) + delta;
if (v < 5) v = 5; if (v > 99) v = 99;
inp.value = v;
updatePrice();
}
function clampQty(inp) {
let v = parseInt(inp.value);
if (isNaN(v) || v < 5) v = 5;
if (v > 99) v = 99;
inp.value = v;
}
function updatePrice() {
const sub = (purchaseType === 'subscribe');
const packs = selectedPack;
const ppp = BASE[packs]; // price per pack (pre-discount)
const qty = packs === '5plus'
? parseInt(document.getElementById('qty-input').value || 5)
: QTY[packs];
const raw = ppp * qty;
const final = sub ? Math.round(raw * 0.75 * 100) / 100 : raw;
// Update all pack totals
[1,2,3,4].forEach(n => {
const el = document.getElementById('t' + n);
if (!el) return;
const r = BASE[n] * n;
el.textContent = sub
? '$' + (Math.round(r * 0.75 * 100)/100).toFixed(2)
: '$' + r.toFixed(2);
});
// 5+ total
const el5 = document.getElementById('t5plus');
if (el5) el5.textContent = '$24/bag';
const qTot = document.getElementById('qty-total');
if (qTot) {
const r5 = 24 * parseInt(document.getElementById('qty-input').value || 5);
qTot.textContent = sub
? '$' + (Math.round(r5 * 0.75 * 100)/100).toFixed(2)
: '$' + r5.toFixed(2);
}
// Main price display
const origEl = document.getElementById('price-orig');
const totEl = document.getElementById('price-total');
const subEl = document.getElementById('price-sub-line');
const cartEl = document.getElementById('cart-price-label');
if (sub) {
origEl.style.display = '';
origEl.textContent = '$' + raw.toFixed(2);
totEl.textContent = '$' + final.toFixed(2);
subEl.innerHTML = qty === 1
? `${qty} bag · $${(ppp * 0.75).toFixed(2)}/bag after 25% off <span class="price-save-badge">Save $${(ppp*0.25).toFixed(2)}</span>`
: `${qty} bags · $${(ppp * 0.75).toFixed(2)}/bag after 25% off <span class="price-save-badge">Save $${(raw*0.25).toFixed(2)}</span>`;
} else {
origEl.style.display = 'none';
totEl.textContent = '$' + final.toFixed(2);
subEl.textContent = qty === 1
? `1 bag · $${ppp.toFixed(2)} per bag`
: `${qty} bags · $${ppp.toFixed(2)} per bag`;
}
cartEl.textContent = '$' + final.toFixed(2);
}
/* ════════════════════════════════════════
ADD TO CART
════════════════════════════════════════ */
function addToCart() {
const btn = document.getElementById('add-to-cart-btn');
const orig = btn.innerHTML;
btn.textContent = '✓ Added to Cart!';
btn.classList.add('added');
setTimeout(() => {
btn.innerHTML = orig;
btn.classList.remove('added');
}, 1400);
}
// Init
updatePrice();
</script>