/*
Theme Name: EArk 2026
Theme URI: https://eark.ca
Author: EArk Digital Marketing
Author URI: https://eark.ca
Description: EArk Digital Marketing provides digital excellence for small and non-profit businesses.
*/

/* --- Variables --- */
:root {
    --primary-color: #0052d9;
    --hover-color: #000;
    --text-color: #333;
    --bg-color: #fff;
    --font-main: "Open Sans", "Inter Variable", Inter, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --container: 1200px;
    --container-sm: 800px;
    --container-md: 1000px;
    --container-lg: 100%;
    --grid-gutter: 1rem;
    --font-size: 18px;
    --active-color: #1366ec;
}

/* --- Basic Reset --- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
blockquote,
dl,
ul,
ol,
dd {
    margin: 0;
    padding: 0;
}
ul,
ol{
    list-style: none;
}
a {
    text-decoration: none;
    color: var(--text-color);
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    font-size: var(--font-size);
}

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    font-family: var(--font-main);
    color: var(--text-color);
}
@media screen and (max-width:768px){
    html{
        font-size:16px;
    }
}
input,
button,
textarea,
select {
    font: inherit;
}

img,
picture {
    max-width: 100%;
    display: block;
}

/* --- Header ---*/
.site-branding a {
    display: block;
}

.site-branding img {
    height: 40px;
    width: auto;
}

/* --- Header Menu --- */

.header-menu > li > a {
    color: #2D374B;
    padding: 15px 20px;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
}

.header-menu > li > a:hover {
    border-radius: 8px;
    color: var(--active-color);
    border-radius: 8px;
    background-color: #E2ECFE;
}

.header-menu .menu-item-has-children {
    position: relative;
}

.header-menu > li.menu-item-has-children > a:after {
    font-family: "Font Awesome 7 Free";
    content: "\f078";
    font-size: 12px;
    margin-left: 10px;
}

.header-menu > li > ul {
    position: absolute;
    top:calc(100% + .5rem);
    left: 0;
    z-index: 1000;
    float: left;
    min-width: 10rem;
    background-clip: padding-box;
    list-style: none;
    box-shadow: 0px 5px 12px 6px rgba(0, 0, 0, 0.1);
    border-radius:8px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    padding:2rem 0;
    visibility: hidden;
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.3s ease, transform 0.3s cubic-bezier(0.23, 1, 0.32, 1), visibility 0.3s;
    pointer-events: none;
    background-color:#fff;
    background-image: url('assets/images/menu-bg.jpg');
    background-size:200px 150px;
    background-position: bottom right;
    background-repeat: no-repeat;
}
.header-menu > li > ul::before {
    content: '';
    position: absolute;
    top: -20px;
    left: 0;
    width: 100%;
    height: 20px;
    background: transparent;
}
.header-menu > li:hover > ul{
    visibility: visible;
    opacity: 1;
    transform: translateY(0); /* Return to original position */
    pointer-events: auto;
}
.header-menu > li > ul > li{
    opacity: 0;
    transition: opacity 0.4s ease;
    transition-delay: 0.1s;
}
.header-menu > li:hover > ul > li {
    opacity: 1;
}
.header-menu > li > ul > li > a{
    color: #333;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom:.5rem;
    display: block;
    pointer-events: none;
    padding:10px;
}
.header-menu > li > ul > li{
    border-right:1px solid #eaeaea;
    padding-left:2rem;
    padding-right:2rem;
}
.header-menu > li > ul > li:last-child{
    border:none;
}
.header-menu > li > ul > li > ul > li a{
    display: block;
    padding:10px;
    text-wrap: nowrap;
    border-radius:4px;
}
.header-menu > li > ul > li > ul > li a:hover{
    color: var(--active-color);
}
.mobile-menu-btn-container{
    width: 20px;
    height: 40px;
    align-items: center;
    cursor: pointer;
    transition: 0.8s cubic-bezier(.4,0,.6,1);
}
.mobile-menu-button{
    position: relative;
    width: 100%;
}
.mobile-menu-button span.line-1,
.mobile-menu-button span.line-2{
    position: absolute;
    height: 2px;
    width: 100%;
    background: #333;
    transition:0.3s cubic-bezier(.4,0,.6,1);
}
.mobile-menu-button span.line-1{
    top:-5px;
}
.mobile-menu-button span.line-2{
    top:5px;
}
.mobile-menu-button.current span.line-1{
    top:0;
    transform:rotateZ(135deg);
}
.mobile-menu-button.current span.line-2{
    top:0;
    transform:rotateZ(-135deg);
}

.mobile-header-menu a{
    display: block;
}
.mobile-header-menu > li > a{
    color:#747474;
    font-size:1.5rem;
    margin-bottom:1rem;
}
.mobile-header-menu > li > a:hover{
    color:var(--active-color);
}
.mobile-header-menu > li > ul{
    border-radius: 8px;
    background-color:#f9f9f9;
    list-style: none;
}
.mobile-header-menu > li > ul > li{
    border-bottom:1px solid #eaeaea;
    padding:1rem;
}
.mobile-header-menu > li > ul > li:last-child{
    border:none;
}
.mobile-header-menu > li > ul > li > a{
    color:#000;
    margin-bottom:1rem;
    font-size:1.3rem;
}
.mobile-header-menu > li > ul > li > ul{
    padding:0;
}
.mobile-header-menu > li > ul > li > ul > li a{
    margin-bottom:1rem;
}
.mobile-header-menu > li > ul > li > ul > li a:hover{
    color: var(--active-color);
}
.mobile-header-menu > li > ul > li > ul > li:last-child a{
    margin-bottom:0;
}
#mobile-site-navigation {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    background: #ffffff;
}
#mobile-site-navigation.is-active {
    max-height: 1000px;
    opacity: 1;
    visibility: visible;
    padding-top: 1rem;
    padding-bottom: 2rem;
}

/* --- Services Page */
.services-header{
    background-image: url(assets/images/services-header-bg.png);
    background-size:cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-color:#f7f7f7;
}

/* Home Page */
/* --- THE 3D GRID ENGINE --- */
.grid-scene {
    position: absolute;
    inset: 0;
    perspective: 1000px; /* Essential for 3D depth */
    z-index: 1;
}

.grid-plane {
    position: absolute;
    width: 200%;
    height: 200%;
    top: -50%;
    left: -50%;
    background-image: 
        linear-gradient(rgba(0, 212, 255, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 212, 255, 0.1) 1px, transparent 1px);
    background-size: 60px 60px;
    
    /* Tilt and Move */
    transform: rotateX(65deg);
    transform-origin: center center;
    animation: grid-infinite-move 20s linear infinite;
    
    /* Fade the grid into the distance */
    mask-image: radial-gradient(circle at center, black 10%, transparent 70%);
}

@keyframes grid-infinite-move {
    0% { transform: rotateX(65deg) translateY(0); }
    100% { transform: rotateX(65deg) translateY(60px); }
}

/* --- LIGHT TRACES (The Strips) --- */
.trace {
    position: absolute;
    background: linear-gradient(to bottom, transparent,#00d4ff, #fff, transparent);
    filter: blur(1px);
    opacity: 0;
    box-shadow: 0 0 15px #00d4ff;
}

/* Vertical Traces */
.v-1, .v-2, .v-3 { width: 2px; height: 400px; animation: trace-v 6s infinite linear; }
.v-1 { left: 40%; animation-delay: 0s; }
.v-2 { left: 60%; animation-delay: 2.5s; }
.v-3 { left: 25%; animation-delay: 4s; }

/* Horizontal Traces */
.h-1, .h-2 { height: px; width: 400px; background: linear-gradient(to right, transparent,#00d4ff, #fff, transparent); animation: trace-h 7s infinite linear; }
.h-1 { top: 30%; animation-delay: 1s; }
.h-2 { top: 70%; animation-delay: 4.5s; }

@keyframes trace-v {
    0% { transform: translateY(200%); opacity: 0; }
    30% { opacity: 1; }
    70% { opacity: 1; }
    100% { transform: translateY(-200%); opacity: 0; }
}

@keyframes trace-h {
    0% { transform: translateX(-100%); opacity: 0; }
    30% { opacity: 1; }
    70% { opacity: 1; }
    100% { transform: translateX(150%); opacity: 0; }
}

.home-hero{
    position:absolute;
    top:0;
    left:0;
    right:0;
    bottom: 0;
}
.hero-header-video-container{
    position: absolute;
    top:0;
    right:0;
    height: 100%;
}

.hero-header-bg{
    background: linear-gradient(-45deg, #ffffff, #f0f7ff, #e0e7ff, #f5f3ff, #ffffff);
    background-size: 200% 200%;
    animation: softFlow 12s ease-in-out infinite;
    width: 100%;
    position: relative;
    overflow: hidden;
}
.hero-header-bg:before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: radial-gradient(circle at 10% 20%, rgba(0, 82, 217, 0.1) 0%, transparent 40%),radial-gradient(circle at 90% 80%, rgba(139, 92, 246, 0.07) 0%, transparent 40%);
    pointer-events: none;
}
@keyframes softFlow {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
/* Services Page */
.services-header img{
    height:100%;
    object-fit: cover;
}
.page-nav-menu a{
    padding-top:1rem;
    padding-bottom:calc(1rem - 3px);
    border-bottom:3px solid transparent;
}
.page-nav-menu a:hover{
    color: var(--active-color);
}
.page-nav-menu a.active{
    border-color:var(--primary-color);
    color:var(--primary-color);
}
/* --- Buttons --- */
.btn{
    min-width: 150px;
    padding:.6rem 1.5rem;
    border-radius: 4px;
    font-weight: 500;
    text-align: center;
    border:1px solid var(--primary-color);
    transition: box-shadow .25s ease, transform .25s ease;
    color: var(--primary-color);
    background: #fff;
}
.btn:hover,.btn:focus{
    box-shadow: 0 1rem 2.5rem rgba(22, 28, 45, 0.1), 0 0.5rem 1rem -0.75rem rgba(22, 28, 45, 0.1);
    transform: translate3d(0, -3px, 0);
    border-color: var(--primary-color);
    background-color:rgb(236, 242, 254);
}
.btn.blue{
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color:#fff;
}
.btn.blue:hover,.btn.blue:focus{
    background-color: var(--active-color);
    border-color: var(--active-color);
    color: #fff;
}
.cta-pulse{
    animation: cta-pulse 2s infinite;
}
    @keyframes cta-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(7, 193, 96, 0.4); /* Use your --pix-primary color */
    }
    70% {
        box-shadow: 0 0 0 12px rgba(7, 193, 96, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(7, 193, 96, 0);
    }
}
/* --- Gradient Headers ---*/
.tech-text-animated {
    font-weight: 800;
    background: linear-gradient(
        to right, 
        #0052d9, 
        #8b5cf6, 
        #60a5fa, 
        #0052d9
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: textShine 4s linear infinite;
    display: inline-block;
    transition: transform 0.45s ease, opacity 0.45s ease;
}

@keyframes textShine {
    to {
        background-position: 200% center;
    }
}
.tech-text-animated-hidden {
    opacity: 0;
    transform: translateY(-20px);
}
/*--- Entry Content */
.entry-content h2,
.entry-content h3{
    margin-bottom:1rem;
}
.entry-content h4,
.entry-content h5{
	margin-bottom:.5rem;
}
.entry-content h6{
	margin-bottom:.2rem;
}
.entry-content h1{
    font-size:3rem;
}
.entry-content h2{
    font-size:2.5rem;
}
.entry-content h3{
    font-size:2rem;
}
.entry-content h4{
    font-size:1.5rem;
}
.entry-content h5{
    font-size:1.3rem
}
.entry-content h6{
    font-size:1rem;
}
.entry-content p{
    margin-bottom: 1rem;
}
.entry-content a{
    color: var(--primary-color);
}
.entry-content a:hover{
    color:var(--active-color);
}
.entry-content table{
    border-collapse:separate;
    width: 100%;
    margin-bottom:1rem;
    border-spacing: 0;
    display: table;
    font-size:.8rem;
    overflow: auto;
    border:1px solid #ccc;
}
.entry-content table thead{
    position:sticky;
    top:0;
    z-index:10;
}
.entry-content table th,
.entry-content table td{
    border-right: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
    min-width:120px;
    padding:10px 12px;
    text-align: left;
    word-break: break-word;
}
.entry-content table th{
    background-color:#f7f7f7;
    font-weight: bold;
}
.entry-content table th:last-child,
.entry-content table td:last-child {
    border-right: 0;
}
.entry-content table tr:last-child td {
    border-bottom: 0;
}
.entry-content img{
     box-shadow: 0 2px 4px 0 rgba(0,0,0,.1);
}
/* --- Product Card --- */
.product-card{
    box-shadow: 0 2px 4px 0 rgba(0,0,0,.1);
    border: 1px solid #d4d6db;
    min-height: 100%;
    width: 100%;
    position: relative;
    background-color: #fff;
}
.product-card:hover{
    background-image: url(assets/images/product-card-bg.jpg);
    background-size:300px 149px;
    background-position: top right;
    background-repeat: no-repeat;
    box-shadow: 0 12px 20px #1366ec1f;

}
.product-card-inner{
    padding:20px;
}
.product-card-inner li{
    color:#8c8c8c;
    border-bottom:1px solid #eaeaea;
    padding:10px 0;
    font-size:.8rem;
}
.product-card-inner li:first-child{
    margin-top:1rem;
}
.product-card-inner li:last-child{
    border-bottom:none;
}

.product-card-inner li:before{
    font-family: "Font Awesome 7 Free";
    content: "\f00c";
    margin-right: 10px;
    color:rgb(10, 196, 10);
}
.product-card-footer{
    padding:15px;
    background-color:#f9f9f9;
    text-align: center;
    white-space: nowrap;
}

/* --- Badge ---*/
.badge span{
    border-radius:4px;
    font-size:.9rem;
    padding:2px 6px;
    margin-right:.2rem;
    background: rgba(19,102,236,.1);
    color:#1366ec;
}
.badge span:last-child{
    margin-right:0;
}

/** --- FAQ --- **/
details{
    position:relative;
    padding:1.3rem;
    background: #f3f5f8;
}
details > summary:hover{
    cursor: pointer;
    color: var(--active-color);
}
details summary::-webkit-details-marker {
    display: none;
}
details summary {
    list-style: none;
}
details > summary:first-of-type {
    list-style-type: none;
}
details summary::after{
	font-family:"Font Awesome 7 Free";
	content:"\f078";
	font-weight:600;
	position:absolute;
	transition: transform 0.3s ease;
	right:1.3rem;
}
details[open]{
    background: #f3f5f8;
    box-shadow: inset 8px 8px 20px 0 rgba(55,99,170,.11),inset -8px -8px 20px 0 #fff;
    border-radius: 4px;
}
details[open] summary::after{
	transform:rotate(180deg);
}

/*** - Docus - ***/
.toc-menu a{
    border-left:2px solid #eaeaea;
    padding:.4rem .4rem .4rem .9rem ;
}
.toc-menu a.active{
    border-color: var(--active-color);
    color: var(--active-color);
}
.post-categories a{
    display: inline-block;
    border:1px solid var(--primary-color);
    padding:.3rem .7rem;
    border-radius: 4px;
    margin-right:.5rem;
    color:var(--primary-color);
}
.post-categories a:hover{
    background-color: var(--active-color);
    color:#fff;
}
.post-categories a:last-child{
    margin-right:0;
}
.gradient-bg{
    background-image: url('assets/images/gradient-bg.jpg');
    background-size:cover;
    background-repeat: no-repeat;
    background-position: top left;
}

/* --- ASO Animation ---*/
[data-aos="blur-in"] {
    opacity: 0;
    filter:blur(25px)
}
[data-aos="blur-in"].aos-animate {
    opacity: 1;
    filter:blur(0)
}

/* --- Footer Menu ---*/
.footer-menu > li a{
    margin-bottom:.5rem;
    display: block;
}
.footer-menu > li > ul > li a{
    color:#495770;
}
.footer-menu > li > ul > li a:hover{
    color: var(--active-color);
}
.copyright{
    border-top:1px solid #eaeaea;
}