/* =============================================================
   NI PREMIUM V2 — Institutional Editorial Design System
   Desain visual tambahan: tidak mengubah data CMS, JS, atau API.
   ============================================================= */
:root{
  --green:#123f35;--green-deep:#0b3029;--green-dark:#092922;
  --green-soft:#eef2eb;--gold:#d2a860;--gold-deep:#98703b;
  --cream:#fbf9f4;--cream2:#f4f2eb;--text:#20352f;
  --muted:#68766f;--line:#e2e5dc;--shadow:0 18px 40px rgba(25,48,37,.07);
  --rounded:14px;--max:1240px;
}
html{scroll-padding-top:92px}
body{background:#fff;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}
.container{width:min(var(--max),calc(100% - 88px))}
.top-strip{height:26px;background:#0c3029;color:#c9d9ce;font-size:10px;letter-spacing:.075em}
.site-header{background:rgba(251,250,247,.96);border-color:#e2e3db;box-shadow:none;backdrop-filter:blur(18px)}
.header-inner{height:88px;gap:24px}
.logo-mark{width:51px;height:51px;padding:2px;border:1px solid #cfd8ca;border-radius:11px;background:#fff}
.logo-text small{color:#aa844e;font-size:10px;letter-spacing:.21em}
.logo-text strong{font-size:19px;font-weight:800;letter-spacing:-.045em}
.logo-text em{font-size:9px;letter-spacing:.07em}
.desktop-nav{gap:0}
.nav-link{font-size:12px;letter-spacing:.008em;font-weight:630;color:#4f6056;padding:13px 10px}
.nav-link.current:after{background:var(--gold);bottom:5px;height:2px}
.header-portal,.btn-primary{background:#123e33;box-shadow:none!important}
.header-portal{padding:12px 18px;border-radius:6px;font-size:12px}
.btn{border-radius:5px;padding:14px 22px;font-size:12px;letter-spacing:.012em}
.btn-gold{background:#d8b674;color:#15362d;box-shadow:none}
.btn-gold:hover{background:#e5c58b}
.btn:hover{transform:translateY(-1px)}
.dropdown-panel{border-radius:9px;border-color:#e3e7df;box-shadow:0 22px 44px #133d301e}
.dropdown-panel a,.dropdown-symbol{border-radius:6px}
/* Editorial hero: photo-as-architecture, not generic green overlay */
.hero{min-height:650px;background:#f2f0e9;color:#173b30;overflow:hidden}
.hero::after{z-index:-1;left:6%;top:0;bottom:auto;width:1px;height:100%;background:#dfdfd3;opacity:.7}
.hero-pattern{display:none}
.hero-picture{z-index:-1;inset:38px 35px 47px 50.6%;border-radius:3px 3px 64px 3px;background-image:linear-gradient(0deg,rgba(5,39,31,.17),transparent 45%),url('/assets/images/hero-school.webp');background-position:center;background-size:cover;box-shadow:0 18px 36px #22372b16}
.hero-picture:after{content:'';position:absolute;left:-16px;top:21px;bottom:21px;border-left:2px solid #bd965d}
.hero-grid{min-height:650px;grid-template-columns:53% 1fr;padding-top:40px;padding-bottom:80px}
.hero-copy{z-index:1;max-width:680px;padding-right:28px}
.hero .eyebrow{color:#907041;letter-spacing:.165em;margin-bottom:20px;font-size:10px}
.hero .glow-dot{width:5px;height:5px;background:#ae8b53;box-shadow:none}
.hero h1{font-family:Georgia,"Palatino Linotype",serif;font-size:clamp(47px,4.7vw,71px);letter-spacing:-.047em;line-height:1.09;margin:10px 0 27px;max-width:740px;color:#0b372d}
.hero h1 span{color:#9a7543}
.hero p{font-size:15px;color:#52675b;line-height:1.95;max-width:510px;margin-bottom:29px}
.hero-ctas{gap:11px}
.hero .btn-outline-white{border-color:#a9b9ac;background:transparent;color:#234d3d}
.hero .btn-outline-white:hover{background:#e4eadd}
.hero-identity{margin-top:47px;color:#7d8a7f;text-transform:uppercase;font-size:10px;letter-spacing:.13em}
.gold-line{background:#b08c58;width:37px;height:1px}
.hero-caption{bottom:62px;right:50px;color:#fff;background:rgba(11,40,30,.62);font-size:10px;border-radius:3px;padding:8px 12px}
.stats-section{margin-top:-28px;z-index:4}
.stats-panel{border-radius:4px;min-height:113px;padding:20px;background:#fffdf9;border:1px solid #e2e2d8;box-shadow:0 12px 30px #23473513}
.stat-item{padding:6px 23px;gap:14px;border-color:#e0e4db}
.stat-icon{width:43px;height:43px;flex-basis:43px;border-radius:7px;background:#edf2e9;color:#286249}
.stat-icon svg{width:21px;height:21px}
.stat-details strong{font-size:28px;color:#143b2e;letter-spacing:-.06em}
.stat-details small{font-size:11px;color:#728073}
/* Editorial sections with intentional visual rhythm */
.section{padding:105px 0}
.section-tint{background:#f7f6f1}
.section-header{margin-bottom:35px}
.eyebrow{color:#977440;font-size:10px;font-weight:800;letter-spacing:.16em}
.section-heading{font-family:Georgia,"Palatino Linotype",serif;font-weight:600;font-size:clamp(34px,3.3vw,46px);line-height:1.16;letter-spacing:-.035em;color:#173e32}
.section-heading span{color:#a27b45}
.section-desc{font-size:13px;line-height:1.9;max-width:600px}
.text-link{font-size:12px;border-bottom:1px solid #b7c8b7;padding-bottom:7px}
.about-section{padding-top:130px;padding-bottom:120px}
.about-grid{grid-template-columns:46% 1fr;gap:88px}
.about-photo-wrap{min-height:465px}
.about-photo{height:457px;object-fit:cover;border-radius:3px 3px 58px 3px;box-shadow:0 18px 45px #102e2319}
.picture-ornament{display:none}
.floating-photo-tag{left:20px;bottom:-13px;border-radius:3px;box-shadow:0 10px 30px #193d3024;border-left:3px solid #bd965d;padding:15px 20px}
.about-copy .lead{font-size:13px;font-weight:700;color:#94703d;letter-spacing:.035em;margin:12px 0 18px}
.about-copy>p:not(.lead){color:#66786a;font-size:14px;line-height:1.95;max-width:560px}
.vm-grid{gap:13px;margin-top:30px}
.vm-card{border-radius:4px;border:1px solid #e5e8de;background:#fff;padding:22px 20px}
.vm-icon{background:#f1f4eb;color:#23543e;border-radius:5px}
.vm-card h3{font-size:14px}
.vm-card p,.vm-card li{color:#69786e;font-size:11px;line-height:1.75}
.unit-grid{gap:15px}
.unit-card{border-radius:3px;box-shadow:none;border:1px solid #e0e4dc}
.unit-card:hover{box-shadow:0 18px 35px #173c3017;transform:translateY(-3px)}
.unit-image{height:205px}
.unit-status{border-radius:3px;background:#f9f7f1;color:#365a45;border:1px solid #dfddd1;letter-spacing:.06em}
.unit-body{padding:28px 22px 23px}
.unit-decor{background:#f1f3e9;border-radius:5px;left:20px}
.unit-body h3{font-size:19px;font-family:Georgia,serif;font-weight:600}
.unit-body p:last-of-type{font-size:12px;line-height:1.75}
.program-grid{gap:0;border-top:1px solid #dce3d9;border-bottom:1px solid #dce3d9}
.program-card{border:0;border-radius:0;border-right:1px solid #e0e5dc;background:#fff;padding:34px 27px;text-align:left;min-height:240px}
.program-card:last-child{border-right:0}
.program-icon,.program-card:nth-child(even) .program-icon{margin:0 0 24px;width:46px;height:46px;border-radius:4px;background:#e9f0e9;color:#31634a}
.program-icon svg{width:24px;height:24px}
.program-card h3{font-family:Georgia,serif;font-size:18px;font-weight:600}
.program-card p{font-size:12px;max-width:290px;line-height:1.9}
.news-grid{grid-template-columns:1.5fr 1fr 1fr;gap:15px;align-items:stretch}
.news-card{border-radius:3px;box-shadow:none}
.news-card img{height:207px}
.news-body{padding:22px}
.news-card h3{font-family:Georgia,serif;font-size:18px;font-weight:600;letter-spacing:-.02em}
.news-card:hover{transform:translateY(-2px)}
.news-card:first-child img{height:236px}
.news-card:first-child .news-body{padding:25px 28px}
.news-card:first-child h3{font-size:23px}
.coming-flag{background:#efe6d7;color:#8b6c40;border-radius:3px;font-size:10px;letter-spacing:.05em}
.gallery-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}
.gallery-item{border-radius:2px;overflow:hidden;aspect-ratio:auto;height:196px}
.gallery-item:nth-child(1),.gallery-item:nth-child(4){grid-column:span 4}
.gallery-item:nth-child(2),.gallery-item:nth-child(3){grid-column:span 4}
.gallery-item:nth-child(5),.gallery-item:nth-child(6){grid-column:span 6;height:235px}
.gallery-item img{object-fit:cover}
.value-section{padding-top:95px;padding-bottom:100px;background:#fff}
.values-grid{gap:0;border-top:1px solid #dcded5}
.value-card{border:0;border-right:1px solid #deded6;border-radius:0;padding:30px 30px 20px;background:transparent}
.value-card:first-child{padding-left:0}
.value-card:last-child{border:0}
.value-number{font-size:30px;color:#b3915a;font-family:Georgia,serif}
.cta-section{background:#0b332b;padding:76px 0}
.cta-layout h2{font-size:clamp(30px,3.1vw,44px);font-weight:500;line-height:1.22}
.cta-layout h2 em{color:#e1bc7c}
.contact-section{background:#f6f5ef}
.contact-card{border-radius:3px;box-shadow:0 18px 46px #173d3010}
.site-footer{background:#0b3029}
.footer-grid{padding:75px 0 56px;gap:42px}
.footer-grid h3{color:#e8d3a8;font-size:11px;text-transform:uppercase;letter-spacing:.11em}
.footer-bottom{border-color:#ffffff20}
/* WAFA Love mandatory linked footer */
.footer-bottom .wafa-love-link{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;text-decoration:none;color:#cdd7c9}
.footer-bottom .wafa-love-link .wafa-name{color:#eacb8d}
.footer-bottom .wafa-love-link:focus-visible{outline:2px solid #eacb8d;outline-offset:4px}
/* Portal: sober service directory instead of generic app dashboard */
.portal-hero{background:#10382f;color:#fff;min-height:330px;padding:70px 0 65px;position:relative;overflow:hidden}
.portal-hero:before{content:'PORTAL DIGITAL';position:absolute;right:5%;bottom:-38px;color:#ffffff08;font-size:clamp(65px,10vw,150px);line-height:1;font-weight:800;letter-spacing:-.06em;pointer-events:none;white-space:nowrap}
.portal-hero-layout{grid-template-columns:minmax(0,800px) 1fr;align-items:center;min-height:0}
.portal-hero h1{font-family:Georgia,serif;font-size:clamp(45px,4.6vw,66px);font-weight:500;letter-spacing:-.045em;line-height:1.12;margin:12px 0 18px}
.portal-hero h1 span{color:#e0bd84}
.portal-hero p{font-size:14px;color:#d4e2d7;max-width:610px;line-height:1.95}
.portal-hero .eyebrow{color:#e1c48d}
.portal-hero-note{border:1px solid #ffffff35;border-radius:3px;display:inline-flex;background:rgba(255,255,255,.04);padding:12px 16px;font-size:11px}
.portal-graphic{display:none!important}
.portal-main{padding-top:80px;background:#fff}
.portal-toolbar{background:#f6f6f1;border:1px solid #e7e8df;border-radius:4px;padding:18px 19px;margin:25px 0 32px}
.filter-tabs{gap:5px}
.filter-tab{border-color:transparent;border-radius:3px;background:transparent;font-size:12px;padding:11px 15px}
.filter-tab.selected{border-color:#123e33;background:#123e33}
.portal-search{min-width:258px;height:46px;border-radius:3px}
.portal-search input{font-size:13px}
.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.app-card{position:relative;min-height:295px;border:1px solid #dfe4d9;background:#fff;border-radius:4px;box-shadow:none;padding:30px 32px}
.app-card:hover{box-shadow:0 18px 32px #1b402f12;transform:translateY(-2px)}
.app-card .app-icon,.app-card[data-icon="store"] .app-icon,.app-card[data-icon="graduation"] .app-icon,.app-card[data-icon="apps"] .app-icon{width:52px;height:52px;border:1px solid #dce9dd;border-radius:6px;background:#f2f5ed;color:#1d6447;margin-bottom:19px}
.app-card .app-icon svg{width:27px;height:27px}
.app-card h3{font-family:Georgia,serif;font-size:23px;font-weight:600}
.app-card .app-subtitle{font-size:11px;color:#9c7844;letter-spacing:.035em}
.app-card .app-description{font-size:12px;line-height:1.8;max-width:500px}
.app-category,.app-status{border-radius:3px}
.app-card .btn{margin-top:19px}
.portal-help{background:#f7f6f0;border:1px solid #e3e4dc;border-radius:4px;margin-top:43px;padding:28px}
.help-icon{border-radius:4px;background:#e7efe5;font-size:25px}
.portal-how{background:#f6f5ef}
.how-grid{gap:0;border-top:1px solid #d7dfd4}
.how-card{background:transparent;border:0;border-right:1px solid #d7dfd4;border-radius:0;padding:28px 35px}
.how-card:last-child{border-right:0}
.how-card>span{color:#a7834f}
/* responsive */
@media(max-width:1170px){.container{width:min(var(--max),calc(100% - 52px))}.nav-link{padding-inline:7px}.hero-picture{inset:38px 25px 47px 52%}.hero h1{font-size:clamp(42px,4.8vw,63px)}.about-grid{gap:45px}}
@media(max-width:1000px){.hero{min-height:590px}.hero-grid{min-height:590px;grid-template-columns:60% 1fr}.hero-picture{inset:30px 25px 40px 47%;opacity:.77}.hero-copy{padding-right:20px}.hero h1{max-width:570px}.section{padding:80px 0}.stats-panel{padding:15px}.stat-item{padding:6px 10px}.about-grid{gap:35px}.about-photo-wrap{min-height:385px}.about-photo{height:390px}.program-card{padding:27px 20px}.portal-hero{min-height:0}}
@media(max-width:720px){
 .container{width:calc(100% - 36px)}.top-strip{height:26px}.header-inner{height:69px}.logo-mark{width:43px;height:43px}.logo-text em{display:none}
 .hero{min-height:0;background:#f2f0e9;padding-bottom:0}.hero-grid{display:block;min-height:0;padding:44px 0 35px}.hero-copy{max-width:none;padding:0}
 .hero h1{font-size:clamp(39px,9vw,55px);line-height:1.1;letter-spacing:-.044em;margin:17px 0 19px}
 .hero p{font-size:13px;line-height:1.8;color:#586d5f;margin-bottom:25px}
 .hero .eyebrow{font-size:9px;line-height:1.6}
 .hero-picture{position:relative;inset:auto;margin:0 18px 0;min-height:285px;aspect-ratio:1.4;background-image:linear-gradient(0deg,rgba(5,39,31,.16),transparent 50%),url('/assets/images/hero-school.webp');background-position:55% center;opacity:1;border-radius:3px 3px 35px 3px}
 .hero-picture:after{left:9px;top:12px;bottom:12px}
 .hero-caption{bottom:14px;right:28px;font-size:9px;max-width:75%}
 .hero-identity{margin-top:28px;font-size:9px}.hero .btn-outline-white{background:#fff;color:#214838;border-color:#bdc7ba}
 .stats-section{margin-top:0;padding:0;background:#fff}.stats-panel{box-shadow:none;border-radius:0;padding:14px 0;min-height:0;gap:0;border:0;border-bottom:1px solid #e4e6dd}
 .stat-item{padding:14px 10px;border-color:#e2e8dc}.stat-icon{width:33px;height:33px;flex-basis:33px}.stat-details strong{font-size:22px}.stat-details small{font-size:10px}
 .section{padding:75px 0}.section-heading{font-size:clamp(30px,7vw,38px)}.section-header{margin-bottom:24px}
 .about-grid{grid-template-columns:1fr;gap:50px}.about-photo-wrap{min-height:0;order:2}.about-copy{order:1}.about-photo{height:320px}.floating-photo-tag{left:15px;bottom:-13px}.vm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.unit-image{height:145px}.unit-body{padding:26px 14px 19px}.unit-body h3{font-size:16px}.unit-body p:last-of-type{min-height:0}
 .program-grid{grid-template-columns:repeat(2,minmax(0,1fr));border:0;gap:1px;background:#e2e5dd}.program-card{border:0;min-height:205px;padding:23px 17px}.program-card h3{font-size:16px}.program-icon{width:40px;height:40px;margin-bottom:13px}
 .news-grid{grid-template-columns:1fr;gap:13px}.news-card:first-child img,.news-card img{height:210px}.news-card:first-child h3{font-size:20px}
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-item,.gallery-item:nth-child(n){grid-column:span 1;height:155px;aspect-ratio:auto}
 .values-grid{grid-template-columns:1fr}.value-card{border-right:0;border-bottom:1px solid #e1e4da;padding:22px 0}
 .cta-layout{align-items:flex-start}.cta-section{padding:55px 0}
 .portal-hero{padding:55px 0}.portal-hero h1{font-size:43px}.portal-toolbar{padding:13px;display:flex;flex-direction:column;align-items:stretch}.app-grid{grid-template-columns:1fr}.app-card{min-height:0;padding:27px}.how-grid{grid-template-columns:1fr}.how-card{border-right:0;border-bottom:1px solid #d7dfd4;padding:23px 3px}
 .footer-grid{padding:55px 0 38px}
}
@media(max-width:470px){
 .hero h1{font-size:39px}.hero-ctas{gap:9px}.hero-ctas .btn{font-size:11px;padding:13px 12px}
 .stats-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-item:nth-child(2){border-right:0}
 .stat-item:nth-child(3){border-right:1px solid #e2e8dc}.stat-item{min-height:72px}
 .unit-image{height:125px}.unit-body h3{font-size:15px}.unit-body{padding:22px 12px 16px}
 .program-grid{grid-template-columns:1fr}.program-card{min-height:0;padding:25px}.gallery-item,.gallery-item:nth-child(n){height:150px}
 .app-card .btn{white-space:normal}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Mobile storytelling order: headline first, photograph second. */
@media(max-width:720px){.hero{display:flex;flex-direction:column}.hero-grid{order:0;width:calc(100% - 36px)}.hero-picture{order:1;width:calc(100% - 36px);align-self:center;margin:0 0 14px}.hero-caption{bottom:27px}}
/* Keep portal masthead compact; original V1 grid carried its own padding. */
.portal-hero{min-height:0;padding:58px 0 54px}
.portal-hero-layout{padding:0!important;min-height:0}
@media(max-width:720px){.portal-hero{padding:48px 0}.portal-hero h1{font-size:40px}}
