/* ============================================================
   FLOATING "MEET THE TEAM" WIDGET
   Shared by every page. Loaded after the page stylesheet so it
   is self-contained — it defines its own colours rather than
   depending on tokens that differ between main.css and pages.css.

   The panel used to sit in a 12px gap above the trigger with no
   bridge between them, so moving the pointer up to it left the
   hover area and the panel vanished before "Read our story"
   could be clicked. Two fixes below: an invisible bridge that
   extends the panel's hit area down over the gap, and a close
   delay that gives the pointer time to travel.
   ============================================================ */

.advisor-fab{
  /* Bottom-LEFT. The bottom-right corner is reserved for the live-chat
     assistant; two floating widgets stacked in the same corner cover each
     other and, on a sector page, the sticky quote button as well. */
  position:fixed; left:24px; bottom:24px; z-index:90;
  display:block; text-decoration:none;
  font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ---- trigger pill ---- */
.advisor-trigger{
  display:flex; align-items:center; gap:10px;
  background:rgba(30,42,56,.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid rgba(244,241,234,.30);
  border-radius:999px;
  padding:7px 16px 7px 8px;
  box-shadow:0 16px 40px rgba(0,0,0,.42);
  transition:transform .25s cubic-bezier(.2,.8,.2,1), border-color .25s ease, box-shadow .25s ease;
}
.advisor-fab:hover .advisor-trigger,
.advisor-fab:focus-visible .advisor-trigger{
  transform:translateY(-2px);
  border-color:rgba(244,241,234,.62);
  box-shadow:0 20px 46px rgba(0,0,0,.48);
}
.advisor-fab:focus-visible{ outline:none; }
.advisor-fab:focus-visible .advisor-trigger{ box-shadow:0 0 0 3px rgba(133,193,233,.55), 0 20px 46px rgba(0,0,0,.48); }

.advisor-stack{ display:flex; }
.advisor-stack img{
  width:36px; height:36px; border-radius:50%;
  object-fit:cover; object-position:center top;
  border:2px solid #1E2A38; background:#fff;
  margin-left:-12px;
}
.advisor-stack img:first-child{ margin-left:0; }
.advisor-trigger-txt{
  font-size:12.5px; font-weight:600; color:#fff;
  display:flex; align-items:center; gap:7px; white-space:nowrap;
}
.advisor-online{
  width:9px; height:9px; border-radius:50%;
  background:#34D399; box-shadow:0 0 0 0 rgba(52,211,153,.5);
  animation:advPulse 2.4s infinite;
}
@keyframes advPulse{
  0%{ box-shadow:0 0 0 0 rgba(52,211,153,.45); }
  70%{ box-shadow:0 0 0 7px rgba(52,211,153,0); }
  100%{ box-shadow:0 0 0 0 rgba(52,211,153,0); }
}

/* ---- panel ---- */
.advisor-panel{
  position:absolute; left:0; bottom:calc(100% + 12px);
  width:272px;
  background:#182230;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid rgba(244,241,234,.28);
  border-radius:16px;
  padding:16px;
  box-shadow:0 24px 56px rgba(0,0,0,.5);
  opacity:0;
  transform:translateY(8px) scale(.98);
  pointer-events:none;
  transform-origin:bottom left;
  transition:opacity .26s cubic-bezier(.2,.8,.2,1), transform .26s cubic-bezier(.2,.8,.2,1);
  /* grace period before it closes, so the pointer can travel up to it */
  transition-delay:.32s;
}
/* invisible bridge across the gap between trigger and panel */
.advisor-panel::after{
  content:""; position:absolute; left:0; right:0; top:100%; height:16px;
}
.advisor-fab:hover .advisor-panel,
.advisor-fab:focus-within .advisor-panel,
.advisor-fab.is-open .advisor-panel{
  opacity:1; transform:translateY(0) scale(1); pointer-events:auto;
  transition-delay:.06s;
}

.advisor-panel-head{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:1.2rem; font-weight:600; margin:0 0 2px; color:#fff;
}
.advisor-panel-sub{ font-size:11px; color:#EAE3D7; opacity:.72; margin:0 0 12px; }
.advisor-row{ display:flex; align-items:center; gap:11px; padding:7px 0; }
.advisor-row + .advisor-row{ border-top:1px solid rgba(244,241,234,.18); }
.advisor-row img{
  width:40px; height:40px; border-radius:50%;
  object-fit:cover; object-position:center top;
  border:2px solid #1E2A38; background:#fff;
}
.advisor-row .n{ font-size:13px; font-weight:600; color:#fff; line-height:1.3; }
.advisor-row .r{ font-size:11px; color:#EAE3D7; opacity:.72; line-height:1.3; }
.advisor-panel-btn{
  display:block; text-align:center; margin-top:13px;
  background:#F4F1EA; color:#1A2330;
  font-size:12.5px; font-weight:600;
  border-radius:999px; padding:10px;
  transition:background .2s ease, transform .2s ease;
}
.advisor-fab:hover .advisor-panel-btn{ background:#FFF9EE; }
.advisor-panel-btn:active{ transform:scale(.98); }

/* Phones get the sticky call/quote bar instead — two floating
   elements in the same corner is clutter, not craft. */
@media (max-width:768px){ .advisor-fab{ display:none; } }
@media (prefers-reduced-motion:reduce){
  .advisor-online{ animation:none; }
  .advisor-panel{ transition:opacity .01s; transform:none; }
  .advisor-fab:hover .advisor-panel,
  .advisor-fab:focus-within .advisor-panel,
  .advisor-fab.is-open .advisor-panel{ transform:none; }
}

/* ============================================================
   OWNER LINK IN THE RECOGNITION RIBBON
   Lives here, not in pages.css, because the HOMEPAGE loads
   main.css + advisor.css and never loads pages.css — the rule
   sat in pages.css for a while and simply never applied there,
   so the link rendered unstyled inline after the ribbon text.
   advisor.css is the one stylesheet every page type loads, and
   like the rest of this file it uses literal colours rather
   than tokens, which are named differently in the two sheets.

   Deliberately tiny and tucked into the corner: it is a staff
   door, not a call to action, and must not compete with the
   ribbon it sits inside.
   ============================================================ */
.top-broker-ribbon{ position:relative; }

.owner-link{
  position:absolute; top:2px; right:8px;
  font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:.56rem; font-weight:600;
  letter-spacing:.03em; text-transform:none; text-decoration:none;
  line-height:1.2;
  /* #527FA0 at .6 measured 2.09:1 on the cream ribbon — unreadable at 9px
     and an accessibility failure. This slate reads 5.0:1 while staying
     visibly quieter than the ribbon's bold navy text. */
  color:#34536D; opacity:.85;
  padding:2px 3px;
  transition:opacity .2s ease;
  white-space:nowrap;
}
.owner-link:hover{ opacity:1; text-decoration:underline; text-underline-offset:2px; }
.owner-link:focus-visible{ opacity:1; outline:2px solid #34536D; outline-offset:1px; }

/* On phones the ribbon text already wraps; an absolutely positioned
   link would overlap it. Hide it there — the owner is at a desk. */
@media (max-width:900px){ .owner-link{ display:none; } }

/* ============================================================
   KEEP THE WIDGET OFF THE STICKY CTA

   The pillar pages carry a fixed CTA bar across the bottom, and this
   widget was landing directly on top of its "Get my quote" button in
   the bottom-right corner — covering the primary conversion control on
   every sector page. Lift it above the bar wherever that bar exists.
   ============================================================ */
body:has(.sticky-cta) .advisor-fab{ bottom:calc(24px + 74px); }
@media (max-width:640px){
  body:has(.sticky-cta) .advisor-fab{ bottom:calc(16px + 104px); left:16px; }
}
