/*
Theme Name: Jakub Mirowski — EasyFolio
Author: BootstrapMade (source design), custom WordPress adaptation
Description: Private WordPress theme based on the supplied EasyFolio Pro template. Includes dynamic pages and article templates without demo content.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: jakubmirowski
License: Private use under the supplied EasyFolio Pro license
License URI: https://bootstrapmade.com/license/
*/

body { min-height: 100svh; display: flex; flex-direction: column; }
.main { flex: 1; }
.jm-empty { min-height: calc(100svh - 240px); }
.header .logo .sitename { font-family: var(--heading-font); font-size: 24px; font-weight: 500; margin: 0; color: var(--heading-color); }
.custom-logo-link img { width: auto; max-height: 42px; }
.header-container { min-height: 60px; }
.jm-skip-link { position: fixed; top: -100px; left: 16px; padding: 12px 20px; z-index: 10000; background: var(--heading-color); color: #fff; border-radius: 8px; }
.jm-skip-link:focus { top: 16px; color: #fff; }
body.admin-bar .header.sticky-top { top: 32px; }
.navmenu .current-menu-item > a, .navmenu .current-menu-ancestor > a { color: var(--accent-color); }
button.mobile-nav-toggle { border: 0; background: transparent; padding: 8px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--accent-color); outline-offset: 4px; }
.jm-page { padding: 60px 0 80px; }
.jm-article { max-width: 780px; margin: 0 auto; }
.jm-title { font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.18; overflow-wrap: anywhere; }
.jm-meta { color: #5b6470; font-size: .92rem; display: flex; gap: 16px; flex-wrap: wrap; margin: 20px 0 32px; }
.jm-cover { width: 100%; height: auto; border-radius: 24px; margin: 0 0 32px; }
.jm-content { font-size: 1.1rem; line-height: 1.85; overflow-wrap: anywhere; }
.jm-content > * { margin-bottom: 1.4rem; }
.jm-content h2, .jm-content h3 { margin-top: 2.5rem; line-height: 1.35; }
.jm-content a, .comment-content a { text-decoration: underline; text-underline-offset: .2em; }
.jm-content img, .jm-content video, .jm-content iframe { max-width: 100%; }
.jm-content img { height: auto; }
.jm-content blockquote { padding: 16px 24px; border-left: 4px solid var(--accent-color); background: var(--background-color); }
.jm-content pre { overflow: auto; padding: 20px; background: #f5f5f5; border-radius: 12px; }
.jm-content table { width: 100%; }
.jm-content th, .jm-content td { border: 1px solid #e1e5e9; padding: 10px; }
.jm-content .alignwide { max-width: 100%; }
.jm-content .alignleft { float: left; margin-right: 24px; }
.jm-content .alignright { float: right; margin-left: 24px; }
.jm-content::after { content: ''; display: block; clear: both; }
.jm-card { height: 100%; border: 1px solid #e8e9ec; border-radius: 24px; overflow: hidden; background: var(--surface-color); transition: box-shadow .2s; }
.jm-card:hover { box-shadow: 0 12px 30px rgba(15, 41, 67, .08); }
.jm-card-image { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; }
.jm-card-body { padding: 28px; }
.jm-card h2 { font-size: 1.65rem; line-height: 1.3; }
.jm-card h2 a { color: var(--heading-color); }
.jm-card .jm-meta { margin: 12px 0 20px; }
.jm-excerpt { line-height: 1.7; }
.jm-read-more { display: inline-flex; gap: 8px; align-items: center; margin-top: 12px; }
.pagination .nav-links { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 16px; border-radius: 22px; background: #f6f5f7; }
.pagination .current { color: #fff; background: var(--accent-color); }
.jm-navigation { margin-top: 48px; padding-top: 24px; border-top: 1px solid #e8e9ec; }
.jm-navigation .nav-links { display: flex; justify-content: space-between; gap: 20px; }
.jm-search-form { display: flex; gap: 12px; margin: 24px 0; }
.jm-search-form input { min-width: 0; flex: 1; border: 1px solid #d4d9df; padding: 12px 18px; border-radius: 24px; }
.jm-search-form button, input[type=submit], .wp-block-button__link { border: 0; padding: 12px 24px; background: var(--accent-color); color: var(--contrast-color); border-radius: 24px; }
.jm-comments { margin-top: 48px; }
.jm-comments input:not([type=checkbox]):not([type=submit]), .jm-comments textarea { width: 100%; border: 1px solid #d4d9df; border-radius: 12px; padding: 12px; }
.jm-comments label { display: block; margin-bottom: 8px; }
.jm-comments ol { padding-left: 20px; }
.jm-comments .comment-body { padding: 20px 0; }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.footer { padding: 30px 0; }
@media (max-width: 782px) { body.admin-bar .header.sticky-top { top: 46px; } }
@media (max-width: 600px) {
  body.admin-bar .header.sticky-top { top: 0; }
  .header .logo .sitename { font-size: 21px; }
  .jm-page { padding: 40px 0 60px; }
  .jm-card-body { padding: 22px; }
  .jm-search-form { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
