/* ══════════════════════════════════════════════════════════════════
   PUBLIC.CSS — identitas visual situs publik (Fase 11)
   ══════════════════════════════════════════════════════════════════
   Berbeda sengaja dari design-system.css (panel operasional yang
   tenang) — di sini editorial, sinematik, mengikuti arahan brief:
   "Public website = cinematic Egyptian editorial experience."

   ⚠️ CATATAN HAK CIPTA — WAJIB DIBACA SEBELUM GO-LIVE:
   Foto di /assets/img/ saat ini adalah foto yang Anda kirim, dan
   SEBAGIAN BERWATERMARK STOK (nile-aswan dari pratinjau iStock,
   cairo-city ada kredit "© Anton Aleksenko"). Itu HANYA PENEMPATAN
   SEMENTARA supaya Anda bisa melihat hasil desainnya.

   JANGAN dipakai di situs produksi — agensi stok aktif menuntut
   pemakaian tanpa lisensi. Ganti dengan foto legal sebelum go-live.
   Cara mengganti ada di PANDUAN_DEPLOY_ZENHOSTA.md → Bagian F.
   ══════════════════════════════════════════════════════════════════ */

body{background:var(--ivory)}

.pub-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 40px;background:var(--charcoal);position:sticky;top:0;z-index:50;
}
.pub-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ivory)}
.pub-brand-mark{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:var(--gold);flex-shrink:0}
.pub-brand-name{font-family:var(--font-display);font-size:15px;letter-spacing:.04em}
.pub-brand-tag{font-size:9.5px;color:rgba(247,243,234,.5);letter-spacing:.08em;text-transform:uppercase;margin-top:1px}
.pub-nav{display:flex;align-items:center;gap:26px}
.pub-nav a{color:rgba(247,243,234,.78);text-decoration:none;font-size:13px;font-weight:500}
.pub-nav a.active{color:var(--gold)}

/* ── Hero sinematik dengan LATAR FOTO ─────────────────────
   Struktur berlapis (penting utk keterbacaan):
     1. Foto asli
     2. "Scrim" — lapisan gelap bergradasi di atas foto
     3. Teks
   Tanpa lapisan 2, teks putih di atas foto cerah (langit/pasir)
   akan sulit dibaca — ini kesalahan paling umum saat memakai
   foto sbg latar. Scrim-nya bergradasi (pekat di kiri tempat
   teks berada, memudar ke kanan) supaya fotonya tetap terlihat. */
.pub-hero{
  position:relative;min-height:64vh;display:flex;align-items:center;
  color:var(--ivory);padding:60px 40px;overflow:hidden;
  background:#171717; /* warna dasar kalau foto gagal dimuat */
}
/* Lapisan foto — dipisah ke ::after supaya bisa digerakkan pelan
   (efek Ken Burns) tanpa ikut menggerakkan teks di atasnya. */
.pub-hero-photo::after{
  content:'';position:absolute;inset:0;z-index:0;
  background-size:cover;background-position:center;
  animation:kenburns 28s ease-in-out infinite alternate;
}
@keyframes kenburns{
  from{transform:scale(1)   translate3d(0,0,0)}
  to  {transform:scale(1.07) translate3d(-1%,-1%,0)}
}
/* Scrim — gelap di kiri (tempat teks), memudar ke kanan */
.pub-hero::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg, rgba(16,20,18,.88) 0%, rgba(16,20,18,.62) 45%, rgba(16,20,18,.30) 100%),
    linear-gradient(180deg, rgba(23,23,23,.45) 0%, transparent 30%, rgba(23,23,23,.55) 100%);
}
.pub-hero-content{position:relative;z-index:2;max-width:640px}

/* Foto per halaman */
.hero-nile::after   { background-image:url('/assets/img/nile-aswan-hero.jpg') }
.hero-cairo::after  { background-image:url('/assets/img/cairo-city-hero.jpg') }
.hero-giza::after   { background-image:url('/assets/img/giza-sphinx-hero.jpg') }
.hero-museum::after { background-image:url('/assets/img/museum-hero.jpg') }

.pub-hero-sm{min-height:38vh}
.pub-hero h1{
  font-family:var(--font-display);font-size:clamp(34px,5.2vw,58px);line-height:1.08;
  color:var(--ivory);margin:10px 0 16px;
  text-shadow:0 2px 24px rgba(0,0,0,.45); /* jaga keterbacaan di area foto terang */
}
.pub-hero-desc{font-size:16px;color:rgba(247,243,234,.88);line-height:1.6;max-width:480px;
  text-shadow:0 1px 12px rgba(0,0,0,.4)}
.pub-hero-cta{margin-top:26px;display:flex;gap:12px}

/* ── Grid kartu (destinasi/paket) ── */
.pub-main{max-width:1160px;margin:0 auto;padding:56px 40px}
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.pub-card{
  text-decoration:none;color:var(--text);border-radius:var(--radius-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--border-soft);transition:transform .2s ease, box-shadow .2s ease;
}
.pub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.pub-card-img{height:190px;position:relative;overflow:hidden;background:#2A2520}
/* Foto kartu — sedikit membesar saat kursor lewat. Halus (0,7 detik),
   tidak melompat. Ini yang membuat kartu terasa "hidup" saat disentuh. */
.pub-card-img::before{
  content:'';position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.pub-card:hover .pub-card-img::before{transform:scale(1.05)}
/* Gradasi gelap di bawah — supaya judul kartu tetap terbaca kalau
   nanti ditaruh menumpuk foto, & memberi kedalaman */
.pub-card-img::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.30))}

/* Foto per destinasi. Kalau destinasi baru ditambahkan lewat admin dan
   belum punya foto, kelas .pub-card-img-N di bawah dipakai berputar
   sbg cadangan — jadi tampilan tidak pernah kosong/rusak. */
.img-nile::before   { background-image:url('/assets/img/nile-aswan-card.jpg') }
.img-cairo::before  { background-image:url('/assets/img/cairo-city-card.jpg') }
.img-giza::before   { background-image:url('/assets/img/giza-sphinx-card.jpg') }
.img-museum::before { background-image:url('/assets/img/museum-card.jpg') }

/* Cadangan bergilir utk destinasi/paket tanpa foto khusus */
.pub-card-img-1::before{background-image:url('/assets/img/giza-sphinx-card.jpg')}
.pub-card-img-2::before{background-image:url('/assets/img/nile-aswan-card.jpg')}
.pub-card-img-3::before{background-image:url('/assets/img/cairo-city-card.jpg')}
.pub-card-img-4::before{background-image:url('/assets/img/museum-card.jpg')}
.pub-card-body{padding:18px 20px}
.pub-card-body h3{font-family:var(--font-display);font-size:19px;margin-bottom:6px;color:var(--charcoal)}
.pub-card-body p{font-size:13px;color:var(--text-muted);line-height:1.5}

/* ── Halaman detail ── */
.pub-detail-hero{min-height:46vh}
.pub-section{max-width:800px;margin:0 auto;padding:48px 40px}
.pub-section h2{font-family:var(--font-display);font-size:26px;margin-bottom:14px}
.pub-section p{font-size:15px;line-height:1.75;color:var(--text-muted)}
.pub-price-box{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--charcoal);color:var(--ivory);padding:22px 26px;border-radius:var(--radius-lg);margin:24px 0;
}
.pub-price-box .num{font-family:var(--font-display);font-size:28px;color:var(--gold)}
.pub-incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}
.pub-incl-grid ul{list-style:none;padding:0;font-size:13.5px;line-height:2}
.pub-incl-grid li::before{content:'✓ ';color:var(--success);font-weight:700;margin-right:4px}

.pub-footer{padding:28px 40px;text-align:center;color:var(--text-faint);font-size:12px;border-top:1px solid var(--border-soft)}

@media (max-width:720px){
  .pub-header{padding:14px 18px}
  .pub-nav{gap:14px}
  .pub-nav a:not(.btn){display:none}
  .pub-hero{padding:40px 20px}
  .pub-main,.pub-section{padding:36px 20px}
  .pub-incl-grid{grid-template-columns:1fr}
}
