【日本製】贅沢おくるみ|6重ガーゼ×ヘリンボーン|出産祝い・OEM対応

新生児の肌に、
やさしく贅沢な日本製おくるみを。

6重ガーゼ × ヘリンボーンガーゼ
贅沢おくるみ|出産祝い・産院採用・OEM対応

購入する
日本製ガーゼおくるみ(6重ガーゼ×ヘリンボーン)

ふれるたび、愛おしさが深まる一枚。

赤ちゃんが最初に出会う布は、安心感をつくる大切な“はじめての肌着”です。
デリケートな肌に触れるものだからこそ、素材・製法・安全性に妥協はしません。

「贅沢おくるみ」は、空気を含む6重ガーゼと上質なヘリンボーンガーゼを重ね、軽さと柔らかさを両立。
まるでやさしい空気に包まれるように、新生児の眠りと抱っこ時間を心地よく支えます。

二種類のガーゼで叶える、極上の軽さと肌触り。

6重ガーゼの保温性

層に空気を含み、やさしく体温をキープ。季節を問わず快適です。

ヘリンボーンの上質感

しっとりとなめらかな風合い。肌への摩擦を抑えます。

洗うほどふわっと

お手入れのたびに柔らかさが育ち、使うほどに心地よく。

すやすや眠る赤ちゃんを見守る時間が、
家族のしあわせな記憶になります。

贅沢おくるみのコンセプト:赤ちゃんを包み育てる、日本製ガーゼ
産院・医療施設・一般家庭まで幅広く使えるガーゼおくるみ

おくるみの時期を過ぎても、ずっと使える。

授乳・外出・ねんね。暮らしに寄り添い、長く活躍します。

授乳ケープ

適度な厚みと通気性で、快適に授乳空間を確保。

ベビーカーの膝掛け

体温調節がしやすく、季節の行き来にも便利。

成長後はブランケット

軽い毛布として、大人になっても心地よさが続きます。

贈られた一枚が、月日とともに役割を変えながら暮らしに溶け込む。
――それが「一生ものの布」である理由です。

完全国内生産が生む、安心と高品質。

日本製の一貫体制

糸・織布・縫製まで国内工場。品質管理とトレーサビリティが明確。

新生児にやさしい

やわらかい肌触りで摩擦を抑制。毎日の洗濯にも安心です。

オリジナルカラー

施設やブランドイメージに合わせて色展開・刺繍のご提案が可能。

小ロットから

必要数に合わせて柔軟に対応。初期導入のリスクを抑えます。

高いブランディング性

名入れ刺繍・タグ・パッケージまで一貫対応。物販・記念品に最適。

国産品質と柔軟なOEMで、産院・ホテル・ギフト需要に価値ある一枚をお届けします。

選ばれ続ける理由は、体験の質。

高級宿・旅館で採用

ミシュラン5パビリオンの宿で採用。おもてなしの品質向上に貢献。

産婦人科での導入

退院時の贈り物として採用。家族の“最初のギフト”に選ばれています。

ギフト・物販で好評

宿泊施設のショップで人気。記念日や出産祝いの定番に。

“肌にすっとなじみ、赤ちゃんが落ち着いて眠ってくれる”

“名入れギフトにしたら、とても喜ばれました”

実感の声が、品質の確かな証です。

サンプルから導入まで、スムーズに。

1

サンプル請求

触れてわかる日本製ガーゼの心地よさをご確認ください。

2

仕様ご相談

カラー・刺繍・タグ・パッケージ等を最適化してご提案。

3

ご発注

小ロットから柔軟に対応。納期のご相談も可能です。

4

製造・納品

国内工場で丁寧に製造し、安定した品質でお届けします。

OEMに関してよくあるご質問

Q. 最小ロットは何枚からですか?

A. 小ロットから承ります。ご希望数量に合わせてお見積りいたします。

Q. オリジナルカラーの染色対応は可能ですか?

A. 可能です。既存色のほか、施設やブランドに合わせた別注色をご提案します。

Q. サンプルを取り寄せられますか?

A. はい、質感を確認いただけるサンプル価格にてご用意しています。お気軽にご依頼ください。

Q. 施設のロゴや刺繍は対応可能ですか?

A. 名入れ刺繍・タグ・パッケージなど、OEM仕様で一貫対応いたします。

Q. 価格の目安はどのくらいですか?

A. 仕様と数量により異なります。まずはご希望条件をお知らせください。

Q. 洗濯・お手入れ方法は?

A. ご家庭の洗濯機でお洗濯可能です。洗うほどふんわり感が増していきます。

ご購入・OEMのご相談はこちら。

出産祝い・ギフト、産院・宿泊施設の業務用まで幅広く対応。
日本製ガーゼおくるみのやさしさを、まずは一枚からお試しください。

/* ========================================== Baby Care Landing Page JavaScript Interactive Features & Animations ========================================== */ document.addEventListener('DOMContentLoaded', function() { // Initialize all functionality initNavigation(); initScrollAnimations(); initFAQ(); initSmoothScroll(); initScrollToTop(); initImageLoading(); console.log('贅沢おくるみ LP が正常に読み込まれました。'); }); /* ========================================== Navigation Functions ========================================== */ function initNavigation() { const navToggle = document.getElementById('nav-toggle'); const navMenu = document.getElementById('nav-menu'); const navLinks = document.querySelectorAll('.nav-link'); const header = document.querySelector('.header'); // Mobile menu toggle if (navToggle && navMenu) { navToggle.addEventListener('click', function() { navMenu.classList.toggle('active'); navToggle.classList.toggle('active'); }); // Close menu when clicking on a link navLinks.forEach(link => { link.addEventListener('click', function() { navMenu.classList.remove('active'); navToggle.classList.remove('active'); }); }); // Close menu when clicking outside document.addEventListener('click', function(e) { if (!navToggle.contains(e.target) && !navMenu.contains(e.target)) { navMenu.classList.remove('active'); navToggle.classList.remove('active'); } }); } // Header background on scroll if (header) { window.addEventListener('scroll', function() { if (window.scrollY > 50) { header.style.background = 'rgba(255, 255, 255, 0.98)'; header.style.boxShadow = '0 2px 20px rgba(247, 211, 211, 0.3)'; } else { header.style.background = 'rgba(255, 255, 255, 0.95)'; header.style.boxShadow = 'none'; } }); } // Active nav link highlighting updateActiveNavLink(); window.addEventListener('scroll', updateActiveNavLink); } function updateActiveNavLink() { const sections = document.querySelectorAll('section[id]'); const navLinks = document.querySelectorAll('.nav-link'); let currentSection = ''; const header = document.querySelector('.header'); const headerHeight = header ? header.offsetHeight : 100; const scrollPosition = window.scrollY + headerHeight + 50; sections.forEach(section => { const sectionTop = section.offsetTop; const sectionHeight = section.offsetHeight; if (scrollPosition >= sectionTop && scrollPosition < sectionTop + sectionHeight) { currentSection = section.getAttribute('id'); } }); navLinks.forEach(link => { link.classList.remove('active'); const href = link.getAttribute('href'); if (href === `#${currentSection}`) { link.classList.add('active'); } }); } /* ========================================== Scroll Animations ========================================== */ function initScrollAnimations() { const animatedElements = document.querySelectorAll( '.product-item, .scene-item, .feature-item, .case-item, .step-item, .faq-item, .intro-content' ); // Add animation classes animatedElements.forEach((element, index) => { if (index % 2 === 0) { element.classList.add('fade-in'); } else { element.classList.add('slide-in-left'); } }); // Intersection Observer for animations const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -50px 0px' }; const observer = new IntersectionObserver(function(entries) { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); } }); }, observerOptions); // Observe all animated elements document.querySelectorAll('.fade-in, .slide-in-left, .slide-in-right').forEach(element => { observer.observe(element); }); // Special animation for hero elements animateHeroElements(); } function animateHeroElements() { const heroText = document.querySelector('.hero-text'); const heroImage = document.querySelector('.hero-image'); if (heroText && heroImage) { setTimeout(() => { heroText.classList.add('slide-in-left', 'visible'); }, 300); setTimeout(() => { heroImage.classList.add('slide-in-right', 'visible'); }, 600); } } /* ========================================== FAQ Accordion ========================================== */ function initFAQ() { const faqItems = document.querySelectorAll('.faq-item'); faqItems.forEach(item => { const question = item.querySelector('.faq-question'); if (question) { question.addEventListener('click', function() { const isActive = item.classList.contains('active'); // Close all other FAQ items faqItems.forEach(otherItem => { if (otherItem !== item) { otherItem.classList.remove('active'); } }); // Toggle current item if (isActive) { item.classList.remove('active'); } else { item.classList.add('active'); } }); } }); // Add keyboard navigation for FAQ faqItems.forEach(item => { const question = item.querySelector('.faq-question'); if (question) { question.setAttribute('tabindex', '0'); question.addEventListener('keydown', function(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); question.click(); } }); } }); } /* ========================================== Modal Functions ========================================== */ function initModal() { const modal = document.getElementById('contactModal'); const closeBtn = document.querySelector('.close'); if (modal && closeBtn) { // Close modal when clicking X closeBtn.addEventListener('click', function() { closeModal(); }); // Close modal when clicking outside window.addEventListener('click', function(e) { if (e.target === modal) { closeModal(); } }); // Close modal with Escape key document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && modal.style.display === 'block') { closeModal(); } }); } } function openSampleForm() { const modal = document.getElementById('contactModal'); const modalTitle = document.getElementById('modalTitle'); const inquiryType = document.getElementById('inquiryType'); if (modal && modalTitle && inquiryType) { modalTitle.textContent = 'サンプル請求フォーム'; inquiryType.value = 'sample'; modal.style.display = 'block'; document.body.style.overflow = 'hidden'; // Focus on first input const firstInput = modal.querySelector('input[type="text"]'); if (firstInput) { setTimeout(() => firstInput.focus(), 100); } } } function openConsultationForm() { const modal = document.getElementById('contactModal'); const modalTitle = document.getElementById('modalTitle'); const inquiryType = document.getElementById('inquiryType'); if (modal && modalTitle && inquiryType) { modalTitle.textContent = 'OEM・ご相談フォーム'; inquiryType.value = 'oem'; modal.style.display = 'block'; document.body.style.overflow = 'hidden'; // Focus on first input const firstInput = modal.querySelector('input[type="text"]'); if (firstInput) { setTimeout(() => firstInput.focus(), 100); } } } function closeModal() { const modal = document.getElementById('contactModal'); if (modal) { modal.style.display = 'none'; document.body.style.overflow = 'auto'; } } /* ========================================== Form Handling ========================================== */ function initFormHandling() { const form = document.getElementById('contactForm'); if (form) { form.addEventListener('submit', function(e) { e.preventDefault(); handleFormSubmission(form); }); // Add real-time validation const inputs = form.querySelectorAll('input, select, textarea'); inputs.forEach(input => { input.addEventListener('blur', function() { validateField(input); }); input.addEventListener('input', function() { clearFieldError(input); }); }); } } function handleFormSubmission(form) { const formData = new FormData(form); const data = Object.fromEntries(formData); // Validate form if (!validateForm(form)) { showNotification('入力内容に不備があります。', 'error'); return; } // Show loading state const submitBtn = form.querySelector('button[type="submit"]'); const originalText = submitBtn.textContent; submitBtn.textContent = '送信中...'; submitBtn.disabled = true; // Simulate form submission (replace with actual API call) setTimeout(() => { console.log('Form submitted with data:', data); // Reset form and close modal form.reset(); closeModal(); // Show success message showNotification('お問い合わせありがとうございます。\n担当者より24時間以内にご連絡いたします。', 'success'); // Reset button submitBtn.textContent = originalText; submitBtn.disabled = false; // Analytics tracking (if needed) trackFormSubmission(data.inquiryType); }, 1500); } function validateForm(form) { const requiredFields = form.querySelectorAll('[required]'); let isValid = true; requiredFields.forEach(field => { if (!validateField(field)) { isValid = false; } }); return isValid; } function validateField(field) { const value = field.value.trim(); const fieldName = field.name; let isValid = true; let errorMessage = ''; // Required field validation if (field.required && !value) { errorMessage = 'この項目は必須です。'; isValid = false; } // Email validation if (fieldName === 'email' && value) { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(value)) { errorMessage = '有効なメールアドレスを入力してください。'; isValid = false; } } // Phone validation if (fieldName === 'phone' && value) { const phoneRegex = /^[\d\-\+\(\)\s]+$/; if (!phoneRegex.test(value)) { errorMessage = '有効な電話番号を入力してください。'; isValid = false; } } if (isValid) { clearFieldError(field); } else { showFieldError(field, errorMessage); } return isValid; } function showFieldError(field, message) { clearFieldError(field); field.style.borderColor = '#ff6b6b'; field.style.backgroundColor = '#fff5f5'; const errorDiv = document.createElement('div'); errorDiv.className = 'field-error'; errorDiv.style.color = '#ff6b6b'; errorDiv.style.fontSize = '0.85rem'; errorDiv.style.marginTop = '0.25rem'; errorDiv.textContent = message; field.parentNode.appendChild(errorDiv); } function clearFieldError(field) { field.style.borderColor = ''; field.style.backgroundColor = ''; const existingError = field.parentNode.querySelector('.field-error'); if (existingError) { existingError.remove(); } } /* ========================================== Smooth Scrolling ========================================== */ function initSmoothScroll() { const links = document.querySelectorAll('a[href^="#"]'); links.forEach(link => { link.addEventListener('click', function(e) { const href = this.getAttribute('href'); if (href === '#') { e.preventDefault(); window.scrollTo({ top: 0, behavior: 'smooth' }); return; } const target = document.querySelector(href); if (target) { e.preventDefault(); const header = document.querySelector('.header'); const headerHeight = header ? header.offsetHeight : 100; const targetPosition = target.offsetTop - headerHeight - 30; window.scrollTo({ top: Math.max(0, targetPosition), behavior: 'smooth' }); } }); }); } /* ========================================== Scroll to Top Button ========================================== */ function initScrollToTop() { // Create scroll to top button const scrollToTopBtn = document.createElement('button'); scrollToTopBtn.innerHTML = ''; scrollToTopBtn.className = 'scroll-to-top'; scrollToTopBtn.setAttribute('aria-label', 'ページトップに戻る'); // Add styles Object.assign(scrollToTopBtn.style, { position: 'fixed', bottom: '30px', right: '30px', width: '50px', height: '50px', borderRadius: '50%', background: 'linear-gradient(45deg, #ff9a9a, #e8a5a5)', color: 'white', border: 'none', boxShadow: '0 5px 20px rgba(255, 154, 154, 0.4)', cursor: 'pointer', opacity: '0', visibility: 'hidden', transition: 'all 0.3s ease', zIndex: '1000', fontSize: '1.2rem' }); document.body.appendChild(scrollToTopBtn); // Show/hide button based on scroll position window.addEventListener('scroll', function() { if (window.scrollY > 500) { scrollToTopBtn.style.opacity = '1'; scrollToTopBtn.style.visibility = 'visible'; } else { scrollToTopBtn.style.opacity = '0'; scrollToTopBtn.style.visibility = 'hidden'; } }); // Scroll to top functionality scrollToTopBtn.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); // Hover effects scrollToTopBtn.addEventListener('mouseenter', function() { this.style.transform = 'translateY(-3px)'; this.style.boxShadow = '0 8px 25px rgba(255, 154, 154, 0.6)'; }); scrollToTopBtn.addEventListener('mouseleave', function() { this.style.transform = 'translateY(0)'; this.style.boxShadow = '0 5px 20px rgba(255, 154, 154, 0.4)'; }); } /* ========================================== Notification System ========================================== */ function showNotification(message, type = 'info') { const notification = document.createElement('div'); notification.className = `notification notification-${type}`; const colors = { success: { bg: '#d4edda', border: '#c3e6cb', text: '#155724' }, error: { bg: '#f8d7da', border: '#f5c6cb', text: '#721c24' }, info: { bg: '#d1ecf1', border: '#bee5eb', text: '#0c5460' } }; const color = colors[type] || colors.info; Object.assign(notification.style, { position: 'fixed', top: '100px', right: '20px', background: color.bg, color: color.text, border: `1px solid ${color.border}`, borderRadius: '8px', padding: '1rem 1.5rem', maxWidth: '400px', zIndex: '2000', boxShadow: '0 10px 30px rgba(0, 0, 0, 0.1)', transform: 'translateX(120%)', transition: 'transform 0.3s ease', whiteSpace: 'pre-line' }); notification.innerHTML = `
${message}
`; document.body.appendChild(notification); // Animate in setTimeout(() => { notification.style.transform = 'translateX(0)'; }, 100); // Auto remove after 5 seconds setTimeout(() => { notification.style.transform = 'translateX(120%)'; setTimeout(() => { if (notification.parentNode) { notification.parentNode.removeChild(notification); } }, 300); }, 5000); } /* ========================================== Analytics & Tracking ========================================== */ function trackFormSubmission(inquiryType) { // GA4 or other analytics tracking if (typeof gtag !== 'undefined') { gtag('event', 'form_submit', { event_category: 'engagement', event_label: inquiryType, value: 1 }); } console.log(`Form submission tracked: ${inquiryType}`); } /* ========================================== Utility Functions ========================================== */ function debounce(func, wait) { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; } function throttle(func, limit) { let inThrottle; return function() { const args = arguments; const context = this; if (!inThrottle) { func.apply(context, args); inThrottle = true; setTimeout(() => inThrottle = false, limit); } }; } // Performance optimization for scroll events const optimizedScrollHandler = throttle(updateActiveNavLink, 100); window.addEventListener('scroll', optimizedScrollHandler); /* ========================================== Accessibility Improvements ========================================== */ document.addEventListener('keydown', function(e) { // Skip to content functionality if (e.key === 'Tab' && !e.shiftKey) { const focusedElement = document.activeElement; if (focusedElement.classList.contains('skip-link')) { const target = document.querySelector(focusedElement.getAttribute('href')); if (target) { target.focus(); e.preventDefault(); } } } }); /* ========================================== Error Handling ========================================== */ window.addEventListener('error', function(e) { console.error('JavaScript error:', e.error); // In production, you might want to send this to an error tracking service }); /* ========================================== Image Loading Optimization ========================================== */ function initImageLoading() { // 画像の遅延読み込み処理 const images = document.querySelectorAll('.product-image'); if ('IntersectionObserver' in window) { const imageObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { const img = entry.target; const parent = img.closest('.product-image-section'); img.onload = () => { if (parent) { parent.classList.add('loaded'); } }; // 画像が既に読み込み済みの場合 if (img.complete) { if (parent) { parent.classList.add('loaded'); } } imageObserver.unobserve(img); } }); }, { rootMargin: '50px' }); images.forEach(img => imageObserver.observe(img)); } else { // IntersectionObserver非対応の場合は即座に読み込み images.forEach(img => { const parent = img.closest('.product-image-section'); if (parent) { parent.classList.add('loaded'); } }); } // ヒーロー画像の読み込み処理 const heroImage = document.querySelector('.hero-main-image'); if (heroImage) { heroImage.onload = () => { heroImage.style.opacity = '1'; }; if (heroImage.complete) { heroImage.style.opacity = '1'; } } } // Ensure all critical functions are available globally window.openSampleForm = openSampleForm; window.openConsultationForm = openConsultationForm; window.closeModal = closeModal;