/* ==========================================================================
   Tarabichi — widgets.css
   Section components (template-parts/sections/*) shared by the theme
   templates and the QB Elementor widgets: hero slider, about, ribbon,
   product + service sliders, figures, industries, why, clients, news, CTA,
   story, timeline, cards, strengths, values, presence, leadership.
   Loaded on: front page, page templates, catalogue views, single posts.
   ========================================================================== */

/* ---- Hero slider ---- */
.tpp-hero { position: relative; block-size: calc(var(--tpp-hero-h) * .0625rem); min-block-size: 30rem; max-block-size: 100svh; background: #0F1014; color: #fff; overflow: hidden; isolation: isolate; }
.tpp-hero__slides, .tpp-hero__slide { position: absolute; inset: 0; }
.tpp-hero__slide { opacity: 0; visibility: hidden; transition: opacity 1.2s var(--tpp-ease), visibility 1.2s; }
.tpp-hero__slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.tpp-hero__bg { position: absolute; inset: 0; overflow: hidden; }
.tpp-hero__bg--side { inset-inline-start: auto; inline-size: 66%; }
.tpp-hero__bg img { inline-size: 100%; block-size: 100%; object-fit: cover; transform: scale(1.1); transition: transform 9s cubic-bezier(.25, .46, .45, .94); }
.tpp-hero__slide.is-active .tpp-hero__bg img { transform: scale(1); }
.tpp-hero__bg--full img { filter: brightness(.58) contrast(1.08) saturate(1.05); }
.tpp-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, #0F1014 0%, rgba(15, 16, 20, .92) 32%, rgba(15, 16, 20, .38) 68%, rgba(15, 16, 20, .12) 100%), linear-gradient(0deg, rgba(15, 16, 20, .75) 0%, transparent 32%); }
.tpp-hero__in { position: relative; block-size: 100%; display: flex; align-items: center; }
.tpp-hero__content { max-inline-size: 40rem; padding-block-end: 3.5rem; }
.tpp-hero__content > * { opacity: 0; transform: translateY(26px); transition: opacity .95s var(--tpp-ease), transform .95s var(--tpp-ease); }
.tpp-hero__slide.is-active .tpp-hero__content > * { opacity: 1; transform: none; }
.tpp-hero__slide.is-active .tpp-hero__content > :nth-child(2) { transition-delay: .14s; }
.tpp-hero__slide.is-active .tpp-hero__content > :nth-child(3) { transition-delay: .28s; }
.tpp-hero__slide.is-active .tpp-hero__content > :nth-child(4) { transition-delay: .42s; }
.tpp-hero__badge { display: inline-flex; align-items: center; background: var(--tpp-primary); color: #fff; padding: .42rem .95rem; border-radius: 999px; font-size: .78rem; font-weight: 600; letter-spacing: .02em; }
.tpp-hero__title { color: #fff; font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem); font-weight: 800; line-height: 1.02; letter-spacing: -.028em; text-transform: uppercase; margin-block-start: 1.5rem; }
.tpp-hero__l1 { display: block; }
.tpp-hero__box { display: inline-block; margin-block-start: .7rem; background: var(--tpp-accent); color: var(--tpp-ink); padding: .2rem 1.15rem .4rem; border-radius: 14px; }
.tpp-hero__text { color: rgba(255, 255, 255, .74); font-size: clamp(1rem, .95rem + .25vw, 1.08rem); line-height: 1.72; margin: 1.5rem 0 0; max-inline-size: 31rem; }
.tpp-hero__acts { display: flex; align-items: center; gap: 1.15rem 1.5rem; flex-wrap: wrap; margin-block-start: 2.1rem; }
.tpp-hero__round { display: inline-flex; align-items: center; gap: .9rem; font-weight: 600; font-size: .92rem; color: #fff; }
.tpp-hero__circle { inline-size: 3.5rem; block-size: 3.5rem; border-radius: 50%; background: var(--tpp-accent); color: var(--tpp-ink); display: grid; place-items: center; position: relative; transition: transform .45s var(--tpp-ease); }
.tpp-hero__circle::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 1px solid rgba(var(--tpp-accent-rgb), .5); animation: tpp-ring 2.4s var(--tpp-ease) infinite; }
.tpp-hero__round:hover .tpp-hero__circle { transform: scale(1.07); }
@keyframes tpp-ring { from { transform: scale(.85); opacity: 1; } to { transform: scale(1.35); opacity: 0; } }
.tpp-hero__ctl { position: absolute; inset-inline: 0; inset-block-end: 2.1rem; z-index: 3; }
.tpp-hero__ctlIn { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.tpp-hero__count { display: flex; align-items: center; gap: 1rem; font-size: .8rem; font-weight: 600; letter-spacing: .08em; color: rgba(255, 255, 255, .6); }
.tpp-hero__count b { color: #fff; font-size: .95rem; }
.tpp-hero__bars { display: flex; gap: .5rem; }
.tpp-hero__bar { inline-size: 2.9rem; block-size: 3px; padding: 0; border: 0; border-radius: 3px; background: rgba(255, 255, 255, .22); overflow: hidden; position: relative; }
.tpp-hero__bar::before { content: ""; position: absolute; inset-block: -10px; inset-inline: 0; }
.tpp-hero__bar span { position: absolute; inset-block: 0; inset-inline-start: 0; inline-size: 0; background: var(--tpp-accent); }
.tpp-hero__bar.is-done span { inline-size: 100%; }
.tpp-hero__bar.is-active span { animation: tpp-fill var(--tpp-hero-dur, 6500ms) linear forwards; }
.tpp-hero.is-paused .tpp-hero__bar.is-active span, .tpp-hero.is-static .tpp-hero__bar.is-active span { animation-play-state: paused; }
.tpp-hero.is-static .tpp-hero__bar.is-active span { animation: none; inline-size: 100%; }
@keyframes tpp-fill { to { inline-size: 100%; } }
.tpp-hero__arrows { display: flex; gap: .6rem; }
.tpp-hero__scroll { position: absolute; left: 50%; inset-block-end: 1.9rem; transform: translateX(-50%); z-index: 4; inline-size: 3.4rem; block-size: 3.4rem; border-radius: 50%; background: #fff; color: var(--tpp-primary); display: grid; place-items: center; box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5); transition: transform .4s var(--tpp-ease); }
.tpp-hero__scroll:hover { transform: translateX(-50%) translateY(-3px); }
.tpp-hero__scroll .tpp-ic { animation: tpp-bob 1.8s ease-in-out infinite; }
@keyframes tpp-bob { 50% { transform: translateY(4px); } }

/* ---- Home about ---- */
.tpp-about .tpp-secHead { margin-block-end: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); }
.tpp-about__txt .tpp-lead { margin: 0; }
.tpp-points { list-style: none; display: grid; gap: 1.35rem; margin-block: 2rem 2.25rem; }
.tpp-points li { display: flex; gap: 1rem; }
.tpp-points__ck { inline-size: 1.9rem; block-size: 1.9rem; border-radius: 50%; background: var(--tpp-accent); color: var(--tpp-ink); display: grid; place-items: center; flex: none; }
.tpp-points h3 { font-size: 1rem; letter-spacing: -.01em; }
.tpp-points p { margin: .3rem 0 0; font-size: .92rem; }
.tpp-about__media { position: relative; }
.tpp-about__frame { aspect-ratio: 1.15 / 1; background: #fff; border: 1px solid var(--tpp-line); border-radius: var(--tpp-radius); overflow: hidden; }
.tpp-about__frame img { inline-size: 100%; block-size: 100%; object-fit: contain; padding-block-start: 1.5rem; transition: transform 1.4s var(--tpp-ease); }
.tpp-about__media:hover .tpp-about__frame img { transform: scale(1.03); }
.tpp-about__cap { position: absolute; inset-inline-end: 1.25rem; inset-block-start: 1.25rem; }
.tpp-badge { position: absolute; inset-inline-start: -2.25rem; inset-block-end: -1.9rem; inline-size: 9.4rem; block-size: 9.4rem; border-radius: 50%; background: var(--tpp-accent); color: var(--tpp-ink); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; border: 8px solid #fff; box-shadow: var(--tpp-shadow-m); animation: tpp-float 6s ease-in-out infinite; }
.tpp-badge b { font-size: 2.75rem; line-height: 1; letter-spacing: -.04em; }
.tpp-badge span { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-block-start: .3rem; line-height: 1.3; max-inline-size: 6rem; }
@keyframes tpp-float { 50% { transform: translateY(-8px); } }

/* ---- Ribbon ---- */
.tpp-ribbon { padding-block: 1.25rem; overflow: hidden; }
.tpp-ribbon__band { background: var(--tpp-accent); transform: rotate(-1.6deg); margin-inline: -3rem; padding-block: 1rem; }
.tpp-ribbon__it { display: inline-flex; align-items: center; gap: 1.6rem; padding-inline-end: 1.6rem; font-size: clamp(1.1rem, .95rem + .6vw, 1.35rem); font-weight: 700; color: var(--tpp-ink); letter-spacing: -.01em; white-space: nowrap; }
.tpp-ribbon__it i { color: #fff; font-style: normal; font-weight: 800; }

/* ---- Products slider ---- */
.tpp-pslider { overflow: hidden; }
.tpp-pslider__block { position: absolute; inset-inline-end: 0; inset-block-end: 0; inline-size: 54%; block-size: 46%; background: var(--tpp-primary-dark); border-start-start-radius: 28px; overflow: hidden; }
.tpp-pslider__block .tpp-arcs { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; color: #fff; opacity: .16; }
.tpp-pslider .tpp-container { position: relative; }
.tpp-pcard { display: flex; flex-direction: column; background: #fff; box-shadow: 0 20px 40px -28px rgba(var(--tpp-ink-rgb), .38); border-radius: 4px; overflow: hidden; transition: transform .55s var(--tpp-ease), box-shadow .55s var(--tpp-ease); }
.tpp-pcard:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -30px rgba(var(--tpp-ink-rgb), .5); }
.tpp-pcard__img { aspect-ratio: 1.28 / 1; overflow: hidden; background: var(--tpp-bg-soft); display: block; }
.tpp-pcard__img img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.3s var(--tpp-ease); }
.tpp-pcard:hover .tpp-pcard__img img { transform: scale(1.07); }
.tpp-pcard__bar { display: flex; align-items: stretch; min-block-size: 3.65rem; }
.tpp-pcard__bar b { flex: 1; display: flex; align-items: center; padding-inline: 1.1rem; font-size: 1rem; font-weight: 650; letter-spacing: -.01em; line-height: 1.25; }
.tpp-pcard__sq { inline-size: 3.65rem; flex: none; display: grid; place-items: center; background: #fff; transition: background-color .45s var(--tpp-ease), color .45s var(--tpp-ease); }
.tpp-pcard--red .tpp-pcard__bar { background: var(--tpp-primary); color: #fff; }
.tpp-pcard--red .tpp-pcard__sq { color: var(--tpp-primary); }
.tpp-pcard--gold .tpp-pcard__bar { background: var(--tpp-accent); color: var(--tpp-ink); }
.tpp-pcard--ink .tpp-pcard__bar { background: var(--tpp-ink); color: #fff; }
.tpp-pcard--ink .tpp-pcard__sq, .tpp-pcard--gold .tpp-pcard__sq { color: var(--tpp-ink); }
.tpp-pcard:hover .tpp-pcard__sq { background: var(--tpp-ink); color: #fff; }
.tpp-pcard--ink:hover .tpp-pcard__sq { background: var(--tpp-primary); }
.tpp-pcard:hover .tpp-ar { animation: tpp-nudge .9s var(--tpp-ease); }
@keyframes tpp-nudge { 40% { transform: translateX(5px); } }
.tpp-carousel__ctl--onRed .tpp-dots { color: #fff; }

/* ---- Services slider ---- */
.tpp-scard { position: relative; display: block; block-size: clamp(22rem, 18rem + 8vw, 27rem); border-radius: 16px; overflow: hidden; background: #222; color: #fff; isolation: isolate; }
.tpp-scard__img, .tpp-scard__img img, .tpp-scard__img .tpp-ph { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; }
.tpp-scard__img img { object-fit: cover; transition: transform 1.3s var(--tpp-ease); }
.tpp-scard:hover .tpp-scard__img img { transform: scale(1.07); }
.tpp-scard__shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(15, 16, 20, .9) 0%, rgba(15, 16, 20, .15) 58%); opacity: .3; transition: opacity .55s var(--tpp-ease); }
.tpp-scard__no { position: absolute; inset-inline-start: 0; inset-block-start: 1.5rem; z-index: 3; background: var(--tpp-accent); color: var(--tpp-ink); font-weight: 700; font-style: italic; font-size: 1.35rem; padding: .3rem .9rem; border-start-end-radius: 10px; border-end-end-radius: 10px; }
.tpp-scard__strip { position: absolute; inset-inline-start: 0; inset-block: 0; inline-size: 3.85rem; background: #fff; color: var(--tpp-ink); z-index: 2; display: flex; justify-content: center; padding-block: 5.25rem 1.5rem; border-start-end-radius: 16px; border-end-end-radius: 16px; transition: inline-size .55s var(--tpp-ease); }
.tpp-scard__strip span { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-block-size: 100%; }
.tpp-scard__body { position: absolute; inset-inline: 5.25rem 1.5rem; inset-block-end: 1.5rem; z-index: 2; display: grid; gap: .5rem; opacity: 0; transform: translateY(16px); transition: opacity .55s var(--tpp-ease), transform .55s var(--tpp-ease); }
.tpp-scard__body b { font-size: 1.15rem; line-height: 1.25; }
.tpp-scard__txt { font-size: .88rem; color: rgba(255, 255, 255, .85); line-height: 1.55; }
.tpp-scard__more { display: inline-flex; align-items: center; gap: .45rem; color: var(--tpp-accent); font-weight: 600; font-size: .88rem; }
.tpp-scard:hover .tpp-scard__shade, .tpp-scard:focus-visible .tpp-scard__shade { opacity: 1; }
.tpp-scard:hover .tpp-scard__body, .tpp-scard:focus-visible .tpp-scard__body { opacity: 1; transform: none; }
@media (hover: none) { .tpp-scard__shade { opacity: .85; } .tpp-scard__body { opacity: 1; transform: none; } }

/* ---- Figures ---- */
.tpp-figures { padding-block: 0 1rem; }
.tpp-figures--page { padding-block: 0 var(--tpp-space); }
.tpp-figures__grid { display: grid; grid-template-columns: repeat(var(--tpp-n, 6), minmax(0, 1fr)); border-block: 1px solid var(--tpp-line); }
.tpp-figure { padding: 2.2rem 1.4rem; border-inline-start: 1px solid var(--tpp-line); position: relative; }
.tpp-figure:first-child { border-inline-start: 0; }
.tpp-figure::after { content: ""; position: absolute; inset-inline-start: 1.4rem; inset-block-start: -1px; inline-size: 0; block-size: 2px; background: var(--tpp-primary); transition: inline-size .8s var(--tpp-ease); }
.tpp-figure:hover::after { inline-size: 2.5rem; }
.tpp-figure b { display: block; font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); font-weight: 700; color: var(--tpp-ink); letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.tpp-figure b i { font-style: normal; color: var(--tpp-primary); font-size: .72em; margin-inline-start: .1em; }
.tpp-figure > span { display: block; margin-block-start: .7rem; font-size: .84rem; }

/* ---- Industries ---- */
.tpp-industries__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr); gap: 1.25rem; }
.tpp-industries__grid.is-flat { grid-template-columns: minmax(0, 1fr); }
.tpp-industries__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.tpp-industries__grid.is-flat .tpp-industries__tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tpp-indFeat { position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; gap: 1.75rem; padding: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); border-radius: var(--tpp-radius); background: var(--tpp-primary-dark); color: #fff; transition: transform .55s var(--tpp-ease), box-shadow .55s var(--tpp-ease); }
.tpp-indFeat:hover { transform: translateY(-5px); box-shadow: 0 30px 60px -30px rgba(var(--tpp-primary-rgb), .8); }
.tpp-indFeat .tpp-arcs { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; color: #fff; opacity: .12; z-index: -1; }
.tpp-indFeat__top { display: grid; gap: .85rem; }
.tpp-indFeat__title { font-size: 1.6rem; letter-spacing: -.02em; margin-block-start: .5rem; }
.tpp-indFeat__txt { color: rgba(255, 255, 255, .78); font-size: .94rem; }
.tpp-indFeat .tpp-checks { margin: 0; }
.tpp-center.tpp-mt { margin-block-start: 2.25rem; }

/* ---- Why ---- */
.tpp-values3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-block-start: 2.5rem; }
.tpp-values3__it { border-block-start: 2px solid var(--tpp-line); padding-block-start: 1rem; transition: border-color .45s var(--tpp-ease); }
.tpp-values3__it.is-first, .tpp-values3__it:hover { border-color: var(--tpp-primary); }
.tpp-values3__it h3 { font-size: .98rem; }
.tpp-values3__it p { margin: .3rem 0 0; font-size: .86rem; }
.tpp-why__media { position: relative; }
.tpp-floatCard { position: absolute; inset-inline-start: -1.75rem; inset-block-end: -1.75rem; max-inline-size: 18.5rem; background: #fff; border: 1px solid var(--tpp-line); border-radius: var(--tpp-radius); padding: 1.35rem 1.6rem; box-shadow: var(--tpp-shadow-m); }
.tpp-floatCard .tpp-eyebrow { font-size: .68rem; }
.tpp-floatCard p { margin: .5rem 0 0; color: var(--tpp-ink); font-size: 1.12rem; font-weight: 650; letter-spacing: -.015em; line-height: 1.38; }

/* ---- Clients ---- */
.tpp-clients .tpp-secHead { margin-block-end: 2.5rem; }
.tpp-clients__row { -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.tpp-clients__row + .tpp-clients__row { margin-block-start: 1.75rem; }
.tpp-clients__logo { display: grid; place-items: center; block-size: 4rem; padding-inline: 2.4rem; flex: none; }
.tpp-clients__logo img { max-block-size: 3.4rem; max-inline-size: 9rem; inline-size: auto; block-size: auto; object-fit: contain; transition: filter .45s var(--tpp-ease), opacity .45s var(--tpp-ease), transform .45s var(--tpp-ease); }
.tpp-clients__row.is-gray .tpp-clients__logo img { filter: grayscale(1); opacity: .6; }
.tpp-clients__row .tpp-clients__logo:hover img { filter: none; opacity: 1; transform: scale(1.06); }

/* ---- CTA ---- */
.tpp-cta { position: relative; overflow: hidden; isolation: isolate; background: var(--tpp-primary-dark); color: #fff; border-radius: calc(var(--tpp-radius) * 1.4); padding: clamp(2.25rem, 1.5rem + 3vw, 3.5rem); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem 2.5rem; align-items: center; }
.tpp-cta .tpp-arcs { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; color: #fff; opacity: .22; z-index: -1; }
.tpp-cta::after { content: ""; position: absolute; inset-inline-end: -6rem; inset-block-start: -6rem; inline-size: 18rem; block-size: 18rem; border-radius: 50%; background: radial-gradient(closest-side, rgba(var(--tpp-accent-rgb), .25), transparent); z-index: -1; }
.tpp-cta__title { color: #fff; font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.6rem); line-height: 1.1; letter-spacing: -.03em; margin-block-start: .85rem; text-wrap: balance; }
.tpp-cta__text { color: rgba(255, 255, 255, .76); margin: 1rem 0 0; max-inline-size: 34rem; }
.tpp-cta__acts { display: flex; gap: .75rem; flex-wrap: wrap; }

/* ---- About page ---- */
.tpp-story__media { position: relative; }
.tpp-story__cap { position: absolute; inset-inline: 1.25rem; inset-block-end: 1.25rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); border-radius: var(--tpp-r-sm); padding: .9rem 1.15rem; }
.tpp-story__cap b { display: block; color: var(--tpp-ink); font-size: .95rem; }
.tpp-story__cap span { font-size: .84rem; }
.tpp-story .tpp-secHead { margin-block-end: 1.5rem; }

.tpp-timeline__list { list-style: none; display: grid; grid-template-columns: repeat(var(--tpp-n, 6), minmax(0, 1fr)); gap: 1.75rem; position: relative; }
.tpp-timeline__list::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: .4rem; block-size: 1px; background: #D9D3CA; }
.tpp-timeline__it { position: relative; padding-block-start: 2.1rem; }
.tpp-timeline__dot { position: absolute; inset-block-start: 0; inset-inline-start: 0; inline-size: .85rem; block-size: .85rem; border-radius: 50%; background: #fff; border: 2px solid var(--tpp-primary); transition: transform .45s var(--tpp-ease), background-color .45s; }
.tpp-timeline__it.is-key .tpp-timeline__dot, .tpp-timeline__it:hover .tpp-timeline__dot { background: var(--tpp-primary); transform: scale(1.25); }
.tpp-timeline__year { display: block; font-size: 1.85rem; color: var(--tpp-ink); letter-spacing: -.03em; line-height: 1; }
.tpp-timeline__it h3 { font-size: .98rem; margin-block-start: .85rem; }
.tpp-timeline__it p { margin: .4rem 0 0; font-size: .86rem; line-height: 1.6; }

.tpp-mosaic { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 1rem; aspect-ratio: 1.08 / 1; }
.tpp-mosaic .tpp-media { block-size: 100%; }
.tpp-mosaic__0 { grid-row: 1 / 3; }

.tpp-values .tpp-arcs { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; color: #fff; opacity: .06; }
.tpp-values .tpp-container { position: relative; }
.tpp-values__grid { gap: 2.25rem; }
.tpp-values__it { display: flex; gap: 1rem; }
.tpp-values__it h3 { font-size: 1rem; }
.tpp-values__it p { margin: .4rem 0 0; font-size: .88rem; color: #A6A9B1; }
.tpp-values__it:hover .tpp-ibox { background: var(--tpp-accent); color: var(--tpp-ink); transform: rotate(-6deg); }

.tpp-presence__grid { display: grid; grid-template-columns: repeat(var(--tpp-n, 5), minmax(0, 1fr)); gap: 1rem; }
.tpp-presence__it { padding: 1.4rem; }
.tpp-presence__it h3 { font-size: 1.2rem; margin-block-start: 1rem; }
.tpp-presence__it p { margin: .3rem 0 0; font-size: .86rem; }
.tpp-presence__it.is-current { border-color: var(--tpp-primary); }
.tpp-presence__wide { margin-block-start: 1.75rem; aspect-ratio: 3.2 / 1; border-radius: calc(var(--tpp-radius) * 1.2); }
.tpp-presence__wide img { object-position: center 40%; }
.tpp-presence__wide figcaption { position: absolute; inset-inline-start: 1.5rem; inset-block-end: 1.35rem; background: rgba(255, 255, 255, .94); padding: .55rem 1rem; border-radius: 12px; font-weight: 600; font-size: .86rem; color: var(--tpp-ink); }

.tpp-leaders__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.tpp-person { padding: 0; overflow: hidden; }
.tpp-person:hover { transform: translateY(-5px); box-shadow: var(--tpp-shadow-m); }
.tpp-person__img { display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--tpp-bg-soft); }
.tpp-person__img img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: transform 1.2s var(--tpp-ease); }
.tpp-person:hover .tpp-person__img img { transform: scale(1.05); }
.tpp-person figcaption { padding: 1.2rem 1.35rem; }
.tpp-person b { display: block; color: var(--tpp-ink); font-size: 1.05rem; }
.tpp-person figcaption span { font-size: .86rem; color: var(--tpp-primary); font-weight: 600; }
.tpp-board { grid-column: span 2; position: relative; overflow: hidden; isolation: isolate; background: var(--tpp-dark); color: #A6A9B1; border-radius: var(--tpp-radius); padding: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); display: flex; flex-direction: column; justify-content: center; }
.tpp-board .tpp-arcs { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; color: #fff; opacity: .07; z-index: -1; }
.tpp-board p { margin: 1rem 0 0; color: #fff; font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.5; font-weight: 600; letter-spacing: -.015em; }

/* ---- Responsive ---- */
@media (max-width: 1180px) {
	.tpp-figures__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpp-figure:nth-child(3n + 1) { border-inline-start: 0; }
	.tpp-figure:nth-child(n + 4) { border-block-start: 1px solid var(--tpp-line); }
	.tpp-timeline__list { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2.5rem; }
	.tpp-timeline__list::before { display: none; }
	.tpp-presence__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tpp-industries__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
	.tpp-hero { block-size: calc(var(--tpp-hero-h-m) * .0625rem); }
	.tpp-hero__bg--side { inline-size: 100%; }
	.tpp-hero__shade { background: linear-gradient(90deg, rgba(15, 16, 20, .94), rgba(15, 16, 20, .58)), linear-gradient(0deg, rgba(15, 16, 20, .8), transparent 40%); }
	.tpp-badge { inset-inline-start: .75rem; inline-size: 7.6rem; block-size: 7.6rem; }
	.tpp-badge b { font-size: 2.15rem; }
	.tpp-floatCard { inset-inline-start: 1rem; inset-block-end: -1.5rem; }
	.tpp-why__media { margin-block-end: 1.5rem; }
	.tpp-pslider__block { inline-size: 100%; block-size: 30%; border-radius: 0; }
	.tpp-cta { grid-template-columns: minmax(0, 1fr); }
	.tpp-leaders__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpp-industries__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
	.tpp-hero__content { padding-block-end: 5rem; }
	.tpp-hero__arrows { display: none; }
	.tpp-hero__scroll { display: none; }
	.tpp-hero__ctlIn { justify-content: flex-start; }
	.tpp-hero__box { border-radius: 10px; padding-inline: .8rem; }
	.tpp-figures__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpp-figure { border-inline-start: 0 !important; border-block-start: 1px solid var(--tpp-line); padding: 1.6rem 1rem; }
	.tpp-figure:nth-child(-n + 2) { border-block-start: 0; }
	.tpp-figure:nth-child(even) { border-inline-start: 1px solid var(--tpp-line) !important; }
	.tpp-timeline__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpp-presence__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tpp-presence__wide { aspect-ratio: 1.6 / 1; }
	.tpp-values3 { grid-template-columns: minmax(0, 1fr); }
	.tpp-industries__tiles, .tpp-leaders__grid { grid-template-columns: minmax(0, 1fr); }
	.tpp-board { grid-column: auto; }
	.tpp-mosaic { aspect-ratio: auto; grid-template-rows: auto; }
	.tpp-mosaic .tpp-media { aspect-ratio: 1 / 1; }
	.tpp-mosaic__0 { grid-row: auto; grid-column: 1 / 3; aspect-ratio: 1.6 / 1 !important; }
	.tpp-cta__acts .tpp-btn { flex: 1 1 auto; }
}
@media (min-width: 621px) and (max-width: 900px) {
	.tpp-about__media, .tpp-story__media, .tpp-why__media, .tpp-mosaic { max-inline-size: 36rem; margin-inline: auto; inline-size: 100%; }
}

/* ---- Elementor integration ---- */
.elementor .elementor-widget[class*="elementor-widget-qb-"]:not(:last-child) { margin-block-end: 0; }
.elementor-section.tpp-flush > .elementor-container { max-inline-size: none; }
.elementor-section.tpp-flush > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }
.e-con.tpp-flush { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; --row-gap: 0; --column-gap: 0; --margin-top: 0; --margin-bottom: 0; --content-width: 100%; }
.e-con.tpp-flush > .e-con-inner { padding: 0; gap: 0; max-inline-size: none; }
.tpp-w { inline-size: 100%; }
.tpp-wbtn { display: flex; }
.tpp-wbtn--center { justify-content: center; }
.tpp-wbtn--end { justify-content: flex-end; }
.tpp-secHead--widget { margin-block-end: 0; }
.tpp-secHead--widget.tpp-secHead--center { margin-inline: auto; }
.tpp-contactCards--w { margin: 0; }
.elementor-editor-active .tpp-hero__slide:not(.is-active) { pointer-events: none; }
.elementor .tpp-w :is(.tpp-media, .tpp-hero__bg, .tpp-about__frame, .tpp-pcard__img, .tpp-scard__img, .tpp-person__img, .tpp-ncard__img) img { block-size: 100%; inline-size: 100%; max-inline-size: none; }
.elementor .tpp-w .tpp-clients__logo img { block-size: auto; max-block-size: 3.4rem; max-inline-size: 9rem; }
.elementor .tpp-w .tpp-logo__img { block-size: 2.4rem; inline-size: auto; }
