/* =============================================
   PNM DYNAMIC HOMEPAGE CSS
   Shared across all child themes.
   Theme colors set via CSS custom properties
   in each theme's style.css or functions.php.
   ============================================= */

/* ===== THEME VARIABLES (override per theme) ===== */
:root {
  --pnm-primary: #1e3a5f;
  --pnm-primary-dark: #0c1929;
  --pnm-accent: #3b82f6;
  --pnm-accent-light: #93c5fd;
  --pnm-gold: #f59e0b;
  --pnm-bg: #f8fafc;
  --pnm-text: #334155;
  --pnm-text-light: #64748b;
  --pnm-white: #ffffff;
  --pnm-radius: 16px;
  --pnm-radius-sm: 10px;
  --pnm-shadow: 0 4px 24px rgba(0,0,0,.06);
  --pnm-shadow-lg: 0 12px 40px rgba(0,0,0,.1);
  --pnm-transition: all .35s cubic-bezier(.4,0,.2,1);
}

/* ===== RESET & BASE ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Poppins',system-ui,-apple-system,sans-serif;color:var(--pnm-text);background:var(--pnm-white);line-height:1.6;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}

/* ===== LAYOUT ===== */
.pnm-ctn{max-width:1200px;margin:0 auto;padding:0 24px}
.pnm-ctn-narrow{max-width:800px}

/* ===== NAVBAR ===== */
.pnm-nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(0,0,0,.06);transition:var(--pnm-transition)}
.pnm-nav.scrolled{box-shadow:0 2px 20px rgba(0,0,0,.08)}
.pnm-nav .pnm-ctn{display:flex;align-items:center;justify-content:space-between;height:64px}
.pnm-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1em;color:var(--pnm-primary-dark)}
.pnm-brand img{height:36px}
.pnm-nav-links{display:flex;align-items:center;gap:24px}
.pnm-nav-links a{font-weight:500;font-size:.9em;color:#475569;transition:color .2s}
.pnm-nav-links a:hover{color:var(--pnm-accent)}
.pnm-nav-cta{background:var(--pnm-primary-dark)!important;color:#fff!important;padding:10px 24px;border-radius:var(--pnm-radius-sm);font-weight:600!important;transition:var(--pnm-transition)}
.pnm-nav-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(30,58,95,.3)}
.pnm-nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
.pnm-nav-toggle span{display:block;width:22px;height:2px;background:#334155;border-radius:2px;transition:var(--pnm-transition)}
.pnm-nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.pnm-nav-toggle.open span:nth-child(2){opacity:0}
.pnm-nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* ===== HERO ===== */
.pnm-hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;position:relative;overflow:hidden;background:linear-gradient(135deg,var(--pnm-primary-dark),var(--pnm-primary),var(--pnm-accent))}
.pnm-hero[style*="background-image"]{background-size:cover;background-position:center}
.pnm-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.pnm-hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(12,25,41,.85),rgba(30,58,95,.7));z-index:1}
.pnm-hero-content{position:relative;z-index:2;max-width:700px;padding:120px 24px 80px}
.pnm-badge{display:inline-block;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);padding:8px 20px;border-radius:50px;font-size:.82em;font-weight:600;margin-bottom:20px;color:#fff}
.pnm-hero h1{font-size:clamp(2em,5vw,3.2em);font-weight:800;line-height:1.15;margin-bottom:16px}
.pnm-hero p{font-size:clamp(1em,2vw,1.15em);color:rgba(255,255,255,.8);margin-bottom:32px;line-height:1.7}
.pnm-btn-primary{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;padding:16px 36px;border-radius:50px;font-weight:700;font-size:1em;box-shadow:0 8px 32px rgba(34,197,94,.4);transition:var(--pnm-transition);border:none;cursor:pointer}
.pnm-btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(34,197,94,.5)}

/* ===== STATS COUNTER ===== */
.pnm-stats{background:var(--pnm-white);padding:0 24px;margin-top:-48px;position:relative;z-index:10}
.pnm-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:900px;margin:0 auto}
.pnm-stat{background:#fff;border-radius:var(--pnm-radius);padding:28px 16px;text-align:center;box-shadow:var(--pnm-shadow);border:1px solid #e2e8f0;transition:var(--pnm-transition)}
.pnm-stat:hover{transform:translateY(-4px);box-shadow:var(--pnm-shadow-lg)}
.pnm-stat-num{font-size:2.2em;font-weight:800;color:var(--pnm-primary-dark);line-height:1.1}
.pnm-stat-label{font-size:.82em;color:var(--pnm-text-light);margin-top:6px;font-weight:500}

/* ===== SECTIONS ===== */
.pnm-sec{padding:80px 24px}
.pnm-sec-alt{background:var(--pnm-bg)}
.pnm-sec-dark{background:linear-gradient(135deg,var(--pnm-primary-dark),var(--pnm-primary));color:#fff}
.pnm-sec-title{text-align:center;font-size:clamp(1.5em,3vw,2em);font-weight:700;color:var(--pnm-primary-dark);margin-bottom:10px}
.pnm-sec-dark .pnm-sec-title{color:#fff}
.pnm-sec-sub{text-align:center;color:var(--pnm-text-light);max-width:560px;margin:0 auto 48px;font-size:.95em}
.pnm-sec-dark .pnm-sec-sub{color:rgba(255,255,255,.6)}

/* ===== FEATURES GRID ===== */
.pnm-features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.pnm-feature-card{background:#fff;border-radius:var(--pnm-radius);padding:32px 24px;text-align:center;box-shadow:var(--pnm-shadow);border:1px solid #e2e8f0;transition:var(--pnm-transition);position:relative;overflow:hidden}
.pnm-feature-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--pnm-accent),var(--pnm-gold));transform:scaleX(0);transition:transform .4s ease;transform-origin:left}
.pnm-feature-card:hover{transform:translateY(-6px);box-shadow:var(--pnm-shadow-lg);border-color:var(--pnm-accent)}
.pnm-feature-card:hover::before{transform:scaleX(1)}
.pnm-feature-icon{font-size:2.8em;margin-bottom:16px}
.pnm-feature-card h3{font-size:1.05em;font-weight:600;color:var(--pnm-primary-dark);margin-bottom:8px}
.pnm-feature-card p{font-size:.9em;color:var(--pnm-text-light);line-height:1.7}

/* ===== ABOUT ===== */
.pnm-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.pnm-about-img{position:relative;border-radius:var(--pnm-radius);overflow:hidden}
.pnm-about-img img{width:100%;border-radius:var(--pnm-radius);aspect-ratio:4/3;object-fit:cover}
.pnm-about-placeholder{width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,var(--pnm-primary-dark),var(--pnm-primary));display:flex;align-items:center;justify-content:center;font-size:5em;border-radius:var(--pnm-radius)}
.pnm-about-badge{position:absolute;bottom:20px;left:20px;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:var(--pnm-radius-sm);padding:16px 24px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.15)}
.pnm-about-num{display:block;font-size:2em;font-weight:800;color:var(--pnm-primary-dark);line-height:1}
.pnm-about-badge span:last-child{font-size:.75em;color:var(--pnm-text-light);font-weight:500}
.pnm-about-text h2{font-size:1.8em;font-weight:700;color:var(--pnm-primary-dark);margin-bottom:16px}
.pnm-about-text p{color:var(--pnm-text-light);line-height:1.8;margin-bottom:24px}
.pnm-btn-outline{display:inline-block;padding:14px 32px;border:2px solid var(--pnm-primary);color:var(--pnm-primary);border-radius:var(--pnm-radius-sm);font-weight:600;transition:var(--pnm-transition)}
.pnm-btn-outline:hover{background:var(--pnm-primary);color:#fff}

/* ===== TESTIMONIALS ===== */
.pnm-testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.pnm-testi-card{background:rgba(255,255,255,.08);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:var(--pnm-radius);padding:28px;transition:var(--pnm-transition)}
.pnm-testi-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.25)}
.pnm-testi-stars{font-size:1em;margin-bottom:10px}
.pnm-testi-card blockquote{font-size:.9em;color:#e2e8f0;font-style:italic;line-height:1.7;margin-bottom:16px}
.pnm-testi-name{font-weight:600;color:#fff;font-size:.9em}
.pnm-testi-loc{color:#94a3b8;font-size:.78em}

/* ===== GALLERY ===== */
.pnm-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.pnm-gallery-item{border-radius:var(--pnm-radius-sm);overflow:hidden;cursor:pointer;position:relative;transition:var(--pnm-transition)}
.pnm-gallery-item:hover{transform:translateY(-6px);box-shadow:var(--pnm-shadow-lg)}
.pnm-gallery-item img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s ease}
.pnm-gallery-item:hover img{transform:scale(1.05)}
.pnm-gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:.82em;font-weight:500}

/* ===== FAQ ===== */
.pnm-faq-item{background:#fff;border-radius:var(--pnm-radius-sm);margin-bottom:10px;box-shadow:0 2px 8px rgba(0,0,0,.03);overflow:hidden}
.pnm-faq-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:none;border:none;cursor:pointer;font-weight:600;font-size:.93em;color:var(--pnm-primary-dark);text-align:left;font-family:inherit;transition:background .2s}
.pnm-faq-btn:hover{background:#f8fafc}
.pnm-faq-btn svg{transition:transform .3s;flex-shrink:0;color:var(--pnm-text-light)}
.pnm-faq-btn svg.rot{transform:rotate(180deg)}
.pnm-faq-ans{padding:0 24px 18px;color:var(--pnm-text-light);font-size:.9em;line-height:1.8}

/* ===== CTA ===== */
.pnm-cta{background:linear-gradient(135deg,#22c55e,#16a34a);padding:80px 24px;text-align:center;color:#fff}
.pnm-cta h2{font-size:clamp(1.5em,3vw,2em);font-weight:700;margin-bottom:12px}
.pnm-cta p{margin-bottom:28px;font-size:1.05em;opacity:.9}
.pnm-btn-wa{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#16a34a;padding:16px 40px;border-radius:50px;font-weight:700;font-size:1.05em;box-shadow:0 8px 32px rgba(0,0,0,.15);transition:var(--pnm-transition)}
.pnm-btn-wa:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(0,0,0,.2)}

/* ===== FOOTER ===== */
.pnm-footer{background:#1e293b;color:#cbd5e1;padding:60px 24px 28px}
.pnm-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:36px;margin-bottom:28px}
.pnm-footer h4{color:#fff;font-size:1em;margin-bottom:14px}
.pnm-footer p,.pnm-footer li{font-size:.88em;line-height:1.8}
.pnm-footer ul{list-style:none}
.pnm-footer a{color:#94a3b8;transition:color .2s}
.pnm-footer a:hover{color:#fff}
.pnm-footer-bottom{border-top:1px solid #334155;padding-top:18px;text-align:center;color:#646970;font-size:.82em}

/* ===== WA FLOAT ===== */
.pnm-wa-float{position:fixed;bottom:24px;right:24px;z-index:9999;width:60px;height:60px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(37,211,102,.4);transition:var(--pnm-transition);animation:pnmWaBounce 2s infinite}
.pnm-wa-float:hover{transform:translateY(-4px) scale(1.08);box-shadow:0 8px 30px rgba(37,211,102,.55);animation:none}
.pnm-wa-float svg{width:30px;height:30px}
.pnm-wa-float::before{content:'';position:absolute;width:100%;height:100%;border-radius:50%;background:rgba(37,211,102,.3);animation:pnmWaPulse 2s infinite;z-index:-1}
@keyframes pnmWaBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes pnmWaPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.8);opacity:0}}

/* ===== LIGHTBOX ===== */
.pnm-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10001;display:none;align-items:center;justify-content:center;cursor:pointer;padding:40px}
.pnm-lightbox.active{display:flex}
.pnm-lightbox img{max-width:90vw;max-height:85vh;border-radius:var(--pnm-radius-sm);object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.pnm-lightbox-close{position:absolute;top:20px;right:24px;background:none;border:none;color:#fff;font-size:2.5em;cursor:pointer;line-height:1;transition:opacity .2s}
.pnm-lightbox-close:hover{opacity:.6}

/* ===== SCROLL REVEAL ===== */
.pnm-reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.pnm-reveal.visible{opacity:1;transform:translateY(0)}
.pnm-reveal:nth-child(2){transition-delay:.1s}
.pnm-reveal:nth-child(3){transition-delay:.2s}
.pnm-reveal:nth-child(4){transition-delay:.3s}
.pnm-reveal:nth-child(5){transition-delay:.4s}
.pnm-reveal:nth-child(6){transition-delay:.5s}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){
  .pnm-nav-toggle{display:flex}
  .pnm-nav-links{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;flex-direction:column;padding:20px;box-shadow:var(--pnm-shadow-lg);gap:16px;z-index:999}
  .pnm-nav-links.open{display:flex}
  .pnm-nav-cta{width:100%;text-align:center}
  .pnm-stats-grid{grid-template-columns:repeat(2,1fr)}
  .pnm-about-grid{grid-template-columns:1fr;gap:32px}
  .pnm-footer-grid{grid-template-columns:1fr;gap:24px}
}

@media(max-width:640px){
  .pnm-hero{min-height:90vh}
  .pnm-hero h1{font-size:1.8em}
  .pnm-hero p{font-size:.95em}
  .pnm-btn-primary{padding:14px 28px;font-size:.95em}
  .pnm-sec{padding:60px 16px}
  .pnm-sec-title{font-size:1.4em}
  .pnm-stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .pnm-stat{padding:20px 12px}
  .pnm-stat-num{font-size:1.6em}
  .pnm-features-grid{grid-template-columns:1fr}
  .pnm-testi-grid{grid-template-columns:1fr}
  .pnm-gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .pnm-cta{padding:60px 16px}
  .pnm-wa-float{width:54px;height:54px;bottom:16px;right:16px}
  .pnm-wa-float svg{width:26px;height:26px}
  .pnm-about-badge{bottom:12px;left:12px;padding:12px 16px}
  .pnm-about-num{font-size:1.5em}
}

/* ===== PAKET UMROH SECTION ===== */
.pnm-paket-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 24px;
  margin-top: 40px;
}
.pnm-paket-card {
  background: var(--surface, #fff);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  transition: transform 0.3s, box-shadow 0.3s;
}
.pnm-paket-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}
.pnm-paket-img {
  height: 200px;
  overflow: hidden;
}
.pnm-paket-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pnm-paket-body {
  padding: 24px;
}
.pnm-paket-body h3 {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 12px;
  color: var(--text, #1f2937);
}
.pnm-paket-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}
.pnm-paket-meta span {
  font-size: 0.8rem;
  color: var(--muted, #6b7280);
  background: var(--meta-bg, #f3f4f6);
  padding: 4px 10px;
  border-radius: 20px;
}
.pnm-paket-price {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--accent, #059669);
  margin-bottom: 16px;
}
.pnm-paket-btn {
  display: block;
  text-align: center;
  width: 100%;
}
@media (max-width: 640px) {
  .pnm-paket-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== BLOG SECTION ===== */
.pnm-blog-header {
  padding: 100px 0 40px;
  text-align: center;
  background: linear-gradient(135deg, var(--primary, #059669), var(--secondary, #047857));
  color: #fff;
}
.pnm-blog-header h1 { font-size: 2.2rem; font-weight: 800; margin-bottom: 8px; }
.pnm-blog-header p { opacity: 0.9; font-size: 1.1rem; }
.pnm-blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
  margin-top: 40px;
}
.pnm-blog-card {
  background: var(--surface, #fff);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  transition: transform 0.3s, box-shadow 0.3s;
}
.pnm-blog-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,0.1); }
.pnm-blog-img img { width: 100%; height: 200px; object-fit: cover; display: block; }
.pnm-blog-body { padding: 20px; }
.pnm-blog-body h2 { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; }
.pnm-blog-body h2 a { color: var(--text, #1f2937); text-decoration: none; }
.pnm-blog-body h2 a:hover { color: var(--primary, #059669); }
.pnm-blog-body h4 { font-size: 0.95rem; font-weight: 600; margin-bottom: 4px; }
.pnm-blog-body h4 a { color: var(--text, #1f2937); text-decoration: none; }
.pnm-blog-body p { color: var(--muted, #6b7280); font-size: 0.9rem; line-height: 1.6; margin-bottom: 12px; }
.pnm-blog-meta { display: flex; gap: 8px; margin-bottom: 8px; }
.pnm-blog-date { font-size: 0.8rem; color: var(--muted, #9ca3af); }
.pnm-blog-cat { font-size: 0.75rem; background: var(--primary, #059669); color: #fff; padding: 2px 8px; border-radius: 12px; }
.pnm-blog-read { font-size: 0.85rem; color: var(--primary, #059669); font-weight: 600; text-decoration: none; }
.pnm-blog-read:hover { text-decoration: underline; }
.pnm-blog-pagination { margin-top: 40px; text-align: center; }
.pnm-blog-pagination .nav-links { display: flex; justify-content: center; gap: 8px; }
.pnm-blog-pagination .page-numbers { padding: 8px 16px; border-radius: 8px; background: var(--surface, #f3f4f6); color: var(--text, #1f2937); text-decoration: none; font-size: 0.9rem; }
.pnm-blog-pagination .page-numbers.current { background: var(--primary, #059669); color: #fff; }
.pnm-blog-empty { text-align: center; padding: 60px 0; color: var(--muted, #9ca3af); font-size: 1.1rem; }
/* Single Post */
.pnm-single-article { padding: 100px 0 60px; }
.pnm-breadcrumb { font-size: 0.85rem; color: var(--muted, #9ca3af); margin-bottom: 24px; }
.pnm-breadcrumb a { color: var(--primary, #059669); text-decoration: none; }
.pnm-single-header h1 { font-size: 2rem; font-weight: 800; margin: 16px 0 24px; line-height: 1.3; }
.pnm-single-featured img { width: 100%; border-radius: 16px; margin-bottom: 24px; }
.pnm-single-content { font-size: 1.05rem; line-height: 1.8; color: var(--text, #374151); }
.pnm-single-content h2 { font-size: 1.4rem; font-weight: 700; margin: 32px 0 16px; }
.pnm-single-content h3 { font-size: 1.2rem; font-weight: 600; margin: 24px 0 12px; }
.pnm-single-content p { margin-bottom: 16px; }
.pnm-single-content img { max-width: 100%; border-radius: 12px; margin: 16px 0; }
.pnm-single-content ul, .pnm-single-content ol { padding-left: 24px; margin-bottom: 16px; }
.pnm-single-content li { margin-bottom: 8px; }
.pnm-single-cta { background: linear-gradient(135deg, var(--primary, #059669), var(--secondary, #047857)); color: #fff; padding: 40px; border-radius: 16px; text-align: center; margin: 40px 0; }
.pnm-single-cta h3 { font-size: 1.3rem; margin-bottom: 8px; }
.pnm-single-cta p { opacity: 0.9; margin-bottom: 16px; }
.pnm-single-cta .pnm-btn-primary { background: #fff; color: var(--primary, #059669); display: inline-block; padding: 12px 32px; border-radius: 8px; font-weight: 700; text-decoration: none; }
.pnm-single-related { margin-top: 40px; }
.pnm-single-related h3 { font-size: 1.3rem; font-weight: 700; margin-bottom: 20px; }
.pnm-blog-card-sm .pnm-blog-img img { height: 120px; }
@media (max-width: 640px) {
  .pnm-blog-grid { grid-template-columns: 1fr; }
  .pnm-single-header h1 { font-size: 1.5rem; }
  .pnm-single-cta { padding: 24px; }
}
