/* ======================================================================
   TEGALMAJA 2026 — GEN Z EDITORIAL REDESIGN
   Visual-only layer. Routes, forms, data flow and application logic remain unchanged.
   Direction: modern editorial + soft brutalist, using the existing navy/orange identity.
   ====================================================================== */

:root{
    --tm-navy:#173B57;
    --tm-navy-deep:#0F2D43;
    --tm-navy-ink:#0B2232;
    --tm-orange:var(--orange,#E8751A);
    --tm-orange-dark:#B94D12;
    --tm-paper:#FFFDFC;
    --tm-warm:#FFF7EF;
    --tm-mist:#F1F6F8;
    --tm-sky:#EAF4F8;
    --tm-line:#D9E4E9;
    --tm-line-dark:rgba(15,45,67,.16);
    --tm-text:#1A303E;
    --tm-muted:#667D8A;
    --tm-white:#FFFFFF;
    --tm-display:"Bricolage Grotesque","Plus Jakarta Sans",system-ui,sans-serif;
    --tm-body:"DM Sans","Plus Jakarta Sans",system-ui,sans-serif;
    --tm-radius-sm:14px;
    --tm-radius-md:20px;
    --tm-radius-lg:28px;
    --tm-radius-xl:38px;
    --tm-shadow:0 18px 60px rgba(15,45,67,.10);
    --tm-shadow-hover:0 24px 72px rgba(15,45,67,.16);
    --tm-hard-shadow:7px 7px 0 rgba(15,45,67,.10);
    --tm-container:1380px;
}

/* Base ---------------------------------------------------------------- */
.visitor-body{
    background:var(--tm-paper);
    color:var(--tm-text);
    font-family:var(--tm-body);
    font-size:15px;
    line-height:1.68;
    letter-spacing:-.012em;
}
.visitor-body ::selection{background:var(--tm-orange);color:#fff}
.visitor-body h1,
.visitor-body h2,
.visitor-body h3,
.visitor-body h4,
.visitor-body h5,
.visitor-body h6,
.visitor-body .section-title,
.visitor-body .public-nav-brand-copy strong,
.visitor-body .stat-value{
    font-family:var(--tm-display);
    letter-spacing:-.045em;
}
.visitor-body .container{max-width:var(--tm-container)}
.visitor-body .public-main{overflow:clip;background:var(--tm-paper)}
.visitor-body a{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.visitor-body img{display:block}

/* Buttons -------------------------------------------------------------- */
.visitor-body .btn{
    min-height:46px;
    padding:.72rem 1.05rem;
    border-radius:999px;
    font-family:var(--tm-body);
    font-size:.82rem;
    font-weight:800;
    letter-spacing:-.01em;
    border-width:1.5px;
    box-shadow:none;
}
.visitor-body .btn:hover{transform:translateY(-2px)}
.visitor-body .btn-orange{
    color:#fff;
    border-color:var(--tm-orange);
    background:var(--tm-orange);
    box-shadow:0 8px 0 rgba(185,77,18,.18);
}
.visitor-body .btn-orange:hover{
    color:#fff;
    border-color:var(--tm-orange-dark);
    background:var(--tm-orange-dark);
    box-shadow:0 4px 0 rgba(185,77,18,.16);
}
.visitor-body .btn-navy{
    color:#fff;
    border-color:var(--tm-navy-deep);
    background:var(--tm-navy-deep);
    box-shadow:0 8px 0 rgba(15,45,67,.13);
}
.visitor-body .btn-navy:hover{color:#fff;background:var(--tm-navy);border-color:var(--tm-navy)}
.visitor-body .btn-light{
    color:var(--tm-navy-deep);
    border-color:rgba(255,255,255,.55);
    background:rgba(255,255,255,.94);
}
.visitor-body .btn-light:hover{background:#fff;color:var(--tm-orange-dark)}
.visitor-body .btn-outline-primary,
.visitor-body .btn-outline-success,
.visitor-body .btn-outline-secondary{
    background:#fff;
    border-color:var(--tm-line);
    color:var(--tm-navy);
}
.visitor-body .btn-outline-primary:hover,
.visitor-body .btn-outline-success:hover,
.visitor-body .btn-outline-secondary:hover{
    color:var(--tm-navy-deep);
    border-color:var(--tm-navy);
    background:var(--tm-sky);
}

/* Navigation ----------------------------------------------------------- */
.public-main-nav.site-navbar{
    min-height:84px;
    padding:9px 0;
    border:0;
    border-bottom:1px solid rgba(15,45,67,.08);
    background:rgba(255,253,252,.90);
    backdrop-filter:blur(22px) saturate(145%);
    -webkit-backdrop-filter:blur(22px) saturate(145%);
    box-shadow:0 10px 40px rgba(15,45,67,.07);
}
.public-nav-container{
    min-height:64px;
    max-width:1580px;
    padding-inline:clamp(14px,2.5vw,42px);
}
.public-nav-brand{
    min-width:230px;
    gap:12px;
    margin-right:20px;
    padding:0;
}
.public-nav-brand-logo{
    width:52px;
    height:52px;
    flex:0 0 52px;
    padding:6px;
    border:1.5px solid var(--tm-line-dark);
    border-radius:18px 18px 18px 6px;
    background:#fff;
    box-shadow:5px 5px 0 rgba(232,117,26,.14);
}
.public-nav-brand-logo img{width:100%;height:100%;object-fit:contain}
.public-nav-brand-copy small{
    margin-bottom:3px;
    color:var(--tm-muted);
    font-size:.54rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.public-nav-brand-copy strong{
    color:var(--tm-navy-deep);
    font-size:1.03rem;
    font-weight:800;
}
.public-main-nav.site-navbar .public-main-menu{
    gap:4px;
    padding:5px;
    border:1px solid rgba(15,45,67,.08);
    border-radius:999px;
    background:rgba(241,246,248,.72);
}
.public-main-nav.site-navbar .nav-link{
    min-height:40px;
    padding:0 .72rem!important;
    border-radius:999px;
    color:var(--tm-navy-deep);
    font-size:.72rem;
    font-weight:750;
}
.public-main-nav.site-navbar .nav-link:hover{
    color:var(--tm-orange-dark);
    background:#fff;
}
.public-main-nav.site-navbar .nav-link.active{
    color:#fff;
    background:var(--tm-navy-deep);
    box-shadow:0 6px 14px rgba(15,45,67,.14);
}
.public-main-nav.site-navbar .dropdown-toggle::after{margin-left:.38rem;vertical-align:.1em}
.public-main-nav.site-navbar .dropdown-menu{
    min-width:245px;
    margin-top:12px!important;
    padding:9px;
    border:1.5px solid var(--tm-line-dark);
    border-radius:20px;
    background:rgba(255,255,255,.98);
    box-shadow:var(--tm-shadow);
}
.public-main-nav.site-navbar .dropdown-item{
    min-height:43px;
    gap:10px;
    padding:.66rem .76rem;
    border-radius:13px;
    color:var(--tm-text);
    font-size:.78rem;
    font-weight:650;
}
.public-main-nav.site-navbar .dropdown-item:hover{
    color:var(--tm-orange-dark);
    background:var(--tm-warm);
    transform:translateX(3px);
}
.public-main-nav.site-navbar .dropdown-item i{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:var(--tm-mist);
    color:var(--tm-navy);
    font-size:.72rem;
}
.public-nav-account{margin-left:10px}
.public-nav-account .btn{min-height:40px;padding-inline:.9rem;font-size:.72rem}
.public-register-button{border:1.5px solid var(--tm-line)!important;background:#fff!important;color:var(--tm-navy)!important}
.public-login-button{box-shadow:none!important}
.public-account-button{border:1.5px solid var(--tm-line)!important;background:#fff!important;color:var(--tm-navy)!important}
.public-main-nav .navbar-toggler{
    width:44px;
    height:44px;
    padding:0;
    border:1.5px solid var(--tm-line-dark);
    border-radius:14px;
    color:var(--tm-navy-deep);
    background:#fff;
}

/* Ticker --------------------------------------------------------------- */
.public-slogan-ticker{
    position:relative;
    z-index:3;
    border:0;
    border-bottom:1px solid rgba(15,45,67,.08);
    background:var(--tm-orange);
    color:#fff;
    box-shadow:none;
    overflow:hidden;
}
.public-slogan-ticker::before,
.public-slogan-ticker::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    z-index:2;
    width:60px;
    pointer-events:none;
}
.public-slogan-ticker::before{left:0;background:linear-gradient(90deg,var(--tm-orange),transparent)}
.public-slogan-ticker::after{right:0;background:linear-gradient(-90deg,var(--tm-orange),transparent)}
.public-slogan-ticker-window{padding-block:7px}
.public-slogan-ticker-track>span{
    font-family:var(--tm-display);
    color:#fff9f2 !important;
    font-size:.66rem;
    font-weight:800;
    letter-spacing:.11em;
    text-shadow:0 1px 0 rgba(111,44,0,.18);
}
.public-slogan-ticker-track i{color:#fff2df !important;opacity:.95}

/* Shared headings ------------------------------------------------------ */
.section-space,.home-section-compact{padding-block:clamp(4.3rem,7vw,7.2rem)}
.section-kicker{
    display:inline-flex;
    align-items:center;
    gap:.52rem;
    margin-bottom:.75rem;
    color:var(--tm-orange-dark);
    font-family:var(--tm-body);
    font-size:.66rem;
    font-weight:900;
    letter-spacing:.15em;
    text-transform:uppercase;
}
.section-kicker::before{
    content:"";
    width:9px;
    height:9px;
    border-radius:3px 3px 3px 0;
    background:var(--tm-orange);
    box-shadow:3px 3px 0 rgba(232,117,26,.18);
}
.section-title,.section-title.h1{
    max-width:900px;
    margin-bottom:.8rem;
    color:var(--tm-navy-deep);
    font-size:clamp(2rem,3.8vw,3.45rem);
    font-weight:800;
    line-height:1.02;
    letter-spacing:-.055em;
}
.section-desc{
    max-width:68ch;
    color:var(--tm-muted);
    font-size:.96rem;
    line-height:1.75;
}
.section-heading-row,.bps-section-heading{
    align-items:flex-end;
    gap:28px;
    margin-bottom:34px;
}
.bg-soft{
    background:
        radial-gradient(circle at 8% 10%,rgba(232,117,26,.075),transparent 24%),
        radial-gradient(circle at 92% 88%,rgba(23,59,87,.065),transparent 27%),
        var(--tm-mist)!important;
}

/* Generic cards -------------------------------------------------------- */
.visitor-body .soft-card{
    position:relative;
    border:1.5px solid var(--tm-line);
    border-radius:var(--tm-radius-lg);
    background:#fff;
    box-shadow:none;
    overflow:hidden;
}
.visitor-body .soft-card::after{
    content:"";
    position:absolute;
    width:36px;
    height:36px;
    right:-18px;
    top:-18px;
    border-radius:50%;
    background:var(--tm-orange);
    opacity:.13;
    pointer-events:none;
}
.visitor-body .soft-card:hover{
    transform:translateY(-5px) rotate(-.15deg);
    border-color:rgba(15,45,67,.24);
    box-shadow:var(--tm-shadow-hover);
}
.icon-box{
    width:54px;
    height:54px;
    flex:0 0 54px;
    border:1.5px solid rgba(232,117,26,.22);
    border-radius:17px 17px 17px 6px;
    color:var(--tm-orange-dark);
    background:var(--tm-warm);
    box-shadow:4px 4px 0 rgba(232,117,26,.10);
}
.card-badge{
    min-height:28px;
    padding:.38rem .65rem;
    border:1px solid rgba(232,117,26,.16);
    border-radius:999px;
    color:var(--tm-orange-dark);
    background:var(--tm-warm);
    font-size:.65rem;
    font-weight:850;
}

/* Home hero ------------------------------------------------------------ */
.home-hero-compact.hero{
    position:relative;
    min-height:670px;
    align-items:center;
    padding:96px 0 138px;
    border-radius:0 0 42px 42px;
    isolation:isolate;
}
.home-hero-compact.hero::before{
    opacity:.72;
    background-image:
        linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
        radial-gradient(circle at 78% 22%,rgba(232,117,26,.34) 0 2px,transparent 3px);
    background-size:44px 44px,44px 44px,74px 74px;
    mask-image:linear-gradient(90deg,#000 0 68%,transparent 94%);
}
.home-hero-compact.hero::after{
    content:"TEGALMAJA";
    position:absolute;
    right:clamp(-42px,1vw,24px);
    bottom:20px;
    z-index:-1;
    color:transparent;
    font-family:var(--tm-display);
    font-size:clamp(5.5rem,13vw,13rem);
    font-weight:800;
    line-height:.8;
    letter-spacing:-.08em;
    -webkit-text-stroke:1px rgba(255,255,255,.14);
    opacity:.88;
    pointer-events:none;
    white-space:nowrap;
}
.home-hero-compact .hero-content{width:100%;position:relative;z-index:2}
.home-hero-copy{max-width:920px;padding:8px 0 0;border:0;border-radius:0;background:transparent;backdrop-filter:none;box-shadow:none}
.home-hero-compact .hero-content::after{
    content:"";
    position:absolute;
    right:3%;
    top:8%;
    width:178px;
    aspect-ratio:1;
    border:1px solid rgba(255,255,255,.18);
    border-radius:50% 50% 18% 50%;
    transform:rotate(13deg);
    box-shadow:inset 0 0 0 26px rgba(255,255,255,.025);
    pointer-events:none;
}
.home-hero-compact .hero-badge{
    min-height:37px;
    padding:.48rem .78rem;
    border:1px solid rgba(255,255,255,.28);
    border-radius:999px;
    color:#fff;
    background:rgba(255,255,255,.10);
    backdrop-filter:blur(10px);
    font-size:.68rem;
    font-weight:800;
    letter-spacing:.02em;
}
.home-hero-compact .hero-badge i{color:#ffc08e}
.home-hero-title{
    max-width:930px;
    margin-top:20px!important;
    color:#fff;
    font-size:clamp(3rem,6.2vw,5.7rem)!important;
    font-weight:800!important;
    line-height:1.03!important;
    letter-spacing:-.038em!important;
    word-spacing:.01em;
    text-wrap:balance;
    text-shadow:0 4px 18px rgba(0,0,0,.42), 0 2px 0 rgba(6,22,34,.38);
}
.home-hero-compact .hero-content p{
    max-width:650px;
    margin-top:24px!important;
    color:#F7FBFC;
    font-size:1.02rem;
    line-height:1.75;
    text-shadow:0 2px 10px rgba(0,0,0,.28);
}
.home-hero-actions{margin-top:30px!important}
.home-hero-actions .btn{min-height:50px;padding-inline:1.15rem}

/* Stats --------------------------------------------------------------- */
.stats-strip{margin-top:-76px;position:relative;z-index:5}
.stats-card{
    position:relative;
    padding:9px;
    border:1.5px solid rgba(255,255,255,.22);
    border-radius:28px 28px 28px 10px;
    background:var(--tm-navy-deep);
    box-shadow:0 28px 70px rgba(15,45,67,.23);
    overflow:hidden;
}
.stats-card::before{
    content:none;
    position:absolute;
    right:18px;
    top:12px;
    color:rgba(255,255,255,.06);
    font-family:var(--tm-display);
    font-size:1.55rem;
    font-weight:800;
    letter-spacing:-.05em;
    pointer-events:none;
}
.stat-item{
    position:relative;
    min-height:106px;
    padding:16px 12px;
    border-right:1px solid rgba(255,255,255,.10);
    text-align:left;
}
.stat-item:last-child{border-right:0}
.stat-item::before{
    content:"";
    width:7px;
    height:7px;
    margin-bottom:10px;
    display:block;
    border-radius:2px;
    background:var(--tm-orange);
}
.stat-value{color:#fff;font-size:1.68rem;font-weight:800;letter-spacing:-.05em}
.stat-label{margin-top:4px;color:#9EB4C0;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}

/* Home services ------------------------------------------------------- */
.home-services-rail{counter-reset:service}
.service-card{
    min-height:230px;
    padding:24px;
    color:var(--tm-text);
}
.service-card::before{
    counter-increment:service;
    content:"0" counter(service);
    position:absolute;
    top:20px;
    right:21px;
    color:#BCD0DA;
    font-family:var(--tm-display);
    font-size:.76rem;
    font-weight:800;
    letter-spacing:.06em;
}
.service-card .icon-box{margin-bottom:38px!important}
.service-card h3{
    max-width:85%;
    margin-bottom:.6rem;
    color:var(--tm-navy-deep);
    font-size:1.12rem;
    font-weight:800;
    line-height:1.2;
}
.service-card p{color:var(--tm-muted);font-size:.84rem;line-height:1.62}
.service-card:hover .icon-box{transform:rotate(-4deg) scale(1.04)}

/* Home video ---------------------------------------------------------- */
.video-card{border-radius:30px!important}
.video-card .ratio{overflow:hidden;border-radius:26px 26px 0 0;background:var(--tm-navy-deep)}
.video-card iframe{filter:saturate(.92) contrast(1.02)}
.video-card>.p-3{padding:20px!important}
.video-card h3{font-family:var(--tm-display)!important;font-size:1rem!important;letter-spacing:-.03em}

/* Home ebook ---------------------------------------------------------- */
.bps-see-all-link{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:10px 14px;
    border:1.5px solid var(--tm-line);
    border-radius:999px;
    color:var(--tm-navy-deep);
    background:#fff;
    font-size:.76rem;
    font-weight:800;
}
.bps-see-all-link:hover{color:#fff;background:var(--tm-navy-deep);border-color:var(--tm-navy-deep);transform:translateY(-2px)}
.bps-see-all-link i{font-size:.67rem}
.home-bps-ebook-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.home-bps-ebook-card{
    min-width:0;
    position:relative;
    display:flex;
    flex-direction:column;
    border:1.5px solid var(--tm-line);
    border-radius:28px 28px 28px 8px;
    background:#fff;
    overflow:hidden;
    box-shadow:none;
}
.home-bps-ebook-card:hover{transform:translateY(-6px);border-color:rgba(15,45,67,.24);box-shadow:var(--tm-shadow-hover)}
.home-bps-ebook-cover{
    aspect-ratio:4/3;
    margin:10px 10px 0;
    border-radius:20px;
    overflow:hidden;
    background:var(--tm-sky);
}
.home-bps-ebook-cover img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-bps-ebook-card:hover .home-bps-ebook-cover img{transform:scale(1.035)}
.home-bps-ebook-placeholder{height:100%;display:grid;place-items:center;align-content:center;gap:9px;color:var(--tm-navy)}
.home-bps-ebook-placeholder i{font-size:2rem}
.home-bps-ebook-placeholder span{font-size:.64rem;font-weight:900;letter-spacing:.15em}
.home-bps-ebook-info{display:flex;flex:1;flex-direction:column;padding:19px 20px 21px}
.home-bps-ebook-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.home-bps-ebook-meta span{
    padding:4px 8px;
    border-radius:999px;
    background:var(--tm-mist);
    color:var(--tm-muted);
    font-size:.61rem;
    font-weight:800;
}
.home-bps-ebook-info h3{margin:0 0 8px;color:var(--tm-navy-deep);font-size:1.06rem;font-weight:800;line-height:1.28}
.home-bps-ebook-info p{margin:0;color:var(--tm-muted);font-size:.76rem}
.home-bps-ebook-action{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:18px;color:var(--tm-orange-dark);font-size:.72rem;font-weight:850}

/* Home news ----------------------------------------------------------- */
.home-bps-news-grid{
    display:grid;
    grid-template-columns:1.35fr .85fr .85fr;
    gap:18px;
}
.home-bps-news-card{
    min-width:0;
    display:flex;
    flex-direction:column;
    border:1.5px solid var(--tm-line);
    border-radius:30px;
    background:#fff;
    overflow:hidden;
}
.home-bps-news-card:first-child{grid-row:span 2}
.home-bps-news-card:hover{transform:translateY(-5px);border-color:rgba(15,45,67,.24);box-shadow:var(--tm-shadow-hover)}
.home-bps-news-media{aspect-ratio:16/9;overflow:hidden;background:var(--tm-mist)}
.home-bps-news-card:first-child .home-bps-news-media{aspect-ratio:4/3}
.home-bps-news-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.home-bps-news-card:hover .home-bps-news-media img{transform:scale(1.035)}
.home-bps-news-placeholder{height:100%;display:grid;place-items:center;color:var(--tm-navy);font-size:2.3rem}
.home-bps-news-body{padding:19px 20px 22px}
.home-bps-news-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:9px;color:var(--tm-muted);font-size:.64rem;font-weight:750}
.home-bps-news-meta span+span::before{content:"•";margin-right:8px;color:var(--tm-orange)}
.home-bps-news-body h3{margin:0;color:var(--tm-navy-deep);font-size:1.04rem;font-weight:800;line-height:1.32}
.home-bps-news-card:first-child .home-bps-news-body h3{font-size:1.28rem}

/* Home products ------------------------------------------------------- */
.product-card{border-radius:30px!important}
.product-image,.image-placeholder{height:230px}
.product-card .product-image{transition:transform .4s ease}
.product-card:hover .product-image{transform:scale(1.02)}
.product-card>.p-3{padding:20px!important}
.product-card h3{font-family:var(--tm-display);font-size:1.08rem;letter-spacing:-.035em}
.product-price{font-family:var(--tm-display);font-size:1.08rem;font-weight:800}

/* Interior page hero -------------------------------------------------- */
.page-hero{
    position:relative;
    min-height:315px;
    display:flex;
    align-items:flex-end;
    padding:94px 0 62px;
    border-radius:0 0 38px 38px;
    background:
        linear-gradient(112deg,rgba(15,45,67,1),rgba(23,59,87,.97) 62%,rgba(185,77,18,.94));
    isolation:isolate;
}
.page-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
    background-size:36px 36px;
    mask-image:linear-gradient(90deg,#000,rgba(0,0,0,.65),transparent 95%);
}
.page-hero::after{
    width:240px;
    height:240px;
    right:5%;
    top:34px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:50% 50% 15% 50%;
    background:rgba(232,117,26,.14);
    transform:rotate(22deg);
}
.page-hero .breadcrumb{margin-bottom:18px;font-size:.7rem;font-weight:700}
.page-hero .breadcrumb a{color:#D6E3E9}
.page-hero h1,.page-hero .display-5,.page-hero .display-6{
    max-width:980px;
    margin-bottom:.8rem;
    color:#fff;
    font-family:var(--tm-display);
    font-size:clamp(2.35rem,4.7vw,4.5rem);
    font-weight:800;
    line-height:.98;
    letter-spacing:-.065em;
}
.page-hero p{max-width:760px;color:#D9E7ED;font-size:.94rem;line-height:1.7}

/* Forms --------------------------------------------------------------- */
.visitor-body .form-label{margin-bottom:.48rem;color:var(--tm-navy-deep);font-size:.76rem;font-weight:850}
.visitor-body .form-control,
.visitor-body .form-select{
    min-height:48px;
    padding:.72rem .9rem;
    border:1.5px solid var(--tm-line);
    border-radius:14px;
    background:#fff;
    color:var(--tm-text);
    font-family:var(--tm-body);
    font-size:.84rem;
}
.visitor-body .form-control:focus,
.visitor-body .form-select:focus{
    border-color:var(--tm-orange);
    box-shadow:0 0 0 4px rgba(232,117,26,.11);
}
.visitor-body textarea.form-control{min-height:130px}
.visitor-body .input-group-text{border:1.5px solid var(--tm-line);background:var(--tm-mist);color:var(--tm-navy)}

/* Alerts -------------------------------------------------------------- */
.visitor-body .alert{
    padding:15px 17px;
    border:1.5px solid var(--tm-line);
    border-radius:18px;
    box-shadow:none;
    font-size:.82rem;
}
.visitor-body .alert-info{background:var(--tm-sky);color:var(--tm-navy-deep)}

/* Generic data tables ------------------------------------------------- */
.visitor-body .table-responsive{border-radius:22px}
.visitor-body .table-modern,
.visitor-body .monography-table,
.visitor-body .apbdes-table{
    border:1.5px solid var(--tm-line);
    border-radius:20px;
    background:#fff;
    overflow:hidden;
}
.visitor-body .table-modern thead th,
.visitor-body .monography-table thead th,
.visitor-body .apbdes-table thead th{
    padding:.9rem 1rem;
    border-color:rgba(255,255,255,.08);
    color:#fff;
    background:var(--tm-navy-deep);
    font-size:.67rem;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.visitor-body .table-modern tbody td,
.visitor-body .monography-table tbody td,
.visitor-body .apbdes-table tbody td{
    padding:.9rem 1rem;
    border-color:#EAF0F3;
    font-size:.8rem;
}
.visitor-body table tbody tr:hover td{background:#FFF9F4}

/* Profile ------------------------------------------------------------- */
.history-layout{gap:34px}
.history-article,
.identity-card,
.identity-panel{
    border:1.5px solid var(--tm-line)!important;
    border-radius:30px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.history-article{position:relative;padding:clamp(24px,4vw,42px)!important;overflow:hidden}
.history-article::before{
    content:"SEJARAH";
    position:absolute;
    right:-8px;
    top:8px;
    color:#F0F5F7;
    font-family:var(--tm-display);
    font-size:clamp(3.5rem,9vw,8rem);
    font-weight:800;
    line-height:1;
    letter-spacing:-.08em;
}
.history-body,.history-lead{position:relative;z-index:1}
.history-lead{color:var(--tm-navy-deep)!important;font-family:var(--tm-display);font-size:1.18rem!important;font-weight:700;line-height:1.55!important}
.history-facts{gap:12px!important}
.history-fact{
    border:1.5px solid var(--tm-line)!important;
    border-radius:17px 17px 17px 5px!important;
    background:var(--tm-mist)!important;
}
.identity-card-header{border-bottom:1.5px solid var(--tm-line)!important;background:var(--tm-mist)!important}
.identity-row{border-bottom:1px solid #EAF0F3!important}
.identity-row:last-child{border-bottom:0!important}

/* Government / officials --------------------------------------------- */
.official-photo-frame{border-radius:30px 30px 30px 10px!important;box-shadow:var(--tm-hard-shadow)!important}
.official-public-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.official-public-card:hover{transform:translateY(-4px);box-shadow:var(--tm-shadow)!important}
.official-public-head{gap:14px!important}
.official-chart-shell,
.bps-chart-shell{
    border:1.5px solid var(--tm-line)!important;
    border-radius:30px!important;
    background:
        linear-gradient(rgba(15,45,67,.035) 1px,transparent 1px),
        linear-gradient(90deg,rgba(15,45,67,.035) 1px,transparent 1px),
        #F8FBFC!important;
    background-size:30px 30px!important;
    box-shadow:none!important;
}
.official-chart-card,
.bps-chart-card{
    border:1.5px solid var(--tm-line)!important;
    border-top:0!important;
    border-radius:22px 22px 22px 7px!important;
    background:#fff!important;
    box-shadow:6px 6px 0 rgba(15,45,67,.07)!important;
    overflow:hidden!important;
}
.official-chart-card::before,
.bps-chart-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:6px;
    border-radius:inherit;
    background:var(--tm-orange)!important;
}
.official-chart-photo,
.bps-chart-photo-wrap{border:3px solid #fff!important;box-shadow:0 0 0 1.5px var(--tm-line),0 8px 20px rgba(15,45,67,.12)!important}
.official-chart-label,
.bps-chart-label{border-radius:999px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}

/* BPS page ------------------------------------------------------------ */
.bps-agents-section{background:var(--tm-paper)}
.bps-chart-toolbar{
    border-radius:28px 28px 0 0!important;
    background:var(--tm-navy-deep)!important;
}
.bps-chart-toolbar-kicker{color:#FFB47B!important}
.bps-chart-toolbar-note{border-radius:999px!important;background:rgba(255,255,255,.08)!important}
.bps-tree-card{border:1.5px solid var(--tm-line)!important;border-radius:20px!important;box-shadow:none!important}

/* Services ------------------------------------------------------------ */
.service-search-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:var(--tm-hard-shadow)!important;
}
.service-step-card{
    position:relative;
    border:1.5px solid var(--tm-line)!important;
    border-radius:24px 24px 24px 7px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.service-step-number{
    border-radius:12px 12px 12px 4px!important;
    background:var(--tm-navy-deep)!important;
    color:#fff!important;
    font-family:var(--tm-display)!important;
}
.service-process-section{background:var(--tm-mist)!important}
.service-empty-state{border:1.5px dashed #B8CBD4!important;border-radius:24px!important;background:#fff!important}

/* Publications -------------------------------------------------------- */
.information-heading{margin-bottom:28px!important}
.information-news-grid{gap:18px!important}
.information-news-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px!important;
    background:#fff!important;
    box-shadow:none!important;
    overflow:hidden!important;
}
.information-news-card:hover{transform:translateY(-5px);box-shadow:var(--tm-shadow-hover)!important}
.information-news-image-wrap{margin:10px 10px 0!important;border-radius:20px!important;overflow:hidden!important}
.information-news-image{transition:transform .35s ease}
.information-news-card:hover .information-news-image{transform:scale(1.035)}
.information-news-content{padding:20px!important}
.information-news-content h3{font-family:var(--tm-display)!important;letter-spacing:-.035em!important}
.information-news-meta{font-size:.68rem!important}
.information-news-read{color:var(--tm-orange-dark)!important;font-weight:850!important}
.information-support-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.information-support-header{border-bottom:1.5px solid var(--tm-line)!important;background:var(--tm-mist)!important}
.information-support-item{border-bottom:1px solid #EAF0F3!important}
.information-support-icon{border-radius:12px 12px 12px 4px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.information-agenda-date{border-radius:16px 16px 16px 5px!important;background:var(--tm-navy-deep)!important}
.information-empty-state{border:1.5px dashed #B8CBD4!important;border-radius:24px!important;background:#fff!important}

/* News detail --------------------------------------------------------- */
.news-bps-page{background:var(--tm-mist)!important}
.news-bps-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:34px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.news-bps-header{padding:clamp(24px,4vw,44px)!important;border-bottom:1.5px solid var(--tm-line)!important}
.news-bps-category{border-radius:999px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.news-bps-heading-copy h1{font-family:var(--tm-display)!important;letter-spacing:-.06em!important;line-height:1.02!important}
.news-bps-media{margin:0 clamp(14px,3vw,30px)!important;border-radius:26px!important;overflow:hidden!important}
.news-bps-body{padding:clamp(24px,4vw,44px)!important}
.news-bps-lead{font-family:var(--tm-display)!important;color:var(--tm-navy-deep)!important;font-weight:650!important}
.news-bps-share{border-radius:20px!important;background:var(--tm-mist)!important}

/* Products / potentials ---------------------------------------------- */
.catalog-card-link,
.potential-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px 28px 28px 8px!important;
    box-shadow:none!important;
}
.catalog-card-link:hover,.potential-card:hover{transform:translateY(-5px);box-shadow:var(--tm-shadow-hover)!important}
.catalog-card-footer{border-top:1.5px solid var(--tm-line)!important}
.catalog-location{color:var(--tm-muted)!important}
.detail-commerce-hero{border-radius:0 0 38px 38px!important}
.commerce-detail-image{border-radius:30px 30px 30px 10px!important;box-shadow:var(--tm-hard-shadow)!important}
.commerce-meta-card{border:1.5px solid var(--tm-line)!important;border-radius:20px!important;background:#fff!important;box-shadow:none!important}
.commerce-detail-price{font-family:var(--tm-display)!important;color:var(--tm-orange-dark)!important}

/* Ebooks -------------------------------------------------------------- */
.ebook-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px 28px 28px 8px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.ebook-card:hover{transform:translateY(-5px);box-shadow:var(--tm-shadow-hover)!important}
.ebook-cover{margin:10px 10px 0!important;border-radius:20px!important;overflow:hidden!important}
.ebook-cover-placeholder{background:var(--tm-mist)!important}
.ebook-share-button{border-radius:999px!important}

/* Documents ----------------------------------------------------------- */
.document-hero{border-radius:0 0 38px 38px!important}
.document-toolbar,
.document-card-top,
.document-stat-row{
    border:1.5px solid var(--tm-line)!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.document-category-strip{gap:8px!important}
.document-category-chip{border:1.5px solid var(--tm-line)!important;border-radius:999px!important;background:#fff!important}
.document-category-chip.active{color:#fff!important;border-color:var(--tm-navy-deep)!important;background:var(--tm-navy-deep)!important}
.public-document-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:26px 26px 26px 8px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.public-document-card:hover{transform:translateY(-4px);box-shadow:var(--tm-shadow)!important}
.document-icon{border-radius:15px 15px 15px 5px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.document-year,.document-category-label{border-radius:999px!important}
.document-empty{border:1.5px dashed #B8CBD4!important;border-radius:24px!important;background:#fff!important}

/* Monography ---------------------------------------------------------- */
.monography-hero{border-radius:0 0 38px 38px!important}
.monography-kpi-card,
.monography-chart-card,
.monography-source-box,
.monography-accordion{
    border:1.5px solid var(--tm-line)!important;
    border-radius:24px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.monography-kpi-card{min-height:140px!important}
.monography-kpi-icon{border-radius:15px 15px 15px 5px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.monography-kpi-label{font-size:.68rem!important;letter-spacing:.08em!important}
.monography-year-badge{border-radius:999px!important;background:var(--tm-navy-deep)!important}
.monography-chart-heading{border-bottom:1.5px solid var(--tm-line)!important}
.monography-accordion-icon{border-radius:13px 13px 13px 4px!important;background:var(--tm-mist)!important}

/* APBDes -------------------------------------------------------------- */
.apbdes-main{background:var(--tm-paper)!important}
.apbdes-kpi,
.apbdes-panel,
.apbdes-table-card,
.apbdes-summary,
.apbdes-year-form,
.apbdes-locked-card{
    border:1.5px solid var(--tm-line)!important;
    border-radius:26px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.apbdes-kpi:hover{transform:translateY(-4px);box-shadow:var(--tm-shadow)!important}
.apbdes-kpi-icon,.apbdes-locked-icon{border-radius:16px 16px 16px 5px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.apbdes-category-head{background:var(--tm-mist)!important}
.apbdes-progress{border-radius:999px!important;background:#E7EEF1!important;overflow:hidden!important}
.apbdes-progress>span{background:var(--tm-orange)!important}
.apbdes-locked-page{background:var(--tm-mist)!important}
.apbdes-locked-status{border-radius:999px!important}

/* Map / contact ------------------------------------------------------- */
.map-grid{gap:22px!important}
.map-main,.map-side,.map-info{
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px!important;
    background:#fff!important;
    box-shadow:none!important;
}
.map-frame{
    min-height:500px;
    border:1.5px solid var(--tm-line)!important;
    border-radius:28px 28px 28px 8px!important;
    box-shadow:var(--tm-hard-shadow)!important;
}
.map-heading{font-family:var(--tm-display)!important;letter-spacing:-.04em!important}
.map-info-row{border-bottom:1px solid #EAF0F3!important}
.map-info-icon{border-radius:13px 13px 13px 4px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}
.map-hint{border-radius:18px!important;background:var(--tm-mist)!important}

/* Pagination ---------------------------------------------------------- */
.visitor-body .pagination{gap:6px}
.visitor-body .page-link{
    min-width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:1.5px solid var(--tm-line);
    border-radius:999px!important;
    color:var(--tm-navy);
    background:#fff;
    font-size:.74rem;
    font-weight:800;
}
.visitor-body .page-item.active .page-link{border-color:var(--tm-navy-deep);background:var(--tm-navy-deep);color:#fff}

/* Modal --------------------------------------------------------------- */
.visitor-body .modal-content{
    border:1.5px solid var(--tm-line);
    border-radius:30px!important;
    box-shadow:0 32px 100px rgba(15,45,67,.28);
    overflow:hidden;
}
.homepage-popup-modal .modal-content{border-radius:34px!important}
.homepage-popup-image-wrap{border-radius:24px!important;overflow:hidden!important}
.desa-cantik-badge{border-radius:999px!important;background:var(--tm-warm)!important;color:var(--tm-orange-dark)!important}

/* Footer -------------------------------------------------------------- */
.footer.public-footer{
    position:relative;
    margin-top:0;
    padding:74px 0 26px;
    color:#BFD0D9;
    background:var(--tm-navy-ink);
    overflow:hidden;
}
.footer.public-footer::before{
    content:"TEGALMAJA";
    position:absolute;
    right:-30px;
    bottom:12px;
    color:transparent;
    font-family:var(--tm-display);
    font-size:clamp(5rem,14vw,13rem);
    font-weight:800;
    letter-spacing:-.08em;
    line-height:.8;
    -webkit-text-stroke:1px rgba(255,255,255,.055);
    pointer-events:none;
}
.public-footer .container{position:relative;z-index:1}
.footer-brand{display:inline-flex;align-items:center;gap:13px}
.footer-brand .site-brand-logo{
    width:50px;
    height:50px;
    padding:5px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:17px 17px 17px 6px;
    background:#fff;
}
.footer-brand .site-brand-logo img{width:100%;height:100%;object-fit:contain}
.footer-brand strong{display:block;color:#fff;font-family:var(--tm-display);font-size:1.06rem;letter-spacing:-.04em}
.footer-brand small{display:block;margin-top:2px;color:#91A8B4;font-size:.67rem}
.public-footer h5{
    margin-bottom:15px;
    color:#fff;
    font-family:var(--tm-display);
    font-size:.95rem;
    font-weight:750;
    letter-spacing:-.03em;
}
.footer-links{display:grid;gap:7px}
.footer-links a{
    width:max-content;
    max-width:100%;
    color:#AFC2CC;
    font-size:.78rem;
}
.footer-links a:hover{color:#fff;transform:translateX(4px)}
.footer-contact-list{display:grid;gap:10px}
.footer-contact-list p{display:flex;gap:10px;margin:0!important;color:#AFC2CC;font-size:.78rem}
.footer-contact-list i{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:rgba(255,255,255,.06);color:#FFB47B;font-size:.68rem}
.footer-bottom{position:relative;z-index:1;margin-top:40px;padding-top:18px;border-top:1px solid rgba(255,255,255,.10);color:#7F98A4;font-size:.72rem}

/* Floating WhatsApp --------------------------------------------------- */
.floating-wa{
    right:20px;
    bottom:20px;
    width:auto;
    height:50px;
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:0 17px;
    border:2px solid #fff;
    border-radius:999px;
    color:#fff;
    background:#1EBA5A;
    font-size:1rem;
    box-shadow:0 14px 35px rgba(15,45,67,.20);
}
.floating-wa span{font-size:.72rem;font-weight:850}
.floating-wa:hover{color:#fff;transform:translateY(-3px)}

/* Motion -------------------------------------------------------------- */
@media (prefers-reduced-motion:no-preference){
    .service-card .icon-box,
    .home-bps-ebook-cover img,
    .home-bps-news-media img,
    .product-card .product-image{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
}
@media (prefers-reduced-motion:reduce){
    .visitor-body *,
    .visitor-body *::before,
    .visitor-body *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Tablet -------------------------------------------------------------- */
@media(max-width:1199.98px){
    .public-main-nav.site-navbar{min-height:76px;padding:7px 0}
    .public-nav-container{min-height:60px}
    .public-main-nav .navbar-collapse{
        margin-top:10px;
        padding:12px;
        border:1.5px solid var(--tm-line);
        border-radius:22px;
        background:#fff;
        box-shadow:var(--tm-shadow);
    }
    .public-main-nav.site-navbar .public-main-menu{
        align-items:stretch!important;
        gap:3px;
        padding:0;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .public-main-nav.site-navbar .nav-link{
        justify-content:flex-start;
        min-height:42px;
        padding-inline:12px!important;
        border-radius:12px;
    }
    .public-main-nav.site-navbar .nav-link.active{box-shadow:none}
    .public-main-nav.site-navbar .dropdown-menu{margin-top:4px!important;border-radius:16px;box-shadow:none;background:var(--tm-mist)}
    .public-nav-account{margin:10px 0 0;padding-top:10px;border-top:1.5px solid var(--tm-line)}
    .public-nav-account .btn{flex:1}
    .home-bps-ebook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .home-bps-news-grid{grid-template-columns:1fr 1fr}
    .home-bps-news-card:first-child{grid-column:1/-1;grid-row:auto;display:grid;grid-template-columns:1.1fr .9fr}
    .home-bps-news-card:first-child .home-bps-news-media{aspect-ratio:16/10}
}

/* Mobile -------------------------------------------------------------- */
@media(max-width:767.98px){
    .visitor-body{font-size:14px}
    .public-main-nav.site-navbar{padding:6px 0}
    .public-nav-brand-logo{width:45px;height:45px;flex-basis:45px;border-radius:15px 15px 15px 5px;box-shadow:4px 4px 0 rgba(232,117,26,.12)}
    .public-nav-brand-copy small{font-size:.48rem}
    .public-nav-brand-copy strong{font-size:.88rem}
    .section-space,.home-section-compact{padding-block:58px}
    .section-title,.section-title.h1{font-size:2rem;line-height:1.03}
    .section-desc{font-size:.86rem}
    .section-heading-row,.bps-section-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:24px}
    .bps-see-all-link{width:100%;justify-content:center}

    .home-hero-compact.hero{min-height:570px;padding:64px 0 118px;border-radius:0 0 30px 30px}
    .home-hero-compact.hero::after{right:-10px;bottom:12px;font-size:5.2rem}
    .home-hero-compact .hero-content::after{display:none}
    .home-hero-copy{padding:6px 0 0;border-radius:0}
    .home-hero-title{font-size:2.85rem!important;line-height:1.04!important;letter-spacing:-.03em!important}
    .home-hero-compact .hero-content p{font-size:.9rem;line-height:1.67}
    .home-hero-actions{gap:9px!important}
    .home-hero-actions .btn{min-height:47px;font-size:.77rem}
    .stats-strip{margin-top:-62px;padding-inline:9px}
    .stats-card{border-radius:23px 23px 23px 8px}
    .stats-card::before{display:none}
    .home-stats-scroll{overflow-x:auto;scrollbar-width:none}
    .home-stats-scroll::-webkit-scrollbar{display:none}
    .stat-item{min-width:145px;min-height:96px;padding:13px 12px}
    .stat-value{font-size:1.4rem}
    .stat-label{font-size:.58rem}

    .home-mobile-rail{
        flex-wrap:nowrap!important;
        margin-inline:-12px!important;
        padding-inline:12px!important;
        overflow-x:auto;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }
    .home-mobile-rail::-webkit-scrollbar{display:none}
    .home-services-rail>.col-sm-6,
    .home-videos-rail>[class*="col-lg-"],
    .home-products-rail>.col-md-4{
        min-width:82vw;
        width:82vw;
        scroll-snap-align:start;
    }
    .service-card{min-height:218px;padding:21px}
    .home-bps-ebook-grid{display:flex;gap:14px;margin-inline:-12px;padding-inline:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
    .home-bps-ebook-grid::-webkit-scrollbar{display:none}
    .home-bps-ebook-card{min-width:78vw;width:78vw;scroll-snap-align:start}
    .home-bps-news-grid{display:flex;gap:14px;margin-inline:-12px;padding-inline:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
    .home-bps-news-grid::-webkit-scrollbar{display:none}
    .home-bps-news-card,.home-bps-news-card:first-child{min-width:84vw;width:84vw;display:flex;grid-column:auto;grid-row:auto;scroll-snap-align:start}
    .home-bps-news-card:first-child .home-bps-news-media,.home-bps-news-media{aspect-ratio:16/10}
    .home-bps-news-card:first-child .home-bps-news-body h3{font-size:1.08rem}

    .page-hero{min-height:250px;padding:62px 0 44px;border-radius:0 0 28px 28px}
    .page-hero::after{width:150px;height:150px;right:-20px;top:28px}
    .page-hero h1,.page-hero .display-5,.page-hero .display-6{font-size:2.4rem;line-height:1}
    .page-hero p{font-size:.84rem}

    .visitor-body .soft-card.p-4{padding:19px!important}
    .history-article{padding:22px!important}
    .history-article::before{font-size:4.2rem;right:-8px}
    .map-frame,#villageMap,#contactMap{min-height:430px}
    .floating-wa{right:12px;bottom:12px;width:48px;height:48px;padding:0;justify-content:center}
    .floating-wa span{display:none}
    .footer.public-footer{padding-top:58px}
}

@media(max-width:575.98px){
    .public-nav-brand{min-width:0;margin-right:8px}
    .public-nav-brand-copy strong{max-width:188px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .home-hero-title{font-size:2.55rem!important;line-height:1.06!important;letter-spacing:-.025em!important}
    .home-hero-actions .btn{flex:1 1 100%}
    .home-bps-ebook-card{min-width:84vw;width:84vw}
    .home-bps-news-card,.home-bps-news-card:first-child{min-width:88vw;width:88vw}
    .page-hero h1,.page-hero .display-5,.page-hero .display-6{font-size:2.15rem}
    .document-actions{flex-direction:column}
    .document-actions .btn{width:100%}
}

/* Final utility polish ------------------------------------------------ */
.home-bps-empty-state,
.document-empty,
.apbdes-empty{
    min-height:160px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:28px;
    border:1.5px dashed #B8CBD4;
    border-radius:24px 24px 24px 8px;
    color:var(--tm-muted);
    background:rgba(255,255,255,.78);
}
.home-bps-empty-state i,
.document-empty i,
.apbdes-empty i{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:grid;
    place-items:center;
    border-radius:14px 14px 14px 5px;
    color:var(--tm-orange-dark);
    background:var(--tm-warm);
}
.home-bps-empty-state strong,
.document-empty strong,
.apbdes-empty strong{display:block;color:var(--tm-navy-deep);font-family:var(--tm-display);font-weight:750}
.home-bps-empty-state span,
.document-empty span,
.apbdes-empty span{display:block;margin-top:3px;font-size:.76rem}
.information-result-count{color:var(--tm-muted);font-size:.74rem;font-weight:700}
.monography-section-actions,.monography-export-actions{gap:8px!important}

@media(min-width:1200px) and (max-width:1399.98px){
    .public-nav-container{padding-inline:14px}
    .public-nav-brand{min-width:190px;gap:9px;margin-right:10px}
    .public-nav-brand-logo{width:46px;height:46px;flex-basis:46px}
    .public-nav-brand-copy small{font-size:.46rem}
    .public-nav-brand-copy strong{font-size:.88rem}
    .public-main-nav.site-navbar .public-main-menu{gap:1px;padding:4px}
    .public-main-nav.site-navbar .nav-link{padding-inline:.53rem!important;font-size:.65rem}
    .public-nav-account{margin-left:6px;gap:4px!important}
    .public-nav-account .btn{padding-inline:.65rem;font-size:.65rem}
}


/* ======================================================================
   2026-08-13 CONTENT VISIBILITY + ALIGNMENT FIXES
   ====================================================================== */

/* Catalog cards: full-redesign.css used height:100% on every catalog link.
   That stretched the media link and pushed product/potential content below it. */
.visitor-body .product-card > .catalog-card-link{
    display:block!important;
    height:auto!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:28px 28px 0 0!important;
    box-shadow:none!important;
    transform:none!important;
}
.visitor-body .product-card h3 .catalog-card-link{
    display:inline!important;
    height:auto!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
}
.visitor-body .product-card .product-card-body{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    padding:24px!important;
}
.visitor-body .product-card .image-placeholder,
.visitor-body .product-card .product-image{
    display:block;
    width:100%;
}
.visitor-body .product-card .image-placeholder{
    display:grid;
    place-items:center;
}

/* History and village identity: keep both columns on the same desktop row. */
.visitor-body .history-layout{
    gap:0!important;
    align-items:flex-start;
}
.visitor-body .history-layout > [class*="col-"]{
    min-width:0;
}
.visitor-body .identity-panel{
    width:100%;
}
.visitor-body .identity-card-header{
    background:var(--tm-navy-deep)!important;
    color:#fff!important;
}
.visitor-body .identity-card-header *{
    color:#fff!important;
}
.visitor-body .history-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:8px;
    padding:11px 16px;
    border:1.5px solid rgba(232,117,26,.24);
    border-radius:999px;
    background:var(--tm-warm);
    color:var(--tm-orange-dark);
    font-family:var(--tm-display);
    font-size:.82rem;
    font-weight:800;
    transition:transform .2s ease,background .2s ease,color .2s ease;
}
.visitor-body .history-toggle:hover{
    transform:translateY(-1px);
    background:var(--tm-orange);
    color:#fff;
}
.visitor-body .history-toggle i{
    transition:transform .2s ease;
}
.visitor-body .history-toggle.is-open i{
    transform:rotate(180deg);
}
.visitor-body .history-more .history-body{
    padding-top:2px;
}

/* Every hierarchy card uses centered role/title text, not only the person's name. */
.visitor-body .official-chart-card,
.visitor-body .bps-chart-card,
.visitor-body .bps-tree-card{
    text-align:center!important;
}
.visitor-body .official-chart-card > *,
.visitor-body .bps-chart-card > *,
.visitor-body .bps-tree-card > *{
    margin-left:auto;
    margin-right:auto;
}
.visitor-body .official-chart-card h3,
.visitor-body .official-chart-card p,
.visitor-body .official-chart-card .official-chart-label,
.visitor-body .bps-chart-card h2,
.visitor-body .bps-chart-card h3,
.visitor-body .bps-chart-card p,
.visitor-body .bps-chart-card small,
.visitor-body .bps-chart-card .bps-chart-label,
.visitor-body .bps-tree-card h2,
.visitor-body .bps-tree-card h3,
.visitor-body .bps-tree-card p,
.visitor-body .bps-tree-card small{
    width:100%;
    text-align:center!important;
}

/* Long descriptive copy should read like prose, not ragged card labels. */
.visitor-body .history-article p,
.visitor-body .section-desc,
.visitor-body .official-public-card > p,
.visitor-body .product-card .small.text-secondary,
.visitor-body .product-card .product-subtitle,
.visitor-body .information-news-content > p,
.visitor-body .public-document-card > p,
.visitor-body .news-bps-body p,
.visitor-body .commerce-detail-description,
.visitor-body .map-info p,
.visitor-body .service-result-card > p,
.visitor-body .facility-summary-card p{
    text-align:justify!important;
    text-justify:inter-word;
    hyphens:auto;
}

@media(max-width:991.98px){
    .visitor-body .history-layout{row-gap:24px!important}
}


/* Force justify for long profile prose */
.visitor-body .tm-justify,
.visitor-body .tm-justify p,
.visitor-body #sejarah p,
.visitor-body #geografis .section-desc{
    text-align: justify !important;
    text-justify: inter-word !important;
}


/* Strong prose justification for detail pages */
.visitor-body .tm-prose-justify,
.visitor-body .news-bps-lead.tm-prose-justify,
.visitor-body .news-bps-body .tm-prose-justify,
.visitor-body .commerce-detail-description .tm-prose-justify{
    display:block;
    width:100%;
    margin-bottom:1.1rem;
    text-align:justify !important;
    text-justify:inter-word !important;
    line-height:1.9;
    hyphens:auto;
}
.visitor-body .commerce-detail-description .tm-prose-justify:last-child,
.visitor-body .news-bps-body .tm-prose-justify:last-child{
    margin-bottom:0;
}


/* Home hero clarity + remove old cached/watermark remnants */
.stats-card::before,
.stats-card::after,
.home-stats-scroll::before,
.home-stats-scroll::after,
.stats-strip::before,
.stats-strip::after,
.home-stats-watermark,
.stats-watermark{
    content:none !important;
    display:none !important;
}


/* Readability fixes requested by user */
.visitor-body .vision-statement{
    text-align:justify !important;
    text-justify:inter-word !important;
    line-height:1.45;
}
.visitor-body .news-bps-body,
.visitor-body .news-bps-lead{
    text-align:justify !important;
    text-justify:inter-word !important;
}


/* Remove large background TEGALMAJA watermark on home hero */
.home-hero-compact.hero::after{
    content:none !important;
    display:none !important;
}


/* ======================================================================
   2026-08-13 MOBILE NAVBAR FLEX FIX
   ====================================================================== */
@media (max-width: 1199.98px){
    .public-main-nav.site-navbar{
        min-height:72px;
        padding:8px 0;
    }
    .public-nav-container{
        display:flex;
        align-items:center;
        flex-wrap:wrap;
        row-gap:10px;
    }
    .public-nav-brand{
        flex:1 1 auto;
        min-width:0;
        margin-right:10px;
        align-items:center;
    }
    .public-nav-brand-copy{
        min-width:0;
    }
    .public-nav-brand-copy strong{
        display:block;
        max-width:100%;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
    .public-main-nav .navbar-toggler{
        display:inline-flex !important;
        align-items:center;
        justify-content:center;
        margin-left:auto;
        flex:0 0 46px;
        width:46px;
        height:46px;
        border-radius:15px;
        font-size:1.1rem;
        position:relative;
        z-index:3;
    }
    .public-main-nav .navbar-collapse{
        order:3;
        width:100%;
        flex-basis:100%;
        margin-top:6px;
    }
    .public-main-nav.site-navbar .navbar-collapse{
        padding:14px;
        border:1.5px solid var(--tm-line);
        border-radius:22px;
        background:rgba(255,255,255,.98);
        box-shadow:0 18px 40px rgba(15,45,67,.10);
        max-height:calc(100dvh - 96px);
        overflow:auto;
    }
    .public-main-nav.site-navbar .public-main-menu{
        width:100%;
    }
    .public-main-nav.site-navbar .navbar-nav{
        align-items:stretch !important;
    }
    .public-main-nav.site-navbar .nav-item{
        width:100%;
    }
    .public-main-nav.site-navbar .nav-link{
        width:100%;
        justify-content:space-between;
        min-height:46px;
        padding:12px 14px !important;
        font-size:.84rem;
        border-radius:14px;
    }
    .public-main-nav.site-navbar .dropdown-menu{
        position:static !important;
        float:none;
        min-width:100%;
        margin:4px 0 0 !important;
        padding:8px;
        border:1px solid var(--tm-line);
        border-radius:14px;
        box-shadow:none;
        background:var(--tm-mist);
    }
    .public-main-nav.site-navbar .dropdown-item{
        min-height:42px;
        white-space:normal;
        line-height:1.35;
    }
    .public-main-nav .public-nav-account{
        width:100%;
        display:flex;
        flex-wrap:wrap;
        gap:10px !important;
        margin:12px 0 0;
        padding-top:12px;
        border-top:1px solid var(--tm-line);
    }
    .public-main-nav .public-nav-account .btn{
        flex:1 1 calc(50% - 5px);
        min-height:44px;
        justify-content:center;
    }
}

@media (max-width: 767.98px){
    .public-main-nav.site-navbar{
        min-height:68px;
        padding:7px 0;
    }
    .public-nav-container{
        padding-inline:14px;
    }
    .public-nav-brand{
        gap:10px;
        margin-right:8px;
    }
    .public-nav-brand-logo{
        width:42px;
        height:42px;
        flex:0 0 42px;
        padding:5px;
    }
    .public-nav-brand-copy small{
        display:none;
    }
    .public-nav-brand-copy strong{
        font-size:.98rem;
        line-height:1.12;
        max-width:calc(100vw - 130px);
    }
    .public-main-nav .navbar-toggler{
        flex-basis:42px;
        width:42px;
        height:42px;
        border-radius:13px;
        font-size:1rem;
    }
    .public-main-nav.site-navbar .navbar-collapse{
        margin-top:8px;
        padding:12px;
        border-radius:18px;
    }
    .public-main-nav.site-navbar .nav-link{
        min-height:44px;
        padding:11px 12px !important;
        font-size:.82rem;
    }
    .public-main-nav .public-nav-account .btn{
        flex:1 1 100%;
        width:100%;
    }
}

@media (max-width: 575.98px){
    .public-nav-brand-copy strong{
        max-width:calc(100vw - 120px);
        font-size:.92rem;
    }
    .public-main-nav.site-navbar .navbar-collapse{
        border-radius:16px;
    }
}


/* ======================================================================
   MOBILE HAMBURGER ICON - ALWAYS VISIBLE
   ====================================================================== */
.public-mobile-menu-toggle{
    display:none;
}
.public-mobile-menu-icon{
    width:20px;
    height:16px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    align-items:stretch;
}
.public-mobile-menu-icon span{
    display:block;
    width:100%;
    height:2.5px;
    border-radius:999px;
    background:var(--tm-navy-deep);
    transition:transform .2s ease,opacity .2s ease;
}
@media(max-width:1199.98px){
    .public-main-nav .public-mobile-menu-toggle{
        display:inline-flex !important;
        align-items:center;
        justify-content:center;
        flex:0 0 44px;
        width:44px;
        height:44px;
        margin-left:auto;
        padding:0;
        border:1.5px solid var(--tm-line-dark);
        border-radius:14px;
        color:var(--tm-navy-deep);
        background:#fff;
        box-shadow:0 5px 14px rgba(15,45,67,.08);
        opacity:1 !important;
        visibility:visible !important;
    }
    .public-main-nav .public-mobile-menu-toggle:hover,
    .public-main-nav .public-mobile-menu-toggle:focus{
        border-color:rgba(15,45,67,.22);
        background:#fff8f1;
        box-shadow:0 6px 16px rgba(15,45,67,.10);
    }
    .public-main-nav .public-mobile-menu-toggle[aria-expanded="true"] .public-mobile-menu-icon span:nth-child(1){
        transform:translateY(6.75px) rotate(45deg);
    }
    .public-main-nav .public-mobile-menu-toggle[aria-expanded="true"] .public-mobile-menu-icon span:nth-child(2){
        opacity:0;
    }
    .public-main-nav .public-mobile-menu-toggle[aria-expanded="true"] .public-mobile-menu-icon span:nth-child(3){
        transform:translateY(-6.75px) rotate(-45deg);
    }
}
@media(max-width:575.98px){
    .public-main-nav .public-mobile-menu-toggle{
        flex-basis:42px;
        width:42px;
        height:42px;
        border-radius:13px;
    }
    .public-mobile-menu-icon{width:19px;height:15px}
}


/* Services page spacing compact */
.service-process-section{padding-bottom:26px !important;}
.service-search-section{padding-top:20px !important;}
@media (max-width: 767.98px){
    .service-process-section{padding-bottom:18px !important;}
    .service-search-section{padding-top:12px !important;}
}
