/* Objective brand stylesheet.
   Mirrors the React app's theme.ts tokens and site.css design system so
   WordPress/Elementor output matches the source site: Nunito Sans typography,
   BLUE #1464F4 accents, square buttons, dark sections and card styles. */

:root {
  --obj-blue: #1464f4;
  --obj-blue-dark: #0d4fd1;
  --obj-blue-active: #0a3fab;
  --obj-black: #000000;
  --obj-near: #050505;
  --obj-panel: #0a0a0a;
  --obj-white: #ffffff;
  --obj-heading: #0a0a0a;
  --obj-body-on-light: #555555;
  --obj-body-on-light-2: #666666;
  --obj-body-on-dark: rgba(255, 255, 255, 0.7);
  --obj-font-stack: "Nunito Sans", sans-serif;
}

/* ---------------- Base typography ---------------- */
body,
button,
input,
select,
textarea {
  font-family: var(--obj-font-stack);
}

body {
  color: var(--obj-body-on-light);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--obj-font-stack);
  color: var(--obj-heading);
  line-height: 1.15;
}

a {
  color: var(--obj-blue);
  text-decoration: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}
a:hover {
  color: var(--obj-blue-dark);
}

.obj-link {
  text-decoration: none;
  transition: color 0.15s ease, opacity 0.15s ease;
}
.obj-link:hover {
  opacity: 0.82;
}

/* ---------------- Buttons (square, sky-blue) — mirrors site.css ---------------- */
.obj-btn,
.wp-block-button__link,
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: inherit;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  padding: 11px 22px;
  border: 1px solid transparent;
  border-radius: 0;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  background-color: var(--obj-blue);
  color: #fff;
  transition: background-color 0.16s ease, color 0.16s ease,
    border-color 0.16s ease, transform 0.1s ease, box-shadow 0.16s ease;
}
.obj-btn:focus-visible,
.wp-block-button__link:focus-visible,
.button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.obj-btn--primary,
.wp-block-button__link,
.button {
  background-color: var(--obj-blue);
  color: #fff;
}
.obj-btn--primary:hover,
.wp-block-button__link:hover,
.button:hover {
  background-color: var(--obj-blue-dark);
  color: #fff;
}
.obj-btn--primary:active {
  background-color: var(--obj-blue-active);
  transform: translateY(1px);
}
.obj-btn--outline {
  background-color: transparent;
  border-color: var(--obj-blue);
  color: var(--obj-blue);
}
.obj-btn--outline:hover {
  background-color: var(--obj-blue);
  color: #fff;
}
.obj-btn--outline:active {
  background-color: var(--obj-blue-dark);
  border-color: var(--obj-blue-dark);
  transform: translateY(1px);
}
.obj-btn--outline-dark {
  background-color: transparent;
  border-color: rgba(0, 0, 0, 0.2);
  color: var(--obj-heading);
}
.obj-btn--outline-dark:hover {
  border-color: var(--obj-blue);
  color: var(--obj-blue);
}
.obj-btn--on-blue {
  background-color: #fff;
  color: var(--obj-blue);
}
.obj-btn--on-blue:hover {
  background-color: #f0f4ff;
  color: var(--obj-blue-dark);
}
.obj-btn--on-blue:active {
  background-color: #e4ebff;
  transform: translateY(1px);
}
.obj-btn--lg {
  padding: 15px 32px;
  font-size: 14px;
  font-weight: 800;
}
.obj-btn--sm {
  padding: 8px 16px;
  font-size: 12px;
}
.obj-btn--block {
  width: 100%;
}

/* ---------------- Sections ---------------- */
.obj-section {
  padding: 72px 80px;
}
.obj-section--dark {
  background-color: var(--obj-near);
  color: var(--obj-body-on-dark);
}
.obj-section--black {
  background-color: var(--obj-black);
  color: var(--obj-body-on-dark);
}
.obj-section--panel {
  background-color: var(--obj-panel);
  color: var(--obj-body-on-dark);
}
.obj-section--blue {
  background-color: var(--obj-blue);
  color: #fff;
}
.obj-section--dark h1,
.obj-section--dark h2,
.obj-section--dark h3,
.obj-section--black h1,
.obj-section--black h2,
.obj-section--black h3,
.obj-section--panel h1,
.obj-section--panel h2,
.obj-section--panel h3,
.obj-section--blue h1,
.obj-section--blue h2,
.obj-section--blue h3 {
  color: #fff;
}
.obj-container {
  max-width: 1120px;
  margin: 0 auto;
}

/* Section eyebrow label */
.obj-label {
  color: var(--obj-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 14px;
}

/* ---------------- Cards ---------------- */
.obj-card {
  background-color: #f7f8fa;
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 26px;
  display: flex;
  flex-direction: column;
  color: inherit;
}
.obj-card--dark {
  background-color: var(--obj-near);
  border-color: rgba(255, 255, 255, 0.1);
}
.obj-card-link {
  text-decoration: none;
  transition: transform 0.16s ease, border-color 0.16s ease,
    box-shadow 0.16s ease;
}
.obj-card-link:hover {
  transform: translateY(-3px);
  border-color: rgba(20, 100, 244, 0.55);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.18);
}

/* ---------------- Fallback CPT templates ---------------- */
.obj-fallback {
  max-width: 900px;
  margin: 0 auto;
  padding: 64px 24px;
}
.obj-fallback-archive {
  max-width: 1120px;
  margin: 0 auto;
  padding: 64px 24px;
}
.obj-fallback-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.obj-fallback-entry-title {
  font-weight: 800;
  font-size: 17px;
  line-height: 1.35;
  margin: 0 0 8px;
}
.obj-fallback-entry-title a {
  color: var(--obj-heading);
}
.obj-fallback-entry-title a:hover {
  color: var(--obj-blue);
}
.obj-fallback-meta {
  color: var(--obj-body-on-light);
  font-size: 13px;
  margin-bottom: 18px;
}
.obj-faq {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding: 18px 0;
}
.obj-faq-q {
  font-weight: 800;
  font-size: 16px;
  color: var(--obj-heading);
  margin: 0 0 8px;
}
.obj-faq-a {
  color: var(--obj-body-on-light);
  font-size: 14.5px;
  line-height: 1.65;
  margin: 0;
}
.obj-extra-section {
  margin-top: 32px;
}
.obj-extra-section h2 {
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 10px;
}

@media (max-width: 980px) {
  .obj-fallback-grid {
    grid-template-columns: 1fr 1fr;
  }
  .obj-section {
    padding: 56px 36px;
  }
}
@media (max-width: 680px) {
  .obj-fallback-grid {
    grid-template-columns: 1fr;
  }
  .obj-section {
    padding: 48px 20px;
  }
}

/* ==========================================================================
   Native page-template layout styles (header/footer chrome, heros, grids,
   cards, transactions strip, forms, author box, embeds). Mirrors the React
   site.css / advisor.css tokens. Responsive at 980 / 680 / 480.
   ========================================================================== */

.obj-grid { display: grid; gap: 24px; }
.obj-grid-2 { grid-template-columns: repeat(2, 1fr); }
.obj-grid-3 { grid-template-columns: repeat(3, 1fr); }
.obj-grid-4 { grid-template-columns: repeat(4, 1fr); }
.obj-center { text-align: center; }

.obj-h1 { font-size: 52px; line-height: 1.08; margin: 0 0 20px; }
.obj-h2 { font-size: 34px; line-height: 1.15; font-weight: 500; margin: 0 0 16px; }
.obj-section-title { text-align: center; color: #fff; font-weight: 500; }
.obj-section-intro { max-width: 720px; margin: 0 auto 40px; text-align: center; color: var(--obj-body-on-dark); }
.obj-prose { max-width: 780px; }
.obj-prose p { margin: 0 0 18px; }

/* Header chrome */
.obj-header { position: sticky; top: 0; z-index: 100; }
.obj-ann {
  background: var(--obj-black); color: #fff; font-size: 13px;
  display: flex; align-items: center; justify-content: center; gap: 14px;
  padding: 8px 20px; text-align: center; flex-wrap: wrap;
}
.obj-ann-cta { color: #fff; font-weight: 700; text-decoration: underline; white-space: nowrap; }
.obj-nav {
  background: #fff; border-bottom: 1px solid #eee;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 40px; gap: 24px;
}
.obj-brand-logo { height: 44px; width: auto; display: block; }
.obj-brand-text { font-weight: 800; font-size: 20px; color: var(--obj-heading); }
.obj-nav-desktop { display: flex; align-items: center; gap: 28px; }
.obj-menu-list { list-style: none; display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; }
.obj-menu-list li { position: relative; }
.obj-menu-list a { color: var(--obj-heading); font-size: 14px; font-weight: 600; text-decoration: none; }
.obj-menu-list a:hover { color: var(--obj-blue); }
.obj-menu-list .sub-menu {
  list-style: none; margin: 0; padding: 10px 0; position: absolute; top: 100%; left: 0;
  min-width: 220px; background: #fff; border: 1px solid #eee; border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.12); opacity: 0; visibility: hidden;
  transform: translateY(6px); transition: all .18s ease; z-index: 20;
}
.obj-menu-list li:hover > .sub-menu,
.obj-menu-list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.obj-menu-list .sub-menu li { display: block; }
.obj-menu-list .sub-menu a { display: block; padding: 8px 18px; font-weight: 500; }
.obj-nav-cta { white-space: nowrap; }

/*
 * Integrated desktop header
 *
 * The whole header overlays the first hero rather than occupying a separate
 * white strip above it. Mobile intentionally retains the solid white nav for
 * legibility and the existing hamburger behavior.
 */
@media (min-width: 768px) {
  .obj-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    transition: transform 0.28s ease, background-color 0.28s ease;
    will-change: transform;
  }
  .admin-bar .obj-header {
    top: 32px;
  }
  .obj-header.obj-header--fixed {
    position: fixed;
    background: rgba(3, 7, 16, 0.94);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
  }
  .obj-header.obj-header--hidden {
    transform: translateY(-110%);
  }
  .obj-nav {
    position: relative;
    background: rgba(3, 7, 16, 0.28);
    border-bottom: 0;
    box-shadow: none;
  }
  .obj-brand-logo {
    filter: brightness(0) invert(1);
  }
  .obj-brand-text,
  .obj-menu-list > li > a {
    color: #fff;
  }
  .obj-menu-list > li > a {
    position: relative;
    display: inline-block;
    padding-bottom: 6px;
  }
  .obj-menu-list > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    background: #257AE4;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.18s ease;
  }
  .obj-menu-list > li:hover > a,
  .obj-menu-list > li:focus-within > a,
  .obj-menu-list > li.current-menu-item > a,
  .obj-menu-list > li.current-menu-ancestor > a {
    color: #fff;
  }
  .obj-menu-list > li:hover > a::after,
  .obj-menu-list > li:focus-within > a::after,
  .obj-menu-list > li.current-menu-item > a::after,
  .obj-menu-list > li.current-menu-ancestor > a::after {
    transform: scaleX(1);
  }
  /* All desktop dropdown levels use the Objective sky blue. */
  .obj-menu-list .sub-menu {
    background: #257AE4;
    border: 0;
    border-radius: 0;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.2);
  }
  .obj-menu-list .sub-menu a {
    color: #fff;
  }
  .obj-menu-list .sub-menu a:hover {
    color: #fff;
    background: rgba(0, 0, 0, 0.12);
  }
  .obj-menu-list .sub-menu li.menu-item-has-children > a::after {
    color: rgba(255, 255, 255, 0.8);
  }
  /*
   * Internal hero templates were originally spaced for an in-flow header.
   * Once the header overlays the hero, reserve enough room above their copy.
   * The homepage keeps its purpose-built hero spacing.
   */
  body:not(.home) .obj-site-main > .elementor > .e-con:first-child,
  body:not(.home) .obj-site-main > .elementor > .elementor-element:first-child {
    padding-top: 155px !important;
  }

  /*
   * Put the fade on the hero itself, not only on the navigation. This works
   * consistently for both Elementor image and video backgrounds and makes the
   * overlaid header disappear naturally into every page's first section.
   */
  .obj-site-main > .elementor > .e-con:first-child::after,
  .obj-site-main > .elementor > .elementor-element:first-child::after {
    content: "";
    position: absolute;
    z-index: 0;
    pointer-events: none;
    top: 0;
    right: 0;
    left: 0;
    height: 230px;
    background: linear-gradient(
      180deg,
      rgba(3, 7, 16, 0.9) 0%,
      rgba(3, 7, 16, 0.62) 44%,
      rgba(3, 7, 16, 0) 100%
    );
  }
  .obj-site-main > .elementor > .e-con:first-child > .e-con-inner,
  .obj-site-main > .elementor > .e-con:first-child > .elementor-element:not(.elementor-background-video-container),
  .obj-site-main > .elementor > .elementor-element:first-child > .elementor-container {
    position: relative;
    z-index: 1;
  }
}

/* Hero */
.obj-page-hero { color: #fff; display: flex; align-items: center; background-color: var(--obj-black); }
.obj-hero--video { position: relative; overflow: hidden; }
.obj-hero-video { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.obj-hero-video video { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.obj-hero-scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to right, rgba(0,0,0,0.74) 45%, rgba(0,0,0,0.4)); }
.obj-hero--video .obj-hero-inner { position: relative; z-index: 2; }
.obj-hero-inner { max-width: 760px; }
.obj-hero-trail { font-size: 13px; color: var(--obj-body-on-dark); margin: 0 0 10px; }
.obj-hero-eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: 12px; font-weight: 700; color: var(--obj-blue); margin: 0 0 16px; }
.obj-hero-title { font-weight: 400; color: #fff; }
.obj-hero-subhead { font-size: 18px; line-height: 1.6; color: var(--obj-body-on-dark); margin: 0 0 28px; }
.obj-hero-btns { display: flex; flex-wrap: wrap; gap: 14px; }

/* Stats */
.obj-stat { text-align: center; }
.obj-stat-value { font-size: 32px; font-weight: 800; color: #fff; margin: 0 0 6px; }
.obj-stat-label { font-size: 13px; color: var(--obj-body-on-dark); margin: 0; }

/* Cards */
.obj-card-eyebrow { text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 700; color: var(--obj-blue); display: block; margin-bottom: 10px; }
.obj-card-title { font-size: 20px; font-weight: 600; margin: 0 0 10px; color: inherit; }
.obj-card--dark .obj-card-title, .obj-card--step .obj-card-title { color: #fff; }
.obj-card-desc { font-size: 15px; line-height: 1.6; margin: 0 0 16px; }
.obj-card-more { font-size: 12px; font-weight: 700; color: var(--obj-blue); margin-top: auto; }
.obj-card-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; margin-bottom: 10px; }
.obj-card-cat { color: var(--obj-blue); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.obj-card-date { color: var(--obj-body-on-light-2); }
.obj-card-thumb { display: block; width: 100%; height: 170px; background-size: cover; background-position: center; border-radius: 8px; margin-bottom: 14px; }
.obj-card--step { position: relative; }
.obj-step-num { font-size: 28px; font-weight: 800; color: var(--obj-blue); display: block; margin-bottom: 12px; }

/* Transactions strip */
.obj-tx-strip { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; margin-top: 32px; padding: 0 40px; }
.obj-tombstone {
  background: #fff; border-radius: 8px; width: 200px; height: 150px;
  display: flex; align-items: center; justify-content: center; padding: 16px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
}
.obj-tombstone img { max-width: 100%; max-height: 100%; object-fit: contain; }
.obj-tombstone-title { font-size: 13px; font-weight: 700; color: var(--obj-heading); text-align: center; }

/* Split / features / testimonials */
.obj-split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
.obj-advisor-callout { background: var(--obj-panel); color: var(--obj-body-on-dark); }
.obj-advisor-callout .obj-h2 { color: #fff; }
.obj-feature-list { display: flex; flex-direction: column; gap: 16px; }
.obj-feature-item { display: flex; align-items: center; gap: 12px; color: #fff; font-weight: 600; }
.obj-feature-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--obj-blue); flex: none; }

/* Advisor callout box (light) */
.obj-advisor-box {
        border: 1px solid rgba(20, 100, 244, 0.25);
        background: linear-gradient(135deg, rgba(20, 100, 244, 0.05) 0%, rgba(20, 100, 244, 0.04) 100%);
        padding: 48px 56px;
        max-width: 1120px;
        margin: 0 auto;
}
.obj-advisor-box .obj-feature-item { color: var(--obj-heading); }
.obj-advisor-box .obj-feature-item span:last-child {
        background: #fff;
        border: 1px solid rgba(0, 0, 0, 0.1);
        padding: 12px 16px;
        flex: 1;
        font-size: 14px;
}

/* Inline arrow link */
.obj-inline-arrow { font-weight: 700; font-size: 14px; }

/* Industry reports header */
.obj-reports-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.obj-reports-head .obj-label { margin-bottom: 12px; }

/* Industry awards */
.obj-awards-section .obj-label { margin-bottom: 40px; }
.obj-awards { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; max-width: 1040px; margin: 0 auto; }
.obj-award { flex: 1 1 0; min-width: 240px; display: flex; justify-content: center; }
.obj-award-inner { display: flex; align-items: center; justify-content: center; gap: 4px; }
.obj-award-laurel { height: 120px; width: auto; flex: none; }
.obj-award-laurel--right { transform: scaleX(-1); }
.obj-award-text { display: flex; flex-direction: column; align-items: center; text-align: center; width: 160px; }
.obj-award-title { color: var(--obj-heading); font-size: 15px; font-weight: 800; line-height: 1.25; white-space: pre-line; }
.obj-award-detail { color: var(--obj-body-on-light); font-size: 12.5px; font-weight: 600; margin-top: 8px; }

/* About awards banner (dark) */
.obj-awards-band .obj-award-title { color: #fff; }
.obj-awards-band .obj-award-detail { color: #fff; }
.obj-award-year { color: var(--obj-blue); font-size: 16px; font-weight: 900; letter-spacing: 0.5px; margin-bottom: 8px; }

/* C.H.A.R.G.E value cards */
.obj-value-letter {
        width: 46px;
        height: 46px;
        background: var(--obj-blue);
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 900;
        font-size: 22px;
        margin-bottom: 16px;
}
.obj-apart-grid { margin-top: 44px; }
.obj-apart-card { border-color: var(--obj-blue); }

/* Client success stories video grid */
.obj-video-grid { max-width: 1000px; margin: 0 auto; gap: 24px; }
.obj-video-embed { position: relative; width: 100%; aspect-ratio: 16 / 9; border: 1px solid rgba(0, 0, 0, 0.12); background: #000; overflow: hidden; }
.obj-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Owners' toolkit */
.obj-toolkit-card { background: #f7f8fa; }
.obj-toolkit-icon { width: 48px; height: 48px; border-radius: 50%; background: rgba(20, 100, 244, 0.08); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.obj-toolkit-icon svg { width: 22px; height: 22px; fill: var(--obj-blue); }
.obj-toolkit-title { color: var(--obj-heading); font-weight: 800; font-size: 15px; line-height: 1.35; margin-bottom: 8px; }
.obj-toolkit-desc { color: var(--obj-body-on-light-2); font-size: 12.5px; line-height: 1.6; margin-bottom: 18px; flex: 1; }
.obj-testimonial { background: #f7f8fa; border-radius: 12px; padding: 32px; margin: 0; }
.obj-quote-mark { font-size: 46px; line-height: 1; color: var(--obj-blue); font-weight: 800; }
.obj-quote { font-size: 17px; line-height: 1.6; color: var(--obj-heading); margin: 8px 0 20px; }
.obj-quote-cite { display: flex; flex-direction: column; }
.obj-quote-name { font-weight: 700; color: var(--obj-heading); }
.obj-quote-title { font-size: 13px; color: var(--obj-body-on-light-2); }

/* Team */
.obj-team-card { display: flex; flex-direction: column; text-decoration: none; }
.obj-team-photo { display: block; width: 100%; padding-top: 118%; background-size: cover; background-position: center top; border-radius: 10px; margin-bottom: 14px; }
.obj-team-name { font-weight: 700; color: var(--obj-heading); }
.obj-team-role { font-size: 13px; color: var(--obj-body-on-light-2); }

/* CTA band */
.obj-cta-band-wrap { color: #fff; }
.obj-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.obj-cta-title { color: #fff; font-weight: 500; margin: 0 0 8px; }
.obj-cta-subtitle { color: rgba(255,255,255,0.9); margin: 0; max-width: 560px; }
.obj-cta-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* Forms */
.obj-forms-grid { align-items: start; }
.obj-form-card { background: #fff; border-radius: 12px; padding: 32px; box-shadow: 0 10px 30px rgba(0,0,0,0.08); }
.obj-form-card .obj-card-title { color: var(--obj-heading); }
.obj-form { display: flex; flex-direction: column; gap: 16px; margin-top: 8px; }
.obj-field { display: flex; flex-direction: column; gap: 6px; }
.obj-field-label { font-size: 13px; font-weight: 600; color: var(--obj-heading); }
.obj-field input, .obj-field select, .obj-field textarea {
  border: 1px solid #d8dbe0; border-radius: 8px; padding: 11px 13px; font: inherit; color: var(--obj-heading); width: 100%;
}
.obj-field input:focus, .obj-field select:focus, .obj-field textarea:focus { outline: none; border-color: var(--obj-blue); }

/* Contact */
.obj-contact-email { font-size: 18px; font-weight: 700; }
.obj-contact-offices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.obj-contact-office-name { font-weight: 700; margin: 0 0 4px; }
.obj-contact-office-addr { font-size: 13px; margin: 0; color: var(--obj-body-on-dark); }

/* Single: author box + embeds */
.obj-author-box { display: flex; gap: 20px; align-items: flex-start; background: #f7f8fa; border-radius: 12px; padding: 24px; margin: 40px 0; max-width: 820px; }
.obj-author-photo { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex: none; }
.obj-author-name { font-weight: 700; margin: 4px 0; }
.obj-author-name a { color: var(--obj-heading); }
.obj-author-role { font-size: 13px; color: var(--obj-body-on-light-2); margin: 0 0 8px; }
.obj-author-bio { font-size: 14px; margin: 0; }
.obj-embed { margin: 28px 0; max-width: 820px; }
.obj-embed--video { position: relative; padding-top: 56.25%; }
.obj-embed--video iframe, .obj-embed--video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 10px; }
.obj-embed--audio iframe { width: 100%; height: 152px; border: 0; border-radius: 10px; }

/* Footer chrome */
.obj-footer-wrap { background: var(--obj-black); color: var(--obj-body-on-dark); }
.obj-footer { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding: 64px 40px; max-width: 1200px; margin: 0 auto; }
.obj-footer-logo { height: 56px; width: auto; }
.obj-footer-blurb { font-size: 14px; margin-top: 16px; max-width: 260px; }
.obj-footer-heading { color: #fff; font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 14px; }
.obj-footer-heading--spaced { margin-top: 28px; }
.obj-footer-link { display: block; color: var(--obj-body-on-dark); font-size: 14px; margin-bottom: 10px; text-decoration: none; }
.obj-footer-link:hover { color: #fff; }
.obj-footer-fine { font-size: 12px; margin: 8px 0 20px; }
.obj-footer-locations { display: flex; flex-direction: column; }
.obj-footer-social { color: var(--obj-blue); font-weight: 700; font-size: 14px; margin-top: 14px; display: inline-block; }
.obj-footer-legal { border-top: 1px solid rgba(255,255,255,0.1); padding: 28px 40px; max-width: 1200px; margin: 0 auto; }
.obj-footer-legal p { font-size: 12px; line-height: 1.6; color: rgba(255,255,255,0.55); margin: 0; }
.obj-footer-bottom { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 20px 40px 48px; max-width: 1200px; margin: 0 auto; }
.obj-footer-copy { font-size: 12px; margin: 0; color: rgba(255,255,255,0.55); }
.obj-footer-legal-links { display: flex; gap: 20px; }
.obj-footer-legal-links a { font-size: 12px; color: rgba(255,255,255,0.55); }
.obj-footer-legal-links a:hover { color: #fff; }

@media (max-width: 980px) {
  .obj-grid-3, .obj-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .obj-split { grid-template-columns: 1fr; gap: 32px; }
  .obj-footer { grid-template-columns: repeat(2, 1fr); }
  .obj-h1, .obj-hero-title { font-size: 40px; }
  .obj-page-hero { padding: 72px 32px !important; }
  .obj-nav { padding: 12px 24px; }
}

@media (max-width: 680px) {
  .obj-grid-2, .obj-grid-3, .obj-grid-4 { grid-template-columns: 1fr; }
  .obj-footer { grid-template-columns: 1fr; }
  .obj-nav-desktop { display: none; }
  .obj-cta-band { flex-direction: column; align-items: flex-start; }
  .obj-contact-offices { grid-template-columns: 1fr; }
  .obj-author-box { flex-direction: column; }
  .obj-page-hero { padding: 56px 20px !important; min-height: 340px; }
}

@media (max-width: 480px) {
  .obj-h1, .obj-hero-title { font-size: 32px; }
  .obj-h2 { font-size: 26px; }
  .obj-hero-subhead { font-size: 16px; }
  .obj-hero-btns .obj-btn { width: 100%; }
  .obj-tombstone { width: 100%; }
  .obj-form-card { padding: 22px; }
}

/* Utility classes referenced by templates (previously unstyled) */
.obj-site-main { display: block; }
.obj-brand { display: inline-flex; align-items: center; text-decoration: none; }
.obj-ann-text strong { color: #fff; }
.obj-section--near { background: var(--obj-near); color: var(--obj-body-on-dark); }
.obj-section--near h1, .obj-section--near h2, .obj-section--near h3 { color: #fff; }
.obj-stats-band { padding-top: 48px; padding-bottom: 48px; }
.obj-hero { background-color: var(--obj-black); }
.obj-page-editor-content .obj-entry-content { max-width: 820px; margin: 0 auto; }

/* ------------------------------------------------------------------ */
/* Combined advisor events feed ([objective_events_feed])              */
/* ------------------------------------------------------------------ */
.obj-events {
  max-width: 920px;
  margin: 0 auto;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  font-family: var(--obj-font-stack);
  color: #0a0a0a;
  text-align: left;
}
.obj-events-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background-color: #f5f6f8;
  flex-wrap: wrap;
  gap: 10px;
}
.obj-events-title {
  color: #0a0a0a;
  font-size: 14px;
  font-weight: 800;
}
.obj-events-views {
  display: flex;
  gap: 6px;
}
.obj-events-view {
  border: 1px solid rgba(0, 0, 0, 0.18);
  background: transparent;
  color: #888;
  font-family: var(--obj-font-stack);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  cursor: pointer;
  border-radius: 0;
  line-height: 1.4;
}
.obj-events-view.is-active {
  border-color: var(--obj-blue);
  color: var(--obj-blue);
}
.obj-events-chips {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  flex-wrap: wrap;
}
.obj-events-chips-label {
  color: #999;
  font-size: 11px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-right: 4px;
}
.obj-events-chip {
  font-family: var(--obj-font-stack);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  background-color: transparent;
  color: #777;
  cursor: pointer;
  line-height: 1.5;
}
.obj-events-chip.is-active {
  border-color: var(--obj-blue);
  background-color: rgba(20, 100, 244, 0.1);
  color: var(--obj-blue);
}
.obj-events-row {
  display: flex;
  align-items: stretch;
  gap: 18px;
  padding: 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}
.obj-events-row:last-child {
  border-bottom: none;
}
.obj-events-datebox {
  flex-shrink: 0;
  width: 62px;
  text-align: center;
  border: 1px solid var(--obj-blue);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 0;
}
.obj-events-mo {
  display: block;
  color: var(--obj-blue);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
}
.obj-events-day {
  display: block;
  color: #0a0a0a;
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
}
.obj-events-main {
  flex: 1;
  min-width: 0;
}
.obj-events-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  flex-wrap: wrap;
}
.obj-events-type {
  font-size: 10px;
  font-weight: 700;
  color: #777;
  border: 1px solid rgba(0, 0, 0, 0.15);
  padding: 1px 7px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.obj-events-src {
  font-size: 11px;
  color: #999;
}
h3.obj-events-name {
  color: #0a0a0a;
  font-size: 16px;
  font-weight: 500;
  margin: 0 0 4px;
  line-height: 1.25;
}
.obj-events-sub {
  font-size: 13px;
  color: #666;
  margin: 0;
}
a.obj-events-details {
  flex-shrink: 0;
  align-self: center;
  border: 1px solid var(--obj-blue);
  color: var(--obj-blue);
  font-size: 12px;
  font-weight: 700;
  padding: 7px 14px;
  white-space: nowrap;
  text-decoration: none;
}
a.obj-events-details:hover {
  background-color: var(--obj-blue);
  color: #fff;
}
.obj-events-empty {
  padding: 24px 18px;
  color: #666;
  font-size: 14px;
  margin: 0;
}
/* Month view */
.obj-events-monthbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.obj-events-monthlabel {
  font-size: 14px;
  font-weight: 800;
  color: #0a0a0a;
}
.obj-events-nav {
  border: 1px solid rgba(0, 0, 0, 0.18);
  background: transparent;
  color: #555;
  font-family: var(--obj-font-stack);
  font-size: 13px;
  font-weight: 700;
  padding: 4px 12px;
  cursor: pointer;
  border-radius: 0;
  line-height: 1.4;
}
.obj-events-nav:hover {
  border-color: var(--obj-blue);
  color: var(--obj-blue);
}
.obj-events-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.obj-events-dow {
  padding: 8px 6px;
  text-align: center;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #999;
  background-color: #f5f6f8;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.obj-events-cell {
  min-height: 84px;
  padding: 6px;
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.obj-events-cell:nth-child(7n) {
  border-right: none;
}
.obj-events-cell.is-empty {
  background-color: #fafbfc;
}
.obj-events-cell.is-today .obj-events-cellday {
  background-color: var(--obj-blue);
  color: #fff;
}
.obj-events-cellday {
  display: inline-block;
  min-width: 20px;
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  color: #555;
  padding: 1px 3px;
  margin-bottom: 4px;
}
a.obj-events-cellitem {
  display: block;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--obj-blue);
  background-color: rgba(20, 100, 244, 0.08);
  border-left: 2px solid var(--obj-blue);
  padding: 3px 5px;
  margin-bottom: 3px;
  text-decoration: none;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
a.obj-events-cellitem:hover {
  background-color: rgba(20, 100, 244, 0.16);
}
@media (max-width: 680px) {
  .obj-events-row {
    flex-wrap: wrap;
  }
  a.obj-events-details {
    align-self: flex-start;
  }
  .obj-events-cell {
    min-height: 56px;
  }
  a.obj-events-cellitem {
    font-size: 9px;
  }
}

/* Team single shortcodes: [objective_linkedin], [objective_expertise],
   [objective_related_team] — used by Elementor Theme Builder templates and
   the PHP fallbacks. */
a.objective-linkedin {
  color: var(--obj-blue, #1464f4);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
a.objective-linkedin:hover {
  text-decoration: underline;
}
ul.objective-expertise {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
ul.objective-expertise .objective-expertise__item {
  position: relative;
  padding-left: 16px;
  font-size: 14.5px;
  color: #444;
}
ul.objective-expertise .objective-expertise__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background-color: var(--obj-blue, #1464f4);
}
.objective-related-team__label {
  color: var(--obj-blue, #1464f4);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 0 0 24px;
}
.objective-related-team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px) {
  .objective-related-team__grid {
    grid-template-columns: 1fr;
  }
}
a.objective-related-team__card {
  background-color: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  color: inherit;
  text-decoration: none;
}
a.objective-related-team__card:hover {
  border-color: var(--obj-blue, #1464f4);
}
.objective-related-team__photo,
.objective-related-team__initial {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
}
.objective-related-team__initial {
  background: linear-gradient(135deg, var(--obj-blue, #1464f4), #0a0a0a);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 20px;
}
.objective-related-team__name {
  display: block;
  color: #0a0a0a;
  font-weight: 800;
  font-size: 15px;
  margin-bottom: 3px;
}
.objective-related-team__role {
  display: block;
  color: #666;
  font-size: 12.5px;
  line-height: 1.4;
}

/* ---- Mobile pass (767px breakpoint) ---- */
.obj-nav-toggle,
.obj-nav-burger,
.obj-nav-mobile {
  display: none;
}
@media (max-width: 767px) {
  .obj-nav-desktop {
    display: none;
  }
  .obj-nav {
    padding: 12px 20px;
    position: relative;
  }
  .obj-nav-burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 8px;
    cursor: pointer;
  }
  .obj-nav-burger span {
    display: block;
    height: 2px;
    width: 100%;
    background-color: #0a0a0a;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  .obj-nav-toggle:checked ~ .obj-nav-burger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }
  .obj-nav-toggle:checked ~ .obj-nav-burger span:nth-child(2) {
    opacity: 0;
  }
  .obj-nav-toggle:checked ~ .obj-nav-burger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }
  .obj-nav-mobile {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 60;
    background-color: #0a0a0a;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 12px 20px 20px;
    flex-direction: column;
    gap: 4px;
  }
  .obj-nav-toggle:checked ~ .obj-nav-mobile {
    display: flex;
  }
  .obj-menu-mobile {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
  }
  .obj-menu-mobile > li > a {
    display: block;
    padding: 10px 0;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .obj-menu-mobile .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0 0 4px 14px;
  }
  .obj-menu-mobile .sub-menu a {
    display: block;
    padding: 8px 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    text-decoration: none;
  }
  .obj-ann {
    flex-direction: column;
    gap: 4px;
    text-align: center;
    padding: 8px 16px;
  }
  /* Fallback-template + shortcode output */
  .obj-section {
    padding: 44px 20px;
  }
  .obj-fallback-grid {
    grid-template-columns: 1fr;
  }
  .obj-grid-2, .obj-grid-3, .obj-grid-4 {
    grid-template-columns: 1fr;
  }
  .obj-split {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .obj-footer {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .obj-h1, .obj-hero-title { font-size: 34px; }
  .obj-h2 { font-size: 27px; }
  .obj-page-hero { padding: 56px 20px !important; }
  .obj-cta-band { flex-direction: column; align-items: flex-start; }
  .objective-related-team__grid { grid-template-columns: 1fr; }
}

/* ---- Client logo marquee ([objective_client_marquee]) ---- */
.objective-client-marquee {
  background: #fff;
  padding: 56px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.objective-client-marquee__head {
  text-align: center;
  margin-bottom: 36px;
  padding: 0 24px;
}
.objective-client-marquee__label {
  color: #1464F4;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin: 0;
}
.objective-client-marquee__title {
  color: #0a0a0a;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.15;
  margin: 10px 0 0;
}
.objective-client-marquee__subtitle {
  color: #555;
  font-size: 15px;
  margin: 10px 0 0;
}
.objective-client-marquee__row {
  overflow: hidden;
}
.objective-client-marquee__track {
  display: flex;
  flex-shrink: 0;
  width: max-content;
  animation: obj-marquee-left 80s linear infinite;
}
.objective-client-marquee__track--right {
  animation-name: obj-marquee-right;
}
.objective-client-marquee__row:hover .objective-client-marquee__track {
  animation-play-state: paused;
}
.objective-client-marquee__item {
  flex-shrink: 0;
  width: 168px;
  height: 92px;
  margin: 0 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.objective-client-marquee__item img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.5;
  transition: filter 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}
.objective-client-marquee__item:hover img {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.06);
}
@keyframes obj-marquee-left {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes obj-marquee-right {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}
@media (prefers-reduced-motion: reduce) {
  .objective-client-marquee__track { animation: none !important; }
}
@media (max-width: 767px) {
  .objective-client-marquee { padding: 40px 0; }
  .objective-client-marquee__title { font-size: 24px; }
  .objective-client-marquee__item { width: 130px; height: 72px; margin: 0 10px; }
}

/* ---- Third-level menu flyout (sub-services e.g. Purchase Price Allocation) ---- */
.obj-menu-list .sub-menu .sub-menu {
  top: -10px;
  left: 100%;
  transform: translateX(6px);
}
.obj-menu-list .sub-menu li:hover > .sub-menu,
.obj-menu-list .sub-menu li:focus-within > .sub-menu {
  transform: translateX(0);
}
.obj-menu-list .sub-menu li.menu-item-has-children > a::after {
  content: "\203A";
  float: right;
  margin-left: 10px;
  color: rgba(0, 0, 0, 0.4);
}
@media (max-width: 767px) {
  .obj-menu-mobile .sub-menu .sub-menu {
    padding-left: 14px;
  }
  .obj-menu-mobile .sub-menu .sub-menu a {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.55);
  }
}

/* ---- Team grid ([objective_team_grid]) ---- */
.objective-team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.objective-team-card {
  display: flex;
  align-items: center;
  gap: 26px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 34px 30px;
  text-decoration: none;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.objective-team-card:hover {
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}
.objective-team-card__photo,
.objective-team-card__initial {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  flex-shrink: 0;
  object-fit: cover;
  filter: grayscale(1);
  transition: filter 0.25s ease;
}
.objective-team-card:hover .objective-team-card__photo {
  filter: grayscale(0);
}
.objective-team-card__initial {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef3fe;
  color: #1464F4;
  font-size: 42px;
  font-weight: 700;
}
.objective-team-card__body {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.objective-team-card__name {
  color: #0a0a0a;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
}
.objective-team-card__role {
  color: #1464F4;
  font-size: 14px;
  font-weight: 700;
}
.objective-team-card__focus {
  color: rgba(0, 0, 0, 0.55);
  font-size: 14px;
  line-height: 1.5;
}
.objective-team-card__link {
  margin-top: 8px;
  color: #1464F4;
  font-size: 14px;
  font-weight: 700;
}
@media (max-width: 980px) {
  .objective-team-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .objective-team-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 26px 22px;
  }
  .objective-team-card__photo,
  .objective-team-card__initial { width: 104px; height: 104px; }
}
