:root {
  --pr-emerald: #0F6B3B;
  --pr-emerald-dark: #0A4727;
  --pr-gold: #C9A84C;
  --pr-gold-hover: #B3923B;
  --pr-bg: #F4F7F6;
  --pr-white: #FFFFFF;
  --pr-text-main: #2D3748;
  --pr-text-muted: #718096;
  --pr-border: #E2E8F0;
}

#masthead, .site-header, header.site-header, .main-navigation, #site-navigation,
.ast-primary-header-bar, .storefront-primary-navigation, .navbar-custom, .site-header-wrapper {
  display: none !important; opacity: 0 !important; visibility: hidden !important; height: 0 !important; padding: 0 !important; margin: 0 !important;
}

.reveal { opacity: 1 !important; transform: none !important; visibility: visible !important; }
.post-thumbnail, .wp-post-image, .custom-header-image, img.wp-post-image, .panel-image { display: none !important; opacity: 0 !important; visibility: hidden !important; height: 0 !important; }
.editor-styles-wrapper, .site-content-inside, .page .panel-content, article { background-color: var(--pr-bg) !important; background-image: none !important; }
.entry-content { display: block !important; opacity: 1 !important; visibility: visible !important; padding: 0 !important; margin: 0 !important; max-width: 100% !important; width: 100% !important; }

.pr-reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1); }
.pr-reveal.pr-active { opacity: 1; transform: translateY(0); }

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter', sans-serif; background:var(--pr-bg); color:var(--pr-text-main); overflow-x:hidden; line-height: 1.6; }

#stars { position:fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:4; }
.star { position:absolute; border-radius:4px; background:rgba(201, 168, 76, 0.6); opacity:0; animation:floatUp var(--d,3s) ease-in-out infinite; animation-delay:var(--delay,0s); box-shadow: 0 0 20px rgba(201, 168, 76, 0.4); }
@keyframes floatUp { 0%,100%{opacity:0;transform:translateY(0) scale(0.8)} 50%{opacity:0.8;transform:translateY(-30px) scale(1.2)} }
.light-sweep-bg { position: fixed; inset: 0; pointer-events: none; z-index: 3; background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,0.02) 48%, rgba(255,255,255,0.05) 50%, rgba(255,255,255,0.02) 52%, transparent 60%); background-size: 200% 100%; animation: sweepAmbient 12s ease-in-out infinite; }
@keyframes sweepAmbient { 0% { background-position: 150% 0; } 100% { background-position: -50% 0; } }

nav#nav { position:fixed; top:0; left:0; right:0; z-index:1000; height:85px; padding:0 5%; display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,0.98); backdrop-filter:blur(10px); border-bottom:1px solid var(--pr-border); box-shadow: 0 4px 15px rgba(0,0,0,0.05); transition:all .4s; }
nav#nav.shrunk { height:65px; box-shadow:0 6px 20px rgba(0,0,0,0.08); }
.nav-brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.nav-brand img { width: 45px; height: 45px; border-radius: 50%; border: 1px solid var(--pr-gold); padding: 2px; } 
.nav-brand-text .t1 { font-family:'Montserrat', sans-serif; font-size:16px; font-weight:900; color:var(--pr-emerald) !important; letter-spacing:0.5px; display:block; line-height:1.2; text-transform: uppercase; }
.nav-brand-text .t2 { font-family:'Noto Naskh Arabic',serif; font-size:13px; font-weight:700; color:var(--pr-text-muted) !important; display:block; }
.nav-links { display:flex; gap:20px; list-style:none; align-items: center; }
.nav-links a { color:var(--pr-text-main) !important; font-family:'Montserrat', sans-serif; font-weight:700; text-decoration:none; font-size:13px; text-transform: uppercase; letter-spacing: 0.5px; padding:8px 12px; transition:color .3s; }
.nav-links a:hover { color:var(--pr-gold) !important; }
.nav-daftar { background:var(--pr-gold)!important; color:var(--pr-white)!important; border-radius:4px!important; padding:12px 24px!important; font-weight:800!important; transition: all .3s!important; letter-spacing: 1px!important; }

.hero { position:relative; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--pr-emerald-dark); overflow:hidden; z-index:2; padding-bottom: 50px; }
.hero-photo-bg { position:absolute; inset:0; background-image:url('https://i0.wp.com/pesantrentanbihulghofilin.com/wp-content/uploads/2019/07/a56a6889-e76c-41e9-8c52-f026bc82ca95.jpg?resize=1280%2C904&ssl=1'); background-size:cover; background-position:center; opacity:0.6; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(135deg, rgba(10, 71, 39, 0.85) 0%, rgba(5, 36, 20, 0.95) 100%); }
.hero-content { position:relative; z-index:5; text-align:center; padding:120px 24px 80px; max-width:1000px; }
.h-logo { width:110px; height:110px; margin:0 auto 24px; border-radius:50%; border:4px solid var(--pr-gold); background:var(--pr-white); box-shadow: 0 10px 30px rgba(0,0,0,0.5); padding: 4px; object-fit: contain; }
.h-bismillah { font-family:'Noto Naskh Arabic',serif; font-size:clamp(28px,4.5vw,40px); color:var(--pr-gold) !important; margin-bottom:16px; line-height:1.7; text-shadow: 0 4px 15px rgba(0,0,0,0.9); }
.h-title { font-family:'Montserrat', sans-serif; font-size:clamp(30px,4vw,56px); font-weight:900; color:#FFFFFF !important; line-height:1.2; margin-bottom:12px; text-transform: uppercase; letter-spacing: 1.5px; text-shadow: 0 5px 25px rgba(0,0,0,0.95); }
.h-ar { font-family:'Montserrat', sans-serif; font-size:clamp(16px,2vw,20px); font-weight:800; color:#FFFFFF !important; margin-bottom:24px; letter-spacing: 2.5px; text-transform: uppercase; text-shadow: 0 4px 15px rgba(0,0,0,0.9); }
.h-tagline { font-family:'Inter', sans-serif; font-size:clamp(16px,1.8vw,20px); color:#FFFFFF !important; max-width:700px; margin:0 auto 40px; line-height:1.7; font-weight:500; text-shadow: 0 3px 15px rgba(0,0,0,0.9); }
.h-btns { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.btn-g { background:var(--pr-gold); color:var(--pr-white) !important; padding:16px 42px; font-family:'Montserrat', sans-serif; font-size:14px; font-weight:800; text-decoration:none; border-radius:4px; transition:all .3s; box-shadow: 0 8px 20px rgba(201, 168, 76, 0.3); text-transform: uppercase; letter-spacing: 1px; }
.btn-o { background:rgba(0,0,0,0.4); border:2px solid var(--pr-white); color:var(--pr-white) !important; padding:14px 42px; font-family:'Montserrat', sans-serif; font-size:14px; font-weight:800; text-decoration:none; border-radius:4px; transition:all .3s; backdrop-filter: blur(5px); text-transform: uppercase; letter-spacing: 1px; }

.stats { position:relative; z-index:10; background:var(--pr-white); max-width:1100px; margin:-60px auto 40px; border-radius:8px; box-shadow:0 15px 40px rgba(15, 107, 59, 0.1); padding:40px 20px; border-top: 5px solid var(--pr-gold); }
.stats-inner { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.stat { text-align:center; padding:10px 20px; border-right:1px solid var(--pr-border); }
.stat:last-child { border-right:none; }
.stat-n { font-family:'Montserrat', sans-serif; font-size:clamp(36px,4vw,50px); font-weight:900; color:var(--pr-emerald); display:block; line-height:1; margin-bottom:8px; }
.stat-l { font-family:'Montserrat', sans-serif; font-size:13px; font-weight:800; color:var(--pr-text-muted); text-transform: uppercase; letter-spacing: 1px; }

section { position:relative; z-index:2; }
.sec { padding:100px 0; }
.sec-inner { max-width:1150px; margin:0 auto; padding:0 5%; }
.sec-head { text-align:center; margin-bottom:60px; }
.sec-ar { display:block; font-family:'Montserrat', sans-serif; font-size:15px; font-weight:800; color:var(--pr-gold); margin-bottom:12px; letter-spacing: 2px; text-transform: uppercase; }
.sec-title { font-family:'Montserrat', sans-serif; font-size:clamp(28px,3vw,40px); font-weight:900; color:var(--pr-emerald) !important; line-height:1.3; margin-bottom:20px; text-transform: uppercase; }
.sec-title.light { color:var(--pr-white) !important; }
.sec-line { width:80px; height:4px; background:var(--pr-gold); margin:0 auto 20px; border-radius: 2px; }
.sec-sub { font-size:16px; color:var(--pr-text-muted); max-width:650px; margin:0 auto; font-weight: 500; }
.sec-sub.light { color:rgba(255,255,255,0.8); }

.beranda-sec { background:var(--pr-bg); }
.beranda-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; }
.beranda-main-img { position:relative; border-radius:8px; overflow:hidden; box-shadow: 0 20px 40px rgba(15, 107, 59, 0.15); border: 1px solid var(--pr-border); }
.beranda-main-img img { width:100%; display:block; transition:transform .6s ease; }
.beranda-main-img:hover img { transform:scale(1.05); }
.beranda-img-label { position:absolute; bottom:20px; left:20px; right:20px; background:rgba(255,255,255,0.95); color:var(--pr-emerald); font-family:'Montserrat', sans-serif; font-size:13px; font-weight:800; padding:14px 16px; text-align:center; border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); letter-spacing: 1px; }
.beranda-side { display:flex; flex-direction:column; gap:24px; }
.beranda-hafidz-box { background:var(--pr-white); border:1px solid var(--pr-border); border-left: 6px solid var(--pr-gold); padding:40px 30px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.hafidz-num { font-family:'Montserrat', sans-serif; font-size:clamp(48px,6vw,72px); font-weight:900; color:var(--pr-emerald); display:block; line-height:1; margin-bottom:10px; }
.hafidz-label { font-family:'Montserrat', sans-serif; font-size:20px; font-weight:800; color:var(--pr-text-main); display:block; margin-bottom:8px; }
.hafidz-sub { font-size:12px; font-weight:700; color:var(--pr-text-muted); letter-spacing: 1.5px; text-transform: uppercase; }

.prog-sec { background:var(--pr-emerald-dark); padding-top: 100px; padding-bottom: 120px; }
.perumnas-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 40px; }
.p-card { background: var(--pr-white); border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; transition: all 0.4s ease; box-shadow: 0 10px 30px rgba(0,0,0,0.2); border: 1px solid transparent; }
.p-card:hover { transform: translateY(-12px); box-shadow: 0 25px 50px rgba(0,0,0,0.5); border-color: var(--pr-gold); }
.p-card-header { position: relative; width: 100%; height: 250px; overflow: hidden; background: #eee; }
.p-card-header img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.p-card:hover .p-card-header img { transform: scale(1.08); }
.p-card-body { padding: 35px 30px; display: flex; flex-direction: column; flex-grow: 1; }
.p-card-ar { font-family: 'Noto Naskh Arabic', serif; font-size: 15px; color: var(--pr-text-muted) !important; display: block; margin-bottom: 10px; font-weight: 700; }
.p-card-title { font-family: 'Montserrat', sans-serif; font-size: 24px; color: var(--pr-emerald) !important; font-weight: 900; margin-bottom: 15px; text-transform: uppercase; }
.p-card-desc { font-size: 15px; color: var(--pr-text-muted) !important; line-height: 1.7; margin-bottom: 25px; flex-grow: 1; font-weight: 500; }
.p-specs { display: flex; flex-direction: column; gap: 15px; padding-top: 20px; border-top: 1px solid var(--pr-border); margin-bottom: 30px; }
.p-spec-item { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--pr-text-main); font-weight: 600; line-height: 1.5; }
.p-spec-item strong { color: var(--pr-emerald); font-weight: 800; font-family: 'Montserrat', sans-serif; }
.p-spec-icon { color: var(--pr-gold); font-size: 18px; }
.p-btn { display: block; width: 100%; text-align: center; background: var(--pr-emerald); border: 2px solid var(--pr-emerald); color: var(--pr-white) !important; font-family: 'Montserrat', sans-serif; font-size: 13px; font-weight: 800; padding: 15px; border-radius: 4px; text-decoration: none; letter-spacing: 1px; text-transform: uppercase; transition: all 0.3s; }

.form-sec { background: var(--pr-bg); padding: 100px 0; }
.form-box { background: var(--pr-white); max-width: 800px; margin: 0 auto; padding: 50px 40px; border-radius: 12px; border-top: 6px solid var(--pr-emerald); box-shadow: 0 15px 40px rgba(0,0,0,0.08); }
.form-group { margin-bottom: 24px; }
.form-group label { display: block; font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 800; color: var(--pr-emerald); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; }
.form-control { width: 100%; padding: 16px 20px; font-family: 'Inter', sans-serif; font-size: 15px; border: 1.5px solid var(--pr-border); border-radius: 6px; background: #FAFAFA; transition: all 0.3s; color: var(--pr-text-main); }
.form-control:focus { outline: none; border-color: var(--pr-emerald); background: var(--pr-white); box-shadow: 0 0 0 4px rgba(15, 107, 59, 0.1); }
.btn-submit-wa { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; background: #25D366; color: #FFFFFF !important; font-family: 'Montserrat', sans-serif; font-size: 16px; font-weight: 800; padding: 18px; border-radius: 6px; border: none; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; transition: all 0.3s; box-shadow: 0 8px 25px rgba(37, 211, 102, 0.3); }
.btn-submit-wa:hover { background: #1EBE5D; transform: translateY(-3px); }

.visi-sec { background:var(--pr-bg); }
.visi-content-wrapper { max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.6s ease-in-out, opacity 0.6s ease-in-out, margin 0.6s ease; }
.visi-content-wrapper.open { max-height: 800px; opacity: 1; margin-top: 30px; }
#visi-icon.open { transform: rotate(180deg); color: var(--pr-emerald); }
.visi-latar { background:var(--pr-emerald); color:var(--pr-white); padding:60px; border-radius:8px; margin-bottom:48px; position:relative; box-shadow: 0 20px 40px rgba(15, 107, 59, 0.15); overflow: hidden; }
.visi-latar::before { content:''; position:absolute; top:0; left:0; width: 8px; height:100%; background:var(--pr-gold); }
.visi-latar h3 { font-family:'Montserrat', sans-serif; font-size:18px; font-weight:900; color:var(--pr-gold) !important; margin-bottom:20px; text-transform: uppercase; }
.visi-latar p { font-size: 17px; line-height: 1.8; opacity: 0.95; font-weight: 500; color: var(--pr-white) !important; }

.rute-sec { background:var(--pr-white); }
.rute-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:60px; align-items:start; }
.rute-info { background: var(--pr-bg); padding: 45px; border-radius: 8px; border-top: 5px solid var(--pr-emerald); box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.rute-info h3 { font-family:'Montserrat', sans-serif; font-size:20px; font-weight:900; color:var(--pr-emerald) !important; margin-bottom:30px; text-transform: uppercase; }
.rute-item { display:flex; gap:16px; margin-bottom:30px; align-items:flex-start; }
.rute-icon { width:50px; height:50px; background:rgba(201, 168, 76, 0.15); color:var(--pr-gold); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
.rute-text { font-size:15px; color:var(--pr-text-muted) !important; line-height:1.6; font-weight: 500; }
.rute-text strong { display:block; font-family:'Montserrat', sans-serif; font-size:14px; font-weight:800; color:var(--pr-text-main) !important; margin-bottom:6px; text-transform: uppercase; }
.map-box { border-radius: 8px; padding: 8px; background: var(--pr-white); box-shadow: 0 15px 35px rgba(0,0,0,0.08); overflow: hidden; border: 1px solid var(--pr-border); position: relative; }
.map-overlay-link { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 10; cursor: pointer; }
.map-box iframe { width:100%; height:450px; border:none; display:block; border-radius: 4px; pointer-events: none; }

.cta-sec { background:var(--pr-emerald); text-align:center; padding:120px 0; }
.cta-title { font-family:'Montserrat', sans-serif; font-size:clamp(28px, 4vw, 44px); font-weight:900; color:var(--pr-white) !important; margin-bottom:20px; text-transform: uppercase; }
.cta-sub { font-size:18px; font-weight:500; color:rgba(255,255,255,0.9) !important; max-width:600px; margin:0 auto 60px; }
.cta-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; max-width:1000px; margin:0 auto; }
.cta-card { border:1px solid rgba(255,255,255,0.15); padding:40px 20px; background:rgba(255,255,255,0.05); text-align:center; border-radius: 8px; text-decoration: none; color: inherit; transition:0.3s; }
.cta-card:hover { transform: translateY(-8px); background:rgba(255,255,255,0.1); border-color: var(--pr-gold); }
.cta-card-icon { font-size:36px; margin-bottom:15px; display:block; }
.cta-card-lbl { font-size:13px; font-weight:700; color:rgba(255,255,255,0.7) !important; letter-spacing:1px; margin-bottom:10px; text-transform: uppercase; }
.cta-card-val { font-family:'Montserrat', sans-serif; font-size:18px; font-weight:900; color:var(--pr-gold) !important; }

footer { background:var(--pr-emerald-dark); padding:80px 5% 40px; position:relative; z-index:2; text-align: center; }
.f-brand .f-ar { font-family:'Noto Naskh Arabic',serif; font-size:28px; color:var(--pr-gold) !important; display:block; margin-bottom:15px; }
.f-brand .f-name { font-family:'Montserrat', sans-serif; font-size:18px; font-weight:900; color:var(--pr-white) !important; letter-spacing:1.5px; display:block; margin-bottom:15px; text-transform: uppercase; }
.f-brand p { font-size:15px; font-weight:500; color:rgba(255,255,255,0.6) !important; max-width: 600px; margin: 0 auto 40px; }
.footer-btm { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 40px; }
.f-copy { font-size:13px; font-weight:500; color:rgba(255,255,255,0.4) !important; }

@media(max-width:900px) {
  nav#nav { padding:0 5%; }
  .nav-links { display:none; }
  .stats { margin: -40px 20px 40px; padding: 25px; }
  .stats-inner { grid-template-columns: 1fr 1fr; gap: 20px; }
  .stat { border-right: none; border-bottom: 1px solid var(--pr-border); padding-bottom: 20px; }
  .beranda-grid, .perumnas-grid, .rute-grid, .cta-cards { grid-template-columns:1fr; }
  .sec-inner { padding:0 5%; }
}

