- All 11 page templates rewritten for light theme - index.astro: 8 sections (hero, stats yellow band, problem cards, services mega-grid, black pull-quote, blog preview, yellow CTA) - about.astro: story + values (4 dark-icon cards) + process 4-step - contact.astro: 4 channel picker cards + 8-field form (added budget field) + 3-step 'what happens next' + pre-submit FAQ + yellow final CTA - faq.astro: dynamic category rendering from content/faq collection (5 categories, 20 Q&A) + tag cloud + 3 channel cards - portfolio.astro: industry filter bar (sticky) + 9 items with new schema (industry, what_we_did, result fields) + 'ดีลที่เราเลือก' section - services/index.astro: decision table (6 rows, scannable in 30s) + 3 pricing tiers (Starter/Business/Enterprise) + add-on chips - services/[slug].astro: 4 service types with light hero + pricing + tech options + AI features + 6-FAQ per service - blog/index.astro: featured + 4-card grid from content collection - blog/[slug].astro: 2-column with sidebar (about, contact, related) - privacy.astro + terms.astro: legal content, light theme - All form posts go to setTimeout success (placeholder for backend wire)
303 lines
9.5 KiB
Plaintext
303 lines
9.5 KiB
Plaintext
---
|
|
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 } from 'astro:content';
|
|
|
|
const faqItems = await getCollection('faq');
|
|
const categories = ['บริการ', 'ราคา', 'ระยะเวลา', 'AI & เทคนิค', 'หลังการขาย'];
|
|
const categoryIcons: Record<string, string> = {
|
|
'บริการ': '💼',
|
|
'ราคา': '💰',
|
|
'ระยะเวลา': '⏱️',
|
|
'AI & เทคนิค': '🤖',
|
|
'หลังการขาย': '🛠️',
|
|
};
|
|
---
|
|
|
|
<Base title="คำถามที่พบบ่อย | MoreminiMore | รับทำเว็บไซต์ SEO AI Chatbot">
|
|
<Navigation />
|
|
|
|
<PageHero
|
|
badge="FAQ"
|
|
title="คำถามที่ลูกค้าถามบ่อยที่สุด"
|
|
subtitle="30+ คำถามที่รวบรวมจากแชต LINE จริง ๆ ไม่ใช่แต่งขึ้นเอง"
|
|
/>
|
|
|
|
<section class="section faq-section">
|
|
<div class="container">
|
|
{categories.map(cat => {
|
|
const items = faqItems.filter(f => f.data.category === cat);
|
|
if (items.length === 0) return null;
|
|
return (
|
|
<div class="faq-category">
|
|
<h2 class="category-title">
|
|
<span class="category-icon">{categoryIcons[cat]}</span>
|
|
{cat}
|
|
</h2>
|
|
<div class="faq-list">
|
|
{items.map((item, qIndex) => (
|
|
<details class="faq-item">
|
|
<summary class="faq-question">
|
|
<span class="question-text">{item.data.question}</span>
|
|
<span class="faq-toggle">+</span>
|
|
</summary>
|
|
<div class="faq-answer">
|
|
<p>{item.data.answer}</p>
|
|
</div>
|
|
</details>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
})}
|
|
|
|
<!-- Other Topics -->
|
|
<div class="faq-category">
|
|
<h2 class="category-title">
|
|
<span class="category-icon">📚</span>
|
|
เรื่องอื่น ๆ ที่ลูกค้าถามบ่อย
|
|
</h2>
|
|
<div class="tag-cloud">
|
|
<span class="topic-tag">โฮสติ้ง</span>
|
|
<span class="topic-tag">โดเมน</span>
|
|
<span class="topic-tag">SSL</span>
|
|
<span class="topic-tag">ใบเสนอราคา</span>
|
|
<span class="topic-tag">ใบกำกับภาษี</span>
|
|
<span class="topic-tag">สัญญา</span>
|
|
<span class="topic-tag">NDA</span>
|
|
<span class="topic-tag">ลิขสิทธิ์งาน</span>
|
|
<span class="topic-tag">ทีมงาน</span>
|
|
<span class="topic-tag">ขนาดทีม</span>
|
|
<span class="topic-tag">ที่ตั้งบริษัท</span>
|
|
<span class="topic-tag">ตัวอย่างงาน</span>
|
|
<span class="topic-tag">ขอดูเว็บจริง</span>
|
|
<span class="topic-tag">นัดคุยนอกสถานที่</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Quick Channels -->
|
|
<div class="channels-section">
|
|
<h2 class="channels-title">ไม่เจอคำตอบ? ถามตรง ๆ เลย</h2>
|
|
<div class="channels-grid">
|
|
<a href="https://line.me/ti/p/~@539hdlul" target="_blank" rel="noopener" class="channel-card">
|
|
<div class="channel-icon">💬</div>
|
|
<h3 class="channel-name">LINE</h3>
|
|
<p class="channel-handle">@moreminimore</p>
|
|
<p class="channel-time">ตอบใน 30 นาที (เวลาทำการ)</p>
|
|
</a>
|
|
<a href="tel:0809955945" class="channel-card">
|
|
<div class="channel-icon">📞</div>
|
|
<h3 class="channel-name">โทร</h3>
|
|
<p class="channel-handle">080-995-5945</p>
|
|
<p class="channel-time">จ-ศ 09:00-18:00</p>
|
|
</a>
|
|
<a href="mailto:contact@moreminimore.com" class="channel-card">
|
|
<div class="channel-icon">📧</div>
|
|
<h3 class="channel-name">Email</h3>
|
|
<p class="channel-handle">contact@moreminimore.com</p>
|
|
<p class="channel-time">ตอบภายใน 1 วัน</p>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="section section-yellow cta-section">
|
|
<div class="container">
|
|
<div class="cta-content">
|
|
<h2 class="cta-title">พร้อมคุยรายละเอียด?</h2>
|
|
<p class="cta-desc">นัดปรึกษาฟรี 30 นาที ผ่าน Zoom หรือนัดเจอที่ออฟฟิศ (กรุงเทพ/สมุทรสาคร)</p>
|
|
<div class="cta-actions">
|
|
<a href="/contact" class="btn btn-dark btn-lg">นัดปรึกษา →</a>
|
|
<a href="https://line.me/ti/p/~@539hdlul" target="_blank" rel="noopener" class="btn btn-outline-dark btn-lg">ทัก LINE ตอนนี้</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<Footer />
|
|
</Base>
|
|
|
|
<style>
|
|
.faq-section { background: var(--color-white); }
|
|
.section-yellow { background: var(--color-primary); }
|
|
|
|
.faq-category {
|
|
max-width: 800px;
|
|
margin: 0 auto 60px;
|
|
}
|
|
.category-title {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
font-family: var(--font-display);
|
|
font-size: 22px;
|
|
font-weight: 800;
|
|
color: var(--color-black);
|
|
margin-bottom: 20px;
|
|
padding-bottom: 12px;
|
|
border-bottom: 3px solid var(--color-primary);
|
|
}
|
|
.category-icon { font-size: 28px; }
|
|
.faq-list { display: flex; flex-direction: column; gap: 12px; }
|
|
|
|
.faq-item {
|
|
background: var(--color-white);
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid var(--color-gray-200);
|
|
overflow: hidden;
|
|
transition: all 0.3s ease;
|
|
}
|
|
.faq-item[open] { border-color: var(--color-primary); }
|
|
.faq-item:hover { box-shadow: var(--shadow-sm); }
|
|
|
|
.faq-question {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 20px 24px;
|
|
cursor: pointer;
|
|
list-style: none;
|
|
transition: background 0.2s ease;
|
|
}
|
|
.faq-question::-webkit-details-marker { display: none; }
|
|
.faq-question:hover { background: var(--color-bg-alt); }
|
|
|
|
.question-text {
|
|
flex: 1;
|
|
font-family: var(--font-display);
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
color: var(--color-black);
|
|
padding-right: 16px;
|
|
}
|
|
.faq-toggle {
|
|
font-size: 28px;
|
|
font-weight: 300;
|
|
color: var(--color-primary);
|
|
flex-shrink: 0;
|
|
line-height: 1;
|
|
}
|
|
.faq-item[open] .faq-toggle { transform: rotate(45deg); }
|
|
|
|
.faq-answer {
|
|
padding: 0 24px 24px;
|
|
}
|
|
.faq-answer p {
|
|
font-size: 15px;
|
|
line-height: 1.8;
|
|
color: var(--color-gray-700);
|
|
white-space: pre-line;
|
|
}
|
|
|
|
/* Tag cloud */
|
|
.tag-cloud {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
.topic-tag {
|
|
display: inline-block;
|
|
padding: 8px 16px;
|
|
background: var(--color-bg-alt);
|
|
color: var(--color-gray-700);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-full);
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
}
|
|
.topic-tag:hover {
|
|
background: var(--color-primary);
|
|
border-color: var(--color-primary);
|
|
color: var(--color-black);
|
|
}
|
|
|
|
/* Channels */
|
|
.channels-section {
|
|
max-width: 900px;
|
|
margin: 80px auto 0;
|
|
padding: 60px 40px;
|
|
background: var(--color-bg-alt);
|
|
border-radius: var(--radius-xl);
|
|
text-align: center;
|
|
}
|
|
.channels-title {
|
|
font-family: var(--font-display);
|
|
font-size: 28px;
|
|
font-weight: 800;
|
|
color: var(--color-black);
|
|
margin-bottom: 32px;
|
|
}
|
|
.channels-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 16px;
|
|
}
|
|
.channel-card {
|
|
display: block;
|
|
background: var(--color-white);
|
|
border: 1px solid var(--color-gray-200);
|
|
border-radius: var(--radius-lg);
|
|
padding: 24px;
|
|
text-align: center;
|
|
transition: all 0.3s ease;
|
|
}
|
|
.channel-card:hover {
|
|
border-color: var(--color-primary);
|
|
transform: translateY(-4px);
|
|
box-shadow: var(--shadow-md);
|
|
}
|
|
.channel-icon { font-size: 32px; margin-bottom: 12px; }
|
|
.channel-name {
|
|
font-family: var(--font-display);
|
|
font-size: 18px;
|
|
font-weight: 800;
|
|
color: var(--color-black);
|
|
margin-bottom: 4px;
|
|
}
|
|
.channel-handle {
|
|
font-size: 14px;
|
|
font-weight: 700;
|
|
color: var(--color-primary-dark);
|
|
margin-bottom: 4px;
|
|
}
|
|
.channel-time {
|
|
font-size: 12px;
|
|
color: var(--color-gray-500);
|
|
}
|
|
|
|
/* CTA */
|
|
.cta-content { text-align: center; max-width: 700px; margin: 0 auto; }
|
|
.cta-title {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(28px, 4vw, 44px);
|
|
font-weight: 900;
|
|
color: var(--color-black);
|
|
margin-bottom: 16px;
|
|
}
|
|
.cta-desc {
|
|
font-size: 18px;
|
|
color: rgba(0, 0, 0, 0.7);
|
|
margin-bottom: 32px;
|
|
}
|
|
.cta-actions {
|
|
display: flex;
|
|
gap: 16px;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.channels-grid { grid-template-columns: 1fr; }
|
|
}
|
|
@media (max-width: 640px) {
|
|
.cta-actions { flex-direction: column; }
|
|
.cta-actions .btn { width: 100%; justify-content: center; }
|
|
.faq-question { padding: 16px 20px; }
|
|
.question-text { font-size: 15px; }
|
|
}
|
|
</style>
|