/*
Theme Name: Tekton
Title: Tekton
Theme URI: https://tektoncore.com/
Author: Tekton Core Team
Author URI: https://tektoncore.com/
Description: Tekton is a fast, lightweight, and highly customizable WordPress theme engineered for performance and scalability. With a flexible Header & Footer Builder, live search, dark mode, WooCommerce support, and extensive Customizer options, Tekton gives developers and site owners full control without sacrificing speed. Perfect for blogs, businesses, and eCommerce websites.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tekton
Domain Path: /languages
Tags: one-column, two-columns, right-sidebar, custom-menu, featured-images, footer-widgets, rtl-language-support, theme-options, translation-ready, block-styles, full-site-editing
Tested up to: 6.8
Requires PHP: 7.4
*/

/* Tekton Theme Styles */
:root {
    /* Fallback / Defaults - Overridden by Customizer (css.php) */
    --primary-color: #0274be;
    --secondary-color: #3a3a3a;
    --text-color: #3a3a3a;
    --bg-color: #ffffff;
    --font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --container-width: 1200px;
    --gap: 20px;

    /* Layout Variables */
    --sidebar-width: 30%;
}

/* ==============================================
   WordPress Core Classes
   ============================================== */
.alignnone {
    margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

a img.alignnone {
    margin: 5px 20px 20px 0;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

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

.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    /* Image does not overflow the content area */
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption p.wp-caption-text {
    font-size: 11px;
    line-height: 17px;
    margin: 0;
    padding: 0 4px 5px;
}

/* Text meant only for screen readers. */
.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;
    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;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

.gallery-caption {
    display: block;
    font-size: 13px;
    margin: 0 0 1.5em;
    /* Default bottom margin */
}

.bypostauthor {
    display: block;
    /* Typically applied to comments */
}

.sticky {
    display: block;
    /* Typically applied to sticky posts */
}

html {
    box-sizing: border-box;
    scroll-behavior: smooth;
    width: 100%;
    max-width: 100%;
}

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

body {
    margin: 0;
    padding: 0;
    width: 100%;
    font-family: var(--body-font-family, var(--font-body));
    font-size: var(--body-font-size, 16px);
    font-weight: var(--body-font-weight, 400);
    line-height: var(--body-line-height, 1.6);
    color: var(--text-color);
    background: var(--site-bg, #ffffff);
}

/* Sticky Wrapper */
.tekton-sticky-wrapper {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
}

/* Smart Hide Class */
.tekton-header-hidden {
    transform: translateY(-100%);
    visibility: hidden;
    /* Ensure it's not clickable */
}

#page {
    width: 100%;
    position: relative;
    margin: 0;
    padding: 0;
}

a {
    color: var(--link-color);
    text-decoration: none;
    transition: 0.3s;
}

a:hover {
    color: var(--link-hover-color);
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--heading-font-family, var(--font-heading));
    font-weight: var(--heading-font-weight, 400);
    margin-bottom: 0.5em;
    line-height: 1.2;
    color: var(--heading-color);
}

h1 {
    font-size: var(--h1-size, 2.5rem);
}

h2 {
    font-size: var(--h2-size, 2rem);
}

h3 {
    font-size: var(--h3-size, 1.75rem);
}

h4 {
    font-size: var(--h4-size, 1.5rem);
}

h5 {
    font-size: var(--h5-size, 1.25rem);
}

h6 {
    font-size: var(--h6-size, 1rem);
}

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

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--gap);
    width: 100%;
}

/* Disable Padding Utility */
body.tekton-disable-padding .site-content {
    padding: 0 !important;
}

body.tekton-disable-padding .container {
    padding: 0 !important;
    max-width: 100% !important;
    /* Ensure it can go full width if needed */
}

/* Page Width Overrides */
body.tekton-width-full .site-content .container {
    max-width: 100% !important;
}

/* Breadcrumbs */
.tekton-breadcrumbs {
	margin-bottom: 1em;
	font-size: 0.9rem;
}
.tekton-breadcrumbs-list {
	display: flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0.25em;
}
.tekton-breadcrumb-item {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
}
.tekton-breadcrumb-sep {
	opacity: 0.7;
}
.tekton-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}
.tekton-breadcrumbs a:hover {
	text-decoration: underline;
}

/* Related Posts */
.tekton-related-posts {
	margin-top: 2.5em;
	padding-top: 1.5em;
	border-top: 1px solid var(--border-color, #e2e8f0);
}
.tekton-related-posts-title {
	font-size: 1.25rem;
	margin-bottom: 0.75em;
}
.tekton-related-posts-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tekton-related-posts-list li {
	margin-bottom: 0.5em;
}
.tekton-related-posts-list a {
	text-decoration: none;
	font-weight: 500;
}
.tekton-related-posts-list a:hover {
	text-decoration: underline;
}
.tekton-related-date {
	display: block;
	font-size: 0.85em;
	opacity: 0.8;
	margin-top: 0.15em;
}

/* Responsive oEmbed (YouTube, etc.) */
.tekton-responsive-embed {
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
}
.tekton-responsive-embed::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}
.tekton-responsive-embed iframe,
.tekton-responsive-embed object,
.tekton-responsive-embed embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* Prevent Gutenberg/Page Builder Overflow */
.alignfull,
.wp-block-cover-image-text,
.wp-block-cover-text,
.wp-block-cover,
.wp-block-group.alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Elementor / Generic Full Width reset */
.elementor-section-stretched {
    width: 100% !important;
    left: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}



/* ------------------------------------------------------------------------- *
 *  Buttons
 * ------------------------------------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-block-button__link {
    background: var(--btn-bg, var(--primary-color));
    color: var(--btn-text-color, #fff);
    border: none;
    padding: 10px 20px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1rem;
    line-height: 1.5;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-block;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.wp-block-button__link:hover {
    background: var(--btn-hover-bg, #005a87);
    color: var(--btn-hover-text-color, #fff);
}

/* ------------------------------------------------------------------------- *
 *  Content/Box background (Full Width: content area; Boxed: applied via #page below)
 * ------------------------------------------------------------------------- */
body.tekton-layout-full-width .site-content {
    background: var(--boxed-bg, #fff);
}

/* ------------------------------------------------------------------------- *
 *  Separate Layout (full-width outer, content area boxed)
 * ------------------------------------------------------------------------- */
body.tekton-layout-separate .site-content {
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
    background: var(--boxed-bg, #fff);
    padding: var(--boxed-padding, 0);
    border: var(--boxed-border-width, 0) solid var(--boxed-border-color, transparent);
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.05);
}

/* ------------------------------------------------------------------------- *
 *  Boxed Layout
 * ------------------------------------------------------------------------- */
body.tekton-layout-boxed {
    background-color: #f0f0f0;
    /* Outer background, usually overridden by customizer body bg? No, customizer sets body bg. If boxed, body bg is outer. */
    /* Update: standard WP, body bg is the main background. If boxed, #page is the inner container. */
}

body.tekton-layout-boxed #page {
    /* Dimensions */
    max-width: var(--container-width);

    /* Decoration */
    background: var(--boxed-bg, #fff);
    border: var(--boxed-border-width, 0) solid var(--boxed-border-color, transparent);

    /* Spacing */
    padding: var(--boxed-padding, 0);
    margin: var(--boxed-margin, 30px auto);
    /* Fallback */

    /* Centering Override from Var */
    margin-left: var(--boxed-margin-x, auto);
    margin-right: var(--boxed-margin-x, auto);

    box-shadow: 0 0 30px rgba(0, 0, 0, 0.05);
}

/* ------------------------------------------------------------------------- *
 *  Grid System (Sidebar Logic)
 * ------------------------------------------------------------------------- */
.site-content .container {
    display: grid;
    gap: 40px;
    grid-template-columns: 1fr;
    align-items: start;
}

/* Grid columns use full cell width (override block constrained layout). */
.site-content .container > #primary.site-main,
.site-content .container > #secondary,
.site-content .container > #tertiary,
.site-content .container > aside.widget-area {
    max-width: none !important;
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.site-content .container>* {
    min-width: 0;
}

#primary.site-main > #secondary,
#primary.site-main > aside.widget-area {
    display: none !important;
}

body.tekton-ctx-blog #content.site-content .container,
body.tekton-ctx-archives #content.site-content .container {
    padding-top: 24px;
}

.site-content .container:has(.tekton-page-with-sidebar) {
    display: block !important;
    grid-template-columns: none !important;
}

.tekton-page-with-sidebar {
    width: 100%;
    max-width: 100%;
    align-items: flex-start;
}

.tekton-page-with-sidebar .tekton-main-column,
.tekton-page-with-sidebar .tekton-sidebar-column {
    min-width: 0;
}

.tekton-page-with-sidebar .tekton-main-column .site-main,
.tekton-page-with-sidebar .tekton-main-column #primary {
    width: 100%;
    max-width: 100%;
}

.tekton-page-with-sidebar .tekton-sidebar-column #secondary,
.tekton-page-with-sidebar .tekton-sidebar-column .widget-area {
    width: 100%;
}

body.tekton-sidebar-no-sidebar .tekton-sidebar-column {
    display: none !important;
}

body.tekton-sidebar-no-sidebar .tekton-page-with-sidebar .tekton-main-column {
    flex-basis: 100% !important;
    width: 100% !important;
}

body.tekton-sidebar-left-sidebar .tekton-page-with-sidebar {
    flex-direction: row-reverse;
}

@media (max-width: 921px) {
    .tekton-page-with-sidebar {
        flex-direction: column !important;
    }

    .tekton-page-with-sidebar .tekton-main-column,
    .tekton-page-with-sidebar .tekton-sidebar-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }
}

main.tekton-blog-classic {
    display: block !important;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 922px) {
    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container > #primary,
    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container > #secondary,
    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container > aside.widget-area:not(.tekton-posts-page-intro) {
        grid-row: 1 !important;
    }

    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container:has(> .tekton-posts-page-intro) > .tekton-posts-page-intro {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        width: 100%;
    }

    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container:has(> .tekton-posts-page-intro) > #primary,
    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container:has(> .tekton-posts-page-intro) > #secondary,
    body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) .site-content .container:has(> .tekton-posts-page-intro) > aside.widget-area:not(.tekton-posts-page-intro) {
        grid-row: 2 !important;
    }

    /* Right Sidebar */
    body.tekton-sidebar-right-sidebar .site-content .container {
        grid-template-columns: 1fr var(--sidebar-width);
    }

    body.tekton-sidebar-right-sidebar #primary {
        grid-column: 1 !important;
    }

    body.tekton-sidebar-right-sidebar #secondary {
        grid-column: 2 !important;
        align-self: stretch !important;
        height: auto !important;
    }

    /* Left Sidebar */
    body.tekton-sidebar-left-sidebar .site-content .container {
        grid-template-columns: var(--sidebar-width) 1fr;
    }

    body.tekton-sidebar-left-sidebar #secondary {
        grid-column: 1 !important;
        align-self: stretch !important;
        height: auto !important;
    }

    body.tekton-sidebar-left-sidebar #primary {
        grid-column: 2 !important;
    }

    /* Both Sidebars */
    body.tekton-sidebar-both-sidebars .site-content .container {
        grid-template-columns: 20% 1fr 20%;
    }

    body.tekton-sidebar-both-sidebars #secondary {
        grid-column: 1 !important;
    }

    body.tekton-sidebar-both-sidebars #primary {
        grid-column: 2 !important;
    }

    body.tekton-sidebar-both-sidebars #tertiary {
        grid-column: 3 !important;
    }
}

/* Sticky Sidebar */
@media (min-width: 922px) {

    body.tekton-sidebar-sticky,
    body.tekton-sidebar-sticky #page,
    body.tekton-sidebar-sticky .site-content,
    body.tekton-sidebar-sticky .container {
        overflow: visible !important;
    }

    body.tekton-sidebar-sticky #secondary,
    body.tekton-sidebar-sticky #tertiary {
        position: static !important;
    }

    body.tekton-sidebar-sticky .sidebar-inner {
        position: -webkit-sticky;
        position: sticky;
        top: 80px;
        z-index: 10;
        width: 100%;
    }
}

/* Widget Areas */
.widget {
    margin-bottom: 30px;
}

.widget-title {
    font-size: 18px;
    margin-bottom: 15px;
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: 10px;
    display: inline-block;
}

/* Sidebar Styles (Boxed/Decoration) */
#secondary,
#tertiary,
#sidebar-2 {
    background: var(--sidebar-bg, transparent);
    border: var(--sidebar-border-width, 0) solid var(--sidebar-border-color, transparent);
    border-radius: var(--sidebar-radius, 4px);
    padding: var(--sidebar-padding, 0);
    min-width: 0;
    overflow-wrap: break-word;
}

#secondary .widget,
#tertiary .widget {
    max-width: 100%;
}

#secondary .search-form,
#tertiary .search-form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: stretch;
}

#secondary .search-form .search-field,
#tertiary .search-form .search-field {
    flex: 1 1 140px;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

#secondary .search-form .search-submit,
#tertiary .search-form .search-submit {
    flex: 0 0 auto;
}

/* ------------------------------------------------------------------------- *
 *  Header Builder
 * ------------------------------------------------------------------------- */
@media (min-width: 922px) {
    .tekton-mobile-header {
        display: none;
    }

    .tekton-desktop-header {
        display: block;
    }
}

/* Desktop/mobile row visibility: inc/customizer-core/css.php (Customizer breakpoint). */

.site-header-row {
    position: relative;
    /* Ensure absolute children (mobile menu) anchor here */
    transition: background-color 0.3s ease, padding 0.3s ease;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.site-header-row-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Sub-rows inside the combined desktop header (top/main/bottom stacked with no gaps) */
.site-header-sub-row {
    margin: 0;
    border-bottom: none;
}

/* Header Rows Specifics */
.site-header-top {
    background: var(--header-top-transparent-bg, var(--header-top-bg, #fff)) !important;
    margin: var(--header-top-margin, 0) !important;
}

.site-header-top .container,
.site-header-sub-row.site-header-top .container {
    max-width: var(--header-top-max-width, var(--container-width)) !important;
}

.site-header-sub-row.site-header-top.tekton-header-shaped,
.site-header-sub-row.site-header-bottom.tekton-header-shaped {
    margin-left: auto;
    margin-right: auto;
}

.site-header-sub-row.site-header-top.tekton-header-shaped .container,
.site-header-sub-row.site-header-bottom.tekton-header-shaped .container {
    max-width: 100% !important;
}

.site-header-top .site-header-row-inner {
    min-height: var(--header-top-height, 40px) !important;
}

.site-header-top.is-stuck {
    background: var(--header-top-stuck-bg, var(--header-top-bg)) !important;
}

.site-header-main {
    background: var(--header-main-transparent-bg, var(--header-main-bg, #fff)) !important;
    margin: var(--header-main-margin, 0) !important;
}

/* Full width main row: one bar edge-to-edge (no outer + inner double header) */
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-width-full),
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-full-bleed) {
    background: transparent !important;
    box-shadow: none !important;
}

.site-header-sub-row.site-header-main-primary.tekton-header-width-full,
.site-header-sub-row.site-header-main-primary.tekton-header-full-bleed {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    background: var(--header-main-transparent-bg, var(--header-main-bg, #fff)) !important;
    border-radius: var(--header-main-border-radius, 0);
    box-shadow: var(--header-main-box-shadow, none);
}

.site-header-sub-row.site-header-main-primary.tekton-header-width-full:not(.tekton-header-inner-boxed) .container,
.site-header-sub-row.site-header-main-primary.tekton-header-full-bleed:not(.tekton-header-inner-boxed) .container {
    max-width: 100% !important;
    width: 100%;
    padding-left: clamp(12px, 2vw, 24px);
    padding-right: clamp(12px, 2vw, 24px);
}

.site-header-sub-row.site-header-main-primary.tekton-header-inner-boxed > .container {
    max-width: min(100%, var(--header-main-inner-max-width, var(--container-width))) !important;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    padding-left: clamp(12px, 2vw, 24px);
    padding-right: clamp(12px, 2vw, 24px);
}

.site-header-row.site-header-main.is-stuck .site-header-sub-row.site-header-main-primary.tekton-header-width-full,
.site-header-row.site-header-main.is-stuck .site-header-sub-row.site-header-main-primary.tekton-header-full-bleed {
    background: var(--header-main-stuck-bg, var(--header-main-bg, #fff)) !important;
}

/* Main = full width: top/bottom sub-rows span the same width (avoid a narrow capsule on a full bar) */
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-width-full) > .site-header-sub-row.site-header-top.tekton-header-shaped,
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-width-full) > .site-header-sub-row.site-header-bottom.tekton-header-shaped,
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-full-bleed) > .site-header-sub-row.site-header-top.tekton-header-shaped,
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-full-bleed) > .site-header-sub-row.site-header-bottom.tekton-header-shaped {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Capsule (content/custom width): background only on the inner row, not the full-width wrapper */
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-shaped) {
    background: transparent !important;
    box-shadow: none !important;
}

.site-header-row.site-header-main.is-stuck:has(.site-header-main-primary.tekton-header-shaped) {
    background: transparent !important;
}

.site-header-sub-row.site-header-main-primary.tekton-header-shaped.is-stuck,
.site-header-row.site-header-main.is-stuck .site-header-sub-row.site-header-main-primary.tekton-header-shaped {
    background: var(--header-main-stuck-bg, var(--header-main-bg, #fff)) !important;
}

.site-header-main .container,
.site-header-sub-row.site-header-main-primary .container {
    max-width: var(--header-main-max-width, var(--container-width)) !important;
}

.site-header-sub-row.site-header-main-primary.tekton-header-shaped .container {
    max-width: 100% !important;
}

/* Combined header: Bottom/Top use the same semi-transparent vars as Main when global transparent is on */
.site-header-row.site-header-main.tekton-header-transparent .site-header-sub-row.site-header-bottom {
    background: var(--header-bottom-transparent-bg, transparent) !important;
}

.site-header-row.site-header-main.tekton-header-transparent .site-header-sub-row.site-header-top {
    background: var(--header-top-transparent-bg, transparent) !important;
}

.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-shaped) .site-header-sub-row.site-header-bottom:not(.tekton-header-shaped),
.site-header-row.site-header-main:has(.site-header-main-primary.tekton-header-shaped) .site-header-sub-row.site-header-top:not(.tekton-header-shaped) {
    background: transparent !important;
    border-bottom: none;
}

.site-header-main-primary .site-header-row-inner {
    min-height: var(--header-main-height, 70px) !important;
}

.site-header-main.is-stuck {
    background: var(--header-main-stuck-bg, var(--header-main-bg)) !important;
}

.site-header-bottom {
    background: var(--header-bottom-transparent-bg, var(--header-bottom-bg, #fff)) !important;
    margin: var(--header-bottom-margin, 0) !important;
}

.site-header-bottom .container,
.site-header-sub-row.site-header-bottom .container {
    max-width: var(--header-bottom-max-width, var(--container-width)) !important;
}

.site-header-bottom .site-header-row-inner {
    min-height: var(--header-bottom-height, 40px) !important;
}

.site-header-bottom.is-stuck {
    background: var(--header-bottom-stuck-bg, var(--header-bottom-bg)) !important;
}

.site-header-mobile {
    background: var(--header-mobile-bg, #fff) !important;
    margin: var(--header-mobile-margin, 0) !important;
}

.site-header-mobile .container {
    max-width: var(--header-mobile-max-width, var(--container-width)) !important;
    padding: 0 !important;
    /* Reset container padding */
}

.site-header-mobile .site-header-row-inner {
    min-height: var(--header-mobile-height, 70px) !important;
    padding: 0 20px !important;
    /* Apply padding here instead for reliable spacing */
}

.site-header-mobile.is-stuck {
    background: var(--header-mobile-stuck-bg, var(--header-mobile-bg)) !important;
}


.site-header-section {
    display: flex;
    align-items: center;
    gap: 15px;
    flex: 1;
}

/* Sticky Header Logic — mobile and sidebar sticky use native sticky.
   Desktop header uses position:fixed (see @media 960px block near end of file). */
.tekton-header-sticky {
    top: 0;
    z-index: 100;
    width: 100%;
    transition: top 0.25s linear;
}

/* Shrink on Scroll Logic (per row, proportional to configured heights) */
.tekton-header-shrink.is-stuck .site-header-top .site-header-row-inner {
    min-height: var(--header-top-shrink-height, var(--header-top-height, 40px)) !important;
    transition: min-height 0.3s ease, padding 0.3s ease;
}

.tekton-header-shrink.is-stuck .site-header-main-primary .site-header-row-inner {
    min-height: var(--header-main-shrink-height, var(--header-main-height, 70px)) !important;
    transition: min-height 0.3s ease, padding 0.3s ease;
}

.tekton-header-shrink.is-stuck .site-header-bottom .site-header-row-inner {
    min-height: var(--header-bottom-shrink-height, var(--header-bottom-height, 40px)) !important;
    transition: min-height 0.3s ease, padding 0.3s ease;
}

/* Ensure inner row transitions are always active */
.site-header-row-inner {
    transition: min-height 0.3s ease, padding 0.3s ease;
}

.tekton-sticky-wrapper {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 100;
    width: 100%;
}

/* WP Admin Bar Offsets for Sticky Elements */
body.admin-bar .tekton-sticky-wrapper,
body.admin-bar .tekton-header-sticky {
    top: 32px;
}

@media (max-width: 782px) {

    body.admin-bar .tekton-sticky-wrapper,
    body.admin-bar .tekton-header-sticky {
        top: 46px;
    }
}

/* Transparent background styling (position handled by .tekton-header-overlay only) */
.tekton-header-transparent:not(.tekton-header-overlay) {
    position: relative;
}

/* Specific Row Transparent Variables - CSS Grid/Vars handling handled above but we need to map rows */
.site-header-top.tekton-header-transparent {
    background: var(--header-top-transparent-bg, transparent) !important;
}

.site-header-main.tekton-header-transparent {
    background: var(--header-main-transparent-bg, transparent) !important;
}

.site-header-bottom.tekton-header-transparent {
    background: var(--header-bottom-transparent-bg, transparent) !important;
}

/* Mobile Transparency Logic */
.site-header-mobile.tekton-header-transparent {
    background: var(--header-mobile-transparent-bg, transparent) !important;
}

/* Restoring background when stuck */
.site-header-mobile.tekton-header-transparent.is-stuck,
.site-header-mobile.tekton-header-transparent.tekton-sticky-active {
    background: var(--header-mobile-stuck-bg, #fff) !important;
}

/* Ensure content pushes up? No, absolute typically overlays. 
   If user wants sticky + transparent, Sticky JS might handle it.
*/

.site-header-section-left {
    justify-content: flex-start;
}

.site-header-section-center {
    justify-content: center;
}

.site-header-section-right {
    justify-content: flex-end;
}

.site-header-section:empty {
    display: none;
}

/* Site Identity: margin & padding around logo / site title (Customizer → Site Identity) */
.site-branding.header-element {
    margin: var(--logo-margin, 0);
    padding: var(--logo-padding, 0);
    box-sizing: border-box;
    flex-shrink: 0;
}

.site-branding.header-element .custom-logo-link,
.site-branding.header-element .site-title {
    display: block;
}

.site-header-sub-row.site-header-main-primary .site-header-section-right,
.site-header-row.site-header-mobile .site-header-section-right {
    margin-inline-start: auto;
}

.header-element {
    display: flex;
    align-items: center;
}

/* Transparent look without overlay positioning */
.tekton-header-transparent:not(.tekton-header-overlay) {
    background: transparent !important;
}



/* Mobile sticky row (fixed to viewport when sticky is enabled) */
.site-header-mobile.tekton-header-sticky {
    position: fixed;
    top: var(--tekton-header-viewport-offset-mobile, 0);
    left: 0;
    right: 0;
    z-index: 100001;
    width: 100%;
    max-width: 100%;
}

.tekton-header-sticky.is-stuck {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.tekton-header-shrink.is-stuck .site-header-row-inner {
    min-height: 50px !important;
}

.tekton-header-shrink.is-stuck .custom-logo {
    max-height: 40px;
    width: auto;
}

/* Header Elements */
.site-title {
    font-size: inherit;
    margin: 0;
    font-weight: 700;
}

.site-title a {
    color: inherit;
}

.main-navigation ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 20px;
}

.main-navigation a {
    font-weight: 500;
    color: inherit;
}

.main-navigation a:hover {
    color: var(--primary-color);
}

/* Ensure menu links and toggle are always clickable (override any parent pointer-events) */
.main-navigation a,
#mobile-navigation a {
    pointer-events: auto;
    cursor: pointer;
}
.main-navigation.toggled a,
#mobile-navigation.toggled a {
    pointer-events: auto;
    cursor: pointer;
}
.menu-toggle,
.mobile-toggle-wrapper {
    pointer-events: auto;
    cursor: pointer;
}

.tekton-search-item {
    position: relative;
}

.tekton-search-icon {
    display: block;
    padding: 5px;
    color: inherit;
}

.tekton-search-form-wrap {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    width: 300px;
    background: #fff;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
    padding: 15px;
    z-index: 99;
    border-radius: 4px;
}

body.search-open .tekton-search-form-wrap {
    display: block;
}

.area-button {
    /* Styles handled by generic .button rules but ensured here */
    color: #fff !important;
}

/* Logo Sizing */
.site-branding .custom-logo-link {
    display: block;
    max-width: var(--logo-width, 150px);
}

.site-branding .custom-logo,
.site-branding img.custom-logo {
    max-width: 100% !important;
    width: 100% !important;
    height: auto !important;
}

/* Mobile Menu */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    font-size: 24px;
    padding: 0;
    cursor: pointer;
    color: inherit;
}

/* Mobile menu toggle shapes/animations: assets/css/header-mobile-toggle.css */

/* Mobile nav visibility + dropdown: inc/header-navigation.php (Customizer breakpoint).
   Sidebar/fullscreen aesthetics below still use 959px; prefer matching tekton_mobile_breakpoint in a follow-up. */

@media (max-width: 959px) {
    /* Full-width mobile header bar (shaped/content width must not leave side gaps). */
    .site-header-row.site-header-mobile,
    .site-header-row.site-header-mobile.tekton-header-shaped,
    .site-header-row.site-header-mobile.tekton-header-width-content,
    .site-header-row.site-header-mobile.tekton-header-width-content.tekton-header-shaped,
    .site-header-row.site-header-mobile.tekton-header-width-custom,
    .site-header-row.site-header-mobile.tekton-header-width-custom.tekton-header-shaped {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .site-header-mobile .container,
    .site-header-row.site-header-mobile .container {
        max-width: 100% !important;
        width: 100% !important;
    }


    /* Mobile Menu Styles */

    /* 1. Sidebar Style (Off-Canvas) - Enhanced */
    #mobile-navigation.mobile-menu-style-sidebar {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: 80%;
        max-width: 320px;
        height: 100vh;
        transform: translateX(100%);
        transition: transform 0.35s cubic-bezier(0.165, 0.84, 0.44, 1);
        /* Elegant easing */
        left: auto;
        display: block !important;
        background: #fff;
        z-index: 100060;
        box-shadow: -10px 0 40px rgba(0, 0, 0, 0.15);
    }

    #mobile-navigation.mobile-menu-style-sidebar.toggled {
        transform: translateX(0);
        display: block !important;
    }

    /* 2. Fullscreen Style - Enhanced */
    #mobile-navigation.mobile-menu-style-fullscreen {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        display: flex !important;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 40px;

        /* Glassmorphism / Premium BG */
        background: rgba(255, 255, 255, 0.96);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);

        transform: scale(0.95);
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        z-index: 100060;
    }

    #mobile-navigation.mobile-menu-style-fullscreen.toggled {
        transform: scale(1);
        opacity: 1;
        visibility: visible;
    }

    /* Fullscreen Typography override */
    #mobile-navigation.mobile-menu-style-fullscreen ul li {
        border-bottom: none;
        text-align: center;
        margin-bottom: 10px;
    }

    #mobile-navigation.mobile-menu-style-fullscreen ul li a {
        font-size: 24px;
        font-weight: 700;
        padding: 10px;
    }

    #mobile-navigation.mobile-menu-style-fullscreen ul li a:hover {
        padding-left: 10px;
        /* Reset slide */
        color: var(--primary-color);
        transform: scale(1.1);
    }

    /* Mobile Menu Aesthetics & Animations */

    /* 1. Keyframes for Staggered Entry */
    @keyframes tektonFadeInUp {
        from {
            opacity: 0;
            transform: translateY(20px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }

    /* 2. General Mobile Menu Styling (All Modes) */
    .mobile-navigation-container ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    #mobile-navigation.mobile-menu-style-dropdown ul li {
        opacity: 1;
        transform: none;
        animation: none;
    }

    #mobile-navigation.mobile-menu-style-sidebar:not(.toggled) ul li,
    #mobile-navigation.mobile-menu-style-fullscreen:not(.toggled) ul li {
        opacity: 0;
        animation: none;
        transform: translateY(20px);
    }

    .mobile-navigation-container ul li {
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    }

    #mobile-navigation.mobile-menu-style-sidebar.toggled ul li,
    #mobile-navigation.mobile-menu-style-fullscreen.toggled ul li {
        animation: tektonFadeInUp 0.4s ease forwards;
    }

    .mobile-navigation-container ul li:last-child {
        border-bottom: none;
    }

    .mobile-navigation-container ul li a {
        display: block;
        padding: 15px 20px;
        font-size: 16px;
        font-weight: 500;
        color: var(--text-color);
        transition: all 0.2s ease;
        text-decoration: none;
    }

    .mobile-navigation-container ul li a:hover {
        background-color: rgba(0, 0, 0, 0.02);
        color: var(--primary-color);
        padding-left: 25px;
        /* Slight slide effect */
    }

    /* Staggered Delays (up to 10 items) */
    .mobile-navigation-container.toggled ul li:nth-child(1) {
        animation-delay: 0.1s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(2) {
        animation-delay: 0.15s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(3) {
        animation-delay: 0.2s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(4) {
        animation-delay: 0.25s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(5) {
        animation-delay: 0.3s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(6) {
        animation-delay: 0.35s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(7) {
        animation-delay: 0.4s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(8) {
        animation-delay: 0.45s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(9) {
        animation-delay: 0.5s;
    }

    .mobile-navigation-container.toggled ul li:nth-child(10) {
        animation-delay: 0.55s;
    }


    /* Mobile row must not clip the menu panel (dropdown uses position:fixed in header-navigation.css) */
    .site-header-row.site-header-mobile,
    .site-header-row.site-header-mobile.tekton-header-shaped,
    .site-header-row.site-header-mobile.tekton-header-width-content.tekton-header-shaped,
    .site-header-row.site-header-mobile.tekton-header-width-custom.tekton-header-shaped,
    .site-header-row.site-header-mobile.tekton-header-sticky-pinned {
        overflow: visible !important;
    }

    /* Common toggled state (sidebar / fullscreen; z-index in header-navigation inline CSS) */
    #mobile-navigation.toggled {
        background: var(--tekton-nav-mobile-panel-bg, #fff);
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        padding: 20px;
        border-top: 1px solid #eee;
    }

    #mobile-navigation.toggled ul {
        flex-direction: column;
        display: flex;
        list-style: none;
        margin: 0;
        padding: 0;
        gap: 15px;
    }

    .main-navigation.toggled {
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        background: #fff;
        z-index: 100;
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        padding: 20px;
    }

    .main-navigation.toggled ul {
        flex-direction: column;
    }

    .site-header-row-inner {
        flex-wrap: wrap;
    }

    body.tekton-sidebar-right-sidebar .site-content .container,
    body.tekton-sidebar-left-sidebar .site-content .container,
    body.tekton-sidebar-both-sidebars .site-content .container {
        grid-template-columns: 1fr;
    }

    body.tekton-sidebar-right-sidebar #secondary,
    body.tekton-sidebar-left-sidebar #secondary,
    body.tekton-sidebar-both-sidebars #secondary,
    body.tekton-sidebar-both-sidebars #tertiary {
        grid-column: 1 !important;
        width: 100%;
        max-width: 100%;
    }

    body.tekton-sidebar-right-sidebar #primary,
    body.tekton-sidebar-left-sidebar #primary,
    body.tekton-sidebar-both-sidebars #primary {
        grid-column: 1 !important;
    }
}

/* Hide sidebar column when layout is no-sidebar (safety). */
body.tekton-sidebar-no-sidebar #secondary,
body.tekton-sidebar-no-sidebar #tertiary {
    display: none !important;
}

/* ------------------------------------------------------------------------- *
 *  Footer Builder
 * ------------------------------------------------------------------------- */
.site-footer {
    background: #f9f9f9;
    /* Default */
    padding-top: 0;
}

/* Footer Rows — shape (max-width, shadow) from Customizer */
.site-footer-row.site-footer-bar,
.site-footer-row.site-footer-advanced,
.site-footer-top,
.site-footer-main,
.site-footer-bottom {
    box-sizing: border-box;
}

.site-footer-row.site-footer-bar {
    background: var(--footer-bar-bg, transparent);
}

.site-footer-row.site-footer-advanced {
    background: var(--footer-advanced-bg, transparent);
}

/* Footer Rows */
.site-footer-top {
    background: var(--footer-top-bg, transparent);
    padding: var(--footer-top-padding, 0);
    margin: var(--footer-top-margin, 0);
    border: var(--footer-top-border-width, 0) solid var(--footer-top-border-color, transparent);
    border-radius: var(--footer-top-radius, 0);
}

.site-footer-main {
    background: var(--footer-main-bg, transparent);
    padding: var(--footer-main-padding, 40px 0);
    margin: var(--footer-main-margin, 0);
    border: var(--footer-main-border-width, 0) solid var(--footer-main-border-color, transparent);
    border-radius: var(--footer-main-radius, 0);
}

.site-footer-bottom {
    background: var(--footer-bottom-bg, transparent);
    padding: var(--footer-bottom-padding, 20px 0);
    margin: var(--footer-bottom-margin, 0);
    border: var(--footer-bottom-border-width, 0) solid var(--footer-bottom-border-color, transparent);
    border-radius: var(--footer-bottom-radius, 0);
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    /* Default visual separator if no border set? */
}

.footer-row-inner {
    display: grid;
    gap: 30px;
    width: 100%;
}

/* Footer content alignment */
.footer-row-inner.tekton-footer-align-left,
.footer-advanced-inner.tekton-footer-align-left {
    text-align: left;
    justify-items: start;
}

.footer-row-inner.tekton-footer-align-center,
.footer-advanced-inner.tekton-footer-align-center {
    text-align: center;
    justify-items: center;
}

.footer-row-inner.tekton-footer-align-right,
.footer-advanced-inner.tekton-footer-align-right {
    text-align: right;
    justify-items: end;
}

.site-footer-bar .footer-bar-inner.tekton-footer-align-left {
    justify-content: flex-start;
    text-align: left;
}

.site-footer-bar .footer-bar-inner.tekton-footer-align-center {
    justify-content: center;
    text-align: center;
}

.site-footer-bar .footer-bar-inner.tekton-footer-align-right {
    justify-content: flex-end;
    text-align: right;
}

.footer-bottom-flex.tekton-footer-align-center {
    text-align: center;
    align-items: center;
}

.footer-bottom-flex.tekton-footer-align-right {
    text-align: right;
    align-items: flex-end;
}

.footer-bottom-flex.tekton-footer-align-left {
    text-align: left;
    align-items: flex-start;
}

.footer-row-inner>* {
    min-width: 0;
}

.footer-cols-1 {
    grid-template-columns: 1fr;
}

.footer-cols-2 {
    grid-template-columns: repeat(2, 1fr);
}

.footer-cols-3 {
    grid-template-columns: repeat(3, 1fr);
}

.footer-cols-4 {
    grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 921px) {
    .footer-row-inner {
        grid-template-columns: 1fr !important;
    }

    .footer-bottom-flex {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
}

/* Footer Bottom Layout */
.footer-bottom-flex {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    gap: 20px;
}

.footer-bottom-flex.layout-left-right {
    justify-content: space-between;
}

.footer-bottom-flex.layout-right-left {
    flex-direction: row-reverse;
    justify-content: space-between;
}

.footer-bottom-flex.layout-center {
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

.footer-bottom-flex.layout-center .footer-menu {
    order: -1;
    margin-bottom: 10px;
}

.footer-menu ul {
    display: flex !important;
    flex-wrap: wrap;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 20px;
    justify-content: center;
    flex-direction: row !important;
}

.footer-menu li {
    margin: 0 !important;
    padding: 0 !important;
}

.footer-menu a {
    display: inline-block;
}

.footer-menu a:hover {
    color: var(--primary-color);
}

/* Footer Bar */
.site-footer-bar .footer-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.site-footer-bar.footer-bar-layout-stacked .footer-bar-inner {
    flex-direction: column;
    align-items: stretch;
}
.footer-bar-section {
    min-width: 0;
}

/* Footer layout presets: see assets/css/footer-presets.css */
/* Advanced Footer */
.site-footer-advanced .footer-advanced-inner {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}
@media (max-width: 921px) {
    .site-footer-advanced .footer-advanced-inner {
        grid-template-columns: 1fr;
    }
}
/* Content Layout (per-post) */
body.tekton-content-layout-narrow .site-content .container,
body.tekton-content-layout-custom .site-content .container {
    max-width: var(--tekton-page-content-max-width, 800px);
}
body.tekton-content-layout-full .site-content .container {
    max-width: 100%;
}
/* Header Cart */
.tekton-header-cart .tekton-cart-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit;
    text-decoration: none;
}
.tekton-header-cart .tekton-cart-count {
    background: var(--primary-color, #0274be);
    color: #fff;
    font-size: 11px;
    min-width: 18px;
    height: 18px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

/* Custom header media (image / video) – layout controlled by Customizer > Header Builder > Header Media Display */
.tekton-custom-header-media {
    width: 100%;
    overflow: hidden;
    position: relative;
}

/* Tablet / mobile header stack: inc/customizer-core/css.php (Customizer mobile breakpoint). */

/* Header cart dropdown (mini cart) */
.tekton-header-cart.tekton-cart-style-dropdown {
    position: relative;
}
.tekton-cart-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 6px;
    min-width: 320px;
    max-width: 90vw;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.tekton-header-cart.tekton-cart-open .tekton-cart-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.tekton-cart-dropdown-inner {
    padding: 12px;
    max-height: 70vh;
    overflow-y: auto;
}
.tekton-cart-dropdown-inner .widget_shopping_cart_content ul {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}
.tekton-cart-dropdown-inner .widget_shopping_cart_content ul li {
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}
.tekton-cart-dropdown-inner .widget_shopping_cart_content .buttons a {
    display: inline-block;
    margin-top: 8px;
    margin-right: 8px;
    padding: 8px 14px;
    background: var(--primary-color, #0274be);
    color: #fff;
    border-radius: 4px;
    text-decoration: none;
}
.tekton-cart-dropdown-inner .widget_shopping_cart_content .buttons a:hover {
    opacity: 0.9;
    color: #fff;
}

/* Off-Canvas Menu Panel */
.tekton-off-canvas-panel {
    position: fixed;
    top: 0;
    right: -280px;
    width: 280px;
    max-width: 90vw;
    height: 100vh;
    background: #fff;
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
    z-index: 100000;
    transition: right 0.3s ease;
    overflow-y: auto;
}
body.tekton-off-canvas-open .tekton-off-canvas-panel {
    right: 0;
}
body.tekton-off-canvas-open .tekton-off-canvas-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 99999;
}
.tekton-off-canvas-close {
    position: absolute;
    top: 15px;
    right: 15px;
    background: none;
    border: none;
    padding: 5px;
    cursor: pointer;
}
.tekton-off-canvas-nav {
    padding: 50px 20px 20px;
}
.tekton-off-canvas-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tekton-off-canvas-menu li { margin: 0; padding: 0; }
.tekton-off-canvas-menu a { display: block; padding: 10px 0; }

/* Banners */
.tekton-banner {
    padding: 2rem 0;
    margin-bottom: 1rem;
}
.tekton-banner .tekton-banner-title { margin: 0 0 0.5em; }
.tekton-banner .tekton-banner-description { margin: 0; }
.tekton-archive-banner,
.tekton-single-banner,
.tekton-special-banner { background: var(--bg-color, #f5f5f5); }

/* Page Title Banner (per-page image + text) */
.tekton-page-title-banner {
    position: relative;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    overflow: hidden;
}
.tekton-page-title-banner-overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
}
.tekton-page-title-banner-inner {
    position: relative;
    z-index: 1;
    padding: 1rem 1.5rem;
    max-width: 100%;
}
.tekton-page-title-banner-inner--align-left { text-align: left; }
.tekton-page-title-banner-inner--align-center { text-align: center; }
.tekton-page-title-banner-inner--align-right { text-align: right; }
/* Banner flex alignment for text position */
.tekton-page-title-banner--align-left { justify-content: flex-start; }
.tekton-page-title-banner--align-center { justify-content: center; }
.tekton-page-title-banner--align-right { justify-content: flex-end; }
.tekton-page-title-banner-title {
    margin: 0;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,0,0,0.4);
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    line-height: 1.2;
}

/* Page Title Banner: Cover / Fixed / Custom use cover fit */
.tekton-page-title-banner--cover,
.tekton-page-title-banner--fixed_200,
.tekton-page-title-banner--fixed_350,
.tekton-page-title-banner--fixed_500,
.tekton-page-title-banner--custom {
    background-size: cover;
}

/* Page Title Banner: always full width – ensure parents don't clip */
.site-main:has(.tekton-page-title-banner),
.site-content .container:has(.tekton-page-title-banner) {
    overflow-x: visible !important;
}

/* Live Search results dropdown */
.tekton-live-search-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.1);
    border-top: none;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    max-height: 320px;
    overflow-y: auto;
    z-index: 1000;
    display: none;
}
.tekton-live-search-results.is-visible {
    display: block;
}
.tekton-live-search-results .tekton-live-search-loading,
.tekton-live-search-results .tekton-live-search-empty {
    padding: 12px 15px;
    margin: 0;
    color: #666;
}
.tekton-live-search-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tekton-live-search-list li { margin: 0; border-bottom: 1px solid #eee; }
.tekton-live-search-list a {
    display: block;
    padding: 10px 15px;
    color: inherit;
    text-decoration: none;
}
.tekton-live-search-list a:hover {
    background: rgba(0,0,0,0.04);
}

/* Block templates: main column fills the grid cell beside the sidebar */
body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main,
body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main .tekton-blog-query,
body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main .wp-block-query {
    max-width: 100% !important;
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main.is-layout-constrained > *,
body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main .is-layout-constrained > * {
    max-width: 100% !important;
}

body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main .alignwide,
body[class*="tekton-sidebar-"]:not(.tekton-sidebar-no-sidebar) #primary.site-main .alignfull {
    max-width: 100% !important;
    width: 100%;
}

.tekton-posts-page-intro {
    width: 100%;
    max-width: 100%;
    margin-bottom: 2rem;
}

.tekton-posts-page-intro--loop {
    grid-column: 1 / -1;
}

.tekton-posts-page-intro .wp-block-group,
.tekton-posts-page-intro .alignwide,
.tekton-posts-page-intro .alignfull {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.tekton-ctx-blog #primary.site-main,
body.tekton-ctx-archives #primary.site-main,
body.tekton-ctx-search #primary.site-main,
body.tekton-ctx-blog .site-main:has(.tekton-blog-query),
body.tekton-ctx-blog .site-main:has(.wp-block-query) {
    display: block !important;
}

/* Blog layouts — classic PHP (grid only on post articles, intro spans full width) */
.tekton-blog-layout-2 .site-main > article,
.tekton-blog-layout-3 .site-main > article,
.tekton-blog-layout-4 .site-main > article {
    margin-bottom: 2rem;
}

.tekton-blog-layout-2 .site-main:has(> article),
.tekton-blog-layout-3 .site-main:has(> article),
.tekton-blog-layout-4 .site-main:has(> article),
.tekton-blog-layout-6 .site-main:has(> article) {
    display: grid;
    gap: var(--tekton-page-grid-gap, 2rem);
}

.tekton-blog-layout-2 .site-main:has(> article) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tekton-blog-layout-3 .site-main:has(> article) {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tekton-blog-layout-4 .site-main:has(> article) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tekton-blog-layout-6 .site-main:has(> article) {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    grid-auto-flow: dense;
}

.tekton-blog-layout-2 .site-main > .tekton-posts-page-intro,
.tekton-blog-layout-3 .site-main > .tekton-posts-page-intro,
.tekton-blog-layout-4 .site-main > .tekton-posts-page-intro,
.tekton-blog-layout-6 .site-main > .tekton-posts-page-intro {
    grid-column: 1 / -1;
}

.tekton-blog-layout-6 .site-main > article {
    margin-bottom: 0;
}

.tekton-blog-layout-5 .site-main > article {
    display: flex;
    gap: 2rem;
    margin-bottom: 2.5rem;
    align-items: flex-start;
}
.tekton-blog-layout-5 .site-main > article:nth-child(even) { flex-direction: row-reverse; }
.tekton-blog-layout-5 .post-thumbnail { flex: 0 0 40%; max-width: 40%; }
.tekton-blog-layout-5 .entry-header + .entry-content { flex: 1; }

/* Blog layouts — block templates (Query Loop / post-template only) */
body.tekton-ctx-blog .tekton-blog-query .wp-block-post-template > li,
body.tekton-ctx-archives .tekton-blog-query .wp-block-post-template > li,
body.tekton-ctx-search .tekton-blog-query .wp-block-post-template > li {
    margin-bottom: 2rem;
    list-style: none;
}

body.tekton-blog-layout-2.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-2.tekton-ctx-archives .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-2.tekton-ctx-search .tekton-blog-query .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--tekton-page-grid-gap, 2rem);
}

body.tekton-blog-layout-3.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-3.tekton-ctx-archives .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-3.tekton-ctx-search .tekton-blog-query .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--tekton-page-grid-gap, 2rem);
}

body.tekton-blog-layout-4.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-4.tekton-ctx-archives .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-4.tekton-ctx-search .tekton-blog-query .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--tekton-page-grid-gap, 2rem);
}

body.tekton-blog-layout-6.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
body.tekton-blog-layout-6.tekton-ctx-archives .tekton-blog-query .wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--tekton-page-grid-gap, 1.5rem);
}

@media (max-width: 921px) {
    .tekton-blog-layout-2 .site-main:has(> article),
    .tekton-blog-layout-3 .site-main:has(> article),
    .tekton-blog-layout-4 .site-main:has(> article) {
        grid-template-columns: 1fr !important;
    }
    .tekton-blog-layout-5 .site-main > article { flex-direction: column !important; }
    .tekton-blog-layout-5 .post-thumbnail { max-width: 100%; flex: 0 0 100%; }

    body.tekton-blog-layout-2 .tekton-blog-query .wp-block-post-template,
    body.tekton-blog-layout-3 .tekton-blog-query .wp-block-post-template,
    body.tekton-blog-layout-4 .tekton-blog-query .wp-block-post-template {
        grid-template-columns: 1fr !important;
    }
}

/* With sidebar: use list layout inside the main column (readable width). */
@media (min-width: 922px) {
    body.tekton-sidebar-right-sidebar.tekton-blog-layout-3.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
    body.tekton-sidebar-right-sidebar.tekton-blog-layout-3.tekton-ctx-archives .tekton-blog-query .wp-block-post-template,
    body.tekton-sidebar-left-sidebar.tekton-blog-layout-3.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
    body.tekton-sidebar-left-sidebar.tekton-blog-layout-3.tekton-ctx-archives .tekton-blog-query .wp-block-post-template,
    body.tekton-sidebar-right-sidebar.tekton-blog-layout-4.tekton-ctx-blog .tekton-blog-query .wp-block-post-template,
    body.tekton-sidebar-left-sidebar.tekton-blog-layout-4.tekton-ctx-blog .tekton-blog-query .wp-block-post-template {
        display: block !important;
    }

    body.tekton-sidebar-right-sidebar.tekton-blog-layout-3 .site-main:has(> article),
    body.tekton-sidebar-left-sidebar.tekton-blog-layout-3 .site-main:has(> article),
    body.tekton-sidebar-right-sidebar.tekton-blog-layout-4 .site-main:has(> article),
    body.tekton-sidebar-left-sidebar.tekton-blog-layout-4 .site-main:has(> article) {
        grid-template-columns: 1fr !important;
    }
}

/* WooCommerce listing gap (Pages panel) */
body.tekton-ctx-shop ul.products,
body.tekton-ctx-product_tax ul.products {
    gap: var(--tekton-page-grid-gap, 1.5rem);
}

/* Footer Configurable Text */
.footer-bottom-flex,
.footer-copyright,
.footer-menu a {
    color: var(--footer-bottom-text-color, inherit);
    font-size: var(--footer-bottom-font-size, 14px);
}

/* ------------------------------------------------------------------------- *
 *  Forms & Inputs (Global Reset)
 * ------------------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
textarea,
select {
    width: 100%;
    max-width: 100%;
    /* User requested safety buffer against overflow */
    padding: 12px;
    border: 1px solid var(--border-color, #ccc);
    border-radius: 4px;
    background: #fff;
    color: var(--text-color);
    box-sizing: border-box;
    font-family: inherit;
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 15px;
    min-width: 0 !important;
    /* Prevent flex/grid item overflow */
}

textarea {
    resize: vertical;
}

/* ------------------------------------------------------------------------- *
 *  Mobile Textarea/Form Overflow Fix (High Specificity)
 * ------------------------------------------------------------------------- */
#respond,
.comment-form,
.comments-area {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden !important;
    /* Hard clip of container */
    box-sizing: border-box;
    margin: 0 !important;
    padding-right: 0 !important;
}

#respond textarea,
.comment-form textarea,
.comments-area textarea,
#comment {
    /* Target specific ID provided by user */
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    /* Center it */
    box-sizing: border-box !important;
    min-width: 0 !important;
    /* Defeat cols attribute */
    display: block !important;
    min-height: 150px;
}

.comment-form-comment label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

/* Mobile app bar: assets/css/mobile-app-bar-styles.css, mobile-app-bar-icons.css */

.tekton-cart-count {
    position: absolute;
    top: 5px;
    right: 50%;
    margin-right: -15px;
    background: #ff0000;
    color: #fff;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tekton-cart-count:empty {
    display: none;
}

/* Smart Header Logic */
@media (max-width: 921px) {
    .site-header-mobile {
        transition: transform 0.3s ease;
        position: relative;
        width: 100%;
    }

    .site-header-mobile.tekton-header-hidden {
        transform: translateY(-100%);
    }
}

/* Full Screen Language Modal */
.tekton-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 100100;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.tekton-modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.tekton-modal-content {
    text-align: center;
    position: relative;
    width: 90%;
    max-width: 400px;
}

.tekton-modal-close {
    position: absolute;
    top: -50px;
    right: 0;
    background: none;
    border: none;
    font-size: 40px;
    color: #333;
    cursor: pointer;
}

.tekton-lang-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tekton-lang-list li {
    margin: 15px 0;
}

.tekton-lang-list a {
    font-size: 24px;
    font-weight: 600;
    color: #333;
    text-decoration: none;
}

.tekton-lang-list a.current-lang {
    color: var(--tekton-primary-color, #0274be);
}

.tekton-language-item .tekton-lang-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 6px;
    cursor: pointer;
    color: inherit;
    line-height: 1;
}

.tekton-language-item .tekton-lang-trigger-label {
    font-size: 13px;
    font-weight: 500;
}

.tekton-language-item .tekton-lang-trigger {
    white-space: nowrap;
}

.tekton-lang-dropdown {
    position: relative;
}

/* Full rules: assets/css/header-dropdowns.css */

.tekton-lang-dropdown-list a {
    display: block;
    padding: 8px 14px;
    text-decoration: none;
    color: inherit;
    font-size: 14px;
}

.tekton-lang-dropdown-list a:hover,
.tekton-lang-dropdown-list a.current-lang {
    background: rgba(0, 0, 0, 0.04);
    color: var(--tekton-primary-color, #0274be);
}

/* ------------------------------------------------------------------------- *
 *  Mobile App Bar (hidden on desktop via assets/css/mobile-app-bar-styles.php inline CSS)
 * ------------------------------------------------------------------------- */
.tekton-mobile-app-bar {
    position: fixed;
    bottom: 0;
    top: auto;
    left: 0;
    right: 0;
    inset-inline: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    transform: none;
    box-sizing: border-box;
    background: var(--app-bar-bg, #fff);
    z-index: 9999;
    padding-bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.08);
    display: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    align-items: center;
    justify-items: center;
    height: var(--tekton-app-bar-height, 65px);
    padding-top: 8px;
    overflow: hidden;
    border-top: 1px solid var(--app-bar-border, rgba(0, 0, 0, 0.05));
    box-sizing: border-box;
}

.tekton-app-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    max-width: none;
    height: 100%;
    color: var(--app-bar-color, #666);
    text-decoration: none;
    font-size: 11px;
    font-weight: 500;
    position: relative;
    transition: color 0.1s ease;
    padding: 0;
    margin: 0;
    border-radius: 0;
    gap: 5px;
}

.tekton-app-icon:hover,
.tekton-app-icon:focus {
    color: var(--app-bar-active, #2271b1);
    background-color: rgba(255, 255, 255, 0.1);
}

.tekton-app-icon.active {
    color: var(--app-bar-active, #2271b1);
    background-color: transparent;
    box-shadow: none;
    font-weight: 700;
}

/* Icon Sizing */
.tekton-app-icon i,
.tekton-app-icon span[class*='dashicons'],
.tekton-app-icon .tekton-emoji-icon {
    font-size: 24px;
    /* Fixed size for all states */
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    /* Fixed width container */
    height: 28px;
    /* Fixed height container */
    min-width: 28px;
    min-height: 28px;
    text-align: center;
}

.tekton-app-icon i {
    font-style: normal;
}

/* Cart Badge */
.tekton-app-icon .tekton-cart-count {
    position: absolute;
    top: 8px;
    left: 50%;
    margin-left: 6px;
    background: #e74c3c;
    color: white;
    border-radius: 50%;
    min-width: 16px;
    height: 16px;
    padding: 2px;
    font-size: 10px;
    line-height: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    border: 1px solid #fff;
}

/* Label: .tekton-app-bar-slot-label in assets/css/mobile-app-bar-icons.css */

/* Desktop hide + mobile show: tekton-mobile-app-bar-styles inline CSS (real breakpoint px) */

html {
    overflow-y: scroll;
    /* Force scrollbar track to prevent layout jumps between pages */
}

.tekton-mobile-app-bar * {
    box-sizing: border-box;
    /* Strict box model */
}

/* Sticky header: avoid overflow on both html and body (breaks position:fixed). */

/* Mobile sticky header */
.site-header-mobile.tekton-header-sticky {
    position: fixed;
    top: var(--tekton-header-viewport-offset-mobile, 0);
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    z-index: 100001;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, background-color 0.3s ease;
}

/* Overlay mode only — header sits on top of hero/media (desktop rows) */
@media (min-width: 960px) {
    .site-header-top.tekton-header-overlay,
    .site-header-main.tekton-header-overlay,
    .site-header-bottom.tekton-header-overlay {
        position: absolute !important;
        top: var(--tekton-header-viewport-offset-desktop, 0);
        left: 0;
        right: 0;
        width: 100%;
        z-index: 1000;
    }
}

/* Mobile header overlay offset: inc/customizer-core/css.php (dynamic breakpoint). */

/* Sticky + overlay: fixed while scrolling on hero pages */
.site-header-top.tekton-header-sticky.tekton-header-overlay,
.site-header-main.tekton-header-sticky.tekton-header-overlay,
.site-header-bottom.tekton-header-sticky.tekton-header-overlay,
.site-header-mobile.tekton-header-sticky.tekton-header-overlay {
    position: fixed !important;
}

/* Stacked mode: in-flow header (never override desktop sticky — that uses position:fixed) */
body:not(.tekton-header-overlay-active) .site-header-row.site-header-main:not(.tekton-header-overlay):not(.tekton-header-sticky),
body:not(.tekton-header-overlay-active) .site-header-mobile:not(.tekton-header-overlay):not(.tekton-header-sticky) {
    position: relative !important;
}

body.tekton-header-content-offset #content {
    padding-top: var(--tekton-header-offset-desktop, 80px) !important;
}

/* Mobile content offset: inc/customizer-core/css.php (dynamic breakpoint). */

/* Handle Admin Bar for Sticky Header (Top, Main, Bottom, Mobile) */
body.admin-bar .site-header-top.tekton-header-sticky,
body.admin-bar .site-header-main.tekton-header-sticky,
body.admin-bar .site-header-bottom.tekton-header-sticky,
body.admin-bar .site-header-mobile.tekton-sticky-active,
body.admin-bar .site-header-mobile.tekton-header-sticky {
    top: 32px !important;
}

@media (max-width: 782px) {

    body.admin-bar .site-header-top.tekton-header-sticky,
    body.admin-bar .site-header-main.tekton-header-sticky,
    body.admin-bar .site-header-bottom.tekton-header-sticky,
    body.admin-bar .site-header-mobile.tekton-sticky-active,
    body.admin-bar .site-header-mobile.tekton-header-sticky {
        top: 46px !important;
    }
}

#page {
    overflow: visible !important;
    clip-path: none !important;
}

/* Desktop sticky header (last in cascade; JS spacer reserves in-flow height). */
@media (min-width: 960px) {
    .tekton-header-desktop-wrap > .site-header-row.site-header-main.tekton-header-sticky {
        position: fixed !important;
        top: var(--tekton-header-viewport-offset-desktop, 0) !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 100001 !important;
        transform: none !important;
    }

    .tekton-header-sticky-spacer {
        display: block;
        width: 100%;
        flex-shrink: 0;
        pointer-events: none;
        margin: 0;
        padding: 0;
        border: 0;
    }
}

/* Smart Hide Class - High Priority */
.tekton-header-hidden {
    transform: translateY(-100%) !important;
    visibility: hidden;
    transition: transform 0.3s ease-in-out;
}

/* Stacked header content offset (spacer height from css.php / JS) */
body.tekton-header-content-offset #content {
    position: relative;
    z-index: 0;
}

/* ------------------------------------------------------------------------- *
 *  Micro-interactions
 * ------------------------------------------------------------------------- */

/* 1. Pulse Effect on Click */
@keyframes tekton-click-pulse {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(0.92);
        opacity: 0.8;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Apply Pulse to Interactive Icons */
.tekton-search-icon:active,
.menu-toggle:active,
.tekton-app-icon:active,
.hamburger-box:active {
    animation: tekton-click-pulse 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* 2. Smooth Dropdown Transitions (Desktop) */
@media (min-width: 922px) {

    /* Ensure sub-menus are block but hidden visually for transition */
    .main-navigation ul ul {
        display: block !important;
        /* Override display:none */
        opacity: 0;
        visibility: hidden;
        transform: translateY(10px);
        /* Slide effect */
        transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);

        /* Structural safety */
        position: absolute;
        top: 100%;
        left: 0;
        background: #fff;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
        min-width: 200px;
        z-index: 100070;
        padding: 10px 0;
        border-radius: 4px;
    }

    /* Show on Hover/Focus */
    .main-navigation ul li:hover>ul,
    .main-navigation ul li:focus-within>ul {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    /* Nested Sub-Menus (Right Slide) */
    .main-navigation ul ul ul {
        top: 0;
        left: 100%;
        transform: translateX(10px);
    }

    .main-navigation ul ul li:hover>ul {
        transform: translateX(0);
    }

    /* Dropdown Link Styles */
    .main-navigation ul ul li a {
        padding: 10px 20px;
        display: block;
        white-space: nowrap;
    }
}

/* ==============================================
   Dark Mode
   ============================================== */
body.dark-mode {
    --site-bg: #121212;
    --text-color: #e0e0e0;
    --heading-color: #ffffff;
    --border-color: #333333;
    --secondary-color: #a0a0a0;

    /* Headers & Footers */
    --header-top-bg: #1e1e1e !important;
    --header-main-bg: #1e1e1e !important;
    --header-bottom-bg: #1e1e1e !important;
    --header-mobile-bg: #1e1e1e !important;

    --footer-top-bg: #1e1e1e !important;
    --footer-main-bg: #1e1e1e !important;
    --footer-bottom-bg: #121212 !important;

    --app-bar-bg: #1e1e1e !important;
    --app-bar-border: #333333 !important;

    /* Links */
    --link-color: #64b5f6;

    /* Form Elements */
    --input-bg: #2c2c2c;
    --input-border: #444;
}

body.dark-mode input,
body.dark-mode textarea,
body.dark-mode select {
    background-color: var(--input-bg, #2c2c2c);
    border-color: var(--input-border, #444);
    color: var(--text-color);
}

body.dark-mode .site-header-row,
body.dark-mode .site-footer-row,
body.dark-mode .tekton-mobile-app-bar {
    border-color: var(--border-color);
}

/* Dark Mode Toggle Button */
.tekton-dark-mode-toggle {
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    color: var(--text-color);
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.3s ease;
}

.tekton-dark-mode-toggle:hover {
    color: var(--primary-color);
}

.tekton-dark-mode-toggle svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Icons for Light/Dark State */
.tekton-dark-mode-toggle .moon-icon {
    display: block;
}

.tekton-dark-mode-toggle .sun-icon {
    display: none;
}

body.dark-mode .tekton-dark-mode-toggle .moon-icon {
    display: none;
}

/* ==============================================
   Scroll To Top (Premium)
   ============================================== */
.tekton-scroll-top {
    position: fixed !important;
    /* Dimensions & Positioning */
    bottom: var(--scroll-top-offset-bottom, 30px) !important;
    right: var(--scroll-top-right, 30px) !important;
    left: var(--scroll-top-left, auto) !important;
    width: var(--scroll-top-size, 45px) !important;
    height: var(--scroll-top-size, 45px) !important;

    /* Decoration */
    background: var(--scroll-top-bg, #0274be) !important;
    color: var(--scroll-top-color, #fff) !important;
    border: var(--scroll-top-border-width, 0) solid var(--scroll-top-border-color, transparent) !important;
    border-radius: var(--scroll-top-radius, 8px) !important;

    /* Layout */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 99999 !important;
    cursor: pointer !important;
    text-decoration: none !important;

    /* Premium Look */
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
    backdrop-filter: blur(5px) !important;

    /* State & Transition */
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px) scale(0.9);
    transition: all 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
}

.tekton-scroll-top.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) !important;
}

.tekton-scroll-top:hover {
    background: var(--scroll-top-hover-bg, #333) !important;
    color: var(--scroll-top-hover-color, #fff) !important;
    transform: translateY(-5px) !important;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.25) !important;
}

.tekton-scroll-top:focus {
    color: var(--scroll-top-color, #fff) !important;
    outline: none !important;
}

/* Icon Sizing */
.tekton-scroll-top i,
.tekton-scroll-top svg {
    font-size: var(--scroll-top-icon-size, 20px) !important;
    width: var(--scroll-top-icon-size, 20px) !important;
    height: var(--scroll-top-icon-size, 20px) !important;
    line-height: 1 !important;
    fill: currentColor !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: none !important;
}

/* Mobile Adjustment (Avoid App Bar) */
/* Scroll-top offset with app bar: see assets/css/mobile-app-bar-styles.css */

/* Ensure header is always above sliders/content on all pages (e.g. product, scroll) */
.site-header-top,
.site-header-main,
.site-header-bottom,
.site-header-mobile,
.tekton-header-sticky,
.tekton-sticky-wrapper,
.tekton-header-desktop-wrap {
    z-index: 99999 !important;
}

/* Logged-in: lower header stacking so the WordPress admin toolbar stays clickable */
body.admin-bar .site-header-top,
body.admin-bar .site-header-main,
body.admin-bar .site-header-bottom,
body.admin-bar .site-header-mobile,
body.admin-bar .tekton-header-sticky,
body.admin-bar .tekton-header-sticky-pinned,
body.admin-bar .tekton-sticky-wrapper,
body.admin-bar .tekton-header-desktop-wrap,
body.admin-bar #tekton-sticky-header-root {
    z-index: 99990 !important;
}
/* Keep main content below header so it never overlaps when scrolling */
#content.site-content {
    position: relative;
    z-index: 0;
}

/* ==============================================
   Accessibility: Touch Target Sizes (min 44×44px)
   ============================================== */
/* Social icon links in header and footer must meet WCAG 2.5.5 */
.tekton-social-item .tekton-social-link,
.header-element-social a[aria-label],
.site-footer a[aria-label],
.tekton-social-link,
.tekton-social-icons a {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ==============================================
   Accessibility: Footer Text Contrast
   Ensure copyright text and footer links meet WCAG AA (4.5:1)
   ============================================== */
.site-footer-bottom .footer-copyright,
.site-footer-bottom .footer-copyright a,
.site-footer-bottom .footer-menu a,
.site-footer-bottom .tekton-margraf-footer-lang {
    color: var(--footer-bottom-text-color, #1a1a1a);
}

/* When footer uses a dark background, ensure text stays readable */
.site-footer-bottom {
    --footer-bottom-link-min-contrast: 4.5;
}

.site-footer-bottom .footer-menu a:hover,
.site-footer-bottom .footer-copyright a:hover {
    text-decoration: underline;
    opacity: 0.85;
}

/* Site Preset: Tekton Demo sidebar widgets */
.tekton-demo-cats {
    list-style: none;
    margin: 0;
    padding: 0;
}
.tekton-demo-cats li {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-color, #e2e8f0);
}
.tekton-demo-cats li a {
    color: var(--primary-color, #0274be);
    text-decoration: none;
}
.tekton-demo-cats li span {
    color: #9ca3af;
    font-size: 0.875rem;
}
.tekton-demo-social {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.tekton-demo-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--primary-color, #0274be);
    color: #fff;
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 700;
}
.tekton-demo-social a:hover {
    opacity: 0.9;
}