/*
Theme Name: Techory2026
Theme URI: https://www.techory.com
Author: Scott Fiddelke
Description: The Techory blog theme: dark header with a five-colour strip, IBM Plex type, a featured-post index, related posts, a filterable Archive page and styled comments. Classic PHP theme, no plugins required.
Version: 1.0.0
Requires at least: 6.0
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: techory2026
Tags: blog, two-columns, custom-menu, featured-images, threaded-comments, translation-ready, editor-style

Fonts: IBM Plex Sans (body, nav, meta), IBM Plex Serif (headings), Josefin Sans (tagline only).
Breakpoints: 960px (wide figures), 860px (hamburger menu), 700px (stacked logo, smaller titles), 560px (wide thumbnails), 520px (pager).
*/

/* ---------- Tokens ---------- */
:root {
	--techory-sky: #3CAEF8;
	--techory-blue: #18709B;
	--techory-green: #89A968;
	--techory-yellow: #E4DF91;
	--techory-blue-soft: #EAF6FD;
	--techory-green-soft: #E9F0E2;
	--techory-yellow-soft: #F7F5D9;
	--techory-text: #252B30;
	--techory-muted: #68747B;
	--techory-border: #E1E5E8;
	--strip-1: #3caef8;
	--strip-2: #18709B;
	--strip-3: #89A968;
	--strip-4: #E4DF91;
	--strip-5: #FFFFFF;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'IBM Plex Sans', sans-serif; color: var(--techory-text); background: #FFFFFF; -webkit-text-size-adjust: 100%; }
img { max-width: 100%; }
a { color: #18709B; text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible, select:focus-visible { outline: 2px solid var(--techory-blue); outline-offset: 3px; }
.serif { font-family: 'IBM Plex Serif', Georgia, serif; }
.title { font-family: 'IBM Plex Serif', Georgia, serif; font-weight: 600; color: #1F2428; }
.rule { border: 0; border-top: 1px solid var(--techory-border); margin: 0; }
.meta { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--techory-muted); }
.more { font-size: 15px; font-weight: 600; color: #18709B; }
.sr { position: absolute; left: -9999px; }
.crumbs { font-size: 13px; color: var(--techory-muted); margin-bottom: 20px; }
.tagline { font-family: 'Josefin Sans', sans-serif; font-size: 12px; line-height: 1.6; letter-spacing: 0.22em; text-transform: uppercase; color: #AEB8BF; }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'IBM Plex Sans', sans-serif; color: var(--techory-text); background: #FFFFFF; -webkit-text-size-adjust: 100%; }
img { max-width: 100%; height: auto; }
a { color: #18709B; text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, input:focus-visible, textarea:focus-visible, button:focus-visible, select:focus-visible { outline: 2px solid var(--techory-blue); outline-offset: 3px; }
.serif { font-family: 'IBM Plex Serif', Georgia, serif; }
.title { font-family: 'IBM Plex Serif', Georgia, serif; font-weight: 600; color: #1F2428; }
.title a { color: #1F2428; }
.title a:hover { color: #18709B; text-decoration: none; }
.rule { border: 0; border-top: 1px solid var(--techory-border); margin: 0; }
.meta { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--techory-muted); }
.meta a { color: inherit; }
.more { font-size: 15px; font-weight: 600; color: #18709B; }
.sr { position: absolute; left: -9999px; }
.sr-inline { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 100; background: #FFFFFF; padding: 8px 14px; border-radius: 4px; }
.skip-link:focus { left: 8px; }
.crumbs { font-size: 13px; color: var(--techory-muted); margin-bottom: 20px; }
.tagline { font-family: 'Josefin Sans', sans-serif; font-size: 12px; line-height: 1.6; letter-spacing: 0.22em; text-transform: uppercase; color: #AEB8BF; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-block; padding: 2px 10px; border: 1px solid #C3C8CC; border-radius: 999px; font-size: 12px; color: #4A5056; background: #FFFFFF; }
a.chip:hover { background: var(--techory-green-soft); border-color: var(--techory-green); text-decoration: none; }
.card { background: #FFFFFF; border: 1px solid var(--techory-border); padding: 22px 24px; }
.card h3, .card .widget-title { margin: 0 0 14px; font-family: 'IBM Plex Serif', Georgia, serif; font-size: 19px; font-weight: 600; color: #1F2428; }
.lnk, .card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.lnk-tight { gap: 4px; }
.card-foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--techory-border); font-size: 15px; font-weight: 600; }
.card-copy { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: #4A5056; }
.btn-row { display: flex; gap: 8px; flex-wrap: wrap; }
.btn-solid { background: #18709B; color: #FFFFFF; font-size: 14px; font-weight: 600; padding: 9px 18px; border-radius: 3px; }
.btn-solid:hover { background: #0E4F6E; color: #FFFFFF; text-decoration: none; }
.btn-outline { border: 1px solid #18709B; font-size: 14px; font-weight: 600; padding: 8px 18px; border-radius: 3px; background: #FFFFFF; }
.btn-outline:hover { background: var(--techory-blue-soft); text-decoration: none; }
.photo-grid { display: flex; flex-wrap: wrap; gap: 14px; }
.photo-grid img { display: block; width: 100px; height: 100px; object-fit: cover; border-radius: 3px; border: 1px solid rgba(20,30,40,0.14); transition: border-color .15s ease; }
.photo-grid a:hover img { border-color: #1E8FD6; }
.wp-block-search__inside-wrapper { display: flex; gap: 8px; }
.widget_search input[type="search"] { width: 100%; padding: 9px 12px; border: 1px solid #C3C8CC; border-radius: 4px; font: inherit; }
.widget_search button, .wp-block-search__button { background: #18709B; color: #FFFFFF; border: 0; border-radius: 4px; padding: 0 16px; font: inherit; font-weight: 600; cursor: pointer; }
.alignleft { float: left; margin: 6px 24px 16px 0; }
.alignright { float: right; margin: 6px 0 16px 24px; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }

/* ---------- Five-colour strip ---------- */
.strip { display: flex; height: 8px; }
.strip span { flex: 1; }
.strip span:nth-child(1) { background: var(--strip-1); }
.strip span:nth-child(2) { background: var(--strip-2); }
.strip span:nth-child(3) { background: var(--strip-3); }
.strip span:nth-child(4) { background: var(--strip-4); }
.strip span:nth-child(5) { background: var(--strip-5); }
.strip-bottom { height: 4px; }

/* ---------- Header ---------- */
.site-header { background: linear-gradient(#2A3238, #1E2429); }
.header-inner { max-width: 1100px; margin: 0 auto; padding: 16px 32px; display: flex; flex-wrap: wrap; gap: 12px 32px; justify-content: space-between; align-items: center; }
.lockup { display: flex; align-items: center; gap: 18px; }
.logo { display: block; }
.logo img { display: block; }
.lockup-extra { display: flex; align-items: center; gap: 18px; }
.lockup-extra svg { display: block; flex: 0 0 auto; }
.nav { display: flex; flex-wrap: wrap; gap: 26px; align-items: center; }
.nav a { color: #E4E8EB; font-weight: 500; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; padding: 6px 0; border-bottom: 2px solid transparent; }
.nav a:hover { text-decoration: none; border-bottom-color: #3caef8; }
.nav a[aria-current] { border-bottom-color: #3caef8; }
.search-toggle { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 0; border-radius: 4px; background: transparent; color: #E4E8EB; cursor: pointer; padding: 0; margin-left: -6px; }
.search-toggle:hover { background: rgba(255,255,255,0.08); }
.search-toggle:focus-visible, .hamburger:focus-visible { outline: 2px solid #3caef8; outline-offset: 2px; }
.hamburger { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,0.28); border-radius: 4px; background: transparent; color: #E4E8EB; cursor: pointer; padding: 0; }
.hamburger:hover { border-color: #3caef8; }
.i-close { display: none; }
[aria-expanded="true"] > .i-open { display: none; }
[aria-expanded="true"] > .i-close { display: inline-flex; }
.i-open { display: inline-flex; }
.search-panel { background: #181D21; border-top: 1px solid rgba(255,255,255,0.08); }
.search-panel[hidden], .mobile-nav[hidden] { display: none; }
.search-panel form { max-width: 1100px; margin: 0 auto; padding: 14px 32px; display: flex; gap: 10px; height: 72px; }
.dark-input { flex: 1; min-width: 0; padding: 11px 14px; border: 1px solid rgba(255,255,255,0.22); border-radius: 4px; background: #232A30; color: #FFFFFF; font-family: inherit; font-size: 16px; }
.dark-input::placeholder { color: #9AA5AD; }
.dark-input:focus-visible { outline: 2px solid #3caef8; outline-offset: 1px; }
.dark-btn { border: 0; border-radius: 4px; background: #18709B; color: #FFFFFF; padding: 0 20px; font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.dark-btn:hover { background: #1B82B3; }
.mobile-nav { background: #181D21; border-top: 1px solid rgba(255,255,255,0.08); }
.mobile-nav-inner { max-width: 1100px; margin: 0 auto; padding: 14px 32px 22px; display: flex; flex-direction: column; }
.mobile-search { display: flex; gap: 8px; padding-bottom: 6px; }
.mobile-search .dark-btn { height: 46px; }
.mlink { display: block; padding: 14px 0; color: #E4E8EB; font-weight: 500; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 1px solid rgba(255,255,255,0.08); }
.mlink:hover { color: #FFFFFF; text-decoration: none; }
.mlink[aria-current] { color: #FFFFFF; box-shadow: inset 3px 0 0 #3caef8; padding-left: 14px; }
@media (max-width: 860px) {
	.nav-desktop { display: none; }
	.hamburger { display: flex; }
	.search-panel { display: none !important; }
}
@media (min-width: 861px) {
	.mobile-nav { display: none !important; }
}
@media (max-width: 700px) {
	.header-inner { column-gap: 16px; }
	.lockup { flex-direction: column; align-items: flex-start; gap: 8px; }
	.lockup-extra svg { display: none; }
	.lockup-extra .tagline { font-size: 10px; letter-spacing: 0.12em; white-space: nowrap; }
	.lockup-extra .tagline br { display: none; }
}

/* ---------- Page frame ---------- */
.wrap { max-width: 1100px; margin: 0 auto; padding: 40px 32px 72px; }
.wrap-narrow { max-width: 900px; padding-top: 32px; }
.cols { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.col-main { flex: 1 1 560px; min-width: 0; }
.side { flex: 0 1 280px; min-width: 240px; display: flex; flex-direction: column; gap: 20px; }
.list-head { margin-bottom: 28px; }
.list-h1 { margin: 0 0 8px; font-size: 38px; font-weight: 600; color: #1F2428; line-height: 1.15; }
.list-sub { margin: 0 0 24px; font-size: 16px; color: #4A5056; }
.list-sub p { margin: 0; }
.content-search, .arch-search { position: relative; margin-bottom: 16px; max-width: 560px; }
.content-search input, .arch-search input { width: 100%; padding: 11px 14px 11px 42px; border: 1px solid #C3C8CC; border-radius: 4px; background: #FFFFFF; font-family: inherit; font-size: 16px; }
.content-search-icon { position: absolute; left: 14px; top: 13px; color: #6E8F4E; display: flex; }
.arch-search { max-width: none; }
@media (max-width: 860px) { .list-h1 { font-size: clamp(2rem, 4vw, 2.75rem); letter-spacing: -0.02em; } }

/* ---------- Post list (blog index) ---------- */
.post-list { display: flex; flex-direction: column; gap: 32px; }
.post-card { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.post-card.is-featured { gap: 28px; }
.pmedia-link { display: block; flex: 0 0 168px; }
.is-featured .pmedia-link { flex-basis: 296px; }
.pmedia { display: block; width: 168px; height: 128px; object-fit: cover; border-radius: 3px; border: 1px solid rgba(20,30,40,0.14); background: #EEF1F3; }
.is-featured .pmedia { width: 296px; height: 223px; }
.post-card-body { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.is-featured .post-card-body { gap: 12px; }
.post-card .title { margin: 0; font-size: 25px; line-height: 1.25; }
.post-card .title.t28 { font-size: 28px; line-height: 1.2; }
.excerpt { margin: 0; font-size: 16px; line-height: 1.65; color: #4A5056; }
.tile { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.tile-blue { background: #DCEBF5; }
.tile-dark { background: linear-gradient(#2A3238, #1E2429); }
.tile-strip { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; display: flex; }
.tile-strip i { flex: 1; }
.tile-strip i:nth-child(1) { background: var(--strip-1); } .tile-strip i:nth-child(2) { background: var(--strip-2); } .tile-strip i:nth-child(3) { background: var(--strip-3); } .tile-strip i:nth-child(4) { background: var(--strip-4); } .tile-strip i:nth-child(5) { background: var(--strip-5); }
.pager-row { margin-top: 40px; }
@media (max-width: 700px) { .post-card .title.t28 { font-size: 26.6px; } .post-card .title { font-size: 23.75px; } .post-card .title.t28 { font-size: 26.6px; } }
@media (max-width: 560px) {
	.pmedia-link, .is-featured .pmedia-link { flex: 0 0 100%; }
	.pmedia, .is-featured .pmedia { width: 100%; height: auto; aspect-ratio: 12 / 5; }
}

/* ---------- Pager ---------- */
.pager { display: inline-flex; max-width: 100%; border: 1px solid var(--techory-border); border-radius: 4px; overflow: hidden; background: #FFFFFF; font-size: 14px; font-weight: 600; line-height: 1; }
.pager > * { display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border-left: 1px solid var(--techory-border); color: #18709B; text-decoration: none; }
.pager > *:first-child { border-left: 0; }
.pager a:hover { background: var(--techory-blue-soft); color: #0E4F6E; text-decoration: none; box-shadow: inset 0 -3px 0 #3caef8; }
.pager a:focus-visible { outline-offset: -3px; }
.pager .cur { background: #18709B; color: #FFFFFF; box-shadow: inset 0 -3px 0 #3caef8; }
.pager .gap { color: var(--techory-muted); font-weight: 400; min-width: 36px; padding: 0 8px; }
.pager .next { padding: 0 18px; gap: 6px; }
@media (max-width: 520px) { .pager .hide-sm { display: none; } }

/* ---------- Single post ---------- */
.post-h1 { margin: 0 0 16px; font-size: 40px; line-height: 1.15; letter-spacing: -0.01em; }
@media (max-width: 860px) { .post-h1 { font-size: clamp(2rem, 4vw, 2.75rem); line-height: 1.15; letter-spacing: -0.02em; } }
.byline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 38px; font-size: 13px; color: var(--techory-muted); }
.byline a { color: var(--techory-muted); text-decoration: underline; text-decoration-color: #C3C8CC; text-underline-offset: 3px; }
.byline a:hover { color: #18709B; text-decoration-color: #3caef8; }
.dot { width: 3px; height: 3px; border-radius: 50%; background: #B5BBC1; }
.prose { font-size: 18px; line-height: 1.7; color: #2B2F33; display: flow-root; overflow-wrap: break-word; }
.prose p { margin: 0 0 20px; }
.prose a { text-decoration: underline; text-decoration-color: rgba(24,112,155,0.4); text-underline-offset: 3px; }
.prose a:hover { text-decoration-color: #18709B; }
.prose h2, .prose h3, .prose h4 { font-family: 'IBM Plex Serif', Georgia, serif; font-weight: 600; color: #1F2428; clear: both; }
.prose h2 { margin: 36px 0 14px; font-size: 28px; line-height: 1.2; letter-spacing: -0.005em; }
.prose h3 { margin: 30px 0 12px; font-size: 22px; line-height: 1.25; }
.prose h4 { margin: 24px 0 10px; font-size: 18px; }
.prose ul, .prose ol { margin: 0 0 20px; padding-left: 22px; }
.prose li { margin: 0 0 8px; }
.prose li > ul, .prose li > ol { margin: 8px 0 0; }
.prose blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--techory-sky); color: #4A5056; }
.prose pre { overflow-x: auto; padding: 16px 18px; background: #F6F8F9; border: 1px solid var(--techory-border); border-radius: 4px; font-size: 14px; line-height: 1.55; }
.prose code { font-size: 0.9em; background: #F1F4F6; padding: 1px 5px; border-radius: 3px; }
.prose pre code { background: none; padding: 0; }
.prose img { border-radius: 3px; border: 1px solid rgba(20,30,40,0.14); }
.prose figure, .prose .wp-caption { margin: 32px 0; max-width: 100%; }
.prose figure img, .prose .wp-caption img { display: block; width: 100%; height: auto; }
.prose figcaption, .prose .wp-caption-text { margin-top: 10px; font-size: 13px; line-height: 1.5; font-weight: 400; color: var(--techory-muted); text-align: center; }
.prose figure.alignright, .prose .wp-caption.alignright, .prose figure.alignleft, .prose .wp-caption.alignleft { width: 40%; min-width: 200px; max-width: 340px; margin-top: 6px; margin-bottom: 20px; }
.prose figure.alignright, .prose .wp-caption.alignright { float: right; margin-left: 28px; margin-right: 0; }
.prose figure.alignleft, .prose .wp-caption.alignleft { float: left; margin-right: 28px; margin-left: 0; }
.prose img.alignright, .prose img.alignleft { max-width: 40%; }
.prose .aligncenter { clear: both; }
.prose figure.aligncenter { margin-left: auto; margin-right: auto; }
@media (min-width: 960px) {
	.prose figure.alignwide, .prose figure.alignfull, .prose .wp-block-image.alignwide { margin-left: -32px; margin-right: -32px; max-width: none; width: auto; }
	.prose figure.alignwide figcaption, .prose figure.alignfull figcaption { padding: 0 32px; }
}
@media (max-width: 560px) {
	.prose figure.alignright, .prose figure.alignleft, .prose .wp-caption.alignright, .prose .wp-caption.alignleft, .prose img.alignright, .prose img.alignleft { float: none; width: 100%; max-width: 100%; margin: 24px 0; }
}
.prose .wp-block-embed, .prose iframe { max-width: 100%; }
.prose .wp-block-embed__wrapper { position: relative; }
/* "Note" callout: Group or Paragraph block, Styles > Note */
.article-note, .is-style-article-note { background: #FCFBED; border-left: 4px solid var(--techory-yellow); padding: 16px 20px; border-radius: 3px; margin: 32px 0 0; font-size: 16px; line-height: 1.6; color: var(--techory-text); }
.is-style-article-note > :last-child { margin-bottom: 0; }
.share-rule { margin-top: 32px; }
.share { padding: 24px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.share .meta { letter-spacing: 0.075em; }
.share-icons { display: flex; gap: 10px; }
.icon { position: relative; display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #C3C8CC; border-radius: 4px; background: #FFFFFF; color: #1F2428; transition: color .15s ease, border-color .15s ease, background-color .15s ease; }
.icon::after { content: ""; position: absolute; inset: -4px; }
.icon:hover, .icon:focus-visible, .icon.is-done { color: #1E8FD6; border-color: #1E8FD6; background: var(--techory-blue-soft); text-decoration: none; }
.related-rule { margin-top: 36px; }
.bar-h { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; font-size: 24px; line-height: 1.2; }
.bar-h::before { content: ""; flex: 0 0 auto; width: 4px; height: 26px; border-radius: 1px; background: var(--strip-3); }
.related { padding: 24px 0 0; }
.related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; }
a.rel { display: flex; flex-direction: column; color: #1F2428; }
a.rel:hover { text-decoration: none; }
a.rel:hover .rel-title { color: #18709B; }
.rel-img { display: block; background: #FFFFFF; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 25px; border: 1px solid rgba(20,30,40,0.14); border-radius: 3px; overflow: hidden; filter: saturate(0.85); }
.rel-fallback { background: #F6F8F9; display: flex; align-items: center; justify-content: center; filter: none; }
.rel-title { display: block; font-size: 16px; line-height: 1.3; font-weight: 600; margin-bottom: 12px; }
.rel-date { display: block; }

/* ---------- Comments ---------- */
.comments-rule { margin-top: 44px; }
.comments-area { margin-top: 34px; }
.comments-area .bar-h { margin-bottom: 14px; }
.comment-list, .comment-list ol.children { list-style: none; margin: 0; padding: 0; }
.comment-list li + li, .comment-list ol.children { margin-top: 12px; }
.comment-list ol.children { margin-left: 28px; }
.comment-card { display: flex; gap: 14px; padding: 16px 18px; background: #F6F8F9; border: 1px solid #E7E9EB; border-radius: 4px; }
.comment-avatar { flex: 0 0 38px; display: block; }
.comment-main { min-width: 0; flex: 1; }
.comment-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; }
.comment-author { font-size: 16px; color: #1F2428; }
.comment-author a { color: inherit; }
.comment-text { margin: 6px 0 8px; font-size: 16px; line-height: 1.6; color: #2B2F33; overflow-wrap: break-word; }
.comment-text p { margin: 0 0 10px; }
.comment-text p:last-child { margin-bottom: 0; }
.comment-reply a, .comment-reply-link { font-size: 14px; font-weight: 600; }
.comment-pending { margin: 4px 0 0; font-size: 14px; color: var(--techory-muted); }
.comment-respond { margin-top: 24px; }
.comment-reply-title { margin: 0 0 4px; font-size: 22px; line-height: 1.2; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.comment-reply-title small { font-size: 14px; font-weight: 500; font-family: 'IBM Plex Sans', sans-serif; }
.comment-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.comment-form > p { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.comment-form .comment-notes, .comment-form .comment-form-comment, .comment-form .comment-form-cookies-consent, .comment-form .form-submit, .comment-form .logged-in-as { grid-column: 1 / -1; }
.comment-notes, .logged-in-as { font-size: 13px; line-height: 1.5; color: var(--techory-muted); display: block !important; }
.comment-form label { font-size: 13px; font-weight: 500; color: #2B2F33; }
.comment-form .required { color: #B3402A; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: 10px 12px; border: 1px solid #C3C8CC; border-radius: 4px; background: #FFFFFF; font-family: inherit; font-size: 16px; line-height: 1.5; }
.comment-form textarea { resize: vertical; }
.comment-form-cookies-consent { flex-direction: row !important; align-items: center; gap: 8px !important; }
.comment-form-cookies-consent label { font-weight: 400; color: #4A5056; }
.comment-form .submit, .comment-btn { background: #18709B; color: #FFFFFF; border: 0; border-radius: 4px; padding: 10px 22px; font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.comment-form .submit:hover, .comment-btn:hover { background: #0E4F6E; }
.form-submit { align-items: flex-start; }
.comments-closed { font-size: 14px; color: var(--techory-muted); }
@media (max-width: 700px) { .comment-form { grid-template-columns: 1fr; } }

/* ---------- Archive page template ---------- */
.chips-filter .chip.is-active { background: #1F2428; border-color: #1F2428; color: #FFFFFF; }
.year-bar { display: none; }
.year-h { margin: 28px 0 4px; font-size: 22px; font-weight: 600; color: #1F2428; display: flex; align-items: center; gap: 12px; scroll-margin-top: 80px; }
.year-count { font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; font-weight: 400; color: var(--techory-muted); }
.year-line { flex: 1; border-top: 1px solid var(--techory-border); }
.arch-year { margin-top: 0; }
.arch-year[hidden], .arch-row[hidden] { display: none; }
.arch-row { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid #E7E9EB; }

.arch-thumb { width: 88px; height: 66px; flex: 0 0 88px; object-fit: cover; border-radius: 3px; border: 1px solid rgba(20,30,40,0.14); display: block; }
.arch-main { flex: 1 1 260px; min-width: 0; }
.arch-title { display: block; margin-top: 3px; font-size: 20px; font-weight: 500; line-height: 1.3; color: #1F2428; }
.arch-title:hover { color: #18709B; text-decoration: none; }
.arch-row .chips { flex: 0 1 auto; }
.arch-side { position: sticky; top: 24px; align-self: flex-start; }
.yr { display: flex; justify-content: space-between; padding: 7px 10px; border-radius: 3px; font-weight: 600; }
.yr span { font-weight: 400; color: var(--techory-muted); }
.yr:hover { background: var(--techory-blue-soft); text-decoration: none; }
@media (max-width: 860px) {
	.arch-side { position: static; order: -1; flex: 1 1 100%; }
	.arch-side .year-card, .arch-side .follow-card { display: none; }
	.year-bar { display: flex; gap: 8px; overflow-x: auto; position: sticky; top: 0; z-index: 5; background: #FFFFFF; padding: 10px 0; margin-top: 16px; border-bottom: 1px solid var(--techory-border); }
	.year-bar a { flex: 0 0 auto; padding: 8px 16px; border: 1px solid #C3C8CC; border-radius: 999px; font-weight: 600; font-size: 14px; color: #18709B; background: #FFFFFF; }
	.year-bar a:hover { background: var(--techory-blue-soft); border-color: #3caef8; text-decoration: none; }
}
@media (max-width: 860px) { .side { flex: 1 1 100%; } }

/* ---------- Footer widgets ---------- */
.footer-col .widget ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.45; }
.footer-col .widget li a { color: #D5DBE0; text-decoration: underline; text-decoration-color: rgba(213,219,224,0.4); text-underline-offset: 3px; }
.footer-col .widget li a:hover { color: #FFFFFF; text-decoration-color: #3caef8; }
.footer-col .widget-title { margin: 0 0 16px; font-size: 19px; font-weight: 600; color: #FFFFFF; }
.footer-col .widget + .widget { margin-top: 28px; }
.footer-col .rsswidget { color: #D5DBE0; }
.footer-col .rss-date, .footer-col cite { display: none; }
.footer-col .widget_rss ul { gap: 10px; }
.footer-col .wp-block-navigation__container, .footer-col .wp-block-latest-posts, .footer-col .wp-block-rss { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.footer-col .wp-block-navigation-item__content, .footer-col .wp-block-rss a { color: #D5DBE0; text-decoration: underline; text-decoration-color: rgba(213,219,224,0.4); text-underline-offset: 3px; }
.footer-col h2, .footer-col .wp-block-heading { margin: 0 0 16px; font-size: 19px; font-weight: 600; color: #FFFFFF; font-family: 'IBM Plex Serif', Georgia, serif; }
.footer-hint { font-size: 13px; color: #9AA5AD; margin: 0; }
/* ---------- Footer ---------- */
.site-footer { background: linear-gradient(#2A3238, #1E2429); color: #D5DBE0; }
.footer-main { max-width: 1100px; margin: 0 auto; padding: 44px 32px 40px; display: flex; flex-wrap: wrap; gap: 36px 64px; }
.footer-col { flex: 1 1 200px; min-width: 0; }
.footer-col-wide { flex: 2 1 320px; }
.footer-col h3 { margin: 0 0 16px; font-size: 19px; font-weight: 600; color: #FFFFFF; }
.flink { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.45; }
.flink-tight { gap: 10px; }
.flink a { color: #D5DBE0; text-decoration: underline; text-decoration-color: rgba(213,219,224,0.4); text-underline-offset: 3px; }
.flink a:hover { color: #FFFFFF; text-decoration-color: #3caef8; }
.fl2 { color: #D5DBE0; }
.fl2:hover { color: #FFFFFF; }
.footer-base { background: #181D21; border-top: 1px solid rgba(255,255,255,0.08); }
.footer-base-inner { max-width: 1100px; margin: 0 auto; padding: 18px 32px; display: flex; flex-wrap: wrap; gap: 12px 32px; justify-content: space-between; align-items: flex-start; font-size: 13px; line-height: 1.6; color: #AEB8BF; }
.footer-nav { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; }
.footer-nav .subscribe { display: inline-flex; gap: 6px; align-items: center; }
.footer-nav .subscribe svg { color: #3caef8; stroke-width: 3; }


/* WordPress core */
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.screen-reader-text:focus { position: static; width: auto; height: auto; clip: auto; }
.sticky .title a::after { content: ""; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.gallery-item { margin: 0; }
.arch-thumb.tile { display: flex; }

/* ---------- Page with sidebar / Contact + Formidable Forms ---------- */
.prose-page { font-size: 18px; }
.prose-page > p:first-child { color: #4A5056; }
.widget .textwidget p { margin: 0 0 10px; font-size: 15px; line-height: 1.6; }
.widget .textwidget p:last-child { margin-bottom: 0; }
.frm_forms { margin-top: 28px; font-size: 16px; }
.frm_forms .frm_form_fields > fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.frm_forms .frm_fields_container { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 16px; }
.frm_forms .frm_form_field { grid-column: 1 / -1; margin: 0 0 20px; }
.frm_forms .frm_form_field.frm_half, .frm_forms .frm_form_field.frm_sixth { grid-column: span 6; }
.frm_forms .frm_form_field.frm_third { grid-column: span 4; }
.frm_forms .frm_primary_label, .frm_forms label { display: block; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: #2B2F33; }
.frm_forms .frm_required { color: #B3402A; }
.frm_forms input[type="text"], .frm_forms input[type="email"], .frm_forms input[type="url"], .frm_forms input[type="tel"], .frm_forms input[type="number"], .frm_forms select, .frm_forms textarea { width: 100%; padding: 10px 12px; border: 1px solid #C3C8CC; border-radius: 4px; background: #FFFFFF; font-family: inherit; font-size: 16px; line-height: 1.5; color: #2B2F33; box-shadow: none; }
.frm_forms textarea { resize: vertical; min-height: 140px; }
.frm_forms input:focus, .frm_forms textarea:focus, .frm_forms select:focus { outline: 2px solid var(--techory-blue); outline-offset: 1px; border-color: var(--techory-blue); }
.frm_forms .frm_description, .frm_forms .frm_form_field .frm_description { margin-top: 4px; font-size: 13px; color: var(--techory-muted); }
.frm_forms .frm_error { margin-top: 4px; font-size: 13px; color: #B3402A; }
.frm_forms .frm_error_style { margin-bottom: 20px; padding: 12px 16px; border-left: 4px solid #B3402A; background: #FBEDEA; border-radius: 3px; font-size: 14px; color: #5A2118; }
.frm_forms .frm_message { margin-bottom: 20px; padding: 14px 18px; border-left: 4px solid var(--techory-green); background: var(--techory-green-soft); border-radius: 3px; }
.frm_forms .frm_has_error input, .frm_forms .frm_has_error textarea { border-color: #B3402A; }
.frm_forms .frm_submit { margin: 4px 0 0; text-align: right; }
.frm_forms .frm_button_submit, .frm_forms input[type="submit"], .frm_forms button[type="submit"] { background: #18709B; color: #FFFFFF; border: 0; border-radius: 4px; padding: 11px 26px; font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.frm_forms .frm_button_submit:hover, .frm_forms input[type="submit"]:hover, .frm_forms button[type="submit"]:hover { background: #0E4F6E; }
.frm_forms .g-recaptcha { margin: 4px 0 8px; }
@media (max-width: 560px) { .frm_forms .frm_form_field.frm_half, .frm_forms .frm_form_field.frm_third, .frm_forms .frm_form_field.frm_sixth { grid-column: 1 / -1; } }

/* ---------- Third-party widgets inside cards (Zenphoto, etc.) ---------- */
.card.widget img { max-width: 100%; height: auto; border-radius: 3px; border: 1px solid rgba(20,30,40,0.14); }
.card.widget a:hover img { border-color: #1E8FD6; }
.card.widget a img { display: block; transition: border-color .15s ease; }
.card.widget ul { padding: 0; margin: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.card.widget li { margin: 0; }
.card.widget p { margin: 0 0 10px; font-size: 15px; line-height: 1.6; color: #4A5056; }
.card.widget p:last-child { margin-bottom: 0; }
.card.widget .zenphoto_randompic, .card.widget [class*="zenphoto"], .card.widget [class*="zp-"] { max-width: 100%; }
.card.widget select, .card.widget input[type="text"], .card.widget input[type="search"] { max-width: 100%; padding: 8px 10px; border: 1px solid #C3C8CC; border-radius: 4px; font: inherit; }
.card.widget table { width: 100%; border-collapse: collapse; font-size: 14px; }
