diff --git a/functions.php b/functions.php
index ff72ed9..97cc898 100644
--- a/functions.php
+++ b/functions.php
@@ -10,7 +10,7 @@ if ( ! defined( 'ABSPATH' ) ) {
}
if ( ! defined( 'ZEITFRESSER_VERSION' ) ) {
- define( 'ZEITFRESSER_VERSION', '2.2.0' );
+ define( 'ZEITFRESSER_VERSION', '2.3.6' );
}
if ( ! defined( 'DAISY_BLOG_VERSION' ) ) {
@@ -20,6 +20,7 @@ if ( ! defined( 'DAISY_BLOG_VERSION' ) ) {
require get_template_directory() . '/inc/zeitfresser-helpers.php';
require get_template_directory() . '/inc/legacy-aliases.php';
require get_template_directory() . '/inc/performance-tools.php';
+require get_template_directory() . '/inc/zeitfresser-toc.php';
/**
* Theme setup.
@@ -108,6 +109,25 @@ function zeitfresser_widgets_init() {
}
add_action( 'widgets_init', 'zeitfresser_widgets_init' );
+/**
+ * Enqueue floating TOC assets on single posts.
+ *
+ * @return void
+ */
+function zeitfresser_enqueue_toc_assets() {
+ if ( is_singular( 'post' ) && zeitfresser_has_floating_toc() ) {
+ wp_enqueue_script(
+ 'zeitfresser-toc',
+ get_template_directory_uri() . '/js/toc.js',
+ array(),
+ ZEITFRESSER_VERSION,
+ true
+ );
+ }
+}
+add_action( 'wp_enqueue_scripts', 'zeitfresser_enqueue_toc_assets', 20 );
+
+
/**
* Return file version using filemtime in production-safe form.
*
diff --git a/inc/blocks/general/default-general.php b/inc/blocks/general/default-general.php
index 6cd9010..3158b50 100644
--- a/inc/blocks/general/default-general.php
+++ b/inc/blocks/general/default-general.php
@@ -14,4 +14,12 @@ function zeitfresser_get_default_sticky_menu() {
function zeitfresser_get_default_container_width() {
return 1400;
-}
\ No newline at end of file
+}
+
+function zeitfresser_get_default_show_article_toc() {
+ return true;
+}
+
+function zeitfresser_get_default_article_toc_min_headlines() {
+ return 3;
+}
diff --git a/inc/blocks/general/general.php b/inc/blocks/general/general.php
index 4d3d0e9..ed9757a 100644
--- a/inc/blocks/general/general.php
+++ b/inc/blocks/general/general.php
@@ -24,6 +24,7 @@ function zeitfresser_register_general_customization_section( $wp_customize ) {
require dirname( __FILE__ ) . '/default-general.php';
require dirname( __FILE__ ) . '/container-width/container-width.php';
require dirname( __FILE__ ) . '/social-links/social-links.php';
+require dirname( __FILE__ ) . '/toc-options.php';
require dirname( __FILE__ ) . '/../post-snippet/default-post-snippet.php';
require dirname( __FILE__ ) . '/../post-snippet/excerpt/excerpt.php';
diff --git a/inc/blocks/general/toc-options.php b/inc/blocks/general/toc-options.php
new file mode 100644
index 0000000..04ac8c5
--- /dev/null
+++ b/inc/blocks/general/toc-options.php
@@ -0,0 +1,99 @@
+
' . esc_html__( 'Article TOC:', 'zeitfresser' ) . '
';
+
+ $wp_customize->add_setting(
+ 'article_toc_options_heading',
+ array(
+ 'sanitize_callback' => 'wp_kses_post',
+ )
+ );
+
+ $wp_customize->add_control(
+ new Daisy_Blog_Custom_Text(
+ $wp_customize,
+ 'article_toc_options_heading',
+ array(
+ 'section' => 'daisy_blog_general_customization_section',
+ 'label' => $article_toc_title,
+ 'priority' => 12,
+ )
+ )
+ );
+
+ $wp_customize->add_setting(
+ 'show_article_toc',
+ array(
+ 'sanitize_callback' => 'zeitfresser_sanitize_checkbox',
+ 'default' => zeitfresser_get_default_show_article_toc(),
+ )
+ );
+
+ $wp_customize->add_control(
+ new Graphthemes_Toggle_Control(
+ $wp_customize,
+ 'show_article_toc',
+ array(
+ 'settings' => 'show_article_toc',
+ 'section' => 'daisy_blog_general_customization_section',
+ 'label' => esc_html__( 'Show Article TOC', 'zeitfresser' ),
+ 'description' => esc_html__( 'Enable the floating article TOC on single posts. Default: enabled.', 'zeitfresser' ),
+ 'type' => 'toggle',
+ 'priority' => 13,
+ )
+ )
+ );
+
+ $wp_customize->add_setting(
+ 'article_toc_min_headlines',
+ array(
+ 'sanitize_callback' => 'zeitfresser_sanitize_article_toc_min_headlines',
+ 'default' => zeitfresser_get_default_article_toc_min_headlines(),
+ )
+ );
+
+ $wp_customize->add_control(
+ 'article_toc_min_headlines',
+ array(
+ 'settings' => 'article_toc_min_headlines',
+ 'type' => 'number',
+ 'section' => 'daisy_blog_general_customization_section',
+ 'label' => esc_html__( 'Number of Headlines to Start TOC', 'zeitfresser' ),
+ 'description' => esc_html__( 'The article TOC is shown only when this number of headings or more is found. Default: 3.', 'zeitfresser' ),
+ 'priority' => 14,
+ 'input_attrs' => array(
+ 'min' => 1,
+ 'max' => 50,
+ 'step' => 1,
+ ),
+ )
+ );
+}
diff --git a/inc/zeitfresser-toc.php b/inc/zeitfresser-toc.php
new file mode 100644
index 0000000..6cb8447
--- /dev/null
+++ b/inc/zeitfresser-toc.php
@@ -0,0 +1,224 @@
+>}
+ */
+function zeitfresser_build_toc_payload( $post_id ) {
+ static $cache = array();
+
+ $post_id = (int) $post_id;
+
+ if ( isset( $cache[ $post_id ] ) ) {
+ return $cache[ $post_id ];
+ }
+
+ $payload = array(
+ 'content' => apply_filters( 'the_content', get_post_field( 'post_content', $post_id ) ),
+ 'items' => array(),
+ );
+
+ if ( ! $post_id || ! is_singular( 'post' ) || ! zeitfresser_show_article_toc() ) {
+ $cache[ $post_id ] = $payload;
+ return $payload;
+ }
+
+ $content = trim( (string) $payload['content'] );
+
+ if ( '' === $content ) {
+ $cache[ $post_id ] = $payload;
+ return $payload;
+ }
+
+ if ( ! class_exists( 'DOMDocument' ) ) {
+ $cache[ $post_id ] = $payload;
+ return $payload;
+ }
+
+ libxml_use_internal_errors( true );
+
+ $dom = new DOMDocument();
+ $loaded = $dom->loadHTML(
+ '' . $content . '
',
+ LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD
+ );
+
+ if ( ! $loaded ) {
+ libxml_clear_errors();
+ $cache[ $post_id ] = $payload;
+ return $payload;
+ }
+
+ $container = $dom->getElementById( 'zeitfresser-toc-root' );
+
+ if ( ! $container ) {
+ libxml_clear_errors();
+ $cache[ $post_id ] = $payload;
+ return $payload;
+ }
+
+ $index = 1;
+ $toc_items = array();
+ $xpath = new DOMXPath( $dom );
+ $headings = $xpath->query( './/h2 | .//h3 | .//h4', $container );
+
+ if ( $headings instanceof DOMNodeList ) {
+ foreach ( $headings as $heading ) {
+ $text = trim( wp_strip_all_tags( $heading->textContent ) );
+
+ if ( '' === $text ) {
+ continue;
+ }
+
+ $tag_name = strtolower( $heading->nodeName );
+ $id = $heading->getAttribute( 'id' );
+
+ if ( '' === $id ) {
+ $base_id = sanitize_title( $text );
+ $id = $base_id ? $base_id : 'section-' . $index;
+
+ while ( $dom->getElementById( $id ) ) {
+ $id = $base_id . '-' . $index;
+ $index++;
+ }
+
+ $heading->setAttribute( 'id', $id );
+ }
+
+ $toc_items[] = array(
+ 'id' => $id,
+ 'text' => $text,
+ 'level' => (int) substr( $tag_name, 1 ),
+ );
+
+ $index++;
+ }
+ }
+
+ libxml_clear_errors();
+
+ if ( count( $toc_items ) < zeitfresser_get_article_toc_min_headlines() ) {
+ $cache[ $post_id ] = array(
+ 'content' => zeitfresser_extract_toc_inner_html( $container ),
+ 'items' => array(),
+ );
+ return $cache[ $post_id ];
+ }
+
+ $cache[ $post_id ] = array(
+ 'content' => zeitfresser_extract_toc_inner_html( $container ),
+ 'items' => $toc_items,
+ );
+
+ return $cache[ $post_id ];
+}
+
+/**
+ * Extract container inner HTML.
+ *
+ * @param DOMNode $node Source node.
+ * @return string
+ */
+function zeitfresser_extract_toc_inner_html( $node ) {
+ $html = '';
+
+ if ( ! $node || ! $node->hasChildNodes() ) {
+ return $html;
+ }
+
+ foreach ( $node->childNodes as $child_node ) {
+ $html .= $node->ownerDocument->saveHTML( $child_node );
+ }
+
+ return $html;
+}
+
+/**
+ * Return whether the current singular post has a TOC.
+ *
+ * @param int|null $post_id Optional post ID.
+ * @return bool
+ */
+function zeitfresser_has_floating_toc( $post_id = null ) {
+ $post_id = $post_id ? (int) $post_id : get_the_ID();
+
+ if ( ! $post_id ) {
+ return false;
+ }
+
+ $payload = zeitfresser_build_toc_payload( $post_id );
+
+ return ! empty( $payload['items'] );
+}
+
+/**
+ * Render floating TOC markup.
+ *
+ * @param int|null $post_id Optional post ID.
+ * @return void
+ */
+function zeitfresser_render_floating_toc( $post_id = null ) {
+ $post_id = $post_id ? (int) $post_id : get_the_ID();
+
+ if ( ! $post_id ) {
+ return;
+ }
+
+ $payload = zeitfresser_build_toc_payload( $post_id );
+
+ if ( empty( $payload['items'] ) ) {
+ return;
+ }
+ ?>
+
+ *:first-child, .inside-page .main-wrapper .primary-content, .inside-page .main-wrapper #primary, .inside-page .main-wrapper main');
+ var sidebar = document.querySelector('.inside-page .main-wrapper > aside, .inside-page .main-wrapper .widget-area, .inside-page .main-wrapper #secondary, .inside-page .main-wrapper .sidebar');
+ var contentRect = contentColumn ? contentColumn.getBoundingClientRect() : titleRect;
+ var sidebarRect = sidebar ? sidebar.getBoundingClientRect() : null;
+ var mirroredGap = 56;
+
+ if (sidebarRect) {
+ mirroredGap = Math.max(Math.round(sidebarRect.left - contentRect.right), 40);
+ }
+
+ var maxWidth = Math.max(Math.round(contentRect.left - mirroredGap - 24), 180);
+ var tocWidth = Math.max(190, Math.min(250, maxWidth));
+ var tocLeft = Math.max(24, Math.round(contentRect.left - mirroredGap - tocWidth));
+ var tocTop = Math.max(stickyTop, Math.round(titleRect.top + scrollTop + 14));
+
+ document.documentElement.style.setProperty('--zeitfresser-toc-top', tocTop + 'px');
+ document.documentElement.style.setProperty('--zeitfresser-toc-left', tocLeft + 'px');
+ document.documentElement.style.setProperty('--zeitfresser-toc-width', tocWidth + 'px');
+ }
+
+ function setActiveLink(id) {
+ links.forEach(function (link) {
+ var active = link.getAttribute('data-target') === id;
+ link.classList.toggle('is-active', active);
+
+ if (active) {
+ link.setAttribute('aria-current', 'true');
+ } else {
+ link.removeAttribute('aria-current');
+ }
+ });
+ }
+
+ function updateProgress() {
+ if (!progressBar) {
+ return;
+ }
+
+ var article = document.querySelector('.single-post .post-content article, .single-post .post-content, article.post, article');
+ if (!article) {
+ progressBar.style.width = '0%';
+ return;
+ }
+
+ var rect = article.getBoundingClientRect();
+ var total = Math.max(article.offsetHeight - window.innerHeight, 1);
+ var progress = Math.min(Math.max((-rect.top / total) * 100, 0), 100);
+
+ progressBar.style.width = progress + '%';
+ }
+
+ function updateActiveHeading() {
+ var headings = getHeadings();
+
+ if (!headings.length) {
+ return;
+ }
+
+ var currentId = headings[0].target.id;
+ var triggerY = headingOffset + 24;
+
+ headings.forEach(function (item) {
+ if (item.target.getBoundingClientRect().top <= triggerY) {
+ currentId = item.target.id;
+ }
+ });
+
+ setActiveLink(currentId);
+ }
+
+ function onViewportChange() {
+ if (ticking) {
+ return;
+ }
+
+ ticking = true;
+
+ window.requestAnimationFrame(function () {
+ syncPosition();
+ updateProgress();
+ updateActiveHeading();
+ ticking = false;
+ });
+ }
+
+ links.forEach(function (link) {
+ link.addEventListener('click', function (event) {
+ var target = getTarget(link);
+
+ if (!target) {
+ return;
+ }
+
+ event.preventDefault();
+
+ var top = target.getBoundingClientRect().top + window.scrollY - headingOffset;
+
+ window.scrollTo({
+ top: top,
+ behavior: 'smooth'
+ });
+
+ setActiveLink(target.id);
+ });
+ });
+
+
+ if (nav) {
+ nav.addEventListener('wheel', function (event) {
+ var canScroll = nav.scrollHeight > nav.clientHeight;
+
+ if (!canScroll) {
+ return;
+ }
+
+ var atTop = nav.scrollTop <= 0;
+ var atBottom = Math.ceil(nav.scrollTop + nav.clientHeight) >= nav.scrollHeight;
+
+ if ((event.deltaY < 0 && !atTop) || (event.deltaY > 0 && !atBottom)) {
+ event.preventDefault();
+ nav.scrollTop += event.deltaY;
+ }
+ }, { passive: false });
+ }
+
+ syncPosition();
+ updateProgress();
+ updateActiveHeading();
+
+ window.addEventListener('scroll', onViewportChange, { passive: true });
+ window.addEventListener('resize', onViewportChange, { passive: true });
+});
diff --git a/style.css b/style.css
index 582fdd1..27fb9db 100644
--- a/style.css
+++ b/style.css
@@ -4,8 +4,8 @@ Theme Name: Zeitfresser
Author: Zeitfresser
Author URI: https://ztfr.eu/
Theme URI: https://ztfr.eu/
-Description: Zeitfresser Dracula Theme
-Version: 3.0.0
+Description: Zeitfresser Wordpress Theme
+Version: 4.0
Tested up to: 6.2
Requires PHP: 7.0
License: GNU General Public License v2 or later
@@ -16,10 +16,190 @@ Tags: blog, custom-colors, custom-header, editor-style, flexible-header, footer-
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.
-Zeitfresser is inspired by the famous Dracula Theme
+Zeitfresser Wordpress Theme
This theme is distributed under the terms of the GNU GPL
*/
html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*,*::before,*::after{box-sizing:inherit}html{box-sizing:border-box}body,button,input,select,optgroup,textarea{color:#404040;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}dfn,cite,em,i{font-style:italic}blockquote{margin:0 1.5em}address{margin:0 0 1.5em}pre{background:#eee;font-family:"Courier 10 Pitch",courier,monospace;line-height:1.6;margin-bottom:1.6em;max-width:100%;overflow:auto;padding:1.6em}code,kbd,tt,var{font-family:monaco,consolas,"Andale Mono","DejaVu Sans Mono",monospace}abbr,acronym{border-bottom:1px dotted #666;cursor:help}mark,ins{background:#fff9c0;text-decoration:none}big{font-size:125%}body{background:#fff}hr{background-color:#ccc;border:0;height:1px;margin-bottom:1.5em}ul,ol{margin:0 0 1.5em 3em}ul{list-style:disc}ol{list-style:decimal}li>ul,li>ol{margin-bottom:0;margin-left:1.5em}dt{font-weight:700}dd{margin:0 1.5em 1.5em}embed,iframe,object{max-width:100%}img{height:auto;max-width:100%}figure{margin:1em 0}table{margin:0 0 1.5em;width:100%}a{color:#4169e1}a:visited{color:#800080}a:hover,a:focus,a:active{color:#191970}a:focus{outline:thin dotted}a:hover,a:active{outline:0}button,input[type=button],input[type=reset],input[type=submit]{border:1px solid;border-color:#ccc #ccc #bbb;border-radius:3px;background:#e6e6e6;color:rgba(0,0,0,0.8);line-height:1;padding:0.6em 1em 0.4em}button:hover,input[type=button]:hover,input[type=reset]:hover,input[type=submit]:hover{border-color:#ccc #bbb #aaa}button:active,button:focus,input[type=button]:active,input[type=button]:focus,input[type=reset]:active,input[type=reset]:focus,input[type=submit]:active,input[type=submit]:focus{border-color:#aaa #bbb #bbb}input[type=text],input[type=email],input[type=url],input[type=password],input[type=search],input[type=number],input[type=tel],input[type=range],input[type=date],input[type=month],input[type=week],input[type=time],input[type=datetime],input[type=datetime-local],input[type=color],textarea{color:#666;border:1px solid #ccc;border-radius:3px;padding:3px}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=range]:focus,input[type=date]:focus,input[type=month]:focus,input[type=week]:focus,input[type=time]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=color]:focus,textarea:focus{color:#111}select{border:1px solid #ccc}textarea{width:100%}.sticky{display:block}.post,.page{margin:0}.updated:not(.published){display:none}.page-content,.entry-content,.entry-summary{margin:1.5em 0 0}.page-links{clear:both;margin:0 0 1.5em}.comment-content a{word-wrap:break-word}.bypostauthor{display:block}.widget{margin:0 0 1.5em}.widget select{max-width:100%}.page-content .wp-smiley,.entry-content .wp-smiley,.comment-content .wp-smiley{border:none;margin-bottom:0;margin-top:0;padding:0}.custom-logo-link{display:inline-block}.wp-caption{margin-bottom:1.5em;max-width:100%}.wp-caption img[class*=wp-image-]{display:block;margin-left:auto;margin-right:auto}.wp-caption .wp-caption-text{margin:0.8075em 0}.wp-caption-text{text-align:center}.gallery{margin-bottom:1.5em;display:grid;grid-gap:1.5em}.gallery-item{display:inline-block;text-align:center;width:100%}.gallery-columns-2{grid-template-columns:repeat(2,1fr)}.gallery-columns-3{grid-template-columns:repeat(3,1fr)}.gallery-columns-4{grid-template-columns:repeat(4,1fr)}.gallery-columns-5{grid-template-columns:repeat(5,1fr)}.gallery-columns-6{grid-template-columns:repeat(6,1fr)}.gallery-columns-7{grid-template-columns:repeat(7,1fr)}.gallery-columns-8{grid-template-columns:repeat(8,1fr)}.gallery-columns-9{grid-template-columns:repeat(9,1fr)}.gallery-caption{display:block}.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer{display:none}.infinity-end.neverending .site-footer{display:block}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute !important;width:1px;word-wrap:normal !important}.screen-reader-text:focus{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,0.6);clip:auto !important;-webkit-clip-path:none;clip-path:none;color:#21759b;display:block;font-size:0.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#primary[tabindex="-1"]:focus{outline:0}.alignleft{float:left;margin-right:1.5em;margin-bottom:1.5em}.alignright{float:right;margin-left:1.5em;margin-bottom:1.5em}.aligncenter{clear:both;display:block;margin-left:auto;margin-right:auto;margin-bottom:1.5em}body{font-family:var(--secondary-font);line-height:var(--line-height);font-weight:var(--font-weight);color:var(--dark-color)}.container{max-width:var(--container-width);margin:0 auto;padding:0 70px}@media only screen and (max-width:800px){.container{padding:0 20px}}a,a:visited{transition:all 0.2s ease;color:var(--primary-color);text-decoration:none;background:linear-gradient(var(--secondary-color),var(--secondary-color));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat}a:hover,a:focus,a:active,a:visited:hover,a:visited:focus,a:visited:active{color:var(--secondary-color);background-size:100% 1px}.main-wrapper{display:grid;grid-template-columns:9fr 3fr;-moz-column-gap:80px;column-gap:80px;row-gap:40px;margin:3rem 0}@media only screen and (max-width:900px){.main-wrapper{grid-template-columns:1fr}}.archive-wrapper{margin:2rem 0}.page-title{margin-top:0}.widget-title,.widget_block h2{font-size:1.2rem;margin:0 0 1.5rem 0;font-family:var(--primary-font);text-transform:uppercase}h1,h2,h3{font-family:var(--primary-font)}h1{font-size:2.488rem;font-weight:400;line-height:1.4}h2{font-size:2.074rem;line-height:1.2;font-weight:400}h3{font-size:1.6rem;line-height:1.2;font-weight:400}h4{font-size:1.44rem;font-weight:400}h5{font-size:1.2rem;font-weight:400}h6{font-size:1rem;line-height:1.3;font-weight:400}@media only screen and (max-width:900px){h1{font-size:1.802rem}h2{font-size:1.5rem}h3{font-size:1.424rem}h4{font-size:1.266rem}h4{font-size:1.125rem}h4{font-size:1rem}}@media only screen and (max-width:500px){h1{font-size:1.383rem}h2{font-size:1.296rem}h3{font-size:1.215rem}h4{font-size:1.138rem}h4{font-size:1.067rem}h4{font-size:1rem}}.wp-block-search__button,input[type=submit],input[type=button]{background-color:var(--primary-color);border:none;color:var(--light-color);padding:1.25rem 3rem;border-radius:0;cursor:pointer}.wp-block-search__button:hover,input[type=submit]:hover,input[type=button]:hover{background-color:var(--secondary-color)}.error-404{height:80vh;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;flex-direction:column}.error-404 h1{margin:0}.error-404 .search-form{text-align:center}.error-404 .search-form .search-field{padding:18px 18px 19px 18px;border-radius:0}@media only screen and (max-width:500px){.error-404 .search-form .search-field{width:100%}}@media only screen and (max-width:500px){.error-404 .search-form input[type=submit]{width:100%;margin-top:15px}}.main-navigation ul{padding:0;margin:0}.main-navigation ul ul{text-align:left;transition:all 500ms ease;-webkit-transition:all 500ms ease;-moz-transition:all 500ms ease;-o-transition:all 500ms ease;-ms-transition:all 500ms ease;top:100%;left:0;box-shadow:0 0px 20px rgba(166,166,166,0.25);width:220px;position:absolute;z-index:999;transform-origin:top;animation-fill-mode:forwards;transform:scale(1,0);display:block;opacity:0;background-color:var(--light-color)}.main-navigation ul ul ul{left:100%;top:0;left:100%;top:0}.main-navigation ul ul li:hover>ul{opacity:1;left:100%}.main-navigation ul li:hover>ul{display:block;opacity:1;z-index:1000;transform:scale(1,1);transition:transform 0.3s ease,opacity 0.2s ease 0.1s;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.2s ease 0.1s}.main-navigation ul li:focus>ul{display:block;opacity:1;z-index:1000;transform:scale(1,1);transition:transform 0.3s ease,opacity 0.2s ease 0.1s;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.2s ease 0.1s}.main-navigation ul li li:last-child>a{border:none}.main-navigation ul li li a:hover:after{display:none}.main-navigation ul li a{font-family:var(--secondary-font);display:block;padding:8px 20px;position:relative;z-index:99;transition:all 0.3s ease;font-size:0.9rem;text-transform:uppercase;letter-spacing:1px}.main-navigation ul li ul li a{padding:10px 20px !important}.main-navigation ul li ul li.page_item_has_children>a::before{content:"▾";right:15px}.main-navigation ul li ul li.page_item_has_children>a::before .main-navigation ul li ul li.menu-item-has-children>a::before{right:20px;top:10px;transform:rotate(-90deg)}.main-navigation ul li ul li.menu-item-has-children>a::before{content:"›";right:15px}.main-navigation ul li.focus>ul{display:block;opacity:1;z-index:1000;transform:scale(1,1);transition:transform 0.3s ease,opacity 0.2s ease 0.1s;-webkit-transition:-webkit-transform 0.3s ease,opacity 0.2s ease 0.1s}.main-navigation ul>li:hover>ul{opacity:1;left:0;z-index:999;background:var(--light-color)}.main-navigation ul li.page_item_has_children>a::before{content:"▾";position:absolute;right:5px;top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%);transition:all 0.3s ease-in-out;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out}.main-navigation ul li.menu-item-has-children>a::before{content:"▾";position:absolute;right:5px;top:50%;transform:translateY(-50%);-webkit-transform:translateY(-50%);transition:all 0.3s ease-in-out;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out}.main-navigation li{position:relative;display:inline-block;margin-bottom:0}.main-navigation li li{float:none;display:block}.main-navigation li>a{position:relative}.main-navigation li li.current_page_item>a:after{display:none}.main-navigation li li.current-menu-item>a:after{display:none}.main-navigation .dropdown-toggle::after{display:none !important}@media screen and (min-width:37.5em){.menu-toggle{display:none}}@media screen and (max-width:1200px){.menu-toggle{display:block;background:none;padding:0;z-index:999;margin:0 auto}.navbar-toggler{margin:0 0 0 auto;border:0;border-radius:0;padding:0}#nav-icon{width:26px;height:24px;position:relative;margin:0 auto;transform:rotate(0deg);cursor:pointer}#nav-icon span{display:block;position:absolute;height:1px;width:100%;opacity:1;left:0;transform:rotate(0deg);background:var(--primary-color)}#nav-icon span:nth-child(1){top:0px}#nav-icon span:nth-child(2),#nav-icon span:nth-child(3){top:9px}#nav-icon span:nth-child(4){top:18px}.main-navigation.toggled #nav-icon span:nth-child(1){top:7px;width:0%;left:50%}.main-navigation.toggled #nav-icon span:nth-child(2){transform:rotate(45deg)}.main-navigation.toggled #nav-icon span:nth-child(3){transform:rotate(-45deg)}.main-navigation.toggled #nav-icon span:nth-child(4){top:7px;width:0%;left:50%}.main-navigation ul li a{padding:10px 15px;width:100%}.main-navigation ul li.page_item_has_children>a::before,.main-navigation ul li.menu-item-has-children>a::before{right:15px}.main-navigation ul li ul li.page_item_has_children>a::before,.main-navigation ul li ul li.menu-item-has-children>a::before{right:15px}▾ .main-navigation ul li ul li.page_item_has_children>a::before,.main-navigation ul li ul li.menu-item-has-children>a::before{content:"▾"}.main-navigation ul ul{visibility:initial;opacity:1;transition:initial;top:initial;left:initial;width:100%;position:static;z-index:999;transform-origin:initial;animation-fill-mode:initial;transform:initial;box-shadow:initial;height:0;overflow:hidden;background-color:#fff;margin:0}.main-navigation li{display:block;border-bottom:1px solid #eee}.main-navigation .nav-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.1);z-index:999;margin:0}.main-navigation.toggled .nav-menu{display:block;z-index:999}.main-navigation ul li:hover>ul,.main-navigation ul li:focus>ul,.main-navigation ul li.focus>ul{height:auto;overflow:visible;z-index:1000}.main-navigation ul ul ul{left:initial;top:initial;border-style:solid none none;border-top:1px solid #ddd}.header .header-wrapper{display:flex;flex-wrap:wrap}.header-wrapper .main-navigation ul{float:none}}.post-navigation .nav-links{display:flex}.post-navigation .nav-links .nav-previous{flex:1 0 50%}.post-navigation .nav-links .nav-previous:before{content:"←";margin-right:5px}.post-navigation .nav-links .nav-next{text-align:end;flex:1 0 50%}.post-navigation .nav-links .nav-next:after{content:"→";margin-left:5px}#nav-icon3{width:40px;height:30px;position:relative;transform:rotate(0deg);transition:0.5s ease-in-out;cursor:pointer;border:none}#nav-icon3 span{display:block;position:absolute;height:3px;width:100%;background:var(--primary-color);border-radius:9px;opacity:1;left:0;transform:rotate(0deg);transition:0.25s ease-in-out}#nav-icon3 span:nth-child(1){top:0px}#nav-icon3 span:nth-child(2),#nav-icon3 span:nth-child(3){top:11px}#nav-icon3 span:nth-child(4){top:22px}#nav-icon3.open span:nth-child(1){top:11px;width:0%;left:50%}#nav-icon3.open span:nth-child(2){transform:rotate(45deg)}#nav-icon3.open span:nth-child(3){transform:rotate(-45deg)}#nav-icon3.open span:nth-child(4){top:11px;width:0%;left:50%}header a{transition:all 0.3s ease}header.site-header{padding:0;position:relative;background:var(--light-color)}@media screen and (max-width:900px){header.site-header{margin:0 0 30px}}header.site-header .header-wrapper{padding:3rem 0}@media screen and (max-width:900px){header.site-header .header-wrapper{padding:1rem 0}}header.site-header .header-wrapper .site-header-wrapper{display:flex;align-items:center;justify-content:space-between}header.site-header .header-wrapper .site-header-wrapper .nav-social-links{display:flex;align-items:center;grid-gap:20px}header.site-header .header-wrapper .site-header-wrapper .site-branding{min-width:var(--logo-size);display:flex;align-items:center;gap:10px;width:350px}header.site-header .header-wrapper .site-header-wrapper .site-branding .custom-logo-link{background:none}header.site-header .header-wrapper .site-header-wrapper .site-branding .custom-logo-link img{width:var(--logo-size);max-width:none}header.site-header .header-wrapper .site-header-wrapper .site-branding .site-identity{width:-moz-max-content;width:max-content}header.site-header .header-wrapper .site-header-wrapper .site-branding .site-identity .site-title{font-size:var(--site-identity-font-size);font-family:var(--site-identity-font-family);line-height:1.25em;width:-moz-max-content;width:max-content}header.site-header .header-wrapper .site-header-wrapper .site-branding .site-identity .site-title .logo{color:var(--site-title-color);font-weight:500}header.site-header .header-wrapper .site-header-wrapper .site-branding .site-identity .site-title .logo:hover{color:var(--secondary-color)}header.site-header .header-wrapper .site-header-wrapper .site-branding .site-identity .site-description{font-size:1rem;width:-moz-max-content;width:max-content}header.site-header.sticky-header{position:sticky;top:0;z-index:100}@media only screen and (max-width:768px){header.site-header .social-links{display:none}}header.site-header .social-links svg{fill:var(--primary-color);max-width:1rem;height:1rem}header.site-header .social-links svg:hover{fill:var(--secondary-color)}.top-bar{background-color:var(--secondary-color);min-height:32px}.top-bar .social-links{justify-content:flex-end;padding:0.5rem 0}.top-bar .top-wrapper{display:flex;justify-content:space-between;position:relative}.logged-in header.sticky-header{top:32px}#breadcrumbs{list-style:none;margin:3rem 0 1rem 0;padding:0;overflow:hidden;font-size:0.75rem;text-transform:uppercase}#breadcrumbs li{display:inline-block;vertical-align:middle;margin-right:15px}#breadcrumbs li.separator{font-size:18px;font-weight:100;color:#ccc}.site-header .search-form{position:absolute;left:0;top:0}@media only screen and (max-width:500px){.site-header .search-form{left:-20px;right:-20px}}.site-header .search-field{background-color:transparent;background-image:url(images/search.svg);background-position:5px center;background-repeat:no-repeat;background-size:20px;border:none;cursor:pointer;height:32px;margin:0 0;padding:0 5px 0 45px;border-radius:0;position:relative;transition:width 400ms ease,background 400ms ease;width:0;color:var(--dark-color) !important}@media only screen and (max-width:500px){.site-header .search-field{background-position:15px center}}.site-header .search-field:focus{background-color:rgba(255,255,255,0.85);background-image:url(images/search-b.svg);border:none;cursor:text;outline:0;width:320px}@media only screen and (max-width:500px){.site-header .search-field:focus{width:100%}}.site-header .search-field::-moz-placeholder{color:var(--dark-color) !important;font-weight:300}.site-header .search-field::placeholder{color:var(--dark-color) !important;font-weight:300}.site-header .search-submit{display:none}.news-snippet .news-title{margin-top:0.3rem;margin-bottom:0.7rem}.news-snippet .featured-image{background:none;margin:0;display:flex}.news-snippet .summary .excerpt{margin:0.5rem 0;font-family:var(--secondary-font);color:#555}.news-snippet .summary{margin-top:1rem}.news-snippet .summary .category,.news-snippet .summary .tags{font-family:var(--secondary-font);font-weight:400;font-size:0.7rem}.news-snippet .summary .category a,.news-snippet .summary .tags a{margin:0 0.5rem 0.5rem 0;display:inline-block;vertical-align:top;text-transform:uppercase;background:none;position:relative}.news-snippet .summary .category a:before,.news-snippet .summary .tags a:before{content:",";position:absolute;right:-6px}.news-snippet .summary .category a:last-child:before,.news-snippet .summary .tags a:last-child:before{content:none}.news-snippet .summary .category a:hover,.news-snippet .summary .tags a:hover{color:var(--secondary-color);border-color:var(--secondary-color)}.custom-grid-view{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:70px}@media screen and (max-width:500px){.custom-grid-view{grid-gap:40px}}.readmore{display:flex;align-items:center;gap:7px;font-family:var(--primary-font)}.readmore svg{height:19px;fill:var(--primary-color)}.readmore svg:hover{fill:var(--dark-color)}.info{font-size:0.85rem;color:var(--grey-color)}.info .post-author{display:flex;align-items:center;margin-left:0.5rem}.info .post-author:before{content:"";background-color:var(--grey-color);height:1px;width:20px;display:inline-block;margin-right:0.5rem}.info .comments{display:flex;align-items:center;gap:5px;font-style:normal;font-family:var(--primary-font);margin:0.5rem 0}.info .comments a{background:none;color:var(--grey-color)}.info .comments a:hover{color:var(--primary-color)}.info .comments svg{fill:var(--primary-color)}.info.ifoot{text-transform:uppercase;font-size:0.9rem;margin:1.3rem 0}.info.ihead,.info.ifoot{display:flex;justify-content:space-between;align-items:center}@media only screen and (max-width:500px){.info.ihead,.info.ifoot{flex-wrap:wrap;gap:10px}}.list-inline{list-style:none;margin:0;padding:0;display:flex;align-items:center}.list-inline li{color:var(--dark-color)}.list-inline a{background:none;color:var(--dark-color);display:inline-flex;margin:0.5rem 0}.list-inline a:hover{color:var(--secondary-color)}.main-wrapper .category,.main-wrapper .tags{display:flex;gap:0.5rem;margin:1rem 0;font-family:var(--secondary-font);font-weight:400;font-size:0.85rem;text-transform:uppercase}.main-wrapper .category a,.main-wrapper .tags a{display:flex;align-items:center;background:none;color:var(--dark-color);position:relative;margin:0 0.5rem 0.5rem 0}.main-wrapper .category a:before,.main-wrapper .tags a:before{content:",";position:absolute;right:-6px}.main-wrapper .category a:last-child:before,.main-wrapper .tags a:last-child:before{content:none}.main-wrapper .category a:hover,.main-wrapper .tags a:hover{color:var(--secondary-color);border-color:var(--secondary-color)}.social-share .list-inline{gap:7px}.social-share .list-inline li{display:inline-flex;font-family:var(--primary-font)}.social-share .list-inline li svg{height:1rem;width:auto;fill:var(--secondary-color)}.social-share .list-inline li svg:hover{fill:var(--primary-color)}.related-posts{margin:4rem 0}.related-posts .post-holder{display:grid;grid-template-columns:1fr 1fr 1fr;grid-column-gap:2rem}@media only screen and (max-width:500px){.related-posts .post-holder{grid-template-columns:1fr}}.related-posts .post-holder .news-snippet{margin-bottom:1rem;flex-wrap:nowrap;flex-direction:column}.related-posts .post-holder .news-snippet .featured-image{display:flex;width:100%}.related-posts .post-holder .news-snippet h5{margin:1rem 0;line-height:1.25;font-family:var(--primary-font)}.posts-navigation .nav-links{display:flex;justify-content:space-between}.pagination{margin-top:2rem}.pagination ul{display:flex;list-style:none;margin:0;padding:0;justify-content:center;gap:1rem}.pagination ul .active a{color:var(--dark-color)}@media only screen and (max-width:900px){.widget-area{display:grid;grid-template-columns:1fr 1fr;gap:2rem}}@media only screen and (max-width:500px){.widget-area{grid-template-columns:1fr;gap:1rem}}.widget-area .widget{padding:1.5rem;border:1px dotted #bbb;font-family:var(--secondary-font)}.widget-area .widget .widget-title{font-family:var(--primary-font);margin:0 0 1.5rem;text-transform:uppercase;font-size:1.2rem}.widget-area .widget ul,.widget-area .widget ol{padding:0;margin:0;list-style:none}.widget-area .widget.widget_archive li,.widget-area .widget.widget_categories li,.widget-area .widget.widget_recent_comments li,.widget-area .widget.widget_meta li,.widget-area .widget.widget_recent_entries li,.widget-area .widget.widget_block li{border-bottom:1px solid rgba(0,0,0,0.1098039216);padding-bottom:0.5rem;margin-bottom:0.5rem}.widget-area .widget.widget_archive li:last-child,.widget-area .widget.widget_categories li:last-child,.widget-area .widget.widget_recent_comments li:last-child,.widget-area .widget.widget_meta li:last-child,.widget-area .widget.widget_recent_entries li:last-child,.widget-area .widget.widget_block li:last-child{margin-bottom:0;border:none}.widget-area .widget .info{font-family:var(--secondary-font);margin:0.5rem 0 0}.widget-area .widget.widget_search .wp-block-search__label{display:none}.widget-area .widget.widget_search .wp-block-search__inside-wrapper{display:grid;grid-template-columns:4fr 1fr}@media only screen and (max-width:1200px){.widget-area .widget.widget_search .wp-block-search__inside-wrapper{display:block}}@media only screen and (max-width:900px){.widget-area .widget.widget_search .wp-block-search__inside-wrapper{display:grid}}.widget-area .widget.widget_search .wp-block-search__inside-wrapper input[type=search]{height:100%;width:100%;border-radius:0;padding:1rem 1.5rem}.widget-area .widget.widget_search .wp-block-search__inside-wrapper input[type=submit],.widget-area .widget.widget_search .wp-block-search__inside-wrapper .wp-block-search__button{padding:1rem 2rem;width:100%}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder{text-align:center;font-family:var(--secondary-font)}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .image-holder img{border-radius:50%;width:150px;height:150px;-o-object-fit:cover;object-fit:cover}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder h5{margin:1rem 0;font-family:var(--primary-font);font-weight:400}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .author-bio-content{margin:1rem 0 2rem 0}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .btn-readmore{background-color:var(--primary-color);color:var(--light-color);padding:0.5rem 3rem;display:inline-block;background-size:0}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .btn-readmore:hover{background-color:var(--secondary-color)}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .social-share{display:flex;justify-content:center;align-items:center;margin-top:1.5rem}.widget-area .widget.widget_daisy_blog_widget_author_profile .graphthemes-widget-author-bio-holder .social-share ul{gap:1rem}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li{display:flex;margin-bottom:1rem}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li:last-child,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li:last-child{margin-bottom:0}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li .post-thumbnail,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li .post-thumbnail{margin:2px 15px 0 0;flex-shrink:0;flex-basis:100px;background:none}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li .post-thumbnail img,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li .post-thumbnail img{height:70px;-o-object-fit:cover;object-fit:cover}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li .entry-header,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li .entry-header{flex:auto}.widget-area .widget.widget_daisy_blog_widget_popular_post ul li h6,.widget-area .widget.widget_daisy_blog_widget_recent_post ul li h6{margin:0;font-weight:400;font-family:var(--primary-font)}.inside-page .inner-article-content{font-family:var(--secondary-font)}.inside-page .inner-article-content a{background-size:100% 1px;color:var(--secondary-color)}.inside-page .inner-article-content a:hover{background-size:0 1px;color:var(--primary-color)}.inside-page .entry-footer a{color:var(--secondary-color)}header.page-header{margin-bottom:2rem;color:var(--secondary-color)}header.page-header h1{font-size:1rem;margin:0}header.page-header .archive-description{color:var(--dark-color)}.entry-header h1.entry-title{margin:0 0 2rem 0;line-height:1.2;font-weight:400}.entry-content a{background-size:100% 1px;transition:all 0.2s ease}.entry-content a:hover,.entry-content a:focus{background-image:linear-gradient(var(--dark-color),var(--dark-color))}.featured-image{background-size:0 !important}.featured-image img{width:100%}.single-post ol,.single-post ul{margin-left:0}.single-post .wp-block-pullquote{margin:4rem 0 1rem 0}.single-post .wp-block-pullquote blockquote{position:relative}.single-post .wp-block-pullquote blockquote p{font-style:italic;font-size:1.5rem}.single-post .wp-block-pullquote blockquote::before{content:open-quote;font-size:10rem;color:var(--primary-color);position:absolute;top:-8rem}.single-post .wp-block-quote{margin:2rem;border-left:5px solid var(--primary-color);padding-left:2rem}.single-post .wp-block-quote p{font-style:italic;font-size:1.5rem}.single-post .wp-block-preformatted,.single-post .wp-block-verse{background:var(--light-color)}.author-post{display:flex;justify-content:flex-start;background:var(--light-color);align-items:flex-start;gap:1rem;margin-bottom:2rem;font-family:var(--primary-font)}.author-post .author-image{width:20%}.author-post .author-image a{background:none;display:block}.author-post .author-image a img{width:100%;display:block}.author-post .author-details{width:80%;padding:20px 0}.author-post h4{margin:0 0 1rem 0;line-height:1}.comments-area{margin-top:4rem}.comments-area .comments-title{font-size:1.5rem}.comments-area .comment-form a{color:var(--secondary-color)}.comments-area ol{list-style:none}.comments-area ol.comment-list{margin:0;padding:0}.comments-area ol.comment-list .thread-even{background:#ffffff;padding:2rem;font-family:var(--primary-font)}.comments-area ol.comment-list .thread-odd{background:rgba(255,255,255,0.4392156863);padding:2rem}.comments-area ol.comment-list .children{margin-top:1rem}.comments-area .comment-author{display:flex;align-items:center;gap:5px;margin-bottom:5px}.comments-area .comment-author img{height:2.5rem;width:2.5rem}.comments-area .comment-metadata{font-size:0.75rem;text-transform:uppercase;display:flex;align-items:stretch;justify-content:space-between}footer.site-footer{background-color:var(--dark-color);color:var(--light-color);padding:2rem 0 1rem 0}footer.site-footer .site-info{font-size:1rem;align-items:center;text-align:center;padding:1rem 0}footer.site-footer .site-info a{color:var(--light-color)}footer.site-footer .site-info a:hover{text-decoration:none;color:var(--grey-color)}footer.site-footer .site-info a.footer-brand{text-decoration:underline}footer.site-footer .site-info a.footer-brand:hover{text-decoration:none}.social-links{display:flex;justify-content:center}.social-links ul li{display:flex}.social-links ul li a{margin:0 0.5rem}.social-links ul li a svg{fill:var(--light-color);max-width:1rem;height:1rem}.social-links ul li a svg:hover{fill:var(--grey-color)}.scroll-to-top{width:2.5rem;height:2.5rem;display:inline-block;position:fixed;right:2rem;bottom:2rem;border-radius:50%;background:var(--secondary-color);cursor:pointer}.scroll-to-top svg{width:100%;fill:var(--light-color)}.scroll-to-top:hover{background:var(--grey-color);transform:scale(0.9)}div.excerpt{color:#FFFFFF !important}html,body{overflow-x:hidden}p,div,span,article,section,li,td{word-break:break-word;overflow-wrap:break-word;max-width:100%}pre,code{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-width:100%}img,iframe,embed{max-width:100%;height:auto;display:block}.post-content a:not(.btn):not(.custom-box a),.entry-content a:not(.btn):not(.custom-box a){color:#f7f7fa !important;text-decoration:none !important;border-bottom:1px solid transparent;transition:color 0.2s ease}.post-content a:not(.btn):not(.custom-box a):hover,.entry-content a:not(.btn):not(.custom-box a):hover{color:#bd93f9 !important}.post-content ul,.post-content ol{margin-left:0 !important;padding-left:1.0em !important;list-style-position:inside !important}.post-content .list-inline{display:flex !important;align-items:center !important;justify-content:flex-start !important;padding:0 !important;margin:0 !important}.post-content .post-date{display:inline-flex !important;align-items:center !important;margin-left:0 !important;padding-left:0 !important}.post-content .post-date .icon-calendar{margin-left:0 !important;padding-left:0 !important;vertical-align:middle !important}.toc{list-style:none;margin-left:0;margin-bottom:0;padding:1em;border-radius:4px;border:1px solid rgba(255,255,255,0.5);background-color:rgba(255,255,255,0.5)}.custom-box{background-color:#F7F7FA;padding:1px 20px;margin:5px 0;font-size:14px;color:#404040;text-align:justify;border-radius:6px;box-shadow:0 4px 6px rgba(0,0,0,0.1)}.custom-box a{color:black !important;text-decoration:underline;text-decoration-color:black}.custom-box a:hover{text-decoration:underline;text-decoration-color:white}.comment-list .comment,.comment-list .children .comment{background-color:#2f313d !important;color:#FFFFFF !important;padding:20px !important;border:none !important;border-left:4px solid #bd93f9 !important;margin-bottom:15px !important;transition:none !important}.comment-list .comment:hover,.comment-list .children .comment:hover{background-color:#2f313d !important}.comment-list .comment-respond,.comment-list .comment-form,.comment-list .comment-form-comment,.comment-list .form-submit{border:none !important;padding:20px !important;background-color:#2f313d !important;color:#FFFFFF !important}.comment-list .reply a{color:#bd93f9 !important;text-decoration:none;font-weight:bold}.widget,.sidebar .widget,#secondary .widget{background-color:#2f313d !important;color:#FFFFFF !important;padding:20px !important;border:none !important;border-left:none !important;margin-bottom:20px !important;transition:none !important}.widget:hover,.sidebar .widget:hover,#secondary .widget:hover{background-color:#2f313d !important}.widget a,.sidebar .widget a{color:#f7f7fa !important;text-decoration:none}.widget a:hover,.sidebar .widget a:hover{color:#bd93f9 !important}.widget .widget-title,.widget h2,.widget h3{color:#bd93f9 !important;margin-top:0 !important;margin-bottom:15px !important;font-size:1.1rem !important;text-transform:uppercase;letter-spacing:0.5px}footer,.site-footer{background-color:#2f313d !important;color:#FFFFFF !important;padding:30px !important;border:none !important;margin-top:40px !important;transition:none !important}footer:hover{background-color:#2f313d !important}footer a{color:#f7f7fa !important;text-decoration:none !important;border-bottom:1px solid rgba(189,195,199,0.3) !important}footer a:hover{color:#bd93f9 !important;border-bottom-color:#bd93f9 !important}footer a[class*="icon-"],footer a[class*="fa-"],footer .social-icons a,footer .social-links a,footer .social-links a svg,footer .social-links a path,footer .menu-social a,footer a svg{color:#f7f7fa !important;fill:#f7f7fa !important;stroke:#f7f7fa !important;border-bottom:none !important;text-decoration:none !important}footer a[class*="icon-"]:hover,footer a[class*="fa-"]:hover,footer .social-icons a:hover,footer .social-links a:hover,footer .social-links a:hover svg,footer .social-links a:hover path,footer .social-links a:hover path,footer .social-links a:hover svg path,footer .social-links a:hover *,footer .social-links a:hover{color:#bd93f9 !important;fill:#bd93f9 !important;stroke:#bd93f9 !important}.site-header .social-links a,.site-header .social-links a svg,.site-header .social-links a path{color:#f7f7fa !important;fill:#f7f7fa !important;stroke:#f7f7fa !important;border-bottom:none !important}.site-header .social-links a:hover,.site-header .social-links a:hover svg,.site-header .social-links a:hover path,.site-header .social-links a:hover *,.nav-social-links .social-links a:hover,.nav-social-links .social-links a:hover svg,.nav-social-links .social-links a:hover path{color:#bd93f9 !important;fill:#bd93f9 !important;stroke:#bd93f9 !important}@media (max-width:1024px){.main-navigation ul{background-color:#1e1f29 !important}.main-navigation ul li a{color:#f7f7fa !important}.menu-toggle::before,.menu-toggle::after,.menu-toggle span::before{background-color:#f7f7fa !important}}.widget_search{background:transparent !important;padding:0 !important;margin-bottom:20px !important}.widget_search form{display:flex !important;background-color:#383a4a !important;border-radius:4px !important;padding:0 !important;border:1px solid #4a4d61 !important;height:32px !important;align-items:center !important;overflow:hidden !important}.widget_search input[type="search"],.widget_search input[type="text"]{background:transparent !important;border:none !important;color:#FFFFFF !important;padding:0 10px !important;width:100% !important;height:100% !important;outline:none !important;margin:0 !important}.widget_search input[type="submit"],.widget_search button[type="submit"]{background-color:#bd93f9 !important;color:#1e1f29 !important;border:none !important;padding:0 12px !important;height:100% !important;margin:0 !important;font-weight:700 !important;font-size:0.75rem !important;cursor:pointer;text-transform:uppercase;display:flex !important;align-items:center !important}.widget_search form:focus-within{border-color:#bd93f9 !important}:root{--zeitfresser-body-fallback:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--zeitfresser-heading-fallback:"Oswald",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}body{font-family:var(--secondary-font),var(--zeitfresser-body-fallback) !important;background-color:#1e1f29}.site-title,.site-title a,.main-navigation a,.widget .widget-title,.widget h2,.widget h3{font-family:var(--site-identity-font-family),var(--zeitfresser-heading-fallback)}.site-description,body,button,input,select,textarea{font-family:var(--secondary-font),var(--zeitfresser-body-fallback)}.social-links a{display:inline-flex;align-items:center;justify-content:center;transition:color 0.2s ease,fill 0.2s ease,stroke 0.2s ease,transform 0.2s ease}.social-links a:hover{transform:translateY(-1px)}.social-links svg{width:18px;height:18px;display:block}.scroll-to-top{transition:opacity 0.2s ease,transform 0.2s ease}.scroll-to-top:hover{transform:translateY(-2px)}
+
+/* ==========================================================================
+ Floating TOC – consolidated production block
+ ========================================================================== */
+
+:root{
+ --zeitfresser-toc-top-offset: 10px;
+ --zeitfresser-toc-width: 230px;
+}
+
+.zeitfresser-article-heading{
+ display:flex;
+ align-items:flex-start;
+ gap:0;
+}
+
+.zeitfresser-toc-toggle,
+.zeitfresser-floating-toc__close{
+ display:none !important;
+}
+
+.zeitfresser-floating-toc{
+ position:fixed;
+ top:calc(var(--zeitfresser-toc-top, 100px) + var(--zeitfresser-toc-top-offset, 0px)) !important;
+ left:var(--zeitfresser-toc-left, 24px) !important;
+ width:var(--zeitfresser-toc-width) !important;
+ max-height:calc(100vh - var(--zeitfresser-toc-top, 100px) - var(--zeitfresser-toc-top-offset, 0px) - 36px) !important;
+ padding:0 !important;
+ border:none !important;
+ border-radius:0 !important;
+ background:transparent !important;
+ background-color:transparent !important;
+ backdrop-filter:none !important;
+ box-shadow:none !important;
+ overflow:hidden !important;
+ opacity:1 !important;
+ transform:none !important;
+ pointer-events:auto !important;
+ z-index:80;
+}
+
+.zeitfresser-floating-toc__header{
+ display:block !important;
+ margin:0 0 10px !important;
+}
+
+.zeitfresser-floating-toc__title{
+ display:block !important;
+ margin:0 !important;
+ padding:0 !important;
+ font-family:var(--primary-font) !important;
+ font-size:1.1rem !important;
+ line-height:1.2 !important;
+ font-weight:700 !important;
+ letter-spacing:.08em !important;
+ text-transform:uppercase !important;
+ color:rgba(247,247,250,.76) !important;
+}
+
+.zeitfresser-floating-toc__progress{
+ height:2px !important;
+ margin:0 0 16px !important;
+ border-radius:999px !important;
+ background:rgba(189,147,249,.18) !important;
+ overflow:hidden !important;
+}
+
+.zeitfresser-floating-toc__progress-bar{
+ display:block !important;
+ width:0;
+ height:100% !important;
+ background:#bd93f9 !important;
+ transition:width .18s ease !important;
+}
+
+.zeitfresser-floating-toc__nav{
+ max-height:calc(100vh - var(--zeitfresser-toc-top, 100px) - var(--zeitfresser-toc-top-offset, 0px) - 46px) !important;
+ overflow-y:auto !important;
+ overflow-x:hidden !important;
+ padding-right:8px !important;
+ scrollbar-width:none !important;
+ -ms-overflow-style:none !important;
+}
+
+.zeitfresser-floating-toc__nav::-webkit-scrollbar{
+ width:0 !important;
+ height:0 !important;
+ display:none !important;
+}
+
+.zeitfresser-floating-toc__list,
+.zeitfresser-floating-toc__item{
+ list-style:none !important;
+ list-style-type:none !important;
+ margin:0 !important;
+ padding:0 !important;
+}
+
+.zeitfresser-floating-toc__item{
+ margin:0 0 10px !important;
+}
+
+.zeitfresser-floating-toc__item a,
+.zeitfresser-floating-toc__item a:visited{
+ display:block !important;
+ margin:0 !important;
+ padding:0 0 0 14px !important;
+ border-left:3px solid transparent !important;
+ border-radius:0 !important;
+ background:none !important;
+ background-color:transparent !important;
+ background-image:none !important;
+ box-shadow:none !important;
+ color:#f7f7fa !important;
+ font-size:.92rem !important;
+ line-height:1.35 !important;
+ font-weight:400 !important;
+ text-decoration:none !important;
+ transition:color .18s ease, border-color .18s ease !important;
+ word-break:normal !important;
+ overflow-wrap:normal !important;
+}
+
+.zeitfresser-floating-toc__item.level-2 a{
+ padding-left:14px !important;
+ font-weight:700 !important;
+}
+
+.zeitfresser-floating-toc__item.level-3 a{
+ padding-left:18px !important;
+}
+
+.zeitfresser-floating-toc__item.level-4 a{
+ padding-left:26px !important;
+}
+
+.zeitfresser-floating-toc__item a:hover,
+.zeitfresser-floating-toc__item a:focus,
+.zeitfresser-floating-toc__item a:focus-visible,
+.zeitfresser-floating-toc__item a:active,
+.zeitfresser-floating-toc__item a.is-active,
+.zeitfresser-floating-toc__item a[aria-current="true"]{
+ color:#bd93f9 !important;
+ border-left-color:#bd93f9 !important;
+ background:none !important;
+ background-color:transparent !important;
+ background-image:none !important;
+ outline:none !important;
+ box-shadow:none !important;
+ text-decoration:none !important;
+}
+
+.single-post .entry-content :target,
+.post-content :target,
+.inner-article-content :target,
+.single-post .entry-content :focus,
+.post-content :focus,
+.inner-article-content :focus{
+ background:transparent !important;
+ background-color:transparent !important;
+ outline:none !important;
+ box-shadow:none !important;
+ border:none !important;
+}
+
+.single-post .inner-article-content h2,
+.single-post .inner-article-content h3,
+.single-post .inner-article-content h4,
+.single-post .entry-content h2,
+.single-post .entry-content h3,
+.single-post .entry-content h4{
+ scroll-margin-top:88px;
+}
+
+@media only screen and (max-width:1650px){
+ .zeitfresser-floating-toc{
+ display:none !important;
+ }
+}
+
diff --git a/template-parts/content-single.php b/template-parts/content-single.php
index 0b5eed4..b4bbd6b 100644
--- a/template-parts/content-single.php
+++ b/template-parts/content-single.php
@@ -17,9 +17,18 @@
$show_hide_author_block = get_theme_mod( 'post_detail_hide_show_author_block', zeitfresser_get_default_post_detail_author_block() );
$show_hide_social_share = get_theme_mod( 'post_detail_hide_show_social_share', zeitfresser_get_default_post_detail_social_share() );
$social_share = get_theme_mod( 'post_detail_social_share_options', zeitfresser_get_default_post_detail_social_share_options() );
+ $toc_payload = zeitfresser_build_toc_payload( get_the_ID() );
+ $has_floating_toc = ! empty( $toc_payload['items'] );
?>
-
+
+
+
+
+
+
+
+