/*
Theme Name: Pulse on BrightHub
Theme URI: https://pulseplatform.co
Author: Madison Ave Consulting
Author URI: https://madisonaveconsulting.com
Description: Pulse-branded child theme for BrightHub. Injects the Agentforce Hybrid design system (Salesforce Blue, Deep Navy, Poppins/Inter typography) and the Google Calendar booking modal. Built on top of the BrightHub parent theme by Case-Themes.
Version: 1.0.0
License: GPL-2.0+
Template: brighthub
Text Domain: pulse-brighthub-child
Tags: saas, healthcare, custom-logo, custom-menu
*/

/* =========================================================
   Pulse on BrightHub — brand overrides
   ========================================================= */

:root {
  /* Pulse brand tokens */
  --pulse-navy:       #032D60;
  --pulse-navy-tint:  #EAF0F8;
  --pulse-ink:        #111827;
  --pulse-slate-dark: #374151;
  --pulse-slate-mid:  #6B7280;

  --pulse-sfdc-blue:      #00A1E0;
  --pulse-sfdc-blue-dark: #0089BF;
  --pulse-sfdc-blue-tint: #E6F6FC;

  --pulse-agentforce-gradient: linear-gradient(135deg, #00A1E0 0%, #7B2FF2 50%, #D946EF 100%);

  --pulse-white: #FFFFFF;
  --pulse-mist:  #F9FAFB;
  --pulse-line:  #E5E7EB;

  /* Typography */
  --pulse-font-heading: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
  --pulse-font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ---------- Typography: force Poppins/Inter site-wide ---------- */
body,
.elementor-widget-text-editor,
.elementor-widget-heading,
.elementor-widget-button,
.elementor-element,
input, select, textarea, button {
  font-family: var(--pulse-font-body) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.pxl-heading-title,
.entry-title,
.site-title {
  font-family: var(--pulse-font-heading) !important;
  color: var(--pulse-ink);
  letter-spacing: -0.02em;
}

h1, .elementor-heading-title.elementor-size-xxl { font-weight: 800; letter-spacing: -0.025em; }
h2, .elementor-heading-title.elementor-size-xl  { font-weight: 700; }
h3 { font-weight: 600; }

body {
  color: var(--pulse-slate-dark);
  line-height: 1.7;
}

/* ---------- Brand color overrides ---------- */
/* Primary accent — wherever BrightHub uses its blue, force Salesforce Blue. */
.elementor-button-primary,
.elementor-button.elementor-button-primary,
.btn-primary,
button[type="submit"],
input[type="submit"] {
  background: var(--pulse-sfdc-blue) !important;
  border-color: var(--pulse-sfdc-blue) !important;
  color: var(--pulse-white) !important;
  font-family: var(--pulse-font-body) !important;
  font-weight: 500;
  border-radius: 6px !important;
  transition: background 0.2s ease-out, box-shadow 0.2s ease-out;
}
.elementor-button-primary:hover,
.elementor-button.elementor-button-primary:hover,
.btn-primary:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--pulse-sfdc-blue-dark) !important;
  border-color: var(--pulse-sfdc-blue-dark) !important;
  box-shadow: 0 4px 12px -2px rgba(0, 161, 224, 0.25) !important;
}

a, .elementor a {
  color: var(--pulse-sfdc-blue-dark);
}
a:hover, .elementor a:hover {
  color: var(--pulse-sfdc-blue);
}

/* ---------- Pulse booking trigger button (used inside Elementor HTML widgets) ---------- */
.pulse-book-demo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--pulse-font-body);
  font-weight: 500;
  font-size: 15px;
  line-height: 1;
  padding: 14px 22px;
  border-radius: 6px;
  border: 1px solid var(--pulse-sfdc-blue);
  background: var(--pulse-sfdc-blue);
  color: var(--pulse-white);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease-out;
}
.pulse-book-demo:hover {
  background: var(--pulse-sfdc-blue-dark);
  border-color: var(--pulse-sfdc-blue-dark);
  color: var(--pulse-white);
  box-shadow: 0 4px 12px -2px rgba(0, 161, 224, 0.25);
  transform: translateY(-1px);
}

/* ---------- Agentforce gradient text helper ---------- */
.pulse-gradient-text {
  background: var(--pulse-agentforce-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
}

/* ---------- Pulse eyebrow ---------- */
.pulse-eyebrow {
  display: inline-block;
  font-family: var(--pulse-font-body);
  font-weight: 600;
  font-size: 12px;
  color: var(--pulse-sfdc-blue-dark);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  margin-bottom: 16px;
}

/* ---------- Booking modal (lifted from V3 theme) ---------- */
.pulse-modal { position: fixed; inset: 0; z-index: 9999; display: none; }
.pulse-modal[aria-hidden="false"] { display: block; }
.pulse-modal-overlay {
  position: absolute; inset: 0;
  background: rgba(17, 24, 39, 0.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.pulse-modal-panel {
  position: relative;
  max-width: 540px;
  margin: 10vh auto;
  background: var(--pulse-white);
  border-radius: 8px;
  padding: 48px 40px 36px;
  border: 1px solid var(--pulse-line);
  box-shadow: 0 24px 48px -12px rgba(3, 45, 96, 0.30);
  text-align: center;
  font-family: var(--pulse-font-body);
}
.pulse-modal-panel h3 {
  font-family: var(--pulse-font-heading);
  font-size: 26px;
  font-weight: 700;
  color: var(--pulse-ink);
  margin: 0 0 8px;
}
.pulse-modal-sub {
  color: var(--pulse-slate-mid);
  font-size: 15px;
  margin-bottom: 28px;
}
.pulse-modal-close {
  position: absolute; top: 16px; right: 16px;
  width: 32px; height: 32px;
  border-radius: 6px;
  background: transparent;
  border: 1px solid var(--pulse-line);
  font-size: 20px; line-height: 1;
  color: var(--pulse-slate-dark);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s ease-out;
}
.pulse-modal-close:hover {
  border-color: var(--pulse-ink);
  color: var(--pulse-ink);
}
#pulse-booking-button-mount {
  display: flex;
  justify-content: center;
  min-height: 56px;
}
.pulse-modal-fallback {
  margin-top: 24px;
  font-size: 13px;
  color: var(--pulse-slate-mid);
}
.pulse-modal-fallback a {
  color: var(--pulse-sfdc-blue-dark);
  text-decoration: underline;
}
body.pulse-modal-open { overflow: hidden; }

/* ---------- Trust logo wall helper ---------- */
.pulse-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  align-items: center;
  padding: 40px 0;
}
.pulse-trust-logo {
  height: 64px;
  border: 1px solid var(--pulse-line);
  border-radius: 6px;
  background: var(--pulse-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--pulse-font-heading);
  font-weight: 600;
  font-size: 14px;
  color: var(--pulse-slate-mid);
  transition: all 0.2s ease-out;
}
.pulse-trust-logo:hover {
  border-color: #D1D5DB;
  color: var(--pulse-ink);
  box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.06);
}

@media (max-width: 720px) {
  .pulse-trust-strip { grid-template-columns: 1fr 1fr; }
}
