/*!
Theme Name: Tikzmedia
Theme URI: https://tikzmedia.com/
Author: Tikzmedia
Author URI: https://tikzmedia.com/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: tikzmedia
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

 /* ==========================================================================
   00-global.css
   Shared design tokens, reset, base typography, utilities, orb/heading
   logic, animations, and scrollbar. Load this FIRST on every page.
   ========================================================================== */

/* 1. SHARED ROOT DESIGN TOKENS */
:root {
    --primaryFont: "Be Vietnam Pro", sans-serif;
    --secondaryFont: "Inter", "Neue Montreal", sans-serif;

    --primaryColor: #111111;
    --secondaryColor: #FF6200;
    --accentOrbColor: #FF6A00;
    --bgColor: #FFF4E6;
    --whiteColor: #FFFFFF;
    --footerColor: #111111;

    --borderColor: #11111126;
    --borderColorLight: #1111111A;
    --offwhiteColor: #FFFFFFB3;
    --mutedWhiteColor: #FFFFFF4D;

    --fontSize: 16px;
    --transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    --transition-fast: all 0.3s ease;
}

/* 2. GLOBAL RESET & BASE */
html { scroll-behavior: smooth; }
body {
    background-color: var(--bgColor);
    color: var(--primaryColor);
    font-family: var(--secondaryFont);
    font-size: var(--fontSize);
    line-height: 1.65;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin: 0;
    padding: 0;
}

a { text-decoration: none; color: inherit; }
ul { list-style: none; padding: 0; margin: 0; }
p { font-family: var(--secondaryFont); margin-bottom: 0; }
button { font-family: var(--primaryFont); border: none; background: none; padding: 0; cursor: pointer; }

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--primaryFont);
    text-transform: uppercase;
    margin-bottom: 0;
    font-weight: 900;
}

/* 3. UTILITIES & REUSABLE COMPONENTS */
.hairline-t { border-top: 1px solid var(--borderColor); }
.hairline-b { border-bottom: 1px solid var(--borderColor); }
.hairline-l { border-left: 1px solid var(--borderColor); }
.hairline-r { border-right: 1px solid var(--borderColor); }

.px-fluid { padding-left: 1.5rem; padding-right: 1.5rem; }
@media (min-width: 768px) { .px-fluid { padding-left: 3rem; padding-right: 3rem; } }

.py-section { padding-top: 8rem; padding-bottom: 8rem; }
@media (min-width: 768px) { .py-section { padding-top: 8rem; padding-bottom: 8rem; } }


/* Standardized Orb Logic anchored to the first word */
.orb-relative { position: relative; display: inline-block; }
.orb-text-front { position: relative; z-index: 1; }

.common-orb {
    position: absolute;
    background-color: var(--accentOrbColor);
    border-radius: 50%;
    z-index: 0;
    width: 3rem; height: 3rem;
    top: -0.5rem; left: -0.75rem;
}
@media (min-width: 768px) {
    .common-orb {
        width: 4.5rem; height: 4.5rem;
        top: -1rem; left: -1rem;
    }
}
/* Core sizing and typography for main section headings (H2) */
        .global-h2 {
            font-family: var(--primaryFont);
            font-size: clamp(2rem, 3.5vw + 1rem, 4.5rem);
            line-height: 1.1em;
            letter-spacing: -0.05em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: 0;
            overflow-wrap: break-word;
            word-wrap: break-word;
            hyphens: none;
            max-width: 65rem;
        }
        /* Subheadings directly under H2s */
        .global-h2-sub {
            font-size: clamp(1.1rem, 3vw + 0.5rem, 1.5rem);
            font-weight: 500;
            color: rgba(17, 17, 17, 0.7);
            margin-top: 1.5rem;
            max-width: 48rem;
        }
        /* Standardized sizing for inner section headings (H3) */
        .global-h3 {
            font-family: var(--primaryFont);
            font-size: clamp(1.5rem, 2.5vw + 1rem, 2.75rem);
            line-height: 1.1em;
            letter-spacing: -0.05em;
            text-transform: uppercase;
            font-weight: 900;
            margin-bottom: 0;
            overflow-wrap: break-word;
            word-wrap: break-word;
        }
        /* Text/paragraphs directly under H3s */
        .global-h3-sub {
            font-size: clamp(1rem, 2vw + 0.75rem, 1.125rem);
            font-weight: 500;
            color: rgba(17, 17, 17, 0.7);
            margin-top: 1rem;
            margin-bottom: 0;
            overflow-wrap: break-word;
            word-wrap: break-word;
        }

        .hero-title { 
            font-size: clamp(2.5rem, 6vw + 1rem, 7.5rem);
            line-height: 1.1em;
            letter-spacing: -0.05em;
            margin-bottom: 0;
        }
/* Animations */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.active { opacity: 1; transform: translateY(0); }
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }

.img-editorial {
    filter: grayscale(100%) contrast(1.1);
    transition: var(--transition);
    width: 100%; height: 100%; object-fit: cover;
}
.image-hover-wrapper:hover .img-editorial {
    filter: grayscale(0%) contrast(1);
    transform: scale(1.03);
}

/* Minimal scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bgColor); }
::-webkit-scrollbar-thumb { background: var(--primaryColor); }

/* Global mobile tweak (shared padding rule) */
@media (max-width: 767px) {
    .py-section {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }
}
/* ==========================================================================
   END: 00-global.css
   ========================================================================== */

/* single post page */


   :root {
            --primaryFont: "Be Vietnam Pro", sans-serif;
            --secondaryFont: "Inter", sans-serif;
            --primaryColor: #111111;
            --secondaryColor: #FF6200;
            --accentOrbColor: #FF6A00;
            --bgColor: #FFF4E6;
            --whiteColor: #FFFFFF;
            --footerColor: #111111;
            --borderColor: rgba(17, 17, 17, 0.15);
            --borderColorLight: rgba(17, 17, 17, 0.1);
            --offwhiteColor: rgba(255, 255, 255, 0.7);
            --mutedWhiteColor: rgba(255, 255, 255, 0.3);
            
            --titleColor: #111111;
            --paraColor: rgba(17, 17, 17, 0.85); 
            --darkParaColor: rgba(17, 17, 17, 0.7); 
            --grayColor: rgba(17, 17, 17, 0.6); 
            --ashColor: rgba(17, 17, 17, 0.4); 
            
            --fontSize: 16px;
            --transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
            --transition-fast: all 0.3s ease;
            
            /* Fluid Typography Scalings */
            --h1-size: clamp(3rem, 6vw, 7.5rem);
            --h2-size: clamp(2.5rem, 5vw, 4.5rem);
            --h3-size: clamp(1.875rem, 3vw, 2.5rem);
            --h4-size: clamp(1.25rem, 2vw, 1.5rem);
        }

        /* 2. GLOBAL RESET & BASE */
        html { scroll-behavior: smooth; }
        body {
            background-color: var(--bgColor);
            color: var(--primaryColor);
            font-family: var(--secondaryFont);
            font-size: var(--fontSize);
            line-height: 1.65;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            margin: 0;
            padding: 0;
        }
        @media (min-width: 768px) { body { font-size: 1.125rem; } }

        a { text-decoration: none; color: inherit; touch-action: manipulation; }
        ul { list-style: none; padding: 0; margin: 0; }
        p { font-family: var(--secondaryFont); margin-bottom: 0; }
        button { font-family: var(--primaryFont); border: none; background: none; padding: 0; cursor: pointer; touch-action: manipulation; }

        /* Global Typography - Enforcing common sizes */
        h1, h2, h3, h4, h5, h6 {
            font-family: var(--primaryFont);
            text-transform: uppercase;
            margin-bottom: 0;
            font-weight: 900;
            letter-spacing: -0.05em;
            line-height: 1.1em;
            color: var(--titleColor);
            overflow-wrap: break-word;
            word-wrap: break-word;
        }

        /* Common Heading Sizes */
        .huge-heading, h1 { font-size: clamp(2.5rem, 6vw + 1rem, 7.5rem) !important; }
        h2 { font-size: clamp(2rem, 3.5vw + 1rem, 4.5rem) !important; }
        h3, .global-h3 { font-size: clamp(1.5rem, 2.5vw + 1rem, 2.75rem) !important; }
        
        /* Common Subheadings */
        .exact-subheading, .mono-tag, .culture-label, .pillar-role, .meta-label {
            font-family: monospace !important;
            font-weight: 700 !important;
            font-size: 0.75rem !important;
            letter-spacing: 0.2em !important;
            text-transform: uppercase !important;
            margin-bottom: 0 !important;
        }

        /* Typography Utilities */
        .font-heading { font-family: var(--primaryFont); }
        .font-body { font-family: var(--secondaryFont); }
        .font-mono { font-family: monospace; }
        
        .font-black { font-weight: 900; }
        .font-bold { font-weight: 700; }
        .font-medium { font-weight: 500; }
        
        .tracking-tighter { letter-spacing: -0.05em; }
        .tracking-tight { letter-spacing: -0.02em; }
        .tracking-widest { letter-spacing: 0.1em; }
        .leading-tight { line-height: 1.2; }

        /* Color Utilities */
        .text-accent { color: var(--secondaryColor) !important; }
        .text-black-custom { color: var(--primaryColor) !important; }
        .text-white-custom { color: var(--whiteColor) !important; }
        .text-black-60 { color: var(--grayColor); }
        .text-black-40 { color: var(--ashColor); }
        .text-black-70 { color: var(--darkParaColor); }
        .bg-black-custom { background-color: var(--primaryColor); }

        /* 3. UTILITIES & REUSABLE COMPONENTS */
        .custom-container { max-width: 1440px; margin-left: auto; margin-right: auto; width: 100%; }
        
        .hairline-t { border-top: 1px solid var(--borderColor); }
        .hairline-b { border-bottom: 1px solid var(--borderColor); }
        .hairline-l { border-left: 1px solid var(--borderColor); }
        .hairline-r { border-right: 1px solid var(--borderColor); }

        .px-fluid { padding-left: 1.5rem; padding-right: 1.5rem; }
        @media (min-width: 768px) { .px-fluid { padding-left: 3rem; padding-right: 3rem; } }

        .py-section { padding-top: 8rem; padding-bottom: 8rem; }
        @media (max-width: 767px) { .py-section { padding-top: 5rem; padding-bottom: 5rem; } }

        /* Standardized Orb Logic */
        .orb-relative { position: relative; display: inline-block; }
        .orb-text-front { position: relative; z-index: 1; }

        .common-orb {
            position: absolute;
            background-color: var(--accentOrbColor);
            border-radius: 50%;
            z-index: 0;
            width: 3rem; height: 3rem;
            top: -0.5rem; left: -0.75rem;
        }
        @media (min-width: 768px) {
            .common-orb {
                width: 4.5rem; height: 4.5rem;
                top: -1rem; left: -1rem;
            }
        }
        .dot-accent { width: 12px; height: 12px; background-color: var(--secondaryColor); border-radius: 50%; display: inline-block; }
        .dot-accent-sm { width: 8px; height: 8px; background-color: var(--secondaryColor); border-radius: 50%; display: inline-block; }

        /* Animations */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .reveal.active { opacity: 1; transform: translateY(0); }
        .delay-100 { transition-delay: 100ms; }
        .delay-200 { transition-delay: 200ms; }
        
        .transition-colors { transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease; }
        .transition-all { transition: var(--transition-fast); }

        /* Minimal scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: var(--bgColor); }
        ::-webkit-scrollbar-thumb { background: var(--primaryColor); }

        /* Image Grayscale Reveal */
        .img-editorial {
            filter: grayscale(100%) contrast(1.1);
            transition: var(--transition);
            width: 100%; height: 100%; object-fit: cover;
        }
        .image-hover-wrapper:hover .img-editorial,
        .group-hover-img:hover .img-editorial,
        .img-editorial:hover {
            filter: grayscale(0%) contrast(1);
            transform: scale(1.03);
        }

        /* ==========================================================================
           END: 00-global.css
           ========================================================================== */



        .pt-header { padding-top: 10rem; }
        @media (min-width: 768px) { .pt-header { padding-top: 12rem; } }

        /* .meta-label is now governed by the Common Subheadings block above */
        .meta-value { font-size: 0.875rem; font-weight: 700; letter-spacing: -0.02em; }

        .hero-img-container { width: 100%; height: 50vh; overflow: hidden; }
        @media (min-width: 768px) { .hero-img-container { height: 70vh; } }
        
        .sticky-sidebar { position: sticky; top: 10rem; }
        
        .index-list a { color: rgba(17,17,17,0.5); font-weight: 500; font-size: 0.875rem; transition: color 0.3s; }
        .index-list a:hover { color: var(--primaryColor); }
        
        .share-btn { width: 40px; height: 40px; border: 1px solid var(--borderColor); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: var(--transition-fast); }
        .share-btn:hover { background-color: var(--secondaryColor); border-color: var(--secondaryColor); color: var(--whiteColor); }

        /* Blog Content Specifics */
        .blog-content { font-size: 1.125rem; line-height: 1.8; }
        @media (min-width: 768px) { .blog-content { font-size: 1.25rem; } }
        
        .blog-content p { margin-bottom: 2rem; color: var(--paraColor); }
        
        .blog-lead { font-size: 1.5rem; font-weight: 500; color: var(--primaryColor); line-height: 1.6; }
        @media (min-width: 768px) { .blog-lead { font-size: 1.875rem; } }
        
        .blog-content h2 { margin-top: 4rem; margin-bottom: 2rem; }
        
        .blog-content ul { list-style: none; margin-bottom: 2rem; padding-left: 1.5rem; }
        .blog-content ul li { position: relative; margin-bottom: 1rem; color: var(--paraColor); }
        .blog-content ul li::before { content: ''; position: absolute; left: -1.5rem; top: 0.6rem; width: 6px; height: 6px; background-color: var(--secondaryColor); border-radius: 50%; }

        .pull-quote { border-left: 4px solid var(--secondaryColor); padding-left: 1.5rem; margin-top: 4rem; margin-bottom: 4rem; }
        @media (min-width: 768px) { .pull-quote { padding-left: 3rem; } }
        .pull-quote h3 { color: var(--primaryColor); margin: 0; }

        .author-img { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
        .author-img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); }

        /* Read Next */
        .card-img-wrapper { width: 100%; height: 300px; overflow: hidden; margin-bottom: 1.5rem; }
        @media (min-width: 992px) { .card-img-wrapper { height: 400px; } }
        
        .card-title { margin-bottom: 0; transition: color 0.3s ease; }
        .group-hover-img:hover .card-title { color: var(--secondaryColor); }

        /* CTA Banner */
        .cta-wrapper { max-width: 1400px; margin: 0 auto; position: relative; z-index: 20; padding-top: 5rem; padding-bottom: 5rem; width: 100%; }
        @media (min-width: 768px) { .cta-wrapper { padding-top: 8rem; padding-bottom: 8rem; } }
        
        .cta-banner { background-color: #111; border-radius: 2rem; padding: 2rem; position: relative; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
        @media (min-width: 768px) { .cta-banner { border-radius: 3rem; padding: 4rem; } }
        @media (min-width: 992px) { .cta-banner { padding: 6rem; } }
        
        .cta-glow { position: absolute; top: 0; right: 25%; width: 600px; height: 600px; background-color: rgba(255, 98, 0, 0.2); border-radius: 50%; filter: blur(100px); mix-blend-mode: screen; transform: translateY(-50%); pointer-events: none; transition: background-color 1s ease; }
        .cta-banner:hover .cta-glow { background-color: rgba(255, 98, 0, 0.3); }
        
        .cta-title { color: var(--whiteColor); font-size: clamp(2rem, 8vw, 4.5rem); line-height: 1.1; }
        .cta-title span { display: block; width: fit-content; position: relative; transition: color 0.3s ease; }
        .cta-title span.muted { color: var(--mutedWhiteColor); }
        .cta-title span:hover { color: var(--whiteColor) !important; padding-left: 4px; }
        @media (min-width: 768px) {
            .cta-title span { display: inline-block; width: auto; }
            .cta-title span:nth-child(1) { margin-left: -1.5rem; }
            .cta-title span:nth-child(2) { margin-left: 3rem; color: var(--secondaryColor); }
            .cta-title span:nth-child(3) { margin-left: -0.5rem; }
            .cta-title span:nth-child(4) { margin-left: 5rem; }
            .cta-title span:nth-child(5) { margin-left: -2rem; }
        }

        .cta-circle-btn { width: 10rem; height: 10rem; background-color: var(--secondaryColor); color: var(--whiteColor); box-shadow: 0 20px 50px rgba(255, 68, 0, 0.4); transition: var(--transition); position: relative; }
        @media (min-width: 576px) { .cta-circle-btn { width: 12rem; height: 12rem; } }
        @media (min-width: 768px) { .cta-circle-btn { width: 16rem; height: 16rem; } }
        @media (min-width: 992px) { .cta-offset { margin-right: -5rem; margin-bottom: -5rem; } }
        
        .cta-circle-btn:hover { background-color: var(--whiteColor); color: var(--primaryColor); transform: scale(1.05); box-shadow: 0 25px 60px rgba(255, 68, 0, 0.5); }
        .cta-meta { font-family: monospace; font-size: 10px; letter-spacing: 0.2em; color: var(--offwhiteColor); transition: color 0.3s ease; }
        .cta-circle-btn:hover .cta-meta { color: var(--ashColor); }
        
        .btn-ring { border: 1px solid rgba(255, 255, 255, 0.2); transform: scale(1.15); transition: all 0.7s ease; pointer-events: none; }
        .cta-circle-btn:hover .btn-ring { transform: scale(1.25); border-color: rgba(255, 98, 0, 0.4); }
