:root{--primary:#075f3b;--primary-dark:#043f28;--gold:#c99a2e;--light:#f6faf7;--text:#24332b}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:#fff}
.topbar{background:var(--primary-dark);color:#fff;font-size:.9rem}
.navbar-brand img{height:54px}
.navbar{box-shadow:0 7px 24px rgba(0,0,0,.06)}
.nav-link{font-weight:600;color:#24332b!important}
.nav-link:hover,.nav-link.active{color:var(--primary)!important}

/*
 * Slider responsif v3
 * - Satu elemen gambar saja.
 * - Rasio gambar 1920 x 800 dipertahankan pada desktop dan mobile.
 * - Tidak memakai overlay gelap.
 * - Teks tetap berada di atas gambar dan mengecil secara proporsional di HP.
 */
.hero-section,.hero-section .carousel,.hero-section .carousel-inner{position:relative}
.hero-slide{position:relative;width:100%;aspect-ratio:12/5;overflow:hidden;background:#eef3ef}
.hero-media{position:absolute;inset:0;overflow:hidden;background:#eef3ef}
.hero-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-shade{position:absolute;inset:0;background:transparent;pointer-events:none}
.hero-copy{position:absolute;z-index:2;inset:0;display:flex;align-items:center;background:transparent;pointer-events:none}
.hero-copy .container{pointer-events:none}
.hero-content{color:#fff;max-width:min(760px,58%);pointer-events:auto;text-shadow:0 2px 7px rgba(0,0,0,.72),0 1px 2px rgba(0,0,0,.9)}
.hero-content .badge{text-shadow:none}
.hero-content h1{font-size:clamp(2.1rem,4.4vw,4.35rem);font-weight:800;line-height:1.06;letter-spacing:-.02em}
.hero-content .lead{font-size:clamp(1rem,1.45vw,1.35rem);line-height:1.55;max-width:650px}
.hero-section .carousel-control-prev,.hero-section .carousel-control-next{z-index:4;width:7%}

.section{padding:88px 0}
.section-soft{background:var(--light)}
.section-title small{color:var(--gold);font-weight:800;letter-spacing:.12em}
.section-title h2{font-weight:800;color:var(--primary-dark)}
.service-card,.news-card,.person-card,.gallery-card{border:0;border-radius:20px;box-shadow:0 12px 38px rgba(3,63,40,.08);height:100%;overflow:hidden;transition:.25s}
.service-card:hover,.news-card:hover,.person-card:hover,.gallery-card:hover{transform:translateY(-5px);box-shadow:0 18px 48px rgba(3,63,40,.14)}
.service-icon{width:68px;height:68px;display:grid;place-items:center;border-radius:18px;background:#e5f2ea;color:var(--primary);font-size:2rem}
.btn-primary{background:var(--primary);border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#fff}
.img-cover{width:100%;height:240px;object-fit:cover}
.chair-photo{border-radius:28px;box-shadow:24px 24px 0 #e6f2ea;max-height:520px;object-fit:cover;width:100%}
.page-hero{padding:100px 0 70px;background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff}
.breadcrumb a{color:#e3f4e9}
.content-body{font-size:1.05rem;line-height:1.85}
.content-body img{max-width:100%;height:auto;border-radius:12px}
.org-card{border-left:5px solid var(--gold);background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.07)}
.video-ratio{border-radius:18px;overflow:hidden}
.footer{background:#033621;color:#dcebe3}
.footer a{color:#dcebe3;text-decoration:none}
.footer a:hover{color:#fff}
.social-icon{width:42px;height:42px;border-radius:50%;display:inline-grid;place-items:center;background:rgba(255,255,255,.12)}
.contact-card{border-radius:20px;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.08)}

@media(max-width:991.98px){
  .hero-content{max-width:68%}
  .hero-content h1{font-size:clamp(1.75rem,5vw,3rem)}
}

@media(max-width:767.98px){
  .hero-slide{aspect-ratio:12/5;min-height:0;background:#eef3ef}
  .hero-media{position:absolute;inset:0}
  .hero-image{width:100%;height:100%;object-fit:contain;object-position:center;background:#eef3ef}
  .hero-shade{display:block;background:transparent}
  .hero-copy{position:absolute;inset:0;display:flex;align-items:flex-end;padding:0 0 9px;background:transparent}
  .hero-copy .container{padding-left:16px;padding-right:16px}
  .hero-content{max-width:82%;padding:0;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.95),0 1px 2px rgba(0,0,0,1)}
  .hero-content .badge{font-size:clamp(.48rem,1.8vw,.65rem);line-height:1.1;margin-bottom:.32rem!important;padding:.28rem .5rem!important;border-radius:.35rem;white-space:normal;max-width:100%}
  .hero-content h1{font-size:clamp(1rem,4.8vw,1.55rem);line-height:1.05;margin:0 0 .25rem;letter-spacing:-.015em}
  .hero-content .lead{font-size:clamp(.62rem,2.55vw,.86rem);line-height:1.25;margin:.18rem 0 .42rem!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}
  .hero-content .btn-lg{font-size:clamp(.58rem,2.2vw,.78rem);line-height:1;padding:.4rem .62rem!important;border-radius:.38rem}
  .hero-section .carousel-control-prev,.hero-section .carousel-control-next{top:0;bottom:0;height:auto;width:10%;align-items:center}
  .hero-section .carousel-control-prev-icon,.hero-section .carousel-control-next-icon{width:1.65rem;height:1.65rem;background-size:55%;border-radius:50%;background-color:rgba(0,0,0,.18)}
  .section{padding:62px 0}
  .chair-photo{box-shadow:12px 12px 0 #e6f2ea}
  .topbar .hide-mobile{display:none}
}

@media(max-width:420px){
  .hero-copy{padding-bottom:7px}
  .hero-copy .container{padding-left:12px;padding-right:12px}
  .hero-content{max-width:86%}
  .hero-content .badge{font-size:.47rem;padding:.24rem .42rem!important;margin-bottom:.22rem!important}
  .hero-content h1{font-size:clamp(.92rem,4.55vw,1.2rem);margin-bottom:.18rem}
  .hero-content .lead{font-size:clamp(.56rem,2.35vw,.72rem);line-height:1.18;margin:.12rem 0 .28rem!important;-webkit-line-clamp:1}
  .hero-content .btn-lg{font-size:.58rem;padding:.32rem .5rem!important}
}

/* =========================================================
 * Slider + layanan mobile v4
 * ======================================================= */

/* Desktop: gambar tetap terang dan teks berada di atas gambar tanpa overlay gelap. */
.hero-shade{background:transparent!important}

/* Layanan berbentuk grid di desktop. */
.services-track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.5rem;
}
.service-slide{min-width:0}
.service-mobile-controls{display:none}

@media(max-width:991.98px) and (min-width:768px){
  .services-track{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:767.98px){
  /*
   * Teks slider dipindahkan lebih ke atas seperti susunan desktop.
   * Lebarnya dibatasi agar judul panjang turun menjadi dua baris
   * dan tidak menabrak objek utama pada sisi kanan desain.
   */
  .hero-copy{
    align-items:flex-start;
    padding:clamp(2.75rem,12vw,5.25rem) 0 0;
  }
  .hero-copy .container{
    padding-left:14px;
    padding-right:14px;
  }
  .hero-content{
    width:58%;
    max-width:58%;
    padding:0;
    color:#fff;
    text-shadow:0 2px 5px rgba(0,0,0,.9),0 1px 1px rgba(0,0,0,.95);
  }
  .hero-content .badge{
    display:inline-block;
    max-width:100%;
    margin-bottom:.35rem!important;
    padding:.3rem .48rem!important;
    border-radius:.36rem;
    font-size:clamp(.45rem,1.85vw,.62rem);
    line-height:1.1;
    white-space:normal;
    text-align:left;
  }
  .hero-content h1{
    width:100%;
    max-width:100%;
    margin:0 0 .3rem;
    font-size:clamp(1.05rem,5.2vw,1.45rem);
    line-height:1.05;
    letter-spacing:-.018em;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .hero-content .lead{
    width:100%;
    max-width:100%;
    margin:.12rem 0 .4rem!important;
    font-size:clamp(.58rem,2.45vw,.78rem);
    line-height:1.22;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .hero-content .btn-lg{
    padding:.36rem .55rem!important;
    font-size:clamp(.55rem,2.15vw,.72rem);
  }

  /* Carousel layanan: dapat digeser dengan jari dan memakai tombol kiri/kanan. */
  .service-carousel-wrap{position:relative}
  .service-mobile-controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.65rem;
    margin:0 0 1rem;
    color:#6c757d;
    font-size:.78rem;
    text-align:center;
  }
  .service-scroll-btn{
    flex:0 0 36px;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:1px solid rgba(7,95,59,.18);
    border-radius:50%;
    background:#fff;
    color:var(--primary);
    box-shadow:0 7px 20px rgba(3,63,40,.09);
  }
  .service-scroll-btn:active{transform:scale(.96)}
  .services-track{
    display:flex;
    gap:1rem;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding:.25rem 7% 1.1rem 0;
  }
  .services-track::-webkit-scrollbar{display:none}
  .service-slide{
    flex:0 0 86%;
    min-width:86%;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .service-slide .service-card{min-height:100%}
}

@media(max-width:420px){
  .hero-copy{padding-top:clamp(2.35rem,11vw,3.3rem)}
  .hero-content{width:60%;max-width:60%}
  .hero-content h1{font-size:clamp(.98rem,5vw,1.18rem)}
  .hero-content .lead{font-size:clamp(.54rem,2.35vw,.68rem)}
  .service-slide{flex-basis:88%;min-width:88%}
}

/* =========================================================
 * Mobile App Navigation v1
 * - Topbar telepon/email disembunyikan pada mobile/tablet.
 * - Menu desktop diganti bottom navigation bergaya aplikasi.
 * ======================================================= */
.mobile-app-nav,.mobile-nav-sheet{display:none}

@media(max-width:991.98px){
  html{scroll-padding-bottom:108px}
  body.has-mobile-app-nav{
    overflow-x:hidden;
    padding-bottom:calc(96px + env(safe-area-inset-bottom));
    background:#fff;
  }

  /* Kontak atas hanya tampil di desktop. */
  .site-topbar{display:none!important}

  /* Header mobile dibuat lebih ringkas; navigasi utama berada di bawah. */
  .site-navbar{
    min-height:78px;
    padding:.65rem 0;
    box-shadow:0 8px 28px rgba(4,63,40,.08);
  }
  .site-navbar .container{padding-left:18px;padding-right:18px}
  .site-navbar .navbar-brand{gap:.75rem!important;max-width:calc(100% - 8px);margin-right:0}
  .site-navbar .navbar-brand img{width:52px;height:52px;object-fit:contain;flex:0 0 52px}
  .site-navbar .brand-copy{min-width:0}
  .site-navbar .brand-title{font-size:clamp(1rem,4.5vw,1.28rem);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .site-navbar .brand-subtitle{display:block;font-size:clamp(.76rem,3.6vw,1rem);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .site-navbar .navbar-toggler,
  .site-navbar .navbar-collapse{display:none!important}

  .footer{padding-bottom:28px}

  .mobile-app-nav{
    position:fixed;
    z-index:1038;
    left:12px;
    right:12px;
    bottom:calc(10px + env(safe-area-inset-bottom));
    height:74px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;
    padding:7px 6px;
    border:1px solid rgba(7,95,59,.1);
    border-radius:24px;
    background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(18px) saturate(150%);
    backdrop-filter:blur(18px) saturate(150%);
    box-shadow:0 16px 48px rgba(3,54,33,.2),0 2px 10px rgba(3,54,33,.08);
  }
  .mobile-app-nav__item{
    position:relative;
    appearance:none;
    border:0;
    outline:0;
    background:transparent;
    color:#78827c;
    text-decoration:none;
    min-width:0;
    height:60px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    padding:2px 1px;
    border-radius:18px;
    font-family:inherit;
    font-size:.64rem;
    font-weight:700;
    line-height:1;
    transition:transform .18s ease,color .18s ease,background .18s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-app-nav__item:active{transform:scale(.94)}
  .mobile-app-nav__icon{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:13px;
    font-size:1.22rem;
    line-height:1;
    transition:background .18s ease,color .18s ease,transform .18s ease;
  }
  .mobile-app-nav__item.is-active{color:var(--primary)}
  .mobile-app-nav__item.is-active .mobile-app-nav__icon{
    color:#fff;
    background:linear-gradient(145deg,var(--primary),var(--primary-dark));
    box-shadow:0 7px 16px rgba(7,95,59,.3);
    transform:translateY(-2px);
  }
  .mobile-app-nav__item.is-active::after{
    content:"";
    position:absolute;
    bottom:1px;
    width:4px;
    height:4px;
    border-radius:50%;
    background:var(--gold);
  }

  .mobile-nav-sheet{
    display:block;
    height:auto!important;
    max-height:min(72vh,590px);
    border:0;
    border-radius:28px 28px 0 0;
    background:#f7faf8;
    box-shadow:0 -18px 55px rgba(3,54,33,.2);
    padding-bottom:env(safe-area-inset-bottom);
  }
  .mobile-nav-sheet::before{
    content:"";
    position:absolute;
    top:9px;
    left:50%;
    width:42px;
    height:5px;
    transform:translateX(-50%);
    border-radius:999px;
    background:#d7dfda;
  }
  .mobile-nav-sheet .offcanvas-header{padding:28px 22px 12px}
  .mobile-nav-sheet .offcanvas-title{font-weight:800;color:var(--primary-dark);margin-top:2px}
  .mobile-nav-sheet .sheet-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:var(--gold)}
  .mobile-nav-sheet .btn-close{border-radius:50%;background-color:#fff;box-shadow:0 5px 16px rgba(0,0,0,.09);opacity:.8}
  .mobile-nav-sheet .offcanvas-body{padding:8px 18px 26px;overflow-y:auto}
  .mobile-sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .mobile-sheet-grid a{
    min-height:92px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:9px;
    padding:16px;
    border:1px solid rgba(7,95,59,.08);
    border-radius:20px;
    background:#fff;
    color:var(--text);
    text-decoration:none;
    font-size:.82rem;
    font-weight:750;
    box-shadow:0 9px 25px rgba(3,63,40,.07);
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-sheet-grid a:active{transform:scale(.97)}
  .mobile-sheet-grid a i{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:#e7f3ec;
    color:var(--primary);
    font-size:1.2rem;
  }
  .offcanvas-backdrop.show{opacity:.32;backdrop-filter:blur(2px)}
}

@media(max-width:380px){
  .mobile-app-nav{left:8px;right:8px;border-radius:21px}
  .mobile-app-nav__item{font-size:.59rem}
  .mobile-app-nav__icon{width:32px;height:32px;font-size:1.13rem}
  .site-navbar .navbar-brand img{width:47px;height:47px;flex-basis:47px}
  .mobile-sheet-grid{gap:9px}
  .mobile-sheet-grid a{padding:14px 12px;font-size:.76rem}
}

/* =========================================================
 * Modul Asset, Majelis & Lembaga
 * ======================================================= */
.asset-card{border:0;border-radius:22px;overflow:hidden;box-shadow:0 14px 38px rgba(3,63,40,.09);transition:transform .22s ease,box-shadow .22s ease}
.asset-card:hover{transform:translateY(-5px);box-shadow:0 20px 50px rgba(3,63,40,.15)}
.asset-card__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#eaf2ed}
.asset-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.asset-card:hover .asset-card__media img{transform:scale(1.035)}
.asset-card__badge{position:absolute;left:18px;bottom:16px;padding:.45rem .75rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--primary);font-size:.75rem;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.asset-card__link{color:var(--primary);font-weight:800;text-decoration:none}
.asset-card__link i{transition:transform .2s ease}.asset-card__link:hover i{transform:translateX(4px)}
.asset-detail-card{overflow:hidden;border:1px solid rgba(7,95,59,.08);border-radius:28px;background:#fff;box-shadow:0 18px 55px rgba(3,63,40,.09)}
.asset-detail-image{aspect-ratio:16/7;overflow:hidden;background:#edf4ef}
.asset-detail-image img{width:100%;height:100%;object-fit:cover}
.asset-detail-body{padding:clamp(1.35rem,4vw,3.5rem)}

.council-card{height:100%;display:flex;align-items:flex-start;gap:18px;padding:24px;border:1px solid rgba(7,95,59,.08);border-radius:22px;background:#fff;color:var(--text);box-shadow:0 14px 38px rgba(3,63,40,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.council-card:hover{transform:translateY(-5px);border-color:rgba(7,95,59,.2);box-shadow:0 20px 48px rgba(3,63,40,.14)}
.council-card__icon{width:72px;height:72px;flex:0 0 72px;display:grid;place-items:center;border-radius:20px;background:#e6f2ea;color:var(--primary);font-size:2rem;overflow:hidden}
.council-card__icon img{width:100%;height:100%;object-fit:contain;padding:8px}
.council-card__body{min-width:0}.council-card__body>span{display:block;margin-bottom:4px;color:var(--gold);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.council-card__body h3{margin:0 0 10px;color:var(--primary-dark);font-size:1.15rem;font-weight:800;line-height:1.3}.council-card__body p{margin:0 0 14px;color:#68746e;font-size:.9rem;line-height:1.55}.council-card__body strong{color:var(--primary);font-size:.84rem}
.council-detail-logo{position:sticky;top:118px;display:grid;place-items:center;min-height:320px;padding:30px;border:1px solid rgba(7,95,59,.09);border-radius:26px;background:linear-gradient(145deg,#f8fbf9,#e8f3ed);box-shadow:0 16px 45px rgba(3,63,40,.08)}
.council-detail-logo img{max-width:100%;max-height:260px;object-fit:contain}
.council-detail-copy{padding:clamp(.5rem,2vw,1.5rem) 0}
.council-structure-heading{margin:90px 0 38px}.council-structure{--structure-green:var(--primary);--structure-gold:var(--gold)}
.council-leaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.council-leader-column{min-width:0}.council-person{position:relative;display:flex;align-items:center;gap:16px;width:100%;min-width:0;border:1px solid rgba(7,95,59,.08);border-left:5px solid var(--structure-gold);border-radius:18px;background:#fff;box-shadow:0 14px 34px rgba(23,58,43,.09)}
.council-person--leader{min-height:150px;padding:22px}.council-person--manager{min-height:118px;padding:17px;border-left-color:var(--structure-green);border-radius:15px;box-shadow:0 9px 24px rgba(23,58,43,.07)}.council-person--member{min-height:104px;padding:15px 15px 15px 52px;border-left-width:4px;box-shadow:0 8px 22px rgba(23,58,43,.06)}
.council-person__photo{width:82px;height:100px;flex:0 0 82px;object-fit:contain;object-position:center bottom}.council-person--manager .council-person__photo,.council-person--member .council-person__photo{width:64px;height:78px;flex-basis:64px}.council-person__placeholder{width:64px;height:64px;flex:0 0 64px;display:grid;place-items:center;border-radius:18px;background:#e7f3ec;color:var(--primary);font-size:1.8rem}.council-person__copy{min-width:0}.council-person__position{display:block;margin-bottom:4px;color:var(--primary);font-size:.82rem;font-weight:800}.council-person__copy h3{margin:0;color:#17261f;font-size:1.05rem;font-weight:800;line-height:1.28;overflow-wrap:anywhere}.council-person--leader .council-person__copy h3{font-size:clamp(1.05rem,1.35vw,1.3rem)}.council-person__copy small{display:block;margin-top:4px;color:#69746f}.council-person__number{position:absolute;left:13px;top:50%;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(201,154,46,.16);color:#8a6511;font-size:.78rem;font-weight:800;transform:translateY(-50%)}
.council-leader-team{position:relative;display:grid;gap:13px;margin-top:38px}.council-leader-team:before{content:"";position:absolute;left:50%;top:-26px;width:2px;height:26px;background:rgba(7,95,59,.25);transform:translateX(-50%)}.council-branch{position:relative}.council-branch__children{display:grid;gap:11px;margin:12px 0 0 22px;padding-left:14px;border-left:2px solid rgba(7,95,59,.14)}
.council-extra,.council-members{margin-top:54px}.council-extra>h3,.council-members>h3{margin:0 0 22px;text-align:center;color:var(--primary-dark);font-weight:800}.council-extra-grid,.council-member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.council-empty{padding:54px 20px;border:1px dashed rgba(7,95,59,.24);border-radius:22px;background:#f7faf8;text-align:center}.council-empty i{font-size:2.7rem;color:var(--primary)}.council-empty h3{margin:13px 0 7px;font-weight:800}.council-empty p{margin:0;color:#6d7872}

@media(min-width:992px) and (max-width:1399.98px){
  .site-navbar .navbar-brand{gap:.7rem!important}.site-navbar .navbar-brand img{height:46px}.site-navbar .brand-title{font-size:1rem}.site-navbar .brand-subtitle{font-size:.72rem}.site-navbar .navbar-nav{gap:0!important}.site-navbar .nav-link{padding-left:.38rem!important;padding-right:.38rem!important;font-size:.82rem}
}
@media(max-width:1199.98px){.council-leaders,.council-extra-grid,.council-member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767.98px){
  .asset-detail-image{aspect-ratio:16/10}.council-card{padding:18px;gap:14px}.council-card__icon{width:58px;height:58px;flex-basis:58px;border-radius:16px;font-size:1.55rem}.council-detail-logo{position:static;min-height:220px;padding:22px}.council-structure-heading{margin:62px 0 28px}.council-leaders,.council-extra-grid,.council-member-grid{grid-template-columns:1fr;gap:16px}.council-leader-column{margin-bottom:10px}.council-person--leader,.council-person--manager,.council-person--member{min-height:104px;padding:15px;border-radius:14px}.council-person--member{padding-left:50px}.council-person__photo{width:64px;height:78px;flex-basis:64px}.council-leader-team{margin-top:30px}.council-extra,.council-members{margin-top:42px}
}

/* =========================================================
 * Sambutan Ketua - Luxury Premium layout
 * ======================================================= */
.luxury-welcome-section{
  background:linear-gradient(180deg,#f4f6f4 0%,#eef3f0 100%);
}
.luxury-welcome-card{
  position:relative;
  overflow:hidden;
  padding:clamp(1.35rem,2vw,2rem);
  border-radius:34px;
  background:linear-gradient(135deg,rgba(255,255,255,.96) 0%,rgba(248,250,248,.98) 100%);
  border:1px solid rgba(7,95,59,.08);
  box-shadow:0 20px 60px rgba(3,54,33,.10), 0 6px 18px rgba(3,54,33,.05);
}
.luxury-welcome-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 15% 18%, rgba(201,154,46,.10), transparent 22%),
    radial-gradient(circle at 86% 10%, rgba(7,95,59,.08), transparent 24%),
    linear-gradient(transparent, transparent);
  pointer-events:none;
}
.luxury-orb{
  position:absolute;
  border-radius:50%;
  filter:blur(3px);
  opacity:.45;
  pointer-events:none;
}
.luxury-orb-one{
  width:170px;height:170px;
  right:-48px;top:-42px;
  background:radial-gradient(circle,#ead29a 0%, rgba(234,210,154,.14) 54%, rgba(234,210,154,0) 72%);
}
.luxury-orb-two{
  width:150px;height:150px;
  left:-34px;bottom:-44px;
  background:radial-gradient(circle,#cae6d8 0%, rgba(202,230,216,.18) 56%, rgba(202,230,216,0) 74%);
}
.luxury-photo-panel{
  position:relative;
  z-index:1;
  min-height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
.luxury-photo-frame{
  position:relative;
  width:100%;
  min-height:520px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:1.25rem 1.25rem 0;
  border-radius:30px;
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.36), transparent 18%),
    radial-gradient(circle at 70% 80%, rgba(201,154,46,.12), transparent 22%),
    linear-gradient(180deg,#eef5f0 0%,#dfeae2 100%);
  box-shadow:inset 0 0 0 1px rgba(7,95,59,.05);
}
.luxury-photo-frame::before{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:24px;
  background-image:
    linear-gradient(45deg, rgba(255,255,255,.06) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.06) 50%, rgba(255,255,255,.06) 75%, transparent 75%, transparent),
    radial-gradient(circle at center, rgba(255,255,255,.08), transparent 68%);
  background-size:18px 18px, 100% 100%;
  pointer-events:none;
}
.luxury-photo-frame::after{
  content:"";
  position:absolute;
  left:22px;right:22px;bottom:0;
  height:22px;
  border-radius:18px 18px 0 0;
  background:linear-gradient(90deg, rgba(201,154,46,.35), rgba(7,95,59,.12), rgba(201,154,46,.35));
  opacity:.55;
}
.luxury-welcome-photo{
  position:relative;
  z-index:1;
  width:100%;
  max-width:430px;
  height:auto;
  display:block;
  object-fit:contain;
  object-position:bottom center;
  filter:drop-shadow(0 18px 30px rgba(3,54,33,.10));
}
.luxury-welcome-copy{
  position:relative;
  z-index:1;
  max-width:680px;
  padding:clamp(.25rem,1vw,.5rem) clamp(.15rem,1vw,.4rem);
}
.luxury-kicker{
  display:block;
  margin-bottom:.7rem;
  color:#161816;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.16em;
  line-height:1.35;
  text-transform:uppercase;
}
.luxury-name{
  margin:0;
  color:#17479f;
  font-size:clamp(2.25rem,3.6vw,3.45rem);
  line-height:1.02;
  letter-spacing:-.03em;
  font-weight:800;
  max-width:12ch;
}
.luxury-position{
  margin-top:.45rem;
  color:#5d6863;
  font-size:1.08rem;
  font-weight:500;
}
.luxury-divider{
  display:block;
  width:110px;
  height:4px;
  border-radius:999px;
  margin:1.35rem 0 1.5rem;
  background:linear-gradient(90deg,var(--gold),#e8c772 72%, rgba(232,199,114,.35));
  box-shadow:0 6px 18px rgba(201,154,46,.22);
}
.luxury-greeting{
  margin:0 0 1rem;
  color:#27342d;
  font-size:1rem;
  font-weight:600;
}
.luxury-body{
  color:#313a36;
  font-size:1.03rem;
  line-height:1.86;
}
.luxury-body p{margin-bottom:1rem}
.luxury-body p:last-child{margin-bottom:0}
.luxury-signature-wrap{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  margin-top:1.8rem;
}
.luxury-signature-line{
  width:3px;
  min-height:62px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--gold),var(--primary));
  box-shadow:0 8px 18px rgba(7,95,59,.18);
}
.luxury-signature-block{
  padding:.2rem 0;
}
.luxury-signature-name{
  font-size:1.1rem;
  font-weight:800;
  color:var(--primary);
}
.luxury-signature-role{
  margin-top:.18rem;
  color:#6c757d;
  font-size:.98rem;
}

@media(max-width:991.98px){
  .luxury-welcome-card{padding:1.15rem}
  .luxury-photo-frame{min-height:430px}
  .luxury-welcome-photo{max-width:340px}
  .luxury-welcome-copy{max-width:none;padding-top:.35rem}
  .luxury-name{max-width:none}
}

@media(max-width:767.98px){
  .luxury-welcome-section{padding-top:54px;padding-bottom:54px}
  .luxury-welcome-card{
    padding:1rem;
    border-radius:28px;
  }
  .luxury-photo-panel{margin-bottom:.55rem}
  .luxury-photo-frame{
    min-height:320px;
    padding:.8rem .8rem 0;
    border-radius:24px;
  }
  .luxury-photo-frame::before{inset:12px;border-radius:18px}
  .luxury-photo-frame::after{left:14px;right:14px;height:16px}
  .luxury-welcome-photo{max-width:255px}
  .luxury-kicker{font-size:.72rem;letter-spacing:.12em;margin-bottom:.42rem}
  .luxury-name{font-size:clamp(1.72rem,7vw,2.24rem);line-height:1.05}
  .luxury-position{font-size:.94rem}
  .luxury-divider{width:78px;height:3px;margin:1rem 0 1rem}
  .luxury-greeting{font-size:.93rem;line-height:1.62}
  .luxury-body{font-size:.95rem;line-height:1.75}
  .luxury-signature-wrap{gap:.8rem;margin-top:1.35rem}
  .luxury-signature-line{min-height:52px}
  .luxury-signature-name{font-size:1rem}
  .luxury-signature-role{font-size:.9rem}
}

/* =========================================================
 * Carousel Organisasi Bagian
 * ======================================================= */
.organization-parts-section{
  position:relative;
  overflow:hidden;
  background:#fff;
}
.organization-parts-section::before{
  content:"";
  position:absolute;
  width:320px;
  height:320px;
  left:-170px;
  top:35px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(7,95,59,.07),rgba(7,95,59,0) 70%);
  pointer-events:none;
}
.organization-parts-heading{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  margin-bottom:2rem;
}
.organization-parts-heading .section-title small{
  letter-spacing:.14em;
}
.organization-parts-heading .section-title h2{
  font-size:clamp(2rem,3vw,3rem);
  font-weight:800;
  letter-spacing:-.025em;
}
.organization-parts-controls{
  position:absolute;
  right:0;
  bottom:.2rem;
  display:flex;
  gap:.65rem;
}
.organization-part-arrow{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(7,95,59,.14);
  border-radius:50%;
  background:#fff;
  color:var(--primary);
  box-shadow:0 9px 24px rgba(3,54,33,.09);
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.organization-part-arrow:hover{
  transform:translateY(-2px);
  color:#fff;
  background:var(--primary);
}
.organization-parts-shell{
  position:relative;
  overflow:hidden;
  padding:.3rem .2rem 1.3rem;
}
.organization-parts-track{
  display:flex;
  gap:1.5rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.organization-parts-track::-webkit-scrollbar{display:none}
.organization-part-slide{
  flex:0 0 calc((100% - 3rem) / 3);
  min-width:calc((100% - 3rem) / 3);
  scroll-snap-align:start;
  scroll-snap-stop:always;
}
.organization-part-card{
  min-height:245px;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.15rem;
  padding:1.65rem;
  border:1px solid rgba(20,43,31,.10);
  border-radius:24px;
  background:linear-gradient(145deg,#fff 0%,#fbfdfb 100%);
  box-shadow:0 12px 34px rgba(3,54,33,.07);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.organization-part-card:hover{
  transform:translateY(-5px);
  border-color:rgba(201,154,46,.38);
  box-shadow:0 20px 42px rgba(3,54,33,.12);
}
.organization-part-logo-wrap{
  width:138px;
  height:138px;
  display:grid;
  place-items:center;
}
.organization-part-logo{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.organization-part-card h3{
  margin:0;
  color:var(--text);
  font-size:1.08rem;
  line-height:1.35;
  font-weight:800;
  text-align:center;
}

@media(max-width:991.98px){
  .organization-part-slide{
    flex-basis:calc((100% - 1.25rem) / 2);
    min-width:calc((100% - 1.25rem) / 2);
  }
  .organization-parts-track{gap:1.25rem}
}

@media(max-width:767.98px){
  .organization-parts-heading{
    align-items:center;
    margin-bottom:1.35rem;
  }
  .organization-parts-heading .section-title h2{
    font-size:clamp(1.8rem,8vw,2.35rem);
  }
  .organization-parts-controls{
    position:static;
    display:none;
  }
  .organization-parts-shell{
    margin-right:calc(var(--bs-gutter-x) * -.5);
    padding-bottom:.8rem;
  }
  .organization-parts-track{
    gap:1rem;
    padding-right:12%;
  }
  .organization-part-slide{
    flex-basis:82%;
    min-width:82%;
  }
  .organization-part-card{
    min-height:218px;
    padding:1.35rem;
    border-radius:22px;
  }
  .organization-part-logo-wrap{
    width:122px;
    height:122px;
  }
  .organization-part-card h3{
    font-size:1.02rem;
  }
}

/* MOBILE_SMART_JUSTIFY_V2_START */
/*
 * Smart Justify:
 * - Desktop, tablet, dan HP menggunakan justify.
 * - Paragraf pendek/sempit diberi class oleh JavaScript dan kembali rata kiri.
 * - Hyphenation dan text-align-last mengurangi jarak kata yang berlebihan.
 */
.content-body p,
.content-body blockquote,
.luxury-body p,
.luxury-body blockquote,
.luxury-body-premium p,
.welcome-body p,
.welcome-body-premium p,
.welcome-body-premium blockquote,
.news-card .card-body > p,
.service-card p,
.asset-card .card-body > p,
.council-card__body p,
.person-card .card-body > .text-secondary,
.video-ratio ~ p.text-secondary,
.sermon-card p,
.contact-card .content-description p {
  text-align: justify !important;
  text-align-last: left;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  word-break: normal;
  overflow-wrap: break-word;
  word-spacing: normal;
}

/* Paragraf yang terlalu pendek atau menghasilkan baris renggang. */
.smart-justify-short {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
  word-spacing: normal !important;
  overflow-wrap: anywhere;
}

/* Judul dan elemen identitas tidak ikut justify. */
.content-body h1,
.content-body h2,
.content-body h3,
.content-body h4,
.content-body h5,
.content-body h6,
.luxury-body h1,
.luxury-body h2,
.luxury-body h3,
.luxury-body h4,
.luxury-body h5,
.luxury-body h6 {
  text-align: left !important;
  text-align-last: auto !important;
}

@media (max-width: 575.98px) {
  .content-body p,
  .content-body blockquote,
  .luxury-body p,
  .luxury-body blockquote,
  .luxury-body-premium p,
  .welcome-body p,
  .welcome-body-premium p,
  .welcome-body-premium blockquote,
  .news-card .card-body > p,
  .service-card p,
  .asset-card .card-body > p,
  .council-card__body p,
  .person-card .card-body > .text-secondary,
  .video-ratio ~ p.text-secondary,
  .sermon-card p,
  .contact-card .content-description p {
    line-height: 1.72;
    letter-spacing: 0;
  }
}
/* MOBILE_SMART_JUSTIFY_V2_END */

/* GLOBAL_READABLE_JUSTIFY_V1_START */
/*
 * Perataan isi publik:
 * - Desktop/tablet: justify untuk paragraf isi dan ringkasan.
 * - HP kecil: rata kiri agar tidak muncul jarak antarkata yang terlalu lebar.
 */
@media (min-width: 576px) {
  .content-body p,
  .content-body blockquote,
  .luxury-body p,
  .luxury-body blockquote,
  .luxury-body-premium p,
  .welcome-body p,
  .welcome-body-premium p,
  .welcome-body-premium blockquote,
  .news-card .card-body > p,
  .service-card p,
  .asset-card .card-body > p,
  .council-card__body p,
  .person-card .card-body > .text-secondary,
  .video-ratio ~ p.text-secondary,
  .sermon-card p,
  .contact-card .content-description p {
    text-align: justify !important;
    text-align-last: left;
    text-justify: inter-word;
    -webkit-hyphens: auto;
    hyphens: auto;
    word-break: normal;
    overflow-wrap: break-word;
  }
}

/* Pada layar HP, rata kiri lebih nyaman dan tidak menghasilkan spasi renggang. */
@media (max-width: 575.98px) {
  .content-body p,
  .content-body blockquote,
  .luxury-body p,
  .luxury-body blockquote,
  .luxury-body-premium p,
  .welcome-body p,
  .welcome-body-premium p,
  .welcome-body-premium blockquote,
  .news-card .card-body > p,
  .service-card p,
  .asset-card .card-body > p,
  .council-card__body p,
  .person-card .card-body > .text-secondary,
  .video-ratio ~ p.text-secondary,
  .sermon-card p,
  .contact-card .content-description p {
    text-align: left !important;
    text-align-last: auto;
    text-justify: auto;
    -webkit-hyphens: none;
    hyphens: none;
    word-spacing: normal !important;
    overflow-wrap: anywhere;
    text-wrap: pretty;
  }
}

/* Menjaga judul, label, tombol, dan identitas tetap rata kiri/normal. */
.content-body h1,
.content-body h2,
.content-body h3,
.content-body h4,
.content-body h5,
.content-body h6,
.luxury-body h1,
.luxury-body h2,
.luxury-body h3,
.luxury-body h4,
.luxury-body h5,
.luxury-body h6 {
  text-align: left !important;
  text-align-last: auto;
}
/* GLOBAL_READABLE_JUSTIFY_V1_END */

/* SAMBUTAN_PERSISTENT_FORMAT_V3_START */
/*
 * Memastikan isi sambutan tetap justify meskipun editor WYSIWYG
 * menghasilkan elemen p, div, li, blockquote, atau class text-start.
 */
.luxury-body,
.luxury-body-premium,
.welcome-body,
.welcome-body-premium {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  word-break: normal;
  overflow-wrap: break-word;
  word-spacing: normal;
}

/* Menang terhadap style inline atau class Bootstrap text-start dari editor. */
.luxury-body :is(p, div, li, blockquote),
.luxury-body-premium :is(p, div, li, blockquote),
.welcome-body :is(p, div, li, blockquote),
.welcome-body-premium :is(p, div, li, blockquote),
.luxury-body :is(.text-start, .text-left, .smart-justify-short),
.luxury-body-premium :is(.text-start, .text-left, .smart-justify-short),
.welcome-body :is(.text-start, .text-left, .smart-justify-short),
.welcome-body-premium :is(.text-start, .text-left, .smart-justify-short) {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  word-spacing: normal !important;
}

/* Judul/subjudul di dalam isi WYSIWYG tetap rata kiri. */
.luxury-body :is(h1, h2, h3, h4, h5, h6),
.luxury-body-premium :is(h1, h2, h3, h4, h5, h6),
.welcome-body :is(h1, h2, h3, h4, h5, h6),
.welcome-body-premium :is(h1, h2, h3, h4, h5, h6) {
  text-align: left !important;
  text-align-last: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}

/*
 * Nama ketua:
 * - Lebar tidak lagi dibatasi 12–18 karakter.
 * - Ukuran diperkecil agar berpeluang tampil satu baris.
 * - Tetap dibatasi maksimal dua baris.
 */
.luxury-name,
.welcome-name-premium,
.welcome-name {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  font-size: clamp(1.75rem, 2.55vw, 2.75rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
  overflow: hidden !important;
  text-overflow: ellipsis;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

/* HP: justify tetap aktif, tetapi ukuran font dan hyphenation dibuat lebih aman. */
@media (max-width: 575.98px) {
  .luxury-body,
  .luxury-body-premium,
  .welcome-body,
  .welcome-body-premium,
  .luxury-body :is(p, div, li, blockquote),
  .luxury-body-premium :is(p, div, li, blockquote),
  .welcome-body :is(p, div, li, blockquote),
  .welcome-body-premium :is(p, div, li, blockquote) {
    text-align: justify !important;
    text-align-last: left !important;
    text-justify: inter-word !important;
    -webkit-hyphens: auto !important;
    hyphens: auto !important;
    hyphenate-limit-chars: 8 3 3;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    word-spacing: normal !important;
    line-height: 1.72;
  }

  .luxury-name,
  .welcome-name-premium,
  .welcome-name {
    font-size: clamp(1.32rem, 5.3vw, 1.72rem) !important;
    line-height: 1.1 !important;
    max-width: 100% !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
  }
}

/* Desktop lebar: sedikit lebih kecil agar nama panjang dapat satu baris. */
@media (min-width: 1200px) {
  .luxury-name,
  .welcome-name-premium,
  .welcome-name {
    font-size: clamp(1.85rem, 2.25vw, 2.55rem) !important;
  }
}
/* SAMBUTAN_PERSISTENT_FORMAT_V3_END */

/* GLOBAL_CONTENT_JUSTIFY_V4_START */
/*
 * Justify permanen untuk seluruh isi artikel/halaman publik.
 * Menangani hasil WYSIWYG berupa p, div, li, blockquote,
 * termasuk style inline atau class text-start/text-left.
 */
.content-body {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 7 3 3;
  word-break: normal;
  overflow-wrap: break-word;
  word-spacing: normal;
}

.content-body :is(p, div, li, blockquote),
.content-body :is(.text-start, .text-left) {
  text-align: justify !important;
  text-align-last: left !important;
  text-justify: inter-word !important;
  -webkit-hyphens: auto !important;
  hyphens: auto !important;
  hyphenate-limit-chars: 7 3 3;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  word-spacing: normal !important;
}

/* Judul, tabel, tombol, caption, dan identitas tidak dipaksa justify. */
.content-body :is(h1, h2, h3, h4, h5, h6, th, td, caption, figcaption, button, .btn) {
  text-align: left !important;
  text-align-last: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}

/* Paragraf pendek yang dideteksi JavaScript kembali rata kiri. */
.content-body .global-justify-short {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
  word-spacing: normal !important;
  overflow-wrap: anywhere !important;
}

@media (max-width: 575.98px) {
  .content-body,
  .content-body :is(p, div, li, blockquote) {
    text-align: justify !important;
    text-align-last: left !important;
    text-justify: inter-word !important;
    -webkit-hyphens: auto !important;
    hyphens: auto !important;
    hyphenate-limit-chars: 8 3 3;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    word-spacing: normal !important;
    letter-spacing: 0;
    line-height: 1.75;
  }

  .content-body .global-justify-short {
    text-align: left !important;
    text-align-last: auto !important;
    -webkit-hyphens: none !important;
    hyphens: none !important;
    overflow-wrap: anywhere !important;
  }
}
/* GLOBAL_CONTENT_JUSTIFY_V4_END */

/* HERO_IMAGE_ONLY_V1_START */
/* Slider hanya menampilkan gambar, tanpa label, judul, deskripsi, atau tombol. */
.hero-section .hero-copy,
.hero-section .hero-content {
  display: none !important;
}

.hero-section .hero-shade {
  display: none !important;
  background: transparent !important;
}
/* HERO_IMAGE_ONLY_V1_END */
