diff --git a/src/components/Hero.astro b/src/components/Hero.astro index dca6b47..190e111 100644 --- a/src/components/Hero.astro +++ b/src/components/Hero.astro @@ -15,12 +15,18 @@ interface Props { } const { - badge = "AI AGENCY ในประเทศไทย", - title = "เว็บไซต์ที่ขายได้ ไม่ใช่แค่สวย", - subtitle = "เราออกแบบเว็บไซต์ + AI Chatbot + Marketing Automation ให้ธุรกิจไทย เพิ่มยอดขายเฉลี่ย 2–4 เท่า ภายใน 6 เดือน ด้วยงบที่จับต้องได้ เริ่มต้น 15,000 บาท", + badge = 'เราจะช่วยคุณเพิ่มกำไร', + title = 'เราช่วยวางระบบงาน และใช้สถิติวางกลยุทธ์ทางการตลาด', + subtitle = 'รับทำเว็บ ที่ปรึกษาการตลาด และวางระบบ AI ในองค์กร เริ่มจากดูสถิติของคุณก่อน ไม่ใช่เดาว่าควรทำอะไร', showCTA = true, - ctaText = "เริ่มปรึกษาฟรี", - ctaLink = "/contact", + ctaText = 'เริ่มปรึกษาฟรี', + ctaLink = '/contact', + pains = [ + { surface: 'yellow', text: 'ยิ่งขาย กำไรยิ่งลด?' }, + { surface: 'purple-soft', text: 'มีเว็บไซต์ เหมือนไม่มี?' }, + { surface: 'mint', text: 'พนักงานทำงานได้น้อยกว่าที่ต้องการ?' }, + { surface: 'teal', text: 'เอา AI มาให้ใช้ แต่งานไม่ได้มากขึ้นตามที่คิด?' }, + ], } = Astro.props; // Split title into words for kinetic animation @@ -46,50 +52,66 @@ const titleWords = title.split(' ');
- -
- - {badge} -
+ +
+ +
+ +
+ + {badge} +
- -

- {titleWords.map((word, index) => ( - - - {word} - - - ))} -

+ +

+ {titleWords.map((word, index) => ( + + + {word} + + + ))} +

- -
-
-
+ +
+
+
- -

- -

+ +

+ +

- - {showCTA && ( -
- - {ctaText} - - - - - + + {showCTA && ( + + )} + +
- )} - + +
+ {pains.map((p, i) => ( +
+
คุณกำลังเจอปัญหา
+
{p.text}
+
+ ))} +
+
@@ -274,7 +296,103 @@ const titleWords = title.split(' '); position: relative; z-index: 1; padding: 140px var(--gutter) 100px; - max-width: 1200px; + max-width: 1600px; + } + + /* ============================================ + HERO GRID — 2 COLUMNS (text + pain stack) + ============================================ */ + + .hero-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + align-items: center; + } + + .hero-text { + min-width: 0; + } + + .hero-pain-stack { + display: flex; + flex-direction: column; + gap: 20px; + min-width: 0; + } + + .pain-card { + padding: 28px 32px; + border-radius: var(--radius-xl); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); + border: 1px solid transparent; + opacity: 0; + transform: translateY(20px); + animation: painReveal 0.7s var(--ease-out-expo) var(--pain-delay, 0s) forwards; + transition: transform 0.4s var(--ease-out-expo); + } + .pain-card:hover { + transform: translateY(-4px); + } + + @keyframes painReveal { + to { + opacity: 1; + transform: translateY(0); + } + } + + .pain-yellow { + background: var(--color-primary); + color: var(--color-black); + } + .pain-purple-soft { + background: var(--color-purple-soft); + color: var(--color-black); + } + .pain-mint { + background: var(--color-mint-soft); + color: var(--color-black); + } + .pain-teal { + background: var(--color-teal); + color: var(--color-white); + } + .pain-teal .pain-eyebrow { color: var(--color-primary); } + + .pain-eyebrow { + font-family: var(--font-display); + font-size: 11px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 2px; + opacity: 0.7; + margin-bottom: 8px; + } + + .pain-text { + font-family: var(--font-display); + font-size: 22px; + font-weight: 800; + line-height: 1.3; + } + + @media (max-width: 1024px) { + .hero-grid { + grid-template-columns: 1fr; + gap: 40px; + } + .hero-text { + order: 1; + } + .hero-pain-stack { + order: 2; + } + } + + @media (max-width: 640px) { + .pain-text { font-size: 18px; } + .pain-card { padding: 20px 24px; } } /* ============================================ diff --git a/src/pages/index.astro b/src/pages/index.astro index 2a540aa..ce9db47 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -76,8 +76,8 @@ const featuredPortfolio = portfolio.filter(p => p.data.featured).slice(0, 4); @@ -137,7 +137,7 @@ const featuredPortfolio = portfolio.filter(p => p.data.featured).slice(0, 4);
บริการของเรา

- เริ่มจากอันที่ปวดที่สุด ค่อยขยายไปอันอื่น + เลือกบริการที่ตรงกับปัญหาของคุณ

ไม่จำเป็นต้องทำทุกอย่างพร้อมกัน

@@ -167,8 +167,8 @@ const featuredPortfolio = portfolio.filter(p => p.data.featured).slice(0, 4); objective: 'เพิ่มยอดขาย และความน่าเชื่อถือให้ธุรกิจ', }, ]; - // Equal 4x3 tiles (full width, 1 row) - const span = 3; + // 2x2 layout — each tile span 6 (6+6 per row, 2 rows) + const span = 6; const surface = (['yellow', 'purple-soft', 'mint', 'soft'] as const)[i]; const copy = tileCopy[i]; return (