/* Gaya tambahan di luar utility Tailwind */

.toast { animation: toast-in .25s ease-out; transition: opacity .25s, transform .25s; }
.toast-hide { opacity: 0; transform: translateY(-6px); }
@keyframes toast-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

.spinner {
    display: inline-block; width: 1em; height: 1em; border-radius: 9999px;
    border: 2px solid currentColor; border-right-color: transparent;
    animation: spin .7s linear infinite; vertical-align: -0.15em;
}
@keyframes spin { to { transform: rotate(360deg); } }

.hero-pattern {
    background-image:
        radial-gradient(circle at 15% 20%, rgba(212, 83, 111, .14), transparent 40%),
        radial-gradient(circle at 85% 10%, rgba(207, 169, 75, .18), transparent 35%),
        radial-gradient(circle at 70% 90%, rgba(160, 42, 72, .10), transparent 40%);
}

[data-tab][aria-selected="true"] { color: #862641; border-color: #862641; }

details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
details[open] .faq-chevron { transform: rotate(180deg); }

input[type=number].no-spin::-webkit-inner-spin-button,
input[type=number].no-spin::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number].no-spin { -moz-appearance: textfield; }

/* Tipografi halaman informasi & kebijakan */
.legal { color: #475569; line-height: 1.8; font-size: 15px; }
.legal h2 { margin: 2.25rem 0 .75rem; font-family: "Playfair Display", Georgia, serif; font-size: 1.4rem; font-weight: 600; color: #0f172a; scroll-margin-top: 6rem; }
.legal h2:first-child { margin-top: 0; }
.legal h3 { margin: 1.5rem 0 .5rem; font-size: 1rem; font-weight: 600; color: #0f172a; }
.legal p { margin: .75rem 0; }
.legal ul, .legal ol { margin: .75rem 0; padding-left: 1.4rem; }
.legal ul { list-style: disc; }
.legal ol { list-style: decimal; }
.legal li { margin: .35rem 0; }
.legal a { color: #a02a48; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.legal strong { color: #0f172a; }
.legal table { width: 100%; margin: 1rem 0; border-collapse: collapse; font-size: 14px; }
.legal th, .legal td { border: 1px solid #e2e8f0; padding: .6rem .8rem; text-align: left; vertical-align: top; }
.legal th { background: #f8fafc; color: #0f172a; font-weight: 600; }
.legal .note { margin: 1.25rem 0; padding: 1rem 1.1rem; border-radius: .9rem; background: #fdf4f5; border: 1px solid #f6d0d7; color: #72233c; }
.legal .toc { margin: 0 0 2rem; padding: 1rem 1.25rem; border-radius: 1rem; background: #f8fafc; border: 1px solid #e2e8f0; }
.legal .toc ol { margin: .5rem 0 0; columns: 2; column-gap: 2rem; }
.legal .toc a { text-decoration: none; color: #334155; }
.legal .toc a:hover { color: #a02a48; }
@media (max-width: 640px) { .legal .toc ol { columns: 1; } }
.legal .not-prose a { color: inherit; font-weight: inherit; text-decoration: none; }
.legal .not-prose p { margin: 0; }

@media print {
    body { background: #fff !important; }
    .print\:hidden, header, footer, aside, [data-toast-container] { display: none !important; }
    .lg\:pl-64 { padding-left: 0 !important; }
    .shadow-soft, .shadow-lg, .shadow-xl { box-shadow: none !important; }
}
