Phase 1: Homepage seamless design - add gradient transitions

- Added gradient transitions between sections in global.css
- Portfolio section now has gradient-top (dark to white fade)
- Blog section now has gradient-bottom (white fade from dark)
- Reduced portfolio overlay opacity from 0.85 to 0.65
- Added border to blog cards for white-on-white visibility
- Blog cards now have primary color accent on hover
This commit is contained in:
Kunthawat Greethong
2026-05-21 14:29:31 +07:00
parent 9db1d12b9c
commit b9cd01a55f
85 changed files with 8005 additions and 4702 deletions

View File

@@ -0,0 +1,7 @@
{"t":0,"agent":"aa3cbfe","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"af23dcd","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"a734a6b","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"a27cab4","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"a7cb1f3","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"aa9fb06","agent_type":"unknown","event":"agent_stop","success":true}
{"t":0,"agent":"aa710ef","agent_type":"unknown","event":"agent_stop","success":true}

View File

@@ -0,0 +1,16 @@
{
"created_at": "2026-05-13T03:22:24.370Z",
"trigger": "auto",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}

View File

@@ -0,0 +1,16 @@
{
"created_at": "2026-05-13T03:38:42.949Z",
"trigger": "auto",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}

View File

@@ -0,0 +1,16 @@
{
"created_at": "2026-05-13T14:16:02.791Z",
"trigger": "auto",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}

View File

@@ -0,0 +1,16 @@
{
"created_at": "2026-05-14T01:41:35.232Z",
"trigger": "auto",
"active_modes": {},
"todo_summary": {
"pending": 0,
"in_progress": 0,
"completed": 0
},
"wisdom_exported": false,
"background_jobs": {
"active": [],
"recent": [],
"stats": null
}
}

View File

@@ -0,0 +1,7 @@
{
"tool_name": "Bash",
"tool_input_preview": "{\"command\":\"for path in \\\"/\\\" \\\"/portfolio\\\" \\\"/blog\\\" \\\"/services/ai\\\" \\\"/services/marketing\\\"; do echo -n \\\"$path: \\\"; curl -s -o /dev/null -w \\\"%{http_code}\\\\n\\\" \\\"http://localhost:4321${path}\\\"; d...",
"error": "Exit code 127",
"timestamp": "2026-05-14T02:15:35.813Z",
"retry_count": 1
}

View File

@@ -0,0 +1,6 @@
{
"session_id": "e5f480d6-2b75-4bfe-b154-b1e53e34e0a3",
"started_at": "2026-05-14T01:42:56.165Z",
"cwd": "/Users/kunthawatgreethong/Gitea/moreminimore-emdash/moreminimore-site/src/pages",
"pid": 65131
}

View File

@@ -0,0 +1,7 @@
{
"agents": [],
"total_spawned": 0,
"total_completed": 0,
"total_failed": 0,
"last_updated": "2026-05-14T02:36:34.781Z"
}

View File

@@ -1,128 +1,46 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
const whyChooseUs = [
{ icon: "🎯", title: "ตรงต่อความต้องการ", desc: "เราเข้าใจว่าทุกธุรกิจมีความแตกต่าง เราออกแบบโซลูชันที่เหมาะกับคุณ" },
{ icon: "⚡", title: "ส่งงานรวดเร็ว", desc: "ทำงานอย่างมีประสิทธิภาพ ส่งมอบงานตรงเวลา ไม่ผิดสัญญา" },
{ icon: "🛡️", title: "รับประกันคุณภาพ", desc: "หากไม่พอใจในงาน เราพร้อมแก้ไขจนกว่าจะถูกใจ" },
{ icon: "💬", title: "ดูแลต่อเนื่อง", desc: "ให้บริการดูแลหลังการขาย พร้อม support ตลอด 24 ชม." }
];
import PageHero from '../components/PageHero.astro';
---
<Base title="เกี่ยวกับเรา | MoreminiMore">
<Base title="เกี่ยวกับเรา - MoreminiMore">
<Navigation />
<Hero
title="เกี่ยวกับ มอร์มินิมอร์"
subtitle="บริษัท มอร์มินิมอร์ จำกัด<br>รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย"
<PageHero
badge="เกี่ยวกับเรา"
image="/images/hero/about.jpg"
theme="yellow"
showCTA={false}
variant="centered"
size="compact"
title="MOREMINIMORE"
subtitle="ดิจิทัลเอเจนซี่ที่ช่วยให้ธุรกิจไทยเติบโตด้วยเทคโนโลยีสมัยใหม่"
/>
<!-- About Content -->
<section class="section about-section">
<section class="about-content-section" style="background: #ffffff; margin-top: -2px; padding: 100px 0;">
<div class="container">
<div class="about-grid">
<div class="about-image">
<img src="/images/hero/about-us-hero.jpg" alt="MoreminiMore Team" />
</div>
<div class="about-content">
<span class="section-badge">เราคือใคร</span>
<h2 class="section-title">เราคือทีมงานด้านดิจิทัลที่พร้อมเปลี่ยนธุรกิจของคุณ</h2>
<div class="about-content reveal">
<h2 class="about-title">เราคือทีมที่สร้างสรรค์<br/>โซลูชันดิจิทัล</h2>
<p class="about-text">
MoreminiMore เป็นทีมงานที่มีประสบการณ์ในการพัฒนาเว็บไซต์และระบบอัตโนมัติมากว่า 5 ปี
เราเชื่อว่าเทคโนโลยีดิจิทัลสามารถช่วยเพิ่มยอดขายและลดต้นทุนให้ธุรกิจได้อย่างมีประสิทธิภาพ
MoreminiMore ก่อตั้งขึ้นด้วยความมุ่งมั่นในการช่วยเหลือธุรกิจไทยให้เติบโตในยุคดิจิทัล
เราเชื่อว่าเทคโนโลยี AI และระบบอัตโนมัติสามารถช่วยเพิ่มประสิทธิภาพและลดต้นทุนได้อย่างมาก
</p>
<p class="about-text">
ทีมงานของเราประกอบด้วยผู้เชี่ยวชาญหลากหลายสาขา ไม่ว่าจะเป็นด้านการพัฒนาเว็บไซต์
การตลาดดิจิทัล AI Automation และการให้คำปรึกษาด้านเทคโนโลยี
ทีมงานของเราประกอบด้วยผู้เชี่ยวชาญด้านการพัฒนาเว็บไซต์ การตลาดดิจิทัล และ AI
ที่พร้อมให้คำปรึกษาและออกแบบโซลูชันที่เหมาะสมกับความต้องการของแต่ละธุรกิจ
</p>
<div class="about-stats">
<div class="stat">
<span class="stat-number">50+</span>
<span class="stat-label">โปรเจกต์</span>
</div>
<div class="stat">
<span class="stat-number">40+</span>
<span class="stat-label">ลูกค้า</span>
</div>
<div class="stat">
<span class="stat-number">5+</span>
<span class="stat-label">ปีประสบการณ์</span>
</div>
</div>
<div class="about-values reveal">
<div class="value-card">
<span class="value-number">50+</span>
<span class="value-label">โปรเจกต์สำเร็จ</span>
</div>
</div>
</div>
</div>
</section>
<!-- Services Overview -->
<section class="section section-light services-section">
<div class="container">
<div class="section-header">
<span class="section-badge">บริการของเรา</span>
<h2 class="section-title">เราให้บริการอะไรบ้าง</h2>
</div>
<div class="services-grid">
<div class="service-item">
<span class="service-icon">🌐</span>
<h3 class="service-title">พัฒนาเว็บไซต์</h3>
<p class="service-desc">สร้างเว็บไซต์ที่ทันสมัย รวดเร็ว และตอบสนองความต้องการของลูกค้าของคุณ</p>
</div>
<div class="service-item">
<span class="service-icon">📈</span>
<h3 class="service-title">Marketing Automation</h3>
<p class="service-desc">Automate การตลาดของคุณเพื่อเพิ่มประสิทธิภาพและลดต้นทุน</p>
</div>
<div class="service-item">
<span class="service-icon">🤖</span>
<h3 class="service-title">AI Automation</h3>
<p class="service-desc">นำ AI มาใช้เพื่อเพิ่มยอดขายและปรับปรุงการให้บริการลูกค้า</p>
</div>
<div class="service-item">
<span class="service-icon">💡</span>
<h3 class="service-title">Tech Consult</h3>
<p class="service-desc">ให้คำปรึกษาด้านเทคโนโลยีเพื่อธุรกิจของคุณ</p>
</div>
</div>
</div>
</section>
<!-- Why Choose Us -->
<section class="section why-section">
<div class="container">
<div class="section-header">
<span class="section-badge">ทำไมต้องเลือกเรา</span>
<h2 class="section-title">เหตุผลที่ลูกค้าไว้วางใจเรา</h2>
</div>
<div class="why-grid">
{whyChooseUs.map((item, i) => (
<div class="why-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<span class="why-icon">{item.icon}</span>
<h3 class="why-title">{item.title}</h3>
<p class="why-desc">{item.desc}</p>
<div class="value-card">
<span class="value-number">40+</span>
<span class="value-label">ลูกค้าที่ไว้วางใจ</span>
</div>
<div class="value-card">
<span class="value-number">5+</span>
<span class="value-label">ปีประสบการณ์</span>
</div>
))}
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมเริ่มทำงานกับเรา?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมรับฟังโปรเจกต์ของคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
</div>
</div>
</div>
@@ -132,268 +50,88 @@ const whyChooseUs = [
</Base>
<style>
.hero {
padding: 160px 0 80px;
background: var(--color-black);
text-align: center;
}
.hero-badge {
display: inline-block;
background: rgba(254, 212, 0, 0.1);
color: var(--color-primary);
padding: 8px 20px;
border-radius: 30px;
font-size: 14px;
font-weight: 500;
margin-bottom: 24px;
border: 1px solid rgba(254, 212, 0, 0.2);
}
.hero-title {
font-size: clamp(48px, 10vw, 96px);
font-weight: 800;
color: var(--color-white);
margin-bottom: 16px;
text-transform: uppercase;
}
.hero-desc {
font-size: 20px;
color: #999;
max-width: 600px;
margin: 0 auto;
line-height: 1.8;
}
.about-section {
background: var(--color-white);
.about-content-section {
/* Inline styles handle background and padding */
}
.about-grid {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-columns: 1.5fr 1fr;
gap: 80px;
align-items: center;
}
.about-image {
border-radius: 24px;
overflow: hidden;
box-shadow: 0 20px 60px rgba(0,0,0,0.1);
}
.about-image img {
width: 100%;
height: auto;
display: block;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(28px, 4vw, 40px);
font-weight: 700;
margin-bottom: 24px;
.about-title {
font-family: var(--font-display);
font-size: clamp(32px, 5vw, 48px);
font-weight: 900;
line-height: 1.2;
margin-bottom: 32px;
color: var(--color-dark);
}
.about-text {
font-size: 16px;
color: var(--color-medium-gray);
font-size: 18px;
line-height: 1.8;
margin-bottom: 20px;
color: var(--color-gray-600);
margin-bottom: 24px;
}
.about-stats {
.about-values {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
.value-card {
display: flex;
gap: 48px;
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #eee;
}
.stat {
flex-direction: column;
align-items: center;
padding: 32px 20px;
background: var(--color-gray-100);
border-radius: var(--radius-xl);
text-align: center;
}
.stat-number {
display: block;
font-family: var(--font-heading);
font-size: 40px;
font-weight: 800;
.value-number {
font-family: var(--font-display);
font-size: 48px;
font-weight: 900;
color: var(--color-primary);
line-height: 1;
margin-bottom: 8px;
}
.stat-label {
.value-label {
font-size: 14px;
color: var(--color-medium-gray);
color: var(--color-gray-600);
text-transform: uppercase;
letter-spacing: 1px;
}
.services-section {
background: var(--color-light-gray);
}
.section-header {
text-align: center;
margin-bottom: 60px;
}
.services-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px;
}
.service-item {
text-align: center;
padding: 40px 24px;
background: var(--color-white);
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}
.service-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.service-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 12px;
}
.service-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.why-section {
background: var(--color-white);
}
.why-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px;
}
.why-card {
padding: 40px 32px;
text-align: center;
}
.why-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.why-title {
font-size: 18px;
font-weight: 700;
margin-bottom: 12px;
}
.why-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
max-width: 800px;
margin: 0 auto;
}
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
margin-bottom: 16px;
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.btn-lg {
padding: 18px 40px;
font-size: 16px;
}
.btn-outline {
background: transparent;
color: var(--color-black);
border: 2px solid var(--color-black);
}
.btn-outline:hover {
background: var(--color-black);
color: var(--color-white);
letter-spacing: 2px;
}
@media (max-width: 1024px) {
.about-grid {
grid-template-columns: 1fr;
gap: 40px;
}
.services-grid,
.why-grid {
grid-template-columns: repeat(2, 1fr);
gap: 48px;
}
}
@media (max-width: 640px) {
.services-grid,
.why-grid {
grid-template-columns: 1fr;
.about-values {
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.about-stats {
flex-wrap: wrap;
gap: 24px;
.value-card {
padding: 24px 16px;
}
.cta-actions {
flex-direction: column;
.value-number {
font-size: 36px;
}
.btn-lg {
width: 100%;
justify-content: center;
.value-label {
font-size: 12px;
}
}
</style>

View File

@@ -1,104 +1,96 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
import PageHero from '../../components/PageHero.astro';
import { getCollection, render } from 'astro:content';
export function getStaticPaths() {
const posts = [
{ slug: "5-ways-ai-increase-sales", title: "5 วิธี AI เพิ่มยอดขาย", image: "/images/blog/5-ways-ai-increase-sales.jpg" },
{ slug: "ai-content-google-love", title: "AI Content ที่ Google รัก", image: "/images/blog/ai-content-google-love.jpg" },
{ slug: "ai-for-sme-thailand", title: "AI สำหรับ SME ไทย", image: "/images/blog/ai-for-sme-thailand.jpg" },
{ slug: "back-office-automation", title: "Back Office Automation", image: "/images/blog/back-office-automation.jpg" },
{ slug: "chatbot-business-case-study", title: "Chatbot Business Case Study", image: "/images/blog/chatbot-business-case-study.jpg" },
{ slug: "data-driven-marketing", title: "Data Driven Marketing", image: "/images/blog/data-driven-marketing.jpg" },
{ slug: "digital-transformation-guide", title: "Digital Transformation Guide", image: "/images/blog/digital-transformation.jpg" },
{ slug: "marketing-automation-guide", title: "Marketing Automation Guide", image: "/images/blog/marketing-automation-guide.jpg" },
{ slug: "seo-2026-business-guide", title: "SEO 2026 สำหรับ Business", image: "/images/blog/seo-2026-business-guide.jpg" },
{ slug: "website-2026-must-have", title: "Website 2026 Must Have", image: "/images/blog/website-2026-must-have.jpg" }
];
// For SSR mode, use Astro.params directly
const { slug } = Astro.params;
return posts.map(post => ({
params: { slug: post.slug },
props: { post }
}));
const allPosts = await getCollection('blog');
// Use id for matching since slug might be undefined
const post = allPosts.find(p => p.id === slug);
if (!post) {
return Astro.redirect('/404');
}
const { post } = Astro.props;
const { Content } = await render(post);
const related = allPosts
.filter(p => p.id !== post.id)
.sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf())
.slice(0, 3);
const formattedDate = post.data.date.toLocaleDateString('th-TH', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
---
<Base title={`${post.title} | MoreminiMore`}>
<Base title={`${post.data.title} | MoreminiMore`}>
<Navigation />
<Hero
title={post.title}
subtitle="อ่านบทความล่าสุดเกี่ยวกับ AI, Marketing และเทคโนโลยีสำหรับธุรกิจ"
badge="บทความ"
image={post.image}
theme="yellow"
showCTA={false}
<PageHero
badge={post.data.category}
title={post.data.title}
subtitle={formattedDate}
/>
<!-- Article Section -->
<!-- Article Image -->
{post.data.image && (
<div class="article-image">
<div class="container">
<img src={post.data.image} alt={post.data.title} />
</div>
</div>
)}
<!-- Article Content -->
<section class="section article-section">
<div class="container">
<div class="article-layout">
<div class="article-grid">
<article class="article-content">
<div class="article-hero">
<img src={post.image} alt={post.title} />
</div>
<div class="article-body">
<p class="article-lead">
ในยุคที่ AI กลายเป็นเครื่องมือสำคัญในการทำธุรกิจ หลายคนอาจสงสัยว่า AI สามารถช่วยเพิ่มยอดขายได้อย่างไร
</p>
<h2>AI กับการเพิ่มยอดขาย</h2>
<p>
AI สามารถช่วยเพิ่มยอดขายได้หลายวิธี ไม่ว่าจะเป็นการวิเคราะห์พฤติกรรมลูกค้า การทำ Personalization
การ automate การตลาด และการให้บริการลูกค้าตลอด 24 ชั่วโมง
</p>
<h2>วิธีที่ 1: Chatbot ตอบคำถามลูกค้า</h2>
<p>
Chatbot ที่ขับเคลื่อนด้วย AI สามารถตอบคำถามลูกค้าได้ตลอด 24 ชั่วโมง โดยไม่ต้องมีพนักงาน wake อยู่
นอกจากนี้ยังสามารถเก็บข้อมูลลูกค้าและแนะนำสินค้าที่เหมาะสมได้อีกด้วย
</p>
<h2>วิธีที่ 2: วิเคราะห์ข้อมูลลูกค้า</h2>
<p>
AI สามารถวิเคราะห์ข้อมูลลูกค้าเพื่อหา pattern และ insights ที่ซ่อนอยู่ ทำให้ธุรกิจเข้าใจลูกค้าได้ลึกขึ้น
และสามารถนำไปปรับปรุงสินค้าหรือบริการได้ตรงจุด
</p>
<h2>วิธีที่ 3: Personalization</h2>
<p>
AI สามารถสร้างประสบการณ์ที่ personalized ให้กับลูกค้าแต่ละคน ไม่ว่าจะเป็นการแนะนำสินค้าที่สนใจ
การส่ง offer ที่เหมาะสม หรือการปรับ content ให้ตรงกับความต้องการ
</p>
<h2>สรุป</h2>
<p>
AI สามารถช่วยเพิ่มยอดขายได้อย่างมาก สิ่งสำคัญคือการเลือกใช้ AI ให้เหมาะกับธุรกิจของคุณ
และเริ่มต้นจากจุดที่มี impact สูงสุดก่อน
</p>
<Content />
</div>
</article>
<!-- Sidebar -->
<aside class="article-sidebar">
<div class="sidebar-widget">
<h3>บริการที่เกี่ยวข้อง</h3>
<ul class="related-services">
<li><a href="/services/ai">AI Automation</a></li>
<li><a href="/services/marketing">Marketing Automation</a></li>
<li><a href="/services/webdev">พัฒนาเว็บไซต์</a></li>
</ul>
<!-- About -->
<div class="sidebar-card">
<h3 class="sidebar-title">เกี่ยวกับ MoreminiMore</h3>
<p class="sidebar-text">
ดิจิทัลเอเจนซี่ที่ช่วยให้ธุรกิจไทยเติบโตด้วยเทคโนโลยีสมัยใหม่
</p>
<a href="/about" class="btn btn-dark btn-sm">ดูเพิ่มเติม</a>
</div>
<div class="sidebar-widget">
<h3>ติดต่อปรึกษา</h3>
<p>สนใจใช้ AI ในธุรกิจของคุณ?</p>
<a href="/contact" class="btn btn-primary">ปรึกษาฟรี</a>
<!-- Contact -->
<div class="sidebar-card">
<h3 class="sidebar-title">สนใจบริการ?</h3>
<p class="sidebar-text">ติดต่อเราได้เลย ปรึกษาฟรี!</p>
<a href="/contact" class="btn btn-primary btn-sm">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-sm" style="margin-top: 8px;">080-995-5945</a>
</div>
<!-- Related Posts -->
{related.length > 0 && (
<div class="sidebar-card">
<h3 class="sidebar-title">บทความที่เกี่ยวข้อง</h3>
<div class="related-list">
{related.map(r => (
<a href={`/blog/${r.id}`} class="related-item">
<img src={r.data.image} alt={r.data.title} />
<span>{r.data.title}</span>
</a>
))}
</div>
</div>
)}
</aside>
</div>
</div>
@@ -108,134 +100,206 @@ const { post } = Astro.props;
</Base>
<style>
.hero {
padding: 140px 0 60px;
background: var(--color-black);
.article-image {
padding: 40px 0;
background: var(--color-gray-100);
}
.back-link {
display: inline-block;
color: var(--color-primary);
font-size: 14px;
margin-bottom: 24px;
transition: opacity 0.2s;
}
.back-link:hover {
opacity: 0.8;
}
.hero-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
color: var(--color-white);
max-width: 800px;
.article-image img {
width: 100%;
max-height: 500px;
object-fit: cover;
border-radius: 20px;
}
.article-section {
background: var(--color-white);
padding-top: 60px;
}
.article-layout {
.article-grid {
display: grid;
grid-template-columns: 1fr 320px;
gap: 64px;
}
.article-hero {
margin-bottom: 48px;
border-radius: 16px;
overflow: hidden;
}
.article-hero img {
width: 100%;
height: auto;
grid-template-columns: 1fr 360px;
gap: 60px;
}
.article-body {
max-width: 720px;
}
.article-lead {
font-size: 20px;
color: var(--color-medium-gray);
font-size: 18px;
line-height: 1.8;
margin-bottom: 32px;
padding-bottom: 32px;
border-bottom: 1px solid #eee;
color: var(--color-gray-600);
}
.article-body h2 {
font-size: 24px;
.article-body :global(h2) {
font-size: 28px;
font-weight: 700;
margin: 40px 0 16px;
color: var(--color-dark);
margin: 40px 0 20px;
}
.article-body p {
font-size: 16px;
color: var(--color-medium-gray);
line-height: 1.8;
.article-body :global(h3) {
font-size: 22px;
font-weight: 700;
color: var(--color-dark);
margin: 32px 0 16px;
}
.article-body :global(p) {
margin-bottom: 20px;
}
.article-body :global(ul), .article-body :global(ol) {
margin: 20px 0;
padding-left: 24px;
}
.article-body :global(li) {
margin-bottom: 12px;
}
.article-body :global(a) {
color: var(--color-primary);
font-weight: 600;
}
.article-body :global(a:hover) {
text-decoration: underline;
}
.article-body :global(blockquote) {
border-left: 4px solid var(--color-primary);
padding-left: 24px;
margin: 32px 0;
font-style: italic;
color: var(--color-gray-600);
}
.article-body :global(img) {
border-radius: 12px;
margin: 24px 0;
}
/* Sidebar */
.article-sidebar {
display: flex;
flex-direction: column;
gap: 32px;
gap: 24px;
}
.sidebar-widget {
background: var(--color-light-gray);
.sidebar-card {
background: var(--color-gray-100);
border-radius: 16px;
padding: 28px;
}
.sidebar-widget h3 {
.sidebar-title {
font-size: 18px;
font-weight: 700;
color: var(--color-dark);
margin-bottom: 16px;
}
.related-services {
list-style: none;
padding: 0;
}
.related-services li {
margin-bottom: 12px;
}
.related-services a {
color: var(--color-medium-gray);
.sidebar-text {
font-size: 14px;
transition: color 0.2s;
}
.related-services a:hover {
color: var(--color-primary);
}
.sidebar-widget p {
font-size: 14px;
color: var(--color-medium-gray);
color: var(--color-gray-600);
line-height: 1.6;
margin-bottom: 16px;
}
.btn-sm {
padding: 12px 20px;
font-size: 14px;
border-radius: 8px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
display: inline-flex;
align-items: center;
justify-content: center;
}
.btn-dark {
background: var(--color-dark);
color: var(--color-white);
}
.btn-dark:hover {
background: var(--color-dark-light);
}
.btn-primary {
background: var(--color-primary);
color: var(--color-black);
}
.btn-primary:hover {
background: var(--color-primary-dark);
}
.btn-outline {
background: transparent;
border: 2px solid var(--color-dark);
color: var(--color-dark);
}
.btn-outline:hover {
background: var(--color-dark);
color: var(--color-white);
}
/* Related Posts */
.related-list {
display: flex;
flex-direction: column;
gap: 16px;
}
.related-item {
display: flex;
align-items: center;
gap: 12px;
padding: 12px;
background: var(--color-white);
border-radius: 12px;
transition: all 0.3s ease;
}
.related-item:hover {
transform: translateX(4px);
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.related-item img {
width: 60px;
height: 60px;
object-fit: cover;
border-radius: 8px;
flex-shrink: 0;
}
.related-item span {
font-size: 14px;
font-weight: 600;
color: var(--color-dark);
line-height: 1.3;
}
@media (max-width: 1024px) {
.article-layout {
.article-grid {
grid-template-columns: 1fr;
}
.article-sidebar {
order: -1;
flex-direction: row;
flex-wrap: wrap;
display: grid;
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.article-sidebar {
grid-template-columns: 1fr;
}
.sidebar-widget {
flex: 1;
min-width: 280px;
.article-body {
font-size: 16px;
}
}
</style>

View File

@@ -1,147 +1,58 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
import PageHero from '../../components/PageHero.astro';
import BlogCard from '../../components/BlogCard.astro';
import { getCollection } from 'astro:content';
const blogPosts = [
{
slug: "5-ways-ai-increase-sales",
title: "5 วิธี AI เพิ่มยอดขาย",
excerpt: "เรียนรู้ 5 วิธีที่ AI สามารถช่วยเพิ่มยอดขายของคุณได้อย่างมีประสิทธิภาพ",
image: "/images/blog/5-ways-ai-increase-sales.jpg",
date: "2026-01-15",
category: "AI"
},
{
slug: "ai-content-google-love",
title: "AI Content ที่ Google รัก",
excerpt: "วิธีสร้าง AI Content ที่ท z้ both user-friendly และ SEO-friendly",
image: "/images/blog/ai-content-google-love.jpg",
date: "2026-01-10",
category: "AI"
},
{
slug: "ai-for-sme-thailand",
title: "AI สำหรับ SME ไทย",
excerpt: "คู่มือการใช้ AI สำหรับธุรกิจ SME ไทยเพื่อเพิ่มขีดความสามารถในการแข่งขัน",
image: "/images/blog/ai-for-sme-thailand.jpg",
date: "2026-01-05",
category: "AI"
},
{
slug: "back-office-automation",
title: "Back Office Automation",
excerpt: "ลดต้นทุนและเพิ่มประสิทธิภาพด้วยระบบอัตโนมัติ",
image: "/images/blog/back-office-automation.jpg",
date: "2025-12-28",
category: "Automation"
},
{
slug: "chatbot-business-case-study",
title: "Chatbot Business Case Study",
excerpt: "กรณีศึกษาการใช้ Chatbot เพื่อเพิ่มยอดขายและลดต้นทุนการให้บริการ",
image: "/images/blog/chatbot-business-case-study.jpg",
date: "2025-12-20",
category: "Chatbot"
},
{
slug: "data-driven-marketing",
title: "Data Driven Marketing",
excerpt: "การตลาดที่ขับเคลื่อนด้วยข้อมูลเพื่อผลลัพธ์ที่ดีที่สุด",
image: "/images/blog/data-driven-marketing.jpg",
date: "2025-12-15",
category: "Marketing"
},
{
slug: "digital-transformation-guide",
title: "Digital Transformation Guide",
excerpt: "คู่มือฉบับสมบูรณ์สำหรับการ transform ธุรกิจของคุณสู่ดิจิทัล",
image: "/images/blog/digital-transformation.jpg",
date: "2025-12-10",
category: "Business"
},
{
slug: "marketing-automation-guide",
title: "Marketing Automation Guide",
excerpt: "เรียนรู้พื้นฐานของ Marketing Automation และวิธีเริ่มต้น",
image: "/images/blog/marketing-automation-guide.jpg",
date: "2025-12-05",
category: "Marketing"
},
{
slug: "seo-2026-business-guide",
title: "SEO 2026 Business Guide",
excerpt: "การทำ SEO สำหรับธุรกิจในยุค 2026 ต้องรู้อะไรบ้าง",
image: "/images/blog/seo-2026-business-guide.jpg",
date: "2025-11-28",
category: "SEO"
},
{
slug: "website-2026-must-have",
title: "Website 2026 Must Have",
excerpt: "ฟีเจอร์ที่เว็บไซต์ต้องมีในปี 2026",
image: "/images/blog/website-2026-must-have.jpg",
date: "2025-11-20",
category: "Web Dev"
}
];
const categories = ["ทั้งหมด", "AI", "Marketing", "Automation", "SEO", "Web Dev", "Business", "Chatbot"];
function formatDate(dateStr: string) {
const date = new Date(dateStr);
return date.toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' });
}
const blogPosts = await getCollection('blog');
const sortedPosts = blogPosts.sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
---
<Base title="บทความ | MoreminiMore">
<Base title="บทความ | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<!-- Hero Section -->
<Hero
title="ความรู้ด้านดิจิทัล"
subtitle="อ่านบทความล่าสุดเกี่ยวกับ AI, Marketing และเทคโนโลยีสำหรับธุรกิจ"
<PageHero
badge="บทความ"
image="/images/hero/blog-hero.jpg"
theme="yellow"
showCTA={false}
variant="centered"
size="compact"
title="บทความ"
subtitle="ความรู้ด้านดิจิทัลและเทคนิคใหม่ๆ สำหรับธุรกิจไทย"
/>
<!-- Blog Section -->
<section class="section blog-section">
<div class="container">
<!-- Featured Post -->
<div class="featured-post">
<a href={`/blog/${blogPosts[0].slug}`} class="featured-card">
<!-- Featured Post -->
{sortedPosts.length > 0 && (
<section class="section featured-section">
<div class="container">
<a href={`/blog/${sortedPosts[0].id}`} class="featured-card">
<div class="featured-image">
<img src={blogPosts[0].image} alt={blogPosts[0].title} />
{sortedPosts[0].data.image && (
<img src={sortedPosts[0].data.image} alt={sortedPosts[0].data.title} loading="eager" />
)}
</div>
<div class="featured-content">
<span class="category-badge">{blogPosts[0].category}</span>
<h2 class="featured-title">{blogPosts[0].title}</h2>
<p class="featured-excerpt">{blogPosts[0].excerpt}</p>
<span class="category-badge">{sortedPosts[0].data.category}</span>
<h2 class="featured-title">{sortedPosts[0].data.title}</h2>
<p class="featured-excerpt">{sortedPosts[0].data.excerpt}</p>
<span class="read-more">อ่านต่อ →</span>
</div>
</a>
</div>
</section>
)}
<!-- Blog Grid -->
<!-- Blog Grid -->
<section class="section blog-section">
<div class="container">
<div class="blog-grid">
{blogPosts.slice(1).map((post) => (
<a href={`/blog/${post.slug}`} class="blog-card card">
<div class="blog-image">
<img src={post.image} alt={post.title} loading="lazy" />
</div>
<div class="blog-content">
<span class="category-badge">{post.category}</span>
<h3 class="blog-title">{post.title}</h3>
<p class="blog-excerpt">{post.excerpt}</p>
<span class="blog-date">{formatDate(post.date)}</span>
</div>
</a>
{sortedPosts.slice(1).map((post, i) => (
<BlogCard
title={post.data.title}
excerpt={post.data.excerpt}
image={post.data.image}
date={post.data.date}
slug={post.id}
category={post.data.category}
/>
))}
</div>
</div>
@@ -162,182 +73,99 @@ function formatDate(dateStr: string) {
</Base>
<style>
.blog-section {
.featured-section {
background: var(--color-white);
padding-top: 80px;
}
.featured-post {
margin-bottom: 60px;
}
.featured-card {
display: grid;
grid-template-columns: 1.5fr 1fr;
gap: 48px;
background: var(--color-light-gray);
gap: 0;
background: var(--color-dark);
border-radius: 24px;
overflow: hidden;
transition: transform 0.4s ease;
}
.featured-card:hover { transform: scale(1.01); }
.featured-image {
aspect-ratio: 16/10;
overflow: hidden;
}
.featured-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s;
transition: transform 0.5s ease;
}
.featured-card:hover .featured-image img {
transform: scale(1.05);
}
.featured-card:hover .featured-image img { transform: scale(1.05); }
.featured-content {
padding: 48px;
display: flex;
flex-direction: column;
justify-content: center;
}
.category-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
padding: 6px 14px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
align-self: flex-start;
margin-bottom: 16px;
}
.featured-title {
font-size: 32px;
font-size: clamp(24px, 3vw, 32px);
font-weight: 700;
color: var(--color-white);
margin-bottom: 16px;
line-height: 1.3;
}
.featured-excerpt {
font-size: 16px;
color: var(--color-medium-gray);
font-size: 15px;
color: rgba(255,255,255,0.6);
line-height: 1.7;
margin-bottom: 24px;
}
.read-more {
color: var(--color-primary);
font-weight: 600;
font-size: 16px;
font-size: 14px;
}
.blog-section { background: var(--color-gray-100); }
.blog-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.blog-card {
display: flex;
flex-direction: column;
overflow: hidden;
}
.blog-image {
aspect-ratio: 16/10;
overflow: hidden;
}
.blog-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s;
}
.blog-card:hover .blog-image img {
transform: scale(1.05);
}
.blog-content {
padding: 24px;
flex-grow: 1;
display: flex;
flex-direction: column;
}
.blog-title {
font-size: 18px;
font-weight: 600;
margin-bottom: 8px;
line-height: 1.4;
}
.blog-excerpt {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
margin-bottom: 16px;
flex-grow: 1;
}
.blog-date {
font-size: 12px;
color: #999;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
max-width: 600px;
margin: 0 auto;
}
.section-primary { background: var(--color-primary); }
.cta-content { text-align: center; }
.cta-title {
font-size: clamp(28px, 4vw, 40px);
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
margin-bottom: 16px;
color: var(--color-black);
}
.cta-desc {
font-size: 18px;
color: rgba(0,0,0,0.7);
margin-bottom: 32px;
opacity: 0.8;
}
.btn-lg {
padding: 18px 40px;
font-size: 16px;
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.btn-lg { padding: 16px 36px; font-size: 16px; }
@media (max-width: 1024px) {
.featured-card {
grid-template-columns: 1fr;
}
.blog-grid {
grid-template-columns: repeat(2, 1fr);
}
.featured-card { grid-template-columns: 1fr; }
.featured-image { aspect-ratio: 16/7; }
.blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
.blog-grid {
grid-template-columns: 1fr;
}
.featured-content {
padding: 32px;
}
.featured-title {
font-size: 24px;
}
.blog-grid { grid-template-columns: 1fr; }
.featured-content { padding: 32px; }
}
</style>

View File

@@ -1,22 +1,17 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
import PageHero from '../components/PageHero.astro';
---
<Base title="ติดต่อเรา | MoreminiMore">
<Base title="ติดต่อเรา | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
title="พูดคุยกับเรา วันนี้เลย!"
subtitle="พร้อมให้คำปรึกษาและช่วยเหลือคุณ<br>ปรึกษาฟรี ไม่มีค่าใช้จ่าย"
<PageHero
badge="ติดต่อเรา"
image="/images/hero/contact.jpg"
theme="yellow"
showCTA={false}
variant="text-only"
size="compact"
title="ติดต่อเรา"
subtitle="พร้อมให้คำปรึกษาและช่วยเหลือคุณ ปรึกษาฟรี ไม่มีค่าใช้จ่าย"
/>
<!-- Contact Section -->
@@ -27,7 +22,11 @@ import Footer from '../components/Footer.astro';
<h2 class="info-title">ข้อมูลติดต่อ</h2>
<div class="contact-item">
<span class="contact-icon">📞</span>
<div class="contact-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/>
</svg>
</div>
<div class="contact-detail">
<h3>โทรศัพท์</h3>
<a href="tel:0809955945">080-995-5945</a>
@@ -35,7 +34,12 @@ import Footer from '../components/Footer.astro';
</div>
<div class="contact-item">
<span class="contact-icon">✉️</span>
<div class="contact-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
<polyline points="22,6 12,13 2,6"/>
</svg>
</div>
<div class="contact-detail">
<h3>อีเมล</h3>
<a href="mailto:contact@moreminimore.com">contact@moreminimore.com</a>
@@ -43,7 +47,11 @@ import Footer from '../components/Footer.astro';
</div>
<div class="contact-item">
<span class="contact-icon">💬</span>
<div class="contact-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/>
</svg>
</div>
<div class="contact-detail">
<h3>LINE</h3>
<a href="https://line.me/ti/p/~@539hdlul" target="_blank" rel="noopener noreferrer">@moreminimore</a>
@@ -51,7 +59,12 @@ import Footer from '../components/Footer.astro';
</div>
<div class="contact-item">
<span class="contact-icon">📍</span>
<div class="contact-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/>
<circle cx="12" cy="10" r="3"/>
</svg>
</div>
<div class="contact-detail">
<h3>ที่อยู่</h3>
<p>53 หมู่ 1 ต.บ้านแพ้ว อ.บ้านแพ้ว สมุทรสาคร 74120</p>
@@ -59,7 +72,12 @@ import Footer from '../components/Footer.astro';
</div>
<div class="contact-item">
<span class="contact-icon">⏰</span>
<div class="contact-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"/>
<polyline points="12 6 12 12 16 14"/>
</svg>
</div>
<div class="contact-detail">
<h3>เวลาทำการ</h3>
<p>จันทร์ - ศุกร์ 09:00 - 18:00 น.</p>
@@ -70,13 +88,13 @@ import Footer from '../components/Footer.astro';
<h3>ติดตามเรา</h3>
<div class="social-links">
<a href="https://www.facebook.com/moreminimore" class="social-link" aria-label="Facebook" target="_blank" rel="noopener noreferrer">
<img src="/icons/social/facebook.svg" alt="Facebook" />
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg>
</a>
<a href="https://line.me/ti/p/~@539hdlul" class="social-link" aria-label="LINE" target="_blank" rel="noopener noreferrer">
<img src="/icons/social/line.svg" alt="LINE" />
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63h2.386c.349 0 .63.285.63.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.627-.63.349 0 .631.285.631.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-9.491.371-.661.56-1.388.56-2.159"/></svg>
</a>
<a href="https://www.linkedin.com/company/moreminimore" class="social-link" aria-label="LinkedIn" target="_blank" rel="noopener noreferrer">
<img src="/icons/social/linkedin.svg" alt="LinkedIn" />
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"/><rect x="2" y="9" width="4" height="12"/><circle cx="4" cy="4" r="2"/></svg>
</a>
</div>
</div>
@@ -84,9 +102,7 @@ import Footer from '../components/Footer.astro';
<div class="contact-form-wrapper">
<form class="contact-form" id="contact-form">
<div class="form-header">
<h2 class="form-title">ส่งข้อความ</h2>
</div>
<h2 class="form-title">ส่งข้อความ</h2>
<div class="form-group">
<label for="name">ชื่อ-นามสกุล</label>
@@ -122,8 +138,8 @@ import Footer from '../components/Footer.astro';
<button type="submit" class="btn btn-primary btn-submit">
ส่งข้อความ
<svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"></path>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/>
</svg>
</button>
</form>
@@ -140,10 +156,8 @@ import Footer from '../components/Footer.astro';
e.preventDefault();
const form = e.target as HTMLFormElement;
const submitBtn = form.querySelector('.btn-submit') as HTMLButtonElement;
submitBtn.textContent = 'กำลังส่ง...';
submitBtn.disabled = true;
setTimeout(() => {
alert('ขอบคุณที่ติดต่อเรา! เราจะติดต่อกลับเร็วๆ นี้');
form.reset();
@@ -154,224 +168,149 @@ import Footer from '../components/Footer.astro';
</script>
<style>
.hero {
padding: 160px 0 100px;
background: var(--color-black);
text-align: center;
}
.hero-badge {
display: inline-block;
background: rgba(254, 212, 0, 0.1);
color: var(--color-primary);
padding: 8px 20px;
border-radius: 30px;
font-size: 14px;
font-weight: 500;
margin-bottom: 32px;
border: 1px solid rgba(254, 212, 0, 0.2);
}
.hero-title {
font-size: clamp(40px, 8vw, 72px);
font-weight: 800;
color: var(--color-white);
line-height: 1.1;
margin-bottom: 24px;
}
.title-line {
display: block;
}
.title-line.accent {
color: var(--color-primary);
}
.hero-desc {
font-size: 18px;
color: #999;
line-height: 1.8;
}
.contact-section { background: var(--color-white); }
.contact-grid {
display: grid;
grid-template-columns: 1fr 1.5fr;
gap: 64px;
grid-template-columns: 1fr 1.2fr;
gap: 80px;
}
.info-title {
font-size: 28px;
font-weight: 700;
margin-bottom: 32px;
color: var(--color-black);
}
.contact-item {
display: flex;
gap: 20px;
margin-bottom: 28px;
align-items: flex-start;
}
.contact-icon {
font-size: 28px;
width: 48px;
height: 48px;
background: var(--color-light-gray);
background: var(--color-primary);
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.contact-icon svg {
width: 22px;
height: 22px;
color: var(--color-white);
}
.contact-detail h3 {
font-size: 14px;
font-size: 12px;
font-weight: 600;
color: var(--color-medium-gray);
margin-bottom: 4px;
text-transform: uppercase;
letter-spacing: 1px;
}
.contact-detail a,
.contact-detail p {
font-size: 18px;
font-size: 16px;
font-weight: 500;
color: var(--color-black);
}
.contact-detail a:hover {
color: var(--color-primary);
}
.contact-detail a:hover { color: var(--color-primary); }
.social-section {
margin-top: 40px;
padding-top: 40px;
border-top: 1px solid #eee;
}
.social-section h3 {
font-size: 16px;
font-weight: 600;
margin-bottom: 16px;
color: var(--color-black);
}
.social-links {
display: flex;
gap: 16px;
}
.social-links { display: flex; gap: 12px; }
.social-link {
width: 48px;
height: 48px;
background: var(--color-light-gray);
border-radius: 12px;
width: 44px;
height: 44px;
background: var(--color-gray-100);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s;
}
.social-link:hover {
background: var(--color-primary);
transform: translateY(-4px);
}
.social-link img {
width: 24px;
height: 24px;
}
.form-header {
grid-column: span 2;
transform: translateY(-2px);
}
.social-link svg { width: 20px; height: 20px; color: var(--color-black); }
.social-link:hover svg { color: var(--color-white); }
.contact-form-wrapper {
background: var(--color-light-gray);
background: var(--color-dark);
border-radius: 24px;
padding: 48px;
}
.form-title {
font-size: 24px;
font-weight: 700;
margin-bottom: 32px;
color: var(--color-white);
}
.contact-form {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
gap: 20px;
}
.form-group {
display: flex;
flex-direction: column;
}
.form-group-full {
grid-column: span 2;
}
.form-group-full { grid-column: span 2; }
.form-group label {
font-size: 14px;
font-size: 13px;
font-weight: 600;
margin-bottom: 8px;
color: var(--color-black);
color: rgba(255,255,255,0.7);
}
.form-group input,
.form-group select,
.form-group textarea {
padding: 16px 20px;
border: 2px solid transparent;
padding: 14px 18px;
border: 2px solid rgba(255,255,255,0.1);
border-radius: 12px;
font-size: 16px;
font-size: 15px;
font-family: var(--font-body);
background: var(--color-white);
background: rgba(255,255,255,0.05);
color: var(--color-white);
transition: all 0.3s;
}
.form-group input::placeholder,
.form-group textarea::placeholder {
color: rgba(255,255,255,0.3);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--color-primary);
box-shadow: 0 0 0 4px rgba(254, 212, 0, 0.1);
background: rgba(255,255,255,0.08);
}
.form-group textarea {
resize: vertical;
min-height: 120px;
}
.form-group select option { background: var(--color-dark); color: var(--color-white); }
.form-group textarea { resize: vertical; min-height: 120px; }
.btn-submit {
grid-column: span 2;
justify-self: start;
padding: 18px 40px;
font-size: 16px;
padding: 16px 32px;
font-size: 15px;
}
.btn-submit svg { width: 18px; height: 18px; }
@media (max-width: 1024px) {
.contact-grid {
grid-template-columns: 1fr;
gap: 48px;
}
.contact-grid { grid-template-columns: 1fr; gap: 48px; }
}
@media (max-width: 640px) {
.contact-form {
grid-template-columns: 1fr;
}
.form-group-full,
.btn-submit {
grid-column: span 1;
}
.contact-form-wrapper {
padding: 32px 24px;
}
.contact-form { grid-template-columns: 1fr; }
.form-group-full, .btn-submit { grid-column: span 1; }
.contact-form-wrapper { padding: 32px 24px; }
}
</style>

View File

@@ -1,107 +1,66 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
import PageHero from '../components/PageHero.astro';
const faqItems = [
const faqData = [
{
category: "บริการ",
questions: [
{
q: "MoreminiMore ให้บริการอะไรบ้าง?",
a: "เราให้บริการ 4 ประเภทหลัก: พัฒนาเว็บไซต์, Marketing Automation, AI Automation และ Tech Consult สำหรับธุรกิจไทย"
},
{
q: "สามารถสั่งทำเว็บไซต์เฉพาะประเภทได้ไหม?",
a: "ได้ เราสามารถพัฒนาเว็บไซต์ได้ทุกประเภท ไม่ว่าจะเป็นเว็บบริษัท เว็บขายของ เว็บ Landing Page หรือระบบ Web Application"
},
{
q: "AI Chatbot สามารถทำอะไรได้บ้าง?",
a: "AI Chatbot ของเราสามารถตอบคำถามลูกค้า รับออร์เดอร์ นัดหมาย และเชื่อมต่อกับระบบ CRM หรือร้านค้าออนไลน์ได้"
}
icon: "🎯",
items: [
{ q: "บริการของเรามีอะไรบ้าง?", a: "เราให้บริการ รับทำเว็บไซต์, Marketing Automation, AI Automation และ Technology Consult สำหรับธุรกิจไทย" },
{ q: "สามารถปรับแต่งงานตามความต้องการได้ไหม?", a: "ใช่! เราออกแบบโซลูชันที่เหมาะกับความต้องการเฉพาะของแต่ละธุรกิจ" },
]
},
{
category: "ราคา",
questions: [
{
q: "ราคาเริ่มต้นของการทำเว็บไซต์เท่าไหร่?",
a: "ราคาเริ่มต้นอยู่ที่ 15,000 บาท ขึ้นอยู่กับความซับซ้อนและฟีเจอร์ที่ต้องการ เราจะประเมินและเสนอราคาหลังจากการปรึกษาฟรี"
},
{
q: "มี包月 หรือรายปีไหม?",
a: "มี เรามีแพ็คเกจรายเดือนสำหรับบริการดูแลเว็บไซต์และ Marketing Automation ที่เริ่มต้นที่ 2,500 บาท/เดือน"
},
{
q: "ชำระเงินแบบไหนได้บ้าง?",
a: "เรารองรับการชำระเงินผ่าน PromptPay และโอนเงินผ่านธนาคาร สำหรับโปรเจกต์ใหญ่สามารถผ่อนชำระได้"
}
icon: "💰",
items: [
{ q: "ราคาเริ่มต้นเท่าไหร่?", a: "ราคาขึ้นอยู่กับความต้องการและขอบเขตของโปรเจกต์ ติดต่อเราเพื่อรับใบเสนอราคาฟรี" },
{ q: "มี package สำเร็จรูปไหม?", a: "มี เรามี package สำหรับลูกค้าที่ต้องการโซลูชันที่ครบถ้วนและราคาคุ้มค่า" },
]
},
{
category: "ระยะเวลา",
questions: [
{
q: "ใช้เวลาสร้างเว็บไซต์นานแค่ไหน?",
a: "เว็บไซต์ทั่วไปใช้เวลา 2-4 สัปดาห์ ระบบที่ซับซ้อนอาจใช้เวลา 1-2 เดือน ขึ้นอยู่กับความต้องการและขนาดของโปรเจกต์"
},
{
q: "เริ่มต้นทำงานได้เร็วแค่ไหน?",
a: "หลังจากตกลงรายละเอียดและชำระเงินมัดจำแล้ว เราสามารถเริ่มงานได้ภายใน 3-5 วันทำการ"
}
icon: "⏱️",
items: [
{ q: "ใช้เวลาพัฒนานานแค่ไหน?", a: "ขึ้นอยู่กับความซับซ้อนของโปรเจกต์ เว็บไซต์มาตรฐาน 2-4 สัปดาห์, ระบบซับซ้อนอาจใช้ 1-3 เดือน" },
]
},
{
category: "การสนับสนุน",
questions: [
{
q: "หลังสร้างเว็บเสร็จแล้ว มีบริการดูแลไหม?",
a: "มี เรามีทีมดูแลที่พร้อมช่วยเหลือทั้งการแก้ไขปัญหา อัปเดตเนื้อหา และปรับปรุงระบบตามต้องการ"
},
{
q: "ถ้าเว็บมีปัญหา ติดต่อได้อย่างไร?",
a: "สามารถติดต่อเราผ่าน LINE, โทรศัพท์ 080-995-5945 หรืออีเมล contact@moreminimore.com เรามีทีมพร้อมรับมือกับปัญหาฉุกเฉิน"
},
{
q: "มีการรับประกันผลงานไหม?",
a: "เรารับประกันงาน 30 วันหลังส่งมอบ หากมีปัญหาจากการทำงานของเรา เราจะแก้ไขให้ฟรี"
}
category: "ทั่วไป",
icon: "💬",
items: [
{ q: "มีการรับประกันผลงานไหม?", a: "เรารับประกันคุณภาพ หากไม่พอใจเราพร้อมแก้ไขจนกว่าจะถูกใจ" },
{ q: "หลังส่งมอบงานแล้วมี after service ไหม?", a: "มี เราให้บริการดูแลและ support หลังการขายตลอด 24 ชม." },
]
}
},
];
---
<Base title="คำถามที่พบบ่อย | MoreminiMore">
<Base title="คำถามที่พบบ่อย | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
<PageHero
badge="FAQ"
title="คำถามที่พบบ่อย"
subtitle="หาคำตอบสำหรับคำถามที่พบบ่อยเกี่ยวกับบริการของเรา"
badge="FAQ"
image="/images/hero/tech-consult.jpg"
theme="yellow"
showCTA={false}
variant="centered"
size="compact"
/>
<main class="faq-page">
<!-- FAQ Section -->
<section class="section faq-section">
<div class="container">
<div class="faq-content">
{faqItems.map((category, catIndex) => (
<section class="faq-category">
{faqData.map(cat => (
<div class="faq-category">
<h2 class="category-title">
<span class="category-icon">
{category.category === "บริการ" ? "🎯" :
category.category === "ราคา" ? "💰" :
category.category === "ระยะเวลา" ? "⏱️" : "💬"}
</span>
{category.category}
<span class="category-icon">{cat.icon}</span>
{cat.category}
</h2>
<div class="faq-list">
{category.questions.map((item, qIndex) => (
<div class="faq-item" data-item={`${catIndex}-${qIndex}`}>
{cat.items.map((item, qIndex) => (
<div class="faq-item" data-item={qIndex}>
<button class="faq-question" aria-expanded="false">
<span class="question-text">{item.q}</span>
<span class="faq-icon">+</span>
@@ -112,20 +71,25 @@ const faqItems = [
</div>
))}
</div>
</section>
</div>
))}
</div>
<section class="faq-cta">
<h3>ยังมีคำถามอื่น?</h3>
<p>ติดต่อเราได้โดยตรง เราพร้อมตอบทุกคำถาม</p>
<div class="cta-buttons">
<a href="/contact" class="btn btn-primary">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-secondary">080-995-5945</a>
</div>
</section>
</div>
</main>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">ยังมีคำถามอื่น?</h2>
<p class="cta-desc">ติดต่อเราได้โดยตรง เราพร้อมตอบทุกคำถาม</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline-dark btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
@@ -133,32 +97,25 @@ const faqItems = [
<script>
document.addEventListener('DOMContentLoaded', () => {
const faqItems = document.querySelectorAll('.faq-item');
faqItems.forEach(item => {
const question = item.querySelector('.faq-question');
const answer = item.querySelector('.faq-answer');
const icon = item.querySelector('.faq-icon');
question?.addEventListener('click', () => {
const isOpen = item.classList.contains('open');
// Close all
faqItems.forEach(faq => {
faq.classList.remove('open');
const faqAnswer = faq.querySelector('.faq-answer');
const faqIcon = faq.querySelector('.faq-icon');
if (faqAnswer) faqAnswer.style.maxHeight = '0';
if (faqIcon) faqIcon.textContent = '+';
const faqQuestion = faq.querySelector('.faq-question');
if (faqQuestion) faqQuestion.setAttribute('aria-expanded', 'false');
const fa = faq.querySelector('.faq-answer') as HTMLElement;
const fi = faq.querySelector('.faq-icon');
if (fa) fa.style.maxHeight = '0';
if (fi) fi.textContent = '+';
(faq.querySelector('.faq-question') as HTMLElement)?.setAttribute('aria-expanded', 'false');
});
// Open clicked if it was closed
if (!isOpen) {
item.classList.add('open');
if (answer) answer.style.maxHeight = answer.scrollHeight + 'px';
if (answer) (answer as HTMLElement).style.maxHeight = answer.scrollHeight + 'px';
if (icon) icon.textContent = '';
if (question) question.setAttribute('aria-expanded', 'true');
if (question) (question as HTMLElement).setAttribute('aria-expanded', 'true');
}
});
});
@@ -166,53 +123,9 @@ const faqItems = [
</script>
<style>
.faq-page {
padding: 120px 0 80px;
min-height: 100vh;
}
.faq-header {
text-align: center;
margin-bottom: 60px;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.faq-title {
font-size: clamp(36px, 5vw, 56px);
font-weight: 800;
color: var(--color-black);
margin-bottom: 16px;
}
.faq-desc {
font-size: 18px;
color: var(--color-medium-gray);
max-width: 500px;
margin: 0 auto;
}
.faq-content {
max-width: 900px;
margin: 0 auto;
}
.faq-category {
margin-bottom: 60px;
}
.faq-section { background: var(--color-white); }
.faq-content { max-width: 800px; margin: 0 auto; }
.faq-category { margin-bottom: 60px; }
.category-title {
display: flex;
align-items: center;
@@ -224,34 +137,17 @@ const faqItems = [
padding-bottom: 16px;
border-bottom: 2px solid var(--color-primary);
}
.category-icon {
font-size: 28px;
}
.faq-list {
display: flex;
flex-direction: column;
gap: 16px;
}
.category-icon { font-size: 28px; }
.faq-list { display: flex; flex-direction: column; gap: 12px; }
.faq-item {
background: var(--color-white);
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
border: 1px solid #eee;
transition: all 0.3s ease;
border: 1px solid rgba(0,0,0,0.08);
transition: all 0.3s;
}
.faq-item:hover {
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.faq-item.open {
border-color: var(--color-primary);
}
.faq-item:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.faq-item.open { border-color: var(--color-primary); }
.faq-question {
width: 100%;
display: flex;
@@ -267,25 +163,14 @@ const faqItems = [
font-weight: 600;
color: var(--color-black);
}
.question-text {
flex: 1;
padding-right: 16px;
}
.question-text { flex: 1; padding-right: 16px; }
.faq-icon {
font-size: 24px;
color: var(--color-primary);
font-weight: 300;
transition: transform 0.3s;
}
.faq-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
}
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.faq-answer p {
padding: 0 24px 24px;
font-size: 15px;
@@ -293,49 +178,32 @@ const faqItems = [
color: #555;
}
.faq-cta {
text-align: center;
padding: 60px;
background: var(--color-light-gray);
border-radius: 20px;
margin-top: 60px;
.section-primary { background: var(--color-primary); }
.cta-content { text-align: center; }
.cta-title {
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
margin-bottom: 16px;
color: var(--color-black);
}
.faq-cta h3 {
font-size: 28px;
font-weight: 700;
margin-bottom: 12px;
.cta-desc {
font-size: 18px;
color: rgba(0,0,0,0.7);
margin-bottom: 32px;
}
.faq-cta p {
font-size: 16px;
color: var(--color-medium-gray);
margin-bottom: 24px;
}
.cta-buttons {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-outline-dark {
background: transparent;
color: var(--color-black);
border: 2px solid var(--color-black);
}
.btn-outline-dark:hover { background: var(--color-black); color: var(--color-white); }
.btn-lg { padding: 16px 36px; font-size: 16px; }
@media (max-width: 640px) {
.faq-question {
padding: 16px 20px;
font-size: 15px;
}
.faq-answer p {
padding: 0 20px 20px;
}
.faq-cta {
padding: 40px 24px;
}
.cta-buttons {
flex-direction: column;
}
.faq-question { padding: 16px 20px; font-size: 15px; }
.faq-answer p { padding: 0 20px 20px; }
.cta-actions { flex-direction: column; }
.btn-lg { width: 100%; justify-content: center; }
}
</style>

View File

@@ -1,139 +1,157 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
import Hero from '../components/Hero.astro';
import ServiceCard from '../components/ServiceCard.astro';
import { getCollection } from 'astro:content';
import { portfolioItems } from '../data/portfolio';
const stats = [
{ number: "50+", label: "โปรเจกต์" },
{ number: "40+", label: "ลูกค้า" },
{ number: "5+", label: "ปีประสบการณ์" },
{ number: "100%", label: "ความพึงพอใจ" }
const blogPosts = await getCollection('blog');
const sortedPosts = blogPosts.sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
const services = [
{ title: "Automation Consult", subtitle: "Implement specific unique app and AI for business to do automation workflow", image: "/images/services/automation.jpg", link: "/services/automation" },
{ title: "AI Consult", subtitle: "Consult service for using AI to improve business workflow and knowledge management", image: "/images/services/ai-consult.jpg", link: "/services/ai-consult" },
{ title: "Marketing Automation", subtitle: "Use AI to help generate and manage marketing workflow", image: "/images/services/marketing.jpg", link: "/services/marketing" },
{ title: "Website Development", subtitle: "Implement website for business and integrate with marketing workflow", image: "/images/services/webdev.jpg", link: "/services/webdev" },
];
---
<Base title="หน้าแรก | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Base title="MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
title="เปลี่ยนธุรกิจของคุณ ด้วย AI และเทคโนโลยีสมัยใหม่"
subtitle="รับทำเว็บไซต์ SEO AI Chatbot สำหรับธุรกิจไทย<br>เพิ่มยอดขาย ลดต้นทุน ด้วยเทคโนโลยีล้ำสมัย"
badge="ดิจิทัลเอเจนซี่ในประเทศไทย"
image="/images/hero/hero.jpg"
theme="yellow"
showCTA={true}
size="full"
variant="split"
/>
<!-- KINETIC HERO -->
<Hero />
<!-- Services Section -->
<section class="section services">
<!-- SERVICES SECTION -->
<section class="section">
<div class="container">
<div class="section-header">
<span class="section-badge">บริการของเรา</span>
<h2 class="section-title">เราให้บริการอะไรบ้าง</h2>
<p class="section-desc">ครบจบทุก need ด้านดิจิทัลสำหรับธุรกิจของคุณ</p>
<!-- Title with Tilt Effect -->
<div class="services-title-wrapper" id="services-title">
<div class="services-title-inner">
<span class="badge badge-dark">บริการของเรา</span>
<h2 class="services-title">
ครบทุกโซลูชั่นด้านดิจิตอล
</h2>
<p class="section-desc reveal">
ให้เราดูแลทุกอย่าง ในขณะที่คุณโฟกัสที่ธุรกิจของคุณ
</p>
</div>
</div>
<div class="services-grid">
{[
{ title: "พัฒนาเว็บไซต์", desc: "สร้างเว็บไซต์ที่ทันสมัย รวดเร็ว และตอบสนองความต้องการ", icon: "🌐", href: "/services/webdev" },
{ title: "Marketing Automation", desc: "Automate การตลาดเพื่อเพิ่มประสิทธิภาพและลดต้นทุน", icon: "📈", href: "/services/marketing" },
{ title: "AI Automation", desc: "นำ AI มาใช้เพื่อเพิ่มยอดขายและปรับปรุงการให้บริการ", icon: "🤖", href: "/services/ai" },
{ title: "Tech Consult", desc: "ให้คำปรึกษาด้านเทคโนโลยีเพื่อธุรกิจของคุณ", icon: "💡", href: "/services/consult" }
].map((s, i) => (
<a href={s.href} class="service-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<div class="service-icon"><span class="icon-emoji">{s.icon}</span></div>
<h3 class="service-title">{s.title}</h3>
<p class="service-desc">{s.desc}</p>
<span class="service-arrow">→</span>
</a>
))}
</div>
</div>
</section>
<!-- Stats Section -->
<section class="section section-accent stats-section">
<div class="container">
<div class="stats-grid">
{stats.map((stat) => (
<div class="stat-item">
<span class="stat-number">{stat.number}</span>
<span class="stat-label">{stat.label}</span>
{services.map((service, i) => (
<div class="reveal" style={`animation-delay: ${i * 0.1}s`}>
<ServiceCard {...service} />
</div>
))}
</div>
<div class="section-cta reveal">
<a href="/services" class="btn btn-dark btn-lg">
ดูบริการทั้งหมด
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M5 12h14M12 5l7 7-7 7"/>
</svg>
</a>
</div>
</div>
</section>
<!-- Portfolio Section -->
<section class="section portfolio-preview">
<!-- PORTFOLIO SECTION -->
<section class="section section-dark section-gradient-top">
<div class="container">
<div class="section-header">
<span class="section-badge">ผลงาน</span>
<h2 class="section-title">โปรเจกต์ล่าสุด</h2>
<p class="section-desc">ผลงานที่เราภาคภูมิใจ</p>
<span class="badge">ผลงานของเรา</span>
<h2 class="section-title text-white reveal">
โปรเจกต์ที่เราภาคภูมิใจ
</h2>
</div>
<div class="portfolio-grid">
{[
{ name: "Lungfinler", cat: "เว็บไซต์", img: "/images/portfolio/lungfinler.png", url: "https://lungfinler.com" },
{ name: "Jet Industries", cat: "เว็บไซต์", img: "/images/portfolio/jetindustries.png", url: "https://jetindustries.co.th" },
{ name: "Lawyernoom", cat: "เว็บไซต์", img: "/images/portfolio/lawyernoom.png", url: "https://lawyernoom.com" },
{ name: "Underdog", cat: "เว็บไซต์", img: "/images/portfolio/underdog.png", url: "https://underdog.run" }
].map((p) => (
<a href={p.url} target="_blank" rel="noopener" class="portfolio-card">
<img src={p.img} alt={p.name} />
<div class="portfolio-overlay">
<span class="portfolio-category">{p.cat}</span>
<h3 class="portfolio-name">{p.name}</h3>
{portfolioItems.slice(0, 6).map((item, i) => (
<a href={item.url} target="_blank" rel="noopener" class="portfolio-card reveal" style={`animation-delay: ${i * 0.1}s`}>
<div class="portfolio-image">
<img src={item.thumbnail} alt={item.name} loading="lazy" />
<div class="portfolio-overlay">
<span class="portfolio-visit">เยี่ยมชมเว็บไซต์</span>
</div>
</div>
<div class="portfolio-content">
<span class="portfolio-category">{item.category_label}</span>
<h3 class="portfolio-name">{item.name}</h3>
</div>
</a>
))}
</div>
<div class="section-cta">
<a href="/portfolio" class="btn btn-primary">ดูผลงานทั้งหมด</a>
<div class="section-cta reveal">
<a href="/portfolio" class="btn btn-outline-white btn-lg">
ผลงานทั้งหมด
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M5 12h14M12 5l7 7-7 7"/>
</svg>
</a>
</div>
</div>
</section>
<!-- Blog Section -->
<section class="section section-light blog-preview">
<!-- BLOG SECTION -->
<section class="section section-gradient-bottom">
<div class="container">
<div class="section-header">
<span class="section-badge">บทความ</span>
<h2 class="section-title">ความรู้ด้านดิจิทัล</h2>
<p class="section-desc">อ่านบทความล่าสุดจากเรา</p>
<span class="badge badge-dark">บทความ</span>
<h2 class="section-title reveal">
ความรู้ด้านดิจิทัล
</h2>
</div>
<div class="blog-grid">
{[
{ title: "5 วิธี AI เพิ่มยอดขาย", img: "/images/blog/5-ways-ai-increase-sales.jpg", slug: "5-ways-ai-increase-sales" },
{ title: "AI Content ที่ Google รัก", img: "/images/blog/ai-content-google-love.jpg", slug: "ai-content-google-love" },
{ title: "Digital Transformation Guide", img: "/images/blog/digital-transformation.jpg", slug: "digital-transformation-guide" }
].map((post) => (
<a href={`/blog/${post.slug}`} class="blog-card card">
<div class="blog-image"><img src={post.img} alt={post.title} /></div>
{sortedPosts.slice(0, 3).map((post, i) => (
<a href={`/blog/${post.slug}`} class="blog-card reveal" style={`animation-delay: ${i * 0.1}s`}>
<div class="blog-image">
<img src={post.data.image} alt={post.data.title} loading="lazy" />
</div>
<div class="blog-content">
<h3 class="blog-title">{post.title}</h3>
<span class="blog-readmore">อ่านต่อ →</span>
<span class="blog-category">{post.data.category}</span>
<h3 class="blog-title">{post.data.title}</h3>
<p class="blog-excerpt">{post.data.excerpt}</p>
<span class="blog-date">
{new Date(post.data.date).toLocaleDateString('th-TH', { year: 'numeric', month: 'long', day: 'numeric' })}
</span>
</div>
</a>
))}
</div>
<div class="section-cta">
<a href="/blog" class="btn btn-secondary">บทความทั้งหมด</a>
<div class="section-cta reveal">
<a href="/blog" class="btn btn-dark btn-lg">
บทความทั้งหมด
</a>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<!-- CTA SECTION -->
<section class="section section-primary">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมเริ่มโปรเจกต์ของคุณ?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบเว็บไซต์ที่เหมาะกับธุรกิจของคุณ</p>
<div class="cta-content reveal">
<h2 class="cta-title">
<span class="title-word">พร้อมเปลี่ยน</span>
<span class="title-word">ธุรกิจของคุณ?</span>
</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบโซลูชันที่เหมาะกับคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
<a href="/contact" class="btn btn-dark btn-lg">
ติดต่อเรา
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M5 12h14M12 5l7 7-7 7"/>
</svg>
</a>
<a href="tel:0809955945" class="btn btn-outline-dark btn-lg">
080-995-5945
</a>
</div>
</div>
</div>
@@ -143,48 +161,397 @@ const stats = [
</Base>
<style>
.section-header { text-align: center; margin-bottom: 60px; }
.section-badge { display: inline-block; background: var(--color-primary); color: var(--color-black); padding: 6px 16px; border-radius: 20px; font-size: 13px; font-weight: 600; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px; }
.section-title { font-size: clamp(32px, 5vw, 48px); font-weight: 700; margin-bottom: 16px; }
.section-desc { font-size: 18px; color: var(--color-medium-gray); max-width: 600px; margin: 0 auto; }
.services-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.service-card { padding: 40px 32px; display: flex; flex-direction: column; cursor: pointer; }
.service-icon { width: 60px; height: 60px; background: var(--color-light-gray); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; }
.icon-emoji { font-size: 28px; }
.service-title { font-size: 20px; font-weight: 700; margin-bottom: 12px; }
.service-desc { font-size: 14px; color: var(--color-medium-gray); line-height: 1.6; flex-grow: 1; }
.service-arrow { font-size: 24px; color: var(--color-primary); margin-top: 20px; transition: transform 0.3s; }
.service-card:hover .service-arrow { transform: translateX(8px); }
.section-accent { background: var(--color-accent); color: var(--color-white); }
.stats-section { padding: 100px 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; text-align: center; }
.stat-item { display: flex; flex-direction: column; align-items: center; }
.stat-number { font-family: var(--font-heading); font-size: 72px; font-weight: 800; color: var(--color-primary); line-height: 1; margin-bottom: 12px; }
.stat-label { font-size: 16px; color: rgba(255,255,255,0.8); text-transform: uppercase; letter-spacing: 2px; }
.portfolio-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 48px; }
.portfolio-card { position: relative; border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; }
.portfolio-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.portfolio-card:hover img { transform: scale(1.1); }
.portfolio-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 60%); display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; opacity: 0; transition: opacity 0.3s; }
.portfolio-card:hover .portfolio-overlay { opacity: 1; }
.portfolio-category { background: var(--color-primary); color: var(--color-black); padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; align-self: flex-start; margin-bottom: 8px; }
.portfolio-name { color: var(--color-white); font-size: 18px; font-weight: 600; }
.section-cta { text-align: center; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-bottom: 48px; }
.blog-card { display: flex; flex-direction: column; }
.blog-image { aspect-ratio: 16/10; overflow: hidden; }
.blog-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.blog-card:hover .blog-image img { transform: scale(1.05); }
.blog-content { padding: 24px; flex-grow: 1; display: flex; flex-direction: column; }
.blog-title { font-size: 18px; font-weight: 600; margin-bottom: 12px; flex-grow: 1; }
.blog-readmore { color: var(--color-accent); font-weight: 500; font-size: 14px; }
.cta-content { text-align: center; max-width: 800px; margin: 0 auto; }
.cta-title { font-size: clamp(32px, 5vw, 56px); font-weight: 800; margin-bottom: 20px; }
.cta-desc { font-size: 18px; margin-bottom: 40px; opacity: 0.8; }
.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-lg { padding: 18px 40px; font-size: 16px; }
.btn-outline { background: transparent; color: var(--color-black); border: 2px solid var(--color-black); }
.btn-outline:hover { background: var(--color-black); color: var(--color-white); }
@media (max-width: 1024px) { .services-grid { grid-template-columns: repeat(2, 1fr); } .portfolio-grid { grid-template-columns: repeat(2, 1fr); } .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; } .stat-number { font-size: 56px; } }
@media (max-width: 640px) { .services-grid, .portfolio-grid, .blog-grid { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: repeat(2, 1fr); } .hero-actions, .cta-actions { flex-direction: column; } .btn-lg { width: 100%; justify-content: center; } }
</style>
/* ============================================
SERVICES TITLE WITH TILT EFFECT
============================================ */
.services-title-wrapper {
perspective: 1000px;
margin-bottom: 60px;
text-align: center;
}
.services-title-inner {
transition: transform 0.1s ease-out;
display: inline-block;
}
.services-title {
font-family: var(--font-display);
font-size: clamp(36px, 6vw, 64px);
font-weight: 900;
line-height: 1.1;
margin: 24px 0;
color: var(--color-dark);
}
/* ============================================
SECTION HEADER
============================================ */
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-title {
font-family: var(--font-display);
font-size: clamp(32px, 5vw, 56px);
font-weight: 900;
line-height: 1.1;
margin: 24px 0;
color: var(--color-dark);
}
.text-white {
color: var(--color-white);
}
.section-desc {
font-size: 18px;
color: var(--color-gray-600);
max-width: 500px;
margin: 0 auto;
}
/* ============================================
SERVICES GRID
============================================ */
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
margin-bottom: 48px;
}
/* ============================================
PORTFOLIO GRID
============================================ */
.portfolio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-bottom: 48px;
}
.portfolio-card {
display: block;
border-radius: var(--radius-xl);
overflow: hidden;
background: rgba(255, 255, 255, 0.05);
transition: all 0.4s var(--ease-out-expo);
}
.portfolio-card:hover {
transform: translateY(-8px);
background: rgba(255, 255, 255, 0.1);
}
.portfolio-image {
position: relative;
aspect-ratio: 16/10;
overflow: hidden;
}
.portfolio-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.4s ease;
}
.portfolio-card:hover .portfolio-image img {
transform: scale(1.08);
}
.portfolio-overlay {
position: absolute;
inset: 0;
background: rgba(26, 26, 46, 0.65);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.3s ease;
}
.portfolio-card:hover .portfolio-overlay {
opacity: 1;
}
.portfolio-visit {
padding: 12px 24px;
background: var(--color-primary);
color: var(--color-black);
font-family: var(--font-display);
font-size: 14px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 2px;
border-radius: var(--radius-full);
}
.portfolio-content {
padding: 24px;
}
.portfolio-category {
display: inline-block;
padding: 4px 12px;
background: rgba(254, 212, 0, 0.2);
color: var(--color-primary);
font-family: var(--font-display);
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 2px;
border-radius: var(--radius-full);
margin-bottom: 12px;
}
.portfolio-name {
font-family: var(--font-display);
font-size: 18px;
font-weight: 800;
color: var(--color-white);
}
/* ============================================
BLOG GRID
============================================ */
.blog-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
margin-bottom: 48px;
}
.blog-card {
display: block;
background: var(--color-white);
border-radius: var(--radius-xl);
border: 1px solid var(--color-gray-200);
overflow: hidden;
box-shadow: var(--shadow-sm);
transition: all 0.4s var(--ease-out-expo);
}
.blog-card:hover {
transform: translateY(-8px);
box-shadow: var(--shadow-lg);
border-color: var(--color-primary);
}
.blog-image {
aspect-ratio: 16/10;
overflow: hidden;
}
.blog-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.4s ease;
}
.blog-card:hover .blog-image img {
transform: scale(1.08);
}
.blog-content {
padding: 28px;
}
.blog-category {
display: inline-block;
padding: 4px 12px;
background: var(--color-gray-100);
color: var(--color-gray-600);
font-family: var(--font-display);
font-size: 10px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 2px;
border-radius: var(--radius-full);
margin-bottom: 12px;
}
.blog-title {
font-family: var(--font-display);
font-size: 18px;
font-weight: 800;
color: var(--color-black);
margin-bottom: 12px;
line-height: 1.3;
}
.blog-excerpt {
font-size: 14px;
color: var(--color-gray-600);
line-height: 1.6;
margin-bottom: 16px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.blog-date {
font-size: 12px;
color: var(--color-gray-400);
}
/* ============================================
CTA SECTION
============================================ */
.cta-content {
text-align: center;
}
.cta-title {
font-family: var(--font-display);
font-size: clamp(36px, 6vw, 64px);
font-weight: 900;
line-height: 1.1;
color: var(--color-black);
margin-bottom: 24px;
}
.title-word {
display: block;
}
.cta-desc {
font-size: 20px;
color: rgba(0, 0, 0, 0.7);
max-width: 500px;
margin: 0 auto 40px;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.section-cta {
text-align: center;
}
.btn svg {
width: 20px;
height: 20px;
margin-left: 8px;
transition: transform 0.3s ease;
}
.btn:hover svg {
transform: translateX(4px);
}
/* Button Variations */
.btn-outline-white {
background: transparent;
color: var(--color-white);
border: 2px solid var(--color-white);
}
.btn-outline-white:hover {
background: var(--color-white);
color: var(--color-dark);
}
.btn-outline-dark {
background: transparent;
color: var(--color-black);
border: 2px solid var(--color-black);
}
.btn-outline-dark:hover {
background: var(--color-black);
color: var(--color-white);
}
/* ============================================
RESPONSIVE
============================================ */
@media (max-width: 1024px) {
.services-grid,
.portfolio-grid {
grid-template-columns: repeat(2, 1fr);
}
.blog-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.services-grid,
.portfolio-grid,
.blog-grid {
grid-template-columns: 1fr;
}
.cta-actions {
flex-direction: column;
}
.btn {
width: 100%;
}
}
</style>
<script>
// Services Title Tilt Effect
const servicesTitle = document.getElementById('services-title');
const titleInner = servicesTitle?.querySelector('.services-title-inner');
if (titleInner && servicesTitle) {
servicesTitle.addEventListener('mousemove', (e) => {
const rect = servicesTitle.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
const rotateX = (y - centerY) / centerY * -8;
const rotateY = (centerX - x) / centerX * 8;
(titleInner as HTMLElement).style.transform =
`perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
servicesTitle.addEventListener('mouseleave', () => {
(titleInner as HTMLElement).style.transform =
'perspective(1000px) rotateX(0) rotateY(0)';
});
}
// Scroll Reveal Animation
const observerOptions = {
root: null,
rootMargin: '0px',
threshold: 0.1
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, observerOptions);
document.querySelectorAll('.reveal').forEach(el => {
observer.observe(el);
});
</script>

View File

@@ -1,134 +1,28 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
const portfolioItems = [
{
name: "Lungfinler",
url: "https://lungfinler.com",
category: "webdev",
categoryLabel: "พัฒนาเว็บไซต์",
thumbnail: "/images/portfolio/lungfinler.png",
description: "Digital Agency - บริการด้านการสร้างแบรนด์ กราฟิกดีไซน์ และถ่ายภาพสินค้าคุณภาพสูง",
services: ["Website", "Branding", "Graphic Design"]
},
{
name: "Jet Industries",
url: "https://jetindustries.co.th",
category: "webdev",
categoryLabel: "พัฒนาเว็บไซต์",
thumbnail: "/images/portfolio/jetindustries.png",
description: "ผู้ผลิตพลาสติกฉีดขึ้นรูปอย่างแม่นยำ (Precision Plastic Injection Molding) มีประสบการณ์กว่า 40 ปี",
services: ["Website", "Industrial"]
},
{
name: "สำนักงานกฎหมาย ตถาตา",
url: "https://lawyernoom.com",
category: "webdev",
categoryLabel: "พัฒนาเว็บไซต์",
thumbnail: "/images/portfolio/lawyernoom.png",
description: "สำนักงานกฎหมายโดย ทนายความ คมสัน ศรีวนิชย์ - บริการด้านคดีความ คดีแพ่ง คดีอาญา",
services: ["Website", "Legal"]
},
{
name: "Underdog Marketing",
url: "https://underdog.run",
category: "webdev",
categoryLabel: "พัฒนาเว็บไซต์",
thumbnail: "/images/portfolio/underdog.png",
description: "บล็อกการตลาดและการขายสไตล์ ลุยไม่ยั้ง โดย บุ้ง ดีดติ่งหู",
services: ["Website", "Content Marketing"]
},
{
name: "Baofuling Shop",
url: "https://baofulingshop.com",
category: "ecommerce",
categoryLabel: "อีคอมเมิร์ซ",
thumbnail: "/images/portfolio/baofuling.png",
description: "ร้านค้าออนไลน์ครีมบัวหิมะและผลิตภัณฑ์ความงามจีน",
services: ["E-commerce", "Beauty"]
},
{
name: "เทรนเนอร์ซันนี่",
url: "https://trainersunny.com",
category: "webdev",
categoryLabel: "พัฒนาเว็บไซต์",
thumbnail: "/images/portfolio/trainersunny.png",
description: "ผู้เชี่ยวชาญด้านการพัฒนาบุคลากรและ Soft Skill",
services: ["Website", "Training"]
},
{
name: "เลือดจระเข้วานิไทย",
url: "https://เลือดจระเข้วานิไทย.com",
category: "ecommerce",
categoryLabel: "อีคอมเมิร์ซ",
thumbnail: "/images/portfolio/luadjob.png",
description: "ตัวแทนจำหน่ายเลือดจระเข้วานิไทยอย่างเป็นทางการ",
services: ["E-commerce", "Health"]
},
{
name: "ทวนทอง 99",
url: "https://tuanthong99.com",
category: "ecommerce",
categoryLabel: "อีคอมเมิร์ซ",
thumbnail: "/images/portfolio/tuanthong.png",
description: "ร้านค้าออนไลน์สมุนไพรไทยคุณภาพสูง",
services: ["E-commerce", "Thai Herbal"]
},
{
name: "Odoo Portal",
url: "https://odooportal.com",
category: "marketing",
categoryLabel: "ที่ปรึกษาการตลาด",
thumbnail: "/images/portfolio/odooportal.png",
description: "ตัวแทนจำหน่าย Odoo อย่างเป็นทางการในประเทศไทย",
services: ["Odoo ERP", "System Implementation"]
}
];
const categories = [
{ id: 'all', name: 'ทั้งหมด' },
{ id: 'webdev', name: 'พัฒนาเว็บไซต์' },
{ id: 'ecommerce', name: 'อีคอมเมิร์ซ' },
{ id: 'marketing', name: 'ที่ปรึกษาการตลาด' }
];
const stats = [
{ number: "50+", label: "โปรเจกต์" },
{ number: "40+", label: "ลูกค้า" },
{ number: "5+", label: "ปีประสบการณ์" },
{ number: "100%", label: "ความพึงพอใจ" }
];
import PageHero from '../components/PageHero.astro';
import { portfolioItems } from '../data/portfolio';
---
<Base title="ผลงาน | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
<PageHero
badge="ผลงาน"
title="ผลงานของเรา"
subtitle="รวมผลงานพัฒนาเว็บไซต์และโปรเจกต์ที่เราภาคภูมิใจ"
badge="พอร์ตโฟลิโอ"
image="/images/hero/hero.jpg"
theme="yellow"
showCTA={false}
variant="text-only"
size="compact"
/>
<!-- Filter Section -->
<section class="filter-section">
<section class="filter-section" style="background: #1a1a2e; margin-top: -1px;">
<div class="container">
<div class="filter-buttons" id="category-filters">
{categories.map((cat) => (
<button
class="filter-btn"
data-category={cat.id}
>
{cat.name}
</button>
))}
<button class="filter-btn active" data-category="all">ทั้งหมด</button>
<button class="filter-btn" data-category="webdev">พัฒนาเว็บไซต์</button>
<button class="filter-btn" data-category="ecommerce">อีคอมเมิร์ซ</button>
<button class="filter-btn" data-category="marketing">ที่ปรึกษาการตลาด</button>
</div>
</div>
</section>
@@ -141,26 +35,23 @@ const stats = [
<article
class="portfolio-card"
data-category={item.category}
style={`animation-delay: ${index * 0.05}s`}
style={`--delay: ${index * 0.05}s`}
>
<div class="portfolio-image">
<img src={item.thumbnail} alt={item.name} loading="lazy" />
<div class="portfolio-overlay">
<a href={item.url} target="_blank" rel="noopener noreferrer" class="visit-btn">
<a href={item.url || '#'} target="_blank" rel="noopener noreferrer" class="visit-btn">
เยี่ยมชมเว็บไซต์
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"></path></svg>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/>
</svg>
</a>
</div>
</div>
<div class="portfolio-content">
<span class="portfolio-category">{item.categoryLabel}</span>
<span class="portfolio-category">{item.category_label}</span>
<h3 class="portfolio-name">{item.name}</h3>
<p class="portfolio-desc">{item.description}</p>
<div class="portfolio-tags">
{item.services.slice(0, 3).map((service) => (
<span class="tag">{service}</span>
))}
</div>
</div>
</article>
))}
@@ -168,29 +59,15 @@ const stats = [
</div>
</section>
<!-- Stats Section -->
<section class="section section-dark stats-section">
<div class="container">
<div class="stats-grid">
{stats.map((stat) => (
<div class="stat-item">
<span class="stat-number">{stat.number}</span>
<span class="stat-label">{stat.label}</span>
</div>
))}
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">อยากได้เว็บไซต์แบบนี้บ้าง?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบเว็บไซต์ที่เหมาะกับธุรกิจของคุณ</p>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบโซลูชันที่เหมาะกับคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ปรึกษาฟรี</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
<a href="tel:0809955945" class="btn btn-outline-dark btn-lg">080-995-5945</a>
</div>
</div>
</div>
@@ -204,8 +81,6 @@ const stats = [
const filterBtns = document.querySelectorAll('.filter-btn');
const portfolioCards = document.querySelectorAll('.portfolio-card');
filterBtns[0]?.classList.add('active');
filterBtns.forEach(btn => {
btn.addEventListener('click', () => {
const category = btn.getAttribute('data-category');
@@ -227,310 +102,162 @@ const stats = [
</script>
<style>
.hero {
padding: 160px 0 80px;
background: var(--color-black);
text-align: center;
}
.hero-badge {
display: inline-block;
background: rgba(254, 212, 0, 0.1);
color: var(--color-primary);
padding: 8px 20px;
border-radius: 30px;
font-size: 14px;
font-weight: 500;
margin-bottom: 24px;
border: 1px solid rgba(254, 212, 0, 0.2);
}
.hero-title {
font-size: clamp(48px, 10vw, 96px);
font-weight: 800;
color: var(--color-white);
margin-bottom: 16px;
text-transform: uppercase;
}
.hero-desc {
font-size: 20px;
color: #999;
max-width: 600px;
margin: 0 auto;
}
.filter-section {
background: var(--color-black);
padding: 24px 0;
background: var(--color-dark);
padding: 20px 0;
position: sticky;
top: 80px;
z-index: 100;
border-bottom: 1px solid rgba(255,255,255,0.1);
z-index: 1;
margin-top: -1px;
border-bottom: 1px solid rgba(255,255,255,0.05);
}
.filter-buttons {
display: flex;
justify-content: center;
gap: 12px;
flex-wrap: wrap;
}
.filter-btn {
background: rgba(255, 255, 255, 0.1);
color: #9ca3af;
border: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(255,255,255,0.05);
color: rgba(255,255,255,0.6);
border: 1px solid rgba(255,255,255,0.1);
padding: 10px 24px;
border-radius: 30px;
border-radius: 24px;
font-family: var(--font-heading);
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s;
transition: all 0.3s ease;
}
.filter-btn:hover {
background: rgba(255, 255, 255, 0.2);
color: #fff;
border-color: rgba(255, 255, 255, 0.2);
background: rgba(255,255,255,0.1);
color: var(--color-white);
border-color: rgba(255,255,255,0.2);
}
.filter-btn.active {
background: var(--color-primary);
color: #000;
color: var(--color-black);
border-color: var(--color-primary);
}
.portfolio-section {
background: var(--color-black);
padding-top: 60px;
padding-top: 80px;
}
.portfolio-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.portfolio-card {
background: var(--color-dark-gray);
border-radius: 16px;
background: rgba(255,255,255,0.02);
border-radius: 20px;
overflow: hidden;
transition: transform 0.3s, box-shadow 0.3s;
border: 1px solid rgba(255,255,255,0.05);
transition: all 0.4s ease;
animation: fadeUp 0.6s ease backwards;
animation-delay: var(--delay);
}
.portfolio-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 60px rgba(254, 212, 0, 0.15);
border-color: var(--color-primary);
box-shadow: 0 20px 50px rgba(254, 212, 0, 0.1);
}
.portfolio-image {
position: relative;
aspect-ratio: 4/3;
aspect-ratio: 16/10;
overflow: hidden;
}
.portfolio-image img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s;
transition: transform 0.5s ease;
}
.portfolio-card:hover .portfolio-image img {
transform: scale(1.1);
}
.portfolio-card:hover .portfolio-image img { transform: scale(1.08); }
.portfolio-overlay {
position: absolute;
inset: 0;
background: rgba(254, 212, 0, 0.9);
background: rgba(254, 212, 0, 0.95);
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.3s;
transition: opacity 0.3s ease;
}
.portfolio-card:hover .portfolio-overlay {
opacity: 1;
}
.portfolio-card:hover .portfolio-overlay { opacity: 1; }
.visit-btn {
display: inline-flex;
align-items: center;
gap: 8px;
gap: 10px;
background: var(--color-black);
color: var(--color-primary);
padding: 12px 24px;
color: var(--color-white);
padding: 14px 28px;
border-radius: 30px;
font-family: var(--font-heading);
font-weight: 600;
font-size: 14px;
transition: transform 0.2s;
transition: transform 0.2s ease;
}
.visit-btn:hover {
transform: scale(1.05);
}
.portfolio-content {
padding: 24px;
}
.visit-btn:hover { transform: scale(1.05); }
.visit-btn svg { width: 18px; height: 18px; }
.portfolio-content { padding: 28px; }
.portfolio-category {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 4px 12px;
border-radius: 20px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
margin-bottom: 12px;
margin-bottom: 14px;
}
.portfolio-name {
font-size: 20px;
font-weight: 700;
color: var(--color-white);
margin-bottom: 8px;
margin-bottom: 10px;
}
.portfolio-desc {
font-size: 14px;
color: #999;
color: rgba(255,255,255,0.5);
line-height: 1.6;
margin-bottom: 16px;
}
.portfolio-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.tag {
background: rgba(255, 255, 255, 0.1);
color: #999;
padding: 4px 12px;
border-radius: 20px;
font-size: 12px;
}
.stats-section {
padding: 100px 0;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 48px;
text-align: center;
}
.stat-item {
display: flex;
flex-direction: column;
align-items: center;
}
.stat-number {
font-family: var(--font-heading);
font-size: 72px;
font-weight: 800;
color: var(--color-primary);
line-height: 1;
margin-bottom: 12px;
}
.stat-label {
font-size: 16px;
color: #999;
text-transform: uppercase;
letter-spacing: 2px;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
max-width: 800px;
margin: 0 auto;
}
.section-primary { background: var(--color-primary); }
.cta-content { text-align: center; }
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
margin-bottom: 16px;
color: var(--color-black);
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
color: rgba(0,0,0,0.7);
margin-bottom: 32px;
max-width: 550px;
margin-left: auto;
margin-right: auto;
}
.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-outline-dark { background: transparent; color: var(--color-black); border: 2px solid var(--color-black); }
.btn-outline-dark:hover { background: var(--color-black); color: var(--color-white); }
.btn-lg { padding: 16px 36px; font-size: 16px; }
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.btn-lg {
padding: 18px 40px;
font-size: 16px;
}
.btn-outline {
background: transparent;
color: var(--color-black);
border: 2px solid var(--color-black);
}
.btn-outline:hover {
background: var(--color-black);
color: var(--color-white);
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 1024px) {
.portfolio-grid {
grid-template-columns: repeat(2, 1fr);
}
.stats-grid {
grid-template-columns: repeat(2, 1fr);
gap: 32px;
}
.stat-number {
font-size: 56px;
}
.portfolio-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 640px) {
.portfolio-grid {
grid-template-columns: 1fr;
}
.filter-buttons {
gap: 8px;
}
.filter-btn {
padding: 8px 16px;
font-size: 13px;
}
.cta-actions {
flex-direction: column;
}
.btn-lg {
width: 100%;
justify-content: center;
}
.portfolio-grid { grid-template-columns: 1fr; }
.filter-buttons { gap: 8px; }
.filter-btn { padding: 8px 16px; font-size: 13px; }
.cta-actions { flex-direction: column; }
.btn-lg { width: 100%; justify-content: center; }
}
</style>

View File

@@ -1,266 +1,93 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
import PageHero from '../components/PageHero.astro';
---
<Base title="นโยบายความเป็นส่วนตัว | MoreminiMore">
<Base title="นโยบายความเป็นส่วนตัว | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
<PageHero
badge="กฎหมาย"
title="นโยบายความเป็นส่วนตัว"
subtitle="มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569"
badge="กฎหมาย"
image="/images/hero/ai-automation.jpg"
theme="yellow"
showCTA={false}
variant="text-only"
size="compact"
/>
<main class="legal-page">
<section class="section legal-section">
<div class="container">
<header class="legal-header">
<h1 class="legal-title">นโยบายความเป็นส่วนตัว</h1>
<p class="legal-meta">มีผลบังคับใช้วันที่: 5 พฤษภาคม 2569</p>
</header>
<div class="legal-content">
<p class="legal-intro">
<strong>บริษัท มอร์มินิมอร์ จำกัด</strong> ("บริษัทฯ") ให้ความสำคัญกับการคุ้มครองข้อมูลส่วนบุคคลของท่าน จึงได้จัดทำนโยบายความเป็นส่วนตัวฉบับนี้ขึ้นเพื่อชี้แจงเกี่ยวกับการเก็บรวบรวม ใช้ หรือเปิดเผยข้อมูลส่วนบุคคล รวมถึงสิทธิต่างๆ ของท่านตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562
</p>
<p class="legal-intro">บริษัท มอร์มินิมอร์ จำกัด ให้ความสำคัญกับการคุ้มครองข้อมูลส่วนบุคคลของท่าน</p>
<section class="legal-section">
<div class="legal-section">
<h2>1. ข้อมูลส่วนบุคคลที่เราเก็บรวบรวม</h2>
<p>ข้อมูลส่วนบุคคลที่บริษัทฯ อาจเก็บรวบรวมจากท่าน อาจรวมถึง:</p>
<ul>
<li><strong>ข้อมูลส่วนบุคคลทั่วไป:</strong> ชื่อ-นามสกุล ที่อยู่อีเมล หมายเลขโทรศัพท์ ที่อยู่ไปรษณีย์ วันเดือนปีเกิด</li>
<li><strong>ข้อมูลการติดต่อ:</strong> ข้อมูลการติดต่อที่ท่านให้ไว้เมื่อลงทะเบียน กรอกแบบฟอร์ม หรือติดต่อบริษัทฯ</li>
<li><strong>ข้อมูลการใช้งาน:</strong> IP address, ข้อมูลการเข้าชมเว็บไซต์, คุกกี้, ข้อมูลกิจกรรมการใช้งาน</li>
<li><strong>ข้อมูลการเงิน:</strong> ข้อมูลบัตรเครดิต/เดบิต ข้อมูลการชำระเงิน (กรณีใช้บริการที่มีค่าใช้จ่าย)</li>
<li><strong>ข้อมูลอื่นที่ท่านให้ไว้:</strong> ข้อมูลใดๆ ที่ท่านให้ไว้โดยสมัครใจผ่านช่องทางการติดต่อของบริษัทฯ</li>
<li><strong>ข้อมูลส่วนบุคคลทั่วไป:</strong> ชื่อ-นามสกุล ที่อยู่อีเมล หมายเลขโทรศัพท์</li>
<li><strong>ข้อมูลการติดต่อ:</strong> ข้อมูลการติดต่อที่ท่านให้ไว้เมื่อลงทะเบียนหรือกรอกแบบฟอร์ม</li>
<li><strong>ข้อมูลการใช้งาน:</strong> IP address, ข้อมูลการเข้าชมเว็บไซต์, คุกกี้</li>
</ul>
</section>
</div>
<section class="legal-section">
<div class="legal-section">
<h2>2. วัตถุประสงค์ในการเก็บรวบรวมข้อมูล</h2>
<p>บริษัทฯ เก็บรวบรวมข้อมูลส่วนบุคคลเพื่อวัตถุประสงค์ดังต่อไปนี้:</p>
<p>เราเก็บรวบรวมข้อมูลส่วนบุคคลเพื่อวัตถุประสงค์ดังต่อไปนี้:</p>
<ul>
<li>เพื่อให้บริการและดำเนินการตามคำขอของท่าน</li>
<li>เพื่อการสื่อสารและให้ข้อมูลข่าวสารเกี่ยวกับบริการของบริษัทฯ</li>
<li>เพื่อปรับปรุงคุณภาพบริการและพัฒนาเว็บไซต์</li>
<li>เพื่อการวิเคราะห์ข้อมูลและสถิติการใช้งาน</li>
<li>เพื่อการตลาดและการโฆษณา (ได้รับความยินยอมจากท่าน)</li>
<li>เพื่อการปฏิบัติตามกฎหมาย คำสั่ง หรือกระบวนการทางกฎหมาย</li>
<li>เพื่อการรักษาความปลอดภัยและป้องกันการทุจริต</li>
<li>เพื่อให้บริการและดูแลลูกค้า</li>
<li>เพื่อติดต่อสื่อสารกับท่าน</li>
<li>เพื่อปรับปรุงการให้บริการ</li>
<li>เพื่อปฏิบัติตามกฎหมาย</li>
</ul>
</section>
</div>
<section class="legal-section">
<h2>3. การใช้และเปิดเผยข้อมูลส่วนบุคคล</h2>
<p>บริษัทฯ จะไม่เปิดเผยข้อมูลส่วนบุคคลของท่านต่อบุคคลที่สาม เว้นแต่:</p>
<ul>
<li>ได้รับความยินยอมจากท่าน</li>
<li>จำเป็นต้องเปิดเผยเพื่อให้บริการตามคำขอของท่าน</li>
<li>จำเป็นต้องเปิดเผยต่อผู้ให้บริการที่บริษัทฯ ว่าจ้างให้ดำเนินการในส่วนที่จำเป็น</li>
<li>กฎหมายกำหนดหรือร้านขอให้เปิดเผย</li>
<li>เพื่อป้องกันหรือระงับอันตรายต่อชีวิต สุขภาพ หรือทรัพย์สิน</li>
<li>จำเป็นเพื่อประโยชน์โดยชอบด้วยกฎหมายของบริษัทฯ</li>
</ul>
</section>
<div class="legal-section">
<h2>3. การคุ้มครองข้อมูล</h2>
<p>เรามีมาตรการรักษาความปลอดภัยที่เหมาะสมเพื่อป้องกันการสูญหาย เข้าถึง ใช้ เปลี่ยนแปลง หรือเปิดเผยข้อมูลส่วนบุคคลโดยไม่ได้รับอนุญาต</p>
</div>
<section class="legal-section">
<h2>4. ระยะเวลาการเก็บรักษาข้อมูล</h2>
<p>บริษัทฯ จะเก็บรักษาข้อมูลส่วนบุคคลของท่านตราบเท่าที่จำเป็นเพื่อบรรลุวัตถุประสงค์ที่ระบุไว้ในนโยบายนี้ เว้นแต่กฎหมายกำหนดให้เก็บรักษาไว้นานกว่านั้น</p>
<p>ท่านสามารถขอให้บริษัทฯ ลบหรือทำลายข้อมูลส่วนบุคคลของท่านได้ตามสิทธิ์ของท่านในข้อ 7</p>
</section>
<section class="legal-section">
<h2>5. การคุ้มครองข้อมูลส่วนบุคคล</h2>
<p>บริษัทฯ มีมาตรการรักษาความปลอดภัยที่เหมาะสมเพื่อป้องกันการสูญหาย เข้าถึง ใช้ เปลี่ยนแปลง แก้ไข หรือเปิดเผยข้อมูลส่วนบุคคลโดยไม่ได้รับอนุญาต รวมถึงมาตรการทางเทคนิคและองค์กรที่จำเป็น</p>
</section>
<section class="legal-section">
<h2>6. การใช้คุกกี้</h2>
<p>เว็บไซต์ของบริษัทฯ อาจใช้คุกกี้และเทคโนโลยีที่คล้ายคลึงกันเพื่อ:</p>
<ul>
<li>จดจำการตั้งค่าของท่าน</li>
<li>วิเคราะห์การใช้งานเว็บไซต์</li>
<li>ปรับปรุงประสบการณ์การใช้งาน</li>
<li>แสดงเนื้อหาและโฆษณาที่ท่านสนใจ</li>
</ul>
<p>ท่านสามารถตั้งค่าเบราว์เซอร์ของท่านเพื่อปฏิเสธคุกกี้บางประเภทหรือทั้งหมดได้ แต่การปฏิเสธคุกกี้อาจส่งผลต่อการทำงานของเว็บไซต์</p>
</section>
<section class="legal-section">
<h2>7. สิทธิของเจ้าของข้อมูล</h2>
<p>ตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล ท่านมีสิทธิดังต่อไปนี้:</p>
<h3>7.1 สิทธิในการเข้าถึง</h3>
<p>ท่านมีสิทธิขอเข้าถึงและขอรับสำเนาข้อมูลส่วนบุคคลของท่านที่บริษัทฯ มีอยู่</p>
<h3>7.2 สิทธิในการแก้ไข</h3>
<p>ท่านมีสิทธิขอให้บริษัทฯ แก้ไขข้อมูลส่วนบุคคลที่ไม่ถูกต้องหรือไม่สมบูรณ์</p>
<h3>7.3 สิทธิในการลบ</h3>
<p>ท่านมีสิทธิขอให้บริษัทฯ ลบข้อมูลส่วนบุคคลของท่าน ในกรณีที่ข้อมูลนั้นไม่จำเป็นต้องเก็บรักษาไว้ต่อไป</p>
<h3>7.4 สิทธิในการระงับการใช้</h3>
<p>ท่านมีสิทธิขอให้บริษัทฯ ระงับการใช้ข้อมูลส่วนบุคคลของท่านในบางกรณี</p>
<h3>7.5 สิทธิในการคัดค้าน</h3>
<p>ท่านมีสิทธิคัดค้านการเก็บรวบรวม ใช้ หรือเปิดเผยข้อมูลส่วนบุคคลของท่าน</p>
<h3>7.6 สิทธิในการโอนย้าย</h3>
<p>ท่านมีสิทธิขอรับข้อมูลส่วนบุคคลในรูปแบบที่สามารถอ่านได้ด้วยเครื่องมือหรืออุปกรณ์อัตโนมัติ และขอส่งหรือโอนข้อมูลนั้นไปยังระบบอื่น</p>
<h3>7.7 สิทธิในการถอนความยินยอม</h3>
<p>ท่านมีสิทธิถอนความยินยอมที่ท่านได้ให้ไว้แก่บริษัทฯ ได้ตลอดเวลา</p>
<h3>7.8 สิทธิในการร้องเรียน</h3>
<p>ท่านมีสิทธิร้องเรียนต่อหน่วยงานกำกับดูแล (สำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล) หากบริษัทฯ ละเมิดหรือไม่ปฏิบัติตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล</p>
</section>
<section class="legal-section">
<h2>8. การติดต่อบริษัทฯ</h2>
<p>หากท่านมีคำถาม ข้อสงสัย หรือต้องการใช้สิทธิใดๆ ตามนโยบายนี้ กรุณาติดต่อบริษัทฯ:</p>
<div class="contact-box">
<p><strong>บริษัท มอร์มินิมอร์ จำกัด</strong></p>
<p><strong>ที่อยู่:</strong> กรุงเทพมหานคร ประเทศไทย</p>
<p><strong>โทรศัพท์:</strong> 080-995-5945</p>
<p><strong>อีเมล:</strong> contact@moreminimore.com</p>
</div>
</section>
<section class="legal-section">
<h2>9. การเปลี่ยนแปลงนโยบาย</h2>
<p>บริษัทฯ อาจปรับปรุงหรือเปลี่ยนแปลงนโยบายความเป็นส่วนตัวนี้เป็นครั้งคราว การเปลี่ยนแปลงจะมีผลเมื่อประกาศบนเว็บไซต์ ท่านควรตรวจสอบนโยบายนี้เป็นระยะเพื่อรับทราบการเปลี่ยนแปลง</p>
<p><strong>วันที่มีผลบังคับใช้:</strong> 5 พฤษภาคม 2569</p>
</section>
<footer class="legal-footer">
<p>*นโยบายความเป็นส่วนตัวฉบับนี้จัดทำขึ้นตามพระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล พ.ศ. 2562</p>
</footer>
<div class="legal-section">
<h2>4. สิทธิของท่าน</h2>
<p>ท่านมีสิทธิในการเข้าถึง แก้ไข ลบ หรือระงับการใช้ข้อมูลส่วนบุคคลของท่าน กรุณาติดต่อเราผ่านช่องทางที่ระบุในเว็บไซต์</p>
</div>
</div>
</div>
</main>
</section>
<Footer />
</Base>
<style>
.legal-page {
padding: 120px 0 80px;
min-height: 100vh;
}
.legal-header {
text-align: center;
margin-bottom: 60px;
padding-bottom: 40px;
border-bottom: 2px solid var(--color-primary);
}
.legal-title {
font-size: clamp(36px, 5vw, 56px);
font-weight: 800;
color: var(--color-black);
margin-bottom: 16px;
}
.legal-meta {
font-size: 14px;
color: var(--color-medium-gray);
}
.legal-content {
max-width: 800px;
margin: 0 auto;
}
.legal-section { background: var(--color-white); }
.legal-content { max-width: 800px; margin: 0 auto; }
.legal-intro {
font-size: 18px;
line-height: 1.8;
color: var(--color-medium-gray);
margin-bottom: 48px;
padding: 24px;
background: var(--color-light-gray);
border-radius: 12px;
border-left: 4px solid var(--color-primary);
line-height: 1.7;
}
.legal-section {
margin-bottom: 48px;
}
.legal-section h2 {
font-size: 24px;
font-weight: 700;
color: var(--color-black);
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 1px solid #eee;
}
.legal-section h3 {
font-size: 18px;
font-weight: 600;
color: var(--color-black);
margin: 24px 0 12px;
color: var(--color-primary);
}
.legal-section p {
font-size: 16px;
line-height: 1.8;
color: #444;
line-height: 1.8;
margin-bottom: 16px;
}
.legal-section ul {
list-style: none;
padding: 0;
margin-left: 24px;
margin-bottom: 16px;
}
.legal-section li {
position: relative;
padding-left: 24px;
margin-bottom: 12px;
font-size: 16px;
line-height: 1.7;
color: #444;
}
.legal-section li::before {
content: '•';
position: absolute;
left: 0;
color: var(--color-primary);
font-weight: bold;
}
.contact-box {
background: var(--color-light-gray);
padding: 24px;
border-radius: 12px;
margin-top: 16px;
}
.contact-box p {
line-height: 1.8;
margin-bottom: 8px;
}
.legal-footer {
margin-top: 60px;
padding-top: 24px;
border-top: 1px solid #eee;
text-align: center;
}
.legal-footer p {
font-size: 14px;
color: var(--color-medium-gray);
font-style: italic;
}
</style>

View File

@@ -0,0 +1,248 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Footer from '../../components/Footer.astro';
import PageHero from '../../components/PageHero.astro';
import { getCollection, render } from 'astro:content';
// For SSR mode, use Astro.params directly
const { slug } = Astro.params;
const services = await getCollection('services');
// Use id for matching since slug might be undefined
const service = services.find(s => s.id === slug);
if (!service) {
return Astro.redirect('/404');
}
const { Content } = await render(service);
const features = [
{ icon: service.data.feature1_icon, title: service.data.feature1_title, desc: service.data.feature1_desc },
{ icon: service.data.feature2_icon, title: service.data.feature2_title, desc: service.data.feature2_desc },
{ icon: service.data.feature3_icon, title: service.data.feature3_title, desc: service.data.feature3_desc },
{ icon: service.data.feature4_icon, title: service.data.feature4_title, desc: service.data.feature4_desc },
{ icon: service.data.feature5_icon, title: service.data.feature5_title, desc: service.data.feature5_desc },
{ icon: service.data.feature6_icon, title: service.data.feature6_title, desc: service.data.feature6_desc },
].filter(f => f.title);
const processSteps = [
{ num: "01", title: "วิเคราะห์", desc: service.data.category === 'tech-consult' ? "วิเคราะห์กระบวนการทำงานปัจจุบันและหาโอกาส" : "วิเคราะห์การตลาดปัจจุบันและหาโอกาส" },
{ num: "02", title: "ออกแบบ", desc: "ออกแบบระบบที่เหมาะกับความต้องการและ budget" },
{ num: "03", title: "พัฒนา", desc: "พัฒนาและ deploy ระบบพร้อมทดสอบก่อนใช้งานจริง" },
{ num: "04", title: service.data.category === 'tech-consult' ? "Support" : "วัดผล", desc: service.data.category === 'tech-consult' ? "ดูแลและปรับปรุงระบบให้ทำงานได้อย่างต่อเนื่อง" : "ติดตามผลและปรับปรุงอย่างต่อเนื่องเพื่อเพิ่ม ROI" },
];
const uspText = service.data.category === 'tech-consult'
? "ลูกค้าที่ใช้บริการ Consult จะได้รับ Server สำหรับ App และ AI ฟรี (สำหรับการใช้งานปกติ) หากต้องการใช้งานหนักหรือ Resource-intensive จะมีค่าใช้จ่ายเพิ่มเติม"
: "ลูกค้าที่ใช้ Server ของเราจะได้รับบริการแก้ไขและเพิ่มเนื้อหาเว็บไซต์ฟรี! จ่ายเฉพาะเมื่อต้องการ Redesign ทั้งหมด หรือ Upgrade ฟีเจอร์ใหญ่ เช่น เพิ่มระบบ E-commerce";
const uspTitle = service.data.category === 'tech-consult'
? "Server ฟรีสำหรับลูกค้า Consult"
: "แก้ไขเนื้อหาฟรี!";
---
<Base title={`${service.data.title} | MoreminiMore`}>
<Navigation />
<PageHero
badge={service.data.badge}
title={service.data.title}
subtitle={service.data.subtitle}
/>
<!-- Objective Badge -->
<section class="section section-dark" style="padding: 40px 0;">
<div class="container">
<div class="hero-objective">
<span class="objective-label">เป้าหมายหลัก:</span>
<span class="objective-value">{service.data.objective}</span>
</div>
</div>
</section>
<!-- USP Section -->
<section class="section section-light usp-section">
<div class="container">
<div class="usp-card">
<div class="usp-icon">🎁</div>
<div class="usp-content">
<h3 class="usp-title">{uspTitle}</h3>
<p class="usp-desc">{uspText}</p>
</div>
</div>
</div>
</section>
<!-- Features Section -->
<section class="section features-section">
<div class="container">
<div class="section-header">
<span class="section-badge">บริการของเรา</span>
<h2 class="section-title">{service.data.title} ที่เราช่วยได้</h2>
</div>
<div class="features-grid">
{features.map((feature, i) => (
<div class="feature-card" style={`--delay: ${i * 0.1}s`}>
<div class="feature-icon">{feature.icon || "⭐"}</div>
<h3 class="feature-title">{feature.title}</h3>
<p class="feature-desc">{feature.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- Process Section -->
<section class="section section-dark process-section">
<div class="container">
<div class="section-header">
<span class="section-badge">กระบวนการ</span>
<h2 class="section-title-light">วิธีการทำงานของเรา</h2>
</div>
<div class="process-steps">
{processSteps.map((step, i) => (
<div class="step" style={`--delay: ${i * 0.1}s`}>
<span class="step-num">{step.num}</span>
<h3 class="step-title">{step.title}</h3>
<p class="step-desc">{step.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">ต้องการ{service.data.objective}?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบโซลูชันที่เหมาะกับคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-dark btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline-dark btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.section-dark {
background: var(--color-dark);
color: var(--color-white);
}
.section-light {
background: var(--color-gray-100);
}
.section-primary {
background: var(--color-primary);
}
.hero-objective {
display: inline-flex;
align-items: center;
gap: 12px;
background: rgba(254, 212, 0, 0.15);
padding: 12px 24px;
border-radius: 40px;
border: 1px solid rgba(254, 212, 0, 0.3);
}
.objective-label { color: rgba(255,255,255,0.6); font-size: 14px; }
.objective-value { color: var(--color-primary); font-weight: 700; font-size: 16px; }
.usp-card {
display: flex;
align-items: flex-start;
gap: 24px;
padding: 32px;
background: linear-gradient(135deg, var(--color-primary) 0%, #ffe066 100%);
border-radius: 20px;
}
.usp-icon { font-size: 48px; flex-shrink: 0; }
.usp-title { font-size: 24px; font-weight: 700; color: var(--color-black); margin-bottom: 12px; }
.usp-desc { font-size: 16px; color: rgba(0,0,0,0.8); line-height: 1.6; }
.section-header { text-align: center; margin-bottom: 60px; }
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title { font-size: clamp(28px, 4vw, 42px); font-weight: 700; color: var(--color-black); }
.section-title-light { font-size: clamp(28px, 4vw, 42px); font-weight: 700; color: var(--color-white); }
.features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-card {
background: var(--color-white);
border-radius: 16px;
padding: 40px 28px;
text-align: center;
border: 1px solid rgba(0,0,0,0.05);
transition: all 0.3s ease;
animation: fadeUp 0.6s ease backwards;
animation-delay: var(--delay);
}
.feature-card:hover {
transform: translateY(-8px);
box-shadow: 0 20px 40px rgba(0,0,0,0.1);
border-color: var(--color-primary);
}
.feature-icon { font-size: 48px; margin-bottom: 20px; }
.feature-title { font-size: 20px; font-weight: 700; margin-bottom: 12px; color: var(--color-black); }
.feature-desc { font-size: 14px; color: var(--color-gray-600); line-height: 1.6; }
.process-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.step {
text-align: center;
padding: 32px 24px;
background: rgba(255,255,255,0.03);
border-radius: 16px;
border: 1px solid rgba(255,255,255,0.05);
transition: all 0.3s ease;
animation: fadeUp 0.6s ease backwards;
animation-delay: var(--delay);
}
.step:hover { transform: translateY(-4px); border-color: var(--color-primary); }
.step-num { display: block; font-family: var(--font-display); font-size: 48px; font-weight: 800; color: var(--color-primary); margin-bottom: 16px; }
.step-title { font-size: 18px; font-weight: 700; margin-bottom: 8px; color: var(--color-white); }
.step-desc { font-size: 14px; color: rgba(255,255,255,0.5); line-height: 1.6; }
.cta-content { text-align: center; }
.cta-title { font-size: clamp(28px, 4vw, 42px); font-weight: 800; margin-bottom: 16px; color: var(--color-black); }
.cta-desc { font-size: 18px; color: rgba(0,0,0,0.7); margin-bottom: 32px; max-width: 500px; margin-left: auto; margin-right: auto; }
.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-dark { background: var(--color-dark); color: var(--color-white); }
.btn-dark:hover { background: var(--color-dark-light); }
.btn-outline-dark { background: transparent; color: var(--color-black); border: 2px solid var(--color-black); }
.btn-outline-dark:hover { background: var(--color-black); color: var(--color-white); }
.btn-lg { padding: 16px 36px; font-size: 16px; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 1024px) {
.features-grid { grid-template-columns: repeat(2, 1fr); }
.process-steps { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
.features-grid, .process-steps { grid-template-columns: 1fr; }
.usp-card { flex-direction: column; }
.cta-actions { flex-direction: column; }
.btn-lg { width: 100%; }
}
</style>

View File

@@ -1,262 +0,0 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
const features = [
{
icon: "🤖",
title: "AI Chatbot",
desc: "Chatbot ที่ใช้ AI ตอบคำถามลูกค้าได้ 24/7 รองรับภาษาไทย"
},
{
icon: "💬",
title: "AI Customer Service",
desc: "ระบบตอบคำถามอัตโนมัติด้วย AI ที่เข้าใจบริบท"
},
{
icon: "📝",
title: "AI Content Generation",
desc: "สร้าง content อัตโนมัติด้วย AI ที่ SEO friendly"
},
{
icon: "📧",
title: "AI Email Marketing",
desc: "ส่ง email ที่ personalized ด้วย AI ที่วิเคราะห์พฤติกรรม"
},
{
icon: "📊",
title: "AI Sales Prediction",
desc: "ทำนายยอดขายและวางแผนการตลาดด้วย AI"
},
{
icon: "🎯",
title: "AI Lead Scoring",
desc: "ให้คะแนน leads อัตโนมัติด้วย AI ที่เรียนรู้จากข้อมูล"
}
];
---
<Base title="AI Automation | MoreminiMore">
<Navigation />
<!-- Hero Section -->
<Hero
title="AI Automation"
subtitle="นำ AI มาใช้เพื่อเพิ่มยอดขายและปรับปรุงการให้บริการลูกค้า เพิ่มประสิทธิภาพ ลดต้นทุน ด้วยเทคโนโลยีล้ำสมัย"
badge="บริการ"
image="/images/hero/ai-automation-hero.jpg"
theme="yellow"
showCTA={false}
variant="centered"
size="compact"
/>
<!-- Features Section -->
<section class="section features-section">
<div class="container">
<div class="section-header">
<span class="section-badge">คุณสมบัติ</span>
<h2 class="section-title">AI ที่เรานำมาใช้</h2>
</div>
<div class="features-grid">
{features.map((feature, i) => (
<div class="feature-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<span class="feature-icon">{feature.icon}</span>
<h3 class="feature-title">{feature.title}</h3>
<p class="feature-desc">{feature.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- Case Study Section -->
<section class="section section-light case-section">
<div class="container">
<div class="section-header">
<span class="section-badge">กรณีศึกษา</span>
<h2 class="section-title">ผลลัพธ์ที่ลูกค้าได้รับ</h2>
</div>
<div class="case-grid">
<div class="case-card">
<span class="case-number">+35%</span>
<span class="case-label">เพิ่มยอดขาย</span>
</div>
<div class="case-card">
<span class="case-number">-60%</span>
<span class="case-label">ลดค่าใช้จ่าย</span>
</div>
<div class="case-card">
<span class="case-number">24/7</span>
<span class="case-label">ให้บริการลูกค้า</span>
</div>
<div class="case-card">
<span class="case-number">3x</span>
<span class="case-label">เร็วขึ้น</span>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมนำ AI มาใช้ในธุรกิจ?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมวิเคราะห์และออกแบบ AI solution ที่เหมาะกับคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 700;
}
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.feature-card {
padding: 40px 32px;
text-align: center;
}
.feature-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.feature-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 12px;
}
.feature-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.case-section {
background: var(--color-light-gray);
}
.case-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 48px;
text-align: center;
}
.case-card {
display: flex;
flex-direction: column;
align-items: center;
}
.case-number {
font-family: var(--font-heading);
font-size: 64px;
font-weight: 800;
color: var(--color-primary);
line-height: 1;
margin-bottom: 12px;
}
.case-label {
font-size: 16px;
color: var(--color-medium-gray);
text-transform: uppercase;
letter-spacing: 2px;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
}
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
margin-bottom: 16px;
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
@media (max-width: 1024px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
.case-grid {
grid-template-columns: repeat(2, 1fr);
gap: 32px;
}
}
@media (max-width: 640px) {
.features-grid,
.case-grid {
grid-template-columns: 1fr;
}
.hero-actions,
.cta-actions {
flex-direction: column;
}
.btn-lg {
width: 100%;
justify-content: center;
}
}
</style>

View File

@@ -1,271 +0,0 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
const services = [
{
icon: "🔍",
title: "Digital Audit",
desc: "วิเคราะห์สถานะดิจิทัลปัจจุบันของธุรกิจคุณอย่างละเอียด"
},
{
icon: "📋",
title: "Digital Strategy",
desc: "วางแผน digital transformation ที่เหมาะกับเป้าหมายธุรกิจ"
},
{
icon: "🛠️",
title: "Technology Selection",
desc: "แนะนำเทคโนโลยีที่เหมาะสมกับ budget และความต้องการ"
},
{
icon: "📐",
title: "System Architecture",
desc: "ออกแบบระบบที่ scalable และ maintainable"
},
{
icon: "🔧",
title: "Implementation Support",
desc: "ดูแลและให้คำปรึกษาตลอดการ implement"
},
{
icon: "📈",
title: "Performance Optimization",
desc: "ปรับปรุงประสิทธิภาพระบบให้ดีขึ้นอย่างต่อเนื่อง"
}
];
---
<Base title="Tech Consult | MoreminiMore">
<Navigation />
<!-- Hero Section -->
<Hero
title="Tech Consult"
subtitle="ให้คำปรึกษาด้านเทคโนโลยีเพื่อธุรกิจของคุณ วางแผน ออกแบบ และ implement ระบบที่เหมาะสม"
badge="บริการ"
image="/images/hero/tech-consult-hero.jpg"
theme="yellow"
showCTA={false}
variant="split"
size="compact"
/>
<!-- Features Section -->
<section class="section features-section">
<div class="container">
<div class="section-header">
<span class="section-badge">บริการของเรา</span>
<h2 class="section-title">เราให้คำปรึกษาอะไรบ้าง</h2>
</div>
<div class="features-grid">
{services.map((service, i) => (
<div class="feature-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<span class="feature-icon">{service.icon}</span>
<h3 class="feature-title">{service.title}</h3>
<p class="feature-desc">{service.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- Process Section -->
<section class="section section-light process-section">
<div class="container">
<div class="section-header">
<span class="section-badge">กระบวนการ</span>
<h2 class="section-title">วิธีการทำงานของเรา</h2>
</div>
<div class="process-steps">
<div class="step">
<span class="step-num">01</span>
<h3 class="step-title">วิเคราะห์</h3>
<p class="step-desc">วิเคราะห์สถานะปัจจุบันและเป้าหมายของธุรกิจ</p>
</div>
<div class="step">
<span class="step-num">02</span>
<h3 class="step-title">วางแผน</h3>
<p class="step-desc">ออกแบบ roadmap และ timeline สำหรับ implementation</p>
</div>
<div class="step">
<span class="step-num">03</span>
<h3 class="step-title">ดำเนินการ</h3>
<p class="step-desc">implement ตามแผนที่วางไว้พร้อม support ตลอดเวลา</p>
</div>
<div class="step">
<span class="step-num">04</span>
<h3 class="step-title">ประเมินผล</h3>
<p class="step-desc">วัดผลและปรับปรุงอย่างต่อเนื่อง</p>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">ต้องการคำปรึกษาด้านเทคโนโลยี?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมรับฟังปัญหาและหาทางออกร่วมกัน</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 700;
}
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.feature-card {
padding: 40px 32px;
text-align: center;
}
.feature-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.feature-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 12px;
}
.feature-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.process-section {
background: var(--color-light-gray);
}
.process-steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px;
}
.step {
text-align: center;
padding: 32px;
background: var(--color-white);
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}
.step-num {
display: block;
font-family: var(--font-heading);
font-size: 48px;
font-weight: 800;
color: var(--color-primary);
margin-bottom: 16px;
}
.step-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 8px;
}
.step-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
}
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
margin-bottom: 16px;
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
@media (max-width: 1024px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
.process-steps {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.features-grid,
.process-steps {
grid-template-columns: 1fr;
}
.hero-actions,
.cta-actions {
flex-direction: column;
}
.btn-lg {
width: 100%;
justify-content: center;
}
}
</style>

View File

@@ -0,0 +1,221 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Footer from '../../components/Footer.astro';
import PageHero from '../../components/PageHero.astro';
import ServiceCard from '../../components/ServiceCard.astro';
import { getCollection } from 'astro:content';
const services = await getCollection('services');
const techServices = services.filter(s => s.data.category === 'tech-consult');
const marketingServices = services.filter(s => s.data.category === 'marketing-consult');
// Map service slugs to images
const serviceImages: Record<string, string> = {
'automation': '/images/services/automation.jpg',
'ai-consult': '/images/services/ai-consult.jpg',
'marketing': '/images/services/marketing.jpg',
'webdev': '/images/services/webdev.jpg',
};
---
<Base title="บริการ | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<PageHero
badge="บริการ"
title="บริการของเรา"
subtitle="ครบจบทุกโซลูชันด้านดิจิทัลสำหรับธุรกิจไทย"
/>
<section class="section">
<div class="container">
<!-- Tech Consult Category -->
<div class="category-section">
<div class="category-header">
<div class="category-icon">🔧</div>
<div class="category-info">
<span class="category-badge">Technology Consult</span>
<h2 class="category-title">ลดต้นทุนและเวลา</h2>
<p class="category-desc">บริการให้คำปรึกษาด้านเทคโนโลยีเพื่อเพิ่มประสิทธิภาพการทำงานและลดค่าใช้จ่ายในระยะยาว</p>
</div>
</div>
<div class="services-grid">
{techServices.map(s => (
<ServiceCard
title={s.data.title}
subtitle={s.data.subtitle}
image={serviceImages[s.slug] || '/images/services/default.jpg'}
link={`/services/${s.slug}`}
/>
))}
</div>
<div class="usp-box">
<div class="usp-icon">🎁</div>
<div class="usp-content">
<h4 class="usp-title">สิทธิพิเศษสำหรับลูกค้า Consult</h4>
<p class="usp-desc">ลูกค้าที่ใช้บริการ Technology Consult จะได้รับ Server ฟรีสำหรับ App และ AI (สำหรับการใช้งานปกติ) หากต้องการใช้งานหนักหรือ Resource-intensive จะมีค่าใช้จ่ายเพิ่มเติม</p>
</div>
</div>
</div>
<!-- Marketing Consult Category -->
<div class="category-section">
<div class="category-header">
<div class="category-icon">📈</div>
<div class="category-info">
<span class="category-badge">Marketing Consult</span>
<h2 class="category-title">เพิ่มยอดขาย</h2>
<p class="category-desc">บริการด้านการตลาดที่ช่วยให้ธุรกิจของคุณเข้าถึงลูกค้าได้มากขึ้นและเพิ่มยอดขายอย่างเป็นระบบ</p>
</div>
</div>
<div class="services-grid">
{marketingServices.map(s => (
<ServiceCard
title={s.data.title}
subtitle={s.data.subtitle}
image={serviceImages[s.slug] || '/images/services/default.jpg'}
link={`/services/${s.slug}`}
/>
))}
</div>
<div class="usp-box">
<div class="usp-icon">🎁</div>
<div class="usp-content">
<h4 class="usp-title">สิทธิพิเศษสำหรับลูกค้า Website</h4>
<p class="usp-desc">ลูกค้าที่ใช้ Server ของเราจะได้รับบริการแก้ไขและเพิ่มเนื้อหาเว็บไซต์ฟรี! จ่ายเฉพาะเมื่อต้องการ Redesign ทั้งหมด หรือ Upgrade ฟีเจอร์ใหญ่ เช่น เพิ่มระบบ E-commerce</p>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมเริ่มต้นวันนี้?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบโซลูชันที่เหมาะกับคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-dark btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline-dark btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.category-section {
margin-bottom: 80px;
}
.category-section:last-of-type { margin-bottom: 0; }
.category-header {
display: flex;
align-items: flex-start;
gap: 24px;
margin-bottom: 40px;
padding: 32px;
background: var(--color-gray-100);
border-radius: 20px;
}
.category-icon {
font-size: 48px;
flex-shrink: 0;
}
.category-info { flex: 1; }
.category-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 4px 12px;
border-radius: 12px;
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
margin-bottom: 8px;
}
.category-title {
font-size: 32px;
font-weight: 700;
color: var(--color-dark);
margin-bottom: 8px;
}
.category-desc {
font-size: 16px;
color: var(--color-gray-600);
line-height: 1.6;
}
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
margin-bottom: 32px;
}
.usp-box {
display: flex;
align-items: flex-start;
gap: 20px;
padding: 24px;
background: linear-gradient(135deg, var(--color-primary) 0%, #ffe066 100%);
border-radius: 16px;
}
.usp-icon { font-size: 32px; flex-shrink: 0; }
.usp-title {
font-size: 18px;
font-weight: 700;
color: var(--color-black);
margin-bottom: 8px;
}
.usp-desc {
font-size: 14px;
color: rgba(0,0,0,0.8);
line-height: 1.6;
}
.section-primary { background: var(--color-primary); }
.cta-content { text-align: center; }
.cta-title {
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
margin-bottom: 16px;
color: var(--color-black);
}
.cta-desc {
font-size: 18px;
color: rgba(0,0,0,0.7);
margin-bottom: 32px;
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.btn-outline-dark {
background: transparent;
color: var(--color-black);
border: 2px solid var(--color-black);
}
.btn-outline-dark:hover { background: var(--color-black); color: var(--color-white); }
.btn-dark {
background: var(--color-dark);
color: var(--color-white);
}
.btn-dark:hover { background: var(--color-dark-light); }
.btn-lg { padding: 16px 36px; font-size: 16px; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
@media (max-width: 1024px) {
.services-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
.category-header { flex-direction: column; }
.cta-actions { flex-direction: column; }
.btn-lg { width: 100%; }
}
</style>

View File

@@ -1,262 +0,0 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
const features = [
{
icon: "📧",
title: "Email Automation",
desc: "ส่ง email อัตโนมัติเมื่อ trigger ตรงกับเงื่อนไขที่กำหนด"
},
{
icon: "💬",
title: "Chatbot Integration",
desc: "เชื่อมต่อ chatbot กับระบบ CRM เพื่อเก็บข้อมูลลูกค้า"
},
{
icon: "📱",
title: "SMS/Line Automation",
desc: "ส่ง SMS หรือ LINE message อัตโนมัติตาม timeline"
},
{
icon: "📊",
title: "Analytics Dashboard",
desc: "ติดตามผลแคมเปญและวัด ROI ได้แบบ real-time"
},
{
icon: "🎯",
title: "Lead Scoring",
desc: "ให้คะแนน leads ตามพฤติกรรมเพื่อจัดลำดับความสำคัญ"
},
{
icon: "🔄",
title: "Workflow Automation",
desc: "สร้าง workflow อัตโนมัติสำหรับงานที่ทำซ้ำๆ"
}
];
---
<Base title="Marketing Automation | MoreminiMore">
<Navigation />
<!-- Hero Section -->
<Hero
title="Marketing Automation"
subtitle="เพิ่มประสิทธิภาพการตลาดและลดต้นทุนด้วยระบบอัตโนมัติ ประหยัดเวลา เพิ่ม conversion วัดผลได้"
badge="บริการ"
image="/images/hero/marketing-automation-hero.jpg"
theme="yellow"
showCTA={false}
variant="split"
size="compact"
/>
<!-- Features Section -->
<section class="section features-section">
<div class="container">
<div class="section-header">
<span class="section-badge">คุณสมบัติ</span>
<h2 class="section-title">ระบบที่เราสร้างให้คุณ</h2>
</div>
<div class="features-grid">
{features.map((feature, i) => (
<div class="feature-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<span class="feature-icon">{feature.icon}</span>
<h3 class="feature-title">{feature.title}</h3>
<p class="feature-desc">{feature.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- Benefits Section -->
<section class="section section-light benefits-section">
<div class="container">
<div class="section-header">
<span class="section-badge">ประโยชน์</span>
<h2 class="section-title">ทำไมต้องทำ Marketing Automation</h2>
</div>
<div class="benefits-grid">
<div class="benefit-item">
<span class="benefit-number">50%</span>
<span class="benefit-label">ลดเวลาทำงาน</span>
</div>
<div class="benefit-item">
<span class="benefit-number">3x</span>
<span class="benefit-label">เพิ่ม conversion</span>
</div>
<div class="benefit-item">
<span class="benefit-number">24/7</span>
<span class="benefit-label">ให้บริการลูกค้า</span>
</div>
<div class="benefit-item">
<span class="benefit-number">100%</span>
<span class="benefit-label">วัดผลได้</span>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมเพิ่มประสิทธิภาพการตลาด?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมวิเคราะห์และออกแบบระบบที่เหมาะกับธุรกิจของคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 700;
}
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.feature-card {
padding: 40px 32px;
text-align: center;
}
.feature-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.feature-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 12px;
}
.feature-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.benefits-section {
background: var(--color-light-gray);
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 48px;
text-align: center;
}
.benefit-item {
display: flex;
flex-direction: column;
align-items: center;
}
.benefit-number {
font-family: var(--font-heading);
font-size: 64px;
font-weight: 800;
color: var(--color-primary);
line-height: 1;
margin-bottom: 12px;
}
.benefit-label {
font-size: 16px;
color: var(--color-medium-gray);
text-transform: uppercase;
letter-spacing: 2px;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
}
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
margin-bottom: 16px;
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
@media (max-width: 1024px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
.benefits-grid {
grid-template-columns: repeat(2, 1fr);
gap: 32px;
}
}
@media (max-width: 640px) {
.features-grid,
.benefits-grid {
grid-template-columns: 1fr;
}
.hero-actions,
.cta-actions {
flex-direction: column;
}
.btn-lg {
width: 100%;
justify-content: center;
}
}
</style>

View File

@@ -1,283 +0,0 @@
---
import Base from '../../layouts/Base.astro';
import Navigation from '../../components/Navigation.astro';
import Hero from '../../components/Hero.astro';
import Footer from '../../components/Footer.astro';
const features = [
{
icon: "⚡",
title: "เร็วสุดใน class",
desc: "โหลดเร็ว เพิ่ม conversion และ SEO ranking"
},
{
icon: "📱",
title: "Responsive ทุก device",
desc: "แสดงผลได้ดีบน mobile tablet และ desktop"
},
{
icon: "🎨",
title: "Design สวยงาม",
desc: "ออกแบบ UI/UX ที่ดึงดูดและใช้งานง่าย"
},
{
icon: "🔒",
title: "ปลอดภัย",
desc: "Security ระดับสูง ป้องกันการโจมตี"
},
{
icon: "SEO",
title: "SEO Optimized",
desc: "ออกแบบมาเพื่อให้ Google ชอบ"
},
{
icon: "📊",
title: "Analytics ในตัว",
desc: "ติดตามผู้เข้าชมและวัดผลได้"
}
];
---
<Base title="พัฒนาเว็บไซต์ | MoreminiMore">
<Navigation />
<!-- Hero Section -->
<Hero
title="พัฒนาเว็บไซต์"
subtitle="สร้างเว็บไซต์ที่ทันสมัย รวดเร็ว และตอบสนองความต้องการของลูกค้าของคุณ ด้วยเทคโนโลยีล่าสุดและ design ที่สวยงาม"
badge="บริการ"
image="/images/hero/web-development-hero.jpg"
theme="yellow"
showCTA={false}
variant="split"
size="compact"
/>
<!-- Features Section -->
<section class="section features-section">
<div class="container">
<div class="section-header">
<span class="section-badge">คุณสมบัติ</span>
<h2 class="section-title">ทำไมต้องเลือกเรา</h2>
</div>
<div class="features-grid">
{features.map((feature, i) => (
<div class="feature-card card card-accent" style={`animation-delay: ${i * 0.1}s`}>
<span class="feature-icon">{feature.icon}</span>
<h3 class="feature-title">{feature.title}</h3>
<p class="feature-desc">{feature.desc}</p>
</div>
))}
</div>
</div>
</section>
<!-- Services List -->
<section class="section section-light services-list-section">
<div class="container">
<div class="section-header">
<span class="section-badge">บริการของเรา</span>
<h2 class="section-title">เราให้บริการอะไรบ้าง</h2>
</div>
<div class="services-list">
<div class="service-item">
<span class="service-num">01</span>
<div class="service-content">
<h3>Landing Page</h3>
<p>สร้าง landing page ที่ออกแบบมาเพื่อ convert ผู้เข้าชมเป็นลูกค้า ด้วย design ที่ดึงดูดและ content ที่ตรงใจ</p>
</div>
</div>
<div class="service-item">
<span class="service-num">02</span>
<div class="service-content">
<h3>เว็บไซต์องค์กร</h3>
<p>พัฒนาเว็บไซต์สำหรับองค์กรที่ต้องการ professional online presence พร้อมระบบจัดการเนื้อหา</p>
</div>
</div>
<div class="service-item">
<span class="service-num">03</span>
<div class="service-content">
<h3>E-commerce</h3>
<p>สร้างร้านค้าออนไลน์ที่สมบูรณ์แบบ รองรับการชำระเงิน จัดส่งสินค้า และ inventory management</p>
</div>
</div>
<div class="service-item">
<span class="service-num">04</span>
<div class="service-content">
<h3>Web Application</h3>
<p>พัฒนา web application ที่ซับซ้อนตามความต้องการของธุรกิจ ไม่ว่าจะเป็นระบบจอง ระบบขาย หรือระบบ management</p>
</div>
</div>
</div>
</div>
</section>
<!-- CTA Section -->
<section class="section section-primary cta-section">
<div class="container">
<div class="cta-content">
<h2 class="cta-title">พร้อมเริ่มโปรเจกต์เว็บไซต์?</h2>
<p class="cta-desc">ปรึกษาฟรี! เราพร้อมช่วยวิเคราะห์และออกแบบเว็บไซต์ที่เหมาะกับธุรกิจของคุณ</p>
<div class="cta-actions">
<a href="/contact" class="btn btn-secondary btn-lg">ติดต่อเรา</a>
<a href="tel:0809955945" class="btn btn-outline btn-lg">080-995-5945</a>
</div>
</div>
</div>
</section>
<Footer />
</Base>
<style>
.section-header {
text-align: center;
margin-bottom: 60px;
}
.section-badge {
display: inline-block;
background: var(--color-primary);
color: var(--color-black);
padding: 6px 16px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 700;
}
.features-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
}
.feature-card {
padding: 40px 32px;
text-align: center;
}
.feature-icon {
font-size: 48px;
display: block;
margin-bottom: 20px;
}
.feature-title {
font-size: 20px;
font-weight: 700;
margin-bottom: 12px;
}
.feature-desc {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.services-list-section {
background: var(--color-light-gray);
}
.services-list {
max-width: 800px;
margin: 0 auto;
display: flex;
flex-direction: column;
gap: 24px;
}
.service-item {
display: flex;
gap: 32px;
padding: 32px;
background: var(--color-white);
border-radius: 16px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
align-items: flex-start;
}
.service-num {
font-family: var(--font-heading);
font-size: 48px;
font-weight: 800;
color: var(--color-primary);
line-height: 1;
flex-shrink: 0;
}
.service-content h3 {
font-size: 20px;
font-weight: 700;
margin-bottom: 8px;
}
.service-content p {
font-size: 14px;
color: var(--color-medium-gray);
line-height: 1.6;
}
.cta-section {
padding: 100px 0;
}
.cta-content {
text-align: center;
}
.cta-title {
font-size: clamp(32px, 5vw, 48px);
font-weight: 800;
margin-bottom: 16px;
}
.cta-desc {
font-size: 18px;
margin-bottom: 40px;
opacity: 0.8;
}
.cta-actions {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
@media (max-width: 1024px) {
.features-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 640px) {
.features-grid {
grid-template-columns: 1fr;
}
.service-item {
flex-direction: column;
gap: 16px;
}
.hero-actions,
.cta-actions {
flex-direction: column;
}
.btn-lg {
width: 100%;
justify-content: center;
}
}
</style>

View File

@@ -1,232 +1,87 @@
---
import Base from '../layouts/Base.astro';
import Navigation from '../components/Navigation.astro';
import Hero from '../components/Hero.astro';
import Footer from '../components/Footer.astro';
import PageHero from '../components/PageHero.astro';
---
<Base title="เงื่อนไขการให้บริการ | MoreminiMore">
<Base title="เงื่อนไขการให้บริการ | MoreminiMore - รับทำเว็บไซต์ SEO AI Chatbot">
<Navigation />
<Hero
<PageHero
badge="กฎหมาย"
title="เงื่อนไขการให้บริการ"
subtitle="มีผลบังคับใช้วันที่ 5 พฤษภาคม 2569"
badge="กฎหมาย"
image="/images/hero/marketing-automation.jpg"
theme="yellow"
showCTA={false}
variant="text-only"
size="compact"
/>
<main class="legal-page">
<section class="section legal-section">
<div class="container">
<header class="legal-header">
<h1 class="legal-title">เงื่อนไขการให้บริการ</h1>
<p class="legal-meta">มีผลบังคับใช้วันที่: 5 พฤษภาคม 2569 | แก้ไขล่าสุด: 5 พฤษภาคม 2569</p>
</header>
<div class="legal-content">
<p class="legal-intro">
<strong>ชื่อเว็บไซต์:</strong> MoreminiMore<br />
<strong>เว็บไซต์:</strong> https://www.moreminimore.com<br />
<strong>บริษัท:</strong> MoreminiMore Co.,Ltd.
</p>
<p class="legal-intro">ชื่อเว็บไซต์: MoreminiMore | เว็บไซต์: https://www.moreminimore.com | บริษัท: MoreminiMore Co.,Ltd.</p>
<section class="legal-section">
<div class="legal-section">
<h2>1. การยอมรับเงื่อนไข</h2>
<p>ด้วยการเข้าถึงและใช้งานเว็บไซต์ของบริษัท มอร์มินิมอร์ จำกัด ท่านยอมรับและตกลงที่จะถูกผูกมัดด้วยเงื่อนไขการให้บริการฉบับนี้</p>
</div>
<h3>1.1 ข้อตกลง</h3>
<p>ด้วยการเข้าถึงและใช้งานเว็บไซต์ https://www.moreminimore.com ("เว็บไซต์") ของบริษัท MoreminiMore Co.,Ltd. ("เรา", "ของเรา" หรือ "บริษัท") ท่าน ("ผู้ใช้", "ท่าน" หรือ "ของคุณ") ยอมรับและตกลงที่จะถูกผูกมัดด้วยเงื่อนไขการให้บริการฉบับนี้ ("เงื่อนไข")</p>
<div class="legal-section">
<h2>2. การแก้ไขเงื่อนไข</h2>
<p>เราขอสงวนสิทธิในการแก้ไขเงื่อนไขนี้เมื่อใดก็ได้ การแก้ไขจะมีผลทันทีเมื่อโพสต์บนเว็บไซต์ ท่านควรตรวจสอบเงื่อนไขนี้เป็นประจำ</p>
</div>
<h3>1.2 การแก้ไขเงื่อนไข</h3>
<p>เราขอสงวนสิทธิในการแก้ไขเงื่อนไขนี้เมื่อใดก็ได้:</p>
<ul>
<li>การแก้ไขจะมีผลทันทีเมื่อโพสต์บนเว็บไซต์</li>
<li>ท่านควรตรวจสอบเงื่อนไขนี้เป็นประจำ</li>
<li>การใช้งานเว็บไซต์ต่อเนื่องแสดงว่าท่านยอมรับการแก้ไข</li>
</ul>
<div class="legal-section">
<h2>3. บริการของเรา</h2>
<p>เราให้บริการพัฒนาเว็บไซต์ AI Automation และ Marketing Automation สำหรับธุรกิจไทย โดยมีรายละเอียดและขอบเขตงานตามที่ตกลงกันในสัญญา</p>
</div>
<h3>1.3 อายุขั้นต่ำ</h3>
<p>ท่านต้องมีอายุไม่ต่ำกว่า 20 ปีบริบูรณ์เพื่อใช้งานเว็บไซต์ หากท่านอายุต่ำกว่า 20 ปี ท่านต้องได้รับความยินยอมจากผู้ปกครอง</p>
</section>
<div class="legal-section">
<h2>4. การชำระเงิน</h2>
<p>การชำระเงินจะเป็นไปตามเงื่อนไขที่กำหนดในใบเสนอราคาและสัญญา ลูกค้าตกลงชำระตามกำหนดเวลาที่ระบุ</p>
</div>
<section class="legal-section">
<h2>2. บริการของเรา</h2>
<div class="legal-section">
<h2>5. การรับประกัน</h2>
<p>เรารับประกันคุณภาพงานตามที่ระบุในสัญญา หากไม่พอใจในงาน เราพร้อมแก้ไขจนกว่าจะถูกใจตามเงื่อนไขที่กำหนด</p>
</div>
<h3>2.1 คำอธิบายบริการ</h3>
<p>MoreminiMore ให้บริการ:</p>
<ol>
<li><strong>พัฒนาเว็บไซต์</strong> - รับทำเว็บไซต์ระดับมืออาชีพด้วยเทคโนโลยีล่าสุด</li>
<li><strong>Marketing Automation</strong> - ระบบอัตโนมัติสำหรับการตลาด</li>
<li><strong>AI Automation</strong> - บริการ AI สำหรับธุรกิจ</li>
</ol>
<div class="legal-section">
<h2>6. ข้อจำกัดความรับผิด</h2>
<p>ความรับผิดของบริษัทจะจำกัดอยู่ที่มูลค่าของงานที่ให้บริการตามที่ระบุในสัญญา</p>
</div>
<h3>2.2 การเปลี่ยนแปลงบริการ</h3>
<p>เราขอสงวนสิทธิในการเพิ่ม ลบ หรือแก้ไขฟีเจอร์ของบริการ ระงับหรือยุติบริการชั่วคราวหรือถาวร</p>
<h3>2.3 ความพร้อมของบริการ</h3>
<p>เราพยายามให้บริการอย่างต่อเนื่อง แต่ไม่รับประกันว่าบริการจะปราศจากข้อผิดพลาด</p>
</section>
<section class="legal-section">
<h2>3. บัญชีผู้ใช้</h2>
<p>เพื่อใช้งานบริการบางอย่าง ท่านต้องสร้างบัญชีผู้ใช้โดยให้ข้อมูลที่ถูกต้อง ครบถ้วน และทันสมัย ท่านต้องรักษารหัสผ่านให้เป็นความลับและรับผิดชอบต่อทุกกิจกรรมที่เกิดขึ้นภายใต้บัญชีของท่าน</p>
<p>เราขอสงวนสิทธิในการระงับหรือลบบัญชีของท่านหากละเมิดเงื่อนไขหรือมีกิจกรรมที่น่าสงสัย</p>
</section>
<section class="legal-section">
<h2>4. ความเป็นเจ้าของทรัพย์สินทางปัญญา</h2>
<p>เว็บไซต์และเนื้อหาทั้งหมดเป็นทรัพย์สินของเราหรือผู้ให้ใบอนุญาต รวมถึงเนื้อหา ข้อความ กราฟิก โลโก้ ซอฟต์แวร์ โค้ด และการออกแบบ เครื่องหมายการค้าและโลโก้เป็นเครื่องหมายการค้าของเรา</p>
<p>ท่านยังคงเป็นเจ้าของเนื้อหาที่ท่านส่งมาและให้ใบอนุญาตแก่เราในการใช้เนื้อหานั้น</p>
</section>
<section class="legal-section">
<h2>5. ข้อห้ามในการใช้งาน</h2>
<p>ท่านตกลงที่จะไม่ใช้เว็บไซต์เพื่อกิจกรรมที่ผิดกฎหมาย ละเมิดสิทธิทางปัญญา ละเมิดความเป็นส่วนตัว ส่งเนื้อหาที่ผิดกฎหมาย เผยแพร่ไวรัสหรือมัลแวร์ พยายามเข้าถึงระบบโดยไม่ได้รับอนุญาต หรือส่งสแปม</p>
</section>
<section class="legal-section">
<h2>6. การชำระเงิน</h2>
<ul>
<li>ราคาทั้งหมดแสดงเป็นเงินบาทไทย (THB) และรวม VAT 7% แล้ว</li>
<li>เรายอมรับการชำระเงินผ่าน พีเอ็ม, โอนเงินผ่านธนาคาร</li>
<li>ผู้ใช้สามารถขอคืนเงินได้ภายใน 7 วันนับจากวันที่ชำระเงิน</li>
<li>การคืนเงินจะดำเนินการภายใน 5 วันทำการ</li>
</ul>
</section>
<section class="legal-section">
<h2>7. การปฏิเสธความรับผิดชอบ</h2>
<p>บริการให้บริการ "ตามที่เป็น" และ "ตามที่มี" เราไม่รับประกันว่าบริการจะปราศจากข้อผิดพลาด ความรับผิดรวมของเราจะไม่เกิน 100,000 บาท</p>
</section>
<section class="legal-section">
<h2>8. กฎหมายที่ใช้บังคับ</h2>
<p>เงื่อนไขนี้ถูกควบคุมและตีความตามกฎหมายแห่งราชอาณาจักรไทย ข้อพิพาทใดๆ อยู่ภายใต้เขตอำนาจศาลของศาลแพ่ง/ศาลล้มละลายกลาง กรุงเทพมหานคร</p>
<p>ก่อนดำเนินการทางกฎหมาย พยายามเจรจาเพื่อระงับข้อพิพาทภายใน 30 วัน</p>
</section>
<section class="legal-section">
<h2>9. การติดต่อ</h2>
<div class="contact-box">
<p><strong>อีเมล:</strong> contact@moreminimore.com</p>
<p><strong>โทรศัพท์:</strong> 080-995-5945</p>
<p><strong>ที่อยู่:</strong> กรุงเทพมหานคร ประเทศไทย</p>
</div>
</section>
<footer class="legal-footer">
<p>*เอกสารนี้เป็นเอกสารทางกฎหมาย หากท่านมีข้อสงสัย กรุณาปรึกษาที่ปรึกษากฎหมาย</p>
</footer>
<div class="legal-section">
<h2>7. ติดต่อเรา</h2>
<p>หากมีคำถามเกี่ยวกับเงื่อนไขการให้บริการ กรุณาติดต่อเราที่ contact@moreminimore.com หรือ 080-995-5945</p>
</div>
</div>
</div>
</main>
</section>
<Footer />
</Base>
<style>
.legal-page {
padding: 120px 0 80px;
min-height: 100vh;
}
.legal-header {
text-align: center;
margin-bottom: 60px;
padding-bottom: 40px;
border-bottom: 2px solid var(--color-primary);
}
.legal-title {
font-size: clamp(36px, 5vw, 56px);
font-weight: 800;
color: var(--color-black);
margin-bottom: 16px;
}
.legal-meta {
font-size: 14px;
color: var(--color-medium-gray);
}
.legal-content {
max-width: 800px;
margin: 0 auto;
}
.legal-section { background: var(--color-white); }
.legal-content { max-width: 800px; margin: 0 auto; }
.legal-intro {
font-size: 14px;
line-height: 2;
font-size: 18px;
color: var(--color-medium-gray);
margin-bottom: 48px;
padding: 20px 24px;
background: var(--color-light-gray);
border-radius: 12px;
border-left: 4px solid var(--color-primary);
line-height: 1.7;
}
.legal-section {
margin-bottom: 48px;
}
.legal-section h2 {
font-size: 24px;
font-weight: 700;
color: var(--color-black);
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 1px solid #eee;
color: var(--color-black);
}
.legal-section h3 {
font-size: 18px;
font-weight: 600;
color: var(--color-primary);
margin: 24px 0 12px;
}
.legal-section p {
font-size: 16px;
color: #444;
line-height: 1.8;
color: #444;
margin-bottom: 16px;
}
.legal-section ul,
.legal-section ol {
margin-left: 24px;
margin-bottom: 16px;
}
.legal-section li {
font-size: 16px;
line-height: 1.7;
color: #444;
margin-bottom: 8px;
}
.contact-box {
background: var(--color-light-gray);
padding: 24px;
border-radius: 12px;
margin-top: 16px;
}
.contact-box p {
margin-bottom: 8px;
}
.legal-footer {
margin-top: 60px;
padding-top: 24px;
border-top: 1px solid #eee;
text-align: center;
}
.legal-footer p {
font-size: 14px;
color: var(--color-medium-gray);
font-style: italic;
}
</style>