/*
Theme Name: dhstheme
Theme URI: https://opencollective.com/dhstheme
Author: Justus Henke
Author URI: https://opencollective.com/dhstheme#section-contributors
Description: Donate: https://opencollective.com/dhstheme. Learn: https://dhstheme.me/. dhstheme is the definitive WordPress boilerplate starter theme. I've carefully constructed the most clean and minimalist theme possible for designers and developers to use as a base to build websites for clients or to build completely custom themes from scratch. Clean, simple, unstyled, semi-minified, unformatted, and valid code, SEO-friendly, jQuery-enabled, no programmer comments, standardized and as white label as possible, and most importantly, the CSS is reset for cross-browser-compatability, with no intrusive visual CSS styles added whatsoever. A perfect skeleton theme. For support and suggestions, go to: https://github.com/webguyio/dhstheme/issues. Thank you.
Tags: accessibility-ready, one-column, two-columns, custom-menu, featured-images, microformats, sticky-post, threaded-comments, translation-ready
Version: 2026
Requires at least: 5.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v3 or Later
License URI: https://www.gnu.org/licenses/gpl.html
Text Domain: dhstheme

dhstheme WordPress Theme 2011-2026
dhstheme is distributed under the terms of the GNU GPL
*/

/* Reset and normalize browser presets */
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}html{scroll-behavior:smooth}body{line-height:1}a{text-decoration-skip-ink:auto}a[href^="tel"]{color:inherit;text-decoration:none}button{outline:0}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}q{display:inline;font-style:italic}q:before{content:'"';font-style:normal}q:after{content:'"';font-style:normal}textarea,input[type="text"],input[type="button"],input[type="submit"],input[type="reset"],input[type="search"],input[type="password"]{appearance:none;border-radius:0}input[type="search"]{appearance:textfield}table{border-collapse:collapse;border-spacing:0}th,td{padding:2px}big{font-size:120%}small,sup,sub{font-size:80%}sup{vertical-align:super}sub{vertical-align:sub}dd{margin-left:20px}kbd,tt{font-family:courier;font-size:12px}ins{text-decoration:underline}del,strike,s{text-decoration:line-through}dt{font-weight:bold}address,cite,var{font-style:italic}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.sticky{}.bypostauthor{}.wp-caption{}.wp-caption-text{}.gallery-caption{}.alignright{}.alignleft{}.aligncenter{}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;word-break:normal}
.screen-reader-text:focus{background-color:#f7f7f7;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;clip-path:none;color:#007acc;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
.skip-link{left:-9999rem;top:2.5rem;z-index:999999999;text-decoration:underline}
.skip-link:focus{display:block;left:6px;top:7px;font-size:14px;font-weight:600;text-decoration:none;line-height:normal;padding:15px 23px 14px;z-index:100000;right:auto}
.visually-hidden:not(:focus):not(:active), .form-allowed-tags:not(:focus):not(:active){position:absolute !important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);white-space:nowrap}

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,700;1,400;1,700&family=DM+Mono:wght@400;500&display=swap');


/* Custom Theme Styles */
:root {
--primary: #34A9E1;
--secondary: #183C7C;
--tertiary: #ededed;
--quartary: #d6e8f5;
--xsmall: 12px;
--small: 13px;
--copy: 15px;
--default: 16px;
--larger: 17px;
--large: 18px;
--xlarge: 20px;
--xxlarge: 32px;
--primary-color: #34A9E1;
--primary-dark: #183C7C;
--text-color: #111;
--light-bg: #ededed;
--border-color: #d1d1d1;
--menu-transition: 0.3s ease;
--box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
--font-mono: 'DM Mono', monospace;
--font-serif: 'Lora', Georgia, serif;
--font-sans: -apple-system, BlinkMacSystemFont, Arial, Helvetica, "Helvetica Neue", sans-serif;
}

:root :where(.is-layout-flow) > * {
  margin-block-start: 0;
  margin-block-end: 0;
}

body {
font-family: var(--font-serif);
font-size: var(--default);
line-height: 1.6;
color: var(--text-color);
background: linear-gradient(135deg, var(--secondary), #000000);
}

h1, h2, h3, strong, b { 
	font-weight: bold;
}

h1, h2, h3, h4, h5, h6 {
font-family: var(--font-sans);
color: var(--primary-dark);
}

a {
color: var(--primary);
text-decoration: none !important;
}

a:hover,
a:focus {
color: var(--secondary);
text-decoration: none !important;
}


.padding20px {
padding: 20px;
}


#wrapper {
max-width: 1080px;
margin: 0 auto;
}

#header {
padding: 20px 20px 0 20px;
margin: 0 -20px;
}

#branding {
text-align: center;
margin-bottom: 0;
max-width: 1080px;
margin-left: auto;
margin-right: auto;
padding-bottom: 20px;
}

.site-logo {
margin-bottom: 15px;
}

.site-logo img {
max-height: 130px;
width: auto;
height: auto;
max-width: 100%;
}

.custom-logo-link {
display: inline-block;
}

#site-title {
display: none;
}

.site-logo ~ #site-title, .site-logo ~ #site-description {
display: none;
}

body:not(.has-custom-logo) #site-title, body:not(.has-custom-logo) #site-description {
display: block;
}

#site-title a {
color: #fff;
font-size: var(--xlarge);
font-weight: 700;
text-decoration: none;
}

#site-description {
color: rgba(255, 255, 255, 0.8);
font-size: var(--small);
}

/* Modern Horizontal Dropdown Menu */
#menu {
background: var(--primary-color);
background: linear-gradient(135deg, var(--primary), var(--secondary));

margin: 0;
padding: 0;
position: relative;
}

.menu-container {
display: flex;
align-items: center;
padding: 0 20px;
max-width: 1080px;
margin: 0 auto;
}

#menu > .menu-container > div {
display: flex;
min-width: 0;
}

#menu ul {
display: flex;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
width: 100%;
}

.menu-toggle {
display: none;
}

/* Search Toggle Icon */
#search-toggle {
position: relative;
flex-shrink: 0;

}

#search-toggle .search-icon {
display: flex;
align-items: center;
justify-content: center;
padding: 10px;
color: #fff;
text-decoration: none;
transition: background var(--menu-transition);
width: 40px;
height: 40px;
}

#search-toggle .search-icon:hover,
#search-toggle .search-icon:focus {
background: var(--primary-dark);
}

#search-toggle .genericon {
font-size: 20px;
}

#menu > .menu-container > div > ul > li {
position: relative;
}

#menu a {
display: block;
padding: 15px 20px;
font-family: var(--font-sans);
font-weight: bold;
color: #fff;
text-decoration: none;
transition: background var(--menu-transition);
position: relative;
}

#menu a::after {
content: '';
position: absolute;
bottom: 0;
left: 20px;
right: 20px;
height: 3px;
background: var(--primary);
transform: scaleX(0);
transition: transform 0.3s ease;
}

#menu a:hover,
#menu a:focus {
background: var(--primary-dark);
}

#menu a:hover::after,
#menu a:focus::after {
transform: scaleX(1);
}

#menu .sub-menu {
position: absolute;
display: none;
inset: 100% auto auto 0;
background: var(--primary-dark);
min-width: 200px;
box-shadow: var(--box-shadow);
z-index: 1000;
transition: opacity var(--menu-transition);
pointer-events: none;
opacity: 0;
}

@media (hover: hover) {
#menu .sub-menu {
display: block;
}

#menu li:has(> a:hover) > .sub-menu,
#menu li:has(> a:focus-visible) > .sub-menu,
#menu li:has(.sub-menu:hover) > .sub-menu,
#menu li:has(.sub-menu:focus-within) > .sub-menu {
opacity: 1;
pointer-events: auto;
}
}

#menu .sub-menu li {
display: block;
}

#menu .sub-menu a {
padding: 12px 20px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Hamburger Menu Button */
.menu-toggle {
background: transparent;
border: none;
padding: 10px;
cursor: pointer;
color: #fff;
line-height: 1;
margin-left: auto;
width: 40px;
height: 40px;
position: relative;
flex-shrink: 0;
}

.menu-toggle:hover,
.menu-toggle:focus {
background: var(--primary-dark);
}

.menu-toggle span {
display: block;
width: 22px;
height: 2px;
background: #fff;
position: absolute;
left: 9px;
transition: all 0.3s ease;
}

.menu-toggle span:nth-child(1) {
top: 13px;
}

.menu-toggle span:nth-child(2) {
top: 19px;
}

.menu-toggle span:nth-child(3) {
top: 25px;
}

.menu-toggle.active span:nth-child(1) {
top: 19px;
transform: rotate(45deg);
}

.menu-toggle.active span:nth-child(2) {
opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
top: 19px;
transform: rotate(-45deg);
}

/* Search Toggle Icon - moved to menu section above */

/* Search Dropdown */
#search-dropdown {
position: absolute;
top: 100%;
left: 0;
right: 0;
background: var(--primary-dark);
box-shadow: var(--box-shadow);
opacity: 0;
display: none;
pointer-events: none;
transition: opacity var(--menu-transition);
z-index: 999;
}

#search-dropdown.active {
opacity: 1;
display: block;
pointer-events: auto;
}

.search-dropdown-inner {
max-width: 1080px;
margin: 0 auto;
padding: 15px 20px;
}

#search-dropdown .search-form {
display: flex;
gap: 10px;
align-items: stretch;
}

#search-dropdown .search-form label {
flex: 1;
min-width: 0;
margin: 0;
display: flex;
}

#search-dropdown .search-form input[type="search"] {
flex: 1;
min-width: 0;
padding: 12px 15px;
font-size: var(--default);
width: 100%;
}

#search-dropdown .search-form button,
#search-dropdown .search-form input[type="submit"] {
padding: 12px 25px;
white-space: nowrap;
flex-shrink: 0;
}

/* Content Layout */
#container {
padding: 0 20px;
background-color: #fff;
}

.single.single-post #container,
.page-template-page-sidebar #container,
.home #container,
.blog #container {
display: grid;
grid-template-columns: 1fr 320px;
gap: 40px;
align-items: start;
}

#content {
padding: 30px 0;
min-width: 0;
}

/* Forms & Inputs */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select {
padding: 10px 12px;
border: 1px solid var(--border-color);
border-radius: 4px;
font-size: var(--default);
font-family: inherit;
color: var(--text-color);
background: #fff;
transition: border-color 0.2s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
textarea:focus,
select:focus {
outline: none;
border-color: var(--primary-color);
box-shadow: 0 0 0 2px rgba(0, 112, 192, 0.1);
}

button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.button {
padding: 10px 20px;
background: var(--primary-color);
color: #fff;
border: none;
border-radius: 4px;
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
cursor: pointer;
transition: background var(--menu-transition);
text-decoration: none;
display: inline-block;
}

button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
.button:hover {
background: var(--primary-dark);
}

button:focus,
input[type="submit"]:focus,
input[type="button"]:focus,
input[type="reset"]:focus,
.button:focus {
outline: 2px solid var(--primary-color);
outline-offset: 2px;
}

button:disabled,
input[type="submit"]:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled,
.button:disabled {
background: var(--border-color);
cursor: not-allowed;
opacity: 0.6;
}

/* Comment Form */
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea {
width: 100%;
max-width: 100%;
}

#commentform textarea {
min-height: 150px;
resize: vertical;
}

#commentform label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: var(--text-color);
}

#commentform p {
margin-bottom: 15px;
}

/* Search Form */
.search-form {
display: flex;
gap: 5px;
}

.search-form input[type="search"] {
flex: 1;
}

.search-form button,
.search-form input[type="submit"] {
flex-shrink: 0;
}

article {
margin-bottom: 40px;
}

.category-posts-default article {
border-bottom: 1px solid var(--border-color);
}

article > .entry-thumbnail-link {
float: right;
margin: 0 0 1em 1.5em;
max-width: 300px;
}

article > .entry-thumbnail-link img {
display: block;
width: 100%;
height: auto;
border-radius: 4px;
}

.entry-title {
font-size: var(--xxlarge);
  line-height: 1.2;
  font-weight: bold;
  margin-bottom: 20px;
  color: var(--secondary);
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 10px;
  letter-spacing: -0.8px;
}

h2.entry-title { 
    font-size: var(--xlarge); 
    border: none;
    padding: 0;
}

h2.wp-block-heading {
  font-size: var(--xlarge);
  background: var(--primary);
  color: white;
  padding: 8px 20px;
  margin: 10px 0;
  display: inline-block;
}

.entry-title a {
color: var(--secondary);
text-decoration: none;
}

.entry-title a:hover {
color: var(--primary-color);
}

.entry-meta {
font-family: var(--font-mono);
font-size: var(--small);
color: #666;
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 15px;
flex-wrap: wrap;
}

.entry-meta-date {
color: var(--secondary);
font-weight: normal;
}

.entry-meta-box, .wp-block-latest-posts .wp-block-latest-posts__post-category>a {
display: inline-block;
padding: 3px 8px;
background: var(--secondary);
border-radius: 4px;
color: #fff;
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
}

.entry-meta-box a {
color: #fff;
text-decoration: none;
}

.entry-meta-box-outline {
display: inline-block;
padding: 1px 8px;
background: #fff;
border: 2px solid var(--primary-color);
border-radius: 4px;
color: var(--primary-color);
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 400;
}

.entry-meta-box-outline a {
color: var(--primary-color);
text-decoration: none;
}

.entry-meta, .entry-tags {
font-size: var(--small);
color: #666;
margin-bottom: 20px;
}

.entry-content,
.entry-summary {
line-height: 1.5;
  padding: 0 0 10px 0;
}

.entry-content p,
.entry-summary p {
padding-bottom: 12px;
}

.entry-summary::after {
content: "";
display: table;
clear: both;
}

.entry-summary .more-link {
display: block;
color: var(--primary-color);
text-decoration: none;
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-top: 10px;
}

.entry-summary .more-link:hover {
color: var(--primary-dark);
text-decoration: none;
}

.entry-content strong,
.entry-content b,
.entry-summary strong,
.entry-summary b {
font-weight: 700;
}

.entry-content em,
.entry-content i,
.entry-summary em,
.entry-summary i {
font-style: italic;
}

.entry-content ul,
.entry-summary ul, 
ul.wp-block-latest-posts {
margin-bottom: 1.2em;
margin-top: -0.4em;
list-style: square !important;
padding: 0 0 0 1em;
}

.entry-content ul li,
.entry-summary ul li,
.wp-block-latest-posts li {
margin: 0.5em 0;
}

.entry-content ul li {
  margin: 8px 0 0 0;
  border-bottom: 1px solid var(--quartary);
  padding: 8px 0;
}

.entry-content ul li a,
.entry-content ol li a {
display: block;
}

.entry-content ul li::marker,
.entry-summary ul li::marker,
.wp-block-latest-posts li::marker {
color: var(--primary);
}

.entry-content ol,
.entry-summary ol {
margin-bottom: 1.2em;
margin-top: -0.4em;
list-style: decimal;
padding: 0 0 0 1.5em;
}

.entry-content ol li,
.entry-summary ol li {
margin: 0.5em 0;
}

.entry-content img,
.entry-summary img {
max-width: 100%;
height: auto;
}

/* Featured Image */
.post-thumbnail {
margin-bottom: 20px;
}

.post-thumbnail img {
width: 100%;
height: auto;
display: block;
}

/* Downloads Section */
.post-downloads {
background: var(--light-bg);
padding: 20px;
margin: 30px 0;
border-left: 4px solid var(--primary-color);
border-radius: 4px;
}

.post-downloads h3 {
margin-top: 0;
color: var(--primary-color);
font-size: var(--large);
}

.post-downloads ul {
list-style: none;
padding: 0;
margin: 0;
}

.post-downloads li {
margin: 10px 0;
}

.post-downloads a {
color: var(--primary-color);
text-decoration: none;
display: inline-flex;
align-items: center;
}

.post-downloads a:before {
content: "⬇ ";
margin-right: 8px;
}

.post-downloads a:hover {
text-decoration: underline;
}

/* Citation */
.post-citation {
background: var(--tertiary);
padding: 15px 20px;
margin: 30px 0;
border-left: 4px solid var(--secondary);
font-size: var(--small);
font-style: italic;
border-radius: 4px;
}

.post-citation strong {
display: block;
margin-bottom: 8px;
font-style: normal;
color: var(--secondary);
}

/* Responsive */
@media (max-width: 768px) {
#wrapper {
padding: 0;
}

#header {
padding: 15px;
margin: 0;
}

#menu {
margin: 0;
}

.menu-container {
padding: 0 15px;
flex-wrap: wrap;
position: relative;
}

.menu-toggle {
display: flex;
align-items: center;
justify-content: center;
order: 2;
}

#search-toggle {
order: 1;
margin-left: auto;
}

#menu > .menu-container > div {
order: 3;
width: 100%;
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease;
flex: none;
display: block;
}

#menu > .menu-container > div.active {
max-height: 1000px;
}

#menu ul {
flex-direction: column;
width: 100%;
}

#menu > .menu-container > div > ul > li {
border-top: 1px solid rgba(255, 255, 255, 0.1);
}

#menu > .menu-container > div > ul > li:first-child {
border-top: none;
}

#menu a {
padding: 12px 15px;
}

#menu .sub-menu {
position: static;
display: none;
background: var(--secondary);
box-shadow: none;
opacity: 1;
pointer-events: auto;
}

#menu li.active > .sub-menu {
display: block;
}

.search-dropdown-inner {
padding: 15px;
}

#container {
padding: 0 15px;
}

#search-dropdown {
position: static;
}

article > .entry-thumbnail-link {
float: none;
margin: 0 0 1em 0;
max-width: 100%;
max-height: 200px;
overflow: hidden;
}

article > .entry-thumbnail-link img {
width: 100%;
height: 200px;
object-fit: cover;
}
}

.alignright {
float: right;
margin: 0 0 1em 1em;
}

.alignleft {
float: left;
margin: 0 1em 1em 0;
}

.aligncenter {
display: block;
margin-left: auto;
margin-right: auto;
}

.wp-caption {
max-width: 100%;
}

.wp-caption-text {
font-size: var(--small);
text-align: center;
margin-top: 5px;
}


/* Category Posts Shortcode Styles */
.category-posts-bullets {
list-style: disc;
padding-left: 20px;
margin: 20px 0;
}

.category-posts-bullets li {
margin: 8px 0;
line-height: 1.6;
}

.category-posts-bullets a {
color: var(--primary-color);
text-decoration: none;
}

.category-posts-bullets a:hover {
text-decoration: underline;
color: var(--primary-dark);
}

.category-posts-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 20px;
margin: 30px 0;
}

.grid-item {
display: flex;
flex-direction: column;
background: var(--tertiary);
border-radius: 4px;
overflow: hidden;
transition: transform 0.2s ease, box-shadow 0.2s ease;
position: relative;
}

.grid-item:hover {
transform: translateY(-4px);
box-shadow: var(--box-shadow);
}

.grid-thumbnail {
display: block;
width: 100%;
aspect-ratio: 2/3;
overflow: hidden;
background: var(--light-bg);
position: relative;
}

.grid-thumbnail img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.3s ease;
}

.grid-item:hover .grid-thumbnail img {
transform: scale(1.05);
}

.grid-no-image {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(135deg, var(--tertiary) 0%, var(--quartary) 100%);
}

.no-image-placeholder {
width: 60px;
height: 60px;
background: rgba(255, 255, 255, 0.5);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}

.no-image-placeholder:before {
content: "📄";
font-size: 30px;
}

.grid-title {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 40px 15px 15px;
margin: 0;
font-size: var(--default);
font-weight: 600;
background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.6) 60%, transparent 100%);
z-index: 1;
}

.grid-year {
display: block;
font-size: var(--xsmall);
font-weight: normal;
color: rgba(255, 255, 255, 0.8);
margin-bottom: 4px;
}

.grid-title a {
color: #ffffff;
text-decoration: none;
display: block;
}

.grid-title a:hover {
color: var(--primary-color);
}

.grid-heft-inline {
display: block;
font-size: var(--default);
font-weight: 600;
color: #ffffff;
margin-top: 4px;
}

@media (max-width: 768px) {
.category-posts-grid {
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: 15px;
}

.grid-title {
padding: 30px 12px 12px;
font-size: var(--small);
}
}


/* Single Post Layout with Sidebar */

.widget-title, .widget-area .wp-block-heading, .widget_block .wp-block-heading, .single-sidebar .wp-block-heading {
font-family: var(--font-sans);
font-size: var(--default);
font-weight: bold;
color: #fff;
background: var(--primary);
border-top-left-radius: 4px;
border-top-right-radius: 4px;
padding: 8px 20px;
margin: -20px -20px 20px -20px;
text-transform: uppercase;
letter-spacing: 0.5px;
}

.widget_block:first-child .widget-title,
.widget_block:first-child .wp-block-heading {
margin-top: -20px;
}

.single-sidebar {
    padding: 30px 0;
    min-width: 0;
}

.sidebar-thumbnail {
margin-bottom: 30px;
}

.widget_dhstheme_latest_posts {
	background: var(--light-bg);
  padding: 20px;
  margin-bottom: 20px;
  border-radius: 4px;
}

.sidebar-thumbnail img {
width: 100%;
height: auto;
display: block;
border-radius: 4px;
box-shadow: var(--box-shadow);
}

.widget_block {
    margin-bottom: 20px;
} 

.sidebar-downloads, .widget_block {
background: var(--light-bg);
padding: 20px;
border-radius: 4px;
/*border-left: 4px solid var(--primary-color); */
}

.sidebar-downloads h3 {
margin-top: 0;
margin-bottom: 15px;
color: var(--primary-color);
font-size: var(--large);
}

.sidebar-downloads ul {
list-style: none;
padding: 0;
margin: 0;
}

.sidebar-downloads li {
margin: 10px 0;
}

.sidebar-downloads a {
color: var(--primary-color);
text-decoration: none;
display: inline-flex;
align-items: center;
word-break: break-word;
}

.sidebar-downloads a:before {
content: "\f50b";
font-family: "Genericons";
margin-right: 8px;
font-size: 16px;
vertical-align: middle;
}

.sidebar-downloads a:hover {
text-decoration: underline;
color: inherit;
}

@media (max-width: 968px) {
.single.single-post #container,
.page-template-page-sidebar #container,
.home #container,
.blog #container {
grid-template-columns: 1fr;
gap: 30px;
}

.single-sidebar {
position: static;
}

.sidebar-thumbnail {
max-width: 400px;
margin-left: auto;
margin-right: auto;
}
}


.sidebar-meta {
background: var(--light-bg);
padding: 20px;
margin-top: 20px;
border-radius: 4px;
}

.sidebar-meta > div {
padding: 15px 0;
border-bottom: 1px solid var(--border-color);
}

.sidebar-meta > div:first-child {
padding-top: 0;
}

.sidebar-meta > div:last-child {
border-bottom: none;
padding-bottom: 0;
}

.sidebar-meta strong {
display: block;
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
color: #666;
margin-bottom: 8px;
}

.sidebar-meta a {
color: var(--primary-color);
text-decoration: none;
font-family: var(--font-serif);
font-size: var(--default);
display: inline;
line-height: 1.4;
}

.sidebar-meta a:hover {
text-decoration: underline;
color: inherit;
}


/* Link Icons - External, PDF, DOCX */
a.pdf:after,
a.docx:after {
content: "PDF ↗";
font-family: var(--font-mono);
font-size: 0.58rem;
color: #666;
border: 1px solid var(--border-color);
padding: 2px 6px;
white-space: nowrap;
margin-left: 6px;
display: inline-block;
vertical-align: middle;
text-decoration: none !important;
}
a.docx:after {
content: "DOCX ↗";
}

a.file:after {
content: "DATEI ↗";
font-family: var(--font-mono);
font-size: 0.58rem;
color: #666;
border: 1px solid var(--border-color);
padding: 2px 6px;
white-space: nowrap;
margin-left: 6px;
display: inline-block;
vertical-align: middle;
text-decoration: none !important;
}

a.external:after {
font-family: "Genericons";
margin-left: 4px;
font-size: var(--default);
vertical-align: middle;
text-decoration: none !important;
display: inline-block;
}

a.external::hover:after,
a.pdf::hover:after,
a.docx::hover:after,
a.file::hover:after {
text-decoration: none !important;
display: inline-block;
}

a.external:after {
content: "\f442";
}

/* Widget Icons - Before Text */

.widget_block a.pdf:before,
.widget-area a.pdf:before,
.single-sidebar a.pdf:before,
.widget_block a.docx:before,
.widget-area a.docx:before,
.single-sidebar a.docx:before {
content: "PDF ↗";
font-family: var(--font-mono);
font-size: 0.58rem;
color: #666;
border: 1px solid var(--border-color);
padding: 2px 6px;
white-space: nowrap;
margin-right: 6px;
display: inline-block;
vertical-align: middle;
text-decoration: none !important;
}

.widget_block a.docx:before,
.widget-area a.docx:before,
.single-sidebar a.docx:before {
content: "DOCX ↗";
}

.widget_block a.file:before,
.widget-area a.file:before,
.single-sidebar a.file:before {
content: "DATEI ↗";
font-family: var(--font-mono);
font-size: 0.58rem;
color: #666;
border: 1px solid var(--border-color);
padding: 2px 6px;
white-space: nowrap;
margin-right: 6px;
display: inline-block;
vertical-align: middle;
text-decoration: none !important;
}

.widget_block a.external:before,
.widget-area a.external:before,
.single-sidebar a.external:before {
font-family: "Genericons";
content: "\f442";
margin-right: 4px;
font-size: var(--default);
vertical-align: middle;
text-decoration: none !important;
display: inline-block;
}

/* Hide after icons in widgets */
.widget_block a.pdf:after,
.widget-area a.pdf:after,
.widget_block a.docx:after,
.widget-area a.docx:after,
.widget_block a.file:after,
.widget-area a.file:after,
.widget_block a.external:after,
.widget-area a.external:after,
.single-sidebar a.pdf:after,
.single-sidebar a.docx:after,
.single-sidebar a.file:after,
.single-sidebar a.external:after
 {
content: none;
display: none;
}


/* FOOTER Styles */

#footer {
    color: #fff;
    padding: 10px 5px;
    font-size: var(--small);
}


/* Carousel Loader */
.carousel-loader {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg-color, #f5f5f5);
	z-index: 20;
	transition: opacity 0.4s ease;
}

.carousel-loader-dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--primary-color, #888);
	animation: carouselPulse 1.2s ease-in-out infinite;
}

@keyframes carouselPulse {
	0%, 100% { transform: scale(0.6); opacity: 0.3; }
	50% { transform: scale(1); opacity: 1; }
}

.image-carousel-wrapper:not(.carousel-loading) .carousel-loader {
	opacity: 0;
	pointer-events: none;
}

.image-carousel-wrapper.carousel-loading .image-carousel-container,
.image-carousel-wrapper.carousel-loading .carousel-nav,
.image-carousel-wrapper.carousel-loading .carousel-dots {
	visibility: hidden;
}

/* Image Carousel Styles */
.image-carousel-wrapper {
position: relative;
max-width: 100%;
margin: 30px 0;
height: 450px;
overflow: hidden;
}

.image-carousel-container {
overflow: hidden;
position: relative;
height: 100%;
font-family: var(--font-sans);
}

.image-carousel {
display: flex;
transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
height: 100%;
position: relative;
}

.carousel-slide {
position: absolute;
height: 100%;
transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
opacity: 1;
transform: scale(0.88);
z-index: 1;
pointer-events: none;
}

.carousel-slide.active {
opacity: 1;
transform: scale(1);
z-index: 10;
pointer-events: auto;
}

.carousel-slide a {
display: flex;
height: 100%;
background: var(--primary-dark);
border-radius: 12px;
overflow: hidden;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2);
transition: box-shadow 0.3s ease, transform 0.3s ease;
text-decoration: none;
}

.carousel-slide.active a {
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}

.carousel-slide a:hover {
box-shadow: 0 16px 50px rgba(0, 0, 0, 0.4);
}

.carousel-caption {
flex: 1;
background-size: cover;
background-position: center;
color: #fff;
padding: 40px 30px;
font-size: var(--xlarge);
font-weight: 700;
line-height: 1.3;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
min-width: 200px;
position: relative;
overflow: hidden;
}

.carousel-caption::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: inherit;
filter: blur(20px);
transform: scale(1.1);
z-index: 0;
}

.carousel-caption::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3));
z-index: 1;
}

.carousel-caption-text {
position: relative;
z-index: 2;
}

.carousel-image-wrapper {
flex: 0 0 auto;
position: relative;
overflow: hidden;
background: #000;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}

.carousel-slide img {
width: auto;
height: 100%;
display: block;
object-fit: contain;
max-width: none;
}

.carousel-nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
background: transparent;
color: rgba(255, 255, 255, 0.4);
border: none;
font-size: 60px;
width: 60px;
height: 60px;
cursor: pointer;
transition: all 0.3s ease;
z-index: 100;
line-height: 1;
padding: 0;
}

.carousel-nav:hover {
color: rgba(255, 255, 255, 0.8);
transform: translateY(-50%) scale(1.1);
background: none !important;
}

.carousel-prev {
left: -5px;
}

.carousel-next {
right: -5px;
}

.carousel-dots {
position: absolute;
bottom: 15px;
left: 50%;
transform: translateX(-50%);
display: flex;
justify-content: center;
gap: 8px;
z-index: 100;
}

.carousel-dot {
width: 12px;
height: 12px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.6);
border: 2px solid rgba(255, 255, 255, 0.9);
cursor: pointer;
transition: all 0.3s ease;
padding: 0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.carousel-dot.active {
background: var(--primary-color);
border-color: var(--primary-color);
}

.carousel-dot:hover {
background: var(--primary-color);
border-color: var(--primary-color);
transform: scale(1.2);
}

@media (max-width: 768px) {
.image-carousel-wrapper {
height: 380px;
}

.carousel-slide {
width: 92%;
}

.carousel-slide a {
flex-direction: column;
}

.carousel-caption {
flex: 1;
padding: 25px 20px;
font-size: var(--large);
min-height: 100px;
}

.carousel-image-wrapper {
flex: 0 0 auto;
}

.carousel-nav {
font-size: 50px;
width: 50px;
height: 50px;
}

.carousel-prev {
left: 0;
}

.carousel-next {
right: 0;
}

.carousel-dots {
margin-top: 15px;
gap: 6px;
}

.carousel-dot {
width: 10px;
height: 10px;
}
}


/* Content Slider Home */
.content-slider-home {
 padding: 20px 0;
 background: #fff;
}

.content-slider-home .image-carousel-wrapper {
height: 300px;
margin: 0;
}

.content-slider-home .carousel-slide img {
height: 100%;
width: auto;
object-fit: contain;
}

.content-slider-home .carousel-caption {
padding: 25px 20px;
font-size: var(--large);
flex: 1;
}

.content-slider-home .carousel-dots {
bottom: 10px;
}

@media (max-width: 768px) {
.content-slider-home .image-carousel-wrapper {
height: 250px;
}

.content-slider-home .carousel-caption {
padding: 20px 15px;
font-size: var(--default);
}

.content-slider-home .carousel-dots {
bottom: 8px;
}
}

/* Hide page title on static front page */
.page.home > #container > #content > article > .header > .entry-title,
.page.front-page > #container > #content > article > .header > .entry-title {
	display: none;
}

/* File Upload Button Styling */
input[type="file"],
.wpcf7-file {
padding: 10px 12px;
border: 2px dashed var(--border-color);
border-radius: 4px;
font-size: var(--default);
font-family: inherit;
color: var(--text-color);
background: #fff;
cursor: pointer;
transition: all 0.3s ease;
width: 100%;
max-width: 100%;
}

input[type="file"]:hover,
.wpcf7-file:hover {
border-color: var(--primary-color);
background: var(--tertiary);
}

input[type="file"]:focus,
.wpcf7-file:focus {
outline: none;
border-color: var(--primary-color);
border-style: solid;
box-shadow: 0 0 0 2px rgba(52, 169, 225, 0.1);
}

input[type="file"]::file-selector-button,
.wpcf7-file::file-selector-button {
padding: 3px 8px;
background: var(--primary-dark);
color: #fff;
border: none;
border-radius: 4px;
font-size: var(--default);
font-family: inherit;
cursor: pointer;
margin-right: 12px;
transition: background 0.3s ease;
}

input[type="file"]::file-selector-button:hover,
.wpcf7-file::file-selector-button:hover {
background: var(--primary-dark);
}

/* Contact Form 7 Response Output */
#content .wpcf7-response-output {
padding: 15px 20px;
margin: 20px 0;
border-radius: 4px;
border: 2px solid;
font-size: var(--default);
line-height: 1.6;
background: #fff;
}

#content .wpcf7-mail-sent-ok {
background: #d4edda;
border-color: #28a745;
color: #155724;
}

#content .wpcf7-mail-sent-ng,
#content .wpcf7-aborted {
background: #f8d7da;
border-color: #dc3545;
color: #721c24;
}

#content .wpcf7-spam-blocked {
background: #fff3cd;
border-color: #ffc107;
color: #856404;
}

#content .wpcf7-validation-errors {
background: #fff3cd;
border-color: #ffc107;
color: #856404;
}

#content .wpcf7-not-valid-tip {
color: #dc3545;
font-size: var(--small);
display: block;
margin-top: 5px;
}

#content span.wpcf7-not-valid {
border-color: #dc3545 !important;
}

#content span.wpcf7-not-valid:focus {
box-shadow: 0 0 0 2px rgba(220, 53, 69, 0.1) !important;
}

/* Article Feed Footer Styles */
.entry-footer-box {
background: var(--quartary);
padding: 20px;
margin: 20px 0;
border-radius: 4px;
}

.entry-authors-title {
font-family: var(--font-mono);
font-size: var(--small);
font-weight: 500;
color: var(--secondary);
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 10px;
}

.entry-authors-list {
font-family: var(--font-serif);
font-size: var(--small);
line-height: 1.6;
color: var(--text-color);
font-style: italic;
}

.entry-tags {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 20px 0;
}

.entry-tag {
font-family: var(--font-mono);
display: inline-block;
padding: 3px 8px;
background: var(--primary-dark);
background: #fff;
border: 2px solid var(--primary-color);
border-radius: 4px;
text-decoration: none;
font-size: var(--small);
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
transition: all 0.3s ease;
}

.entry-tag:hover {
background: var(--primary-color);
color: #fff;
}

/* Search Results Authors (Legacy) */
.entry-authors {
font-size: var(--small);
margin-top: 10px;
color: #666;
padding-bottom: 20px;
}


/* =Citation Section with Tabs
-------------------------------------------------------------- */
.citation-section {
	margin: 2em 0 !important;
	border: 1px solid #ddd !important;
	border-radius: 4px;
	background: #fff;
	overflow: hidden;
}

.citation-section .nav-tabs {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid #ddd;
	display: flex;
	background: #f5f5f5;
}

.citation-section .nav-tabs .nav-item {
	margin: 0 !important;
	flex: 0 0 auto;
	list-style: none !important;
	padding: 0;
	border: none;
}

.citation-section .nav-tabs .nav-link {
	display: block;
	padding: 15px 15px !important;
	text-decoration: none;
	color: #555;
	border: none;
	border-bottom: 3px solid transparent;
	background: transparent;
	transition: all 0.3s ease;
	cursor: pointer;
	font-size: 16px;
}

.citation-section .nav-tabs .nav-link:hover {
	background: #e9e9e9;
	color: #333;
}

.citation-section .nav-tabs .nav-link.active {
	background: #fff;
	color: #333;
	border-bottom-color: #0073aa;
	font-weight: 600;
}

.citation-section .tab-content {
	padding: 0;
	background: #fff;
	border-radius: 4px;
}

.citation-section .tab-pane {
	display: none;
	padding: 0;
}

.citation-section .tab-pane.active {
	display: block;
}

.citation-content-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	background: #f9f9f9;
	padding: 15px;
	border-radius: 4px;
}

.citation-content {
	flex: 1;
	line-height: 1.25;
	color: #333;
	font-size: 15px;
}

.bibtex-content {
	flex: 1;
	background: #f5f5f5;
	padding: 15px;
	border: 1px solid #ddd;
	border-radius: 4px;
	border-radius: 4px;
	overflow-x: auto;
	font-family: 'Courier New', Courier, monospace;
	font-size: 12px;
	line-height: 1.1;
	margin: 0;
	color: #333;
	white-space: pre-wrap;
	word-wrap: break-word;
}

.citation-actions {
	display: flex;
	flex-direction: column;
	gap: 15px;
	align-items: center;
	flex-shrink: 0;
}

.citation-actions .genericon {
	font-size: 24px;
	color: #666;
	cursor: pointer;
	transition: all 0.3s ease;
	padding: 8px;
}

.citation-actions .genericon:hover {
	color: #0073aa;
	transform: scale(1.1);
}

.citation-actions .copy-icon,
.citation-actions .download-icon {
	display: inline-block;
}

.citation-actions a {
	text-decoration: none;
	line-height: 1;
	display: inline-block;
}

/* Responsive adjustments */
@media (max-width: 768px) {
	.citation-content-wrapper {
		flex-direction: column;
		padding: 20px;
	}
	
	.citation-actions {
		flex-direction: row;
		width: 100%;
		justify-content: center;
		gap: 25px;
	}
	
	.citation-section .nav-tabs {
		flex-direction: column;
	}
	
	.citation-section .nav-tabs .nav-item {
		width: 100%;
	}
	
	.citation-section .nav-tabs .nav-link {
		border-bottom: 1px solid #ddd;
		border-left: 3px solid transparent;
		padding: 12px 20px;
	}
	
	.citation-section .nav-tabs .nav-link.active {
		border-bottom: 1px solid #ddd;
		border-left-color: #0073aa;
		border-bottom-color: transparent;
	}
}


/* Widget Tag Cloud Styles */
.wp-block-tag-cloud,
.tagcloud,
.widget_tag_cloud {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin: 0;
padding: 0;
}

.wp-block-tag-cloud a,
.tagcloud a,
.widget_tag_cloud a {
font-family: var(--font-mono);
display: inline-block;
padding: 3px 8px;
background: #fff;
border-radius: 4px;
color: var(--primary-color);
text-decoration: none;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0px;
transition: all 0.3s ease;
line-height: 1.1;
}

.wp-block-tag-cloud a:hover,
.tagcloud a:hover,
.widget_tag_cloud a:hover {
background: var(--primary-color);
color: #fff;
}


/* Latest Posts Widget Styles */
.wp-block-latest-posts,
.wp-block-latest-posts__list {
list-style: none !important;
padding: 0 !important;
margin: 0 !important;
}

.wp-block-latest-posts li {
margin: 0 0 10px 0 !important;
padding: 0 0 10px 0 !important;
border-bottom: 1px solid var(--border-color);
list-style: none !important;
}

.wp-block-latest-posts li:last-child {
border-bottom: none;
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}

.wp-block-latest-posts a {
font-family: var(--font-serif);
font-size: var(--default);
line-height: 1.4;
color: var(--primary-color);
text-decoration: none;
display: block;
margin-bottom: 8px;
font-weight: normal;
}

.wp-block-latest-posts a:hover {
color: var(--secondary);
}

.wp-block-latest-posts__post-date,
.wp-block-latest-posts__post-author {
font-family: var(--font-mono);
font-size: var(--small);
color: #999;
display: inline-block;
margin-top: 5px;
margin-right: 10px;
}

.wp-block-latest-posts__post-excerpt {
font-family: var(--font-serif);
font-size: var(--default);
line-height: 1.6;
color: var(--text-color);
margin-top: 8px;
}
