/* WordPress content, accessible fallbacks and responsive navigation. */
.reveal { opacity: 1; transform: none; }
.skip-link { position:absolute; left:-10000px; z-index:1000; }
.skip-link:focus { position:fixed; left:16px; top:16px; background:#fff; color:#0a4247; padding:16px; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body { min-height:100vh; display:flex; flex-direction:column; }
main { flex:1; }
body.admin-bar .site-header { top:32px; }
.reading-width { max-width:850px; }
.entry-content { line-height:1.85; overflow-wrap:anywhere; }
.entry-content > * { margin-block:1.25rem; }
.entry-content h2 { margin-top:2.5rem; }
.entry-content ul,.entry-content ol { padding-inline-start:1.5rem; }
.entry-content a,.post-card h2 a,.footer a,.author-bio a { text-underline-offset:4px; }
.entry-content a { text-decoration:underline; }
.entry-content img,.post-card img,.reading-width img { max-width:100%; height:auto; border-radius:12px; }
.entry-content iframe { max-width:100%; }
.post-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.post-card h2 { font-size:1.5rem; margin-block:1rem; }
.blog-grid { margin-block:2rem; }
.pagination,.post-navigation { margin-top:2rem; }
.nav-links { flex-wrap:wrap; }
.nav-links a { white-space:nowrap; }
.search-form { display:flex; flex-wrap:wrap; gap:12px; margin-block:1.5rem; }
.search-form input { padding:12px; border:1px solid #bbc8c8; border-radius:8px; max-width:100%; }
.search-submit { background:#0e5c63; color:#fff; cursor:pointer; }
.faq-item summary { cursor:pointer; padding:22px 0; font-weight:600; }
.faq-item > p { padding:0 0 22px; line-height:1.7; }
.modal { overflow-y:auto; padding-block:24px; }
.modal-card { max-height:calc(100dvh - 48px); overflow-y:auto; }
:focus-visible { outline:3px solid #b38140; outline-offset:4px; }
@media (max-width:900px) {
  .nav { flex-wrap:wrap; gap:12px; height:auto; min-height:68px; padding-block:12px; }
  .nav-links { display:flex; order:3; width:100%; justify-content:center; gap:16px; font-size:.875rem; }
  .nav-cta { margin-left:auto; }
}
@media (max-width:782px) { body.admin-bar .site-header { top:46px; } }
@media (max-width:480px) { .nav .brand { font-size:1rem; } .nav-cta .btn { padding:10px; font-size:.8rem; } .footer-grid { gap:20px; } }
@media (max-width:600px) { body.admin-bar .site-header { top:0; } }
.nav-links,.footer-links ul { list-style:none; padding:0; margin:0; }
@media (max-width:900px) { .nav > nav { order:3; width:100%; } }
