/* ============================================
   AEGISX MODULES THEME — Utility Layer Only
   No layout defaults. Each page defines own layout.
   ============================================ */

/* Shared page-level resets */
.mod-page { min-height:100vh; overflow-x:hidden; }
.mod-page main { position:relative; z-index:1; }

/* Subtle grid background (optional per-page override) */
.mod-grid-bg {
  position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.12;
  background-image:
    linear-gradient(rgba(var(--mod-primary-rgb),.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(var(--mod-primary-rgb),.05) 1px,transparent 1px);
  background-size:60px 60px;
}

/* Glow orb */
.mod-glow-orb {
  position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;opacity:.12;
  background:var(--mod-icon-gradient, radial-gradient(circle,var(--mod-primary),var(--mod-secondary),transparent 70%));
}

/* Breadcrumb (shared pattern) */
.mod-breadcrumb { padding:18px 32px; font-size:.88rem; }
.mod-breadcrumb a { color:var(--mod-text-muted,#667a9e); text-decoration:none; transition:color .25s; }
.mod-breadcrumb a:hover { color:var(--mod-primary); }
.mod-breadcrumb .sep { color:var(--mod-text-muted,#4a5664); margin:0 8px; }

/* Shared highlight spans */
.hl { background:var(--mod-heading-gradient); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* Shared section label (all-caps) */
.mod-sec-label {
  font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; font-family:'Courier New',monospace;
  color:var(--mod-text-muted); margin-bottom:8px;
}

/* Shared tags */
.mod-tag {
  font-size:.72rem;padding:3px 10px;border-radius:20px;font-weight:600;
  background:var(--mod-tag-bg);border:1px solid var(--mod-tag-border);color:var(--mod-tag-text);
  white-space:nowrap; display:inline-flex;align-items:center;gap:4px;
}
.mod-tag--accent { background:rgba(var(--mod-secondary-rgb),.10);border-color:rgba(var(--mod-secondary-rgb),.25);color:var(--mod-secondary); }

/* Shared buttons */
.mod-btn {
  display:inline-flex;align-items:center;gap:8px;padding:13px 30px;
  border-radius:30px;font-weight:700;font-size:.95rem;text-decoration:none;
  transition:transform .25s,box-shadow .25s;cursor:pointer;border:none;
}
.mod-btn:hover { transform:translateY(-2px); }
.mod-btn--primary {
  background:var(--mod-btn-primary-bg,linear-gradient(135deg,var(--mod-primary),var(--mod-secondary)));
  color:#fff;box-shadow:0 4px 20px rgba(var(--mod-primary-rgb),.30);
}
.mod-btn--primary:hover { box-shadow:0 8px 30px rgba(var(--mod-primary-rgb),.45); }
.mod-btn--outline {
  background:transparent;color:var(--mod-primary);
  border:2px solid rgba(var(--mod-primary-rgb),.35);
}
.mod-btn--outline:hover { background:rgba(var(--mod-primary-rgb),.08);border-color:var(--mod-primary); }

/* Shared fade-in animation */
.mod-fade-up { opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease; }
.mod-fade-up.visible { opacity:1;transform:translateY(0); }
.mod-delay-1{transition-delay:.06s}.mod-delay-2{transition-delay:.12s}.mod-delay-3{transition-delay:.18s}.mod-delay-4{transition-delay:.24s}.mod-delay-5{transition-delay:.30s}.mod-delay-6{transition-delay:.36s}

/* Responsive */
@media(max-width:768px){
  .mod-breadcrumb{padding:14px 16px;}
  .mod-btn{padding:11px 22px;font-size:.88rem;}
}
