/*
Theme Name: PBD Universal Theme
Theme URI: https://pbdi.net/
Author: PBD Institute
Author URI: https://pbdi.net/
Description: PBD Universal Theme V4.1.0 — universal WordPress presentation system with deep Elementor compatibility, editable navigation/mega menus, branding controls, and PBD plugin integration.
Version: 4.2.1
Requires at least: 6.4
Requires PHP: 8.1
Text Domain: pbd-universal
License: GPL-2.0-or-later
*/

:root {
  --pbd-primary: #0b5cff;
  --pbd-primary-dark: #073a9e;
  --pbd-primary-light: #eaf1ff;
  --pbd-secondary: #172033;
  --pbd-accent: #14b8a6;
  --pbd-bg: #ffffff;
  --pbd-surface: #f7f9fc;
  --pbd-surface-elevated: #ffffff;
  --pbd-text: #111827;
  --pbd-muted: #64748b;
  --pbd-border: #e2e8f0;
  --pbd-success: #15803d;
  --pbd-warning: #b45309;
  --pbd-danger: #b91c1c;
  --pbd-info: #0369a1;

  --pbd-radius-sm: .375rem;
  --pbd-radius-md: .625rem;
  --pbd-radius-lg: 1rem;
  --pbd-radius-xl: 1.5rem;
  --pbd-shadow-sm: 0 1px 2px rgba(15,23,42,.06);
  --pbd-shadow-md: 0 10px 35px rgba(15,23,42,.09);

  --pbd-container: 1200px;
  --pbd-content: 760px;
  --pbd-space-1: .25rem;
  --pbd-space-2: .5rem;
  --pbd-space-3: .75rem;
  --pbd-space-4: 1rem;
  --pbd-space-5: 1.5rem;
  --pbd-space-6: 2rem;
  --pbd-space-7: 3rem;
  --pbd-space-8: 4rem;
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--pbd-bg);
  color: var(--pbd-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
}
*, *::before, *::after { box-sizing: border-box; }
a { color: var(--pbd-primary); }
a:hover { color: var(--pbd-primary-dark); }
img, svg, video, iframe { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }

.pbd-container {
  width: min(calc(100% - 2rem), var(--pbd-container));
  margin-inline: auto;
}
.pbd-content { width: min(100%, var(--pbd-content)); margin-inline: auto; }
.pbd-section { padding-block: clamp(3rem, 7vw, 6rem); }
.pbd-surface { background: var(--pbd-surface); }
.pbd-grid { display: grid; gap: var(--pbd-space-5); }
.pbd-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pbd-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.pbd-card {
  background: var(--pbd-surface-elevated);
  border: 1px solid var(--pbd-border);
  border-radius: var(--pbd-radius-lg);
  box-shadow: var(--pbd-shadow-sm);
  padding: var(--pbd-space-5);
}

.pbd-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 44px;
  padding: .7rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--pbd-radius-md);
  background: var(--pbd-primary);
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease, transform .2s ease;
}
.pbd-button:hover { background: var(--pbd-primary-dark); color: #fff; }
.pbd-button:active { transform: translateY(1px); }
.pbd-button--outline {
  background: transparent;
  border-color: var(--pbd-primary);
  color: var(--pbd-primary);
}
.pbd-button--outline:hover { background: var(--pbd-primary-light); color: var(--pbd-primary-dark); }

.pbd-skip-link {
  position: absolute;
  inset-inline-start: 1rem;
  inset-block-start: -100px;
  z-index: 9999;
  padding: .75rem 1rem;
  background: var(--pbd-text);
  color: #fff;
}
.pbd-skip-link:focus { inset-block-start: 1rem; }

.pbd-header {
  border-bottom: 1px solid var(--pbd-border);
  background: var(--pbd-bg);
}
.pbd-header__inner {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.pbd-brand { display: inline-flex; align-items: center; gap: .75rem; }
.pbd-brand a { text-decoration: none; color: inherit; font-weight: 750; }
.pbd-nav ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.pbd-nav a { text-decoration: none; color: inherit; }

.pbd-main { min-height: 50vh; }
.pbd-entry-title { margin-block-start: 0; }
.pbd-meta { color: var(--pbd-muted); font-size: .925rem; }
.pbd-footer {
  margin-top: 4rem;
  padding-block: 2rem;
  border-top: 1px solid var(--pbd-border);
  color: var(--pbd-muted);
}
.pbd-footer a { color: inherit; }

.pbd-form-control {
  width: 100%;
  min-height: 44px;
  padding: .65rem .8rem;
  border: 1px solid var(--pbd-border);
  border-radius: var(--pbd-radius-md);
  background: var(--pbd-bg);
  color: var(--pbd-text);
}
.pbd-form-control:focus {
  outline: 3px solid var(--pbd-primary-light);
  border-color: var(--pbd-primary);
}

.pbd-alert {
  padding: 1rem 1.1rem;
  border: 1px solid var(--pbd-border);
  border-radius: var(--pbd-radius-md);
  background: var(--pbd-surface);
}
.pbd-alert--success { border-color: color-mix(in srgb, var(--pbd-success) 35%, white); }
.pbd-alert--warning { border-color: color-mix(in srgb, var(--pbd-warning) 35%, white); }
.pbd-alert--danger { border-color: color-mix(in srgb, var(--pbd-danger) 35%, white); }

@media (max-width: 900px) {
  .pbd-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 782px) {
  .pbd-header__inner { align-items: flex-start; flex-direction: column; padding-block: 1rem; }
  .pbd-grid--2, .pbd-grid--3 { grid-template-columns: 1fr; }
  .pbd-nav ul { gap: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* Elementor compatibility */
.pbd-elementor-compatible .elementor {
  width: 100%;
}
.pbd-elementor-compatible .pbd-page-content,
.pbd-elementor-compatible .pbd-single-content {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.pbd-elementor-compatible .elementor-page .pbd-main {
  min-height: 0;
}
.elementor-editor-active .pbd-header,
.elementor-editor-active .pbd-footer {
  /* Keep native fallback chrome visible in the editor when Theme Builder is not providing a location. */
}


/* Elementor editor compatibility */
.elementor-page .pbd-main,
.elementor-editor-active .pbd-main { width: 100%; }
.elementor-page .pbd-container { width: min(calc(100% - 2rem), var(--pbd-container)); }
.elementor-page .elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--pbd-container); }
.pbd-site-header--transparent { position: absolute; inset-inline: 0; top: 0; z-index: 50; background: transparent; }
.pbd-site-header--sticky { position: sticky; top: 0; z-index: 50; }

/* Native PBD mega menu */
.pbd-nav .pbd-mega-menu > .sub-menu { display: grid; grid-template-columns: repeat(var(--pbd-mega-columns, 3), minmax(0,1fr)); gap: 1.25rem; min-width: min(90vw, 980px); padding: 1.25rem; }
.pbd-nav .pbd-mega-menu > .sub-menu > li > a { font-weight: 700; }
.pbd-nav .pbd-mega-menu > .sub-menu > li > .sub-menu { display: grid; gap: .35rem; padding-top: .5rem; }
@media (max-width: 900px) {
  .pbd-nav .pbd-mega-menu > .sub-menu { display:block; min-width:0; padding: .5rem 0; }
}
