/*
Theme Name: PsyberVerse
Author: Exe Digital
Description: A lightweight, minimal base theme for scalable WordPress projects.
Version: 1.0
Text Domain: psyberverse
*/

/* === Modern CSS Reset (Andy Bell style) === */

/* Box sizing rules */
*, *::before, *::after { box-sizing: border-box; }

/* Remove default margin */
body, dl, dd { margin: 0; }

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'], ol[role='list'] { list-style: none; padding: 0; margin: 0; }

/* Set core body defaults */
html:focus-within { scroll-behavior: smooth; }
body { min-height: 100vh; text-rendering: optimizeSpeed; line-height: 1.5; }

/* A elements that don't have a class get default styles */
a:not([class]) { text-decoration-skip-ink: auto; }

/* Make images easier to work with */
img, picture { max-width: 100%; display: block; height:auto; }

/* Inherit fonts for inputs and buttons */
input, button, textarea, select { font: inherit; }

/* Remove all animations and transitions for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

:root {
  /* optional defaults */
  --main-bg: #e9e9f0;
  --main-text: #2d2e38;
  --primary-font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont,
                 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* Light mode */
body.light {
  --main-bg: #e9e9f0;
  --main-text: #2d2e38;
  --primary-accent: #7d10e3;
}

/* Dark mode */
body.dark {
  --main-bg: #2d2e38;
  --main-text: #e9e9f0;
  --primary-accent: #7d10e3;
}

body {
  background: var(--main-bg);
  color: var(--main-text);
	font-family: var(--primary-font-family);
}

input[type="search"] {
  color: var(--main-text);
  border: 0;
  padding: 10px 12px;
}

body.light input[type="search"] {
  background: rgba(255,255,255,0.64);
}

body.dark input[type="search"] {
  background: rgba(0,0,0,0.24);
}

input[type="search"]::placeholder {
  color: var(--main-text);
  opacity: 0.6;
}

input[type="submit"],
button {
  color: #fff;
  background: var(--primary-accent);
  border: 0;
  padding: 10px 12px;
}

form.search-form,
.wp-block-search__inside-wrapper {
  display: flex;
  flex-direction: row;
}

form.search-form label {
  display: flex;
  width: calc(100% - 80px);
}

form.search-form label input[type="search"],
.search-form .search-field,
.wp-block-search__input {
  flex: 1;
  width: 100%;
}

form.search-form label input[type="search"]::placeholder,
.search-form .search-field::placeholder,
.wp-block-search__input::placeholder {
  color: var(--main-text);
  opacity: 0.6;
}

form.search-form input[type="submit"],
.search-form .search-submit,
.wp-block-search__button {
  display: flex;
  width: 80px;
  color: #fff;
  background: var(--primary-accent);
  border: 0;
  padding: 10px 12px;
  margin: 0;
}

/* =========================================
   Grid (mobile-first)
   ========================================= */

/* Gutters */
:root {
    --gutter-x: 30px; 
    --gutter-y: 0px;
}

/* Container */
.container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: calc(var(--gutter-x) / 2);
    padding-right: calc(var(--gutter-x) / 2);
    max-width: 1200px; /* keep your choice */
}

.container-fluid {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: calc(var(--gutter-x) / 2);
    padding-right: calc(var(--gutter-x) / 2);
}

/* Row */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-left: calc(var(--gutter-x) / -2);
    margin-right: calc(var(--gutter-x) / -2);
    margin-top: calc(var(--gutter-y) * -1);
}

.row > * {
    padding-left: calc(var(--gutter-x) / 2);
    padding-right: calc(var(--gutter-x) / 2);
    margin-top: var(--gutter-y);
    width: 100%;
    flex: 0 0 auto;
}

/* Base columns */
.col {
    flex: 1 0 0%;
    max-width: 100%;
}

/* Default: if you only set col-6, it applies from mobile upwards */
.col-1  { flex: 0 0 auto; width: 8.333333%; }
.col-2  { flex: 0 0 auto; width: 16.666667%; }
.col-3  { flex: 0 0 auto; width: 25%; }
.col-4  { flex: 0 0 auto; width: 33.333333%; }
.col-5  { flex: 0 0 auto; width: 41.666667%; }
.col-6  { flex: 0 0 auto; width: 50%; }
.col-7  { flex: 0 0 auto; width: 58.333333%; }
.col-8  { flex: 0 0 auto; width: 66.666667%; }
.col-9  { flex: 0 0 auto; width: 75%; }
.col-10 { flex: 0 0 auto; width: 83.333333%; }
.col-11 { flex: 0 0 auto; width: 91.666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }

/* Breakpoints (Bootstrap-ish)
   sm: 576px
   md: 768px
   lg: 992px
   xl: 1200px
*/

/* SM (>=576px) */
@media (min-width: 576px) {
    .col-sm-1  { flex: 0 0 auto; width: 8.333333%; }
    .col-sm-2  { flex: 0 0 auto; width: 16.666667%; }
    .col-sm-3  { flex: 0 0 auto; width: 25%; }
    .col-sm-4  { flex: 0 0 auto; width: 33.333333%; }
    .col-sm-5  { flex: 0 0 auto; width: 41.666667%; }
    .col-sm-6  { flex: 0 0 auto; width: 50%; }
    .col-sm-7  { flex: 0 0 auto; width: 58.333333%; }
    .col-sm-8  { flex: 0 0 auto; width: 66.666667%; }
    .col-sm-9  { flex: 0 0 auto; width: 75%; }
    .col-sm-10 { flex: 0 0 auto; width: 83.333333%; }
    .col-sm-11 { flex: 0 0 auto; width: 91.666667%; }
    .col-sm-12 { flex: 0 0 auto; width: 100%; }
}

/* MD (>=768px) */
@media (min-width: 768px) {
    .col-md-1  { flex: 0 0 auto; width: 8.333333%; }
    .col-md-2  { flex: 0 0 auto; width: 16.666667%; }
    .col-md-3  { flex: 0 0 auto; width: 25%; }
    .col-md-4  { flex: 0 0 auto; width: 33.333333%; }
    .col-md-5  { flex: 0 0 auto; width: 41.666667%; }
    .col-md-6  { flex: 0 0 auto; width: 50%; }
    .col-md-7  { flex: 0 0 auto; width: 58.333333%; }
    .col-md-8  { flex: 0 0 auto; width: 66.666667%; }
    .col-md-9  { flex: 0 0 auto; width: 75%; }
    .col-md-10 { flex: 0 0 auto; width: 83.333333%; }
    .col-md-11 { flex: 0 0 auto; width: 91.666667%; }
    .col-md-12 { flex: 0 0 auto; width: 100%; }
}

/* LG (>=992px) */
@media (min-width: 992px) {
    .col-lg-1  { flex: 0 0 auto; width: 8.333333%; }
    .col-lg-2  { flex: 0 0 auto; width: 16.666667%; }
    .col-lg-3  { flex: 0 0 auto; width: 25%; }
    .col-lg-4  { flex: 0 0 auto; width: 33.333333%; }
    .col-lg-5  { flex: 0 0 auto; width: 41.666667%; }
    .col-lg-6  { flex: 0 0 auto; width: 50%; }
    .col-lg-7  { flex: 0 0 auto; width: 58.333333%; }
    .col-lg-8  { flex: 0 0 auto; width: 66.666667%; }
    .col-lg-9  { flex: 0 0 auto; width: 75%; }
    .col-lg-10 { flex: 0 0 auto; width: 83.333333%; }
    .col-lg-11 { flex: 0 0 auto; width: 91.666667%; }
    .col-lg-12 { flex: 0 0 auto; width: 100%; }
}

/* XL (>=1200px) */
@media (min-width: 1200px) {
    .col-xl-1  { flex: 0 0 auto; width: 8.333333%; }
    .col-xl-2  { flex: 0 0 auto; width: 16.666667%; }
    .col-xl-3  { flex: 0 0 auto; width: 25%; }
    .col-xl-4  { flex: 0 0 auto; width: 33.333333%; }
    .col-xl-5  { flex: 0 0 auto; width: 41.666667%; }
    .col-xl-6  { flex: 0 0 auto; width: 50%; }
    .col-xl-7  { flex: 0 0 auto; width: 58.333333%; }
    .col-xl-8  { flex: 0 0 auto; width: 66.666667%; }
    .col-xl-9  { flex: 0 0 auto; width: 75%; }
    .col-xl-10 { flex: 0 0 auto; width: 83.333333%; }
    .col-xl-11 { flex: 0 0 auto; width: 91.666667%; }
    .col-xl-12 { flex: 0 0 auto; width: 100%; }
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin-top: 0;
  margin-bottom: 30px;
}

h1 {
  font-size: 64px;
  line-height: 64px;
}

h2 {
  font-size: 48px;
  line-height: 48px;
}

h3 {
  font-size: 32px;
  line-height: 32px;
}

h4 {
  font-size: 24px;
  line-height: 24px;
}

h5 {
  font-size: 22px;
  line-height: 22px;
}

h6 {
  font-size: 20px;
  line-height: 20px;
}

p {
  margin-top: 0;
}

/*** Buttons ***/

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn-primary {
  color: #fff;
  background: var(--primary-accent);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: color-mix(in srgb, var(--primary-accent) 85%, black);
}

.btn-secondary {
  color: var(--main-text);
  background: transparent;
  border-color: currentColor;
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  color: var(--primary-accent);
  border-color: var(--primary-accent);
}

nav.breadcrumbs {
    padding: 12px 15px;
}

ul.breadcrumb {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 12px;
    align-items: center;
}

.breadcrumb li {
  margin: 0;
  padding: 0;
}

.breadcrumb li + li::before {
  content: "›";
  opacity: 0.6;
  margin: 0 12px 0 0;
}

/*** Hamburger and Navigation ***/

button.hamburger {
	display: none;
	cursor: pointer;
	transition-property: opacity, filter;
	transition-duration: 0.15s;
	transition-timing-function: linear;
	font: inherit;
	color: inherit;
	text-transform: none;
	background-color: transparent;
	border: 0;
	margin: 0;
	padding: 0;
	overflow: visible;
	background: none;
	position: absolute;
  top: 22px;
  right: 15px;
  z-index: 9999;
  width: 26px;
	height: 18px;
}

button.hamburger.is-active {
	position: fixed;
	right: 15px;
	top: 22px;
}

button.hamburger:hover,
button.hamburger:focus {
	background: none;
	border: 0;
}
  .hamburger:hover {
    opacity: 1; }
  .hamburger.is-active:hover {
    opacity: 1; }
  .hamburger.is-active .hamburger-inner,
  .hamburger.is-active .hamburger-inner::before,
  .hamburger.is-active .hamburger-inner::after {
    background-color: var--(main-text); }

.hamburger-inner {
  display: block;
  top: 50%;
  margin-top: -2px;
}
.hamburger-inner, .hamburger-inner::before, .hamburger-inner::after {
    width: 26px;
    height: 2px;
    background-color: var(--main-text);
    border-radius: 4px;
    position: absolute;
    transition-property: transform;
    transition-duration: 0.15s;
    transition-timing-function: ease;
}
.hamburger-inner::before, .hamburger-inner::after {
    content: "";
    display: block;
}
.hamburger-inner::before {
    top: -8px;
}

/** Collapse R **/
.hamburger--collapse-r .hamburger-inner {
  top: auto;
  bottom: 0;
  transition-duration: 0.13s;
  transition-delay: 0.13s;
  transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 
}

.hamburger--collapse-r .hamburger-inner::after {
    top: -16px;
    transition: top 0.2s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity 0.1s linear; 
}

.hamburger--collapse-r .hamburger-inner::before {
    transition: top 0.12s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.hamburger--collapse-r.is-active .hamburger-inner {
    transform: translate3d(0, -10px, 0) rotate(45deg);
    transition-delay: 0.22s;
    transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
}

.hamburger--collapse-r.is-active .hamburger-inner::after {
    top: 0;
    opacity: 0;
    transition: top 0.2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity 0.1s 0.22s linear;
}

.hamburger--collapse-r.is-active .hamburger-inner::before {
    top: 0;
    transform: rotate(90deg);
    transition: top 0.1s 0.16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform 0.13s 0.25s cubic-bezier(0.215, 0.61, 0.355, 1);
}

@media(max-width: 767.9px) {

  button.hamburger {
    display: block;
  }
	
	#main-menu-wrap nav#main-navigation {
		position: fixed;
		height: 100vh;
		width: 100vw;
		top: -100vh;
		left: 0;
		transition-duration: 0.3s;
		background: var(--main-bg);
		z-index: 999;
		overflow: hidden;
	}

	#main-menu-wrap nav#main-navigation.open {
		top: 0;
	}

	#main-menu-wrap nav#main-navigation ul {
		padding-right: 0;
		display: block;
		width: 100%;
		padding: 0;
		z-index: 1;
	}

	#main-menu-wrap nav#main-navigation ul li {
		display: block;
		width: 100%;
		position: relative;
		margin: 16px 0;
		padding: 10px 0;
		overflow: auto;
		text-align: center;
	}
	
	#main-menu-wrap nav#main-navigation ul li a {
		display: inline-block;
		position: relative;
		color: var(--main-text);
		font-size: 34px;
		font-weight: 600;
		text-align: center;
		padding: 4px 0;
		margin: 0;
	}
	
}

/* ================================
   Navigation – force single line
================================ */

#main-navigation,
#main-navigation .nav-menu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.main-nav {
    display: flex;
    justify-content: center;
}

.nav-menu {
    display: flex;
    gap: 2rem;
    padding: 0;
    margin: 0;
}

.nav-menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-menu li {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0 22px;
}

.nav-menu a {
    color: var(--main-text);
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    font-size: 0.95rem;
    font-weight: 500;
    text-decoration: none;
    padding: 0.4rem 0;
    position: relative;
    transition: color 0.2s ease;
}

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

.nav-menu ul.sub-menu,
.nav-menu ul.child {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;

    display: flex;
    flex-direction: column;

    background: var(--main-bg);
    border-radius: 10px;
    padding: 12px 0;
    margin-top: 12px;

    box-shadow: 0 12px 30px rgba(0,0,0,0.24);

    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: 
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s;
    
    z-index: 999;
}

.nav-menu li:hover > ul.sub-menu,
.nav-menu li:focus-within > ul.sub-menu,
.nav-menu li:hover > ul.child,
.nav-menu li:focus-within > ul.child {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-menu ul.sub-menu li,
.nav-menu ul.child li {
    display: block;
    margin: 0;
}

.nav-menu ul.sub-menu a,
.nav-menu ul.child a {
    padding: 8px 12px;
    color: var(--main-text);
    width: 100%;
    transition: 
        color 0.2s ease;
}

.nav-menu ul.sub-menu a:hover,
.nav-menu ul.child a:hover {
    color: var(--primary-accent);
}

/**********************************/
/** Hamburger and Navigation END **/
/**********************************/

#site-header {
  display: flex;
  position: relative;
  min-height: 80px;
  align-items: center;
}

#site-header .logo {
  font-weight: 600;
  font-size: 1.1rem;
  letter-spacing: 0.4px;
  display: flex;
  align-items: center;
}

#site-header .togglecol {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

@media(max-width: 767.9px) {

  #site-header {
    min-height: 62px;
  }

  .theme-toggle {
      position: absolute;
      top: 11px;
      right: 74px;
  }

}

body.blog .archive-content article.archive-item,
body.archive .archive-content article.archive-item,
body.search .archive-content article.archive-item {
  position: relative;
  display: flex;
  width: 100%;
  flex-direction: column;
  margin: 0 0 30px 0;
  border-radius: 14px;
  overflow: hidden;
  -webkit-box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.18); 
  box-shadow: 0px 0px 24px 0px rgba(0,0,0,0.18);
}

body.light.blog .archive-content article.archive-item,
body.light.archive .archive-content article.archive-item,
body.light.search .archive-content article.archive-item {
  background: rgba(255, 255, 255, 0.64);
}

body.dark.blog .archive-content article.archive-item,
body.dark.archive .archive-content article.archive-item,
body.search.archive .archive-content article.archive-item {
  background: rgba(0, 0, 0, 0.24);
}

body.blog .archive-content article .archive-thumb,
body.archive .archive-content article .archive-thumb,
body.search .archive-content article .archive-thumb {
  
}

body.blog .archive-content article .archive-body,
body.archive .archive-content article .archive-body,
body.search .archive-content article .archive-body {
  padding: 30px;
}

body.blog .archive-content article .archive-cats,
body.archive .archive-content article .archive-cats,
body.search .archive-content article .archive-cats {
  position: absolute;
  top: 24px;
  right: 24px;
  max-width: calc(100% - 48px);
  text-align: right;
}

body.blog .archive-content article .archive-cats a,
body.archive .archive-content article .archive-cats a,
body.search .archive-content article .archive-cats a {
	background: #fff;
	padding: 8px 12px;
	margin-right: 4px;
	margin-bottom: 8px;
	border-radius: 40px;
	font-size: 13px;
	text-decoration: none;
	display: inline-block;
}

body.blog .archive-content article .archive-item-title,
body.archive .archive-content article .archive-item-title,
body.search .archive-content article .archive-item-title {
  font-size: 32px;
  line-height: 32px;
  margin-top: 0;
  margin-bottom: 8px;
}

body.blog .archive-content article .archive-item-title a,
body.archive .archive-content article .archive-item-title a,
body.search .archive-content article .archive-item-title a {
  text-decoration: none;
}

body.blog .archive-content article .archive-meta,
body.archive .archive-content article .archive-meta,
body.search .archive-content article .archive-meta {
  font-size: 14px;
  margin-bottom: 18px;
}

body.blog .archive-content article .archive-excerpt,
body.archive .archive-content article .archive-excerpt,
body.search .archive-content article .archive-excerpt {
  
}

body.blog .archive-content article .archive-actions a,
body.archive .archive-content article .archive-actions a,
body.search .archive-content article .archive-actions a {
  background: var(--primary-accent);
  color: #fff;
  padding: 10px 16px;
  border-radius: 6px;
  text-decoration: none;
  display: inline-block;
}

.archive-sidebar {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.archive-sidebar .widget {

}

.archive-sidebar .widget ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.archive-sidebar .widget ul li a {
  text-decoration: none;
}