@font-face {
  font-family: "Albert Sans TN";
  src: url("../fonts/AlbertSans-Variable.ttf") format("truetype");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  --tn-green: #1b7e3e;
  --tn-bright: #28b159;
  --tn-orange: #f2540e;
  --tn-black: #000000;
  --tn-grey: #707070;
}

html { scroll-behavior: smooth; }
body.elementor-page { margin: 0; background: #fff; color: var(--tn-black); }
.tn-page, .tn-registration, .tn-page * { box-sizing: border-box; }
.tn-page, .tn-registration { font-family: "Albert Sans TN", Arial, sans-serif; }
.tn-page h1, .tn-page h2, .tn-page h3, .tn-page h4, .tn-page p, .tn-registration h2, .tn-registration h3, .tn-registration p { margin-top: 0; }
.tn-shell { width: min(1640px, calc(100% - 80px)); margin: 0 auto; }
.tn-kicker { margin: 0 0 22px; color: var(--tn-bright); font-size: 20px; line-height: 1.1; font-weight: 750; text-transform: uppercase; }
.tn-kicker-white { color: #fff; }
.tn-cta { display: inline-flex; min-height: 58px; padding: 0 44px; align-items: center; justify-content: center; border-radius: 18px; background: var(--tn-orange); color: #fff !important; font-size: 20px; line-height: 1; font-weight: 750; text-decoration: underline; text-underline-offset: 2px; transition: transform .25s ease, filter .25s ease; }
.tn-cta:hover { transform: translateY(-2px); filter: brightness(.96); }
.tn-cta-wide { min-width: 660px; min-height: 94px; border-radius: 32px; font-size: 27px; text-decoration: none; }

.tn-hero { position: relative; min-height: 1080px; overflow: hidden; background: #f7faf9; } .tn-hero:before { content: ""; position: absolute; inset: 0; background: url("../images/hero-tool.jpg") center center / cover no-repeat; transform: scaleX(-1); }
.tn-hero-logo { position: absolute; top: 34px; left: 50%; width: 370px; transform: translateX(-50%); mix-blend-mode: multiply; }
.tn-hero-top-cta { position: absolute; top: 82px; right: max(7.3vw, 42px); z-index: 3; }
.tn-motif { position: absolute; width: 140px; height: 140px; opacity: .96; }
.tn-motif:before, .tn-motif:after { content: ""; position: absolute; inset: 0; border: 3px solid currentColor; }
.tn-motif:before { border-radius: 50%; box-shadow: inset 0 0 0 7px #f8faf9, inset 0 0 0 10px currentColor, inset 0 0 0 17px #f8faf9, inset 0 0 0 20px currentColor, inset 0 0 0 27px #f8faf9, inset 0 0 0 30px currentColor, inset 0 0 0 37px #f8faf9, inset 0 0 0 40px currentColor; }
.tn-motif:after { inset: 36px; border-radius: 50%; box-shadow: inset 0 0 0 7px #f8faf9, inset 0 0 0 10px currentColor; }
.tn-motif-a { top: 58px; left: 7.3vw; color: #050505; }
.tn-motif-b { top: 225px; right: 28.5vw; color: var(--tn-green); transform: rotate(45deg); }
.tn-motif-b:before, .tn-motif-b:after { border-radius: 0; }
.tn-hero-date { position: absolute; top: 354px; left: 0; min-width: min(920px, 62vw); min-height: 112px; display: flex; align-items: center; justify-content: flex-end; padding: 0 50px 0 max(7.3vw, 42px); border-radius: 0 38px 38px 0; background: var(--tn-green); color: #fff; font-size: 62px; font-weight: 830; letter-spacing: -.02em; }
.tn-hero-info { position: absolute; top: 495px; left: max(7.3vw, 42px); font-size: 34px; line-height: 1.12; }
.tn-hero-info strong { display: block; font-weight: 830; }
.tn-hero-copy { position: absolute; left: max(7.3vw, 42px); bottom: 96px; width: 720px; }
.tn-hero-copy h1 { margin: 0 0 16px; color: var(--tn-green); font-size: 72px; line-height: .9; font-weight: 850; letter-spacing: -.04em; }
.tn-hero-copy h2 { margin: 0 0 10px; font-size: 26px; line-height: 1; font-weight: 850; }
.tn-hero-copy p { width: 560px; margin-bottom: 0; font-size: 21px; line-height: 1.25; }

.tn-stats { position: relative; padding: 60px 0 90px; background: #fff; text-align: center; overflow: hidden; }
.tn-stats-cta { margin-bottom: 90px; }
.tn-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 80px; }
.tn-stat strong { display: block; color: var(--tn-green); font-size: 86px; line-height: .95; font-weight: 850; }
.tn-stat span { display: block; margin-top: 20px; font-size: 21px; line-height: 1.05; font-weight: 700; text-transform: uppercase; }

.tn-paths { padding: 58px 0 105px; background: var(--tn-green); color: #fff; }
.tn-paths-head { max-width: 1040px; margin: 0 auto 78px; text-align: center; }
.tn-paths-head p { margin-bottom: 18px; font-size: 20px; font-weight: 720; }
.tn-paths-head h2 { font-size: 46px; line-height: 1.05; font-weight: 420; }
.tn-path-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 46px; }
.tn-path { min-width: 0; }
.tn-path-number { display: flex; align-items: flex-end; gap: 12px; margin-bottom: 28px; }
.tn-path-icon { width: 118px; height: 118px; border: 3px solid #fff; border-radius: 50%; box-shadow: inset 0 0 0 7px var(--tn-green), inset 0 0 0 10px #fff, inset 0 0 0 17px var(--tn-green), inset 0 0 0 20px #fff, inset 0 0 0 27px var(--tn-green), inset 0 0 0 30px #fff; }
.tn-path-number b { color: #000; font-size: 42px; line-height: 1; font-weight: 900; }
.tn-path h3 { margin-bottom: 16px; color: #000; font-size: 22px; line-height: 1.1; font-weight: 860; }
.tn-path .tn-lead { min-height: 70px; font-size: 26px; line-height: 1.25; font-weight: 760; }
.tn-exhibitors { margin-top: 34px; font-size: 19px; line-height: 1.35; }
.tn-exhibitors summary { margin-top: 10px; color: var(--tn-orange); font-size: 16px; text-decoration: underline; cursor: pointer; }
.tn-exhibitors summary::marker { content: ""; }
.tn-exhibitors[open] summary { margin-bottom: 8px; }
.tn-more-list { margin: 0; padding: 0; list-style: none; }

.tn-experience { padding: 50px 0 55px; background: #fff; text-align: center; }
.tn-experience h2 { margin-bottom: 30px; color: var(--tn-green); font-size: 42px; font-weight: 820; }
.tn-intro { max-width: 980px; margin: 0 auto 58px; color: var(--tn-grey); font-size: 20px; line-height: 1.3; }
.tn-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.tn-card { position: relative; height: 419px; overflow: hidden; border-radius: 33px; background: #222 center / cover no-repeat; color: #fff; }
.tn-card:after { content: ""; position: absolute; inset: 0; background: linear-gradient(155deg, rgba(37,236,47,.82), rgba(11,88,38,.52) 70%, rgba(242,84,15,.65)); mix-blend-mode: hard-light; }
.tn-card:nth-child(1) { background-image: url("../images/expo.webp"); }
.tn-card:nth-child(2) { background-image: url("../images/arena.webp"); }
.tn-card:nth-child(3) { background-image: url("../images/demo-lab.webp"); }
.tn-card-content { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 40px; }
.tn-card h3 { margin-bottom: 60px; font-size: 60px; line-height: .92; font-weight: 850; }
.tn-card p { font-size: 19px; line-height: 1.2; font-weight: 750; }
.tn-lounge { padding: 30px 0 0; text-align: center; }
.tn-glasses { color: var(--tn-green); font-size: 62px; line-height: 1; }
.tn-lounge h3 { margin: 10px 0 18px; color: var(--tn-bright); font-size: 38px; font-weight: 450; }
.tn-lounge h3 span { color: var(--tn-orange); }
.tn-lounge p { max-width: 720px; margin: 0 auto 24px; color: var(--tn-grey); font-size: 17px; line-height: 1.3; }

.tn-downloads { display: grid; grid-template-columns: 1fr 1fr; min-height: 510px; }
.tn-download { padding: 82px max(7.3vw, 42px); color: #fff; }
.tn-download-program { background: var(--tn-orange); }
.tn-download-exhibitors { background: var(--tn-green); }
.tn-download-label { display: block; padding: 8px 10px; margin-bottom: 44px; background: var(--tn-green); font-size: 19px; font-weight: 720; }
.tn-download-exhibitors .tn-download-label { background: var(--tn-bright); }
.tn-download h2 { font-size: 50px; line-height: .96; font-weight: 760; }
.tn-download p { margin: 48px 0 24px; font-size: 17px; font-weight: 650; }
.tn-file-link { display: flex; width: 360px; min-height: 50px; padding: 0 24px; align-items: center; justify-content: space-between; border-radius: 25px; background: var(--tn-green); color: #fff !important; font-size: 16px; font-weight: 750; text-decoration: none; }
.tn-download-exhibitors .tn-file-link { margin-bottom: 12px; background: var(--tn-bright); }
.tn-file-link b { font-size: 32px; line-height: 1; }

.tn-focus { display: grid; grid-template-columns: 1fr 1fr; min-height: 470px; background: #fff; }
.tn-focus-image { background: #000 url("../images/compass.webp") center 43% / 700px auto no-repeat; }
.tn-focus-copy { padding: 52px 7vw; display: flex; flex-direction: column; justify-content: center; }
.tn-focus-copy h2, .tn-recruit-copy h2 { font-size: 44px; line-height: 1.16; font-weight: 820; }
.tn-focus-copy p, .tn-recruit-copy p { color: var(--tn-grey); font-size: 17px; line-height: 1.3; }
.tn-offer { padding: 66px 40px; background: #000; color: #fff; text-align: center; }
.tn-offer h2 { max-width: 720px; margin: 0 auto 24px; color: var(--tn-orange); font-size: 44px; line-height: 1.12; font-weight: 820; }
.tn-offer p { max-width: 680px; margin: 0 auto; font-size: 17px; line-height: 1.35; }
.tn-recruit { display: grid; grid-template-columns: 1fr 1fr; min-height: 370px; }
.tn-recruit-copy { padding: 35px max(7.3vw, 42px); }
.tn-recruit-image { background: url("../images/recruitment.webp") center 42% / cover no-repeat; position: relative; }
.tn-recruit-image:after { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(36,184,90,.42), transparent 72%, rgba(242,84,14,.72)); mix-blend-mode: color; }

.tn-registration { display: grid; grid-template-columns: 1fr 1fr; gap: 76px; padding: 47px max(7.3vw, 42px) 30px; background: var(--tn-green); color: #fff; scroll-margin-top: 10px; }
.tn-registration-copy h2 { margin-top: 80px; font-size: 44px; line-height: 1.2; font-weight: 780; }
.tn-registration-copy > p:not(.tn-kicker) { max-width: 650px; font-size: 17px; line-height: 1.35; }
.tn-registration-form-wrap h3 { margin-bottom: 30px; color: #000; font-size: 30px; font-weight: 790; }
.tn-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.tn-fields label { display: block; }
.tn-fields input { width: 100%; height: 60px; padding: 0 25px; border: 0; border-radius: 30px; background: #f7f7f7; color: #555; font: 16px "Albert Sans TN", sans-serif; outline: 0; }
.tn-fields input:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.45); }
.tn-check { display: flex; gap: 14px; align-items: flex-start; margin-top: 22px; font-size: 11px; line-height: 1.25; }
.tn-check + .tn-check { margin-top: 3px; }
.tn-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--tn-orange); }
.tn-form button { width: 360px; height: 52px; margin-top: 28px; border: 0; border-radius: 26px; background: var(--tn-orange); color: #fff; font: 750 16px "Albert Sans TN", sans-serif; cursor: pointer; }
.tn-form button:disabled { opacity: .65; cursor: wait; }
.tn-form-message { min-height: 22px; margin: 12px 0 0; font-size: 14px; }
.tn-form-motif { display: flex; gap: 18px; margin-top: 45px; align-items: center; }
.tn-form-motif span { width: 150px; height: 80px; border: 4px solid #fff; border-radius: 0 42px 42px 0; box-shadow: inset 0 0 0 7px var(--tn-green), inset 0 0 0 11px #fff, inset 0 0 0 18px var(--tn-green), inset 0 0 0 22px #fff; }
.tn-form-motif i { width: 80px; height: 80px; border: 4px solid #fff; border-radius: 50%; box-shadow: inset 0 0 0 7px var(--tn-green), inset 0 0 0 11px #fff, inset 0 0 0 18px var(--tn-green), inset 0 0 0 22px #fff; }

.tn-institutions { padding: 22px 0 20px; text-align: center; background: #fff; }
.tn-institutions h2 { font-size: 16px; font-weight: 650; }
.tn-logo-slots { display: grid; grid-template-columns: repeat(3, 268px); justify-content: center; gap: 78px; margin-top: 20px; }
.tn-logo-slot { height: 95px; border: 1px solid #707070; background: #fff; }
.tn-footer { padding: 0 max(7.3vw, 42px) 35px; border-bottom: 63px solid #000; background: #fff; }
.tn-footer-brands { display: grid; grid-template-columns: 240px 1fr 230px; align-items: center; gap: 18px; }
.tn-footer-brands img { max-width: 100%; max-height: 130px; width: auto; height: auto; mix-blend-mode: multiply; } .tn-footer-brands img:last-child { max-height: 120px; justify-self: end; }
.tn-footer-rule { height: 14px; background: var(--tn-green); border-bottom: 5px solid #fff; box-shadow: 0 9px 0 var(--tn-green); }
.tn-footer-info { display: grid; grid-template-columns: 240px 1fr 260px; gap: 36px; margin-top: 40px; align-items: end; }
.tn-footer-info p { margin: 0; font-size: 16px; line-height: 1.35; }
.tn-footer-info strong { display: block; margin-bottom: 12px; font-size: 20px; }
.tn-footer-links a { display: block; color: #111; text-decoration: none; }

.tn-js .tn-reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.tn-js .tn-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1100px) {
  .tn-shell { width: min(92%, 900px); }
  .tn-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .tn-stat strong { font-size: clamp(54px, 8vw, 72px); }
  .tn-hero { min-height: 900px; } .tn-hero:before { background-position: 42% center; }
  .tn-hero-logo { width: 300px; }
  .tn-hero-date { top: 290px; min-width: 72vw; font-size: 44px; }
  .tn-hero-info { top: 420px; font-size: 28px; }
  .tn-hero-copy { width: 600px; bottom: 60px; }
  .tn-hero-copy h1 { font-size: 58px; }
  .tn-path-grid { grid-template-columns: 1fr 1fr; gap: 70px 40px; }
  .tn-cards { grid-template-columns: 1fr; }
  .tn-card { height: 360px; }
  .tn-downloads, .tn-focus, .tn-recruit, .tn-registration { grid-template-columns: 1fr; }
  .tn-focus-image { min-height: 560px; }
  .tn-recruit-image { min-height: 420px; }
  .tn-registration-copy h2 { margin-top: 38px; }
  .tn-logo-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding: 0 40px; }
  .tn-footer-brands { grid-template-columns: minmax(160px, .8fr) minmax(0, 1fr) minmax(160px, .8fr); gap: 12px; }
  .tn-footer-info { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  .tn-footer-info > * { min-width: 0; }
}

@media (max-width: 767px) {
  .tn-shell { width: calc(100% - 36px); }
  .tn-cta { min-height: 48px; padding: 0 22px; border-radius: 14px; font-size: 14px; }
  .tn-cta-wide { min-width: 0; width: calc(100% - 36px); min-height: 66px; border-radius: 22px; font-size: 18px; }
  .tn-hero { min-height: 790px; }
  .tn-hero:before { background-size: 1050px auto; background-position: 16% 65px; }
  .tn-hero:after { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,.12); pointer-events: none; }
  .tn-hero-logo { top: 18px; width: 210px; z-index: 2; }
  .tn-hero-top-cta { top: 120px; right: 18px; z-index: 4; }
  .tn-motif { width: 72px; height: 72px; z-index: 2; }
  .tn-motif-a { top: 30px; left: 18px; }
  .tn-motif-b { top: 200px; right: 22px; }
  .tn-motif:after { inset: 18px; }
  .tn-hero-date { top: 245px; min-width: 92%; min-height: 74px; padding: 0 25px 0 18px; border-radius: 0 25px 25px 0; font-size: 32px; z-index: 2; }
  .tn-hero-info { top: 338px; left: 18px; font-size: 20px; z-index: 2; }
  .tn-hero-copy { left: 18px; bottom: 36px; width: calc(100% - 36px); z-index: 2; }
  .tn-hero-copy h1 { width: 78%; font-size: 43px; }
  .tn-hero-copy h2 { font-size: 19px; }
  .tn-hero-copy p { width: 75%; font-size: 15px; }
  .tn-stats { padding: 34px 0 58px; }
  .tn-stats-cta { margin-bottom: 55px; }
  .tn-stats-grid { grid-template-columns: 1fr; gap: 44px; }
  .tn-stat strong { font-size: 64px; }
  .tn-paths { padding: 48px 0 70px; }
  .tn-paths-head h2 { font-size: 34px; }
  .tn-path-grid { grid-template-columns: 1fr; gap: 58px; }
  .tn-experience { padding: 42px 0; }
  .tn-experience h2 { font-size: 34px; }
  .tn-card { height: 330px; }
  .tn-card h3 { font-size: 44px; }
  .tn-lounge h3 { font-size: 31px; }
  .tn-download { padding: 55px 24px; }
  .tn-download h2 { font-size: 42px; }
  .tn-file-link { width: 100%; }
  .tn-focus-image { min-height: 440px; }
  .tn-focus-copy, .tn-recruit-copy { padding: 46px 24px; }
  .tn-focus-copy h2, .tn-recruit-copy h2, .tn-offer h2 { font-size: 35px; }
  .tn-registration { gap: 48px; padding: 54px 24px 48px; }
  .tn-registration-copy h2 { font-size: 35px; }
  .tn-fields { grid-template-columns: 1fr; gap: 14px; }
  .tn-form button { width: 100%; }
  .tn-logo-slots { grid-template-columns: 1fr; gap: 18px; padding: 0 24px; }
  .tn-footer { padding: 0 24px 35px; }
  .tn-footer-brands { grid-template-columns: 1fr; text-align: center; }
  .tn-footer-rule { display: none; }
  .tn-footer-brands img { margin: 0 auto; }
  .tn-footer-info { grid-template-columns: 1fr; margin-top: 40px; text-align: left; }
}







