
/* ============================================================
   CansultHub Global — combined site CSS for WordPress/Elementor
   Source: style.css + style-extra.css + page-specific blocks
   Add this ONCE, site-wide, via Elementor Pro > Templates >
   Custom Code (see README for exact steps).
   ============================================================ */

/* ---------- Base (was style.css) ---------- */

  :root{
    --ivory:#F5F3EC;
    --paper:#FBFAF5;
    --ink:#122A31;
    --ink-soft:#2B4149;
    --brass:#2891A7;
    --brass-deep:#1C6D80;
    --emerald:#838C28;
    --stone:#D9D9CC;
    --stone-line: rgba(18,42,49,0.12);
    --text:#212B29;
    --text-muted:#5A625D;

    --display: 'Fraunces', serif;
    --body: 'Public Sans', sans-serif;
    --mono: 'Space Mono', monospace;

    --wrap: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--ivory);color:var(--text);
    font-family:var(--body);font-size:16px;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:500;color:var(--ink);}
  p{margin:0;}
  :focus-visible{outline:2px solid var(--brass-deep);outline-offset:3px;}

  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px;}

  .eyebrow{
    font-family:var(--mono);font-size:11.5px;letter-spacing:0.22em;text-transform:uppercase;
    color:var(--brass-deep);display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--brass-deep);display:inline-block;}
  .eyebrow.olive{color:#6D7522;}
  .eyebrow.olive::before{background:#6D7522;}

  /* ---------- NAV ---------- */
  header.site{
    position:sticky;top:0;z-index:50;
    background:rgba(245,243,236,0.92);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--stone-line);
  }
  .nav-row{display:flex;align-items:center;justify-content:space-between;height:84px;}
  .brandmark{display:flex;align-items:center;gap:12px;}
  .brandmark .seal{
    width:38px;height:38px;border-radius:50%;border:1px solid var(--brass);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--display);font-size:15px;color:var(--brass-deep);letter-spacing:0.02em;
  }
  .brandmark .word{display:flex;flex-direction:column;line-height:1.05;}
  .brandmark .word span:first-child{font-family:var(--display);font-size:19px;letter-spacing:0.02em;color:var(--ink);}
  .brandmark .word span:last-child{font-family:var(--mono);font-size:9.5px;letter-spacing:0.28em;color:var(--text-muted);}
  nav.main ul{display:flex;gap:34px;}
  nav.main a{font-size:13.5px;letter-spacing:0.03em;color:var(--ink-soft);position:relative;padding-bottom:4px;}
  nav.main a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--brass);transition:width .25s ease;}
  nav.main a:hover::after,nav.main a.current::after{width:100%;}
  nav.main a.current{color:var(--ink);}
  .nav-cta{
    font-family:var(--mono);font-size:11.5px;letter-spacing:0.08em;
    border:1px solid var(--ink);color:var(--ink);padding:10px 18px;border-radius:2px;
    white-space:nowrap;transition:background .2s ease,color .2s ease;
  }
  .nav-cta:hover{background:var(--ink);color:var(--paper);}

  /* ---------- BREADCRUMB ---------- */
  .crumb{
    padding:22px 0 0;font-family:var(--mono);font-size:11.5px;letter-spacing:0.04em;
    color:var(--text-muted);
  }
  .crumb a{color:var(--text-muted);}
  .crumb a:hover{color:var(--brass-deep);}
  .crumb .sep{margin:0 8px;color:var(--stone);}
  .crumb .here{color:var(--ink);}

  /* ---------- HERO ---------- */
  .hero{padding:34px 0 0;}
  .hero-inner{max-width:760px;}
  .hero h1{font-size:clamp(36px,4.6vw,58px);line-height:1.08;letter-spacing:-0.01em;margin:22px 0 22px;}
  .hero .kicker-line{
    font-family:var(--display);font-style:italic;font-size:19px;color:var(--brass-deep);
    margin-bottom:26px;
  }
  .hero p.lede{font-size:16.5px;color:var(--text-muted);margin-bottom:18px;max-width:700px;}
  .hero p.lede strong{color:var(--ink);font-weight:600;}

  .btn-row{display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    font-family:var(--mono);font-size:12px;letter-spacing:0.06em;padding:16px 26px;border-radius:2px;
    display:inline-flex;align-items:center;gap:10px;
    transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  .btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);}
  .btn-primary:hover{background:var(--brass-deep);border-color:var(--brass-deep);transform:translateY(-1px);}
  .btn-ghost{border:1px solid var(--ink);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--brass-deep);color:var(--brass-deep);transform:translateY(-1px);}

  /* ---------- LAUNCH BANNER ---------- */
  .launch{
    margin:44px 0 0;padding:28px 36px;border:1px solid var(--brass);background:var(--paper);
    display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;
  }
  .launch .tag{
    font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--paper);background:var(--brass-deep);padding:6px 12px;flex:none;
  }
  .launch p{font-size:14.5px;color:var(--ink-soft);max-width:760px;}
  .launch p strong{color:var(--ink);}

  section{padding:104px 0;}
  .sec-head{max-width:640px;margin-bottom:56px;}
  .sec-head .eyebrow{margin-bottom:20px;}
  .sec-head h2{font-size:clamp(28px,3.2vw,40px);line-height:1.14;margin-bottom:16px;}
  .sec-head p{color:var(--text-muted);font-size:16px;max-width:580px;}

  /* ---------- DIFFERENTIATOR (dark band, reused pattern) ---------- */
  .why{background:var(--ink);color:var(--paper);}
  .why .eyebrow{color:var(--brass);}
  .why .eyebrow::before{background:var(--brass);}
  .why .sec-head h2{color:var(--paper);}
  .why .sec-head p{color:rgba(251,249,244,0.62);}
  .why-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:64px;row-gap:0;}
  .why-item{padding:34px 0;border-top:1px solid rgba(251,249,244,0.14);}
  .why-item:nth-child(5),.why-item:nth-child(6){border-bottom:1px solid rgba(251,249,244,0.14);}
  .why-item h4{color:var(--paper);font-size:18px;margin-bottom:10px;display:flex;align-items:baseline;gap:10px;}
  .why-item h4::before{content:"";width:16px;height:1px;background:var(--brass);display:inline-block;}
  .why-item p{color:rgba(251,249,244,0.6);font-size:14.5px;max-width:420px;}

  /* ---------- SUB-PANELS ---------- */
  .subpanel{position:relative;padding:96px 0;border-top:1px solid var(--stone-line);}
  .subpanel-grid{
    display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;position:relative;align-items:start;
  }
  .subpanel.reverse .subpanel-grid{grid-template-columns:1.15fr 0.85fr;}
  .subpanel.reverse .sp-copy{order:2;}
  .subpanel.reverse .sp-list{order:1;}
  .sp-index{
    position:absolute;top:-18px;right:0;font-family:var(--display);font-weight:400;
    font-size:130px;line-height:1;color:transparent;
    -webkit-text-stroke:1px var(--stone);
    z-index:0;user-select:none;
  }
  .subpanel.reverse .sp-index{right:auto;left:0;}
  .sp-copy{position:relative;z-index:1;}
  .sp-copy .kicker{
    font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;
    margin-bottom:16px;color:var(--brass-deep);
  }
  .subpanel.olive .sp-copy .kicker{color:#6D7522;}
  .sp-copy .tagline{font-family:var(--display);font-style:italic;font-size:16px;color:var(--text-muted);margin-bottom:18px;}
  .sp-copy h3{font-size:32px;margin-bottom:10px;}
  .sp-copy .headline{
    font-family:var(--display);font-size:19px;font-weight:500;color:var(--ink);margin-bottom:20px;
  }
  .sp-copy p.body-text{font-size:14.75px;color:var(--text-muted);margin-bottom:16px;max-width:480px;}
  .sp-rule{width:36px;height:2px;background:var(--brass);margin:22px 0 0;}
  .subpanel.olive .sp-rule{background:#8B9430;}

  .sp-list{position:relative;z-index:1;}
  .sp-list .list-label{
    font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--text-muted);margin-bottom:14px;
  }
  .sp-list ul{border-top:1px solid var(--stone-line);}
  .sp-list li{
    padding:18px 0;border-bottom:1px solid var(--stone-line);display:flex;gap:16px;
  }
  .sp-list li .mark{font-family:var(--display);font-style:italic;color:var(--brass-deep);flex:none;font-size:15px;}
  .subpanel.olive .sp-list li .mark{color:#6D7522;}
  .sp-list li .txt{font-size:14.5px;color:var(--ink-soft);line-height:1.55;}
  .sp-list li .txt strong{color:var(--ink);font-weight:600;}
  .sp-note{margin-top:22px;font-family:var(--display);font-style:italic;font-size:14.5px;color:var(--text-muted);}

  /* ---------- EVENTS GRID ---------- */
  .events-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--stone-line);border:1px solid var(--stone-line);
  }
  .event-card{background:var(--paper);padding:40px 40px 36px;position:relative;transition:background .3s ease;}
  .event-card::before{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--brass);transition:width .3s ease;}
  .event-card:hover::before{width:100%;}
  .event-card:hover{background:var(--ivory);}
  .event-card h4{font-size:19px;margin-bottom:12px;}
  .event-card p{font-size:14.5px;color:var(--text-muted);line-height:1.65;}

  /* ---------- STEPS ---------- */
  .steps{background:var(--paper);border:1px solid var(--stone-line);padding:56px 48px;}
  .steps-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
  .step{padding:0 26px;position:relative;}
  .step:first-child{padding-left:0;}
  .step:last-child{padding-right:0;}
  .step::before{
    content:"";position:absolute;top:14px;left:-13px;width:26px;height:1px;background:var(--stone);
  }
  .step:first-child::before{display:none;}
  .step .stepnum{
    font-family:var(--mono);font-size:11px;letter-spacing:0.1em;color:var(--brass-deep);
    margin-bottom:16px;display:block;
  }
  .step h4{font-size:17px;margin-bottom:10px;}
  .step p{font-size:13.75px;color:var(--text-muted);line-height:1.6;}

  /* ---------- CTA ---------- */
  .cta-band{
    margin:0 40px;padding:80px 60px;text-align:center;background:var(--paper);
    border:1px solid var(--brass);position:relative;
  }
  .cta-band::before,.cta-band::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--brass);}
  .cta-band::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
  .cta-band::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
  .cta-band h2{font-size:clamp(28px,3.2vw,38px);margin-bottom:18px;}
  .cta-band p{max-width:600px;margin:0 auto 36px;color:var(--text-muted);font-size:15.5px;font-style:italic;font-family:var(--display);}
  .cta-band .btn-row{justify-content:center;}

  /* ---------- FOOTER ---------- */
  footer{padding:64px 0 40px;}
  .footer-top{
    display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:36px;
    border-bottom:1px solid var(--stone-line);flex-wrap:wrap;gap:24px;
  }
  footer nav ul{display:flex;gap:28px;flex-wrap:wrap;}
  footer nav a{font-size:13.5px;color:var(--ink-soft);}
  footer nav a:hover{color:var(--brass-deep);}
  .footer-bottom{
    padding-top:24px;font-family:var(--mono);font-size:11.5px;color:var(--text-muted);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;letter-spacing:0.02em;
  }

  @media (max-width:920px){
    .wrap{padding:0 24px;}
    .nav-row{height:74px;}
    nav.main{display:none;}
    .why-grid{grid-template-columns:1fr;}
    .subpanel-grid,.subpanel.reverse .subpanel-grid{grid-template-columns:1fr;gap:34px;}
    .subpanel.reverse .sp-copy,.subpanel.reverse .sp-list{order:initial;}
    .sp-index{display:none;}
    .events-grid{grid-template-columns:1fr;}
    .steps-row{grid-template-columns:1fr;gap:28px;}
    .step{padding:0;}
    .step::before{display:none;}
    .cta-band{margin:0 20px;padding:56px 28px;}
    section{padding:72px 0;}
    .subpanel{padding:64px 0;}
  }

  @media (prefers-reduced-motion: reduce){*{transition:none !important;scroll-behavior:auto !important;}}

/* =================================================================
   ENHANCEMENT LAYER — animation, dropdown nav, mobile drawer, media
   ================================================================= */

/* ---- ambient colour blobs (movement + colour, kept subtle) ---- */
.hero{position:relative;overflow:hidden;}
.ambient{position:absolute;border-radius:50%;filter:blur(70px);opacity:.28;pointer-events:none;z-index:0;}
.ambient.brass{background:var(--brass);}
.ambient.emerald{background:var(--emerald);}
.ambient.drift{animation:driftA 16s ease-in-out infinite;}
.ambient.drift2{animation:driftB 19s ease-in-out infinite;}
@keyframes driftA{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(26px,-20px) scale(1.06);}}
@keyframes driftB{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(-22px,18px) scale(1.08);}}

/* ---- scroll reveal ---- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.16,.8,.24,1),transform .8s cubic-bezier(.16,.8,.24,1);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-stagger > *{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
.reveal-stagger.is-visible > *{opacity:1;transform:translateY(0);}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.03s;}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.15s;}
.reveal-stagger.is-visible > *:nth-child(4){transition-delay:.21s;}
.reveal-stagger.is-visible > *:nth-child(5){transition-delay:.27s;}
.reveal-stagger.is-visible > *:nth-child(6){transition-delay:.33s;}

/* ---- button shimmer + lift ---- */
.btn{position:relative;overflow:hidden;}
.btn-primary::after{
  content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.4),transparent);
  transform:skewX(-20deg);transition:left .65s ease;pointer-events:none;
}
.btn-primary:hover::after{left:130%;}
.btn:active{transform:scale(.97);}

/* ---- card / panel motion ---- */
.service-card,.event-card,.client-panel,.icon-card,.media-frame{
  transition:transform .4s cubic-bezier(.16,.8,.24,1),box-shadow .4s ease,background .3s ease;
}
.service-card:hover,.event-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px -24px rgba(18,42,49,.28);}
.client-panel:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(18,42,49,.22);}
.icon-card:hover{transform:translateY(-4px);}
.why-item{transition:transform .3s ease;}
.why-item:hover{transform:translateX(4px);}

/* ---- nav dropdown ---- */
nav.main li.has-dropdown{position:relative;}
nav.main li.has-dropdown > a{display:inline-flex;align-items:center;gap:5px;}
.dd-caret{display:inline-block;font-size:8px;transition:transform .25s ease;transform:translateY(1px);}
li.has-dropdown:hover .dd-caret,li.has-dropdown:focus-within .dd-caret{transform:rotate(180deg) translateY(-1px);}
.dropdown{
  position:absolute;top:calc(100% + 20px);left:50%;transform:translateX(-50%) translateY(6px);
  min-width:270px;background:var(--paper);border:1px solid var(--stone-line);
  box-shadow:0 26px 52px -22px rgba(18,42,49,.3);
  padding:10px;opacity:0;visibility:hidden;
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
  z-index:60;
}
li.has-dropdown:hover .dropdown,li.has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dropdown a{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:3px;font-size:13.5px;color:var(--ink-soft);}
.dropdown a:hover{background:var(--ivory);color:var(--ink);}
.dropdown a::after{display:none;}
.dropdown a small{font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--text-muted);font-weight:400;}
.dropdown a.current{background:var(--ivory);}
.dropdown a.current span{color:var(--brass-deep);}
.mobile-drawer .msub a.current{color:var(--brass-deep);}

/* ---- mobile nav toggle + drawer ---- */
.nav-toggle{
  display:none;background:none;border:1px solid var(--ink);border-radius:2px;
  width:42px;height:38px;align-items:center;justify-content:center;flex-direction:column;gap:5px;
  cursor:pointer;flex:none;
}
.nav-toggle span{display:block;width:20px;height:1px;background:var(--ink);transition:transform .3s ease,opacity .3s ease;}
.nav-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle.active span:nth-child(2){opacity:0;}
.nav-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.mobile-drawer{
  position:fixed;inset:0 0 0 0;top:var(--hdrH,74px);background:var(--ivory);z-index:49;
  transform:translateX(100%);transition:transform .45s cubic-bezier(.16,.8,.24,1);
  overflow-y:auto;padding:12px 0 40px;display:none;
}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer .wrap{padding:0 24px;}
.mobile-drawer a{display:block;padding:16px 0;border-bottom:1px solid var(--stone-line);font-size:17px;color:var(--ink);font-family:var(--display);}
.mobile-drawer .msub{display:flex;flex-direction:column;padding-bottom:6px;border-bottom:1px solid var(--stone-line);}
.mobile-drawer .msub a{font-size:14px;padding:12px 0 12px 14px;color:var(--ink-soft);font-family:var(--body);border-bottom:none;}
.mobile-drawer .m-cta{margin-top:18px;display:inline-flex;}
body.nav-open{overflow:hidden;}

@media (max-width:920px){
  .nav-toggle{display:flex;}
  .mobile-drawer{display:block;}
}

/* ---- media / image frames (for photography & artwork slots) ---- */
.media-frame{
  position:relative;border:1px solid var(--stone-line);background:var(--paper);
  overflow:hidden;aspect-ratio:4/3;
}
.media-frame.tall{aspect-ratio:3/4;}
.media-frame.wide{aspect-ratio:16/9;}
.media-frame.square{aspect-ratio:1/1;}
.media-frame::before,.media-frame::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--brass);z-index:2;}
.media-frame::before{top:10px;left:10px;border-right:none;border-bottom:none;}
.media-frame::after{bottom:10px;right:10px;border-left:none;border-top:none;}
.media-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease;}
.media-frame:hover img{transform:scale(1.045);}
.media-frame .frame-art{width:100%;height:100%;display:block;}
.media-frame .frame-cap{
  position:absolute;left:16px;bottom:14px;z-index:2;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:rgba(18,42,49,.72);
  padding:6px 10px;
}
.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px;}
.media-grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:920px){.media-grid,.media-grid.cols-2{grid-template-columns:1fr 1fr;}
  .media-grid .media-frame:first-child{grid-column:1/-1;}
}
@media (max-width:640px){.media-grid,.media-grid.cols-2{grid-template-columns:1fr;}}

/* ---- small inline glyph icons (client panels etc.) ---- */
.panel-icon{width:74px;height:55.5px;margin-bottom:22px;}
.panel-icon svg{width:100%;height:100%;display:block;}

.tint-brass{background:linear-gradient(180deg,rgba(40,145,167,.07),rgba(40,145,167,0) 60%);}
.tint-emerald{background:linear-gradient(180deg,rgba(131,140,40,.07),rgba(131,140,40,0) 60%);}

@media (prefers-reduced-motion: reduce){
  .ambient.drift,.ambient.drift2,.globe-wrap svg,.globe-line.meridian{animation:none !important;}
  .reveal,.reveal-stagger > *{opacity:1 !important;transform:none !important;}
}

/* ---------- Base extras (was style-extra.css) ---------- */
/* ---------- CALLOUT ---------- */
.callout{margin:34px 0 0;padding:26px 32px;border:1px solid var(--brass);background:var(--paper);}
.callout.olive{border-color:#8B9430;}
.callout .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);background:var(--brass-deep);padding:6px 12px;display:inline-block;margin-bottom:14px;}
.callout.olive .tag{background:#6D7522;}
.callout h4{font-family:var(--display);font-size:17px;margin-bottom:10px;color:var(--ink);}
.callout p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;}
.callout p+p{margin-top:10px;}

/* ---------- META ROW ---------- */
.meta-row{display:flex;flex-wrap:wrap;border-top:1px solid var(--stone-line);border-bottom:1px solid var(--stone-line);margin:26px 0 8px;}
.meta-item{flex:1;min-width:160px;padding:20px 24px 20px 0;border-left:1px solid var(--stone-line);}
.meta-item:first-child{border-left:none;padding-left:0;}
.meta-item .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.meta-item .val{font-size:14px;color:var(--ink);line-height:1.5;}

/* ---------- CATEGORY GRID ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 48px;margin-top:34px;}
.cat h5{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--stone-line);}
.pack.olive .cat h5,.track.olive .cat h5{color:#6D7522;}
.cat ul li{font-size:14px;color:var(--ink-soft);padding:8px 0;line-height:1.55;display:flex;gap:10px;}
.cat ul li::before{content:"—";color:var(--brass-deep);flex:none;}
.pack.olive .cat ul li::before,.track.olive .cat ul li::before{color:#6D7522;}

/* ---------- PACK / TRACK BLOCK ---------- */
.pack,.track{border-top:1px solid var(--stone-line);padding:88px 0;position:relative;}
.pack-head{max-width:780px;position:relative;z-index:1;}
.pack-head .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:14px;display:block;}
.pack.olive .pack-head .kicker,.track.olive .pack-head .kicker{color:#6D7522;}
.pack-head .tagline{font-family:var(--display);font-style:italic;font-size:17px;color:var(--text-muted);margin-bottom:16px;}
.pack-head h3{font-size:30px;margin-bottom:6px;}
.pack-head .idx{font-family:var(--mono);font-size:11px;color:var(--text-muted);letter-spacing:.08em;margin-bottom:10px;display:block;}
.pack-head .inherits{font-family:var(--mono);font-size:11px;color:var(--text-muted);margin:22px 0 0;letter-spacing:.03em;padding-top:14px;border-top:1px dashed var(--stone-line);}
.pack-head p.intro{font-size:14.75px;color:var(--text-muted);margin-top:14px;max-width:660px;}

/* ---------- PHASE / LAYER ROW ---------- */
.phase-row{display:flex;flex-wrap:wrap;gap:0;margin:30px 0;border:1px solid var(--stone-line);}
.phase{flex:1;min-width:200px;padding:22px 24px;border-left:1px solid var(--stone-line);}
.phase:first-child{border-left:none;}
.phase .pn{font-family:var(--mono);font-size:10.5px;color:var(--brass-deep);letter-spacing:.1em;margin-bottom:8px;display:block;}
.track.olive .phase .pn{color:#6D7522;}
.phase h5{font-size:15px;margin-bottom:6px;color:var(--ink);}
.phase p{font-size:13px;color:var(--text-muted);line-height:1.5;}

/* ---------- OUTCOMES ---------- */
.outcomes{margin-top:10px;border-top:1px solid var(--stone-line);}
.outcomes li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--stone-line);font-size:14px;color:var(--ink-soft);line-height:1.5;}
.outcomes li .mark{font-family:var(--display);font-style:italic;color:var(--brass-deep);flex:none;}
.track.olive .outcomes li .mark{color:#6D7522;}
.outcomes-label{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-top:36px;margin-bottom:4px;}

/* ---------- TABLES ---------- */
table.compare{width:100%;border-collapse:collapse;margin-top:20px;font-size:13.25px;}
table.compare th,table.compare td{border:1px solid var(--stone-line);padding:13px 15px;text-align:left;vertical-align:top;}
table.compare th{background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:400;}
table.compare td{color:var(--ink-soft);background:var(--paper);}
table.compare tr:nth-child(even) td{background:var(--ivory);}
.table-wrap{overflow-x:auto;}

.mini-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:13.5px;}
.mini-table th,.mini-table td{border:1px solid var(--stone-line);padding:12px 14px;text-align:left;vertical-align:top;}
.mini-table th{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--brass-deep);background:var(--ivory);}
.mini-table td{color:var(--ink-soft);background:var(--paper);}

/* ---------- PORTFOLIO / SUMMARY TABLE ---------- */
.port-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:13.75px;}
.port-table th,.port-table td{border-bottom:1px solid var(--stone-line);padding:16px 12px;text-align:left;}
.port-table th{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);}
.port-table td{color:var(--ink-soft);}
.port-table td.name{color:var(--ink);font-family:var(--display);font-size:15px;}

/* ---------- SIMPLE CHECK LIST (two-col) ---------- */
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;margin-top:8px;}
.check-grid li{display:flex;gap:12px;padding:13px 0;border-top:1px solid var(--stone-line);font-size:14.5px;color:var(--ink-soft);}
.check-grid li .mark{font-family:var(--display);font-style:italic;color:var(--brass-deep);flex:none;}

/* ---------- ICON STRIP ---------- */
.icon-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stone-line);border:1px solid var(--stone-line);margin-top:44px;}
.icon-card{background:var(--paper);padding:26px 20px;text-align:center;}
.icon-card .glyph{font-size:26px;margin-bottom:10px;}
.icon-card .lbl{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink);}

.cat-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.steps-row.cols-5{grid-template-columns:repeat(5,1fr);}

/* ---------- NUMBERED STEP LIST ---------- */
.step-list{counter-reset:steplist;border-top:1px solid var(--stone-line);margin-top:18px;list-style:none;padding:0;}
.step-list li{counter-increment:steplist;display:flex;gap:18px;padding:16px 0;border-bottom:1px solid var(--stone-line);font-size:14px;color:var(--ink-soft);line-height:1.55;}
.step-list li::before{content:counter(steplist,decimal-leading-zero);font-family:var(--mono);font-size:12px;color:var(--brass-deep);flex:none;width:26px;}
.track.olive .step-list li::before,.pack.olive .step-list li::before{color:#6D7522;}

/* ---------- DOES / DOES NOT ---------- */
.does ul,.doesnot ul{list-style:none;margin:0;padding:0;}
.does li,.doesnot li{font-size:13.75px;color:var(--ink-soft);padding:9px 0;line-height:1.5;display:flex;gap:10px;border-bottom:1px solid var(--stone-line);}
.does li::before{content:"✓";color:var(--brass-deep);flex:none;font-family:var(--display);font-style:italic;}
.doesnot li::before{content:"✕";color:var(--text-muted);flex:none;}
.does h5,.doesnot h5{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;color:var(--brass-deep);}
.doesnot h5{color:var(--text-muted);}

/* ---------- ICON STRIP (letter/emoji glyphs) ---------- */

@media (max-width:920px){
  .cat-grid{grid-template-columns:1fr;}
  .phase-row{flex-direction:column;}
  .phase{border-left:none;border-top:1px solid var(--stone-line);}
  .phase:first-child{border-top:none;}
  .check-grid{grid-template-columns:1fr;}
  .icon-strip{grid-template-columns:repeat(2,1fr);}
  .meta-row{flex-direction:column;}
  .meta-item{border-left:none;border-top:1px solid var(--stone-line);padding-left:0;}
  .meta-item:first-child{border-top:none;}
}

/* ---------- CONTACT PAGE ---------- */
.contact-layout{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:start;}
.info-stack{border:1px solid var(--stone-line);}
.info-card{padding:26px 28px;border-bottom:1px solid var(--stone-line);background:var(--paper);}
.info-card:last-child{border-bottom:none;}
.info-card .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:8px;display:block;}
.info-card .val{font-size:15.5px;color:var(--ink);line-height:1.55;}
.info-card .val a{color:var(--ink);border-bottom:1px solid var(--stone-line);}
.info-card .val a:hover{color:var(--brass-deep);border-color:var(--brass-deep);}
.info-map{margin-top:20px;}

.contact-form{border:1px solid var(--stone-line);background:var(--paper);padding:40px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.form-field label{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
.form-field input,.form-field select,.form-field textarea{
  font-family:var(--body);font-size:14.5px;color:var(--ink);
  border:1px solid var(--stone-line);background:var(--ivory);padding:13px 14px;border-radius:2px;
  transition:border-color .2s ease,background .2s ease;width:100%;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none;border-color:var(--brass-deep);background:var(--paper);
}
.form-field textarea{resize:vertical;min-height:130px;font-family:var(--body);}
.form-note{font-family:var(--mono);font-size:11px;color:var(--text-muted);margin-top:14px;letter-spacing:.02em;}

@media (max-width:920px){
  .contact-layout{grid-template-columns:1fr;gap:36px;}
  .form-row{grid-template-columns:1fr;}
}

/* ---------- Service Structure page components ---------- */
/* ---------- Service Structure page-specific components ---------- */
.pkg-selector{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 6px;}
.pkg-pill{font-family:var(--mono);font-size:12px;letter-spacing:.03em;padding:10px 18px;border:1px solid var(--stone-line);border-radius:2px;background:var(--paper);color:var(--ink-soft);cursor:pointer;transition:all .15s ease;}
.pkg-pill:hover{border-color:var(--brass);color:var(--ink);}
.pkg-pill.active{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.pkg-note{font-size:13px;color:var(--text-muted);margin-bottom:40px;font-style:italic;}
.pkg-note b{font-style:normal;color:var(--ink);}
.plan-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px;}
.plan-card{border:1px solid var(--stone-line);background:var(--paper);padding:28px 30px;position:relative;display:flex;flex-direction:column;}
.plan-card.highlight{border:1.5px solid var(--brass);}
.plan-ribbon{position:absolute;top:0;right:0;background:var(--brass-deep);color:var(--paper);font-family:var(--mono);font-size:10px;letter-spacing:.1em;padding:5px 12px;text-transform:uppercase;}
.plan-eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:10px;}
.plan-title{font-family:var(--display);font-size:20px;color:var(--ink);margin-bottom:8px;}
.plan-fee{font-size:13.5px;color:var(--text-muted);margin-bottom:10px;}
.plan-fee b{color:var(--ink);}
.plan-duration{font-size:13px;color:var(--ink-soft);margin-bottom:20px;display:flex;align-items:center;gap:8px;}
.plan-duration .dot{width:6px;height:6px;border-radius:50%;background:var(--brass);display:inline-block;flex:none;}
.plan-col-title{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:14px 0 8px;}
.plan-who{font-size:13.5px;color:var(--ink-soft);line-height:1.6;}
.plan-list{list-style:none;padding:0;margin:0;font-size:13.5px;color:var(--ink-soft);}
.plan-list li{padding:5px 0 5px 22px;position:relative;}
.plan-check{position:absolute;left:0;color:var(--brass-deep);}
.plan-about{font-size:12.5px;color:var(--text-muted);margin-top:14px;font-style:italic;}
.plan-bottom{margin-top:auto;padding-top:20px;}
.plan-pay{font-family:var(--mono);font-size:11px;color:var(--text-muted);margin-top:8px;}
.plan-single{border:1px solid var(--stone-line);background:var(--paper);padding:32px 36px;margin-bottom:28px;}
.plan-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:16px;}
.mini-band{text-align:center;font-family:var(--mono);font-size:12px;padding:20px 0;letter-spacing:.02em;}
.mini-band a{color:var(--brass-deep);}
.fee-band{background:var(--ivory);border:1px solid var(--stone-line);padding:22px 28px;text-align:center;margin-bottom:36px;}
.fee-band-title{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--brass-deep);margin-bottom:8px;}
.fee-band-desc{font-size:13.5px;color:var(--ink-soft);max-width:640px;margin:0 auto;line-height:1.6;}
.special-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.special-card{border:1px solid var(--stone-line);background:var(--paper);padding:28px 30px;}
.special-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:10px;}
.special-title{font-family:var(--display);font-size:19px;color:var(--ink);margin-bottom:6px;}
.special-sub{font-size:13px;color:var(--text-muted);margin-bottom:18px;}
.special-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:8px 0;border-top:1px solid var(--stone-line);}
.special-row span:first-child{color:var(--text-muted);flex:none;}
.special-row span:last-child{color:var(--ink);font-weight:500;text-align:right;}
.ph-infobar{display:flex;border:1px solid var(--stone-line);margin:24px 0 20px;}
.ph-info-col{flex:1;padding:18px 22px;font-size:13px;line-height:1.65;color:var(--ink-soft);}
.ph-info-col:first-child{border-right:1px solid var(--stone-line);}
.ph-info-col b{color:var(--ink);}
.ph-info-col a{color:var(--brass-deep);}
@media(max-width:780px){
  .plan-pair,.special-pair,.plan-cols{grid-template-columns:1fr;}
  .ph-infobar{flex-direction:column;}
  .ph-info-col:first-child{border-right:none;border-bottom:1px solid var(--stone-line);}
}

/* ---------- Compass (Evaluation Form) page components ---------- */
/* =====================================================================
   CansultHub Compass — evaluation form styles
   Page-specific additions only; reuses style.css/style-extra.css tokens
   (--ivory, --paper, --ink, --brass, .eyebrow, .btn, .ambient, .wrap,
   .brandmark, header/footer, etc.) rather than redefining them. Class
   names below are namespaced (.compass-*) or unique to this page so
   nothing here overrides the shared site header/footer rules.
   ===================================================================== */
:root{
  --error:#A6412A;
  --good:#4A7C59;
  --formwrap:760px;
}
#compass{position:relative; overflow:hidden;}

/* ---------- Secondary bar: evaluation progress ---------- */
.compass-bar{
  position:sticky; top:var(--hdrH,84px); z-index:40;
  background:rgba(245,243,236,0.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--stone-line);
}
.compass-bar-inner{
  max-width:var(--formwrap); margin:0 auto; padding:0 24px;
  display:flex; align-items:center; justify-content:space-between; height:64px;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand-mark{width:28px;height:28px;flex-shrink:0;}
.brand-name{font-family:var(--display); font-size:16px; font-weight:500; color:var(--ink); letter-spacing:.01em;}
.brand-name em{font-style:italic; color:var(--brass-deep); font-weight:500;}
.progress-label{font-family:var(--mono); font-size:10.5px; color:var(--text-muted); letter-spacing:.16em; text-transform:uppercase;}

/* ---------- Shell / Card ---------- */
.compass-wrap{max-width:var(--formwrap); margin:0 auto; padding:56px 24px 120px; position:relative; z-index:1;}
.card-frame{position:relative;}
.card-frame::before,.card-frame::after{
  content:""; position:absolute; width:16px; height:16px; border:1px solid var(--brass); z-index:2;
}
.card-frame::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.card-frame::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}
.card{
  background:var(--paper); border:1px solid var(--stone-line);
  padding:52px 56px; position:relative; overflow:hidden;
  box-shadow:0 30px 70px -40px rgba(18,42,49,0.22);
}
.card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, var(--ink) 0%, var(--brass) var(--bearing,4%), var(--stone-line) var(--bearing,4%));
  transition:background .5s ease;
}
@media(max-width:640px){
  .card{padding:36px 24px;}
  .compass-wrap{padding:36px 14px 100px;}
  .compass-bar-inner{padding:0 16px;}
}

.step-kicker{display:flex; align-items:center; gap:10px; margin-bottom:6px;}
.step-title{font-size:28px; line-height:1.22; margin:18px 0 10px;}
.step-sub{color:var(--text-muted); font-size:15px; line-height:1.62; margin-bottom:34px; max-width:58ch;}

.field{margin-bottom:28px;}
.field:last-child{margin-bottom:0;}
.field-label{
  display:block; font-weight:600; font-size:14px; color:var(--ink); margin-bottom:10px; font-family:var(--body);
}
.field-label .req{color:var(--brass-deep); margin-left:3px;}
.field-note{color:var(--text-muted); font-size:12.5px; margin-top:8px; line-height:1.5;}

input[type=text], input[type=email], input[type=tel], input[type=date], select, textarea{
  width:100%; padding:13px 16px; border:1px solid var(--stone-line); border-radius:2px;
  background:var(--paper); font-family:var(--body); font-size:14.5px; color:var(--ink);
  transition:border-color .15s, box-shadow .15s;
}
textarea{min-height:96px; resize:vertical; font-family:inherit;}
input:focus, select:focus, textarea:focus{
  outline:none; border-color:var(--brass-deep); box-shadow:0 0 0 3px rgba(40,145,167,0.15);
}
select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%235A625D' stroke-width='1.6' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px;}

.phone-row{display:flex; gap:8px;}
.phone-row select{max-width:118px; flex-shrink:0;}

.pill-group{display:flex; flex-wrap:wrap; gap:10px;}
.pill{
  border:1px solid var(--stone-line); background:var(--paper); border-radius:2px; padding:11px 16px;
  font-size:13.8px; cursor:pointer; user-select:none; color:var(--ink-soft); transition:all .15s ease;
  line-height:1.4;
}
.pill:hover{border-color:var(--brass); background:var(--ivory); color:var(--ink);}
.pill.selected{background:var(--ink); border-color:var(--ink); color:var(--paper);}
.pill.selected.multi{background:var(--brass-deep); border-color:var(--brass-deep); color:var(--paper);}
.pill input{position:absolute; opacity:0; pointer-events:none;}

.consent-box{
  display:flex; gap:14px; align-items:flex-start; background:var(--ivory); border:1px solid var(--stone-line);
  border-radius:2px; padding:18px 20px;
}
.consent-box input{margin-top:3px; width:16px; height:16px; accent-color:var(--brass-deep); flex-shrink:0;}
.consent-box p{margin:0; font-size:13.8px; line-height:1.55; color:var(--ink);}
.consent-box .fine{color:var(--text-muted); font-size:12.3px; margin-top:6px; display:block;}

.err{color:var(--error); font-size:12.5px; margin-top:7px; display:none;}
.field.invalid input:not([type=checkbox]), .field.invalid select, .field.invalid textarea{border-color:var(--error);}
.field.invalid .err{display:block;}
.field.invalid .pill-group{outline:1.5px solid var(--error); outline-offset:5px; border-radius:2px;}

/* ---------- Step navigation (Back / Continue row inside the card) ---------- */
.compass-nav-row{
  display:flex; align-items:center; justify-content:space-between; margin-top:44px;
  padding-top:28px; border-top:1px solid var(--stone-line);
}
.btn:disabled{opacity:.4; cursor:not-allowed;}
.step-counter{font-family:var(--mono); font-size:11px; color:var(--text-muted); letter-spacing:.05em;}

/* ---------- Summary / review ---------- */
.summary-block{border:1px solid var(--stone-line); border-radius:2px; padding:20px 22px; margin-bottom:14px; background:var(--paper);}
.summary-block h4{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.14em; color:var(--brass-deep); margin:0 0 12px 0; font-weight:400;}
.summary-row{display:flex; justify-content:space-between; gap:16px; font-size:13.8px; padding:7px 0; border-bottom:1px dashed var(--stone-line);}
.summary-row:last-child{border-bottom:none;}
.summary-row .k{color:var(--text-muted); flex-shrink:0; max-width:55%;}
.summary-row .v{text-align:right; font-weight:600; color:var(--ink);}

/* ---------- Confirmation ---------- */
.confirm{text-align:center; padding:24px 0 8px;}
.confirm svg{width:56px; height:56px; margin-bottom:20px;}

/* ---------- Compass mark ---------- */
.compass-needle{transform-origin:50% 50%; transition:transform .5s cubic-bezier(.4,0,.2,1);}

.devnote{
  margin-top:30px; font-family:var(--mono); font-size:11px; color:var(--text-muted);
  text-align:center; letter-spacing:.02em;
}

/* ---------- Advisory Panel page (self-contained styles) ---------- */
  :root{
    --ivory:#F5F3EC;
    --paper:#FBFAF5;
    --ink:#122A31;
    --ink-soft:#2B4149;
    --brass:#2891A7;
    --brass-deep:#1C6D80;
    --emerald:#838C28;
    --stone:#D9D9CC;
    --stone-line: rgba(18,42,49,0.12);
    --text:#212B29;
    --text-muted:#5A625D;

    --display: 'Fraunces', serif;
    --body: 'Public Sans', sans-serif;
    --mono: 'Space Mono', monospace;

    --wrap: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--ivory);color:var(--text);
    font-family:var(--body);font-size:16px;line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:500;color:var(--ink);}
  p{margin:0;}
  :focus-visible{outline:2px solid var(--brass-deep);outline-offset:3px;}

  .wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px;}

  .eyebrow{
    font-family:var(--mono);font-size:11.5px;letter-spacing:0.22em;text-transform:uppercase;
    color:var(--brass-deep);display:inline-flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--brass-deep);display:inline-block;}
  .eyebrow.olive{color:#6D7522;}
  .eyebrow.olive::before{background:#6D7522;}

  /* ---------- NAV ---------- */
  header.site{
    position:sticky;top:0;z-index:50;
    background:rgba(245,243,236,0.92);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--stone-line);
  }
  .nav-row{display:flex;align-items:center;justify-content:space-between;height:84px;}
  .brandmark{display:flex;align-items:center;gap:12px;}
  .brandmark .seal{
    width:38px;height:38px;border-radius:50%;border:1px solid var(--brass);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--display);font-size:15px;color:var(--brass-deep);letter-spacing:0.02em;
  }
  .brandmark .word{display:flex;flex-direction:column;line-height:1.05;}
  .brandmark .word span:first-child{font-family:var(--display);font-size:19px;letter-spacing:0.02em;color:var(--ink);}
  .brandmark .word span:last-child{font-family:var(--mono);font-size:9.5px;letter-spacing:0.28em;color:var(--text-muted);}
  nav.main ul{display:flex;gap:34px;}
  nav.main a{font-size:13.5px;letter-spacing:0.03em;color:var(--ink-soft);position:relative;padding-bottom:4px;}
  nav.main a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--brass);transition:width .25s ease;}
  nav.main a:hover::after,nav.main a.current::after{width:100%;}
  nav.main a.current{color:var(--ink);}
  .nav-cta{
    font-family:var(--mono);font-size:11.5px;letter-spacing:0.08em;
    border:1px solid var(--ink);color:var(--ink);padding:10px 18px;border-radius:2px;
    white-space:nowrap;transition:background .2s ease,color .2s ease;
  }
  .nav-cta:hover{background:var(--ink);color:var(--paper);}

  /* ---------- BREADCRUMB ---------- */
  .crumb{
    padding:22px 0 0;font-family:var(--mono);font-size:11.5px;letter-spacing:0.04em;
    color:var(--text-muted);
  }
  .crumb a{color:var(--text-muted);}
  .crumb a:hover{color:var(--brass-deep);}
  .crumb .sep{margin:0 8px;color:var(--stone);}
  .crumb .here{color:var(--ink);}

  /* ---------- HERO ---------- */
  .hero{padding:34px 0 0;}
  .hero-inner{max-width:760px;}
  .hero h1{font-size:clamp(36px,4.6vw,58px);line-height:1.08;letter-spacing:-0.01em;margin:22px 0 22px;}
  .hero .kicker-line{
    font-family:var(--display);font-style:italic;font-size:19px;color:var(--brass-deep);
    margin-bottom:26px;
  }
  .hero p.lede{font-size:16.5px;color:var(--text-muted);margin-bottom:18px;max-width:700px;}
  .hero p.lede strong{color:var(--ink);font-weight:600;}

  .btn-row{display:flex;gap:16px;flex-wrap:wrap;}
  .btn{
    font-family:var(--mono);font-size:12px;letter-spacing:0.06em;padding:16px 26px;border-radius:2px;
    display:inline-flex;align-items:center;gap:10px;
    transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  .btn-primary{background:var(--ink);color:var(--paper);border:1px solid var(--ink);}
  .btn-primary:hover{background:var(--brass-deep);border-color:var(--brass-deep);transform:translateY(-1px);}
  .btn-ghost{border:1px solid var(--ink);color:var(--ink);}
  .btn-ghost:hover{border-color:var(--brass-deep);color:var(--brass-deep);transform:translateY(-1px);}

  /* ---------- LAUNCH BANNER ---------- */
  .launch{
    margin:44px 0 0;padding:28px 36px;border:1px solid var(--brass);background:var(--paper);
    display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;
  }
  .launch .tag{
    font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--paper);background:var(--brass-deep);padding:6px 12px;flex:none;
  }
  .launch p{font-size:14.5px;color:var(--ink-soft);max-width:760px;}
  .launch p strong{color:var(--ink);}

  section{padding:104px 0;}
  .sec-head{max-width:640px;margin-bottom:56px;}
  .sec-head .eyebrow{margin-bottom:20px;}
  .sec-head h2{font-size:clamp(28px,3.2vw,40px);line-height:1.14;margin-bottom:16px;}
  .sec-head p{color:var(--text-muted);font-size:16px;max-width:580px;}

  /* ---------- DIFFERENTIATOR (dark band, reused pattern) ---------- */
  .why{background:var(--ink);color:var(--paper);}
  .why .eyebrow{color:var(--brass);}
  .why .eyebrow::before{background:var(--brass);}
  .why .sec-head h2{color:var(--paper);}
  .why .sec-head p{color:rgba(251,249,244,0.62);}
  .why-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:64px;row-gap:0;}
  .why-item{padding:34px 0;border-top:1px solid rgba(251,249,244,0.14);}
  .why-item:nth-child(5),.why-item:nth-child(6){border-bottom:1px solid rgba(251,249,244,0.14);}
  .why-item h4{color:var(--paper);font-size:18px;margin-bottom:10px;display:flex;align-items:baseline;gap:10px;}
  .why-item h4::before{content:"";width:16px;height:1px;background:var(--brass);display:inline-block;}
  .why-item p{color:rgba(251,249,244,0.6);font-size:14.5px;max-width:420px;}

  /* ---------- SUB-PANELS ---------- */
  .subpanel{position:relative;padding:96px 0;border-top:1px solid var(--stone-line);}
  .subpanel-grid{
    display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;position:relative;align-items:start;
  }
  .subpanel.reverse .subpanel-grid{grid-template-columns:1.15fr 0.85fr;}
  .subpanel.reverse .sp-copy{order:2;}
  .subpanel.reverse .sp-list{order:1;}
  .sp-index{
    position:absolute;top:-18px;right:0;font-family:var(--display);font-weight:400;
    font-size:130px;line-height:1;color:transparent;
    -webkit-text-stroke:1px var(--stone);
    z-index:0;user-select:none;
  }
  .subpanel.reverse .sp-index{right:auto;left:0;}
  .sp-copy{position:relative;z-index:1;}
  .sp-copy .kicker{
    font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;
    margin-bottom:16px;color:var(--brass-deep);
  }
  .subpanel.olive .sp-copy .kicker{color:#6D7522;}
  .sp-copy .tagline{font-family:var(--display);font-style:italic;font-size:16px;color:var(--text-muted);margin-bottom:18px;}
  .sp-copy h3{font-size:32px;margin-bottom:10px;}
  .sp-copy .headline{
    font-family:var(--display);font-size:19px;font-weight:500;color:var(--ink);margin-bottom:20px;
  }
  .sp-copy p.body-text{font-size:14.75px;color:var(--text-muted);margin-bottom:16px;max-width:480px;}
  .sp-rule{width:36px;height:2px;background:var(--brass);margin:22px 0 0;}
  .subpanel.olive .sp-rule{background:#8B9430;}

  .sp-list{position:relative;z-index:1;}
  .sp-list .list-label{
    font-family:var(--mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--text-muted);margin-bottom:14px;
  }
  .sp-list ul{border-top:1px solid var(--stone-line);}
  .sp-list li{
    padding:18px 0;border-bottom:1px solid var(--stone-line);display:flex;gap:16px;
  }
  .sp-list li .mark{font-family:var(--display);font-style:italic;color:var(--brass-deep);flex:none;font-size:15px;}
  .subpanel.olive .sp-list li .mark{color:#6D7522;}
  .sp-list li .txt{font-size:14.5px;color:var(--ink-soft);line-height:1.55;}
  .sp-list li .txt strong{color:var(--ink);font-weight:600;}
  .sp-note{margin-top:22px;font-family:var(--display);font-style:italic;font-size:14.5px;color:var(--text-muted);}

  /* ---------- EVENTS GRID ---------- */
  .events-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--stone-line);border:1px solid var(--stone-line);
  }
  .event-card{background:var(--paper);padding:40px 40px 36px;position:relative;transition:background .3s ease;}
  .event-card::before{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--brass);transition:width .3s ease;}
  .event-card:hover::before{width:100%;}
  .event-card:hover{background:var(--ivory);}
  .event-card h4{font-size:19px;margin-bottom:12px;}
  .event-card p{font-size:14.5px;color:var(--text-muted);line-height:1.65;}

  /* ---------- STEPS ---------- */
  .steps{background:var(--paper);border:1px solid var(--stone-line);padding:56px 48px;}
  .steps-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
  .step{padding:0 26px;position:relative;}
  .step:first-child{padding-left:0;}
  .step:last-child{padding-right:0;}
  .step::before{
    content:"";position:absolute;top:14px;left:-13px;width:26px;height:1px;background:var(--stone);
  }
  .step:first-child::before{display:none;}
  .step .stepnum{
    font-family:var(--mono);font-size:11px;letter-spacing:0.1em;color:var(--brass-deep);
    margin-bottom:16px;display:block;
  }
  .step h4{font-size:17px;margin-bottom:10px;}
  .step p{font-size:13.75px;color:var(--text-muted);line-height:1.6;}

  /* ---------- CTA ---------- */
  .cta-band{
    margin:0 40px;padding:80px 60px;text-align:center;background:var(--paper);
    border:1px solid var(--brass);position:relative;
  }
  .cta-band::before,.cta-band::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--brass);}
  .cta-band::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
  .cta-band::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
  .cta-band h2{font-size:clamp(28px,3.2vw,38px);margin-bottom:18px;}
  .cta-band p{max-width:600px;margin:0 auto 36px;color:var(--text-muted);font-size:15.5px;font-style:italic;font-family:var(--display);}
  .cta-band .btn-row{justify-content:center;}

  /* ---------- FOOTER ---------- */
  footer{padding:64px 0 40px;}
  .footer-top{
    display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:36px;
    border-bottom:1px solid var(--stone-line);flex-wrap:wrap;gap:24px;
  }
  footer nav ul{display:flex;gap:28px;flex-wrap:wrap;}
  footer nav a{font-size:13.5px;color:var(--ink-soft);}
  footer nav a:hover{color:var(--brass-deep);}
  .footer-bottom{
    padding-top:24px;font-family:var(--mono);font-size:11.5px;color:var(--text-muted);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;letter-spacing:0.02em;
  }

  @media (max-width:920px){
    .wrap{padding:0 24px;}
    .nav-row{height:74px;}
    nav.main{display:none;}
    .why-grid{grid-template-columns:1fr;}
    .subpanel-grid,.subpanel.reverse .subpanel-grid{grid-template-columns:1fr;gap:34px;}
    .subpanel.reverse .sp-copy,.subpanel.reverse .sp-list{order:initial;}
    .sp-index{display:none;}
    .events-grid{grid-template-columns:1fr;}
    .steps-row{grid-template-columns:1fr;gap:28px;}
    .step{padding:0;}
    .step::before{display:none;}
    .cta-band{margin:0 20px;padding:56px 28px;}
    section{padding:72px 0;}
    .subpanel{padding:64px 0;}
  }

  @media (prefers-reduced-motion: reduce){*{transition:none !important;scroll-behavior:auto !important;}}

/* ---------- KnowledgeHub page components ---------- */
/* ---------- KnowledgeHub page-specific components ---------- */
.journal-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px;}
.journal-card{border:1px solid var(--stone-line);background:var(--paper);padding:28px 30px;}
.journal-service{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:12px;}
.journal-title{font-family:var(--display);font-size:18px;line-height:1.32;color:var(--ink);margin-bottom:10px;}
.journal-hook{font-size:13.5px;color:var(--ink-soft);font-style:italic;margin-bottom:12px;}
.journal-body{font-size:13.5px;color:var(--text-muted);line-height:1.65;}
.event-card{border:1px solid var(--stone-line);background:var(--paper);padding:32px 36px;margin-top:32px;}
.event-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:10px;}
.event-title{font-family:var(--display);font-size:20px;color:var(--ink);margin-bottom:12px;}
.event-desc{font-size:14px;color:var(--ink-soft);line-height:1.65;margin-bottom:22px;max-width:70ch;}
.event-meta{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--stone-line);border-bottom:1px solid var(--stone-line);margin-bottom:20px;}
.event-meta div{padding:16px 18px 16px 0;border-left:1px solid var(--stone-line);}
.event-meta div:first-child{border-left:none;padding-left:0;}
.event-meta .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;}
.event-meta .val{font-size:13.5px;color:var(--ink);}
.milestone-card{border:1px solid var(--stone-line);background:var(--paper);padding:28px 30px;margin-top:24px;}
.milestone-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:10px;}
.milestone-title{font-family:var(--display);font-size:19px;color:var(--ink);margin-bottom:6px;}
.milestone-byline{font-family:var(--mono);font-size:11.5px;color:var(--text-muted);margin-bottom:16px;}
.milestone-body{font-size:13.5px;color:var(--ink-soft);line-height:1.65;}
.milestone-body p+p{margin-top:12px;}
.milestone-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:18px;border-top:1px solid var(--stone-line);}
.milestone-facts div{padding:14px 16px 0 0;}
.milestone-facts .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;}
.milestone-facts .val{font-size:13px;color:var(--ink);}
@media(max-width:780px){
  .journal-grid{grid-template-columns:1fr;}
  .event-meta{grid-template-columns:1fr 1fr;}
  .event-meta div{border-left:none;border-top:1px solid var(--stone-line);padding:14px 0 0;}
  .event-meta div:first-child{border-top:none;padding-top:0;}
  .milestone-facts{grid-template-columns:1fr 1fr;gap:14px;}
  .milestone-facts div{border-top:none;padding:0;}
}

/* =================================================================
   LANDING BASE COMPONENTS — layout/box styles that pages/home.html
   references but that were missing from the original stylesheet
   (services grid, client panels, offerings lists, etc). Added so
   the animation layer below has a proper foundation to sit on.
   ================================================================= */
.about-block p + p{margin-top:18px;}
.visual-band{padding-bottom:0;}

.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--stone-line);border:1px solid var(--stone-line);margin-top:8px;
}
.service-card{
  background:var(--paper);padding:34px 30px 30px;display:flex;flex-direction:column;
}
.service-card h3{font-size:20px;margin:12px 0 6px;}
.service-card .tag{
  font-family:var(--display);font-style:italic;font-size:14px;color:var(--brass-deep);margin-bottom:14px;
}
.service-card .desc{font-size:13.75px;color:var(--text-muted);line-height:1.6;margin-bottom:18px;}
.service-card .offerings{margin-bottom:22px;}
.service-card .offerings li{
  font-size:12.75px;color:var(--ink-soft);line-height:1.55;padding:9px 0;
  border-top:1px solid var(--stone-line);display:flex;gap:8px;
}
.service-card .offerings li::before{content:"—";color:var(--brass-deep);flex:none;}
.service-card .go{
  margin-top:auto;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ink);
}

.clients-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--stone-line);border:1px solid var(--stone-line);margin-top:8px;}
.client-panel{background:var(--paper);padding:40px 40px 36px;}
.client-panel .kicker{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass-deep);display:block;margin-bottom:14px;
}
.client-panel.intl .kicker{color:#6D7522;}
.client-panel h3{font-size:23px;margin-bottom:10px;}
.client-panel .desc{font-size:14px;color:var(--text-muted);margin-bottom:24px;line-height:1.6;}
.client-panel ul{border-top:1px solid var(--stone-line);}
.client-panel ul li{
  padding:13px 0;border-bottom:1px solid var(--stone-line);display:flex;gap:12px;
  font-size:14px;color:var(--ink-soft);align-items:flex-start;
}
.client-panel ul li .check{
  color:var(--brass-deep);flex:none;font-family:var(--display);font-style:italic;font-size:15px;
}
.client-panel.intl ul li .check{color:#6D7522;}

@media (max-width:920px){
  .services-grid{grid-template-columns:1fr;}
  .clients-grid{grid-template-columns:1fr;}
}

/* =================================================================
   ENGAGEMENT LAYER v2 — hero globe system, animated stats, colour
   accents, and matching motion for every other landing object.
   Purely additive: only adds rules for classes/elements that had
   none before, or layers new effects on top of existing ones.
   ================================================================= */

/* ---- extra accent colours (used sparingly, cycled per-item) ---- */
:root{
  --amber:#C08A2E;
  --amber-deep:#9E6E1E;
  --clay:#B15A3E;
}

/* ---- hero layout (was previously unstyled) ---- */
.hero .wrap{position:relative;z-index:1;}
.hero-grid{
  display:grid;grid-template-columns:0.92fr 1.18fr;gap:44px;align-items:center;
  padding-top:8px;
}
.hero-copy{position:relative;z-index:1;}
.hero h1 em{
  font-style:italic;
  background:linear-gradient(100deg,var(--brass-deep) 0%,var(--emerald) 45%,var(--amber-deep) 75%,var(--brass-deep) 100%);
  background-size:250% auto;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:heroShine 8s linear infinite;
}
@keyframes heroShine{0%{background-position:0% center;}100%{background-position:250% center;}}

/* slow rotating conic wash behind the whole hero, plus the two ambient blobs already in the HTML */
.hero::after{
  content:"";position:absolute;inset:-15% -10%;z-index:0;pointer-events:none;
  background:conic-gradient(from 0deg at 50% 45%,
    transparent 0deg, rgba(40,145,167,.05) 70deg, transparent 150deg,
    rgba(131,140,40,.05) 220deg, transparent 300deg, transparent 360deg);
  animation:rotateSlow 46s linear infinite;
}
@keyframes rotateSlow{to{transform:rotate(360deg);}}
.ambient.amber{background:var(--amber);}
.ambient.drift3{animation:driftC 21s ease-in-out infinite;}
@keyframes driftC{0%,100%{transform:translate(0,0) scale(1);}50%{transform:translate(18px,24px) scale(1.1);}}
.why{position:relative;overflow:hidden;}
.cta-band{overflow:hidden;}

/* ---- the globe itself ---- */
.globe-wrap{
  position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  z-index:1;
}
.globe-wrap::before{
  content:"";position:absolute;inset:8%;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,var(--brass) 0%,rgba(40,145,167,0) 68%);
  opacity:.22;filter:blur(28px);animation:driftA 10s ease-in-out infinite;
}
.globe-wrap svg{
  width:100%;max-width:480px;
  filter:drop-shadow(0 24px 46px rgba(18,42,49,.18));
  animation:globeSpin 50s linear infinite;
  transform-origin:50% 50%;
}
.globe-outline{fill:none;stroke:var(--ink);stroke-opacity:.4;stroke-width:1.3;}
.globe-line{fill:none;stroke:var(--ink);stroke-opacity:.16;stroke-width:1;}
.globe-line.strong{stroke-opacity:.3;}
.globe-line.meridian{animation:meridianPulse 6s ease-in-out infinite;}
.globe-line.m2{animation-delay:1.2s;}
.globe-line.m3{animation-delay:2.4s;}
.globe-line.m4{animation-delay:3.6s;}
@keyframes meridianPulse{0%,100%{stroke-opacity:.14;}50%{stroke-opacity:.42;}}
@keyframes globeSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}

.route-line{
  fill:none;stroke:var(--brass-deep);stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:7 6;animation:dashMove 3.2s linear infinite;
  filter:drop-shadow(0 0 3px rgba(40,145,167,.35));
}
.route-line:nth-of-type(2){stroke:var(--emerald);animation-duration:3.8s;}
.route-line:nth-of-type(3){stroke:var(--amber-deep);animation-duration:2.6s;}
@keyframes dashMove{to{stroke-dashoffset:-130;}}

.route-dot{
  fill:var(--brass-deep);transform-box:fill-box;transform-origin:center;
  animation:dotPulse 2.6s ease-in-out infinite;
}
.route-dot:nth-of-type(2){fill:var(--emerald);animation-delay:.5s;}
.route-dot:nth-of-type(3){fill:var(--amber-deep);animation-delay:1s;}
.route-dot:nth-of-type(4){animation-delay:1.5s;}
@keyframes dotPulse{
  0%,100%{transform:scale(1);opacity:1;}
  50%{transform:scale(2.1);opacity:.4;}
}

.globe-cap{
  margin-top:20px;text-align:center;font-family:var(--mono);font-size:11px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);
}

/* ---- ledger stat row (was unstyled) ---- */
.ledger{margin-top:60px;padding-top:38px;border-top:1px solid var(--stone-line);position:relative;z-index:1;}
.ledger-row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.ledger-item{text-align:left;}
.ledger .num{
  font-family:var(--display);font-size:clamp(28px,3vw,42px);font-weight:500;line-height:1;
  color:var(--ink);display:inline-block;
  background:linear-gradient(180deg,var(--ink) 0%,var(--brass-deep) 120%);
  -webkit-background-clip:text;background-clip:text;
}
.ledger .lbl{
  margin-top:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-muted);
}
.credentials{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.credentials span{
  font-family:var(--mono);font-size:11px;padding:9px 16px;border:1px solid var(--stone-line);
  border-radius:30px;color:var(--ink-soft);background:var(--paper);
  transition:transform .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease;
}
.credentials span:hover{
  border-color:var(--brass);color:var(--brass-deep);transform:translateY(-3px);
  box-shadow:0 10px 22px -14px rgba(40,145,167,.5);
}
.credentials span:nth-child(2):hover{border-color:var(--emerald);color:#6D7522;box-shadow:0 10px 22px -14px rgba(131,140,40,.5);}
.credentials span:nth-child(3):hover{border-color:var(--amber);color:var(--amber-deep);box-shadow:0 10px 22px -14px rgba(192,138,46,.5);}

@media (max-width:920px){
  .hero-grid{grid-template-columns:1fr;gap:40px;}
  .globe-wrap{order:-1;max-width:400px;margin:0 auto;}
  .ledger-row{grid-template-columns:repeat(2,1fr);row-gap:28px;}
}

/* ---- colour + motion for service cards (cycled accent per card) ---- */
.services-grid{perspective:1400px;}
.service-card{
  position:relative;border-top:2px solid var(--stone-line);padding-top:22px;
  transition:transform .45s cubic-bezier(.16,.8,.24,1),box-shadow .45s ease,border-color .3s ease;
}
.service-card::before{
  content:"";position:absolute;top:-2px;left:0;width:0;height:2px;
  background:var(--brass-deep);transition:width .45s cubic-bezier(.16,.8,.24,1);
}
.service-card:hover{transform:translateY(-8px) rotateX(1.4deg);}
.service-card:hover::before{width:100%;}
.service-card:nth-child(2)::before{background:var(--emerald);}
.service-card:nth-child(3)::before{background:var(--amber-deep);}
.service-card:nth-child(4)::before{background:var(--clay);}
.service-card:nth-child(5)::before{background:var(--brass-deep);}
.service-card:nth-child(6)::before{background:var(--emerald);}
.service-index{
  display:inline-block;position:relative;transition:letter-spacing .3s ease,color .3s ease;
}
.service-card:hover .service-index{letter-spacing:.03em;color:var(--brass-deep);}
.service-card .go{position:relative;display:inline-flex;align-items:center;gap:6px;}
.service-card .go::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--brass-deep);transition:width .3s ease;}
.service-card:hover .go::after{width:100%;}

/* ---- icon glyph motion (visual-band frame-art + client-panel icons) ---- */
.media-frame .frame-art,.panel-icon svg{animation:iconFloat 5.5s ease-in-out infinite;}
.media-grid .media-frame:nth-child(1) .frame-art{animation-delay:0s;}
.media-grid .media-frame:nth-child(2) .frame-art{animation-delay:.6s;}
.media-grid .media-frame:nth-child(3) .frame-art{animation-delay:1.2s;}
@keyframes iconFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.frame-art circle{animation:dotPulse 3.4s ease-in-out infinite;}
.frame-art [stroke-dasharray]{animation:dashMove 5s linear infinite;}
.media-frame:hover .frame-art{animation-play-state:paused;transform:scale(1.04);transition:transform .4s ease;}

/* ---- why-item accent dot + colour cycling on the emoji badges ---- */
.why-item span[style*="font-size:22px"]{
  display:inline-block;transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.why-item:hover span[style*="font-size:22px"]{transform:scale(1.25) rotate(-6deg);}

/* ---- eyebrow underline draws in on reveal ---- */
.eyebrow::before{transition:width .6s cubic-bezier(.16,.8,.24,1);}
.reveal:not(.is-visible) .eyebrow::before{width:0;}

/* ---- client panels: colour wash + lift ---- */
.client-panel{position:relative;overflow:hidden;}
.client-panel::after{
  content:"";position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .4s ease;
  background:linear-gradient(160deg,rgba(40,145,167,.06),transparent 55%);
}
.client-panel.intl::after{background:linear-gradient(160deg,rgba(131,140,40,.07),transparent 55%);}
.client-panel:hover::after{opacity:1;}
.client-panel > *{position:relative;z-index:1;}
.client-panel .panel-icon svg{animation:none;}

/* ---- steps: numbers pulse gently into colour on hover ---- */
.step{transition:transform .3s ease;}
.step:hover{transform:translateY(-4px);}
.step .stepnum{transition:color .3s ease,transform .3s ease;display:inline-block;}
.step:hover .stepnum{color:var(--amber-deep);transform:scale(1.1);}

/* ---- callouts: soft coloured left rule that grows in on reveal ---- */
.callout{position:relative;overflow:hidden;}
.callout::before{
  content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--brass);
  transform:scaleY(0);transform-origin:top;transition:transform .6s cubic-bezier(.16,.8,.24,1);
}
.callout.olive::before{background:#8B9430;}
.callout.is-inview::before{transform:scaleY(1);}

/* ---- CTA band button row gets a little extra energy ---- */
.cta-band .btn-primary{position:relative;}
.cta-band .btn-primary::before{
  content:"";position:absolute;inset:-6px;border-radius:4px;border:1px solid var(--brass);
  opacity:0;animation:ctaRing 2.6s ease-out infinite;
}
@keyframes ctaRing{
  0%{opacity:.5;transform:scale(.94);}
  70%{opacity:0;transform:scale(1.08);}
  100%{opacity:0;transform:scale(1.08);}
}

@media (prefers-reduced-motion: reduce){
  .globe-wrap svg,.globe-line.meridian,.route-line,.route-dot,.hero::after,
  .service-card:hover,.media-frame .frame-art,.panel-icon svg,.frame-art circle,
  .frame-art [stroke-dasharray],.cta-band .btn-primary::before,.hero h1 em{
    animation:none !important;
  }
}

/* =================================================================
   HERO GLOBE — 3D mount point (progressive enhancement over the
   flat SVG globe in #globe-fallback; see js/cansulthub-globe.js)
   ================================================================= */
.hero-globe-3d{
  width:100%;max-width:480px;aspect-ratio:1/1;margin:0 auto;
  position:relative;z-index:1;cursor:grab;
}
.hero-globe-3d:active,.hero-globe-3d.is-dragging{cursor:grabbing;}
.hero-globe-3d canvas{display:block;width:100%!important;height:100%!important;touch-action:none;}
#globe-fallback{width:100%;}

/* =================================================================
   VISUAL-BAND ICONS — purposeful animation per icon, replacing the
   generic float for these three (the client-panel icons elsewhere
   keep the original gentle float).
   ================================================================= */
.media-frame .icon-team,
.media-frame .icon-reach,
.media-frame .icon-legal{
  animation:none; /* override the generic .frame-art float — these have their own motion below */
}

/* ---- "One Integrated Team": the client sits at the hub and each
   specialist is brought in one after another (legal, business, talent,
   education, investment): a signal travels out along the spoke, the
   specialist lights up when it arrives, then settles back. Rails and the
   ping ring are added by site.js. ---- */
.icon-team .team-hub{
  transform-box:fill-box;transform-origin:center;
  animation:hubPulse 1.5s ease-in-out infinite;
}
@keyframes hubPulse{
  0%,100%{transform:scale(1);stroke-opacity:1;}
  50%{transform:scale(1.1);stroke-opacity:.7;}
}
.icon-team .spoke{
  stroke-width:2;stroke-linecap:round;stroke-dasharray:9 120;stroke-dashoffset:9;
  animation:teamSend 7.5s ease-in-out infinite;
}
.icon-team .spoke:nth-child(1){animation-delay:0s;}
.icon-team .spoke:nth-child(2){animation-delay:1.5s;}
.icon-team .spoke:nth-child(3){animation-delay:3s;}
.icon-team .spoke:nth-child(4){animation-delay:4.5s;}
.icon-team .spoke:nth-child(5){animation-delay:6s;}
@keyframes teamSend{
  0%{stroke-dashoffset:9;opacity:0;}
  3%{opacity:1;}
  16%{stroke-dashoffset:-72;opacity:1;}
  18%,100%{stroke-dashoffset:-72;opacity:0;}
}
.icon-team .team-rail{stroke:var(--brass-deep);stroke-opacity:.2;stroke-width:1;stroke-dasharray:none;animation:none;fill:none;}
.icon-team .team-node{
  transform-box:fill-box;transform-origin:center;
  animation:teamArrive 7.5s ease-out infinite;
}
.icon-team .team-node:nth-of-type(2){animation-delay:0s;}
.icon-team .team-node:nth-of-type(3){animation-delay:1.5s;}
.icon-team .team-node:nth-of-type(4){animation-delay:3s;}
.icon-team .team-node:nth-of-type(5){animation-delay:4.5s;}
.icon-team .team-node:nth-of-type(6){animation-delay:6s;}
@keyframes teamArrive{
  0%,14%{transform:scale(1);opacity:.55;}
  18%{transform:scale(1.9);opacity:1;}
  34%,100%{transform:scale(1);opacity:.55;}
}
.icon-team .team-ping{
  fill:none;stroke:var(--brass-deep);stroke-width:1.2;
  transform-box:fill-box;transform-origin:center;
  animation:reachPingTeam 1.5s ease-out infinite;
}

/* ---- "Local Expertise, Global Reach": the hub (the local office at the
   centre of the globe) sends a signal out to each market in turn, 1.5 s
   apart. The signal travels along its rail, the market lights up when it
   arrives, then settles back. Rails, hub and ping ring are added by site.js. ---- */
.icon-reach .reach-meridian{
  transform-box:fill-box;transform-origin:center;
  animation:meridianPulse 3.2s ease-in-out infinite;
}
.icon-reach .reach-meridian.alt{animation-delay:1.1s;}
.icon-reach .reach-rail{stroke:var(--brass-deep);stroke-opacity:.22;stroke-width:1;stroke-dasharray:none;animation:none;fill:none;}
.icon-reach .reach-line{
  stroke-width:2;stroke-linecap:round;stroke-dasharray:9 120;stroke-dashoffset:9;
  animation:reachSend 6s ease-in-out infinite;
}
.icon-reach .reach-line:nth-child(1){animation-delay:0s;}
.icon-reach .reach-line:nth-child(2){animation-delay:1.5s;}
.icon-reach .reach-line:nth-child(3){animation-delay:4.5s;}
.icon-reach .reach-line:nth-child(4){animation-delay:3s;}
@keyframes reachSend{
  0%{stroke-dashoffset:9;opacity:0;}
  3%{opacity:1;}
  20%{stroke-dashoffset:-66;opacity:1;}
  22%,100%{stroke-dashoffset:-66;opacity:0;}
}
.icon-reach .reach-node{
  transform-box:fill-box;transform-origin:center;opacity:.45;
  animation:reachArrive 6s ease-out infinite;
}
.icon-reach .reach-node:nth-of-type(1){animation-delay:0s;}
.icon-reach .reach-node:nth-of-type(2){animation-delay:1.5s;}
.icon-reach .reach-node:nth-of-type(3){animation-delay:4.5s;}
.icon-reach .reach-node:nth-of-type(4){animation-delay:3s;}
@keyframes reachArrive{
  0%,18%{transform:scale(1);opacity:.45;}
  22%{transform:scale(2);opacity:1;}
  40%,100%{transform:scale(1);opacity:.45;}
}
.icon-reach .reach-hub{fill:var(--brass-deep);animation:none;}
.icon-reach .reach-ping{
  fill:none;stroke:var(--brass-deep);stroke-width:1.2;
  transform-box:fill-box;transform-origin:center;
  animation:reachPing 1.5s ease-out infinite;
}
@keyframes reachPing{
  0%{transform:scale(1);opacity:.8;}
  100%{transform:scale(4.5);opacity:0;}
}
.icon-team .team-ping{}
@keyframes reachPingTeam{
  0%{transform:scale(1);opacity:.7;}
  100%{transform:scale(2.4);opacity:0;}
}

/* ---- "Legal Depth, Built In": the scale beam tips gently side to
   side around its pivot, like a balance weighing — the post and base
   stay fixed. ---- */
.icon-legal .legal-beam{
  transform-box:fill-box;transform-origin:100px 52px;
  animation:scaleBalance 4.6s ease-in-out infinite;
}
@keyframes scaleBalance{
  0%,100%{transform:rotate(0deg);}
  28%{transform:rotate(-3.5deg);}
  72%{transform:rotate(3.5deg);}
}
.icon-legal .legal-pivot{
  transform-box:fill-box;transform-origin:center;
  animation:dotPulse 3.4s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce){
  .icon-team .team-hub,.icon-team .spoke,.icon-team .team-node,.icon-team .team-ping,
  .icon-reach .reach-meridian,.icon-reach .reach-line,.icon-reach .reach-node,.icon-reach .reach-ping,
  .icon-legal .legal-beam,.icon-legal .legal-pivot{
    animation:none !important;
  }
  .icon-reach .reach-line,.icon-reach .reach-ping,.icon-team .spoke,.icon-team .team-ping{opacity:0;}
  .icon-reach .reach-node{opacity:1;}
}

/* ==========================================================================
   Home page polish (body.home only) — same structure and content, with a
   firmer hierarchy: stat strip, numbered service cards, accented client
   panels and a dark closing call to action.
   ========================================================================== */
body.home .ledger{
  margin-top:56px;padding:30px 0 0;
}
body.home .ledger-row{gap:0;}
body.home .ledger-item{
  padding:4px 28px;border-left:1px solid var(--stone-line);
}
body.home .ledger-item:first-child{padding-left:0;border-left:0;}
body.home .ledger .num{font-size:clamp(34px,3.6vw,52px);letter-spacing:-.01em;}
body.home .ledger .lbl{margin-top:12px;}

/* the hero colour wash fades into the page instead of ending on a hard edge */
body.home .hero::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:150px;z-index:1;pointer-events:none;
  background:linear-gradient(to bottom,rgba(245,243,236,0),var(--ivory));
}

body.home .sec-head{margin-bottom:44px;}
body.home .sec-head h2{letter-spacing:-.012em;}
body.home .sec-head p{max-width:60ch;}

/* services: numbered cards, roomier, pinned link */
body.home .services-grid{counter-reset:svc;gap:20px;background:none;border:0;margin-top:0;}
body.home .service-card{
  counter-increment:svc;background:var(--paper);border:1px solid var(--stone-line);
  border-top:3px solid var(--stone-line);padding:34px 30px 28px;overflow:hidden;
}
body.home .service-card::before{top:-3px;height:3px;}
body.home .service-card::after{
  content:counter(svc,decimal-leading-zero);position:absolute;top:14px;right:22px;
  font-family:var(--display);font-size:64px;line-height:1;font-weight:500;
  color:var(--ink);opacity:.045;pointer-events:none;transition:opacity .35s ease,transform .35s ease;
}
body.home .service-card:hover::after{opacity:.1;transform:translateY(-3px);}
body.home .service-card h3{font-size:22px;margin:14px 0 6px;}
body.home .service-card .tag{margin-bottom:12px;}
body.home .service-card .offerings{margin-bottom:26px;}
body.home .service-card .go{
  margin-top:auto;padding-top:16px;border-top:1px solid var(--stone-line);align-self:stretch;
  justify-content:space-between;
}
body.home .service-card:hover{box-shadow:0 26px 48px -28px rgba(18,42,49,.32);}

/* client panels: coloured top rule, equal height */
body.home .clients-grid{gap:20px;background:none;border:0;align-items:stretch;}
body.home .client-panel{
  border:1px solid var(--stone-line);border-top:3px solid var(--brass-deep);
}
body.home .client-panel.intl{border-top-color:var(--emerald);}

/* closing call to action: dark band */
body.home .cta-band{
  background:linear-gradient(135deg,#122A31 0%,#17404a 100%);
  border:0;padding:72px 32px;
}
body.home .cta-band .eyebrow{color:#9fd3de;}
body.home .cta-band h2{color:#f5f3ec;}
body.home .cta-band p{color:rgba(245,243,236,.82);}
body.home .cta-band .btn-primary{background:#f5f3ec;color:#122A31;border-color:#f5f3ec;}
body.home .cta-band .btn-primary::before{border-color:#9fd3de;}
body.home .cta-band .btn-ghost{border-color:rgba(245,243,236,.6);color:#f5f3ec;}
body.home .cta-band .btn-ghost:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08);}

@media (max-width:900px){
  body.home .ledger-row{grid-template-columns:repeat(2,1fr);row-gap:22px;}
  body.home .ledger-item:nth-child(odd){padding-left:0;border-left:0;}
  body.home .services-grid,body.home .clients-grid{gap:14px;}
}

/* ==========================================================================
   Service-page icons (JobFinder, Business Lab, Startup Accelerator,
   LearningPod, Advisory Panel, CapitalConnect): each drawing now moves in a
   way that matches what it shows, on a shared 7 s loop (it builds up, holds,
   then clears and starts again). data-anim is set by site.js from the caption.
   ========================================================================== */
.media-frame .frame-art[data-anim],
.frame-art[data-anim] circle,.frame-art[data-anim] [stroke-dasharray]{animation:none;}
.frame-art[data-anim] *{transform-box:fill-box;transform-origin:center;}
.frame-art[data-anim] .sig{fill:none;stroke:var(--brass-deep);stroke-width:2;stroke-linecap:round;stroke-dasharray:9 120;stroke-dashoffset:9;stroke-opacity:1;opacity:0;}
@keyframes rise0{0%{transform:scaleY(0);opacity:0}10%{transform:scaleY(1);opacity:1}92%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes rise1{0%,12%{transform:scaleY(0);opacity:0}22%{transform:scaleY(1);opacity:1}92%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes rise2{0%,24%{transform:scaleY(0);opacity:0}34%{transform:scaleY(1);opacity:1}92%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes rise3{0%,36%{transform:scaleY(0);opacity:0}46%{transform:scaleY(1);opacity:1}92%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes rise4{0%,48%{transform:scaleY(0);opacity:0}58%{transform:scaleY(1);opacity:1}92%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
@keyframes pop0{0%{transform:scale(0);opacity:0}6%{transform:scale(1.7);opacity:1}10%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop1{0%,12%{transform:scale(0);opacity:0}18%{transform:scale(1.7);opacity:1}22%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop2{0%,24%{transform:scale(0);opacity:0}30%{transform:scale(1.7);opacity:1}34%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop3{0%,36%{transform:scale(0);opacity:0}42%{transform:scale(1.7);opacity:1}46%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop4{0%,48%{transform:scale(0);opacity:0}54%{transform:scale(1.7);opacity:1}58%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop5{0%,60%{transform:scale(0);opacity:0}66%{transform:scale(1.7);opacity:1}70%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes pop6{0%,72%{transform:scale(0);opacity:0}78%{transform:scale(1.7);opacity:1}82%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}100%{transform:scale(1);opacity:0}}
@keyframes drop0{0%{transform:translateY(-16px);opacity:0}10%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
@keyframes drop1{0%,12%{transform:translateY(-16px);opacity:0}22%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
@keyframes drop2{0%,24%{transform:translateY(-16px);opacity:0}34%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
@keyframes drop3{0%,36%{transform:translateY(-16px);opacity:0}46%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
@keyframes drop4{0%,48%{transform:translateY(-16px);opacity:0}58%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
.frame-art[data-anim=profpath][data-anim] g path{stroke-dasharray:230;stroke-dashoffset:230;animation:draw230 7s ease-in-out infinite;}
.frame-art[data-anim=profpath][data-anim] > path{stroke-dasharray:150;stroke-dashoffset:150;animation:draw150 7s ease-in-out infinite;}
.frame-art[data-anim=profpath][data-anim] > circle{animation:pop6 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] g:nth-of-type(1) > rect:nth-of-type(1){transform-origin:center bottom;animation:rise0 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] g:nth-of-type(1) > rect:nth-of-type(2){transform-origin:center bottom;animation:rise1 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] g:nth-of-type(1) > rect:nth-of-type(3){transform-origin:center bottom;animation:rise2 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] g:nth-of-type(2) > line:nth-of-type(1){transform-origin:center bottom;animation:rise1 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] g:nth-of-type(2) > line:nth-of-type(2){transform-origin:center bottom;animation:rise2 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] > circle:nth-of-type(1){animation:pop1 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] > circle:nth-of-type(2){animation:pop2 7s ease-out infinite;}
.frame-art[data-anim=foundation][data-anim] > circle:nth-of-type(3){animation:pop3 7s ease-out infinite;}
.frame-art[data-anim=growth][data-anim] g > rect:nth-of-type(1){transform-origin:center bottom;animation:rise0 7s ease-out infinite;}
.frame-art[data-anim=growth][data-anim] g > rect:nth-of-type(2){transform-origin:center bottom;animation:rise1 7s ease-out infinite;}
.frame-art[data-anim=growth][data-anim] g > rect:nth-of-type(3){transform-origin:center bottom;animation:rise2 7s ease-out infinite;}
.frame-art[data-anim=growth][data-anim] g > rect:nth-of-type(4){transform-origin:center bottom;animation:rise3 7s ease-out infinite;}
.frame-art[data-anim=growth][data-anim] > path{stroke-dasharray:140;stroke-dashoffset:140;animation:trend 7s ease-in-out infinite;}
.frame-art[data-anim=growth][data-anim] > circle{animation:pop5 7s ease-out infinite;}
.frame-art[data-anim=spark][data-anim] g{animation:rocketLift 3.2s ease-in-out infinite;}
.frame-art[data-anim=spark][data-anim] > path{stroke-dasharray:3 5;animation:rocketLift 3.2s ease-in-out infinite,flameFlow .45s linear infinite;}
.frame-art[data-anim=spark][data-anim] > circle{animation:rocketLift 3.2s ease-in-out infinite,nodeGlow 1.6s ease-in-out infinite;}
.frame-art[data-anim=lab][data-anim] > circle:nth-of-type(1){animation:bubbleRise 3.3s ease-in infinite;animation-delay:0s;}
.frame-art[data-anim=lab][data-anim] > circle:nth-of-type(2){animation:bubbleRise 3.3s ease-in infinite;animation-delay:1.1s;}
.frame-art[data-anim=lab][data-anim] > circle:nth-of-type(3){animation:bubbleRise 3.3s ease-in infinite;animation-delay:2.2s;}
.frame-art[data-anim=curriculum][data-anim] > path{stroke-dasharray:42;stroke-dashoffset:42;animation:draw42 7s ease-in-out infinite;}
.frame-art[data-anim=curriculum][data-anim] > circle{animation:pop4 7s ease-out infinite;}
.frame-art[data-anim=cert][data-anim] > path{stroke-dasharray:42;stroke-dashoffset:42;animation:drawCheck 5s ease-in-out infinite;}
.frame-art[data-anim=cert][data-anim] g circle{animation:badgePulse 5s ease-in-out infinite;}
.frame-art[data-anim=lex][data-anim] .scale-beam{transform-box:view-box;transform-origin:100px 52px;animation:scaleBalance 4.6s ease-in-out infinite;}
.frame-art[data-anim=lex][data-anim] > circle{animation:nodeGlow 2.3s ease-in-out infinite;}
.frame-art[data-anim=profnetwork][data-anim] .sig{animation:sigGo 4s ease-in-out infinite;}
.frame-art[data-anim=profnetwork][data-anim] > circle:nth-of-type(2),.frame-art[data-anim=profnetwork][data-anim] > circle:nth-of-type(3){animation:nodeLit 4s ease-out infinite;animation-delay:.2s;}
.frame-art[data-anim=profnetwork][data-anim] > circle:nth-of-type(1){animation:meet 4s ease-out infinite;}
.frame-art[data-anim=impact][data-anim] g > line:nth-of-type(3){transform-origin:center bottom;animation:rise0 7s ease-out infinite;}
.frame-art[data-anim=impact][data-anim] g > line:nth-of-type(4){transform-origin:center bottom;animation:rise1 7s ease-out infinite;}
.frame-art[data-anim=impact][data-anim] g > line:nth-of-type(5){transform-origin:center bottom;animation:rise2 7s ease-out infinite;}
.frame-art[data-anim=impact][data-anim] g > line:nth-of-type(6){transform-origin:center bottom;animation:rise3 7s ease-out infinite;}
.frame-art[data-anim=impact][data-anim] > circle{animation:pop4 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] g > ellipse:nth-of-type(1){animation:drop0 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] g > ellipse:nth-of-type(2){animation:drop1 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] g > ellipse:nth-of-type(3){animation:drop2 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] g > ellipse:nth-of-type(4){animation:drop3 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] g > ellipse:nth-of-type(5){animation:drop4 7s ease-out infinite;}
.frame-art[data-anim=founder][data-anim] > path,.frame-art[data-anim=founder][data-anim] > line{animation:arrowUp 7s ease-out infinite;}
.frame-art[data-anim=investor][data-anim] > circle:nth-of-type(2){animation:nodeLit 4.8s ease-out infinite;animation-delay:0s;}
.frame-art[data-anim=investor][data-anim] > circle:nth-of-type(3){animation:nodeLit 4.8s ease-out infinite;animation-delay:1.2s;}
.frame-art[data-anim=investor][data-anim] > circle:nth-of-type(4){animation:nodeLit 4.8s ease-out infinite;animation-delay:2.4s;}
.frame-art[data-anim=investor][data-anim] > circle:nth-of-type(5){animation:nodeLit 4.8s ease-out infinite;animation-delay:3.6s;}
.frame-art[data-anim=investor][data-anim] .hub-ping{fill:none;stroke:var(--brass-deep);stroke-width:1.2;animation:reachPing 2.4s ease-out infinite;}
.frame-art[data-anim=deal][data-anim] .sig{animation:sigGo 4s ease-in-out infinite;}
.frame-art[data-anim=deal][data-anim] > circle:nth-of-type(1){animation:meet 4s ease-out infinite;}
.frame-art[data-anim=deal][data-anim] > circle:nth-of-type(2),.frame-art[data-anim=deal][data-anim] > circle:nth-of-type(3){animation:nodeLit 4s ease-out infinite;}
.frame-art[data-anim=bridge][data-anim] > circle:nth-of-type(1){animation:nodeLit 3s ease-out infinite;animation-delay:2.16s;}
.frame-art[data-anim=bridge][data-anim] > circle:nth-of-type(2){animation:nodeLit 3s ease-out infinite;animation-delay:.66s;}
.frame-art[data-anim=bridge][data-anim] .traveler{fill:var(--amber-deep,var(--brass-deep));}

@keyframes draw230{0%{stroke-dashoffset:230;opacity:1}45%{stroke-dashoffset:0}92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes draw150{0%,45%{stroke-dashoffset:150;opacity:1}70%{stroke-dashoffset:0}92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes trend{0%,48%{stroke-dashoffset:140;opacity:1}66%{stroke-dashoffset:0}92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes draw42{0%{stroke-dashoffset:42;opacity:1}40%{stroke-dashoffset:0}92%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes drawCheck{0%,8%{stroke-dashoffset:42}30%{stroke-dashoffset:0}90%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes badgePulse{0%,30%{transform:scale(1)}40%{transform:scale(1.08)}55%,100%{transform:scale(1)}}
@keyframes rocketLift{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes flameFlow{to{stroke-dashoffset:-16}}
@keyframes nodeGlow{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.9);opacity:1}}
@keyframes bubbleRise{0%{transform:translateY(0) scale(.7);opacity:0}15%{opacity:1}100%{transform:translateY(-44px) scale(1.15);opacity:0}}
@keyframes arrowUp{0%,55%{transform:translateY(10px);opacity:0}70%{transform:translateY(0);opacity:1}92%{transform:translateY(0);opacity:1}100%{transform:translateY(0);opacity:0}}
@keyframes nodeLit{0%,18%{transform:scale(1);opacity:.55}28%{transform:scale(1.9);opacity:1}55%,100%{transform:scale(1);opacity:.55}}
@keyframes meet{0%,34%{transform:scale(1)}42%{transform:scale(2.3)}62%,100%{transform:scale(1)}}
@keyframes sigGo{0%{stroke-dashoffset:9;opacity:0}3%{opacity:1}40%{stroke-dashoffset:-72;opacity:1}43%,100%{stroke-dashoffset:-72;opacity:0}}

@media (prefers-reduced-motion: reduce){
  .frame-art[data-anim] *{animation:none !important;}
  .frame-art[data-anim] .sig,.frame-art[data-anim] .hub-ping{display:none;}
  .frame-art[data-anim] g path,.frame-art[data-anim] > path,.frame-art[data-anim] [stroke-dasharray]{stroke-dasharray:none;stroke-dashoffset:0;}
}

/* ---- brand logo image (replaces the old seal + wordmark) ----
   Uses .brandmark img (not just .brand-logo) plus !important:
   WordPress themes and Elementor both ship their own `img{...}`
   rules, and this is the standard way to guarantee ours wins
   regardless of load order or specificity elsewhere on the site. */
.brandmark img.brand-logo{
  height:52px !important;width:auto !important;max-width:150px !important;
  display:block;object-fit:contain;
}
footer .brandmark img.brand-logo{height:60px !important;max-width:170px !important;}
@media (max-width:920px){
  .brandmark img.brand-logo{height:40px !important;max-width:120px !important;}
}


/* ---- line-art icon motion (classes are added by site.js) ---- */
.media-frame .frame-art.anim,.panel-icon .frame-art.anim{animation:none !important;}
.frame-art.anim circle,.frame-art.anim [stroke-dasharray]{animation:none;}
.frame-art.anim .a-rise{
  transform-box:fill-box;transform-origin:50% 100%;
  animation:aRise 6s ease-out var(--d,0s) infinite backwards;
}
@keyframes aRise{
  0%{transform:scaleY(0);opacity:0;}
  10%{transform:scaleY(1);opacity:1;}
  88%{transform:scaleY(1);opacity:1;}
  100%{transform:scaleY(1);opacity:0;}
}
.frame-art.anim .a-pop{
  transform-box:fill-box;transform-origin:center;
  animation:aPop 6s ease-out var(--d,0s) infinite backwards;
}
@keyframes aPop{
  0%,22%,100%{transform:scale(1);opacity:.55;}
  8%{transform:scale(2);opacity:1;}
}
.frame-art.anim .a-pulse{
  transform-box:fill-box;transform-origin:center;
  animation:aPulse 6s ease-out var(--d,0s) infinite;
}
@keyframes aPulse{0%,25%,100%{transform:scale(1);}10%{transform:scale(1.07);}}
.frame-art.anim .a-draw{
  stroke-dasharray:1;
  animation:aDraw 6s ease-in-out var(--d,0s) infinite backwards;
}
@keyframes aDraw{
  0%{stroke-dashoffset:1;opacity:1;}
  25%{stroke-dashoffset:0;}
  88%{stroke-dashoffset:0;opacity:1;}
  100%{stroke-dashoffset:0;opacity:0;}
}
.frame-art.anim .a-drop{
  transform-box:fill-box;transform-origin:center;
  animation:aDrop 6s ease-in var(--d,0s) infinite backwards;
}
@keyframes aDrop{
  0%{transform:translateY(-34px);opacity:0;}
  10%{transform:translateY(0);opacity:1;}
  88%{transform:translateY(0);opacity:1;}
  100%{transform:translateY(0);opacity:0;}
}
.frame-art.anim .a-lift{animation:aLift 5s ease-in-out infinite;}
@keyframes aLift{0%,100%{transform:translateY(0);}45%{transform:translateY(-12px);}}
.frame-art.anim .a-lift.a-flame{
  stroke-width:2;stroke-dasharray:3 5;
  animation:aLift 5s ease-in-out infinite,aFlame .5s linear infinite;
}
@keyframes aFlame{to{stroke-dashoffset:-16;}}
.frame-art.anim .a-bubble{animation:aBubble 3s ease-in infinite backwards;animation-delay:var(--d,0s);}
@keyframes aBubble{
  0%{transform:translateY(0);opacity:0;}
  15%{opacity:.9;}
  100%{transform:translateY(-52px);opacity:0;}
}
.frame-art.anim .a-up{animation:aUp 1.2s linear infinite;}
@keyframes aUp{to{stroke-dashoffset:12;}}
.frame-art.anim .a-balance{
  transform-box:view-box;transform-origin:100px 52px;
  animation:scaleBalance 4.6s ease-in-out infinite;
}
