/* Oz Digital theme: WordPress-specific adjustments on top of the design CSS. */

/* The design preview scrolled a container; the theme scrolls the page normally. */
.ozk-scroll { height: auto; overflow: visible; }
html { scroll-behavior: smooth; }
.ozk-header { top: 0; }
.admin-bar .ozk-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ozk-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ozk-header { top: 0; } }

/* Skip link */
.oz-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--oz-ink-900); color: #fff; padding: 10px 16px; border-radius: 8px; font-weight: 700; }
.oz-skip:focus { left: 8px; }

/* Mobile nav uses the hidden attribute when closed */
.ozk-mobilenav[hidden] { display: none !important; }

/* Contact panel states */
.ozk-sheet__done[hidden], .ozk-sheet__body[hidden], .ozk-sheet__error[hidden] { display: none !important; }
.ozk-sheet__error { margin: 16px 0 0; padding: 14px 16px; border-radius: 10px; background: var(--oz-amber-50); border: 2px solid var(--oz-amber-500); }
.ozk-sheet__error p { margin: 0; font-weight: 600; }
.ozk-form__fine a { color: inherit; text-decoration: underline; }

/* Spam trap, hidden from people */
.oz-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Blog: the featured post isn't repeated in the grid unless a category is picked */
.ozk-posts:not(.is-filtered) .ozk-post[data-featured] { display: none; }
.ozk-post[hidden], .ozk-proj[hidden] { display: none !important; }
.ozk-newsletter__done { margin: 0; font-size: 18px; }
.ozk-post__media--photo img { width: 100%; height: 100%; }
.ozk-feature-post__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ozk-art-figure img { height: auto; }

/* Article content written in the WordPress editor */
.oz-prose > * { max-width: 100%; }
.oz-prose > p, .oz-prose > ul > li, .oz-prose > ol > li { font-size: 17.5px; line-height: 1.75; color: var(--text-body); }
.oz-prose > p { margin: 0 0 20px; }
.oz-prose > p:first-child { font-size: 20px; line-height: 1.6; color: var(--text-heading); font-weight: 500; }
.oz-prose h2 { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-size: clamp(1.35rem, 1rem + 1vw, 1.75rem); line-height: 1.15; letter-spacing: -.01em; margin: 44px 0 16px; color: var(--text-heading); }
.oz-prose h3 { font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; margin: 32px 0 12px; color: var(--text-heading); }
.oz-prose a { color: var(--oz-amber-700); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.oz-prose a:hover { color: var(--oz-ink-900); }
.oz-prose > ul { list-style: none; padding: 0; margin: 0 0 24px; display: flex; flex-direction: column; gap: 12px; }
.oz-prose > ul > li { position: relative; padding-left: 30px; font-size: 17px; line-height: 1.6; }
.oz-prose > ul > li::before { content: ''; position: absolute; left: 0; top: 7px; width: 18px; height: 18px; background: var(--oz-amber-500); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat; }
.oz-prose > ol { padding-left: 22px; margin: 0 0 24px; }
.oz-prose img { max-width: 100%; height: auto; border-radius: var(--radius-lg); }
.oz-prose blockquote { margin: 28px 0; padding: 18px 24px; border-left: 4px solid var(--oz-amber-500); background: var(--oz-amber-50); border-radius: 0 12px 12px 0; }

/* FAQ in articles uses <details> so it works without JavaScript */
.ozk-art__faq details.ozk-faq__item { border-bottom: 1px solid var(--border-subtle); }
.ozk-art__faq details.ozk-faq__item:first-child { border-top: 1px solid var(--border-subtle); }
.ozk-art__faq summary.ozk-faq__q { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 0; cursor: pointer; font-family: var(--font-display); font-weight: 800; font-size: 17px; color: var(--text-heading); }
.ozk-art__faq summary.ozk-faq__q::-webkit-details-marker { display: none; }
.ozk-art__faq summary.ozk-faq__q::after { content: '+'; flex: none; font-size: 26px; line-height: 1; font-weight: 500; color: var(--oz-amber-700); transition: transform var(--dur-base) var(--ease-out); }
.ozk-art__faq details[open] summary.ozk-faq__q::after { transform: rotate(45deg); }
.ozk-art__faq details .ozk-faq__a { max-height: none; overflow: visible; }
.ozk-art__faq details .ozk-faq__a p { margin: 0; padding: 0 0 22px; color: var(--text-muted); font-size: 16px; line-height: 1.65; }

/* WordPress core classes */
.alignleft { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, .wp-element-caption { font-size: 13px; color: var(--text-muted); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.oz-pagination { margin-top: 32px; }
.oz-pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; }
.oz-pagination .page-numbers { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; border: 2px solid var(--oz-ink-900); border-radius: 999px; padding: 0 12px; font-weight: 800; color: var(--oz-ink-900); text-decoration: none; }
.oz-pagination .page-numbers.current, .oz-pagination .page-numbers:hover { background: var(--oz-ink-900); color: #fff; }
.oz-404-links { display: flex; flex-wrap: wrap; gap: 14px; }
