#!/usr/bin/env python3
"""studiosoft_hc57_carousel_gen.py — StudioSoft Healthcare Carousel hc57.

Topik : "Panduan SEO untuk Klinik dan Rumah Sakit: Biar Mudah Ditemukan Pasien"
Artikel: https://studiosoft.id/panduan-seo-klinik-rumah-sakit/ (WP id 5974)
         RE-AIR Threads (jejak Threads terakhir 22 Sep 2026 = paling tua di seri hc;
         artikel HTTP 200). Slide BARU ss_hc57_seoklinikrs_*.

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_hc57_carousel")
TAG = "#seoklinik"
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([("SEO UNTUK", SKY), "KLINIK", "& RUMAH SAKIT"], after=44)
    s.lead("Pasien mencari lewat Google saat keluhan sudah mengganggu. Yang muncul di "
           "halaman pertama itulah yang dipilih.", after=30)
    s.para("Panduan singkat supaya klinik dan rumah sakit Anda mudah ditemukan pasien "
           "yang tepat.", size=30)
    return s.render("ss_hc57_seoklinikrs_01_cover.png", OUT_DIR)


def s2():
    s = mk(2)
    s.title([("PASIEN MENCARI", SKY), "DENGAN CARA", "BERBEDA"], after=44)
    s.bullets([
        ("Layanan + kota", "\u201cklinik kulit surabaya\u201d - persaingan paling berat, "
                           "biasanya dipegang halaman utama."),
        ("Layanan spesifik", "\u201claser pigmentasi\u201d - lebih ringan, cocok untuk "
                             "halaman layanan."),
        ("Pertanyaan gejala", "\u201cgatal di kulit apakah berbahaya\u201d - volume besar, "
                              "cocok jadi artikel edukasi."),
        ("Nama dokter atau merek", "harus dimenangkan, karena orang sudah mencari Anda."),
    ], gap=18, name_size=38, desc_size=26)
    return s.render("ss_hc57_seoklinikrs_02_cari.png", OUT_DIR)


def s3():
    s = mk(3)
    s.title([("LOCAL SEO", SKY), "MODAL UTAMA"], after=44)
    s.bullets([
        ("Google Business Profile", "isi lengkap: foto, jam buka, dan daftar layanan."),
        ("NAP konsisten", "nama, alamat, dan nomor telepon sama di semua platform."),
        ("Kelola ulasan", "minta ulasan setelah kunjungan, balas semua termasuk yang negatif."),
        ("Konten lokal", "artikel layanan yang menyebut nama kota atau area layanan."),
        ("Citation", "daftarkan klinik di direktori kesehatan dan Google Maps."),
    ], gap=16, name_size=34, desc_size=25)
    return s.render("ss_hc57_seoklinikrs_03_local.png", OUT_DIR)


def s4():
    s = mk(4)
    s.title([("TIGA HAL YANG", SKY), "DIPANTAU TIAP BULAN"], after=44)
    s.bullets([
        ("Pencarian ke halaman layanan", "berapa orang diarahkan ke halaman layanan Anda."),
        ("Klik telepon & rute", "dari profil bisnis Google, tanda niat datang."),
        ("Formulir & pesan masuk", "jumlah kontak nyata yang diterima tiap bulan."),
    ], gap=20, name_size=36, desc_size=26)
    s.para("Kalau pencarian naik tetapi kontak tidak bergerak, masalahnya biasanya di halaman "
           "layanan, bukan di peringkat.", size=28, after=0)
    return s.render("ss_hc57_seoklinikrs_04_ukur.png", OUT_DIR)


def s5():
    s = mk(5)
    s.title([("DARI PENCARIAN", SKY), "JADI KUNJUNGAN"], after=44)
    s.lead("SEO bukan soal peringkat saja, tetapi pasien yang benar-benar menemukan "
           "layanan Anda.", after=30)
    s.para("StudioSoft membantu klinik dan rumah sakit menyusun SEO yang etis, terukur, "
           "dan sesuai kebutuhan pasien.", size=30)
    s.h2("www.studiosoft.id", size=40)
    return s.render("ss_hc57_seoklinikrs_05_cta.png", OUT_DIR)


if __name__ == "__main__":
    print("StudioSoft Healthcare Carousel hc57 \u2014 panduan SEO klinik & rumah sakit")
    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)
