/*
Theme Name: James Photography
Theme URI: https://blog.jamesphotography.com.au
Author: Local WordPress Replica
Author URI: https://blog.jamesphotography.com.au
Description: Native WordPress conversion of the public James Photography Hashnode blog. Includes magazine home, article layouts, tags, archives, Markdown, search, dark mode and responsive interactions.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: james
*/

[data-james-search][hidden],
[data-james-mobile][hidden],
[data-james-load-more][hidden],
[data-james-image-zoom][hidden] { display: none !important; }

.james-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 12vh 1rem 2rem; }
.james-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.48); backdrop-filter: blur(4px); }
.james-search-panel { position: relative; width: min(40rem,100%); max-height: 72vh; overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--background); color: var(--foreground); box-shadow: 0 24px 80px rgba(0,0,0,.25); }
.james-search-head { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.125rem; border-bottom: 1px solid var(--border); }
.james-search-input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--foreground); font: inherit; }
.james-search-input::placeholder { color: var(--muted-foreground); }
.james-search-results { max-height: calc(72vh - 4.5rem); overflow-y: auto; padding: .5rem; }
.james-search-option { display: flex; width: 100%; flex-direction: column; gap: .25rem; border-radius: .65rem; padding: .75rem .875rem; color: var(--foreground); text-align: left; }
.james-search-option:hover,.james-search-option[aria-selected="true"] { background: var(--muted); }
.james-search-empty { padding: 2rem 1rem; color: var(--muted-foreground); text-align: center; }
.james-kbd { border: 1px solid var(--border); border-radius: .35rem; padding: .1rem .35rem; color: var(--muted-foreground); font-size: .75rem; }
.james-theme-wrap { position: relative; }
.james-theme-menu { position: absolute; top: calc(100% + .5rem); right: 0; z-index: 70; width: 9rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--background); padding: .3rem; box-shadow: 0 12px 35px rgba(0,0,0,.16); }
.james-theme-menu[hidden] { display: none; }
.james-theme-choice { display: flex; width: 100%; align-items: center; justify-content: space-between; border-radius: .5rem; padding: .55rem .7rem; color: var(--foreground); font-size: .875rem; }
.james-theme-choice:hover,.james-theme-choice[aria-checked="true"] { background: var(--muted); }
.james-mobile-modal { align-items: stretch; justify-content: flex-end; padding: 0; }
.james-mobile-panel { position: relative; top: 0; right: 0; bottom: 0; width: min(22rem,88vw); overflow-y: auto; background: var(--background); padding: 1.25rem; color: var(--foreground); box-shadow: -15px 0 50px rgba(0,0,0,.18); }
.james-mobile-nav { display: flex; flex-direction: column; gap: .35rem; margin-top: 2rem; }
.james-mobile-nav a,.james-mobile-nav button { display: flex; align-items: center; border-radius: .65rem; padding: .8rem .9rem; color: var(--foreground); }
.james-mobile-nav a:hover,.james-mobile-nav button:hover { background: var(--muted); }
.james-modal-open { overflow: hidden; }
.james-image-zoom { position: fixed; inset: 0; z-index: 120; display: flex; cursor: zoom-out; align-items: center; justify-content: center; background: rgba(0,0,0,.92); padding: 2rem; }
.james-image-zoom img { max-width: 100%; max-height: 100%; object-fit: contain; }
.prose-reading img { cursor: zoom-in; }
.james-copy-feedback { position: fixed; bottom: 1.5rem; left: 50%; z-index: 130; transform: translateX(-50%); border-radius: 999px; background: var(--foreground); color: var(--background); padding: .55rem 1rem; font-size: .875rem; }
.james-comment-form { display: grid; gap: 1rem; }
.james-comment-form input,.james-comment-form textarea { width: 100%; border: 1px solid var(--border); border-radius: .65rem; background: var(--background); color: var(--foreground); padding: .7rem .85rem; }
.james-comment-form label { display: grid; gap: .4rem; color: var(--muted-foreground); font-size: .875rem; }
.james-comment-form .submit { width: auto; cursor: pointer; border-radius: 999px; border: 1px solid var(--border); padding: .65rem 1.2rem; background: var(--primary); color: var(--primary-foreground); }
.james-offline { padding: 1rem; color: var(--muted-foreground); text-align: center; }
@media (max-width: 640px) { .james-modal { padding-top: 7vh; } .james-search-panel { max-height: 80vh; } .james-image-zoom { padding: .5rem; } }
@media (prefers-reduced-motion: reduce) { .james-modal,.james-modal-backdrop { transition: none !important; } }
