/* ===== NusaWebsite shared styles ===== */
body { font-family: 'Outfit', sans-serif; }
::selection { background: #EA580C; color: #fff; }

/* Guard: decorative absolute/blur elements must never cause horizontal scroll.
   overflow-x: clip prevents scroll without creating a scroll container (keeps position:sticky working). */
html, body { max-width: 100%; overflow-x: hidden; overflow-x: clip; }

.hero-grid-bg {
    background-image: linear-gradient(rgba(15,23,42,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(15,23,42,0.035) 1px, transparent 1px);
    background-size: 44px 44px;
}

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

details.faq > summary { list-style: none; }
details.faq > summary::-webkit-details-marker { display: none; }
details.faq[open] .faq-chev { transform: rotate(180deg); }

.marquee-track:hover { animation-play-state: paused; }

.logo-pill { filter: grayscale(1); opacity: .55; transition: all .3s ease; }
.logo-pill:hover { filter: grayscale(0); opacity: 1; }

.tab-btn { color: #64748B; }
.tab-btn.is-active { background: #fff; color: #EA580C; box-shadow: 0 4px 12px rgba(15,23,42,0.08); }

.filter-btn { color: #64748B; background: #fff; }
.filter-btn.is-active { background: #EA580C; color: #fff; border-color: #EA580C; }

/* active nav link */
.nw-nav a.is-active { color: #EA580C; }

/* ===== Article prose (single post + /artikel/ template) ===== */
.prose h2 { font-size: 1.75rem; font-weight: 800; letter-spacing: -0.01em; margin: 2.5rem 0 1rem; scroll-margin-top: 100px; }
.prose h3 { font-size: 1.3rem; font-weight: 700; margin: 2rem 0 .75rem; scroll-margin-top: 100px; }
.prose p { color: #334155; line-height: 1.8; margin-bottom: 1.25rem; font-size: 1.075rem; }
.prose ul, .prose ol { margin: 0 0 1.25rem 1.25rem; color: #334155; line-height: 1.8; }
.prose ul { list-style: disc; } .prose ol { list-style: decimal; }
.prose li { margin-bottom: .5rem; }
.prose a { color: #EA580C; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.prose strong { color: #0F172A; font-weight: 700; }

/* table of contents active state */
.toc a { color: #64748B; border-left: 2px solid transparent; }
.toc a.active { color: #EA580C; border-left-color: #EA580C; font-weight: 600; }

/* ===== Mobile nav menu: make it scrollable so long lists are reachable ===== */
#nwMobileMenu {
    max-height: calc(100vh - 72px);      /* fallback */
    max-height: calc(100dvh - 72px);     /* dynamic viewport (mobile URL bar aware) */
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* ===== Logged-in: push fixed header below the WP admin bar so nav stays full ===== */
.admin-bar header.fixed { top: 32px; }
.admin-bar #nwMobileMenu {
    max-height: calc(100vh - 72px - 32px);
    max-height: calc(100dvh - 72px - 32px);
}
@media screen and (max-width: 782px) {
    .admin-bar header.fixed { top: 46px; }
    .admin-bar #nwMobileMenu {
        max-height: calc(100vh - 72px - 46px);
        max-height: calc(100dvh - 72px - 46px);
    }
}

/* ===== JavaCoco TBD placeholder styling ===== */
.jc-tbd {
    background-color: #fefce8;
    color: #713f12;
    padding-left: 4px;
    padding-right: 4px;
    border-radius: 4px;
}

/* ===== Fluent Forms Custom Styling (JavaCoco Design System) ===== */

/* 1. Jarak antar field */
.fluentform .ff-el-group {
    margin-bottom: 14px !important;
}

/* 2. Label */
.fluentform .ff-el-input--label,
.fluentform label.ff-el-input--label {
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #12161A !important;
    margin-bottom: 6px !important;
    display: block !important;
}

/* 3. Tanda wajib (asterisk) */
.fluentform .ff-required,
.fluentform label.ff-el-input--label span.required,
.fluentform .ff-el-input--label::after {
    color: #C2621C !important;
}

/* 4. Input, select, textarea */
.fluentform .ff-el-form-control {
    width: 100% !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
    box-shadow: none !important;
    transition: none !important;
}

/* Input & Select height */
.fluentform input.ff-el-form-control,
.fluentform select.ff-el-form-control {
    height: 44px !important;
}

/* Textarea height */
.fluentform textarea.ff-el-form-control {
    height: auto !important;
    min-height: 120px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}

/* 5. Fokus */
.fluentform .ff-el-form-control:focus {
    border-color: #3D5A66 !important;
    outline: none !important;
    box-shadow: none !important;
    transition: none !important;
}

/* 6. Tombol kirim */
.fluentform .ff-btn-submit {
    background-color: #C2621C !important;
    color: #ffffff !important;
    font-weight: 600 !important;
    height: 44px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    border-radius: 4px !important;
    border: none !important;
    box-shadow: none !important;
    transition: none !important;
    transform: none !important;
    cursor: pointer !important;
}

.fluentform .ff-btn-submit:hover,
.fluentform .ff-btn-submit:focus,
.fluentform .ff-btn-submit:active {
    background-color: #9c4e15 !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transition: none !important;
    transform: none !important;
}

/* 7. Pesan galat */
.fluentform .ff-el-is-error {
    color: #991b1b !important;
    font-size: 12px !important;
    margin-top: 4px !important;
    font-family: 'IBM Plex Sans', sans-serif !important;
}
.fluentform .ff-el-is-error .error-text,
.fluentform .error,
.fluentform .text-danger {
    color: #991b1b !important;
    font-size: 12px !important;
}

/* 8. Pesan sukses */
.fluentform .ff-message-success,
.fluentform-success,
.ff-message-success {
    background-color: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    color: #334155 !important;
    padding: 12px 16px !important;
    border-radius: 4px !important;
    font-size: 14px !important;
    margin-top: 14px !important;
    margin-bottom: 14px !important;
    box-shadow: none !important;
    animation: none !important;
    transition: none !important;
}
