/*
 * PsyGuild design system.
 * This file is the single color/type normalization layer and is loaded last.
 */

:root {
  --pg-color-blue: var(--pg-primary, #00d4ff);
  --pg-color-blue-strong: var(--pg-primary-deep, #00a3cc);
  --pg-color-purple: var(--pg-secondary, #a855f7);
  --pg-color-purple-strong: var(--pg-secondary-deep, #9333ea);
  --pg-color-black: #020617;
  --pg-color-white: #ffffff;

  --pg-font-sans: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pg-color-text: var(--pg-color-black);
  --pg-color-muted: rgba(2, 6, 23, 0.72);
  --pg-color-page: #ffffff;
  --pg-color-surface: rgba(255, 255, 255, 0.92);
  --pg-color-surface-strong: #ffffff;
  --pg-color-border: rgba(2, 6, 23, 0.12);
  --pg-color-border-strong: rgba(2, 6, 23, 0.22);
  --pg-color-header: rgba(255, 255, 255, 0.94);
  --pg-color-footer: #ffffff;
  --pg-brand-gradient: linear-gradient(135deg, var(--pg-color-blue) 0%, color-mix(in srgb, var(--pg-color-blue) 62%, var(--pg-color-purple)) 46%, var(--pg-color-purple) 100%);
  --pg-brand-gradient-hover: linear-gradient(135deg, var(--pg-color-blue-strong) 0%, color-mix(in srgb, var(--pg-color-blue-strong) 38%, var(--pg-color-purple)) 58%, var(--pg-color-purple-strong) 100%);
  --pg-brand-tint: linear-gradient(135deg, color-mix(in srgb, var(--pg-color-blue) 12%, transparent), color-mix(in srgb, var(--pg-color-purple) 14%, transparent));

  --pg-bg: var(--pg-color-page);
  --pg-bg-soft: rgba(2, 6, 23, 0.03);
  --pg-surface: var(--pg-color-surface);
  --pg-surface-strong: var(--pg-color-surface-strong);
  --pg-border: var(--pg-color-border);
  --pg-border-strong: var(--pg-color-border-strong);
  --pg-text: var(--pg-color-text);
  --pg-muted: var(--pg-color-muted);
  --pg-dark: var(--pg-color-black);
  --pg-section-bg: var(--pg-color-surface);
  --pg-block-bg: var(--pg-color-surface);
  --pg-header-bg: var(--pg-color-header);
  --pg-footer-bg: var(--pg-color-footer);
  --pg-comment-bg: var(--pg-color-surface);
  --pg-gradient: var(--pg-brand-gradient);
  --pg-gradient-hover: var(--pg-brand-gradient-hover);
  --pg-link: var(--pg-color-blue-strong);
  --pg-link-hover: var(--pg-color-purple);
  --pg-accent: var(--pg-color-purple);
  --pg-accent-light: var(--pg-color-blue);
}

body.pg-theme-dark {
  --pg-color-text: var(--pg-color-white);
  --pg-color-muted: rgba(255, 255, 255, 0.74);
  --pg-color-page: var(--pg-color-black);
  --pg-color-surface: rgba(2, 6, 23, 0.9);
  --pg-color-surface-strong: rgba(2, 6, 23, 0.98);
  --pg-color-border: rgba(255, 255, 255, 0.16);
  --pg-color-border-strong: rgba(255, 255, 255, 0.28);
  --pg-color-header: rgba(2, 6, 23, 0.94);
  --pg-color-footer: var(--pg-color-black);
  --pg-bg-soft: rgba(255, 255, 255, 0.06);
  --pg-dark: var(--pg-color-white);
  background-color: var(--pg-bg);
  background-image:
    var(--pg-body-bg-image),
    radial-gradient(circle at top left, color-mix(in srgb, var(--pg-color-blue) 14%, transparent) 0%, transparent 31%),
    linear-gradient(180deg, var(--pg-color-black) 0%, #050914 48%, var(--pg-color-black) 100%);
  background-size: cover, auto, auto;
  background-position: center top, left top, center;
  background-repeat: no-repeat, no-repeat, no-repeat;
  background-attachment: fixed, scroll, scroll;
}

body {
  color: var(--pg-text);
  font-family: var(--pg-font-sans);
}

.pg-text-gradient,
.pg-side-header__title,
.pg-newsroom__title,
.pg-author-header__title,
.pg-services__title {
  background: var(--pg-brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

.pg-site-header,
.pg-sub-header,
.pg-mobile-bottom-bar,
.pg-search-dropdown,
.pg-sidebar-drawer,
.pg-site-footer,
.pg-card,
.pg-card-strong,
.pg-home-side-card,
.pg-event-item,
.pg-author-item,
.pg-news-card,
.pg-service-card,
.pg-single-sidebar,
.pg-comments-area,
.pg-comment-card,
.pg-portal-card,
.pg-author-card {
  background: var(--pg-block-bg);
  color: var(--pg-text);
  border-color: var(--pg-border);
}

.pg-site-header {
  background-color: var(--pg-header-bg);
  background-image: var(--pg-header-bg-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-bottom-color: var(--pg-border);
}

.pg-site-footer {
  background-color: var(--pg-footer-bg);
  background-image: var(--pg-footer-bg-image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.pg-site-footer__overlay {
  background: var(--pg-brand-tint);
}

.pg-logo-title,
.pg-main-nav a,
.pg-site-header a,
.pg-site-header button,
.pg-footer-title,
.pg-footer-heading,
.pg-footer-nav a,
.pg-side-header__title,
.pg-event-item__title,
.pg-author-name,
.pg-news-card__title,
.pg-service-card__title,
.pg-single-title,
.pg-entry-content,
.pg-entry-content p,
.pg-entry-content li,
.pg-entry-content h1,
.pg-entry-content h2,
.pg-entry-content h3,
.pg-entry-content h4,
.pg-entry-content h5,
.pg-entry-content h6,
.pg-comment-card,
.pg-comment-card p {
  color: var(--pg-text);
}

.pg-logo-desc,
.pg-footer-desc,
.pg-footer-nav a,
.pg-side-header__subtitle,
.pg-event-item__meta,
.pg-author-role,
.pg-author-meta,
.pg-news-card__excerpt,
.pg-news-card__meta,
.pg-service-card__excerpt,
.pg-single-excerpt,
.pg-single-meta-row,
.pg-single-read-time,
.pg-single-date,
.pg-single-views {
  color: var(--pg-muted);
}

.pg-btn-primary,
.pg-btn-dark,
.pg-hero-btn-primary,
.pg-service-card__btn,
.pg-news-card__read-btn,
.pg-sidebar-cta__btn,
.pg-bottom-fab,
.pg-scroll-top,
.pg-portal-social-icon,
.pg-author-social-link {
  background: var(--pg-brand-gradient);
  color: var(--pg-color-white);
  border-color: transparent;
}

.pg-btn-primary:hover,
.pg-btn-dark:hover,
.pg-hero-btn-primary:hover,
.pg-service-card__btn:hover,
.pg-news-card__read-btn:hover,
.pg-sidebar-cta__btn:hover,
.pg-bottom-fab:hover,
.pg-scroll-top:hover,
.pg-author-social-link:hover {
  background: var(--pg-brand-gradient-hover);
  color: var(--pg-color-white);
}

.pg-btn-icon,
.pg-btn-icon-sm,
.pg-btn-icon-bg,
.pg-btn-soft,
.pg-hero-btn-soft,
.pg-block-nav-btn,
.pg-highlights-nav-btns button,
.pg-search-form,
.pg-sidebar-link {
  background: var(--pg-block-bg);
  color: var(--pg-text);
  border-color: var(--pg-border);
}

.pg-btn-icon:hover,
.pg-btn-icon-bg:hover,
.pg-btn-soft:hover,
.pg-hero-btn-soft:hover,
.pg-block-nav-btn:hover,
.pg-highlights-nav-btns button:hover,
.pg-sidebar-link:hover,
.pg-sidebar-menu a:hover,
.pg-sidebar-menu li.current-menu-item > a {
  background: var(--pg-brand-gradient);
  color: var(--pg-color-white);
  border-color: transparent;
}

.pg-site-header .pg-btn-icon:not(.pg-header-action--primary) {
  border-color: transparent;
  background:
    linear-gradient(var(--pg-block-bg), var(--pg-block-bg)) padding-box,
    linear-gradient(135deg, color-mix(in srgb, var(--pg-color-blue) 22%, transparent), color-mix(in srgb, var(--pg-color-purple) 24%, transparent)) border-box;
  color: var(--pg-text);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--pg-dark) 5%, transparent);
}

.pg-site-header .pg-btn-icon:not(.pg-header-action--primary):hover,
.pg-site-header .pg-btn-icon[aria-expanded="true"]:not(.pg-header-action--primary),
.pg-site-header .pg-theme-toggle[aria-pressed="true"] {
  background: var(--pg-brand-gradient);
  color: var(--pg-color-white);
  border-color: transparent;
  box-shadow: 0 12px 26px color-mix(in srgb, var(--pg-color-blue) 28%, transparent);
}

.pg-site-header .pg-btn-icon[aria-expanded="true"]:not(.pg-header-action--primary):hover,
.pg-site-header .pg-theme-toggle[aria-pressed="true"]:hover {
  background: var(--pg-brand-gradient-hover);
  color: var(--pg-color-white);
}

.pg-single,
.pg-single-main-column,
.pg-single-article,
.pg-article-content,
.pg-entry-content,
.pg-comments-area {
  background: transparent;
  color: var(--pg-text);
}

.pg-entry-content a,
.pg-footer-nav a:hover,
.pg-social-link:hover,
.pg-toc-link.is-active,
.pg-toc-link:hover,
.pg-single-cat,
.pg-side-header__subtitle--blue,
.pg-side-header__subtitle--green {
  color: var(--pg-color-blue);
}

.pg-entry-content blockquote {
  position: relative;
  border: 1px solid transparent;
  border-left: 0;
  border-radius: 1rem;
  background:
    linear-gradient(var(--pg-block-bg), var(--pg-block-bg)) padding-box,
    var(--pg-brand-gradient) border-box;
  color: var(--pg-text);
}

.pg-entry-content blockquote::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  border-radius: 1rem 0 0 1rem;
  background: var(--pg-brand-gradient);
}

.pg-entry-content blockquote p,
.pg-entry-content blockquote cite {
  color: var(--pg-text);
}

.pg-single-cat,
.pg-entry-content th,
.pg-entry-content code,
.pg-entry-content pre,
.pg-related-thumb,
.pg-news-card__img,
.pg-news-card__img-placeholder,
.pg-highlight-img-placeholder,
.pg-service-card__img,
.pg-author-avatar,
.pg-event-icon {
  background: var(--pg-brand-tint);
  color: var(--pg-text);
  border-color: var(--pg-border);
}

.pg-author-online-dot,
.pg-hero-dot.is-active {
  background: var(--pg-brand-gradient);
  border-color: var(--pg-color-white);
}

body.pg-theme-dark .pg-logo-img {
  background: transparent;
}

body.pg-theme-dark .pg-hero-slide,
body.pg-theme-dark .pg-hero-title,
body.pg-theme-dark .pg-hero-cat-tag,
body.pg-theme-dark .pg-hero-actions a {
  color: var(--pg-color-white);
}

body.pg-theme-dark .pg-hero-btn-soft {
  background: var(--pg-color-white);
  color: var(--pg-color-black);
}

/* Comments currently include legacy inline CSS in comments.php, so this scoped layer must win. */
.pg-comments-area,
.pg-comments-area .comment,
.pg-comments-area .comment-body,
.pg-comments-area .comment-respond,
.pg-comments-area .comment-form {
  background: transparent !important;
  color: var(--pg-text) !important;
  border-color: var(--pg-border) !important;
}

.pg-comments-area input[type="text"],
.pg-comments-area input[type="email"],
.pg-comments-area input[type="url"],
.pg-comments-area textarea {
  background: var(--pg-block-bg) !important;
  color: var(--pg-text) !important;
  border-color: var(--pg-border) !important;
}

.pg-comments-area input::placeholder,
.pg-comments-area textarea::placeholder {
  color: var(--pg-muted) !important;
}
