Personal Training & Nutrition

目標達成に導く、
あなた専用の
パーソナル指導。

短期的なダイエットで終わらせない。生涯役立つ、
科学的根拠に基づいたトレーニングと食習慣を身につけます。

無料カウンセリングを予約する

選ばれる3つの理由

オーダーメイドトレーニングのアイコン

完全オーダーメイドのパーソナルトレーニング

姿勢分析に基づき、お客様の目的、体力レベル、ライフスタイルに合わせた最適なメニューを専属トレーナーが作成します。

栄養コンサルティングのアイコン

生涯役立つ、実践的な栄養コンサルティング

無理のない食事指導とライフスタイルへの統合を重視。リバウンドしない食の知識と習慣をマンツーマンで指導します。

モチベーションサポートのアイコン

挫折させない、徹底したモチベーションサポート

目標達成まで寄り添い、メンタル面もサポート。トレーニング継続の習慣化をサポートする独自の仕組みを提供します。

結果が証明する。ビフォー&アフター&お客様の声

30代 男性 | 会社員

体脂肪率 8%減、姿勢改善に成功

「食事の知識が身につき、リバウンドの不安がなくなりました。」

50代 女性 | 主婦

長年の腰痛が改善、体力が向上

「トレーナーの熱心なサポートのおかげで、諦めずに続けられました。」

20代 女性 | サービス業

理想のボディラインを実現、自信アップ

「無理なく続けられるレシピ提案が本当に助かりました!」

全ビフォー&アフターを詳しく見る →

私たちが目指す、
トレーニングのその先

短期的な変化だけでなく、お客様の人生を豊かにする「一生モノの健康習慣」を提供します。健康を手段として、充実した毎日を送るサポートこそが私たちの使命です。

  • 知識と実践の統合
  • 継続可能な習慣のデザイン
  • お客様の人生全体を豊かに
全トレーナーのプロフィールを見る →

最高の体を手に入れる旅を、今すぐ始めませんか?

まずは無料カウンセリングで、あなたの目標と現在の課題をお聞かせください。

無料カウンセリングを予約する (30分)

お電話でのお問い合わせ: 03-XXXX-YYYY (平日 10:00 – 18:00)

// // // メインビジュアルの背景画像をAIで動的に生成・表示するためのスクリプトです。 // const userPrompt = “A cinematic, professional photograph of a fit Japanese woman in her 30s with a healthy, toned physique doing an intense functional training exercise (like lifting weights or kettlebell swings) in a modern, dark gym. The lighting is dramatic and moody, with high-contrast orange and deep black shadows. She looks focused and powerful. Hyperrealistic, fitness photography style.”; const apiKey = “”; const apiUrl = `https://generativelanguage.googleapis.com/v1beta/models/imagen-4.0-generate-001:predict?key=${apiKey}`; // Function to perform exponential backoff retry for fetch requests const fetchWithRetry = async (url, options, maxRetries = 5) => { for (let i = 0; i < maxRetries; i++) { try { const response = await fetch(url, options); if (response.status !== 429) { return response; } // If 429, wait using exponential backoff const delay = Math.pow(2, i) * 1000 + Math.random() * 1000; await new Promise(resolve => setTimeout(resolve, delay)); } catch (error) { // For network errors, wait and retry const delay = Math.pow(2, i) * 1000 + Math.random() * 1000; await new Promise(resolve => setTimeout(resolve, delay)); } } throw new Error(‘Request failed after multiple retries’); }; // Image generation function async function generateImageAndDisplay() { const heroSection = document.getElementById(‘hero-section’); if (!heroSection) return; // 1. Show loading indicator heroSection.style.backgroundImage = ‘none’; heroSection.classList.add(‘bg-gray-900’, ‘flex’, ‘items-center’, ‘justify-center’); // Temporarily replace content with loading spinner const originalContent = heroSection.innerHTML; heroSection.innerHTML = `

画像を生成中…

`; // 2. Prepare payload and call API const payload = { instances: [{ prompt: userPrompt }], parameters: { “sampleCount”: 1 } }; try { const response = await fetchWithRetry(apiUrl, { method: ‘POST’, headers: { ‘Content-Type’: ‘application/json’ }, body: JSON.stringify(payload) }); if (!response.ok) { throw new Error(`API returned status ${response.status}`); } const result = await response.json(); const base64Data = result.predictions && result.predictions.length > 0 && result.predictions[0].bytesBase64Encoded; if (base64Data) { const imageUrl = `data:image/png;base64,${base64Data}`; // 3. Update the HTML section with the generated image heroSection.classList.remove(‘bg-gray-900’, ‘flex’, ‘items-center’, ‘justify-center’); heroSection.style.backgroundImage = `url(‘${imageUrl}’)`; heroSection.style.backgroundSize = ‘cover’; heroSection.style.backgroundPosition = ‘center’; heroSection.style.filter = ‘brightness(0.7)’; // Keep filter for readability // Restore original content structure heroSection.innerHTML = originalContent; } else { throw new Error(‘Image data was not found in the response.’); } } catch (error) { console.error(“画像生成エラー:”, error); // Fallback to placeholder image with error message heroSection.classList.remove(‘bg-gray-900’, ‘flex’, ‘items-center’, ‘justify-center’); heroSection.style.backgroundImage = `url(‘https://placehold.co/1920×800/800000/ffffff?text=Image+Generation+Failed%0A%E5%86%99%E7%9C%9F%E7%94%9F%E6%88%90%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F’)`; heroSection.style.backgroundSize = ‘cover’; heroSection.style.backgroundPosition = ‘center’; heroSection.style.filter = ‘brightness(0.7)’; // Restore content but show error indication (optional, content is already there) heroSection.innerHTML = originalContent; const h1 = heroSection.querySelector(‘h1’); if (h1) h1.innerHTML = ‘画像生成に失敗しました
目標達成に導く指導。’; } } // Ensure the script runs after the DOM is loaded window.onload = function() { // Only trigger image generation if the default placeholder is detected const heroSection = document.getElementById(‘hero-section’); if (heroSection && heroSection.style.backgroundImage.includes(‘placehold.co’)) { generateImageAndDisplay(); } }
上部へスクロール