span.eeb-nodis { 
    display:none !important; 
}

span.eeb-rtl { 
    unicode-bidi:bidi-override !important; 
    direction:rtl !important; 
    display:inline !important; 
}
span.eeb-rtl span.eeb-sd, span.eeb-nrtl span.eeb-sd{
	display:inline !important;
	padding-left:0 !important;
}
span.eeb-nrtl { 
    word-break: break-all !important;
}

.eeb-encoded { 
    position:relative; 
    margin-top:-0.3em; 
    z-index:1000; 
    color:green; 
}
/*
Theme Name: Ollie
Theme URI: olliewp.com
Author: Mike McAlister
Author URI: mikemcalister.com
Description: Launch a blazing-fast, pixel-perfect website with the Ollie WordPress block theme! Ollie features over 50 beautiful pattern designs, 7 full-page pattern layouts, and a fully-customizable design system with Global Styles. Ollie integrates seamlessly with all of the powerful new WordPress editor features, giving you the most lightweight and powerful website builder on the planet — no expensive page builder plugin required! ✶ Full demo: https://demo.olliewp.com ✶
Tags: blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Tested up to: 7.1
Requires PHP: 7.3
Version: 1.6.3
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ollie

Ollie WordPress Theme, (C) 2026 Mike McAlister.
Ollie is distributed under the terms of the GNU GPL.
*/

/* CSS Reset
---------------------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

b,
strong {
	font-weight: var(--wp--custom--font-weight--semi-bold);
}

ol,
ul {
	padding: 0;
}

ol:where(:not([class*="wp-block"])),
ol:where(.wp-block-list),
ul:where(:not([class*="wp-block"])),
ul:where(.wp-block-list) {
	padding-inline-start: var(--wp--preset--spacing--medium);
}

div[class*="wp-block-"] figcaption {
	color: var(--wp--preset--color--secondary);
	font-size: var(--wp--preset--font-size--x-small);
	margin-bottom: 0;
	margin-top: 20px;
	text-align: center;
}

img,
figure {
	max-width: 100%;
	height: auto;
}

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
	a {
		text-decoration-thickness: .1rem !important;
	}
}

/* Standardize form styling
--------------------------------------------- */

input,
button,
textarea,
select {
	font: inherit;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
	appearance: none;
}

input:not([type="submit"]):not([type="radio"]),
select,
textarea,
.wp-block-post-comments-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wp-block-post-comments-form textarea {
	color: var(--wp--preset--color--main);
	border-radius: 5px;
	border: solid 1px color-mix(in srgb, var(--wp--preset--color--tertiary) 100%, var(--wp--preset--color--main) 20%);
	padding: .5em 1em;
	font-size: var(--wp--preset--font-size--small);
	background-color: #fff;
	box-shadow: 
		0 1px 2px rgba(0, 0, 0, 0.02),
		0 0.5px 1px rgba(0, 0, 0, 0.04);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible {
	outline-color: var(--wp--preset--color--main);
	outline-offset: 1px;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

select {
	-webkit-appearance: none;
	appearance: none;
	background: var(--wp--preset--color--base) url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJmZWF0aGVyIGZlYXRoZXItY2hldnJvbi1kb3duIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4=) no-repeat;
    background-size: 16px;
    background-position: calc(100% - 12px) 50%;
	padding-right: 2.2em;
}

label {
	width: 100%;
	display: block;
}

::placeholder {
	color: var(--wp--preset--color--secondary);
	opacity: 0.75;
}

/* Helper styles
---------------------------------------------------------------------------- */

a.more-link {
	display: block;
}

/* Inline code */
*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--tertiary);
	padding: 3px 5px;
	position: relative;
	border-radius: 3px;
}

.wp-block-categories {
	position: relative;
}

/* Remove margin on term description on archive pages */
.wp-block-term-description p:last-child {
	margin-bottom: 0;
}

/* Remove last separator on post list */
.remove-border-and-padding .wp-block-post-template li:last-child .wp-block-separator {
	display: none;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
	display: none;
}

.wp-block-group:empty:has(+ .comment-respond) {
	display: none;
}

.row-logos > figure {
	flex-shrink: 1 !important;
}

/* Sticky header */

body:not(.wp-admin) header:has(>.is-position-sticky) {
	position: sticky;
	top: calc( 0px + var( --wp-admin--admin-bar--height, 0px ) );
	z-index: 100;
}

/* Account for admin bar on mobile */

@media (max-width: 600px) {
	header:has(>.is-position-sticky) {
		top: 0;
	}
}

/* Partial sticky header: when one row inside the header is sticky, dissolve
   the header wrappers so that row can stick on its own while rows above
   scroll away. Wrapper styling won't render while dissolved. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)),
body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group {
	display: contents;
}

/* Cancel alignfull negative margins — the dissolved wrapper's compensating
   padding no longer renders. */

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky):not(:has(> .is-position-sticky)) > .wp-block-group > .alignfull {
	margin-left: 0;
	margin-right: 0;
}

body:not(.wp-admin) header.wp-block-template-part:has(> .wp-block-group > .is-position-sticky) .is-position-sticky {
	z-index: 100;
}

/* Mobile helper classes */

@media (max-width: 781px) {
	.ollie-hide-on-mobile {
		display: none;
	}

	.ollie-unstick-mobile {
		position: static;
	}

	header:has(>.ollie-unstick-mobile) {
		position: static;
	}
}

/* Table
--------------------------------------------- */

.wp-block-table table {
	background: var(--wp--preset--color--base);
	border-radius: 5px;
	border: solid 1px var(--wp--preset--color--border-light);
	font-size: var(--wp--preset--font-size--x-small);
}
.wp-block-table.is-style-stripes {
	border-bottom: none;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--wp--preset--color--tertiary);
}

.wp-block-table td, 
.wp-block-table th,
.wp-block-table thead {
	border: none;
	border-bottom: solid 1px color-mix(in srgb, var(--wp--preset--color--border-light) 50%, var(--wp--preset--color--base) 5%);
}

.wp-block-table th,
.wp-block-table tfoot {
	text-align: left;
	background-color: color-mix(in srgb, var(--wp--preset--color--tertiary) 75%, var(--wp--preset--color--base) 5%);
}

.wp-block-table td, 
.wp-block-table th {
	padding: .8em 1em;
}

.wp-block-table tfoot {
	border-top: solid 1px var(--wp--preset--color--border-light);
}

.wp-block-table tfoot td {
	border-bottom: none;
}

/*
Theme Name: Temporary Ollie Child Theme for SoulCraft
Theme URI: https://olliewp.com
Description: A temporary child theme for a quick setup of the SoulCraft website.
Author: Christian Stenner
Author URI: https://heystenner.com
Template:     ollie
Version: 1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         blog, portfolio, entertainment, grid-layout, one-column, two-columns, three-columns, four-columns, block-patterns, block-styles, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, full-width-template, rtl-language-support, style-variations, template-editing, theme-options, translation-ready, wide-blocks
Text Domain: ollie-child-temporary
*/

/* Responsive Overrides — Ollie Pro */
/* Per-side classes ensure only explicitly set sides are overridden. */
/* Unset sides inherit their desktop value. */

/* === Tablet (max-width: 768px) === */
@media (max-width: 768px) {
	.has-ollie-fs-tablet {
		font-size: var(--ollie-fs-tablet, inherit) !important;
	}

	.has-ollie-padding-top-tablet { padding-top: var(--ollie-padding-top-tablet) !important; }
	.has-ollie-padding-right-tablet { padding-right: var(--ollie-padding-right-tablet) !important; }
	.has-ollie-padding-bottom-tablet { padding-bottom: var(--ollie-padding-bottom-tablet) !important; }
	.has-ollie-padding-left-tablet { padding-left: var(--ollie-padding-left-tablet) !important; }

	.has-ollie-margin-top-tablet { margin-top: var(--ollie-margin-top-tablet) !important; }
	.has-ollie-margin-right-tablet { margin-right: var(--ollie-margin-right-tablet) !important; }
	.has-ollie-margin-bottom-tablet { margin-bottom: var(--ollie-margin-bottom-tablet) !important; }
	.has-ollie-margin-left-tablet { margin-left: var(--ollie-margin-left-tablet) !important; }

	/* Block gap — flex/grid use gap, flow/constrained use margin-block-start on children */
	.has-ollie-gap-tablet.is-layout-flex,
	.has-ollie-gap-tablet.is-layout-grid {
		gap: var(--ollie-gap-tablet) !important;
	}
	.has-ollie-gap-tablet.is-layout-flow > *,
	.has-ollie-gap-tablet.is-layout-constrained > * {
		margin-block-start: var(--ollie-gap-tablet) !important;
	}
	.has-ollie-gap-tablet.is-layout-flow > :first-child,
	.has-ollie-gap-tablet.is-layout-constrained > :first-child {
		margin-block-start: 0 !important;
	}

	.has-ollie-mh-tablet { min-height: var(--ollie-mh-tablet) !important; }
	.has-ollie-ta-tablet { text-align: var(--ollie-ta-tablet) !important; }
	/* Justification: when orientation is NOT changed responsively, use desktop .is-vertical */
	.has-ollie-jc-tablet:not(.has-ollie-ori-tablet):not(.is-vertical) { justify-content: var(--ollie-jc-tablet) !important; }
	.has-ollie-jc-tablet:not(.has-ollie-ori-tablet).is-vertical { align-items: var(--ollie-jc-tablet) !important; }
	/* When orientation IS changed responsively, use the orientation-specific class */
	.has-ollie-jc-tablet.ollie-ori-tablet-row { justify-content: var(--ollie-jc-tablet) !important; }
	.has-ollie-jc-tablet.ollie-ori-tablet-column { align-items: var(--ollie-jc-tablet) !important; }
	.has-ollie-ori-tablet { flex-direction: var(--ollie-ori-tablet) !important; }
}

/* === Mobile (max-width: 480px) === */
@media (max-width: 480px) {
	.has-ollie-fs-mobile {
		font-size: var(--ollie-fs-mobile, inherit) !important;
	}

	.has-ollie-padding-top-mobile { padding-top: var(--ollie-padding-top-mobile) !important; }
	.has-ollie-padding-right-mobile { padding-right: var(--ollie-padding-right-mobile) !important; }
	.has-ollie-padding-bottom-mobile { padding-bottom: var(--ollie-padding-bottom-mobile) !important; }
	.has-ollie-padding-left-mobile { padding-left: var(--ollie-padding-left-mobile) !important; }

	.has-ollie-margin-top-mobile { margin-top: var(--ollie-margin-top-mobile) !important; }
	.has-ollie-margin-right-mobile { margin-right: var(--ollie-margin-right-mobile) !important; }
	.has-ollie-margin-bottom-mobile { margin-bottom: var(--ollie-margin-bottom-mobile) !important; }
	.has-ollie-margin-left-mobile { margin-left: var(--ollie-margin-left-mobile) !important; }

	/* Block gap — flex/grid use gap, flow/constrained use margin-block-start on children */
	.has-ollie-gap-mobile.is-layout-flex,
	.has-ollie-gap-mobile.is-layout-grid {
		gap: var(--ollie-gap-mobile) !important;
	}
	.has-ollie-gap-mobile.is-layout-flow > *,
	.has-ollie-gap-mobile.is-layout-constrained > * {
		margin-block-start: var(--ollie-gap-mobile) !important;
	}
	.has-ollie-gap-mobile.is-layout-flow > :first-child,
	.has-ollie-gap-mobile.is-layout-constrained > :first-child {
		margin-block-start: 0 !important;
	}

	.has-ollie-mh-mobile { min-height: var(--ollie-mh-mobile) !important; }
	.has-ollie-ta-mobile { text-align: var(--ollie-ta-mobile) !important; }
	/* Justification: when orientation is NOT changed responsively, use desktop .is-vertical */
	.has-ollie-jc-mobile:not(.has-ollie-ori-mobile):not(.has-ollie-ori-tablet):not(.is-vertical) { justify-content: var(--ollie-jc-mobile) !important; }
	.has-ollie-jc-mobile:not(.has-ollie-ori-mobile):not(.has-ollie-ori-tablet).is-vertical { align-items: var(--ollie-jc-mobile) !important; }
	/* When orientation IS changed responsively (mobile-specific or cascaded from tablet) */
	.has-ollie-jc-mobile.ollie-ori-mobile-row { justify-content: var(--ollie-jc-mobile) !important; }
	.has-ollie-jc-mobile.ollie-ori-mobile-column { align-items: var(--ollie-jc-mobile) !important; }
	/* Cascade: if only tablet orientation was set, use it for mobile too */
	.has-ollie-jc-mobile:not(.has-ollie-ori-mobile).ollie-ori-tablet-row { justify-content: var(--ollie-jc-mobile) !important; }
	.has-ollie-jc-mobile:not(.has-ollie-ori-mobile).ollie-ori-tablet-column { align-items: var(--ollie-jc-mobile) !important; }
	.has-ollie-ori-mobile { flex-direction: var(--ollie-ori-mobile) !important; }
}

/* === Max Width === */
/* Desktop: applies at all viewport sizes when --ollie-mw-desktop is set. */
/* Tablet and mobile use var() fallbacks to cascade from wider breakpoints. */
.has-ollie-mw {
	max-width: var(--ollie-mw-desktop);
}

@media (max-width: 768px) {
	.has-ollie-mw {
		max-width: var(--ollie-mw-tablet, var(--ollie-mw-desktop));
	}
}

@media (max-width: 480px) {
	.has-ollie-mw {
		max-width: var(--ollie-mw-mobile, var(--ollie-mw-tablet, var(--ollie-mw-desktop)));
	}
}

