diff --git a/quixzoom-asia-pages/scripts/validate.js b/quixzoom-asia-pages/scripts/validate.js index 2828321b3..eb341f394 100644 --- a/quixzoom-asia-pages/scripts/validate.js +++ b/quixzoom-asia-pages/scripts/validate.js @@ -9,7 +9,7 @@ const path = require('path'); const LANGUAGES = ['zh-cn', 'zh-tw', 'ja', 'ko', 'th', 'vi', 'id', 'ms', 'hi']; const REQUIRED_KEYS = [ 'TITLE', 'META_DESC', 'NAV_HOW', 'NAV_MISSIONS', 'NAV_EARNINGS', - 'NAV_LANDVEX', 'NAV_FAQ', 'CTA_START', 'HERO_BADGE', 'HERO_H1', + 'NAV_PARTNERS', 'NAV_FAQ', 'CTA_START', 'HERO_BADGE', 'HERO_H1', 'HERO_H1_EMPH', 'HERO_SUB', 'EMAIL_PLACEHOLDER', 'TRUST_LINE', 'STAT1_NUM', 'STAT1_LBL', 'STAT2_NUM', 'STAT2_LBL', 'STAT3_NUM', 'STAT3_LBL', 'STATS_1_VAL', 'STATS_1_LBL', 'STATS_2_VAL', 'STATS_2_LBL', @@ -22,12 +22,22 @@ const REQUIRED_KEYS = [ 'TIER1_F1', 'TIER1_F2', 'TIER1_F3', 'TIER2_NAME', 'TIER2_MISSIONS', 'TIER2_F1', 'TIER2_F2', 'TIER2_F3', 'TIER3_NAME', 'TIER3_MISSIONS', 'TIER3_F1', 'TIER3_F2', 'TIER3_F3', - 'AUTH_TITLE', 'AUTH_SUB', 'AUTH_VISUAL_TITLE', 'AUTH_VISUAL_DESC', - 'AUTH_B1', 'AUTH_B2', 'AUTH_B3', 'AUTH_B4', - 'AUTH_S1_TITLE', 'AUTH_S1_DESC', 'AUTH_S2_TITLE', 'AUTH_S2_DESC', - 'AUTH_S3_TITLE', 'AUTH_S3_DESC', 'AUTH_S4_TITLE', 'AUTH_S4_DESC', 'AUTH_CTA', + 'PARTNER_TITLE', 'PARTNER_SUB', 'PARTNER_HERO_DESC', + 'PARTNER_MODEL_TITLE', 'PARTNER_MODEL_SUB', + 'PARTNER_M1_TITLE', 'PARTNER_M1_DESC', 'PARTNER_M2_TITLE', 'PARTNER_M2_DESC', + 'PARTNER_M3_TITLE', 'PARTNER_M3_DESC', 'PARTNER_M4_TITLE', 'PARTNER_M4_DESC', + 'PARTNER_REQ_TITLE', 'PARTNER_REQ_SUB', + 'PARTNER_R1_TITLE', 'PARTNER_R1_DESC', 'PARTNER_R2_TITLE', 'PARTNER_R2_DESC', + 'PARTNER_R3_TITLE', 'PARTNER_R3_DESC', 'PARTNER_R4_TITLE', 'PARTNER_R4_DESC', + 'PARTNER_R5_TITLE', 'PARTNER_R5_DESC', 'PARTNER_R6_TITLE', 'PARTNER_R6_DESC', + 'PARTNER_AUTH_TITLE', 'PARTNER_AUTH_SUB', + 'PARTNER_A1_TITLE', 'PARTNER_A1_DESC', 'PARTNER_A2_TITLE', 'PARTNER_A2_DESC', + 'PARTNER_A3_TITLE', 'PARTNER_A3_DESC', 'PARTNER_A4_TITLE', 'PARTNER_A4_DESC', + 'PARTNER_A5_TITLE', 'PARTNER_A5_DESC', 'PARTNER_A6_TITLE', 'PARTNER_A6_DESC', + 'PARTNER_CTA', 'PARTNER_CTA_SUB', 'FAQ_TITLE', 'FAQ_SUB', 'FAQ_Q1', 'FAQ_A1', 'FAQ_Q2', 'FAQ_A2', 'FAQ_Q3', 'FAQ_A3', 'FAQ_Q4', 'FAQ_A4', 'FAQ_Q5', 'FAQ_A5', + 'FAQ_Q6', 'FAQ_A6', 'FAQ_Q7', 'FAQ_A7', 'FOOTER_TAGLINE', 'FOOTER_COL1_TITLE', 'FOOTER_COL1_L1', 'FOOTER_COL1_L2', 'FOOTER_COL1_L3', 'FOOTER_COL1_L4', 'FOOTER_COL2_TITLE', 'FOOTER_COL2_L1', 'FOOTER_COL2_L2', 'FOOTER_COL2_L3', 'FOOTER_COL3_TITLE', 'FOOTER_COL3_L1', diff --git a/quixzoom-asia-pages/src/template.html b/quixzoom-asia-pages/src/template.html index d722fec89..98b81bdf9 100644 --- a/quixzoom-asia-pages/src/template.html +++ b/quixzoom-asia-pages/src/template.html @@ -7,7 +7,6 @@ - @@ -116,20 +115,31 @@ .tier-features li { display: flex; align-items: flex-start; gap: 10px; font-size: 1rem; color: var(--text-body); padding: 6px 0; } .tier-features li::before { content: '✓'; display: block; width: 18px; height: 18px; min-width: 18px; background: var(--green); color: #fff; border-radius: 50%; text-align: center; line-height: 18px; font-size: .75rem; margin-top: 2px; } - /* Landvex Authorization */ - #landvex { background: var(--bg-off); } - .auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; } - .auth-visual { background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%); border-radius: var(--radius); padding: 48px; color: #fff; } - .auth-visual h3 { color: #fff; margin-bottom: 16px; } - .auth-visual p { color: rgba(255,255,255,.85); line-height: 1.6; margin-bottom: 24px; } - .auth-benefits { list-style: none; } - .auth-benefits li { display: flex; align-items: center; gap: 12px; padding: 10px 0; color: rgba(255,255,255,.9); } - .auth-benefits li::before { content: '★'; color: #FFD700; } - .auth-steps { display: flex; flex-direction: column; gap: 20px; } - .auth-step { display: flex; gap: 16px; align-items: flex-start; } - .auth-step-num { width: 36px; height: 36px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; } - .auth-step h4 { font-size: 1rem; font-weight: 700; color: var(--text); margin-bottom: 4px; } - .auth-step p { font-size: .875rem; color: var(--text-muted); line-height: 1.5; } + /* Partner Section */ + #partner { background: var(--bg-off); } + .partner-hero { text-align: center; padding: 80px 0 64px; } + .partner-hero h2 { margin-bottom: 16px; } + .partner-hero > p { font-size: 1.125rem; color: var(--text-muted); max-width: 700px; margin: 0 auto 48px; } + .partner-hero-desc { background: var(--bg); border-radius: var(--radius); padding: 32px; max-width: 800px; margin: 0 auto 48px; border-left: 4px solid var(--blue); } + .partner-hero-desc p { font-size: 1rem; color: var(--text-body); line-height: 1.7; } + .partner-model-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 64px; } + .partner-model-card { background: var(--bg); border-radius: var(--radius); padding: 32px 24px; text-align: center; border: 1px solid #E8E8E8; } + .partner-model-card h3 { font-size: 1.125rem; margin-bottom: 12px; } + .partner-model-card p { font-size: .875rem; color: var(--text-muted); line-height: 1.6; } + .partner-req-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 64px; } + .partner-req-card { background: var(--bg); border-radius: var(--radius); padding: 28px 24px; border: 1px solid #E8E8E8; } + .partner-req-card h4 { font-size: 1rem; font-weight: 700; color: var(--text); margin-bottom: 8px; } + .partner-req-card p { font-size: .875rem; color: var(--text-muted); line-height: 1.6; } + .partner-steps { display: flex; flex-direction: column; gap: 16px; max-width: 800px; margin: 0 auto 48px; } + .partner-step { display: flex; gap: 20px; align-items: flex-start; background: var(--bg); border-radius: var(--radius); padding: 24px; border: 1px solid #E8E8E8; } + .partner-step-num { width: 40px; height: 40px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; } + .partner-step h4 { font-size: 1rem; font-weight: 700; color: var(--text); margin-bottom: 4px; } + .partner-step p { font-size: .875rem; color: var(--text-muted); line-height: 1.5; } + .partner-cta-box { background: linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%); border-radius: var(--radius); padding: 48px; text-align: center; color: #fff; } + .partner-cta-box h3 { color: #fff; margin-bottom: 12px; } + .partner-cta-box p { color: rgba(255,255,255,.85); margin-bottom: 24px; } + .btn-white { display: inline-block; background: #fff; color: var(--blue); padding: 16px 40px; border-radius: var(--radius-lg); font-size: 1rem; font-weight: 800; text-decoration: none; transition: transform .2s; } + .btn-white:hover { transform: translateY(-2px); } /* FAQ */ .faq-list { max-width: 760px; margin: 0 auto; } @@ -160,13 +170,16 @@ /* Responsive */ @media(max-width: 960px) { .hero-layout { grid-template-columns: 1fr; gap: 40px; } - .auth-grid { grid-template-columns: 1fr; } + .partner-model-grid { grid-template-columns: repeat(2, 1fr); } + .partner-req-grid { grid-template-columns: repeat(2, 1fr); } .footer-inner { grid-template-columns: 1fr 1fr; } } @media(max-width: 768px) { .steps-grid, .missions-grid, .earnings-grid { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: repeat(2, 1fr); } .nav-links { display: none; } + .partner-model-grid { grid-template-columns: 1fr; } + .partner-req-grid { grid-template-columns: 1fr; } .footer-inner { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; align-items: flex-start; } } @@ -188,7 +201,7 @@ {{NAV_HOW}} {{NAV_MISSIONS}} {{NAV_EARNINGS}} - {{NAV_LANDVEX}} + {{NAV_PARTNERS}} {{NAV_FAQ}}
{{AUTH_SUB}}
+{{PARTNER_SUB}}
+{{PARTNER_HERO_DESC}}
+{{AUTH_VISUAL_DESC}}
-{{PARTNER_MODEL_SUB}}
+{{PARTNER_M1_DESC}}
{{AUTH_S1_DESC}}
-{{AUTH_S2_DESC}}
-{{AUTH_S3_DESC}}
-{{AUTH_S4_DESC}}
-{{PARTNER_M2_DESC}}
+{{PARTNER_M3_DESC}}
+{{PARTNER_M4_DESC}}
+{{PARTNER_REQ_SUB}}
+{{PARTNER_R1_DESC}}
+{{PARTNER_R2_DESC}}
+{{PARTNER_R3_DESC}}
+{{PARTNER_R4_DESC}}
+{{PARTNER_R5_DESC}}
+{{PARTNER_R6_DESC}}
+{{PARTNER_AUTH_SUB}}
+{{PARTNER_A1_DESC}}
{{PARTNER_A2_DESC}}
+{{PARTNER_A3_DESC}}
+{{PARTNER_A4_DESC}}
+{{PARTNER_A5_DESC}}
+{{PARTNER_A6_DESC}}
+