.elementor-kit-6{--e-global-color-primary:#0E1043;--e-global-color-secondary:#2A36B8;--e-global-color-text:#FFFFFFD1;--e-global-color-accent:#FFC312;--e-global-color-tpyellow2:#F5B225;--e-global-color-tpdeep:#090B30;--e-global-color-tpwhite:#FFFFFF;--e-global-color-tpink:#2B2C48;--e-global-color-tpmuted:#FFFFFF99;--e-global-color-tpline:#FFFFFF29;--e-global-color-tpbody:#3A3C66;--e-global-color-tpgold:#C08A00;--e-global-color-tpcard:#F6F7FB;--e-global-color-ciink:#2A2630;--e-global-color-citext:#4A4552;--e-global-color-ciyel:#FAC011;--e-global-color-cired:#C8321F;--e-global-color-cicream:#FFF8E6;--e-global-typography-primary-font-family:"TalentFS";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"TalentFS";--e-global-typography-secondary-font-weight:200;--e-global-typography-text-font-family:"TalentFS";--e-global-typography-text-font-size:21px;--e-global-typography-text-font-weight:200;--e-global-typography-text-line-height:1.6em;--e-global-typography-accent-font-family:"TalentFS";--e-global-typography-accent-font-size:17px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1em;--e-global-typography-tph1-font-family:"TalentFS";--e-global-typography-tph1-font-size:clamp(40px, 4.6vw, 66px);--e-global-typography-tph1-font-weight:200;--e-global-typography-tph1-line-height:1.08em;--e-global-typography-tph1-letter-spacing:-0.015em;--e-global-typography-tpdisplay-font-family:"TalentFS";--e-global-typography-tpdisplay-font-size:clamp(40px, 5.4vw, 80px);--e-global-typography-tpdisplay-font-weight:200;--e-global-typography-tpdisplay-line-height:1.02em;--e-global-typography-tpdisplay-letter-spacing:-0.02em;--e-global-typography-tph2-font-family:"TalentFS";--e-global-typography-tph2-font-size:clamp(34px, 4vw, 56px);--e-global-typography-tph2-font-weight:200;--e-global-typography-tph2-line-height:1.1em;--e-global-typography-tpsh-font-family:"TalentFS";--e-global-typography-tpsh-font-size:clamp(40px, 4.8vw, 72px);--e-global-typography-tpsh-font-weight:200;--e-global-typography-tpsh-line-height:1.05em;--e-global-typography-tpsh-letter-spacing:-0.02em;--e-global-typography-tpash-font-family:"TalentFS";--e-global-typography-tpash-font-size:clamp(36px, 4.2vw, 58px);--e-global-typography-tpash-font-weight:200;--e-global-typography-tpash-line-height:1.08em;--e-global-typography-tph3l-font-family:"TalentFS";--e-global-typography-tph3l-font-size:clamp(22px, 2vw, 28px);--e-global-typography-tph3l-font-weight:600;--e-global-typography-tph3l-line-height:1.2em;--e-global-typography-tph3-font-family:"TalentFS";--e-global-typography-tph3-font-size:21px;--e-global-typography-tph3-font-weight:600;--e-global-typography-tph3-line-height:1.3em;--e-global-typography-tpbig-font-family:"TalentFS";--e-global-typography-tpbig-font-size:clamp(24px, 2.6vw, 36px);--e-global-typography-tpbig-font-weight:200;--e-global-typography-tpbig-line-height:1.3em;--e-global-typography-tpsmall-font-family:"TalentFS";--e-global-typography-tpsmall-font-size:17px;--e-global-typography-tpsmall-font-weight:200;--e-global-typography-tpsmall-line-height:1.55em;--e-global-typography-tplabel-font-family:"TalentFS";--e-global-typography-tplabel-font-size:15px;--e-global-typography-tplabel-font-weight:600;--e-global-typography-tplabel-line-height:1.3em;--e-global-typography-tplabel-letter-spacing:0.04em;--e-global-typography-tpchip-font-family:"TalentFS";--e-global-typography-tpchip-font-size:21px;--e-global-typography-tpchip-font-weight:600;--e-global-typography-tpchip-line-height:1em;--e-global-typography-tpchip-letter-spacing:0.06em;--e-global-typography-cih2-font-family:"TalentFS";--e-global-typography-cih2-font-size:clamp(34px, 4.4vw, 58px);--e-global-typography-cih2-font-weight:600;--e-global-typography-cih2-line-height:1.1em;--e-global-typography-cih2-letter-spacing:-0.01em;--e-global-typography-cinum-font-family:"Bebas Neue";--e-global-typography-cinum-font-size:clamp(48px, 4.8vw, 66px);--e-global-typography-cinum-font-weight:400;--e-global-typography-cinum-line-height:1em;--e-global-typography-cinum-letter-spacing:0em;background-color:#FFFFFF;color:#3A3C66;font-family:"TalentFS", Sans-serif;font-size:21px;font-weight:200;line-height:1.6em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{background-color:#FFC312;font-family:"TalentFS", Sans-serif;font-size:17px;font-weight:600;line-height:1em;color:#0E1043;border-radius:999px 999px 999px 999px;padding:18px 28px 18px 28px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{background-color:#F5B225;color:#0E1043;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#FFC312;}.elementor-kit-6 a:hover{color:#FFFFFF;}.elementor-kit-6 h1{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:200;line-height:1.15em;}.elementor-kit-6 h2{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:200;line-height:1.15em;}.elementor-kit-6 h3{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:600;line-height:1.15em;}.elementor-kit-6 h4{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:600;line-height:1.15em;}.elementor-kit-6 h5{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:600;line-height:1.15em;}.elementor-kit-6 h6{color:#0E1043;font-family:"TalentFS", Sans-serif;font-weight:600;line-height:1.15em;}.elementor-kit-6 label{color:#FFFFFFD9;font-family:"TalentFS", Sans-serif;font-size:15px;font-weight:600;}.elementor-kit-6 input:not([type="button"]):not([type="submit"]),.elementor-kit-6 textarea,.elementor-kit-6 .elementor-field-textual{font-family:"TalentFS", Sans-serif;font-size:17px;font-weight:200;color:#FFFFFF;background-color:#FFFFFF0F;border-style:solid;border-width:1px 1px 1px 1px;border-color:#FFFFFF33;border-radius:14px 14px 14px 14px;padding:12px 16px 12px 16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1172px;}.e-con{--container-max-width:1172px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:16px;}.elementor-element{--widgets-spacing:16px 16px;--widgets-spacing-row:16px;--widgets-spacing-column:16px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-6{--e-global-typography-text-font-size:20px;--e-global-typography-accent-font-size:17px;--e-global-typography-tph3-font-size:20px;--e-global-typography-tpsmall-font-size:17px;--e-global-typography-tplabel-font-size:15px;--e-global-typography-tpchip-font-size:20px;font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-text-font-size:18px;--e-global-typography-accent-font-size:16px;--e-global-typography-tph3-font-size:20px;--e-global-typography-tpsmall-font-size:16px;--e-global-typography-tplabel-font-size:14px;--e-global-typography-tpchip-font-size:18px;font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   TOP+ Studio, brand layer for Elementor.
   Colors and fonts live in the kit globals; this file only holds what the
   Elementor controls cannot express: glass, glows, organic shapes, motion.
   ========================================================================== */

:root {
	--tp-navy: var(--e-global-color-primary, #0E1043);
	--tp-royal: var(--e-global-color-secondary, #2A36B8);
	--tp-yel: var(--e-global-color-accent, #FFC312);
	--tp-yel2: var(--e-global-color-tpyellow2, #F5B225);
	--tp-deep: var(--e-global-color-tpdeep, #090B30);
	--tp-glass: rgba(255, 255, 255, .065);
	--tp-glass-b: rgba(255, 255, 255, .16);
	--tp-ease: cubic-bezier(.23, 1, .32, 1);
	--tp-ease-io: cubic-bezier(.77, 0, .175, 1);
}

html { scroll-behavior: smooth; overflow-x: clip; }
.tp-pain { overflow: clip; }
/* Fixed reading widths (text columns, intro blocks) never push past a narrow screen. */
.elementor-widget, .e-con { max-width: 100%; }
/* Most pages are light; the home page, project pages and the business card are dark (.tp-dark-page). */
body {
	background: radial-gradient(900px 600px at 90% -8%, rgba(255, 195, 18, .12), transparent 60%), #ffffff;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}
body.home, body.single-project, body.tp-dark-page {
	background: radial-gradient(1100px 700px at 85% -5%, rgba(42, 54, 184, .55), transparent 60%),
		radial-gradient(900px 700px at 0% 30%, rgba(144, 86, 162, .22), transparent 60%),
		radial-gradient(1000px 800px at 100% 70%, rgba(42, 54, 184, .4), transparent 60%),
		radial-gradient(800px 600px at 20% 100%, rgba(255, 195, 18, .12), transparent 60%),
		linear-gradient(180deg, #090B30, #0E1043 40%, #0B0D3A);
	background-color: #090B30;
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
}
::selection { background: #FFC312; color: #0E1043; }
[id] { scroll-margin-top: 110px; }

/* Bold words inside headings carry the accent; .tp-b-ink / .tp-b-white keep them neutral. */
.elementor-heading-title b, .elementor-heading-title strong { font-weight: 600; color: var(--tp-yel); }
.tp-b-white .elementor-heading-title b { color: #fff; }
.tp-b-ink .elementor-heading-title b { color: var(--tp-navy); }
.elementor-widget-text-editor b, .elementor-widget-text-editor strong { font-weight: 600; }
.tp-yel-b b, .tp-yel-b strong { color: var(--tp-yel); }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.tp-ltr { direction: ltr; unicode-bidi: isolate; }

/* ---------- glass surfaces ---------- */
.tp-glass {
	background: var(--tp-glass);
	border: 1px solid var(--tp-glass-b);
	border-radius: 24px;
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 24px 60px -30px rgba(0, 0, 0, .6);
}
.tp-glass-deep { background: rgba(14, 16, 67, .55); }

/* ---------- buttons (yellow pill is the kit default) ---------- */
.elementor-button { transition: transform 160ms var(--tp-ease), background-color 180ms ease, box-shadow 220ms ease, color 180ms ease, border-color 180ms ease; line-height: 1; }
.elementor-button:active { transform: scale(.97); }
.elementor-button .elementor-button-icon svg { width: 18px; height: 18px; transition: transform 220ms var(--tp-ease); }
.elementor-button-content-wrapper { align-items: center; }
@media (hover: hover) and (pointer: fine) {
	.elementor-widget-button:not(.tp-btn-glass):not(.tp-btn-navy):not(.tp-btn-line):not(.tp-link) .elementor-button:hover { box-shadow: 0 0 34px rgba(255, 195, 18, .45); }
	.elementor-button:hover .elementor-button-icon svg { transform: translateX(-4px); }
}
.tp-btn-glass .elementor-button {
	background: var(--tp-glass);
	border: 1px solid var(--tp-glass-b);
	color: #fff;
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}
.tp-btn-glass .elementor-button:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .3); color: #fff; }
.tp-btn-navy .elementor-button { background: var(--tp-navy); color: #fff; }
.tp-btn-navy .elementor-button:hover { background: #1B1E66; color: #fff; box-shadow: 0 12px 32px -8px rgba(14, 16, 67, .5); }
.tp-btn-line .elementor-button { background: transparent; border: 1px solid rgba(14, 16, 67, .3); color: var(--tp-navy); }
.tp-btn-line .elementor-button:hover { background: var(--tp-navy); border-color: var(--tp-navy); color: #fff; }
/* text link with arrow, used inside cards */
.tp-link .elementor-button { background: none; padding: 0; min-height: 44px; color: var(--tp-yel); border-radius: 0; font-size: 20px; }
.tp-link .elementor-button:hover { color: #fff; background: none; }

/* ---------- header ---------- */
.tp-logo a, .tp-logo-y a { display: inline-flex; align-items: flex-start; direction: ltr; text-decoration: none; }
.tp-logo a::after, .tp-logo-y a::after { content: '+'; color: #fff; font: 600 20px/1 'TalentFS', system-ui, sans-serif; margin: -7px 0 0 1px; }
.tp-logo-y a::after { color: var(--tp-yel); font-size: 24px; }
.tp-nav-wrap { z-index: 50; }
.tp-nav { max-width: 1220px; margin-inline: auto; }
.tp-util { background: #fff; }
.tp-util .elementor-nav-menu--main .elementor-item { color: var(--tp-navy); font-weight: 600; font-size: 14px; padding: 6px 0; }
.tp-util .elementor-nav-menu--main .elementor-item:hover,
.tp-util .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--tp-royal); text-decoration: underline; text-decoration-color: var(--tp-yel); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.tp-nav {
	background: rgba(14, 16, 67, .78) !important;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	-webkit-backdrop-filter: blur(18px) saturate(140%);
	backdrop-filter: blur(18px) saturate(140%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 24px 60px -30px rgba(0, 0, 0, .6);
}
.tp-nav .elementor-nav-menu--main .elementor-item { color: #fff; font-weight: 600; font-size: 15px; border-radius: 999px; padding: 12px 12px; transition: background-color 160ms ease; }
.tp-nav .elementor-nav-menu--main .elementor-item:hover,
.tp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { background: rgba(255, 255, 255, .08); color: #fff; }
.tp-nav .elementor-nav-menu--main .elementor-item::before, .tp-nav .elementor-nav-menu--main .elementor-item::after { display: none; }
.tp-nav .elementor-nav-menu--dropdown { background: var(--tp-navy); border-radius: 18px; padding: 8px; box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .6); }
.tp-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a { color: #fff; border-radius: 12px; font-weight: 600; font-size: 15px; padding: 12px 14px; }
.tp-nav .elementor-nav-menu--main .elementor-nav-menu--dropdown a:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.tp-nav .elementor-menu-toggle { background: rgba(255, 255, 255, .1); color: #fff; border-radius: 12px; width: 44px; height: 44px; }
.tp-nav .elementor-menu-toggle svg { fill: #fff; }
.tp-nav { position: relative; }
.tp-mnav { position: static !important; }
.tp-mnav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	position: absolute; top: calc(100% + 0px); left: 0; right: 0; width: auto !important;
	background: rgba(14, 16, 67, .96);
	border-radius: 24px;
	margin-top: 14px !important;
	padding: 10px 20px 20px;
	border: 1px solid rgba(255, 255, 255, .14);
}
.tp-mnav .elementor-nav-menu--dropdown a { color: #fff; font-weight: 600; font-size: 19px; min-height: 52px; border-bottom: 1px solid rgba(255, 255, 255, .08); padding: 0 !important; display: flex; align-items: center; }
.tp-mnav .elementor-nav-menu--dropdown a:hover, .tp-mnav .elementor-nav-menu--dropdown a.elementor-item-active { background: none; color: var(--tp-yel); }

/* ---------- headings and small labels ---------- */
.tp-kicker .elementor-heading-title { letter-spacing: .04em; }
.tp-chip .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 3px;
	height: 50px; padding: 0 24px; border-radius: 999px;
	background: rgba(20, 24, 90, .85); border: 1px solid var(--tp-glass-b);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	direction: ltr; letter-spacing: .06em; white-space: nowrap;
}
.tp-chip .elementor-heading-title::after { content: '+'; color: var(--tp-yel); font-size: .9em; margin-top: -.45em; transition: transform 500ms var(--tp-ease); display: inline-block; }

/* ---------- tiles: lift, yellow bar that grows into a frame ---------- */
.tp-tile { transition: transform 300ms var(--tp-ease), border-color 300ms ease, background-color 300ms ease; overflow: visible; }
.tp-tile > .elementor-widget:first-child.tp-chip { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); width: auto; z-index: 2; }
.tp-tile::after {
	content: ''; position: absolute; bottom: 0; left: 50%; width: 46px; height: 6px; border-radius: 6px;
	transform: translate(-50%, 50%); background: var(--tp-yel); box-shadow: 0 0 18px 2px rgba(255, 195, 18, .7);
	transition: width 300ms var(--tp-ease);
}
@media (hover: hover) and (pointer: fine) {
	.tp-tile:hover { transform: translateY(-6px); border-color: rgba(255, 195, 18, .4); background: rgba(255, 255, 255, .09); }
	.tp-tile:hover::after { width: calc(100% - 48px); transition: width 520ms var(--tp-ease-io); }
	.tp-tile:hover .tp-chip .elementor-heading-title::after { transform: rotate(90deg); }
}
.tp-tile .elementor-icon { color: var(--tp-yel); filter: drop-shadow(0 0 10px rgba(255, 195, 18, .35)); }

/* list rows (who we work with) */
.tp-row { transition: transform 260ms var(--tp-ease), border-color 260ms ease; }
.tp-row .elementor-icon-box-icon .elementor-icon {
	width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center;
	background: rgba(255, 195, 18, .08); border: 1px solid rgba(255, 195, 18, .25);
}
@media (hover: hover) and (pointer: fine) { .tp-row:hover { transform: translateX(-6px); border-color: rgba(255, 195, 18, .35); } }

/* ---------- hero (light) ---------- */
.tp-hero { overflow: visible; }
@media (min-width: 1025px) { .tp-hero { min-height: calc(min(100vh, 960px) + 80px); min-height: calc(min(100svh, 960px) + 80px); } }
.tp-hero .elementor-background-video-container { opacity: 1; }
/* the video fades to white at the top and bottom, so the hero ends in clean white above the navy section */
.tp-hero::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(to bottom, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 30%), linear-gradient(to top, #fff 0%, #fff 3%, rgba(255, 255, 255, 0) 24%); }
.tp-hero > .e-con { position: relative; z-index: 2; }
.tp-lockup { direction: ltr; }
.tp-lockup .elementor-headline { direction: ltr; letter-spacing: .07em; }
.tp-lockup .elementor-headline-plain-text { color: var(--tp-navy); font-weight: 600; }
.tp-wipe b { position: relative; display: inline-block; color: var(--tp-yel2); padding: 0 .08em; }
.tp-wipe b::after {
	content: ''; position: absolute; inset: .08em 0 .02em 0; background: var(--tp-yel); border-radius: 6px;
	transform: scaleX(0); transform-origin: 100% 50%; animation: tpBar 900ms cubic-bezier(.77, 0, .175, 1) 400ms both;
}
.tp-wipe b { animation: tpShow 10ms linear 820ms backwards; }
@keyframes tpBar { 0% { transform: scaleX(0); transform-origin: 100% 50%; } 46% { transform: scaleX(1); transform-origin: 100% 50%; } 54% { transform: scaleX(1); transform-origin: 0 50%; } 100% { transform: scaleX(0); transform-origin: 0 50%; } }
@keyframes tpShow { from { color: transparent; } }

/* orbit gallery: morphing image frames travel along a half circle (positioned by the script in the widget) */
.tp-orbit { position: relative; width: 100%; height: clamp(480px, 50vw, 720px); }
.tp-orb {
	position: absolute; left: 0; top: 0; width: clamp(240px, 27vw, 400px); aspect-ratio: 1 / 1.12; overflow: hidden; opacity: 0;
	transform: translate(-9999px, 0); will-change: transform, opacity; box-shadow: 0 34px 70px -28px rgba(14, 16, 67, .55);
	border-radius: 58% 42% 46% 54% / 45% 52% 48% 55%; animation: tpMorph 12s ease-in-out infinite alternate; animation-delay: var(--md, 0s);
}
.tp-orb img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.tp-oring {
	position: absolute; left: 0; top: 0; width: clamp(276px, 31vw, 458px); aspect-ratio: 1 / 1.1; transform: translate(-9999px, 0);
	border: 7px solid var(--tp-yel); border-radius: 46% 54% 60% 40% / 52% 40% 60% 48%;
	filter: drop-shadow(0 0 14px rgba(255, 195, 18, .55)); pointer-events: none; z-index: 300;
	animation: tpMorph2 14s ease-in-out infinite alternate;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%); mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%);
}
@media (max-width: 767px) { .tp-orbit { height: 440px; } .tp-orb { width: min(240px, 66vw); } .tp-oring { width: min(276px, 76vw); } }
@media (prefers-reduced-motion: reduce) { .tp-orb, .tp-oring { animation: none; } }
@keyframes tpMorph { 0% { border-radius: 58% 42% 46% 54% / 45% 52% 48% 55%; } 50% { border-radius: 40% 60% 58% 42% / 58% 42% 58% 42%; } 100% { border-radius: 52% 48% 36% 64% / 42% 60% 40% 58%; } }
@keyframes tpMorph2 { 0% { border-radius: 46% 54% 60% 40% / 52% 40% 60% 48%; } 100% { border-radius: 60% 40% 44% 56% / 40% 58% 42% 60%; } }

/* ---------- pain section: chips that fall into place while scrolling ---------- */
.tp-chips .elementor-icon-list-items { justify-content: center; gap: 10px 12px; padding: 90px 0; }
.tp-chips .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; }
.tp-chips .elementor-icon-list-item::after { display: none !important; }
.tp-chips .elementor-icon-list-text {
	display: inline-flex; align-items: center; min-height: 52px; padding: 0 22px; border-radius: 10px;
	background: #fff; color: var(--tp-navy); font-weight: 600; font-size: clamp(17px, 1.6vw, 21px);
}
.tp-chips .elementor-icon-list-icon { display: none; }
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.tp-chips .elementor-icon-list-item { animation: tpSettle linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
		.tp-chips .elementor-icon-list-item:nth-child(1) { --x: -180px; --y: -60px; --r: -24deg; }
		.tp-chips .elementor-icon-list-item:nth-child(2) { --x: 160px; --y: 70px; --r: 19deg; }
		.tp-chips .elementor-icon-list-item:nth-child(3) { --x: -90px; --y: 90px; --r: 28deg; }
		.tp-chips .elementor-icon-list-item:nth-child(4) { --x: 140px; --y: -80px; --r: -17deg; }
		.tp-chips .elementor-icon-list-item:nth-child(5) { --x: -200px; --y: 50px; --r: -26deg; }
		.tp-chips .elementor-icon-list-item:nth-child(6) { --x: 90px; --y: -60px; --r: 12deg; }
		.tp-chips .elementor-icon-list-item:nth-child(7) { --x: -150px; --y: -40px; --r: 22deg; }
		.tp-chips .elementor-icon-list-item:nth-child(8) { --x: 180px; --y: 80px; --r: -20deg; }
		.tp-chips .elementor-icon-list-item:nth-child(9) { --x: -110px; --y: -90px; --r: 15deg; }
		.tp-chips .elementor-icon-list-item:nth-child(10) { --x: 120px; --y: 60px; --r: -28deg; }
		.tp-frame::before { animation: tpFrame linear both; animation-timeline: view(); animation-range: entry 10% cover 50%; }
	}
}
@keyframes tpSettle { from { transform: translate(var(--x, 0), var(--y, 0)) rotate(var(--r, 0)); } to { transform: none; } }

/* rounded frame that draws itself around the "you run the business" row */
.tp-frame { position: relative; border-radius: 40px; isolation: isolate; background: rgba(255, 255, 255, .05); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.tp-frame::before {
	content: ''; position: absolute; inset: 0; border-radius: inherit; border: 3px solid var(--tp-yel); pointer-events: none;
	box-shadow: 0 0 22px rgba(255, 195, 18, .35), inset 0 0 22px rgba(255, 195, 18, .1);
}
@keyframes tpFrame { from { clip-path: inset(100% 50% 0 50% round 40px); } to { clip-path: inset(0 0 0 0 round 40px); } }
@media (max-width: 767px) { .tp-frame { border-radius: 28px; } }

/* ---------- wavy yellow line and arrow ---------- */
.tp-wave-line {
	height: clamp(130px, 14vw, 200px); pointer-events: none;
	/* a yellow stroke runs along the wave on a loop (the animation lives inside the SVG) */
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 400' preserveAspectRatio='none'%3E%3Cstyle%3Epath{stroke-dasharray:.42 1.6;stroke-dashoffset:-1.05;animation:r 5s cubic-bezier(.45,0,.55,1) infinite}@keyframes r{from{stroke-dashoffset:-1.05}to{stroke-dashoffset:.47}}%3C/style%3E%3Cpath pathLength='1' d='M-40 220C120 120 280 120 440 220S760 320 920 220S1240 120 1480 220' fill='none' stroke='%23FFC312' stroke-width='12' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	filter: drop-shadow(0 0 16px rgba(255, 195, 18, .5));
}
.tp-who .tp-wave-line { width: 100vw !important; max-width: none !important; margin-inline: calc(50% - 50vw) !important; }
@media (prefers-reduced-motion: reduce) {
	.tp-wave-line { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 400' preserveAspectRatio='none'%3E%3Cpath d='M-40 220C120 120 280 120 440 220S760 320 920 220S1240 120 1480 220' fill='none' stroke='%23FFC312' stroke-width='12' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
}
.tp-down .elementor-icon { animation: tpBob 2.4s var(--tp-ease-io) infinite; filter: drop-shadow(0 0 12px rgba(255, 195, 18, .55)); }
@keyframes tpBob { 0%, 100% { transform: translateY(-6px); } 50% { transform: translateY(8px); } }

/* ---------- process road ---------- */
.tp-road { position: relative; }
.tp-road > .tp-road-line {
	position: absolute !important; top: 50%; left: 0; right: 0; height: 160px; transform: translateY(-50%) scaleX(-1); z-index: 0; pointer-events: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1350 160' preserveAspectRatio='none'%3E%3Cpath d='M0,80 C45,40 90,40 135,80 C225,160 315,160 405,80 C495,0 585,0 675,80 C765,160 855,160 945,80 C1035,0 1125,0 1215,80 C1260,120 1305,120 1350,80' fill='none' stroke='rgba(255,255,255,.08)' stroke-width='26' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0,80 C45,40 90,40 135,80 C225,160 315,160 405,80 C495,0 585,0 675,80 C765,160 855,160 945,80 C1035,0 1125,0 1215,80 C1260,120 1305,120 1350,80' fill='none' stroke='%23FFC312' stroke-width='4' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
	filter: drop-shadow(0 0 8px rgba(255, 195, 18, .6));
}
.tp-stop .elementor-heading-title {
	width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: var(--tp-yel); color: var(--tp-navy); border: 2px solid var(--tp-yel); direction: ltr;
	box-shadow: 0 0 0 8px var(--tp-navy), 0 0 26px rgba(255, 195, 18, .55);
}
.tp-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); border-radius: 20px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: border-color 300ms ease, transform 300ms var(--tp-ease); }
.tp-card h3 { font-size: 21px; line-height: 1.25; color: #fff; font-weight: 600; margin: 0 0 8px; }
.tp-card p { font-size: 17px !important; line-height: 1.55 !important; }
@media (hover: hover) and (pointer: fine) { .tp-card:hover { border-color: rgba(255, 195, 18, .45); transform: translateY(-4px); } }
.tp-step { display: grid !important; grid-template-rows: 1fr auto 1fr; justify-items: center; min-height: 620px; text-align: center; position: relative; z-index: 1; }
.tp-step > .tp-stop { grid-row: 2; }
.tp-step.tp-up > .tp-card { grid-row: 1; align-self: end; margin-bottom: 24px; }
.tp-step.tp-down > .tp-card { grid-row: 3; align-self: start; margin-top: 24px; }
@media (max-width: 1024px) {
	.tp-step { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 16px; min-height: 0; text-align: right; }
	.tp-step > .tp-card { margin: 0 !important; flex: 1; }
	.tp-road > .tp-road-line { display: none; }
	.tp-road::before { content: ''; position: absolute; top: 20px; bottom: 20px; right: 28px; border-right: 3px dashed rgba(255, 195, 18, .35); }
}

/* ---------- separators ---------- */
.tp-sep .elementor-divider-separator { border: 0 !important; height: 3px; border-radius: 3px; background: linear-gradient(90deg, transparent, var(--tp-yel) 18%, var(--tp-yel) 82%, transparent); box-shadow: 0 0 14px rgba(255, 195, 18, .45); }

/* ---------- work grid (loop item) ---------- */
.tp-wk { text-decoration: none; }
.tp-wk .tp-wk-img img { aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; transition: transform 700ms var(--tp-ease); }
.tp-wk .tp-wk-img { overflow: hidden; border-radius: 18px; }
.tp-wk-go .elementor-icon { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, .22); transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, transform 240ms var(--tp-ease); }
@media (hover: hover) and (pointer: fine) {
	.tp-wk:hover .tp-wk-img img { transform: scale(1.04); }
	.tp-wk:hover .tp-wk-go .elementor-icon { background: var(--tp-yel); border-color: var(--tp-yel); color: var(--tp-navy); transform: translateX(-4px); }
	.tp-wk:hover .tp-wk-go .elementor-icon svg { fill: var(--tp-navy); }
}
.tp-tabs .e-filter { display: inline-flex; flex-wrap: wrap; gap: 6px; padding: 6px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); }
.tp-tabs .e-filter-item { min-height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: transparent; color: rgba(255, 255, 255, .75); font: 600 16px 'TalentFS', system-ui, sans-serif; cursor: pointer; transition: background-color 200ms ease, color 200ms ease; }
.tp-tabs .e-filter-item[aria-pressed="true"] { background: var(--tp-yel) !important; color: var(--tp-navy) !important; }
.tp-tabs .e-filter-item:not([aria-pressed="true"]):hover { color: #fff !important; background: rgba(255, 255, 255, .08) !important; }

/* ---------- about: yellow morphing portrait card ---------- */
.tp-ab-card { position: relative; aspect-ratio: 1 / 1.08; border-radius: 58% 42% 46% 54% / 45% 52% 48% 55%; animation: tpMorph 12s ease-in-out infinite alternate; overflow: hidden; box-shadow: 0 40px 90px -40px rgba(255, 195, 18, .6); }
.tp-ab-card::before { content: ''; position: absolute; width: 70%; aspect-ratio: 1; border-radius: 50%; top: -12%; left: -18%; background: rgba(255, 255, 255, .22); }
.tp-ab-card .elementor-widget-image img { width: 112%; max-width: none; margin-bottom: -2%; }
.tp-ab-photo { position: relative; }
.tp-ab-photo::after {
	content: ''; position: absolute; inset: -5% -6% -3% -4%; border: 7px solid var(--tp-yel); border-radius: 46% 54% 60% 40% / 52% 40% 60% 48%;
	filter: drop-shadow(0 0 14px rgba(255, 195, 18, .55)); pointer-events: none; animation: tpMorph2 14s ease-in-out infinite alternate;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%); mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%);
}
.tp-cols p { margin: 0; }
@media (min-width: 768px) { .tp-cols { column-count: 2; column-gap: 24px; } .tp-cols p { break-inside: avoid; margin-bottom: 0; } }

/* ---------- testimonials carousel ---------- */
.tp-tq .elementor-testimonial { display: flex; flex-direction: column; align-items: center; gap: 26px; padding-top: 30px; text-align: center; }
.tp-tq .elementor-testimonial::before { content: ''; width: 56px; height: 4px; border-radius: 4px; background: var(--tp-yel); box-shadow: 0 0 14px rgba(255, 195, 18, .6); }
.tp-tq .elementor-testimonial__content { white-space: pre-line; }
.tp-tq .elementor-testimonial__footer { justify-content: center; }
.tp-tq .elementor-testimonial__image img { width: 46px !important; height: 46px !important; }
.tp-tq .swiper-pagination-fraction { position: static; margin-top: 30px; font-size: 16px; color: rgba(255, 255, 255, .6); direction: ltr; }
.tp-tq .swiper-pagination-current { color: var(--tp-yel); font-weight: 600; }
.tp-tq .elementor-swiper-button { width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); display: inline-flex; align-items: center; justify-content: center; color: #fff; transition: background-color 180ms ease, border-color 180ms ease; }
.tp-tq .elementor-swiper-button:hover { background: var(--tp-yel); border-color: var(--tp-yel); color: var(--tp-navy); }
.tp-tq .elementor-swiper-button svg { fill: currentColor; width: 18px; height: 18px; }
.tp-tq .swiper-autoheight .swiper-wrapper { align-items: flex-start; transition-property: transform, height; }
.tp-tq .swiper-autoheight .swiper-slide { height: auto; }
/* phones: the arrows move down beside the "3 / 12" counter so they don't cover the quote */
@media (max-width: 767px) {
	.tp-tq .elementor-swiper-button { top: auto !important; bottom: -6px; transform: none !important; width: 42px; height: 42px; }
	.tp-tq .elementor-swiper-button-prev { right: 18% !important; left: auto !important; }
	.tp-tq .elementor-swiper-button-next { left: 18% !important; right: auto !important; }
	.tp-tq .elementor-testimonial { padding-top: 18px; gap: 20px; }
}

/* ---------- AI section ---------- */
.tp-ai { border: 3px solid var(--tp-yel); border-radius: 40px; background: rgba(255, 255, 255, .02); box-shadow: 0 0 14px rgba(255, 195, 18, .45), inset 0 0 14px rgba(255, 195, 18, .12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
@media (max-width: 767px) { .tp-ai { border-radius: 28px; } }
.tp-xlist .elementor-icon-list-item { align-items: flex-start !important; gap: 14px; padding: 18px 20px !important; border-radius: 18px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); margin-bottom: 10px !important; }
.tp-xlist .elementor-icon-list-item::after { display: none !important; }
.tp-xlist .elementor-icon-list-icon { flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 195, 18, .16); display: flex; align-items: center; justify-content: center; margin-top: 4px; }
.tp-quote-box { padding: 30px 34px; border-radius: 26px; background: rgba(255, 195, 18, .1); border: 1px solid rgba(255, 195, 18, .35); }

/* ---------- contact block ---------- */
.tp-info .elementor-icon-list-icon { width: 44px; height: 44px; flex: none; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255, 195, 18, .1); border: 1px solid rgba(255, 195, 18, .25); }
.tp-info .elementor-icon-list-text { direction: ltr; unicode-bidi: plaintext; }
/* icon badges (circles and tiles): Elementor puts its icon-to-text spacing inside the badge as padding, which
   pushed the symbol off-centre and left the text touching the badge. The spacing goes between them instead. */
.tp-xlist .elementor-icon-list-icon, .tp-checks .elementor-icon-list-icon, .tp-gift .elementor-icon-list-icon, .tp-info .elementor-icon-list-icon { padding: 0 !important; }
.tp-xlist .elementor-icon-list-icon svg, .tp-checks .elementor-icon-list-icon svg, .tp-gift .elementor-icon-list-icon svg, .tp-info .elementor-icon-list-icon svg { margin: 0 !important; }
.tp-info .elementor-icon-list-item, .tp-info .elementor-icon-list-item > a { gap: 14px; }
.tp-checks .elementor-icon-list-item, .tp-gift .elementor-icon-list-item, .tp-checks .elementor-icon-list-item > a, .tp-gift .elementor-icon-list-item > a { gap: 10px; }
.tp-form .elementor-field-group .elementor-field-textual, .tp-form .elementor-field-group select { min-height: 52px; border-radius: 14px; transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }
.tp-form .elementor-field-textual:focus, .tp-form select:focus { border-color: var(--tp-yel) !important; box-shadow: 0 0 0 3px rgba(255, 195, 18, .3); background: rgba(255, 255, 255, .09) !important; outline: none; }
.tp-form .elementor-field-group select option { color: var(--tp-navy); }
.tp-form .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 12px; }
.tp-form .elementor-field-type-acceptance input { flex: none; width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--tp-yel); }
.tp-form .elementor-field-type-acceptance label { font-size: 15px; line-height: 1.5; color: rgba(255, 255, 255, .75); }
.tp-form .elementor-field-type-acceptance label a, .tp-form .elementor-field-type-html a { color: var(--tp-yel); text-decoration: underline; text-underline-offset: 3px; }
.tp-form .elementor-field-type-html { font-size: 15px; line-height: 1.55; color: rgba(255, 255, 255, .7); }
.tp-form .elementor-mark-required .elementor-field-label::after { color: currentColor; }
.tp-form .elementor-message { color: #fff; font-size: 18px; }

/* ---------- footer ---------- */
.tp-footer .elementor-nav-menu--layout-vertical .elementor-item { color: rgba(255, 255, 255, .8); font-size: 17px; padding: 1px 0 !important; }
.tp-footer .elementor-nav-menu--layout-vertical .elementor-item:hover { color: var(--tp-yel); }
.tp-footer .elementor-nav-menu--layout-vertical .elementor-item::before, .tp-footer .elementor-nav-menu--layout-vertical .elementor-item::after { display: none; }
.tp-legal .elementor-item { color: rgba(255, 255, 255, .6); font-size: 14px; padding: 4px 0 !important; }
.tp-legal .elementor-item:hover { color: #fff; }
.tp-legal .elementor-item::before, .tp-legal .elementor-item::after { display: none; }
.tp-social .elementor-social-icon { border: 1px solid rgba(255, 255, 255, .22); transition: background-color 180ms ease, border-color 180ms ease, transform 180ms var(--tp-ease); }
.tp-social .elementor-social-icon:hover { background: var(--tp-yel) !important; border-color: var(--tp-yel); transform: translateY(-2px); }
.tp-social .elementor-social-icon:hover svg { fill: var(--tp-navy) !important; }
.tp-up .elementor-button { background: transparent; border: 1px solid rgba(255, 255, 255, .18); color: #fff; font-size: 14px; padding: 12px 16px; }
.tp-up .elementor-button:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 195, 18, .6); color: #fff; box-shadow: none !important; }
.tp-up .elementor-button:hover .elementor-button-icon svg { transform: translateY(-3px); }

/* WhatsApp tab docked to the bottom edge */
.tp-wa { z-index: 60 !important; }
.tp-wa .elementor-button { display: inline-flex; align-items: center; justify-content: center; border-radius: 20px 20px 0 0; min-height: 58px; padding: 0 20px; box-shadow: 0 -10px 30px -12px rgba(14, 16, 67, .45); animation: tpWaUp 600ms var(--tp-ease) 1000ms backwards; }
.tp-wa .elementor-button:hover { transform: translateY(-4px); }
.tp-wa .elementor-button-icon svg { width: 26px !important; height: 26px !important; }
@keyframes tpWaUp { from { transform: translateY(100%); } }
@media (max-width: 767px) { .tp-wa .elementor-button { min-height: 52px; padding: 0 16px; } }

/* ---------- entrance motion: Elementor's fadeInUp, softened ---------- */
.elementor-element.animated.fadeInUp { animation-name: tpRise; animation-duration: 900ms !important; animation-timing-function: var(--tp-ease); }
@keyframes tpRise { from { opacity: 0; transform: translateY(22px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.elementor-invisible { visibility: visible !important; }
}

/* ==========================================================================
   Light pages (services, about, works, legal...)
   ========================================================================== */
.tp-crumbs, .tp-crumbs a { font-size: 15px !important; color: rgba(14, 16, 67, .55) !important; text-decoration: none; }
.tp-crumbs a:hover { color: var(--tp-navy) !important; }
.tp-crumbs p { display: flex; gap: 8px; flex-wrap: wrap; }

/* yellow pill with a plus: BRAND+ */
.tp-pill .elementor-heading-title { display: inline-flex; align-items: center; gap: 4px; min-height: 40px; padding: 0 18px; border-radius: 999px; background: var(--tp-yel); color: var(--tp-navy) !important; letter-spacing: .06em; direction: ltr; }
.tp-pill.tp-plus .elementor-heading-title::after { content: '+'; font-size: 1.1em; margin-top: -.3em; }

/* section heading with the yellow plus-line above it */
.tp-ash .elementor-heading-title::before {
	content: ''; display: block; width: 200px; height: 22px; margin: 0 0 20px auto;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 22'%3E%3Cg stroke='%23FFC312' stroke-width='3.4' stroke-linecap='round' fill='none'%3E%3Cpath d='M189 3v16M181 11h16'/%3E%3Cpath d='M3 11h168'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}
.tp-ash.tp-center .elementor-heading-title::before { margin: 0 auto 20px; }

/* service hero: crossfading photos in an organic frame */
.tp-shvis { position: relative; }
.tp-shvis::after {
	content: ''; position: absolute; inset: -4% -5% -3% -4%; border: 6px solid var(--tp-yel); border-radius: 46% 54% 60% 40% / 52% 40% 60% 48%;
	pointer-events: none; animation: tpMorph2 14s ease-in-out infinite alternate;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%); mask-image: linear-gradient(200deg, #000 0%, #000 55%, transparent 72%);
}
.tp-shimg { aspect-ratio: 1 / 1.05; border-radius: 58% 42% 46% 54% / 45% 52% 48% 55%; overflow: hidden; animation: tpMorph 12s ease-in-out infinite alternate; box-shadow: 0 40px 90px -40px rgba(14, 16, 67, .45); }

/* light project card */
.tp-wc { text-decoration: none; }
.tp-wc-img { position: relative; border-radius: 24px; overflow: hidden; background: #EEF0F7; isolation: isolate; box-shadow: 0 30px 60px -40px rgba(14, 16, 67, .45); }
.tp-wc-img img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform 900ms var(--tp-ease); }
.tp-wc-img::after { content: ''; position: absolute; inset: 0; background: rgba(14, 16, 67, .35); opacity: 0; transition: opacity 350ms ease; pointer-events: none; }
.tp-wc-go { position: absolute !important; top: 50%; left: 50%; z-index: 2; transform: translate(-50%, -50%) scale(.6); opacity: 0; transition: transform 420ms var(--tp-ease), opacity 260ms ease; width: auto !important; }
.tp-wc-go .elementor-icon { width: 72px; height: 72px; border-radius: 50%; background: var(--tp-yel); display: flex; align-items: center; justify-content: center; }
@media (hover: hover) and (pointer: fine) {
	.tp-wc:hover .tp-wc-img img { transform: scale(1.05); }
	.tp-wc:hover .tp-wc-img::after { opacity: 1; }
	.tp-wc:hover .tp-wc-go { transform: translate(-50%, -50%); opacity: 1; }
}

/* who it is for: soft yellow panel, numbered columns with plus icons */
.tp-fitbg { position: relative; border-radius: 40px; overflow: hidden; isolation: isolate; background: linear-gradient(160deg, #FFF3C9 0%, #FFE7A0 100%); }
.tp-fitbg::before {
	content: ''; position: absolute; inset: 0; z-index: -1; opacity: .5; pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cpath d='M28 22v12M22 28h12' stroke='%23F5B225' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	-webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 0%, transparent 75%); mask-image: radial-gradient(ellipse at 50% 40%, #000 0%, transparent 75%);
}
.tp-fit { counter-reset: fit; }
.tp-fit > .elementor-widget-icon-box { counter-increment: fit; position: relative; padding: 8px 36px; }
.tp-fit > .elementor-widget-icon-box + .elementor-widget-icon-box::before { content: ''; position: absolute; right: 0; top: 8px; bottom: 8px; width: 1px; background: rgba(14, 16, 67, .18); }
.tp-fit .elementor-icon-box-title::before { content: counter(fit, decimal-leading-zero); display: block; font-size: 14px; letter-spacing: .08em; color: #C98A00; margin-bottom: 6px; }
.tp-fit .elementor-icon { width: 64px; height: 64px; border-radius: 50%; background: var(--tp-navy); color: var(--tp-yel) !important; display: inline-flex; align-items: center; justify-content: center; transition: transform 420ms var(--tp-ease), background-color 260ms ease, color 260ms ease; }
.tp-fit .elementor-icon svg { fill: var(--tp-yel) !important; width: 24px; height: 24px; }
@media (hover: hover) and (pointer: fine) { .tp-fit .elementor-widget-icon-box:hover .elementor-icon { transform: rotate(90deg); background: var(--tp-yel); } .tp-fit .elementor-widget-icon-box:hover .elementor-icon svg { fill: var(--tp-navy) !important; } }
@media (max-width: 1024px) {
	.tp-fit > .elementor-widget-icon-box { padding: 28px 8px; }
	.tp-fit > .elementor-widget-icon-box + .elementor-widget-icon-box::before { top: 0; bottom: auto; left: 8px; right: 8px; width: auto; height: 1px; }
}

/* packages: navy cards */
.tp-pk { background: radial-gradient(500px 300px at 90% 0%, rgba(42, 54, 184, .45), transparent 70%), #0E1043; border-radius: 30px; box-shadow: 0 40px 80px -40px rgba(14, 16, 67, .7); transition: transform 300ms var(--tp-ease), box-shadow 300ms ease; }
@media (hover: hover) and (pointer: fine) { .tp-pk:hover { transform: translateY(-6px); } }
.tp-pk .tp-pl .elementor-heading-title { color: var(--tp-yel); font-size: 30px; letter-spacing: .12em; line-height: 30px; }
.tp-pk .tp-pkline { padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .14); }
.tp-pk .tp-checks .elementor-icon-list-icon { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--tp-yel); display: flex; align-items: center; justify-content: center; margin-top: 2px; }
.tp-pk .tp-checks .elementor-icon-list-icon svg { fill: var(--tp-navy) !important; width: 13px; height: 13px; }
.tp-pk .tp-checks .elementor-icon-list-item { align-items: flex-start !important; }
.tp-gift .elementor-icon-list-item { align-items: center !important; gap: 10px; padding: 12px 14px !important; border-radius: 16px; background: #fff; }
.tp-gift .elementor-icon-list-icon { flex: none; width: 32px; height: 32px; border-radius: 10px; background: var(--tp-yel); display: flex; align-items: center; justify-content: center; }
.tp-gift .elementor-icon-list-icon svg { fill: var(--tp-navy) !important; }
.tp-pk .tp-note b { color: var(--tp-yel); }

/* numbered steps on a line */
.tp-steps { position: relative; }
.tp-steps::before { content: ''; position: absolute; top: 30px; right: calc(50% / var(--cols, 6)); left: calc(50% / var(--cols, 6)); height: 3px; border-radius: 3px; background: linear-gradient(270deg, #FFC312, #F5B225); box-shadow: 0 0 14px rgba(255, 195, 18, .6); z-index: 0; }
.tp-steps > .e-con { position: relative; z-index: 1; }
.tp-n .elementor-heading-title { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--tp-yel); color: var(--tp-navy); direction: ltr; box-shadow: 0 0 0 8px #fff; }
.tp-step-l h3 { font-size: clamp(20px, 1.7vw, 24px); color: var(--tp-navy); line-height: 1.2; font-weight: 600; margin: 0 0 6px; }
.tp-step-l p { font-size: 17px !important; line-height: 1.5 !important; }
@media (max-width: 1024px) {
	.tp-steps::before { top: 0; bottom: 0; right: 29px; left: auto; width: 3px; height: auto; background: linear-gradient(180deg, #FFC312, #F5B225); }
	/* number beside the text (Elementor wraps containers on phones, which pushed the text under the number and over the line) */
	.tp-steps > .e-con { flex-direction: row !important; flex-wrap: nowrap !important; align-items: flex-start !important; text-align: right !important; gap: 20px !important; }
	.tp-steps > .e-con > .tp-n { flex: none; width: auto !important; }
	.tp-steps > .e-con > .elementor-widget-text-editor { flex: 1 1 auto; min-width: 0; text-align: right !important; }
}

/* big quote */
.tp-aq p { margin: 0; }
.tp-aq .elementor-widget-container::before, .tp-aq > p:first-child::before { content: none; }
.tp-aq-q::before { content: '\201D'; display: block; font-weight: 600; font-size: 1.9em; line-height: .6; color: var(--tp-yel); margin-bottom: 12px; text-align: center; }
.tp-aq-q b { font-weight: 600; }

/* FAQ (nested accordion) */
.tp-faq .e-n-accordion { gap: 12px; display: flex; flex-direction: column; }
.tp-faq .e-n-accordion-item { border-radius: 22px; background: #F6F7FB; border: 1px solid rgba(14, 16, 67, .08); overflow: hidden; transition: background-color 220ms ease, border-color 220ms ease; }
.tp-faq .e-n-accordion-item[open] { background: #fff; border-color: rgba(255, 195, 18, .9); box-shadow: 0 20px 40px -30px rgba(14, 16, 67, .35); }
.tp-faq .e-n-accordion-item-title { min-height: 72px; padding: 0 26px !important; border: 0 !important; background: none !important; }
.tp-faq .e-n-accordion-item-title-text { font-weight: 600; font-size: clamp(19px, 1.6vw, 22px); color: var(--tp-navy); }
.tp-faq .e-n-accordion-item-title-icon { width: 36px !important; min-width: 36px; height: 36px; border-radius: 50%; background: var(--tp-yel); display: flex !important; align-items: center; justify-content: center; flex: none; }
.tp-faq .e-n-accordion-item-title-icon span { display: flex; align-items: center; justify-content: center; }
.tp-faq .e-n-accordion-item-title-icon svg { fill: var(--tp-navy) !important; width: 14px !important; height: 14px !important; }
.tp-faq .e-n-accordion-item > .e-con { padding: 0 26px 24px !important; border: 0 !important; background: none !important; }

/* navy CTA band that runs into the footer */
.tp-wcta { border-radius: 48px 48px 0 0; background: radial-gradient(900px 500px at 85% 0%, rgba(42, 54, 184, .35), transparent 70%), #0E1043; }
@media (max-width: 767px) { .tp-wcta { border-radius: 32px 32px 0 0; } }
.tp-btn-o .elementor-button { background: transparent; border: 1px solid rgba(255, 255, 255, .3); color: #fff; }
.tp-btn-o .elementor-button:hover { background: rgba(255, 255, 255, .08); color: #fff; }

/* graphic design: what the retainer includes */
.tp-inc { background: #0E1043; border-radius: 36px; position: relative; overflow: hidden; }
.tp-inc::before { content: '+'; position: absolute; left: -30px; bottom: -120px; font-size: 420px; font-weight: 200; line-height: 1; color: rgba(255, 195, 18, .07); pointer-events: none; }
.tp-inclist .elementor-icon-list-item { padding: 26px 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.tp-numlist { counter-reset: inc; }
.tp-numrow { counter-increment: inc; display: grid !important; grid-template-columns: 72px minmax(0, 1fr); gap: 20px; align-items: baseline; padding: 26px 0; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.tp-numrow:last-child { border-bottom: 0; }
.tp-numrow::before { content: counter(inc, decimal-leading-zero); grid-row: 1 / span 2; font-weight: 600; font-size: 40px; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px #F5B225; direction: ltr; }
.tp-numrow > h3, .tp-numrow > p, .tp-numrow > .elementor-widget-container { grid-column: 2; }
.tp-numrow h3 { margin: 0 0 6px; font-weight: 600; font-size: 24px; color: #fff; }
.tp-numrow p { margin: 0; color: rgba(255, 255, 255, .72) !important; }
@media (max-width: 767px) { .tp-numrow { grid-template-columns: 52px minmax(0, 1fr); } .tp-numrow::before { font-size: 30px; } }
/* project story: a yellow line runs from each chapter number down to the next */
.tp-chapters .tp-numrow { position: relative; border-bottom: 0; }
.tp-chapters .tp-numrow:not(:last-child)::after {
	content: ''; position: absolute; right: 48px; top: 80px; bottom: -18px; width: 3px; border-radius: 2px; /* under the centre of the number (left-aligned in its 72px column) */
	background: linear-gradient(180deg, #FFC312, rgba(255, 195, 18, .35)); transform-origin: top; animation: tpChLine 900ms var(--tp-ease) 350ms backwards;
}
@keyframes tpChLine { from { transform: scaleY(0); } }
@media (max-width: 767px) { .tp-chapters .tp-numrow:not(:last-child)::after { right: 34px; top: 68px; } }
@media (prefers-reduced-motion: reduce) { .tp-chapters .tp-numrow::after { animation: none; } }

/* inset panels: side margins come out of the width instead of pushing the panel off-centre */
.tp-fitbg, .tp-navybox { max-width: calc(100% - 48px) !important; margin-inline: auto !important; }
@media (max-width: 767px) { .tp-fitbg, .tp-navybox { max-width: calc(100% - 24px) !important; } }

/* footer band */
.tp-footer-band { background: #0E1043; }
body.home .tp-footer-band, body.single-project .tp-footer-band, body.tp-dark-page .tp-footer-band { background: transparent; }
body.home .tp-footer, body.single-project .tp-footer, body.tp-dark-page .tp-footer { margin-top: 48px !important; border-top: 1px solid rgba(255, 255, 255, .1); }

/* ---------- about ---------- */
.tp-kick .elementor-heading-title { display: inline-flex; align-items: center; gap: 10px; }
.tp-kick .elementor-heading-title::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--tp-yel); box-shadow: 0 0 0 6px rgba(255, 195, 18, .22); }
.tp-photos .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 28px; }
@media (min-width: 768px) { .tp-photos > .elementor-widget-image:nth-child(2) { margin-top: 40px; } }
.tp-stl .elementor-icon-list-items { justify-content: center; gap: 10px; }
.tp-stl .elementor-icon-list-item { margin: 0 !important; padding: 0 18px !important; min-height: 50px; border-radius: 999px; background: #fff; border: 1px solid rgba(14, 16, 67, .12); box-shadow: 0 14px 30px -24px rgba(14, 16, 67, .5); transition: border-color 220ms ease; }
.tp-stl .elementor-icon-list-item::after { display: none !important; }
.tp-stl .elementor-icon-list-item:last-child { background: var(--tp-yel); border-color: var(--tp-yel); }
.tp-stl .elementor-icon-list-item:last-child svg { fill: var(--tp-navy) !important; }
.tp-stl .elementor-icon-list-icon svg { transition: transform 420ms var(--tp-ease); }
@media (hover: hover) and (pointer: fine) { .tp-stl .elementor-icon-list-item:hover { border-color: rgba(255, 195, 18, .9); } .tp-stl .elementor-icon-list-item:hover svg { transform: rotate(90deg); } }
.tp-navybox { border-radius: 40px; background: radial-gradient(800px 500px at 85% 0%, rgba(42, 54, 184, .45), transparent 70%), #0E1043; }
@media (max-width: 767px) { .tp-navybox { border-radius: 28px; } }
.tp-qs .elementor-icon-list-item { gap: 12px; padding: 8px 4px !important; border-bottom: 1px solid rgba(255, 255, 255, .14); }
.tp-qs .elementor-icon-list-item:first-child { border-top: 1px solid rgba(255, 255, 255, .14); }
.tp-qs .elementor-icon-list-item::after { display: none !important; }
.tp-qs .elementor-icon-list-icon { display: none; }
.tp-qs .elementor-icon-list-item::before { content: '?'; flex: none; width: 34px; font-weight: 600; font-size: 46px; line-height: 1; color: transparent; -webkit-text-stroke: 1.6px var(--tp-yel); transition: color 300ms ease; }
@media (hover: hover) and (pointer: fine) { .tp-qs .elementor-icon-list-item:hover::before { color: var(--tp-yel); } }
.tp-path { border-radius: 32px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.tp-choice .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 767px) { .tp-choice .elementor-icon-list-items { grid-template-columns: minmax(0, 1fr); } }
.tp-choice .elementor-icon-list-item { gap: 16px; padding: 22px 24px !important; margin: 0 !important; border-radius: 22px; background: rgba(255, 255, 255, .06); border: 1.5px solid rgba(255, 255, 255, .14); animation: tpPick 9.6s ease-in-out infinite; }
.tp-choice .elementor-icon-list-item::after { display: none !important; }
.tp-choice .elementor-icon-list-item:nth-child(2) { animation-delay: 2.4s; }
.tp-choice .elementor-icon-list-item:nth-child(3) { animation-delay: 4.8s; }
.tp-choice .elementor-icon-list-item:nth-child(4) { animation-delay: 7.2s; }
@keyframes tpPick { 0%, 20%, 100% { border-color: rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .06); } 5%, 15% { border-color: var(--tp-yel); background: rgba(255, 195, 18, .12); } }
.tp-sig b { font-size: 24px; color: #fff; display: block; }
.tp-sig span { font-size: 16px; color: rgba(255, 255, 255, .6); direction: ltr; display: block; }
.tp-sig em { font-style: normal; font-weight: 600; color: var(--tp-yel); font-size: 18px; display: block; margin-top: 6px; }
.tp-dim-list ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }

/* ---------- centered page header (works, testimonials, contact, thank-you) ---------- */
.tp-hero-c .elementor-heading-title::before {
	content: ''; display: block; width: 200px; height: 22px; margin: 0 auto 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 22'%3E%3Cg stroke='%23FFC312' stroke-width='3.4' stroke-linecap='round' fill='none'%3E%3Cpath d='M189 3v16M181 11h16'/%3E%3Cpath d='M3 11h168'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}

/* contact ways: icon tile + small label + bold value */
.tp-cway { border-radius: 24px; background: #F6F7FB; border: 1px solid rgba(14, 16, 67, .08); padding: 20px 22px; transition: transform 260ms var(--tp-ease), border-color 220ms ease, background-color 220ms ease; }
.tp-cway .elementor-icon-box-wrapper { align-items: center; gap: 16px; }
.tp-cway .elementor-icon-box-icon { margin: 0 !important; }
.tp-cway .elementor-icon { width: 52px; height: 52px; border-radius: 16px; background: var(--tp-navy); display: flex; align-items: center; justify-content: center; transition: transform 260ms var(--tp-ease); }
.tp-cway .elementor-icon svg { fill: var(--tp-yel) !important; width: 22px; height: 22px; }
.tp-cway .elementor-icon-box-content { display: flex; flex-direction: column-reverse; }
.tp-cway .elementor-icon-box-title { margin: 0 !important; }
.tp-cway .elementor-icon-box-title a, .tp-cway .elementor-icon-box-title span { color: var(--tp-navy); }
.tp-cway.tp-ltr-title .elementor-icon-box-title { direction: ltr; text-align: right; unicode-bidi: plaintext; }
@media (hover: hover) and (pointer: fine) { .tp-cway:hover { transform: translateY(-3px); border-color: rgba(255, 195, 18, .9); background: #fff; } .tp-cway:hover .elementor-icon { transform: rotate(-8deg) scale(1.05); } }
.tp-cway.tp-static:hover { transform: none; border-color: rgba(14, 16, 67, .08); background: #F6F7FB; }

/* navy contact panel */
.tp-cpanel { border-radius: 32px; background: radial-gradient(700px 400px at 90% 0%, rgba(42, 54, 184, .4), transparent 70%), #0E1043; box-shadow: 0 50px 100px -50px rgba(14, 16, 67, .6); overflow: hidden; }
@media (max-width: 767px) { .tp-cpanel { border-radius: 26px; } }

/* testimonials wall (masonry with CSS columns) */
/* testimonials wall: a grid read row by row (1, 2, 3 across), packed into a masonry by the script under it */
.tp-wall { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 48px 44px; align-items: start; }
.tp-wall.mas { row-gap: 0; grid-auto-rows: 4px; }
.tp-wall > .elementor-widget { margin: 0 !important; width: auto !important; }
@media (max-width: 700px) { .tp-wall { row-gap: 28px; } }
.tp-tqcard { border-radius: 28px; background: #F6F7FB; border: 1px solid rgba(14, 16, 67, .08); padding: 30px 28px 24px; transition: transform 300ms var(--tp-ease), border-color 240ms ease, background-color 240ms ease, box-shadow 300ms ease; }
.tp-tqcard .elementor-testimonial-wrapper { text-align: right !important; }
.tp-tqcard .elementor-testimonial-content { white-space: pre-line; overflow-wrap: anywhere; }
.tp-tqcard .elementor-testimonial-content::before { content: '\201D'; display: block; direction: rtl; text-align: right; font-weight: 600; font-size: 64px; line-height: .6; color: var(--tp-yel); margin-bottom: 14px; }
.tp-tqcard .elementor-testimonial-content { text-align: right; }
.tp-tqcard .elementor-testimonial-meta { margin-top: 18px !important; padding-top: 18px; border-top: 1px solid rgba(14, 16, 67, .1); }
.tp-tqcard .elementor-testimonial-meta-inner { justify-content: flex-start; }
.tp-tqcard .elementor-testimonial-name a { color: inherit; text-decoration: underline; text-decoration-color: var(--tp-yel); text-underline-offset: 5px; }
@media (hover: hover) and (pointer: fine) { .tp-tqcard:hover { transform: translateY(-4px); background: #fff; border-color: rgba(255, 195, 18, .8); box-shadow: 0 30px 60px -36px rgba(14, 16, 67, .45); } }
.tp-tqcard.tp-dark-card { background: radial-gradient(500px 300px at 90% 0%, rgba(42, 54, 184, .45), transparent 70%), #0E1043; border-color: transparent; }
.tp-tqcard.tp-dark-card .elementor-testimonial-content { color: rgba(255, 255, 255, .88) !important; }
.tp-tqcard.tp-dark-card .elementor-testimonial-name { color: #fff !important; }
.tp-tqcard.tp-dark-card .elementor-testimonial-job { color: rgba(255, 255, 255, .6) !important; }
.tp-tqcard.tp-dark-card .elementor-testimonial-meta { border-top-color: rgba(255, 255, 255, .14); }
.tp-softbox { border-radius: 36px; background: #FFF6D6; border: 1px solid rgba(245, 178, 37, .4); }

/* works page filter: white pill group, navy active */
.tp-tabs-light .e-filter { display: inline-flex; flex-wrap: nowrap; overflow-x: auto; max-width: 100%; gap: 8px; padding: 8px; border-radius: 999px; background: rgba(255, 255, 255, .86); border: 1px solid rgba(14, 16, 67, .1); box-shadow: 0 16px 40px -24px rgba(14, 16, 67, .35); scrollbar-width: none; }
.tp-tabs .e-filter-item, .tp-tabs-light .e-filter-item { border-radius: 999px !important; }
.tp-tabs-light .e-filter-item { flex: none; min-height: 56px; padding: 0 26px; border: 0; background: transparent !important; color: var(--tp-navy) !important; font: 600 20px/1 'TalentFS', system-ui, sans-serif; cursor: pointer; }
.tp-tabs-light .e-filter-item[aria-pressed="true"] { background: var(--tp-navy) !important; color: #fff !important; }
.tp-tabs-light .e-filter-item:not([aria-pressed="true"]):hover { background: rgba(14, 16, 67, .06) !important; }
@media (max-width: 767px) {
	/* on phones the categories wrap into two tidy centred rows inside a rounded panel */
	.tp-tabs-light .e-filter { flex-wrap: wrap !important; justify-content: center; gap: 4px !important; row-gap: 4px !important; border-radius: 28px; padding: 6px; }
	.tp-tabs-light .e-filter-item { min-height: 42px; padding: 0 14px !important; font-size: 16px; }
}

/* thank-you check and 404 number */
.tp-tycheck .elementor-icon { width: 112px; height: 112px; border-radius: 50%; background: var(--tp-yel); display: flex; align-items: center; justify-content: center; box-shadow: 0 30px 60px -24px rgba(245, 178, 37, .7); animation: tpPop 700ms var(--tp-ease) 100ms backwards; }
.tp-tycheck .elementor-icon svg { fill: var(--tp-navy) !important; width: 52px; height: 52px; }
@keyframes tpPop { from { transform: scale(.4); opacity: 0; } }
.tp-nf .elementor-heading-title { direction: ltr; letter-spacing: -.04em; }
.tp-nf .elementor-heading-title b { display: inline-flex; align-items: center; justify-content: center; width: .78em; height: .78em; border-radius: 50%; background: var(--tp-yel); color: var(--tp-navy); font-size: .5em; vertical-align: middle; box-shadow: 0 30px 60px -24px rgba(245, 178, 37, .7); margin: 0 .08em; }

/* footer band: rounded top on light pages, unless the page already ends with the navy CTA band */
body:not(.home):not(.single-project):not(.tp-dark-page) .tp-footer-band { border-radius: 48px 48px 0 0; margin-top: 90px; }
body:has(.tp-wcta) .tp-footer-band { border-radius: 0 !important; margin-top: 0 !important; }
@media (max-width: 767px) { body:not(.home):not(.single-project):not(.tp-dark-page) .tp-footer-band { border-radius: 32px 32px 0 0; } }

/* ---------- project pages ---------- */
.tp-pcrumbs .elementor-icon-list-item:not(:last-child)::after { content: '/'; position: static !important; border: 0 !important; height: auto !important; width: auto !important; margin-inline-start: 8px; color: rgba(255, 255, 255, .4); }
.tp-pcrumbs .elementor-icon-list-text { font-size: 15px; color: rgba(255, 255, 255, .6); }
.tp-pcrumbs a .elementor-icon-list-text { color: rgba(255, 255, 255, .78); }
.tp-meta { border-radius: 24px; }
.tp-meta > .e-con + .e-con { border-right: 1px solid rgba(255, 255, 255, .14); }
@media (max-width: 767px) { .tp-meta > .e-con + .e-con { border-right: 0; border-top: 1px solid rgba(255, 255, 255, .14); } }
.tp-cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 28px; display: block; }
.tp-cover.tp-fit img { object-fit: contain; }
.tp-cover.tp-fit { border-radius: 28px; overflow: hidden; }
.tp-lap { max-width: 980px; margin-inline: auto; width: 100%; }
.tp-lap, .tp-lapscreen { flex-wrap: nowrap !important; } /* Elementor wraps columns on phones, which collapsed the screen to zero height */
.tp-lap::after { content: ''; display: block; height: 18px; margin: 0 -6%; border-radius: 0 0 22px 22px; background: linear-gradient(#d9dcee, #9da2c4); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6); }
.tp-lapscreen { background: #15183F; border: 1px solid rgba(255, 255, 255, .12); border-bottom: 0; border-radius: 20px 20px 0 0; padding: 10px 12px 0 !important; }
.tp-lapbar .elementor-heading-title { display: flex; align-items: center; gap: 10px; direction: ltr; font-size: 13px !important; color: rgba(255, 255, 255, .6) !important; padding: 0 4px 10px; }
.tp-lapbar .elementor-heading-title::before { content: ''; flex: none; width: 44px; height: 10px; background: radial-gradient(circle at 5px 5px, #FF5F57 4px, transparent 4.5px), radial-gradient(circle at 20px 5px, #FEBC2E 4px, transparent 4.5px), radial-gradient(circle at 35px 5px, #28C840 4px, transparent 4.5px); }
/* the full-page screenshot scrolls down the screen and back up, pausing at each end (paused on hover) */
.tp-lapview { position: relative; overflow: hidden; background: #fff; border-radius: 8px 8px 0 0; }
.tp-lapview::before { content: ''; display: block; padding-top: 62.5%; } /* 16:10 screen; padding keeps its height inside flex columns */
.tp-lapview img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 0; animation: tpLapScroll 30s cubic-bezier(.45, 0, .55, 1) infinite; }
.tp-lap:hover .tp-lapview img { animation-play-state: paused; }
@keyframes tpLapScroll { 0%, 6% { object-position: 50% 0; } 80%, 90% { object-position: 50% 100%; } 100% { object-position: 50% 0; } }
@media (prefers-reduced-motion: reduce) { .tp-lapview { overflow-y: auto; } .tp-lapview img { bottom: auto; height: auto; object-fit: fill; animation: none; } }

/* boxes centred with "auto" side margins (Elementor drops auto, see el.js) */
.tp-mx-auto { margin-inline: auto !important; }

/* floating back-to-top button, shown after scrolling down */
.tp-totop {
	position: fixed; left: 30px; bottom: 30px; z-index: 61; width: 54px; height: 54px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .9);
	background: #0E1043; color: #FFC312; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
	box-shadow: 0 14px 30px -10px rgba(14, 16, 67, .55); opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity 220ms ease, transform 220ms ease, visibility 0s linear 220ms;
}
.tp-totop.on { opacity: 1; visibility: visible; transform: none; transition: opacity 220ms ease, transform 220ms ease; }
/* override the kit's global button look */
button.tp-totop, button.tp-totop:hover, button.tp-totop:focus { background: #0E1043 !important; color: #FFC312 !important; border: 2px solid rgba(255, 255, 255, .9) !important; border-radius: 50% !important; padding: 0 !important; min-height: 0 !important; }
.tp-totop svg { display: block; width: 24px !important; height: 24px !important; flex: none; }
.tp-totop:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(255, 195, 18, .7); }
@media (hover: hover) and (pointer: fine) { .tp-totop:hover { transform: translateY(-3px); } }
@media (max-width: 767px) { .tp-totop { left: 16px; bottom: 16px; width: 50px; height: 50px; } }

/* course: the standing figure between the text and the learning path */
.ci-appr-fig img { height: clamp(380px, 38vw, 520px); width: auto !important; max-width: none; filter: drop-shadow(0 26px 24px rgba(42, 38, 48, .16)); }
@media (max-width: 1024px) { .ci-appr-fig { order: -1; } .ci-appr-fig img { height: 320px; } }

/* brand view vs. web view (#web) of projects that have both */
.tp-js { display: none !important; }
body:not(.tp-v-web) .tp-only-web, body.tp-v-web .tp-only-brand { display: none !important; }
.tp-pq { border-radius: 32px; }
.tp-pq .elementor-widget-text-editor p { white-space: pre-line; }
.tp-gal .elementor-gallery-item, .tp-gal .e-gallery-image { border-radius: 22px; overflow: hidden; }
.tp-pn .elementor-post-navigation { gap: 16px; }
.tp-pn .elementor-post-navigation__link { border-radius: 22px; background: var(--tp-glass); border: 1px solid var(--tp-glass-b); padding: 18px 22px; }
.tp-pn .post-navigation__prev--label, .tp-pn .post-navigation__next--label { font-size: 14px; color: rgba(255, 255, 255, .6); display: block; }
.tp-pn .post-navigation__prev--title, .tp-pn .post-navigation__next--title { font-size: 20px; font-weight: 600; color: #fff; }

/* ==========================================================================
   CREATE IT! course (its own sub-brand: red, yellow, cream, Bebas Neue numbers)
   ========================================================================== */
.ci-page { --ci-ink: #2A2630; --ci-text: #4A4552; --ci-yel: #FAC011; --ci-red: #C8321F; --ci-red2: #FDE3DF; --ci-cream: #FFF8E6; --ci-peach: #F2683C; }
.ci-page .elementor-heading-title em, .ci-page .elementor-heading-title b.ci-em { font-style: normal; font-weight: inherit; color: var(--ci-red); }
.ci-mark { font-family: 'Bebas Neue', 'TalentFS', sans-serif; font-weight: 400; font-size: 1.25em; line-height: 1; color: var(--ci-red); direction: ltr; unicode-bidi: isolate; white-space: nowrap; letter-spacing: .02em; }
.ci-btn .elementor-button { background: var(--ci-red); color: #fff; min-height: 58px; font-size: 19px; border: 2px solid var(--ci-red); }
.ci-btn .elementor-button:hover { background: #A92716; color: #fff; box-shadow: none !important; transform: translateY(-3px); }
.ci-btn-o .elementor-button { background: transparent; color: var(--ci-red); min-height: 58px; font-size: 19px; border: 2px solid var(--ci-red); }
.ci-btn-o .elementor-button:hover { background: var(--ci-red2); color: var(--ci-red); box-shadow: none !important; }

/* animated logo: yellow wipe, red drop, dot pop, plus spin */
.ci-logo { position: relative; width: min(420px, 100%); aspect-ratio: 946 / 297; direction: ltr; }
.ci-logo > .elementor-widget-image { position: absolute !important; margin: 0 !important; }
.ci-logo > .elementor-widget-image img { width: 100%; height: auto; display: block; }
.ci-logo .ci-l-yel, .ci-logo .ci-l-red { inset: 0; width: 100% !important; }
.ci-logo .ci-l-yel { animation: ciLoopY 8s cubic-bezier(.65, 0, .35, 1) .2s infinite both; }
.ci-logo .ci-l-red { animation: ciLoopR 8s ease .2s infinite both; }
.ci-logo .ci-l-dot { left: 76.64%; top: 3.7%; width: 4.02% !important; animation: ciLoopD 8s ease .2s infinite both; }
.ci-logo .ci-l-plus { left: 89.32%; top: 0; width: 10.68% !important; transform-origin: 56% 47%; animation: ciLoopP 8s ease .2s infinite both; }
@keyframes ciLoopY { 0% { clip-path: inset(0 100% 0 0); } 16%, 88% { clip-path: inset(0 0 0 0); } 97%, 100% { clip-path: inset(0 0 0 100%); } }
@keyframes ciLoopR { 0%, 12% { opacity: 0; transform: translateY(-34%); } 20% { opacity: 1; transform: translateY(4%); } 24%, 88% { opacity: 1; transform: none; } 95%, 100% { opacity: 0; transform: translateY(10%); } }
@keyframes ciLoopD { 0%, 22% { opacity: 0; transform: scale(0); } 27% { opacity: 1; transform: scale(1.3); } 30%, 88% { opacity: 1; transform: scale(1); } 94%, 100% { opacity: 0; transform: scale(0); } }
@keyframes ciLoopP { 0%, 28% { opacity: 0; transform: scale(0) rotate(-180deg); } 37% { opacity: 1; transform: scale(1.15) rotate(10deg); } 41% { transform: scale(1) rotate(0); } 55% { transform: scale(1.18) rotate(0); } 62%, 88% { opacity: 1; transform: scale(1) rotate(0); } 95%, 100% { opacity: 0; transform: scale(0) rotate(180deg); } }

.ci-chip .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--ci-red); }
.ci-chip .elementor-heading-title::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ci-red); }
.ci-kick .elementor-heading-title { letter-spacing: .08em; }

/* yellow stats strip */
.ci-strip .elementor-heading-title { display: flex; align-items: center; justify-content: center; gap: 14px; font-weight: 600; }
.ci-strip .elementor-heading-title b { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: clamp(48px, 4.8vw, 66px); line-height: 1; padding-top: 4px; direction: ltr; color: #fff; -webkit-text-stroke: 2px var(--ci-red); paint-order: stroke fill; }
.ci-strip > .elementor-widget + .elementor-widget { border-right: 2px solid rgba(255, 255, 255, .7); }
@media (max-width: 767px) { .ci-strip > .elementor-widget + .elementor-widget { border-right: 0; border-top: 2px solid rgba(255, 255, 255, .7); } .ci-strip .elementor-heading-title { justify-content: flex-start; } }

/* pain: notes with plus badges, red punch box */
.ci-note { position: relative; padding: 44px 28px 30px !important; background: #fff; border-radius: 24px; border: 2px solid var(--ci-yel); overflow: visible !important; }
.ci-note::before { content: '+'; position: absolute; top: -24px; right: 24px; width: 48px; height: 48px; border-radius: 50%; background: var(--ci-red); color: #fff; font-family: 'Bebas Neue', sans-serif; font-size: 40px; line-height: 52px; text-align: center; }
.ci-note:nth-child(2)::before { background: var(--ci-yel); color: var(--ci-ink); }
@media (min-width: 1025px) { .ci-note:nth-child(2) { margin-top: 30px; } }
.ci-punch { border-radius: 32px; }
.ci-punch .elementor-icon { width: 72px; height: 72px; border-radius: 50%; background: var(--ci-yel); display: flex; align-items: center; justify-content: center; }
.ci-punch .elementor-icon svg { fill: var(--ci-ink) !important; }
.ci-punch p > span { display: block; font-weight: 200; font-size: .82em; color: rgba(255, 255, 255, .92); margin-top: 8px; }
.ci-punch .ci-mark { color: var(--ci-yel); }

/* approach: numbered pills */
.ci-flow .elementor-icon-list-items { counter-reset: f; display: flex; flex-direction: column; gap: 14px; }
.ci-flow .elementor-icon-list-item { counter-increment: f; gap: 18px; padding: 12px 22px !important; margin: 0 !important; border-radius: 999px; border: 2px solid var(--ci-red); background: #fff; }
.ci-flow .elementor-icon-list-item::after { display: none !important; }
.ci-flow .elementor-icon-list-icon { display: none; }
.ci-flow .elementor-icon-list-item::before { content: counter(f); flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--ci-yel); display: flex; align-items: center; justify-content: center; font-family: 'Bebas Neue', sans-serif; font-size: 32px; line-height: 1; padding-top: 3px; color: var(--ci-ink); }
.ci-flow .elementor-icon-list-item:nth-child(3) { background: var(--ci-red); }
.ci-flow .elementor-icon-list-item:nth-child(3) .elementor-icon-list-text { color: #fff !important; }
.ci-flow .elementor-icon-list-item:nth-child(3)::before { background: #fff; color: var(--ci-red); }
@media (min-width: 768px) { .ci-flow .elementor-icon-list-item:nth-child(2) { margin-right: 36px !important; } .ci-flow .elementor-icon-list-item:nth-child(3) { margin-right: 72px !important; } }

/* learning path on yellow: alternating cards along a dashed red line */
.ci-meta .elementor-heading-title { display: inline-flex; align-items: center; gap: 12px; min-height: 60px; padding: 0 24px; border-radius: 999px; background: #fff; }
.ci-meta .elementor-heading-title b { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 44px; line-height: 1; padding-top: 4px; color: var(--ci-red); }
.ci-track { position: relative; }
.ci-track::before { content: ''; position: absolute; top: 40px; bottom: 40px; right: 50%; border-right: 4px dashed var(--ci-red); transform: translateX(2px); opacity: .75; }
.ci-stop { display: grid !important; grid-template-columns: minmax(0, 1fr) 130px minmax(0, 1fr); align-items: center; }
.ci-stop > .ci-num { grid-column: 2; grid-row: 1; justify-self: center; z-index: 1; }
.ci-stop > .ci-card { grid-row: 1; grid-column: 1; }
.ci-stop.ci-alt > .ci-card { grid-column: 3; }
.ci-num .elementor-heading-title { width: 130px; height: 130px; border-radius: 50%; background: #fff; color: var(--ci-red); display: flex; align-items: center; justify-content: center; font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 80px; line-height: 1; padding-top: 8px; border: 3px solid var(--ci-red); }
.ci-alt .ci-num .elementor-heading-title { background: var(--ci-red); color: #fff !important; border-color: #fff; }
.ci-card { background: #fff; border-radius: 28px; padding: 32px 32px 30px !important; box-shadow: 0 26px 50px -36px rgba(120, 80, 0, .6); }
.ci-card .ci-tag { display: inline-block; font-weight: 600; font-size: 14px; letter-spacing: .06em; color: var(--ci-red); border: 1.5px solid var(--ci-red); padding: 2px 12px; border-radius: 999px; margin-bottom: 10px; }
.ci-card h3 { font-weight: 600; font-size: clamp(25px, 2.3vw, 32px); line-height: 1.15; color: var(--ci-ink); margin: 0 0 10px; }
@media (max-width: 767px) {
	.ci-track::before { right: 38px; }
	.ci-stop { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: start; }
	.ci-stop > .ci-num { grid-column: 1; }
	.ci-stop > .ci-card, .ci-stop.ci-alt > .ci-card { grid-column: 2; padding: 24px 22px !important; }
	.ci-num .elementor-heading-title { width: 76px; height: 76px; font-size: 46px; }
}

/* outcomes and format cards */
.ci-out { border-radius: 26px; background: var(--ci-cream); border: 2px solid transparent; padding: 30px 28px !important; transition: border-color 220ms ease; }
.ci-out:hover { border-color: var(--ci-yel); }
.ci-out .elementor-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--ci-red); display: flex; align-items: center; justify-content: center; }
.ci-out .elementor-icon svg { fill: #fff !important; width: 22px; height: 22px; }
.ci-out:nth-child(even) .elementor-icon { background: var(--ci-yel); }
.ci-out:nth-child(even) .elementor-icon svg { fill: var(--ci-ink) !important; }
@media (min-width: 1025px) { .ci-outs { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; } .ci-outs > .ci-out { grid-column: span 2; } .ci-outs > .ci-out:nth-child(4) { grid-column: 2 / span 2; } }
.ci-fmt { border-radius: 30px; padding: 30px 30px 32px !important; background: #fff; border: 2px solid var(--ci-red); }
.ci-fmt:nth-child(2) { background: var(--ci-yel); border-color: var(--ci-yel); }
.ci-fmt:nth-child(3) { background: var(--ci-red); border-color: var(--ci-red); }
.ci-fmt:nth-child(3) .elementor-heading-title, .ci-fmt:nth-child(3) .elementor-widget-text-editor { color: #fff !important; }
.ci-bignum .elementor-heading-title { font-family: 'Bebas Neue', sans-serif !important; font-weight: 400 !important; font-size: clamp(100px, 10vw, 150px) !important; line-height: .85 !important; padding-top: 10px; direction: ltr; text-align: right; color: transparent !important; -webkit-text-stroke: 2.5px var(--ci-red); }
.ci-fmt:nth-child(2) .ci-bignum .elementor-heading-title { color: #fff !important; -webkit-text-stroke: 0; }
.ci-fmt:nth-child(3) .ci-bignum .elementor-heading-title { -webkit-text-stroke: 2.5px #fff; }
.ci-mode { border-radius: 999px; border: 2px dashed var(--ci-yel); }
@media (max-width: 767px) { .ci-mode { border-radius: 24px; } }

/* about: arch photo with badge */
.ci-arch { position: relative; aspect-ratio: 1 / 1.12; border-radius: 999px 999px 0 0; background: var(--ci-peach); overflow: hidden; }
.ci-arch::after { content: ''; position: absolute; inset: 18px 18px 0; border: 2px solid #fff; border-bottom: 0; border-radius: 999px 999px 0 0; opacity: .7; pointer-events: none; }
.ci-arch .elementor-widget-image img { width: 84%; margin-inline: auto; display: block; }
.ci-badge { position: absolute !important; bottom: -18px; left: -12px; z-index: 2; background: #fff; border: 2px solid var(--ci-yel); border-radius: 22px; padding: 12px 20px; width: auto !important; }
.ci-badge .elementor-heading-title b { display: block; font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 56px; color: var(--ci-red); line-height: .9; padding-top: 6px; }

/* registration on red */
.ci-reg { position: relative; overflow: hidden; }
.ci-reg::before { content: ''; position: absolute; width: 560px; height: 560px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .18); right: -180px; top: -200px; pointer-events: none; }
.ci-facts .elementor-icon-list-item { justify-content: space-between; padding: 16px 20px !important; margin-bottom: 12px !important; border-radius: 18px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .25); }
.ci-facts .elementor-icon-list-item::after { display: none !important; }
.ci-facts .elementor-icon-list-icon { display: none; }
.ci-facts .elementor-icon-list-text { display: flex; justify-content: space-between; width: 100%; gap: 14px; }
.ci-facts .elementor-icon-list-text b { color: #fff; font-weight: 600; }
.ci-facts .elementor-icon-list-text b.todo { color: var(--ci-yel); }
.ci-seats .elementor-heading-title { display: flex; align-items: center; gap: 14px; padding: 14px 22px; border-radius: 18px; background: var(--ci-yel); }
.ci-seats .elementor-heading-title b { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 48px; line-height: 1; padding-top: 4px; direction: ltr; color: var(--ci-red); }
.ci-formcard { border-radius: 32px; box-shadow: 0 40px 80px -50px rgba(90, 10, 0, .8); }
.ci-form .elementor-field-group .elementor-field-textual, .ci-form .elementor-field-group select { min-height: 56px; border-radius: 16px; }
.ci-form .elementor-field-textual:focus, .ci-form select:focus { border-color: var(--ci-red) !important; box-shadow: 0 0 0 4px rgba(250, 192, 17, .45); outline: none; }
.ci-form .elementor-field-type-acceptance input { accent-color: var(--ci-red); width: 20px; height: 20px; }
.ci-form .elementor-field-type-acceptance a, .ci-form .elementor-field-type-html a { color: var(--ci-red); text-decoration: underline; }

/* FAQ in course colors */
.ci-faq .e-n-accordion { gap: 12px; display: flex; flex-direction: column; }
.ci-faq .e-n-accordion-item { border-radius: 22px; background: #fff; border: 2px solid rgba(42, 38, 48, .1); overflow: hidden; }
.ci-faq .e-n-accordion-item[open] { border-color: var(--ci-yel); background: var(--ci-cream); }
.ci-faq .e-n-accordion-item-title { min-height: 74px; padding: 0 26px !important; border: 0 !important; background: none !important; }
.ci-faq .e-n-accordion-item-title-text { font-weight: 600; font-size: clamp(19px, 1.6vw, 22px); color: var(--ci-ink); }
.ci-faq .e-n-accordion-item-title-icon { width: 36px !important; min-width: 36px; height: 36px; border-radius: 50%; background: var(--ci-red); display: flex !important; align-items: center; justify-content: center; }
.ci-faq .e-n-accordion-item-title-icon span { display: flex; }
.ci-faq .e-n-accordion-item-title-icon svg { fill: #fff !important; width: 14px !important; height: 14px !important; }
.ci-faq .e-n-accordion-item > .e-con { padding: 0 26px 24px !important; border: 0 !important; background: none !important; }

/* landing page footer and phone bar */
.ci-ft { background: var(--ci-ink); }
.ci-ft a { color: rgba(255, 255, 255, .8); text-decoration: none; }
.ci-ft a:hover { color: var(--ci-yel); }
.ci-mbar { background: rgba(255, 255, 255, .96); border-top: 1px solid rgba(42, 38, 48, .1); z-index: 40 !important; }
.ci-mbar .ci-wa .elementor-button { background: #25D366; border-color: #25D366; color: #fff; padding: 0; width: 52px; min-height: 52px; }

/* ---------- legal pages ---------- */
.tp-legaldoc h2 { font-weight: 600; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; color: var(--tp-navy); margin: 44px 0 14px; padding-top: 30px; border-top: 1px solid rgba(14, 16, 67, .1); }
.tp-legaldoc h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.tp-legaldoc h3 { font-weight: 600; font-size: 21px; color: var(--tp-navy); margin: 22px 0 8px; }
.tp-legaldoc p, .tp-legaldoc li { font-size: 19px !important; line-height: 1.65 !important; }
.tp-legaldoc ul { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 8px; }
.tp-legaldoc ul li { position: relative; padding-right: 26px; }
.tp-legaldoc ul li::before { content: '+'; position: absolute; right: 0; top: -2px; font-weight: 600; font-size: 22px; color: #C08A00; }
.tp-legaldoc a { color: var(--tp-navy); text-decoration: underline; text-decoration-color: var(--tp-yel); text-underline-offset: 4px; }
.tp-legaldoc b, .tp-legaldoc strong { color: var(--tp-navy); }
.tp-legaldoc table { width: 100%; border-collapse: collapse; font-size: 16px; margin: 18px 0; }
.tp-legaldoc th, .tp-legaldoc td { border: 1px solid rgba(14, 16, 67, .14); padding: 10px 12px; text-align: right; vertical-align: top; }
.tp-legaldoc th { background: #F6F7FB; color: var(--tp-navy); }
.tp-legaldoc .tp-tablewrap { overflow-x: auto; }
/* Privacy and terms share one page: a jump bar on top and a bigger heading where each part starts. */
.tp-legaldoc p.tp-legal-toc { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 44px; padding: 14px 20px; background: #F6F7FB; border-radius: 14px; font-size: 17px !important; }
.tp-legaldoc h2.tp-legal-part { font-weight: 700; font-size: clamp(30px, 3vw, 40px); margin: 72px 0 0; padding-top: 0; border-top: 0; scroll-margin-top: 130px; }
.tp-legaldoc h2.tp-legal-part::after { content: ''; display: block; width: 56px; height: 5px; margin-top: 14px; border-radius: 3px; background: var(--tp-yel); }
.tp-legaldoc .tp-legal-toc + h2.tp-legal-part { margin-top: 0; }
.tp-legaldoc h2.tp-legal-part + h2 { margin-top: 30px; padding-top: 0; border-top: 0; }
@media (max-width: 767px) { .tp-legaldoc p.tp-legal-toc { gap: 4px 8px; padding: 12px 14px; font-size: 15px !important; } }
.tp-date .elementor-heading-title { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: 999px; background: #F6F7FB; border: 1px solid rgba(14, 16, 67, .08); }

/* ---------- questionnaire, business card ---------- */
.tp-bq .e-form__indicators { margin-bottom: 30px; }
.tp-bq .e-form__indicators__indicator__number { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .3); color: #fff; }
.tp-bq .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number, .tp-bq .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number { background: var(--tp-yel); border-color: var(--tp-yel); color: var(--tp-navy); }
.tp-bq .e-form__indicators__indicator__label { color: rgba(255, 255, 255, .8); font-weight: 600; }
.tp-bq .elementor-field-type-radio .elementor-field-option label { color: #fff; }
.tp-bq .e-form__buttons__wrapper__button-previous { background: transparent !important; border: 1px solid rgba(255, 255, 255, .3) !important; color: #fff !important; }
.tp-bq .elementor-field-type-upload input { color: rgba(255, 255, 255, .8); }
.tp-vc-page { background: radial-gradient(800px 500px at 85% 0%, rgba(42, 54, 184, .45), transparent 70%), #0E1043; }
.tp-vc-ph img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; object-position: top; background: var(--tp-yel); border: 4px solid var(--tp-yel); }
.tp-vc .tp-cway { text-align: right; }
.tp-vc .tp-cway .elementor-icon-box-wrapper { flex-direction: row; }
.tp-vc a { color: var(--tp-yel); }
.tp-share .elementor-share-btn { border-color: rgba(255, 255, 255, .3) !important; }

/* active main-nav link in mustard; sub-menu arrow drawn to match the link text */
.tp-nav .elementor-nav-menu--main .sub-arrow svg { display: none; }
.tp-nav .elementor-nav-menu--main .sub-arrow::before { content: ''; display: block; width: 6px; height: 6px; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
.tp-checks b, .tp-checks strong { font-weight: 600; }
.tp-pk .tp-pl .elementor-heading-title { direction: ltr; unicode-bidi: isolate; letter-spacing: .04em; }

/* active menu links in mustard (a deeper gold on the white utility bar so it stays readable) */
:root { --tp-mustard: #DFA62A; }
.tp-nav .elementor-nav-menu .elementor-item.elementor-item-active,
.tp-nav .elementor-nav-menu .elementor-sub-item.elementor-item-active,
.tp-mnav .elementor-nav-menu--dropdown a.elementor-item-active,
.tp-footer .elementor-nav-menu--layout-vertical .elementor-item.elementor-item-active { color: var(--tp-mustard) !important; }
.tp-util .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #C08A00 !important; text-decoration-color: var(--tp-mustard); }

/* the steps line ends at the last step whatever the number of steps */
.tp-steps:has(> .e-con:nth-child(3):last-child) { --cols: 3; }
.tp-steps:has(> .e-con:nth-child(4):last-child) { --cols: 4; }
.tp-steps:has(> .e-con:nth-child(5):last-child) { --cols: 5; }
@media (min-width: 1025px) { .tp-steps::before { width: auto; } } /* Elementor gives container pseudo-elements a full width */
/* ci-arch: portrait fills the arch, head under the dome, cropped at the waist */
.ci-arch { justify-content: flex-start !important; }
.ci-arch .elementor-widget-image img { width: 100%; margin-top: 7%; }

/* CookieAdmin banner and preferences window in the site's look */
.cookieadmin_law_container, .cookieadmin_cookie_modal, .cookieadmin_law_container button, .cookieadmin_cookie_modal button { font-family: 'TalentFS', system-ui, sans-serif !important; }
.cookieadmin_law_container, .cookieadmin_cookie_modal { color: #2B2C48 !important; }
.cookieadmin_law_container .cookieadmin_btn, .cookieadmin_cookie_modal .cookieadmin_btn { border-radius: 999px !important; font-weight: 600 !important; }
.cookieadmin_accept_btn, .cookieadmin_save_btn { background: #FFC312 !important; border: 1px solid #FFC312 !important; color: #0E1043 !important; }
.cookieadmin_accept_btn:hover, .cookieadmin_save_btn:hover { background: #F5B225 !important; border-color: #F5B225 !important; }
.cookieadmin_reject_btn, .cookieadmin_customize_btn { background: #fff !important; border: 1px solid rgba(14, 16, 67, .3) !important; color: #0E1043 !important; }
.cookieadmin_law_container a, .cookieadmin_cookie_modal a { color: #0E1043 !important; }
/* back-to-top waits for the cookie banner: both sit at the bottom left */
body:has(.cookieadmin_law_container[style*="display: block"]) .tp-totop { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
/* after consent, back-to-top sits above the cookie re-consent icon */
/* cookie re-consent icon in navy, like the back-to-top button */
.cookieadmin_re_consent { background: #0E1043 !important; border: 2px solid rgba(255, 255, 255, .9) !important; }
/* cookie icon and back-to-top in one column at the bottom left, the arrow above the cookie */
.cookieadmin_re_consent { left: 32px !important; bottom: 30px !important; }
body:has(.cookieadmin_re_consent[style*="display: block"]) .tp-totop { bottom: 96px !important; }
@media (max-width: 767px) { .cookieadmin_re_consent { left: 16px !important; bottom: 16px !important; } body:has(.cookieadmin_re_consent[style*="display: block"]) .tp-totop { bottom: 78px !important; } }/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'TalentFS';
	font-style: normal;
	font-weight: 200;
	font-display: auto;
	src: url('https://top-plus.co.il/wp-content/uploads/elementor/custom-fonts/f014cf865671ad2025f549915d0833b8.woff2') format('woff2');
}
@font-face {
	font-family: 'TalentFS';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://top-plus.co.il/wp-content/uploads/elementor/custom-fonts/22575eabfda3297efcbf13813fdd14e0.woff2') format('woff2');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Bebas Neue';
	font-style: normal;
	font-weight: 400;
	font-display: auto;
	src: url('https://top-plus.co.il/wp-content/uploads/elementor/custom-fonts/2d63906c0c1f9050be8edfd1e0da90f3.woff2') format('woff2');
}
/* End Custom Fonts CSS */