/*
Theme Name:   	terra nostra, portfolio
Version:      	2.0
Description:	theme for terranostra with light/dark themes
Author:      	Prisca Schmarsow, aka humanum | terranostra.life
Author URI:   	terranostra.life
*/
/* typesetting  */
:root {
  /* Step -2: 11.52px → 12.80px */
  --step--2: clamp(0.72em, calc(0.69em + 0.15vw), 0.80em);
  /* Step -1: 14.40px → 16.00px */
  --step--1: clamp(0.90em, calc(0.86em + 0.18vw), 1.00em);
  /* Step 0: 18.00px → 20.00px */
  --step-0: clamp(1.13em, calc(1.08em + 0.23vw), 1.25em);
  /* Step 1: 22.50px → 25.00px */
  --step-1: clamp(1.41em, calc(1.35em + 0.28vw), 1.56em);
  /* Step 2: 28.13px → 31.25px */
  --step-2: clamp(1.76em, calc(1.69em + 0.35vw), 1.95em);
  /* Step 3: 35.16px → 39.06px */
  --step-3: clamp(2.20em, calc(2.11em + 0.44vw), 2.44em);
  /* Step 4: 43.95px → 48.83px */
  --step-4: clamp(2.75em, calc(2.64em + 0.55vw), 3.05em);
  /* Step 5: 54.93px → 61.04px */
  --step-5: clamp(3.43em, calc(3.29em + 0.69vw), 3.82em);
}
/*	============================================================
	colour tokens : light (default)
	============================================================ */
:root, [data-theme="light"] {
	/* backgrounds */
	--color-bg: #fff;
	--color-bg-subtle: #fafafa;
	--color-bg-muted: #f8f9fa;
	--color-bg-caption: #f9f9f9;

	/* text */
	--color-text: #244345;
	--color-text-strong: #333;
	--color-text-muted: #666;
	--color-text-secondary: #6c757d;
	--color-text-soft: #555;
	--color-text-quote: #676d73;
	--color-text-pullquote: #2f1366;
	--color-text-emphasis: #000;

	/* links (previously referenced but never defined) */
	--core-color-slate-dark: #244345;
	--core-color-slate-light: #5dbdc1;
	--text-tertiary: #6c757d;

	/* borders */
	--color-border: #ccc;
	--color-border-subtle: #eee;
	--color-border-faint: #f1f1f1;
	--color-border-medium: #ddd;
	--color-border-strong: #999;
	--color-border-soft: #7d8f8f;
	--color-border-dashed: #dee2e6;
	--color-border-caption: #d4d4d4;
	--color-border-accent: #3b0cae;

	/* accents */
	--color-accent: #f25e0e;
	--color-accent-alt: #d77524;
	--color-link-hover: #007cba;
	--color-icon-bg: #58595c;
}
/*	============================================================
	colour tokens : dark
	============================================================ */
[data-theme="dark"] {
	/* backgrounds */
	--color-bg: #16282a;
	--color-bg-subtle: #1f3436;
	--color-bg-muted: #24393b;
	--color-bg-caption: #1c2f31;

	/* text */
	--color-text: #e7ecec;
	--color-text-strong: #f5f7f7;
	--color-text-muted: #a9b8b8;
	--color-text-secondary: #93a3a3;
	--color-text-soft: #8a9999;
	--color-text-quote: #9fb0b0;
	--color-text-pullquote: #c9b8f0;
	--color-text-emphasis: #fff;

	/* links */
	--core-color-slate-dark: #7fd8de;
	--core-color-slate-light: #a3e8ec;
	--text-tertiary: #93a3a3;

	/* borders */
	--color-border: #3a4f50;
	--color-border-subtle: #2a3d3e;
	--color-border-faint: #2f4243;
	--color-border-medium: #445859;
	--color-border-strong: #5c7071;
	--color-border-soft: #6e8384;
	--color-border-dashed: #4a5f60;
	--color-border-caption: #405455;
	--color-border-accent: #8f7ee0;

	/* accents (orange already reads well on dark, unchanged) */
	--color-accent: #f25e0e;
	--color-accent-alt: #d77524;
	--color-link-hover: #4db8e8;
	--color-icon-bg: #7a8f90;
}
/* apply dark tokens by OS preference, before any explicit user choice */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) {
		--color-bg: #16282a;
		--color-bg-subtle: #1f3436;
		--color-bg-muted: #24393b;
		--color-bg-caption: #1c2f31;
		--color-text: #e7ecec;
		--color-text-strong: #f5f7f7;
		--color-text-muted: #a9b8b8;
		--color-text-secondary: #93a3a3;
		--color-text-soft: #8a9999;
		--color-text-quote: #9fb0b0;
		--color-text-pullquote: #c9b8f0;
		--color-text-emphasis: #fff;
		--core-color-slate-dark: #7fd8de;
		--core-color-slate-light: #a3e8ec;
		--text-tertiary: #93a3a3;
		--color-border: #3a4f50;
		--color-border-subtle: #2a3d3e;
		--color-border-faint: #2f4243;
		--color-border-medium: #445859;
		--color-border-strong: #5c7071;
		--color-border-soft: #6e8384;
		--color-border-dashed: #4a5f60;
		--color-border-caption: #405455;
		--color-border-accent: #8f7ee0;
		--color-accent: #f25e0e;
		--color-accent-alt: #d77524;
		--color-link-hover: #4db8e8;
		--color-icon-bg: #7a8f90;
	}
}
/*	============================================================
	spacing tokens
	============================================================ */
:root {
	--space-2xs: 6px;
	--space-xs: 12px;
	--space-sm: 1em;
	--space-md: 24px;
	--space-lg: 2em;
	--space-xl: 3em;
	--space-2xl: 4em;
	--space-gutter: 6vw;
}
/* --- RESET - Eric Meyer's Reset Reloaded - thanks, Eric :) --- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
address, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main {
	display: block;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

/* --- STRUCTURE --- */
* {
   -moz-box-sizing: border-box;
   box-sizing: border-box;
}
html {
   font-size: 100%;
   background: var(--color-bg);
   margin: 0;
}
body {
	background: var(--color-bg);
	min-height: 100vh;
	font-family: 'Yaldevi', Helvetica, Verdana, system-ui, sans-serif;
	font-size: var(--step--1);
	color: var(--color-text);
	text-rendering: optimizeSpeed;
	line-height: 1.36;
	margin: 0;
}
/*	============================================================
	visually hidden
	============================================================ */
/* hides an element visually while keeping it in the DOM and
   accessibility tree — screen readers and keyboard users still
   reach it. Preferred over display:none / position+opacity for
   anything that isn't its own self-contained hide/reveal control,
   since clipping to 1px is far less likely to intercept clicks or
   overlap other content than an unconstrained absolute box */
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
/*	============================================================
	skip link
	============================================================ */
/* starts .visually-hidden; on focus, the clip/size are undone to reveal it */
.skip-link {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 9999;
	padding: .75em 1.5em;
	background: var(--color-bg);
	color: var(--color-text);
	border: 1px solid var(--color-border);
	font-weight: 600;
	text-decoration: none;
}
.skip-link:focus, .skip-link:focus-visible {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	overflow: visible;
	white-space: normal;
	outline: 1px solid var(--color-accent);
}
main {
	min-height: 93vh;
	padding: var(--space-gutter) 0;
}
main .wrap  {
	max-width: 56em;
	margin: 0 var(--space-gutter);
}
/*footer .wrap {
	max-width: 56em;
	margin: 0 6vw;
}*/
.page-head .wrap {
	padding-bottom: 0;
}
header .wrap {
	width: 100%;
	max-width: 100%;
}

#content:after {
	content: "";
	display: table;
	table-layout: fixed;
	clear: both;
}
hr {
	display: none;
}
hr + p {
	border-top: 1px dashed var(--color-text-muted);
	padding-top: 1em;
	margin-top: 6em;
}

/* breadcrumbs (via YoastSEO) */
/*#breadcrumbs {
	display: block;
	padding: 1ch 0 0 6vw;
	margin: 0 0 2ch 0;
	font-size: .8em;
	border-bottom: 1px dashed rgba(255,255,255,.3);
}
#breadcrumbs a {
	text-decoration: none;
}
#breadcrumbs + div {
	margin-top: 10ch;
}*/

/* --- typography --- */

h1, h2, h3, h4, h5, h6, caption, figcaption {
	text-wrap: balance;
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
}

h1, h2, h3, h4, h5, h6 {
	line-height: 1.25;
	color: var(--color-text-emphasis);
}
.home.wp-singular main h1 {
	font-size: var(--step-4);
	font-weight: 200;
	line-height: 1;
	color: var(--color-text-muted);
	position: relative;
	border-bottom: 2px solid var(--color-text-muted);
	margin: 0 0 4vw 0;
}
main h1 {
	font-size: var(--step-4);
	font-weight: 200;
	line-height: 1;
	color: var(--color-text-muted);
	position: relative;
	border-bottom: 2px solid var(--color-text-muted);
	margin: 0 0 .5ch 0;
}
.category-description p {
		font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: var(--step-0);
	margin: 0 0 3ch 0;
}

main h2 + p, main h3 + p {
	margin-top: .5em;
}


.wp-singular h1 a:link {
	text-decoration: none;
}
.wp-singular h2 {
	margin: 0;
	border: 0;
	font-size: 2.6em;
	font-weight: 200;
	line-height: 1.1;
}

h2 {
	font-size: var(--step-2);
	font-weight: 300;
	color: var(--color-text-muted);
	position: relative;
}

h2.wp-block-heading {
	font-weight: 200;
}
h2.wp-block-heading:after {
	content: '';
	display: block;
	width: 96%;
	height: 1px;
	background: var(--color-text-muted);
}

h2#latest-blog-heading {
	margin: 0 0 1ch 0;
}

h3 {
	font-size: var(--step-2);
	font-weight: 300;
	color: var(--color-text-muted);
	position: relative
}
h3.wp-block-heading {
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-weight: 200;
}
figure + h3.wp-block-heading {
	margin-top: 2em;
}


/* footnotes */
h4.fn {
	display: block;
	margin: 4ch 0 1ch 0;
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: var(--step-1);
	font-weight: 200;
}
ol.footnotes {
	font-size: 1.2em;
	line-height: 1.6;
}
ol.footnotes li {
	margin-bottom: .75em;
}


p + h2.wp-block-heading, ul + h2.wp-block-heading,
p + h3.wp-block-heading, ul + h3.wp-block-heading  {
	margin: 1.5em 0 .5em 0;
}

p {
	margin: 0 0 1em 0;
	font-size: var(--step-0);
	font-weight: 400;
	line-height: 1.5;
}

ul {
	list-style: square;
	margin-bottom: 1.5ch;
	font-size: var(--step-0);
	font-weight: 400;
	line-height: 1.5;

}
ul li {
	margin-bottom: .36em;
}

strong, b {
	font-weight: 600;
}
em {
	font-style: italic;
}

blockquote {
	width: 80%;
	padding: 1em;
	margin: 1em auto;
	border-left: 3px solid var(--color-border-faint);
}
blockquote p {
	display: block;
	width: 100%;
	font-size: 1.4em;
	font-weight: 100;
	line-height: 1.4;
	color: var(--color-text-quote);
	margin: 0 0 .5em 0;
}
cite {
	font-size: .85em;
	font-weight: 400;
	font-style: italic;
}

.wp-block-pullquote {
	padding: 0;
	width: 100%;
	max-width: 26em;
}

.wp-block-pullquote blockquote {
	padding: 2ch 1ch;
	border-left: 2px solid var(--color-accent-alt);
}
.wp-block-pullquote blockquote p {
	font-size: 1.1em;
	line-height: 1.36;
	text-align: left;
	color: var(--color-text-pullquote);
	margin: 0 0 .6em 0;
}
/* extras */
address {
	font-weight: 400;
	margin-bottom: 1em;
}
abbr,
acronym {
	cursor: help;
}
code, kbd, tt, var, samp, pre {
	font-family: Courier, monospace;
	font-size: .9em;
	background-color: var(--color-bg-subtle);
	padding: .125em .25em;
}
code {
	word-wrap: break-word;
}
pre {
	max-width: 100%;
	font-size: .8em;
	white-space: pre-wrap;
    word-wrap: break-word;
	margin-bottom: 1em;
	padding: 1em;
	border: 1px solid var(--color-border-faint);
	overflow: auto;
}
sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
    top: -0.5em;
}
/* --- --- --- --- --- --- ---
links 
--- --- --- --- --- --- --- */
/* link styling */
a, a:link, a:visited {
    /*text-decoration: none;*/
	color: var(--core-color-slate-dark);
	font-weight: 600;
	text-decoration-color: var(--core-color-slate-light);
	text-decoration-thickness: .125em;
	text-underline-offset: 2px;
}
a:hover, a:active, a:focus {
    text-decoration: underline;
	color: var(--core-color-slate-light);
}

a, a:link, a:visited, a:hover, a:active, a:focus {
	font-weight: 300;
	text-decoration-thickness: .06em;
}
/* accent outline on keyboard focus, covers every link in the theme */
a:focus-visible {
	outline: 1px solid var(--color-accent);
}
/* download */
.wp-block-file {
	margin: 12px 0;
}
.wp-block-file *+.wp-block-file__button {
	background: transparent url(images/dl-icon.svg) center left no-repeat;
	background-size: contain;
	padding: 3px 3px 3px 36px;
	border-radius: 0;
}

/* edit link */
a.post-edit-link {
	font-size: .8em;
	font-weight: 500;
	padding: .1em .5em;
	background: var(--color-bg-subtle);
	border-bottom: 2px solid var(--color-border);
}
/* --- --- --- --- --- --- ---
header 
--- --- --- --- --- --- --- */
header {
/*	border-bottom: 1px solid #ccc;	
	background: url(images/self-portrait-2016.jpg) 12px -24px no-repeat;
	background-size: 164px auto;*/
}
header a:link, header  a:visited {
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: var(--step-4);
	font-weight: 400;
	line-height: 1;
	margin: 0 0 24px 0;
	padding: 3px 24px;
	text-decoration: none;
	display: block;
	color: var(--color-text-emphasis);
	padding: 24px var(--space-gutter);
}
header  a:link strong {
	font-weight: 400;
}
header  a:link p {
	font-size: 50%;
	font-weight: 200;
	margin: 0;
	display: none;
}

/* --- --- --- --- --- --- ---
site menu 
--- --- --- --- --- --- --- */
nav li {
	position: relative;
	margin: 0;
}

/* menu links */
nav a:link, nav a:visited { 
	display: block;
	font-size: var(--step-1);
	line-height: 1.1;
	text-decoration: underline;
	text-decoration-thickness: .03em;
	text-underline-offset: 2px;
	text-decoration-color: transparent;
	color: var(--color-text-muted);
	margin: 0;
	padding: 3px 24px;
	transition: all .2s ease-in-out;
	color: var(--color-text-strong);
	-webkit-transition: text-decoration-color .2s ease-in-out;
	transition: text-decoration-color .2s ease-in-out;
}
nav a:hover, nav a:active, nav a:focus {
	display: block;
	color: var(--color-text-emphasis);
	text-decoration-color: var(--color-text-emphasis);
}
/* current highlight */
nav .current-menu-item a:link, nav .current-menu-item a:visited,
nav .current-menu-parent a:link, nav .current-menu-parent a:visited {
	color: var(--color-text-emphasis);
	text-decoration-color: var(--color-text-emphasis);
}
nav .menu .current-menu-item .sub-menu a:link, 
nav .menu .current-menu-item .sub-menu a:visited,
nav .menu .current-menu-parent .sub-menu a:link, 
nav .menu .current-menu-parent .sub-menu a:visited {
	text-decoration: none;
}

nav .current-menu-parent .sub-menu .current-menu-item a:link,
nav .current-menu-parent .sub-menu .current-menu-item a:visited {
	color: var(--text-tertiary);
	text-decoration: underline;
}

/*nav .current-menu-parent a[rel="toggle"] {
	background: #244345;
	border-bottom: 1px solid #5dbdc1;
}
nav .current-menu-parent:has(.current_page_item) a[rel="toggle"] {
	background: #244345;
	border-bottom: 1px solid #f25e0e;
	border-right: 6px solid #f25e0e;
	margin-right: -3px;
}
nav .current-menu-parent:has(.current_page_item) a[rel="toggle"]:before {
	background: #f25e0e;
	transform: rotate(90deg);
}

nav .current_page_item a:link, nav .current_page_item a:visited {
	background: #244345;
}

nav .current-menu-parent:has(.current_page_item) li:last-of-type a:link {
	border: 0;
	
}
nav .current-menu-parent:has(.current_page_item) ul {
	border-right: 6px solid #f25e0e;
	border-bottom: 1px solid #f25e0e;
	margin-right: -3px;
}*/

/* --- MENU TOGGLE --- */
/* hidden via the .visually-hidden class in header.php — stays keyboard-reachable */
.toggle {
	display: inline-block;
	width: auto;
	position: relative;
	padding-top: 14px;
	text-transform: lowercase;
	font-size: 1.1em;
	line-height: 1;
	color: var(--color-text-strong);
	margin: 0 var(--space-gutter);
}
.toggle:hover,
.toggle:active,
.toggle:focus {
	cursor: pointer;
	color: var(--color-text-strong);
}
#menu-toggle:focus-visible + .toggle {
	outline: 1px solid var(--color-accent);
}
/* show/hide menu (and the panel-controls that follow it) */
#menu-toggle + .toggle + .menu,
#menu-toggle + .toggle + .menu + .panel-controls {
	display: none;
}
#menu-toggle:checked + .toggle + .menu,
#menu-toggle:checked + .toggle + .menu + .panel-controls {
	display: block;
}
/* 3 lined toggle vis  */
.toggle strong {
	position: absolute;
	display: block;
	min-width: 8em;
	top: 8px;
	left: 24px;
	font-size: var(--step-1);
	color: var(--color-text-strong);
}
.toggle:hover strong {
	color: var(--color-text-emphasis);
}
.toggle [class*='line-'] {
	background: var(--color-text-strong);
	display: block;
	border-radius: 3px;
	height: 2px;
	width: 18px;
	margin: 0 0 4px 0;
	-webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-o-transform: rotate(0deg);
	transform: rotate(0deg);
	-webkit-transition: .2s ease all;
	-moz-transition: .2s ease all;
	-o-transition: .2s ease all;
	transition: .2s ease all;
}
.toggle:hover [class*='line-'] {
	background: var(--color-text-strong);
}
#menu-toggle:checked + .toggle .line-top {
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	-o-transform: rotate(45deg);
	transform: rotate(45deg);
	-webkit-transform-origin: 0 0;
	-moz-transform-origin: 0 0;
	-o-transform-origin: 0 0;
	transform-origin: 0 0;
}
#menu-toggle:checked + .toggle .line-mid {
	opacity: 0;
}
#menu-toggle:checked + .toggle .line-bot {
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	transform: rotate(-45deg);
	-webkit-transform-origin: 0 90%;
	-moz-transform-origin: 0 90%;
	-o-transform-origin: 0 90%;
	transform-origin: 0 90%;
}
/* sub menu toggles */
nav ul li a[rel="toggle"]::before {
    content: ' ';
    display: inline-block;
    width: 14px;
    height: 14px;
	margin: 0 10px 0 0;
    border: 0;
    background: var(--color-bg);
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
    transform-origin: center;
    transition: transform .2s ease-out;
    transform: rotate(45deg);
}
nav ul li a[rel="toggle"]:hover::before {
	background: var(--color-text-strong);
	transform: rotate(90deg);
}

/* style the submenu */
.sub-menu {
	list-style: none;
    z-index: 1000;
	border-left: 1px solid var(--color-text-strong);
	margin: 0 0 12px 24px;
	padding: 3px 0;
}
.sub-menu li a:link {
	font-size: var(--step--2);
	line-height: 1;
	padding: 3px 12px;
}

/*	============================================================
	theme switcher
	============================================================ */
/* holds the mode switcher and any future panel controls (e.g. typeface toggle) */
.panel-controls {
	margin-top: var(--space-lg);
	padding-top: var(--space-xs);
	border-top: 1px solid var(--color-border);
}
/* #mode-toggle hidden via the .visually-hidden class in header.php */
.switch-btn {
	display: flex;
	align-items: center;
	gap: var(--space-2xs);
	width: fit-content;
	margin-left: var(--space-md);
	font-size: var(--step--1);
	color: var(--color-text-strong);
	cursor: pointer;
}
.switch-btn:hover {
	color: var(--color-text-emphasis);
}
#mode-toggle:focus-visible + .switch-btn {
	outline: 1px solid var(--color-accent);
}
.switch-icon svg {
	display: block;
	width: 1.2em;
	height: 1.2em;
	color: currentColor;
}
/* show only the icon/label for the mode you can switch TO */
[data-theme="light"] .icon-to-light,
[data-theme="dark"] .icon-to-dark {
	display: none;
}
[data-theme="light"] .to-light-label,
[data-theme="dark"] .to-dark-label {
	display: none;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) .icon-to-dark,
	:root:not([data-theme]) .to-dark-label {
		display: none;
	}
}


/* --- --- --- --- --- --- ---
homepage
--- --- --- --- --- --- --- */
/* blog posts */
.homepage-latest-blog {
	margin-top: 3em;
	padding-top: 2em;
	border-top: 1px solid var(--color-border-subtle);
}

.blog-grid {
	display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
}
.blog-grid + h3 {
	margin-top: 1em;
}

.blog-item {
	border-radius: 0;
	border: 1px solid var(--color-border-medium);
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	position: relative;
	padding: 0 0 2em 0;
    text-decoration: none;
}

.blog-thumbnail {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1/1;
	margin: 0 0 12px 0;
}
.blog-thumbnail {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1/1;
}

.blog-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	
	transition: transform 0.3s ease;
}
.blog-thumbnail:hover img {
	transform: scale(1.05);
}

.blog-title {
    margin: 0 0 0.5rem 0;
	padding: 0 12px;
    font-weight: 400;
    font-size: 1.2em!important;
	line-height: 1.2;
	text-align: left;
	color: var(--color-text-secondary);
    text-decoration: none;
}

.blog-item time {
    margin: 0 0 0.5rem 0;
	padding: 0 12px;
    font-weight: 400;
    font-size: 1em!important;
	text-align: left;
	color: var(--color-text-secondary);
    line-height: 1.3;
    text-decoration: none;
	position: absolute;
	bottom: 0;
}

/* collections */
.recent-collections {
	margin: 3em 0;
	padding-top: 2em;
	border-top: 1px solid var(--color-border-subtle);
}

.collections-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(256px, 1fr));
	gap: 2em;
	margin: 0 0 0 0;
}

.collection-item {
	border-radius: 0;
	border: 1px solid var(--color-border-medium);
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.collection-item:hover {
	/*transform: translateY(-5px);*/
	/*box-shadow: 0 8px 25px rgba(0,0,0,0.1);*/
}

.collection-placeholder {
	background: var(--color-bg-muted);
	border: 2px dashed var(--color-border-dashed);
}

.placeholder-content {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	color: var(--color-text-secondary);
	font-size: 0.9em;
	font-weight: 500;
}

.collection-thumbnail {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1/1;
}

.collection-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.collection-thumbnail:hover img {
	transform: scale(1.05);
}

.collection-content {
	padding: 1em;
}

.collection-content h3 {
	margin: 0 0 0.5em 0;
	font-size: 1.6em;
	line-height: 1.3;
}

.collection-content h3 a {
	text-decoration: none;
	color: inherit;
}

.collection-content h3 a:hover {
	color: var(--color-link-hover);
}

.collection-meta {
	color: var(--color-text-muted);
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: 0.9em;
	position: relative;
	background: var(--color-bg);
	z-index: 201;
	padding: 6px 0;
}
.collection-meta .last-addition {
	display: block;
}

.collection-excerpt {
	color: var(--color-text-soft);
	line-height: 1.5;
}
.view-all a:link, .view-all a:visited {
	display: inline-block;
	margin: 1ch 0;
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: 1.3em;
	line-height: 1;
	font-weight: bold;
	color: var(--color-text-muted);
	padding: 6px 52px 2px 0;
	background: url(images/chevron-right.svg) no-repeat;
	background-position: 88% center;
	background-size: contain;
	transition: background-position .2s ease-in-out;
}
.view-all a:hover, .view-all a:active, .view-all a:focus-visible {
	color: var(--color-text-emphasis);
	background: url(images/chevron-right.svg) no-repeat;
	background-position: 100% center;
}

/*.view-all-collections {
	text-align: center;
	margin-top: 2em;
}

.view-all-collections .button {
	display: inline-block;
	padding: 12px 24px;
	background: #007cba;
	color: white;
	text-decoration: none;
	border-radius: 4px;
	transition: background-color 0.2s ease;
}

.view-all-collections .button:hover {
	background: #005a87;
}*/

@media (max-width: 768px) {
	.collections-grid {
		grid-template-columns: 1fr;
		gap: 2em;
	}
}


/* --- --- --- --- --- --- ---
category : collections
--- --- --- --- --- --- --- */
.collections-archive .collection-post {
	position: relative;
	margin-bottom: 2rem;
	transition: transform 0.2s ease;
}

.collections-archive .collection-post:hover {
	/*transform: translateY(-2px);*/
}

.post-thumbnail {
	position: relative;
	overflow: hidden;
	margin-bottom: 1rem;
}

.post-thumbnail img {
	width: 100%;
	height: auto;
	transition: transform 0.3s ease;
}

.collection-post:hover .post-thumbnail img {
	transform: scale(1.05);
}

.collection-placeholder-thumb {
	aspect-ratio: 1;
	background: var(--color-bg-muted);
	border: 2px dashed var(--color-border-dashed);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-secondary);
	font-size: 0.9rem;
	font-weight: 500;
	border-radius: 8px;
}

.collections-archive h2 {
	position: relative;
	z-index: 2000;
	background: var(--color-bg);
	transition: color 0.2s ease;
}

.collection-post:hover h2 {
	color: var(--color-link-hover);
}

/* Grid layout for larger screens */
@media (min-width: 768px) {
	.collections-archive {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
		gap: 2em;
	}
	
	.collections-archive .collection-post {
		margin-bottom: 0;
	}
}

@media (min-width: 1200px) {
	.collections-archive {
		grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
		gap: 2.5em;
	}
}

/* --- --- --- --- --- --- ---
latest shop additions 
--- --- --- --- --- --- --- */
.homepage-latest-products {
	margin: 6em 0 0 0;
}
.view-all-products a:link {
	 font-weight: bold;
	color: var(--color-text-strong);
	text-decoration-color: var(--color-text-strong);
	text-decoration-thickness: .125em;
	text-underline-offset: 4px;
}


/* --- --- --- --- --- --- ---
category page + links 
--- --- --- --- --- --- --- */
.category .wrap article {
	display: grid;
	gap: var(--gap, 1em);
	grid-template-columns: repeat(var(--grid-type, auto-fit),  minmax(min(256px, 100%), 1fr));
}
.category .wrap .work a:link, .category .wrap .work a:visited {
	text-decoration: none;
	display: block;
	transition: all .2s ease-in-out;
}
.category .wrap .work a:hover, .category .wrap .work a:active, .category .wrap .work a:focus-visible {
	/*transform: scale(1.08);*/
}
.category .wrap .work a:link h2 {
	text-decoration: none;
	/*margin: .5em;*/
}
.category .wrap .work a:link img {
	margin: 0;
	border: 1px solid var(--color-border-soft);
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* --- --- --- --- --- --- ---
single post
--- --- --- --- --- --- --- */
.wp-block-file, .wp-block-gallery {
	display: block;
	width: 100%;
	height: auto;
	margin-bottom: 3em;
}

figure img {
	border: 1px solid var(--color-border);
}
.wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
	padding-left: 0;
}

.wp-block-image.offset-right {
	display: block;
	
}
/* image with caption */
figure:has(figcaption) {
	border: 1px solid var(--color-border-soft);
}
figure:has(figcaption) img {
	margin: 0 0 6px 0;
}
figure figcaption {
	padding: 0 3px;
	margin: 0;
}

/* --- --- --- --- --- --- ---
post meta 
--- --- --- --- --- --- --- */
.meta {
	display: block;
	/*width: 80%;*/
	font-size: .8em;
	padding: .25em 0;
	margin: 0 0 10px 0;
	opacity: .6;
	border-top: 1px solid var(--color-border);
}
.meta .date {
	font-weight: 400;
}
.meta .date:before,
.meta .comments:before,
.meta .cat-links:before {
	content: "- ";
}


/* --- --- --- --- --- --- ---
blog category 
--- --- --- --- --- --- --- */
.category .wrap article.blog {
	display: block;
}
.blog a.viewpost {
	position: relative;
	display: flow-root;
	margin: 0 0 24px 0;
	text-decoration: none;
	border-bottom: 1px solid var(--color-border-soft);
}
.blog a.viewpost img {
	float: left;
	margin: 0 1em 0 0;
}
.blog a.viewpost h2 {
	font-size: var(--step-1);
	line-height: 1;
}
.blog a.viewpost p {
	font-size: 1em;
}
.blog a.viewpost .meta {
	padding: 0;
	margin: 0;
	border: 0;
	position: absolute;
	bottom: 0;
	right: 0;
	font-family: 'Newsreader 36pt', Georgia, Times New Roman, Times, serif;
	font-size: 1.1em;
	font-weight: 200;
	line-height: 1;
}


/* --- --- --- --- --- --- ---
artshop notice 
--- --- --- --- --- --- --- */
.shopnotice {
	margin: 3em 0;
	padding-top: 2em;
	border-top: 1px solid var(--color-border-subtle);
}
.shopnotice figure, .shopnotice figure img {
	border: 0;
}
@media (min-width: 480px) {
    .shopnotice .entry-content .wp-block-media-text {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
		align-items: center;
		gap: 1em;
	}
	.shopnotice .entry-content .wp-block-media-text__media {
		width: 40%;
		flex-grow: 1;
		align-self: center;   

	}
	.shopnotice .entry-content .wp-block-media-text__content {
		width: 56%;
		flex-grow: 1;
		align-self: center;   
	}
}

/* --- --- --- --- --- --- ---
images 
--- --- --- --- --- --- --- */
main img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-bottom: 1em;
}
.wp-caption {
	max-width: 100%;
	margin-bottom: 1.25em;
}
.wp-caption > a {
	display: block;
}
.wp-caption img {
	margin-bottom: 0;
}
.wp-caption-text {
	font-size: .8em;
	font-weight: 400;
	padding:  .3em .5em .2em .5em;
	background: var(--color-bg-caption);
	border-bottom: 2px solid var(--color-border-caption);
}
.alignleft {
	display: inline;
	float: none;
	margin-top: .35em;
	margin-right: 1em;
}
.alignright {
	display: inline;
	float: none;
	margin-top: .35em;
	margin-left: 1em;
}
.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-block-image.offset-right img {
	border: 0;
}


/* --- tabs via plethora block --- */
/* confirmed: the plugin's own CSS still wins over higher specificity alone, needs !important like its sibling rules below */
.plethoraplugins-tabs-container, .pds-accordion__content {
	margin: 0 -1em!important;
	background: var(--color-bg)!important;
	color: var(--color-text)!important;
}
/* the container's color!important doesn't reach the tab links — the plugin
   sets colour directly on its own <a> tags, which always beats inheritance */
.plethoraplugins-tabs-container a {
	color: var(--color-text)!important;
}
.pds-js-accordion-controller {
	padding: .75em!important;
	/* kept the same across themes — already reads fine on both backgrounds */
	background: var(--color-text-muted)!important;
}

/* --- --- --- --- --- --- ---
lightbox (firelight) overrides
--- --- --- --- --- --- --- */
#fancybox-outer {
	position: relative;
	width: 100%;
	height: 100%;
	box-shadow: 0 0 20px  rgba(0,0,0,.2)!important;
	-moz-box-shadow: 0 0 20px rgba(0,0,0,.2)!important;
	-webkit-box-shadow: 0 0 20px rgba(0,0,0,.2)!important;
	background: var(--color-bg);
}
.fancy-ico {
	position: absolute;
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.fancy-ico span {
	display: block;
	position: relative;
	left: 12px;
	top: 12px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--color-icon-bg)!important;
	border: 2px solid var(--color-bg);
	box-shadow: 0 0 4px var(--color-text-emphasis);
	transition: transform .25s ease-in-out;
}

#fancybox-close:hover span, #fancybox-next:hover span, body.rtl #fancybox-prev:hover span {
	transform: rotate(0deg)!important;
	transform: scale(1.2)!important;
}

#fancybox-prev:hover span, body.rtl #fancybox-next:hover span {
	transform: rotate(-0deg)!important;
	transform: scale(1.1)!important;

}
#fancybox-img {
	padding: 0;
	margin: 0;
	line-height: 0;
	vertical-align: top;
	max-width: 920px!important;
	max-height: 920px!important
}

/* --- --- --- --- --- --- ---
pagination links 
--- --- --- --- --- --- --- */
.pagination .page-numbers,
.pagination > a {
	display: inline;
	font-size: 1em;
	line-height: 0;
	padding: 2px 6px;
	background: rgba(0,0,0,.036);
	/*bordeR: 1px solid #333;*/
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover,
.pagination .page-numbers:active,
.pagination .page-numbers:focus {
	border-color: var(--color-accent);
}
.pagination .page-numbers.next {
	padding-right: 0;
	border: none;
}
.pagination .page-numbers.prev,
.pagination .page-numbers.page {
	padding-left: 0;
	border: none;
}
.pagination .page-numbers.page {
	text-transform: uppercase;
}
.pagination .page-numbers.next:hover,
.pagination .page-numbers.next:active,
.pagination .page-numbers.next:focus,
.pagination .page-numbers.prev:hover,
.pagination .page-numbers.prev:active,
.pagination .page-numbers.prev:focus {
	color: var(--color-text-strong);
}
/* --- single - post --- */
.post-navigation {
	width: 100%;
	margin: 4em 0;
	border-top: 1px solid var(--color-border-strong);
	border-bottom: 1px solid var(--color-border-strong);
}
.post-navigation h2 {
	display: none;
}
.post-navigation a:link {
	display: block;
	font-size: .85em;
	line-height: 1.2;
	color: var(--color-border);
	text-decoration: none;
}
.post-navigation a strong {
	display: block;
	font-size: 1.1em;
	font-weight: 400;
	
}
.post-navigation .nav-links {
	overflow: hidden;

}
/* previous link */
.post-navigation .nav-links .nav-previous a:link, .post-navigation .nav-links .nav-previous a:visited {
	color: var(--color-border);
	padding: 12px 12px 12px 64px;
	background: url(images/chevron-left.svg) center left no-repeat;
	background-size: auto 80%;
	transition: all .2s ease-in-out;
}
.post-navigation .nav-links .nav-previous a:link strong, .post-navigation .nav-links .nav-previous a:visited strong {
	color: var(--color-text-strong);
	font-size: 1.2em;
	font-weight: 400;
}
.post-navigation .nav-links .nav-previous a:hover, .post-navigation .nav-links .nav-previous a:active, .post-navigation .nav-links .nav-previous a:focus-visible {
	text-decoration: none;
	background-position-x: -8px;
}
/* next link */
.post-navigation .nav-links .nav-next a:link, .post-navigation .nav-links .nav-next a:visited {
	padding: 12px 64px 12px 12px;
	background: url(images/chevron-right.svg)  98% center no-repeat;
	background-size: auto 80%; 
	transition: all .2s ease-in-out;
}
.post-navigation .nav-links .nav-next a:link strong, .post-navigation .nav-links .nav-next a:visited strong {
	color: var(--color-text-strong);
	font-size: 1.2em;
	font-weight: 400;
}
.post-navigation .nav-links .nav-next a:hover, .post-navigation .nav-links .nav-next a:active, .post-navigation .nav-links .nav-next a:focus-visible {
	text-decoration: none;
	background-position-x: 100%;
}
/* --- --- --- --- --- --- ---
videos 
--- --- --- --- --- --- --- */
.video-wrapper {
   position: relative;
   padding-bottom: 56.25%; /* 16:9 */
   padding-top: 25px;
   height: 0;
   max-width: 50vw;
  
}
.video-wrapper iframe {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
}
video {
	border: 1px solid var(--color-border);
	 width: 100%;
   height: 100%;

}
.wp-block-video {
	margin-bottom: 4ch;
}

@media (max-width: 1024px) {
    .blog-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}

@media (max-width: 480px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }
}

/* --- --- --- --- --- --- ---
footer
--- --- --- --- --- --- --- */
footer {
	font-size: var(--step--1);
	line-height: 1.6;
	border-top: 2px solid var(--color-text);
	margin: 4em 0 0 0;
	padding: 2em 4vw;
}
footer p {
	margin: 24px 0;
	color: var(--color-text);
}
footer p.copy {
	border-top: 1px solid var(--color-text);
}

footer .footer-menu ul {
	list-style: none;
}
footer .footer-menu ul li {
	display: block;
	margin: 0 0 .35em 0;
}

/* cookie popup */
#cookie-law-info-bar {
	width: 270px !important;
	text-align: left;
	padding: 13px 14px 8px 14px !important;
}

#cookie-law-info-bar span {
	display: block;
	font-size: 1.03em;
	font-weight: 400;
	line-height: 1.45;
}
#cookie-law-info-bar .cli_settings_button {
	margin: 6px 20px 0 0 !important;
	
}
/* --- --- --- --- --- --- ---
media queries 
--- --- --- --- --- --- --- */
@media (min-width: 400px)  {

}
@media (min-width: 600px)  {
/* --- post navigation --- */
	.post-navigation .nav-links > div:nth-last-child(n+2):nth-last-child(-n+2):first-child, .post-navigation .nav-links > div:nth-last-child(n+2):nth-last-child(-n+2):first-child ~ div {
		width: 50%;
		float: left;
	}
	.post-navigation .nav-links > div:nth-child(2) {
		border-left: 1px solid var(--color-border-accent);
		border-top: none;
	}
	.post-navigation .nav-links .nav-next a {
		text-align: right;
	}
	footer {
		font-size: var(--step--1);
		line-height: 1.6;
		border-top: 2px solid var(--color-text-muted);
		margin: 4em 0 0 0;
		padding: 2em 0;
	}
	footer .copy {
		text-align: center;
	}
	.footer-menu {
		margin: 0 var(--space-gutter);
	}

}
@media (min-width: 680px)  {
	header {
		position: fixed;
		width: 30%;
		max-width: 14em;
		top: 0;
		bottom: 0;
		overflow-y: auto;
		/*width: 40%;
		border: 0;
		z-index: 200;
		background: url(images/self-portrait-2016.jpg) -16px -24px no-repeat;
		background-size: 184px auto;*/
	}
	header .wrap {
		display: flex;
		flex-direction: column;
		min-height: 100%;
	}
	header a:link, header a:visited {
		padding: 140px 0 24px 24px;
	}
	/* nav panel fills remaining height so .panel-controls can pin to the bottom */
	.sitenav {
		display: flex;
		flex-direction: column;
		flex: 1;
		padding-bottom: var(--space-lg);
	}
	/* menu toggle */
	#menu-toggle, #menu-toggle + .toggle, #menu-toggle:checked + .toggle {
		display: none;
	}
	#menu-toggle + .toggle + .menu, #menu-toggle:checked + .toggle + .menu,
	#menu-toggle + .toggle + .menu + .panel-controls, #menu-toggle:checked + .toggle + .menu + .panel-controls {
		display: block;
	}
	.panel-controls {
		margin-top: auto;
	}
	/* menu links */
	nav a:link, nav a:visited { 
		padding: 3px 12px 3px 24px;
	}
	/* breadcrumbs (via YoastSEO) */
	#breadcrumbs {
		padding: 0;
		margin-bottom: 1ch;
	}
	main {
		position: relative;
		left: 30%;
		right: 0;
		top: 0;
		bottom: 0;
		width: 60%;
		padding: 140px 3vw 4.4em 3vw;
		margin: 0;
		border-left: 1px dotted var(--color-border);
	}
	main .wrap {
		margin: 0;
	}
	
	footer {
		position: relative;
		min-height: 12em;
		margin-left: 30%;
	}

	.footer-menu ul {
		width: 50%;
		max-width: 360px;
		margin: 0 auto;
		padding: 12px 0;
	}
	footer .footer-menu ul li {
		display: block!important;
		width: auto;
		margin: 0 0 .35em 0;
	}
	
	
	footer .footer-menu ul li a:link {
		padding: 0 12px;
	}
	
	
}
@media (min-width: 770px)  {

}
@media (min-width: 820px)  {
	header {
		max-width: 320px;
	}	

	main {
		left: 320px;
	}
	footer {
		margin-left: 320px;
	}

	footer .footer-menu ul {
		width: 100%;
		max-width: 100%;
		text-align: center;
		padding: 12px 0;
	}
	footer .footer-menu ul li {
		display: inline!important;
		width: auto;
		margin: 0 0 .35em 0;
	}
	
	footer .footer-menu ul li a:link {
		padding: 0 12px;
	}
}
@media (min-width: 1200px)  {
	header {
		max-width: 320px;
	}	
	main {
		width: 70%;
	}
	.category main .wrap {
		max-width: 86em;
		margin: 0 var(--space-gutter) 0 0;
	}
	.category .wrap article.blog {
		display: grid;
		gap: var(--gap, 3em);
		grid-template-columns: repeat(var(--grid-type, auto-fit),  minmax(min(330px, 100%), 1fr));
	}

	main {
		left: 320px;
	}
	/* footer already cleared via margin-left: 320px from the 820px breakpoint */
	.alignleft {
		display: inline;
		float: left;
		margin-top: .35em;
		margin-right: 1em;
	}
	.alignright {
		display: inline;
		float: right;
		margin-top: .35em;
		margin-left: 1em;
	}
	.aligncenter {
		clear: both;
		display: block;
		margin-left: auto;
		margin-right: auto;
	}

	.wp-block-image.offset-right {
		margin-right: calc(var(--space-gutter) * -1);
	}
}
/*	============================================================
	motion + scroll accessibility
	============================================================ */
/* smooth scroll */
@media (prefers-reduced-motion: no-preference) {
	:has(:target) {
		scroll-behavior: smooth;
		scroll-padding-top: 3em;
	}
}

/* remove animations/transitions/smooth-scroll if reduced motion preferred */
@media (prefers-reduced-motion: reduce) {
	html:focus-within {
		scroll-behavior: auto;
	}
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
