#!/usr/bin/env python3
"""studiosoft_hc61_carousel_gen.py — StudioSoft Healthcare Carousel hc61.

Topik : "Cara Klinik Kecantikan di Surabaya Bisa Ditemukan Lebih Cepat di Google"
Artikel: https://studiosoft.id/cara-klinik-kecantikan-di-surabaya-bisa-ditemukan-lebih-cepat-di-google/
         (WP id 3767) RE-AIR Threads (jejak Threads terakhir 26 Sep 2026 02:01Z / hc46 =
         PALING TUA di antara artikel HC hidup yang TIDAK punya jadwal Threads mendatang;
         artikel HTTP 200). Slide BARU `ss_hc61_seoklinikcan_*`.

Standar desain Bos 16 Sep 2026: engine ss_carousel_lib.py -> rata kiri, satu blok di tengah
vertikal, TANPA separator, bullet dot, bg BIRU TUA #122B63, judul Poppins-Bold 85 / body 36 /
sub 30, auto-fit. Resolusi 1080x1350 (4:5). 5 slide: cover + 3 isi + CTA.
"""
import os
import sys

from PIL import Image

sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import ss_carousel_lib as L

WS = "/home/mantapman/.hermes/profiles/atun/workspace"   # JANGAN pakai expanduser("~")
OUT_DIR = os.path.join(WS, "studiosoft_hc61_carousel")
TAG = "#klinikkecantikan"
BG = (18, 43, 99)      # #122B63
SKY = L.SKY


def mk(num, total=5):
    return L.Slide(num, total, TAG, bg=BG)


def s1():
    s = mk(1)
    s.title([("KLINIK KECANTIKAN", SKY), "DITEMUKAN DI GOOGLE"], after=44)
    s.lead("Setiap hari ratusan orang di Surabaya mencari facial, laser, atau anti-aging lewat "
           "Google.", after=30)
    s.para("Hanya klinik yang muncul di halaman pertama yang benar-benar ditemukan dan dipilih.",
           size=30)
    return s.render("ss_hc61_seoklinikcan_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("KENAPA HARUS", SKY), "HALAMAN SATU"], after=40)
    s.bullets([
        ("Google = pintu masuk", "pasien baru mencari lewat Google, bukan brosur atau "
                                 "rekomendasi tetangga."),
        ("Jarang scroll", "orang hampir tidak pernah melewati lima hasil teratas."),
        ("Peluang hilang", "tiap hari klinik tanpa SEO kehilangan calon pasien."),
        ("Trafik organik", "gratis, berkualitas, siap dikonversi jadi janji temu."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc61_seoklinikcan_02_halpertama.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("LIMA LANGKAH", SKY), "BIAR CEPAT DITEMUKAN"], after=40)
    s.bullets([
        ("Optimalkan GBP", "profil Google Business lengkap: foto, jam, alamat, ulasan dibalas."),
        ("Kata kunci lokal", "sasar long-tail seperti klinik kecantikan Surabaya Selatan."),
        ("Website cepat", "mobile-friendly, navigasi sederhana, tombol pesan di tiap halaman."),
        ("Konten edukatif", "jawab pertanyaan pasien sebelum mereka memutuskan."),
        ("Backlink lokal", "guest post media daerah, direktori bisnis, kolaborasi lokal."),
    ], gap=18, name_size=34, desc_size=24)
    return s.render("ss_hc61_seoklinikcan_03_lima.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("BUKTI, BUKAN", SKY), "SEKADAR KLAIM"], after=40)
    s.bullets([
        ("Map pack", "GBP yang rapi membuat klinik muncul saat dicari dari sekitar."),
        ("Studi kasus", "klinik di Surabaya Timur: 50 pengunjung organik jadi 500+ dalam "
                        "empat bulan."),
        ("Konversi nyata", "sekitar 25 persen trafik itu berubah menjadi booking pasien."),
        ("Evaluasi rutin", "laporan bulanan ranking, sumber trafik, dan konversi."),
    ], gap=18, name_size=34, desc_size=24)
    s.para("SEO bukan sekali kerja lalu selesai, melainkan kebiasaan yang dijaga.",
           size=27, after=0)
    return s.render("ss_hc61_seoklinikcan_04_bukti.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("MULAI DARI", SKY), "HALAMAN PERTAMA"], after=40)
    s.lead("Klinik kecantikan di Surabaya tidak perlu lagi bersaing secara buta: optimasi GBP, "
           "website, dan konten yang tepat membuat pasien menemukan Anda lebih cepat.",
           after=28)
    s.para("StudioSoft menyusun strategi SEO klinik yang terukur, dari profil Google sampai "
           "laporan bulanan.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc61_seoklinikcan_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc61 - klinik kecantikan Surabaya di Google")
    print("=" * 70)
    for fn in (s1, s2, s3, s4, s5):
        p = fn()
        print("OK %s %s %d bytes" % (p, Image.open(p).size, os.path.getsize(p)))
    print("OK 5 slide -> %s" % OUT_DIR)
