:root{
  --tie-red:#E30613; --tie-red-dark:#B8050F; --tie-red-deep:#9E040D;
  --tie-navy:#0A1F44; --tie-navy-deep:#060E22; --tie-navy-mid:#0D2A5A; --tie-blue:#1F5AA6;
  --tie-display:'Libre Baskerville',Georgia,serif;
  --tie-heading:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --tie-body:'Open Sans','Helvetica Neue',Arial,sans-serif;
}

/* ---------- base ---------- */
/* XPro parks its closed off-canvas menu one viewport to the right; on phones that added
   ~375px of horizontal scroll. The drawer is fixed-positioned, so clipping has to happen
   on the root — body overflow alone does not catch it. */
html:has(body.tie-site){overflow-x:hidden;}
body.tie-site{background:var(--tie-navy-deep);color:#fff;font-family:var(--tie-body);line-height:1.7;overflow-x:hidden;}
body.tie-site a{color:var(--tie-red);}
body.tie-site a:hover{color:var(--tie-red-dark);}

/* ---------- layout ---------- */
body.tie-site .ast-container,
body.tie-site #content .ast-container,
body.tie-site .site-content .ast-container{max-width:100%;padding-left:0;padding-right:0;}
body.tie-site #primary,body.tie-site .entry-content{margin:0;padding:0;}
body.tie-site .ast-plain-container.ast-no-sidebar #primary{margin:0;padding:0;}
/* Flex children collapse to content width without an explicit basis.
   Boxed containers nest their children inside .e-con-inner, so the row class sits on the
   OUTER element while the flex context is one level down — match both shapes. */
.tie-row>.e-con,.tie-row>.e-con-inner>.e-con{flex:1 1 280px;min-width:0;}
.tie-row-4>.e-con,.tie-row-4>.e-con-inner>.e-con{flex:1 1 220px;min-width:0;}
.tie-row-stat>.e-con,.tie-row-stat>.e-con-inner>.e-con{flex:1 1 140px;min-width:0;}
.tie-row>.elementor-widget,.tie-row-4>.elementor-widget,
.tie-row>.e-con-inner>.elementor-widget,.tie-row-4>.e-con-inner>.elementor-widget{flex:1 1 240px;min-width:0;}

/* ---------- noise overlay ---------- */
.tie-noise{position:relative;}
.tie-noise>*{position:relative;z-index:1;}
.tie-noise::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='512' height='512' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- section backgrounds ---------- */
.tie-bg-hero{background:var(--tie-navy-deep);}
/* overlay stack: 192px bottom fade, navy scrim, centre radial — matches the source hero */
.tie-bg-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(to top,#060E22 0%,rgba(6,14,34,0) 100%) bottom left/100% 192px no-repeat,
  linear-gradient(180deg,rgba(6,14,34,.55) 0%,rgba(6,14,34,.35) 40%,rgba(6,14,34,.7) 75%,rgba(6,14,34,.95) 100%),
  radial-gradient(ellipse 80% 60% at 50% 40%,rgba(10,31,68,.3) 0%,transparent 70%),
  linear-gradient(0deg,rgba(10,31,68,.25),rgba(10,31,68,.25));}

/* 1px gradient hairline the source draws between sections */
.tie-hairline::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,transparent 5%,rgba(227,6,19,.25) 30%,rgba(255,255,255,.08) 50%,rgba(227,6,19,.25) 70%,transparent 95%);}
.tie-bg-band{background:linear-gradient(180deg,#060E22 0%,#0A1F44 50%,#060E22 100%);}
.tie-bg-a{background:radial-gradient(ellipse 50% 45% at 25% 75%,rgba(31,90,166,.12) 0%,transparent 60%),linear-gradient(180deg,#060E22 0%,#0A1F44 100%);}
.tie-bg-b{background:radial-gradient(ellipse 65% 55% at 75% 25%,rgba(31,90,166,.10) 0%,transparent 60%),linear-gradient(180deg,#0A1F44 0%,#060E22 100%);}
.tie-bg-c{background:radial-gradient(ellipse 45% 45% at 15% 50%,rgba(227,6,19,.05) 0%,transparent 50%),linear-gradient(180deg,#060E22 0%,#0A1F44 100%);}
.tie-bg-d{background:linear-gradient(180deg,#0A1F44 0%,#0D2A5A 50%,#0A1F44 100%);}
.tie-bg-deep{background:var(--tie-navy-deep);}
/* CTA band is a red gradient in the source, not navy */
.tie-bg-join{background:linear-gradient(135deg,#E30613 0%,#B8050F 50%,#9E040D 100%);overflow:hidden;}
.tie-bg-join::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(circle 192px at 100% 0,rgba(255,255,255,.05) 0%,transparent 70%),
  radial-gradient(circle 144px at 0 100%,rgba(0,0,0,.1) 0%,transparent 70%);}

/* ---------- typography (matches source scale) ---------- */
body.tie-site .elementor-widget-heading .elementor-heading-title{font-family:var(--tie-display);letter-spacing:-0.03em;color:#fff;}
.tie-eyebrow .elementor-heading-title{
  font-family:var(--tie-heading)!important;font-size:12px!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.25em!important;color:var(--tie-red)!important;line-height:1.6!important;
}
.tie-h1 .elementor-heading-title{font-size:clamp(2.75rem,5.4vw,4.5rem)!important;line-height:1.06!important;}
.tie-h2 .elementor-heading-title{font-size:clamp(1.875rem,3.2vw,2.75rem)!important;line-height:1.15!important;}
/* H3 in the source is Montserrat, not the serif display face */
.tie-h3 .elementor-heading-title{font-family:var(--tie-heading)!important;font-weight:700!important;font-size:18px!important;line-height:1.35!important;}
.tie-lead{font-family:var(--tie-body);font-size:clamp(1rem,1.2vw,1.125rem);color:rgba(255,255,255,.6);max-width:36rem;line-height:1.7;}
/* Section intros are 16px and dimmer than the hero lead — the source uses three distinct values. */
.tie-sec-lead{font-family:var(--tie-body);font-size:16px;color:rgba(255,255,255,.45);line-height:1.7;max-width:36rem;}
.tie-sec-lead-dim{font-family:var(--tie-body);font-size:16px;color:rgba(255,255,255,.4);line-height:1.7;max-width:44rem;}
.tie-join-lead{font-family:var(--tie-body);font-size:clamp(1rem,1.2vw,1.125rem);color:rgba(255,255,255,.7);line-height:1.7;max-width:42rem;margin:0 auto;}
.tie-sec-lead p,.tie-sec-lead-dim p,.tie-join-lead p{margin:0;}
.tie-h2-sm .elementor-heading-title{font-size:clamp(1.875rem,3vw,2.25rem)!important;}
.tie-h2-lg .elementor-heading-title{font-size:clamp(1.875rem,3.6vw,3rem)!important;line-height:1.12!important;}
.tie-body-muted{font-size:15px;color:rgba(255,255,255,.6);line-height:1.7;}
/* Pull-quote is a small navy badge in the source, not a display-size line. */
.tie-quote{background:var(--tie-navy);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px 24px!important;box-shadow:0 8px 32px rgba(0,0,0,.4);align-self:flex-start;}
.tie-quote .elementor-heading-title{font-family:var(--tie-display)!important;font-size:18px!important;font-weight:700!important;font-style:italic;line-height:1.375!important;letter-spacing:normal!important;color:#fff!important;}

/* ---------- stat cards (band) ---------- */
.tie-stat-card{
  border:1px solid rgba(227,6,19,.3);background:rgba(10,31,68,.6);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 0 24px rgba(227,6,19,.06),inset 0 1px 0 rgba(255,255,255,.04);
  border-radius:12px;padding:clamp(24px,3vw,32px)!important;text-align:center;
  transition:border-color .25s ease,box-shadow .25s ease;
}
.tie-stat-card:hover{border-color:rgba(227,6,19,.7);box-shadow:0 0 36px rgba(227,6,19,.12);}
.tie-stat-card .elementor-widget{text-align:center;}
.tie-stat-num .elementor-heading-title{
  font-family:var(--tie-heading)!important;font-weight:900!important;
  font-size:clamp(1.875rem,3vw,2.25rem)!important;letter-spacing:-.03em!important;color:#fff!important;line-height:1.1!important;
}
.tie-stat-label .elementor-heading-title{
  font-family:var(--tie-body)!important;font-size:12px!important;font-weight:400!important;line-height:1.7!important;
  text-transform:uppercase!important;letter-spacing:.1em!important;color:rgba(255,255,255,.4)!important;
}

/* ---------- about: image mosaic + story (source composition) ---------- */
.tie-about>.e-con-inner>.e-con,.tie-about>.e-con{flex:1 1 420px;min-width:0;}
.tie-about-media{display:grid!important;grid-template-columns:repeat(12,1fr);gap:12px;position:relative;}
.tie-about-media::before{content:"";position:absolute;bottom:-24px;left:-24px;width:96px;height:96px;background:rgba(227,6,19,.15);border-radius:9999px;filter:blur(32px);pointer-events:none;z-index:0;}
.tie-about-media .elementor-widget-image{position:relative;overflow:hidden;border-radius:12px;border:1px solid rgba(255,255,255,.1);margin:0;}
.tie-about-media .elementor-widget-image>.elementor-widget-container{height:100%;}
.tie-about-media .elementor-widget-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.33,1,.68,1);}
.tie-about-media .elementor-widget-image:hover img{transform:scale(1.04);}
.tie-about-media .elementor-widget-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(6,14,34,.65) 0%,transparent 50%);}
.tie-about-media .elementor-widget-image:nth-child(1){grid-column:span 7;aspect-ratio:4/3;}
.tie-about-media .elementor-widget-image:nth-child(2){grid-column:span 5;aspect-ratio:3/4;margin-top:32px;}
.tie-about-media .elementor-widget-image:nth-child(3){grid-column:span 5;aspect-ratio:3/4;margin-top:-24px;}
.tie-about-media .elementor-widget-image:nth-child(4){grid-column:span 7;aspect-ratio:4/3;margin-top:8px;}
.tie-dim{color:rgba(255,255,255,.5);}
.tie-about-p{font-family:var(--tie-body);font-size:16px;color:rgba(255,255,255,.5);line-height:1.7;}
/* Copy rhythm from the source: eyebrow 20 / h2 24 / paragraphs 20 / stats 32. */
.tie-about-copy>*{margin:0;}
.tie-about-copy .tie-eyebrow{margin-bottom:20px;}
.tie-about-copy .tie-h2{margin-bottom:24px;}
.tie-about-copy .tie-about-p{margin-bottom:20px;}
.tie-about-p p{margin:0;}
/* one row of three, split by full-height hairlines — never wrapped */
.tie-about-stats{margin-top:12px;flex-wrap:nowrap!important;gap:0!important;align-items:stretch!important;}
.tie-about-stats>.e-con{flex:0 1 auto!important;width:auto!important;min-width:0;padding-right:32px;}
.tie-about-stats>.e-con:last-child{padding-right:0;}
.tie-about-stat+.tie-about-stat{border-left:1px solid rgba(255,255,255,.1);padding-left:32px;}
@media (max-width:767px){
  /* three columns of stats do not fit a phone — let them wrap and drop the rules */
  .tie-about-stats{flex-wrap:wrap!important;gap:20px 28px!important;}
  .tie-about-stats>.e-con{padding-right:0;}
  .tie-about-stat+.tie-about-stat{border-left:0;padding-left:0;}
}
.tie-astat-num .elementor-heading-title{font-family:var(--tie-heading)!important;font-weight:900!important;font-size:24px!important;letter-spacing:-.03em!important;color:#fff!important;line-height:1.2!important;}
.tie-astat-label .elementor-heading-title{font-family:var(--tie-body)!important;font-size:12px!important;font-weight:400!important;text-transform:uppercase!important;letter-spacing:.05em!important;color:rgba(255,255,255,.4)!important;line-height:1.4!important;}

/* ---------- hero copy + stat chips ---------- */
.tie-hero-copy{max-width:48rem;}
/* The source renders the hero chips only on desktop (isDesktop gate); on phones the stat
   band immediately below carries the same numbers. */
@media (max-width:1024px){ .tie-hero-chips{display:none!important;} }
.tie-hero-chips{flex-direction:row!important;gap:16px!important;flex-wrap:nowrap!important;align-items:center;}
.tie-hero-chips>.e-con{flex:0 0 auto!important;width:auto!important;}
@media (min-width:1025px){
  .tie-bg-hero>.e-con-inner{position:relative;}
  .tie-hero-chips{position:absolute!important;right:32px;bottom:128px;width:auto!important;max-width:none;}
}
.tie-h1-accent{color:var(--tie-red);text-shadow:0 0 60px rgba(227,6,19,.3);}
.tie-chip-accent{background:var(--tie-red)!important;border-color:var(--tie-red)!important;box-shadow:0 8px 32px rgba(227,6,19,.35);backdrop-filter:none;-webkit-backdrop-filter:none;}
.tie-chip-accent .tie-chip-label .elementor-heading-title{color:rgba(255,255,255,.8)!important;}
.tie-chip{
  background:rgba(255,255,255,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 20px!important;text-align:center;
}
.tie-chip-num .elementor-heading-title{font-family:var(--tie-heading)!important;font-weight:900!important;font-size:24px!important;color:#fff!important;line-height:1!important;letter-spacing:-.02em!important;}
.tie-chip-label .elementor-heading-title{font-family:var(--tie-body)!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:rgba(255,255,255,.5)!important;}

/* ---------- content cards ---------- */
.tie-glass{
  border:1px solid rgba(227,6,19,.3);background:rgba(10,31,68,.6);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 0 24px rgba(227,6,19,.06),inset 0 1px 0 rgba(255,255,255,.04);
  border-radius:12px;overflow:hidden;
  transition:transform .35s cubic-bezier(.33,1,.68,1),border-color .25s ease,box-shadow .25s ease;
}
.tie-glass:hover{transform:translateY(-5px);border-color:rgba(227,6,19,.7);box-shadow:0 0 36px rgba(227,6,19,.12);}
/* ---------- event cards (source: pale border, 4/3 media, red text CTA) ---------- */
.tie-ev-head{align-items:stretch!important;margin-bottom:56px;}
.tie-ev-head>.e-con{flex:1 1 380px;min-width:0;}
.tie-ev-head-r{justify-content:flex-end!important;}
.tie-ev-lead{font-family:var(--tie-body);font-size:16px;color:rgba(255,255,255,.45);line-height:1.7;max-width:28rem;}
.tie-ev-lead p{margin:0;}
.tie-ev-row>.e-con{flex:1 1 300px;min-width:0;}
.tie-card{background:rgba(10,31,68,.45);border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;overflow:hidden;transition:border-color .25s ease,box-shadow .3s ease;}
.tie-card:hover{border-color:rgba(227,6,19,.35);box-shadow:0 12px 40px rgba(0,0,0,.25);}
.tie-card-media{position:relative;overflow:hidden;aspect-ratio:4/3;margin:0;}
.tie-card-media>.elementor-widget-container{height:100%;}
.tie-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.33,1,.68,1);}
.tie-card:hover .tie-card-media img{transform:scale(1.04);}
.tie-card-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(6,14,34,.65) 0%,transparent 50%);}
.tie-card-body>*{margin:0;}
.tie-card-label{margin-bottom:12px!important;}
.tie-card-body .tie-h3{margin-bottom:8px!important;}
.tie-card-body .tie-link{margin-top:16px!important;}
.tie-card-label .elementor-heading-title{display:flex;align-items:center;gap:8px;font-family:var(--tie-heading)!important;font-size:10px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.1em!important;line-height:1.6!important;}
.tie-card-label .elementor-heading-title::before{content:"";width:6px;height:6px;border-radius:9999px;background:currentColor;flex:0 0 auto;}
.tie-dot-red .elementor-heading-title{color:var(--tie-red)!important;}
.tie-dot-red .elementor-heading-title::before{width:8px;height:8px;animation:tie-pulse 2s ease-in-out infinite;}
.tie-dot-blue .elementor-heading-title{color:var(--tie-blue)!important;}
.tie-dot-mute .elementor-heading-title{color:rgba(255,255,255,.4)!important;}
.tie-card-p{font-family:var(--tie-body);font-size:14px;color:rgba(255,255,255,.4);line-height:1.7;}
.tie-card-p p{margin:0;}
.tie-link .elementor-button{background-color:transparent!important;border:0!important;padding:0!important;color:var(--tie-red)!important;font-family:var(--tie-heading)!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.1em!important;fill:currentColor;}
.tie-link .elementor-button:hover{color:var(--tie-red-dark)!important;box-shadow:none!important;transform:none;}
.tie-link .elementor-button:hover .elementor-button-icon{transform:translateX(4px);}
.tie-link .elementor-button-icon{transition:transform .2s ease;}
.tie-link .elementor-button-content-wrapper{display:flex;align-items:center;gap:8px;}
.tie-link .elementor-button:focus-visible{outline:2px solid #fff;outline-offset:3px;}

/* ---------- icon boxes ---------- */
.tie-iconbox{border:1px solid rgba(255,255,255,.07);background:rgba(6,14,34,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:clamp(28px,3vw,32px)!important;transition:border-color .25s ease,box-shadow .3s ease;}
.tie-iconbox:hover{border-color:rgba(227,6,19,.35);box-shadow:0 12px 40px rgba(0,0,0,.25);}
/* source cards are left-aligned with the icon above the title */
.tie-iconbox .elementor-icon-box-wrapper,
.tie-iconbox .elementor-icon-box-title,
.tie-iconbox .elementor-icon-box-description{text-align:left!important;}
.tie-iconbox .elementor-icon-box-icon{margin-inline:0;justify-content:flex-start;display:flex;}
.tie-sec-lead-dim{margin-inline:auto;}
.tie-center .elementor-widget{text-align:center;}
.tie-iconbox .elementor-icon-box-title{font-family:var(--tie-heading)!important;font-weight:700!important;font-size:16px!important;letter-spacing:-.03em;color:#fff;}
.tie-iconbox .elementor-icon-box-description{font-family:var(--tie-body);font-size:14px;color:rgba(255,255,255,.4);line-height:1.7;}
.tie-iconbox .elementor-icon{color:var(--tie-red);font-size:26px;}
/* Elementor's SVG font-icons carry no fill attribute, so they paint black unless told to
   follow the text colour. This affects every icon widget on the site, not just this card. */
body.tie-site .elementor-icon svg,
body.tie-site svg.e-font-icon-svg,
.xpro-theme-builder-template .elementor-icon svg{fill:currentColor;}

/* ---------- buttons ---------- */
.tie-btn .elementor-button{
  font-family:var(--tie-heading)!important;font-size:14px!important;font-weight:700!important;
  text-transform:uppercase!important;letter-spacing:.05em!important;border-radius:4px!important;padding:14px 32px!important;
  transition:background-color .2s ease,transform .15s ease,box-shadow .2s ease,color .2s ease,border-color .2s ease;
}
.tie-btn-outline .elementor-button,.tie-btn-onred-outline .elementor-button{font-weight:600!important;}
/* CTA band sits on red: solid white primary, white-outlined secondary */
.tie-btn-onred-primary .elementor-button{background-color:#fff!important;color:var(--tie-navy)!important;border:0!important;}
.tie-btn-onred-primary .elementor-button:hover{background-color:#f8f8f8!important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.15);}
.tie-btn-onred-primary .elementor-button:active{transform:translateY(0);}
.tie-btn-onred-outline .elementor-button{background-color:transparent!important;color:#fff!important;border:2px solid rgba(255,255,255,.3)!important;}
.tie-btn-onred-outline .elementor-button:hover{border-color:rgba(255,255,255,.6)!important;background-color:rgba(255,255,255,.1)!important;}
.tie-btn-primary .elementor-button{background-color:var(--tie-red)!important;color:#fff!important;border:1.5px solid var(--tie-red)!important;}
.tie-btn-primary .elementor-button:hover{background-color:var(--tie-red-dark)!important;border-color:var(--tie-red-dark)!important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(227,6,19,.35),0 2px 8px rgba(227,6,19,.2);}
.tie-btn-primary .elementor-button:active{transform:translateY(0);background-color:var(--tie-red-deep)!important;}
.tie-btn-outline .elementor-button{background-color:transparent!important;color:#fff!important;border:1.5px solid rgba(227,6,19,.7)!important;}
.tie-btn-outline .elementor-button:hover{background-color:rgba(227,6,19,.12)!important;border-color:var(--tie-red)!important;transform:translateY(-1px);}
.tie-btn .elementor-button:focus-visible{outline:2px solid #fff;outline-offset:3px;}

/* ---------- sponsors + rules ---------- */
/* Source treats each partner logo as a white card, full colour — not a faded greyscale row. */
.tie-center{text-align:center;align-items:center;}
.tie-partners-lead{font-family:var(--tie-body);font-size:16px;color:rgba(255,255,255,.4);line-height:1.7;max-width:36rem;margin:0 auto 24px;}
.tie-sponsor-row{flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;gap:clamp(24px,3vw,40px)!important;}
.tie-sponsor{flex:0 0 auto!important;width:auto!important;background:rgba(255,255,255,.95);border-radius:12px;padding:14px 24px!important;transition:transform .25s ease,box-shadow .25s ease;}
.tie-sponsor:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(227,6,19,.12);}
.tie-sponsor img{height:44px;width:auto;max-width:none;display:block;object-fit:contain;}
.tie-sponsor a:focus-visible{outline:2px solid var(--tie-red);outline-offset:4px;}
/* The divider widget draws its own rule inside .elementor-divider-separator — styling the
   widget wrapper instead produced a stray red bar next to a full-width hairline. */
.tie-rule{width:auto;height:auto;background:none;border:0;}
.tie-rule .elementor-divider{padding-block:0;}
.tie-rule .elementor-divider-separator{width:56px!important;border-top:2px solid var(--tie-red)!important;margin:0;}

/* ---------- header (XPro) ---------- */
/* XPro's site-logo stretches the img across its flex track; keep the natural ratio. */
/* Scoped to the header: max-width:none is what keeps the square mark from being squashed
   into the flex track. The footer logo must NOT inherit it — without a max-width it fell
   back to its 400px natural size on phones and filled the column. */
.tie-header .tie-logo img,.tie-header .xpro-site-logo img{width:auto!important;max-width:none;object-fit:contain;display:block;}
.tie-footer .tie-logo img{width:auto!important;height:96px!important;max-width:100%;object-fit:contain;display:block;}
@media (max-width:767px){ .tie-footer .tie-logo img{height:76px!important;} }
.tie-header{background:rgba(6,14,34,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.04);}
/* Elementor containers wrap by default — below the nav breakpoint the burger and CTA
   dropped onto a second row. Keep the bar to a single line at every width. */
.tie-header>.e-con-inner{flex-wrap:nowrap!important;}
.tie-header>.e-con-inner>.e-con{flex:0 1 auto;min-width:0;flex-wrap:nowrap!important;}
.tie-header .tie-logo{flex:0 0 auto;}
.tie-header .tie-join .elementor-button,.tie-header .xpro-button{white-space:nowrap;}
@media (max-width:1024px){
  /* source: 64px bar, 44px logo, compact CTA */
  .tie-header>.e-con-inner{padding-top:10px!important;padding-bottom:10px!important;gap:12px!important;}
  .tie-header .tie-logo img{height:44px!important;}
  .tie-header .tie-join .elementor-button,.tie-header .xpro-button{font-size:12px!important;padding:8px 16px!important;}
  .tie-header>.e-con-inner>.e-con{gap:8px!important;}
}
/* ---------- mobile menu (XPro off-canvas) ----------
   XPro ships a light-grey drawer with a dark burger. On the navy bar the burger was almost
   invisible, and the drawer put our white nav links on a #F5F5F5 panel — unreadable.
   Rebuilt to the source's mobile menu: navy panel, white burger, 16px sentence-case links. */
.tie-header [class*="toggler"],
.tie-header [class*="toggler"] i,
.tie-header [class*="toggler"] svg{color:#fff!important;fill:currentColor;}
.tie-header [class*="toggler"]:hover i,
.tie-header [class*="toggler"]:hover svg{color:var(--tie-red)!important;}
.tie-header [class*="toggler"] i{font-size:24px!important;}
@media (max-width:1024px){
  .tie-header .xpro-elementor-horizontal-navbar-wrapper{
    background:rgba(6,14,34,.98)!important;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-left:1px solid rgba(255,255,255,.05)!important;
    width:288px!important;max-width:85vw!important;padding:24px!important;
  }
  .tie-header .xpro-elementor-horizontal-navbar,
  .tie-header .xpro-elementor-horizontal-navbar-nav{width:auto!important;}
  .tie-header .xpro-elementor-nav-link{
    font-size:16px!important;font-weight:500!important;text-transform:none!important;
    letter-spacing:0!important;color:rgba(255,255,255,.7)!important;padding:8px 0!important;
  }
  .tie-header .current-menu-item>.xpro-elementor-nav-link{color:var(--tie-red)!important;}
  .tie-header .xpro-elementor-horizontal-navbar-nav>li{border-bottom:1px solid rgba(255,255,255,.06);}
  .tie-header .xpro-elementor-horizontal-navbar-nav>li:last-child{border-bottom:0;}
  .tie-header .xpro-elementor-horizontal-menu-close{background:transparent!important;color:#fff!important;}
  .tie-header .xpro-elementor-horizontal-menu-close:hover{color:var(--tie-red)!important;}
  .tie-header .xpro-elementor-horizontal-menu-close i{color:inherit!important;}
}
@media (max-width:400px){
  .tie-header .tie-logo img{height:38px!important;}
  .tie-header .tie-join .elementor-button,.tie-header .xpro-button{font-size:11px!important;padding:8px 12px!important;letter-spacing:.02em!important;}
}
/* XPro 1.7.x menu markup: ul.xpro-elementor-horizontal-navbar-nav > li > a.xpro-elementor-nav-link */
.tie-header .xpro-elementor-nav-link,
.tie-header .xpro-horizontal-menu-wrapper ul li a,
.tie-header .xpro-menu-item{font-family:var(--tie-heading)!important;font-size:13px!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.025em!important;color:rgba(255,255,255,.7)!important;}
.tie-header .xpro-elementor-nav-link:hover,
.tie-header .current-menu-item>.xpro-elementor-nav-link,
.tie-header .xpro-horizontal-menu-wrapper ul li a:hover,
.tie-header .xpro-horizontal-menu-wrapper ul li.current-menu-item>a{color:var(--tie-red)!important;}
.tie-header .xpro-elementor-nav-link:focus-visible{outline:2px solid #fff;outline-offset:3px;}
.tie-header .xpro-button{font-family:var(--tie-heading)!important;font-size:13px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.025em!important;border-radius:4px!important;}

/* ---------- footer ---------- */
.tie-footer{background:var(--tie-navy-deep);border-top:1px solid rgba(255,255,255,.06);}
.tie-foot-head .elementor-heading-title{font-family:var(--tie-heading)!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.1em!important;color:rgba(255,255,255,.6)!important;}
.tie-foot-list .elementor-icon-list-item>a,
.tie-foot-list .elementor-icon-list-text{font-family:var(--tie-body)!important;font-size:14px!important;color:rgba(255,255,255,.35)!important;transition:color .2s ease;}
.tie-foot-list .elementor-icon-list-item>a:hover{color:var(--tie-red)!important;}
.tie-foot-list .elementor-icon-list-items{display:flex;flex-direction:column;gap:9px;}
.tie-foot-blurb{font-size:14px;color:rgba(255,255,255,.35);max-width:34ch;line-height:1.7;}
.tie-footbar{border-top:1px solid rgba(255,255,255,.06);}
.tie-footbar .elementor-widget-text-editor{font-size:12px;color:rgba(255,255,255,.25);}
.tie-footbar a{color:rgba(255,255,255,.35);text-decoration:none;}
.tie-footbar a:hover{color:var(--tie-red);}

/* ---------- hero eyebrow pulse dot (source detail) ---------- */
.tie-eyebrow-dot .elementor-heading-title{display:flex;align-items:center;gap:8px;}
.tie-eyebrow-dot .elementor-heading-title::before{
  content:"";width:8px;height:8px;background:var(--tie-red);border-radius:9999px;
  display:inline-block;flex:0 0 auto;animation:tie-pulse 2s ease-in-out infinite;
}
@keyframes tie-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(1.6);}}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .tie-eyebrow-dot .elementor-heading-title::before{animation:none!important;}
  .tie-glass,.tie-iconbox,.tie-btn .elementor-button,.tie-stat-card{transition:none!important;}
  .tie-glass:hover,.tie-iconbox:hover{transform:none!important;}
}

/* ---------- mobile menu overrides (kept last so they beat the desktop nav rules) ---------- */
@media (max-width:1024px){
  .tie-header .xpro-elementor-horizontal-navbar-wrapper .xpro-elementor-horizontal-navbar-nav>li>a.xpro-elementor-nav-link,
  .tie-header .xpro-elementor-horizontal-navbar-wrapper a.xpro-elementor-nav-link{
    background:transparent!important;background-color:transparent!important;
    font-family:var(--tie-heading)!important;font-size:16px!important;font-weight:500!important;
    text-transform:none!important;letter-spacing:0!important;color:rgba(255,255,255,.7)!important;
    padding:10px 0!important;
  }
  .tie-header .xpro-elementor-horizontal-navbar-wrapper a.xpro-elementor-nav-link:hover,
  .tie-header .xpro-elementor-horizontal-navbar-wrapper .current-menu-item>a.xpro-elementor-nav-link{color:var(--tie-red)!important;}
  .tie-header .xpro-elementor-horizontal-navbar-wrapper li{background:transparent!important;}
  .tie-header .xpro-elementor-horizontal-navbar-nav{padding-top:8px!important;}
}

/* Astra's scroll-to-top ships in its default blue; bring it onto the brand. */
body.tie-site #ast-scroll-top{background-color:var(--tie-red)!important;color:#fff!important;border-radius:4px;transition:background-color .2s ease,transform .15s ease;}
body.tie-site #ast-scroll-top:hover{background-color:var(--tie-red-dark)!important;transform:translateY(-2px);}
body.tie-site #ast-scroll-top svg{fill:currentColor;}

/* XPro pads its nav links 20px top and bottom, which pushed the desktop bar to ~98px.
   The source bar is 72px with a 52px logo. */
@media (min-width:1025px){
  .tie-header a.xpro-elementor-nav-link{padding-top:8px!important;padding-bottom:8px!important;}
}

/* Header bar height: kill the inherited widget bottom-margin and match the source's
   8px/20px CTA padding so the bar lands at ~72px instead of 98px. */
.tie-header .elementor-widget{margin-bottom:0!important;}
.tie-header .tie-join .xpro-button,.tie-header .tie-join .elementor-button{padding:9px 20px!important;font-size:13px!important;line-height:1.2!important;}

/* XPro's button class is .xpro-elementor-button (not .xpro-button) — the earlier rule never
   matched, so the header CTA had been rendering 15px/30px instead of the source's 13px/20px.
   The nested group also carried Elementor's default 10px container padding. */
.tie-header>.e-con-inner>.e-con{padding:0!important;}
.tie-header .tie-join .xpro-elementor-button{font-family:var(--tie-heading)!important;font-size:13px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.025em!important;padding:9px 20px!important;line-height:1.3!important;border-radius:4px!important;}
@media (max-width:1024px){.tie-header .tie-join .xpro-elementor-button{font-size:12px!important;padding:8px 16px!important;}}
@media (max-width:400px){.tie-header .tie-join .xpro-elementor-button{font-size:11px!important;padding:8px 12px!important;letter-spacing:.02em!important;}}

/* Bar to the source's 72px: 52px logo + 10px above and below, no stray line-height. */
.tie-header .tie-logo,.tie-header .tie-logo>.elementor-widget-container,.tie-header .tie-logo a{line-height:0!important;display:block;}
@media (min-width:1025px){.tie-header>.e-con-inner{padding-top:10px!important;padding-bottom:10px!important;}}
