html { scroll-behavior: smooth; }
body {
    word-break: keep-all;
    overflow-wrap: break-word;
}
.prose-p {
    max-width: 68ch;
}

/* Hero slider */
.hero-slide { opacity: 0; transition: opacity 1s ease; position: absolute; inset: 0; }
.hero-slide.active { opacity: 1; }
.hero-caption-shadow { text-shadow: 0 2px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.4); }

/* Lightbox */
.lightbox-overlay {
    position: fixed; inset: 0; background: rgba(28,20,14,.92);
    display: none; align-items: center; justify-content: center; z-index: 100; padding: 24px;
}
.lightbox-overlay.active { display: flex; }
.lightbox-close { position: absolute; top: 20px; right: 24px; color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; }
.lightbox-case { max-width: 960px; width: 100%; }
.lightbox-case-imgs { display: flex; gap: 12px; }
.lightbox-case-imgs figure { position: relative; flex: 1 1 0; margin: 0; }
.lightbox-case-imgs img { width: 100%; max-height: 70vh; object-fit: contain; display: block; }
.lightbox-case-tag { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.6); color: #fff; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 6px; }
.lightbox-caption { color: #fff; text-align: center; margin-top: 14px; font-size: 14px; line-height: 1.6; }
@media (max-width: 640px) { .lightbox-case-imgs { flex-direction: column; } }

/* FAQ accordion */
.faq-item[open] > summary .faq-plus { transform: rotate(45deg); }
.faq-item summary { list-style: none; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-plus { transition: transform .2s ease; display: inline-block; }
