/* iLovePDF — custom styles layered on Tailwind CDN. Mobile-first. */
:root { --brand: #7c3aed; --brand-dark: #6d28d9; }
html { scroll-behavior: smooth; }
body { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }

.tool-card { transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.tool-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px -14px rgba(124,58,237,.35); border-color: #c4b5fd; }

.dropzone { border: 2px dashed #c4b5fd; transition: all .15s ease; cursor: pointer; }
.dropzone:hover, .dropzone.dragover { border-color: var(--brand); background: #f5f3ff; }

.btn-brand { background: var(--brand); color: #fff; font-weight: 600; border-radius: 9999px; padding: .8rem 2.2rem; transition: background .15s ease; }
.btn-brand:hover { background: var(--brand-dark); }
.btn-brand:disabled { opacity: .55; cursor: not-allowed; }

.file-chip { display: inline-flex; align-items: center; gap: .5rem; background: #f5f3ff; border: 1px solid #ddd6fe; border-radius: .75rem; padding: .45rem .8rem; font-size: .85rem; }

.progress-track { height: .6rem; background: #ede9fe; border-radius: 9999px; overflow: hidden; }
.progress-fill { height: 100%; background: linear-gradient(90deg, #8b5cf6, #6d28d9); width: 0%; transition: width .25s ease; }

.spinner { width: 1.1rem; height: 1.1rem; border: 2.5px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; display: inline-block; animation: spin .7s linear infinite; vertical-align: -2px; }
@keyframes spin { to { transform: rotate(360deg); } }

.faq-item summary { cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary .faq-icon { transition: transform .2s ease; }
.faq-item[open] summary .faq-icon { transform: rotate(45deg); }

.prose-ilp h2 { font-size: 1.35rem; font-weight: 800; color: #1e1b4b; margin: 1.8rem 0 .7rem; }
.prose-ilp h3 { font-size: 1.1rem; font-weight: 700; color: #312e81; margin: 1.3rem 0 .5rem; }
.prose-ilp p { margin: .7rem 0; line-height: 1.8; color: #334155; }
.prose-ilp ul, .prose-ilp ol { margin: .7rem 0 .7rem 1.4rem; line-height: 1.8; color: #334155; }
.prose-ilp ul { list-style: disc; } .prose-ilp ol { list-style: decimal; }
.prose-ilp strong { color: #1e1b4b; }
.prose-ilp a { color: var(--brand); text-decoration: underline; }

.page-thumb { width: 3.2rem; height: 4.2rem; background: #f5f3ff; border: 1px solid #ddd6fe; border-radius: .4rem; display: grid; place-items: center; font-size: .75rem; font-weight: 700; color: #7c3aed; flex: none; }

.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 100; background: #fff; padding: .5rem 1rem; border-radius: .5rem; }
