Nano Hydroxyapatite Toothpaste
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@500;600;700&family=Inter:wght@400;500;600&display=swap'); /* 只需要改这一个变量,换成你主题实际用的粉色色号,下面全部跟着联动 */ .bwc-page{ --bwc- ink:#4a3b3b; /* 正文字色:暖棕黑,比纯黑柔和 */ --bwc-accent:#c98a8a; /* 强调色:玫瑰棕,代替原来的纯黑 */ --bwc-accent-dark:#8a5a5a;/* 强调色深一档,用于按钮 hover / 深色面板 */ --bwc-card:#fffaf8; /* 卡片底色:暖白,不是刺眼的纯白 */ --bwc-line:#f0dede; /* 极浅的分隔线颜色,代替原来的黑色描边 */ --bwc-shadow:0 4px 18px rgba(180,120,120,.12); } .bwc-page{background:transparent;font-family:'Inter',Arial,Helvetica,sans-serif;color:var(--bwc-ink);padding:0;margin:0;-webkit-font-smoothing:antialiased} .bwc-page *{box-sizing:border-box} .bwc-page .bwc-container{max-width:100%;width:100%;margin:0;padding:0} .bwc-page .bwc-card{background:transparent;border:none;padding:0;overflow:hidden} /* 原来的黑白锯齿分隔条,换成一条更柔和的波浪分隔(用渐变模拟一条软边),颜色跟卡片色呼应 */ .bwc-page .bwc-teeth{display:block!important;height:16px!important;width:100%!important;background: linear-gradient(135deg,var(--bwc-accent) 25%,transparent 25%) 0 0/16px 16px, linear-gradient(225deg,var(--bwc-accent) 25%,transparent 25%) 0 0/16px 16px, transparent!important;opacity:.35} .bwc-page .bwc-teeth.inv{background: linear-gradient(135deg,transparent 25%,transparent 25%) 0 0/16px 16px, linear-gradient(225deg,transparent 25%,transparent 25%) 0 0/16px 16px, transparent!important} .bwc-page .bwc-top{padding:26px 26px 0} .bwc-page .bwc-eyebrow{font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--bwc-accent-dark);text-align:center;margin:0 0 8px} .bwc-page .bwc-h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:32px;text-align:center;color:var(--bwc-ink);margin:0 0 18px;line-height:1.14;letter-spacing:-.2px;text-transform:uppercase} /* Hero:原来是纯黑块,改成玫瑰棕渐变,跟粉色背景是同一色系,不再是突兀的黑色矩形 */ .bwc-page .bwc-hero{background:linear-gradient(135deg,var(--bwc-accent),var(--bwc-accent-dark));color:#fff;padding:28px 24px;margin:0;position:relative;border-radius:18px} .bwc-page .bwc-hero h2{font-family:'Oswald',sans-serif;margin:0 0 10px;font-size:22px;line-height:1.25;font-weight:600;letter-spacing:.01em;color:#fff!important} .bwc-page .bwc-hero p{margin:0;opacity:.92;line-height:1.7;font-size:15px;color:#fff!important} .bwc-page .bwc-hero strong{color:#fff!important;border-bottom:2px solid rgba(255,255,255,.6)} .bwc-page .bwc-img-wrap{width:100%;margin:0;overflow:hidden;background:transparent;border-radius:18px} .bwc-page .bwc-img-wrap img{width:100%;height:auto;display:block;margin:0} .bwc-page .bwc-body{padding:0 26px} .bwc-page .bwc-section-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.02em;color:var(--bwc-ink);margin:38px 0 6px;padding-bottom:12px;border-bottom:2px solid rgba(74,59,59,.18);line-height:1.2} .bwc-page .bwc-lead{font-size:15px;line-height:1.75;color:#6b5858;margin:0 0 18px} /* 卡片网格:原来靠黑色描边+1px缝隙分隔,改成卡片间留白+柔和阴影 */ .bwc-page .bwc-benefit-row{display:flex;flex-wrap:wrap;gap:12px;background:transparent;margin:20px 0 6px;border:none} .bwc-page .bwc-mini{flex:1 1 130px;min-width:130px;background:var(--bwc-card);text-align:center;padding:16px 8px;color:var(--bwc-ink);font-weight:600;line-height:1.35;font-size:12.5px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em;border-radius:14px;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-mini span.num{display:block;font-size:20px;margin-bottom:6px;font-weight:700;color:var(--bwc-accent-dark)} .bwc-page .bwc-carousel{position:relative;margin:22px 0 30px} .bwc-page .bwc-carousel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 4px 14px;scrollbar-width:none;-ms-overflow-style:none} .bwc-page .bwc-carousel-track::-webkit-scrollbar{display:none} .bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start;background:var(--bwc-card);border:none;border-radius:16px;overflow:hidden;box-shadow:var(--bwc-shadow);display:flex;flex-direction:column} .bwc-page .bwc-carousel-imgs{display:flex;border-bottom:none} .bwc-page .bwc-carousel-imgs img{flex:1 1 0;width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover;min-width:0} .bwc-page .bwc-carousel-imgs img+img{border-left:2px solid var(--bwc-card)} .bwc-page .bwc-carousel-text{padding:18px;flex:1} .bwc-page .bwc-carousel-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--bwc-accent);color:#fff;font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;margin-bottom:10px} .bwc-page .bwc-carousel-text h3{margin:0 0 6px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em;font-size:15px;color:var(--bwc-ink);font-weight:600;line-height:1.3} .bwc-page .bwc-carousel-text p{margin:0;color:#6b5858;font-size:13px;line-height:1.6} .bwc-page .bwc-carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px} .bwc-page .bwc-carousel-arrow{width:36px;height:36px;border-radius:50%;border:none;background:var(--bwc-card);color:var(--bwc-accent-dark);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;padding:0;line-height:1;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-carousel-arrow:hover{background:var(--bwc-accent);color:#fff} .bwc-page .bwc-carousel-dots{display:flex;gap:8px} .bwc-page .bwc-carousel-dot{width:8px;height:8px;border-radius:50%;background:rgba(74,59,59,.28);cursor:pointer;transition:background .2s;padding:0;border:0} .bwc-page .bwc-carousel-dot.active{background:var(--bwc-accent)} .bwc-page .bwc-media-block{margin:22px 0 6px;overflow:hidden;background:transparent;border-radius:18px} .bwc-page .bwc-media-block img,.bwc-page .bwc-media-block video{width:100%;height:auto;display:block} .bwc-page .bwc-media-caption{padding:11px 16px;font-size:12px;color:#8a7676;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.05em;border-top:none;background:transparent} .bwc-page .bwc-checklist{margin:18px 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px 18px} .bwc-page .bwc-checklist li{flex:1 1 220px;font-size:14.5px;line-height:1.5;color:var(--bwc-ink);padding-left:22px;position:relative} .bwc-page .bwc-checklist li:before{content:'';position:absolute;left:0;top:6px;width:10px;height:10px;background:var(--bwc-accent);border-radius:3px;transform:rotate(45deg)} .bwc-page .bwc-checklist li.tag{font-weight:600} .bwc-page .bwc-checklist.emoji li{padding-left:26px} .bwc-page .bwc-checklist.emoji li:before{content:none} .bwc-page .bwc-checklist.emoji li .ico{position:absolute;left:0;top:0;font-size:15px;line-height:1.5} .bwc-page .bwc-steps{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0;background:transparent;border:none} .bwc-page .bwc-step{flex:1 1 150px;min-width:150px;background:var(--bwc-card);padding:16px 14px;text-align:left;border-radius:14px;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-step b{display:inline-flex;width:26px;height:26px;border-radius:50%;background:var(--bwc-accent);color:#fff;align-items:center;justify-content:center;margin-bottom:10px;font-size:13px;font-family:'Oswald',sans-serif} .bwc-page .bwc-step h3{font-size:13.5px;margin:0 0 6px;color:var(--bwc-ink);font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em} .bwc-page .bwc-step p{font-size:13px;line-height:1.55;margin:0;color:#8a7676} .bwc-page .bwc-spec{margin-top:36px;background:var(--bwc-card);padding:0;border-radius:18px;overflow:hidden;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-spec h2{color:#fff;margin:0;padding:20px 24px;font-size:19px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.03em;background:linear-gradient(135deg,var(--bwc-accent),var(--bwc-accent-dark));border-bottom:none} .bwc-page .bwc-table{width:100%;border-collapse:collapse;background:var(--bwc-card)} .bwc-page .bwc-table td{padding:14px 20px;border-bottom:1px solid var(--bwc-line);vertical-align:top;line-height:1.5;font-size:14.5px;color:var(--bwc-ink)} .bwc-page .bwc-table tr:last-child td{border-bottom:0} .bwc-page .bwc-table td:first-child{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--bwc-accent-dark);width:34%;background:#fdf4f2;font-size:12.5px} .bwc-page .bwc-compare{margin-top:36px;background:var(--bwc-card);padding:0;border-radius:18px;overflow:hidden;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-compare h2{color:#fff;margin:0;padding:20px 24px;font-size:19px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.03em;background:linear-gradient(135deg,var(--bwc-accent),var(--bwc-accent-dark));border-bottom:none} .bwc-page .bwc-compare-table{width:100%;border-collapse:collapse;background:var(--bwc-card);table-layout:fixed} .bwc-page .bwc-compare-table th{padding:14px 16px;text-align:left;font-family:'Oswald',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.01em;color:var(--bwc-accent-dark);background:#fdf4f2;line-height:1.3} .bwc-page .bwc-compare-table th:first-child{width:54%} .bwc-page .bwc-compare-table td{padding:12px 16px;border-bottom:1px solid var(--bwc-line);font-size:13.5px;color:var(--bwc-ink);line-height:1.5;word-break:break-word} .bwc-page .bwc-compare-table tr:last-child td{border-bottom:0} .bwc-page .bwc-compare-table td:first-child{font-weight:600;color:var(--bwc-ink);background:#fdf4f2} .bwc-page .bwc-compare-table td:last-child{color:#b39c9c} .bwc-page .bwc-faq{margin-top:36px} .bwc-page .bwc-faq-item{border-bottom:1px solid rgba(74,59,59,.18);padding:16px 2px} .bwc-page .bwc-faq-item:first-child{padding-top:0} .bwc-page .bwc-faq-q{font-family:'Oswald',sans-serif;font-size:14.5px;text-transform:uppercase;letter-spacing:.01em;color:var(--bwc-ink);font-weight:600;margin:0 0 8px;display:flex;gap:10px} .bwc-page .bwc-faq-q .qmark{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--bwc-accent);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif} .bwc-page .bwc-faq-a{font-size:14px;line-height:1.65;color:#6b5858;margin:0;padding-left:32px} .bwc-page .bwc-reviews{margin:22px 0 6px} .bwc-page .bwc-review-grid{display:flex;flex-wrap:wrap;gap:12px;background:transparent;border:none} .bwc-page .bwc-review-card{flex:1 1 260px;min-width:260px;background:var(--bwc-card);padding:20px;border-radius:14px;box-shadow:var(--bwc-shadow)} .bwc-page .bwc-review-stars{color:var(--bwc-accent);font-size:13px;letter-spacing:2px;margin-bottom:10px} .bwc-page .bwc-review-quote{font-size:14px;line-height:1.65;color:#6b5858;margin:0 0 12px;font-style:italic} .bwc-page .bwc-review-name{font-family:'Oswald',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--bwc-ink);font-weight:600} .bwc-page .bwc-cta{margin-top:36px;background:linear-gradient(135deg,var(--bwc-accent),var(--bwc-accent-dark));color:#fff;padding:40px 24px;text-align:center;border-radius:18px} .bwc-page .bwc-cta h2{margin:0 0 12px;font-size:24px;line-height:1.25;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#fff!important} .bwc-page .bwc-cta p{margin:0 auto 22px;line-height:1.65;max-width:560px;opacity:.92;font-size:14.5px;color:#fff!important} .bwc-page .bwc-btn{display:inline-block;background:#fff;color:var(--bwc-accent-dark)!important;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:none;border-radius:999px;cursor:pointer;transition:transform .15s ease} .bwc-page .bwc-btn:hover{transform:scale(1.03)} .bwc-page .bwc-cta-form{margin:0;display:inline-block} .bwc-page .bwc-bottom-pad{height:26px} @media(max-width:768px){ .bwc-page .bwc-container{padding:0} .bwc-page .bwc-top{padding:20px 16px 0} .bwc-page .bwc-body{padding:0 16px} .bwc-page .bwc-h1{font-size:24px} .bwc-page .bwc-hero{padding:20px 16px} .bwc-page .bwc-hero h2{font-size:19px} .bwc-page .bwc-section-title{font-size:19px;margin-top:30px} .bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%} .bwc-page .bwc-carousel-track{gap:0} .bwc-page .bwc-benefit-row{grid-template-columns:1fr 1fr} .bwc-page .bwc-steps{grid-template-columns:1fr 1fr} .bwc-page .bwc-checklist{grid-template-columns:1fr} .bwc-page .bwc-table td{display:block;width:100%;padding:10px 16px} .bwc-page .bwc-table td:first-child{width:100%;border-bottom:0;padding-bottom:2px} .bwc-page .bwc-compare-table{table-layout:auto} .bwc-page .bwc-compare-table th,.bwc-page .bwc-compare-table td{display:block;width:100%} .bwc-page .bwc-compare-table th:first-child{width:100%} .bwc-page .bwc-compare-table td:last-child{border-top:1px dashed var(--bwc-line)} .bwc-page .bwc-faq-a{padding-left:0;margin-top:6px} .bwc-page .bwc-btn{display:block;width:100%;text-align:center} } Nano Hydroxyapatite Toothpaste Experience a Cleaner, Fresher Smile Gentle Care, Lasting Freshness Experience a cleaner, fresher smile with Nano Hydroxyapatite Toothpaste. Designed for sensitive teeth, its clean formula gently cares for your enamel while delivering long-lasting freshness and everyday comfort. Why You'll Love It Four reasons it's the smarter way to care for your smile. 1 Comfort With Every Brush Specially formulated for sensitive teeth, it delivers a gentle yet effective clean while helping you enjoy a more comfortable brushing experience every day. 2 Care Beyond Surface Cleaning Powered by nano hydroxyapatite, the formula helps support enamel care while keeping your teeth looking healthy and naturally beautiful. 3 Pure Care Every Day Made without fluoride, SLS, parabens, artificial colors, or artificial flavors for a cleaner and gentler daily oral care routine. 4 Freshness That Lasts Longer Refreshing mint blended with green tea and cardamom helps leave your mouth feeling clean, fresh, and confident throughout the day. ‹ › Perfect For 🦷Sensitive Teeth 🪥Daily Oral Care 🌬Fresh Breath 🌿Fluoride-Free Preference 🧑Adults 👨👩👧Everyday Family Use How to Use 1 Apply Apply a pea-sized amount of toothpaste onto your toothbrush. 2 Brush Brush gently for at least two minutes. 3 Cover All Surfaces Brush all tooth surfaces evenly. 4 Repeat Daily Use twice daily as part of your regular oral care routine. Product Specifications Product Type Nano Hydroxyapatite Toothpaste Net Weight 96 g / 3.39 oz Flavor Fresh Mint Key Ingredient Nano Hydroxyapatite (n-Ha) Formula Fluoride-Free Free From SLS, Parabens, Artificial Colors & Artificial Flavors Suitable For Adults & Sensitive Teeth Package Includes 1 × Nano Hydroxyapatite Toothpaste Why Choose Our Toothpaste? Our Toothpaste Traditional Toothpaste ✔ Nano Hydroxyapatite Formula ✘ Standard Formula ✔ Fluoride-Free ✘ Often Contains Fluoride ✔ No SLS or Parabens ✘ May Contain Harsh Ingredients ✔ Gentle for Sensitive Teeth ✘ May Feel Irritating ✔ Long-Lasting Freshness ✘ Freshness Fades Quickly ✔ Clean Ingredient Formula ✘ More Artificial Additives Healthy Smile Starts Today Upgrade your daily oral care routine with a clean, gentle formula designed for everyday comfort and lasting freshness. 🛒 Add to Cart Now (function(){ var carousel = document.querySelector('[data-carousel]'); if(!carousel) return; var track = carousel.querySelector('[data-track]'); var slides = track.querySelectorAll('.bwc-carousel-slide'); var dotsWrap = carousel.querySelector('[data-dots]'); var prevBtn = carousel.querySelector('[data-prev]'); var nextBtn = carousel.querySelector('[data-next]'); var activeIndex = 0; var AUTOPLAY_DELAY = 3000; var autoplayTimer = null; var carouselInView = true; // updated by IntersectionObserver below slides.forEach(function(slide, i){ var dot = document.createElement('button'); dot.type = 'button'; dot.className = 'bwc-carousel-dot' + (i === 0 ? ' active' : ''); dot.setAttribute('aria-label', 'Go to slide ' + (i + 1)); dot.addEventListener('click', function(){ goToSlide(i); restartAutoplay(); }); dotsWrap.appendChild(dot); }); var dots = dotsWrap.querySelectorAll('.bwc-carousel-dot'); // Scroll the track itself (horizontal only). Never use scrollIntoView here — // it can also scroll the whole page vertically to "reveal" the slide, which // yanks the page back up to this section if the user has scrolled past it. function goToSlide(i){ var slide = slides[i]; track.scrollTo({ left: slide.offsetLeft, behavior: 'smooth' }); } function updateActive(){ var trackRect = track.getBoundingClientRect(); var closest = 0, closestDist = Infinity; slides.forEach(function(slide, i){ var dist = Math.abs(slide.getBoundingClientRect().left - trackRect.left); if (dist < closestDist) { closestDist = dist; closest = i; } }); activeIndex = closest; dots.forEach(function(d, i){ d.classList.toggle('active', i === closest); }); } var scrollTimer; track.addEventListener('scroll', function(){ clearTimeout(scrollTimer); scrollTimer = setTimeout(updateActive, 80); }); function stepWidth(){ if (slides.length > 1) { return slides[1].offsetLeft - slides[0].offsetLeft; } return slides[0].getBoundingClientRect().width; } prevBtn.addEventListener('click', function(){ track.scrollBy({left: -stepWidth(), behavior:'smooth'}); restartAutoplay(); }); nextBtn.addEventListener('click', function(){ track.scrollBy({left: stepWidth(), behavior:'smooth'}); restartAutoplay(); }); function nextSlide(){ var next = (activeIndex + 1) % slides.length; goToSlide(next); } function startAutoplay(){ stopAutoplay(); // Don't run autoplay (and thus don't touch scroll position at all) // while the carousel isn't visible on screen. if (!carouselInView) return; autoplayTimer = setInterval(nextSlide, AUTOPLAY_DELAY); } function stopAutoplay(){ if (autoplayTimer) { clearInterval(autoplayTimer); autoplayTimer = null; } } function restartAutoplay(){ stopAutoplay(); startAutoplay(); } // pause while the user is actively swiping/dragging/hovering, resume after track.addEventListener('pointerdown', stopAutoplay); track.addEventListener('touchstart', stopAutoplay, {passive:true}); track.addEventListener('pointerup', restartAutoplay); track.addEventListener('touchend', restartAutoplay, {passive:true}); carousel.addEventListener('mouseenter', stopAutoplay); carousel.addEventListener('mouseleave', restartAutoplay); // Only autoplay while the carousel is actually on screen. This stops the // slide-change scroll from firing (and thus nothing can pull the page back // up) whenever the user has scrolled further down the page. if ('IntersectionObserver' in window) { var io = new IntersectionObserver(function(entries){ entries.forEach(function(entry){ carouselInView = entry.isIntersecting; if (carouselInView) { restartAutoplay(); } else { stopAutoplay(); } }); }, { threshold: 0.4 }); io.observe(carousel); } updateActive(); startAutoplay(); })(); (function(){ function findRealAddToCartButton(){ var shrineBtn = document.querySelector('button.main-product-atc[name="add"]'); if (shrineBtn) return shrineBtn; var form = document.querySelector('form[action*="/cart/add"]'); if (form) { var btn = form.querySelector('button[name="add"], button[type="submit"], input[type="submit"]'); if (btn) return btn; } var all = document.querySelectorAll('button, input[type="submit"]'); for (var i = 0; i < all.length; i++) { var txt = (all[i].textContent || all[i].value || '').trim().toLowerCase(); if (txt === 'add to cart' && !all[i].classList.contains('bwc-add-to-cart')) return all[i]; } return null; } function bwcAddToCart(btn){ var realBtn = findRealAddToCartButton(); if (realBtn) { realBtn.click(); return; } var fallbackId = btn.getAttribute('data-fallback-variant'); if (!fallbackId || fallbackId === 'VARIANT_ID') { alert('Could not find the add-to-cart form on this page.'); return; } fetch('/cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: fallbackId, quantity: 1 }) }).then(function(){ window.location.href = '/cart'; }); } document.addEventListener('click', function(e){ var btn = e.target.closest('.bwc-add-to-cart'); if (!btn) return; e.preventDefault(); bwcAddToCart(btn); }); })();