/* Tarv Shopify Sections. Everything is scoped to .tv */
.tv,.tv *,.tv *::before,.tv *::after{box-sizing:border-box}
.tv{--tv-wh:#fff;--tv-r:20px;font-family:var(--tv-font,"Inter Tight",Helvetica,Arial,sans-serif);color:var(--tv-ink,#141414);line-height:1.5;-webkit-font-smoothing:antialiased;position:relative}
.tv-full{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw)}
.tv a{text-decoration:none;color:inherit;box-shadow:none}
.tv .tv-h1,.tv .tv-h2,.tv .tv-h3,.tv .tv-p{font-family:inherit!important;color:inherit!important;margin:0!important;padding:0!important;text-transform:none!important;text-shadow:none!important}
.tv .tv-k{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin:0}
.tv .tv-or{color:var(--tv-or)}
.tv-btn,.tv .tv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--tv-ink);color:var(--tv-or)!important;font:600 15px var(--tv-font,sans-serif);padding:15px 26px;border:0;border-radius:99px;cursor:pointer;transition:transform .25s,opacity .25s;line-height:1.2;text-decoration:none}
.tv .tv-btn:hover{transform:translateY(-3px);opacity:.92}
.tv .tv-btn-or{background:var(--tv-or);color:var(--tv-ink)!important}
.tv .tv-btn:disabled{opacity:.6;cursor:wait}

/* ---------- Hero ---------- */
.tv-hero{background:var(--tv-or);min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:clamp(90px,10vw,140px) clamp(18px,3vw,48px) clamp(40px,5vw,70px);overflow:hidden}
.tv-hgrid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:clamp(28px,5vw,90px);align-items:center;width:100%;max-width:1800px;margin:0 auto}
.tv .tv-h1{font-weight:800!important;font-size:clamp(40px,8.2vw,168px)!important;line-height:.88!important;letter-spacing:-.045em!important;text-transform:uppercase!important;text-align:left}
.tv-h1 span{display:block;overflow:hidden;padding-bottom:.05em}
.tv-h1 em{display:block;font-style:normal;transform:translateY(105%);animation:tvup 1.1s cubic-bezier(.2,.8,.2,1) forwards}
.tv-h1 span:nth-child(2) em{animation-delay:.12s}
@keyframes tvup{to{transform:none}}
.tv-hl .tv-k{margin-top:clamp(22px,3vw,40px)}
.tv .tv-d{font-size:clamp(20px,2.2vw,30px);line-height:1.2;font-weight:500;letter-spacing:-.02em;max-width:560px;margin-top:14px!important}
.tv .tv-est{margin-top:22px;font-size:12px}
.tv-fw{perspective:1200px;animation:tvslide 1.1s .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes tvslide{from{transform:translateX(110%);opacity:0}}
.tv-form{background:var(--tv-li);border-radius:var(--tv-r);padding:clamp(18px,2.4vw,30px);display:grid;gap:10px;box-shadow:0 30px 60px #14141433;transition:transform .15s;transform-style:preserve-3d;margin:0}
.tv .tv-ft{font-size:22px;font-weight:800!important;letter-spacing:-.02em;line-height:1.1}
.tv .tv-fs{font-size:13px;color:#5d5b57!important}
.tv .tv-form input,.tv .tv-form textarea{width:100%!important;background:#fff!important;border:1.5px solid transparent!important;border-radius:12px!important;padding:13px 14px!important;font:inherit!important;font-size:16px!important;color:var(--tv-ink)!important;outline:0!important;box-shadow:none!important;margin:0!important;height:auto!important;resize:vertical}
.tv .tv-form input:focus,.tv .tv-form textarea:focus{border-color:var(--tv-or)!important}
.tv .tv-form .tv-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.tv .tv-form .tv-btn{width:100%}
.tv-msg{font-size:14px;font-weight:600;min-height:0}.tv-msg.err{color:#c0262d}.tv-msg.ok{color:#1d7a3a}
.tv-formbox .tv-fw{animation:none}

/* ---------- Hero Light (White Modern) ---------- */
.tv-hero-light{background:#ffffff;position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:clamp(90px,10vw,140px) clamp(18px,3vw,48px) clamp(40px,5vw,70px);overflow:hidden;border-bottom:1px solid #f0efed}
.tv-hero-light .tv-hl-ambient{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 20%,rgba(255,90,20,0.08) 0%,transparent 45%),radial-gradient(circle at 10% 85%,rgba(255,138,0,0.04) 0%,transparent 40%),radial-gradient(#14141407 1px,transparent 1px);background-size:100% 100%,100% 100%,32px 32px}
.tv-hero-light .tv-hgrid{position:relative;z-index:2}
.tv-hero-light .tv-hl-badge{display:inline-flex;align-items:center;gap:10px;background:#faf9f7;border:1px solid #e8e6e2;border-radius:99px;padding:7px 18px 7px 14px;margin-bottom:clamp(20px,2.5vw,32px);box-shadow:0 2px 10px rgba(20,20,20,0.03)}
.tv-hero-light .tv-hl-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--tv-or);box-shadow:0 0 0 4px rgba(255,90,20,0.2);display:inline-block;animation:tvpulse 2.2s infinite ease-in-out}
@keyframes tvpulse{0%,100%{box-shadow:0 0 0 3px rgba(255,90,20,0.2)}50%{box-shadow:0 0 0 7px rgba(255,90,20,0.05)}}
.tv-hero-light .tv-hl-badge .tv-k{color:#4b4845;font-size:12px;letter-spacing:.08em;font-weight:700;margin:0}
.tv-hero-light .tv-h1{color:var(--tv-ink)}
.tv-hero-light .tv-h1 .tv-hl-accent em{color:var(--tv-or)!important;background:linear-gradient(135deg,var(--tv-or) 0%,#ff7b1a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.tv-hero-light .tv-d{color:#4b4845!important;font-size:clamp(19px,2.2vw,28px);line-height:1.35;max-width:580px;margin-top:clamp(18px,2vw,26px)!important}
.tv-hero-light .tv-hl-stats{display:flex;align-items:center;gap:clamp(16px,2.5vw,32px);margin-top:clamp(28px,3.5vw,42px);padding:16px clamp(18px,2.2vw,28px);background:#faf9f8;border:1px solid #eae8e5;border-radius:18px;width:max-content;max-width:100%;box-shadow:0 4px 14px rgba(20,20,20,0.03)}
.tv-hero-light .tv-hl-stat{display:flex;flex-direction:column;gap:2px}
.tv-hero-light .tv-hl-stat-val{font-size:clamp(20px,2vw,26px);font-weight:800;color:var(--tv-ink);line-height:1.1;letter-spacing:-.02em}
.tv-hero-light .tv-hl-stat-lbl{font-size:12px;font-weight:600;color:#76736d;text-transform:uppercase;letter-spacing:.04em}
.tv-hero-light .tv-hl-stat-sep{width:1px;height:32px;background:#dedbd6}
.tv-hero-light .tv-est{color:#8c8983;margin-top:clamp(20px,2.2vw,30px)}
.tv-hero-light .tv-form{background:#ffffff;border:1.5px solid #eae8e5;box-shadow:0 30px 60px -15px rgba(20,20,20,0.08),0 6px 18px -4px rgba(20,20,20,0.04);border-radius:24px;padding:clamp(24px,3vw,38px)}
.tv-hero-light .tv-ft{color:var(--tv-ink);font-size:24px}
.tv-hero-light .tv-fs{color:#615f5a!important;font-size:14px;margin-bottom:8px!important}
.tv-hero-light .tv-form input,.tv-hero-light .tv-form textarea{background:#f9f8f6!important;border:1.5px solid #eae8e5!important;border-radius:14px!important;padding:14px 16px!important;color:var(--tv-ink)!important;font-size:15px!important;transition:border-color .2s,background .2s,box-shadow .2s!important}
.tv-hero-light .tv-form input:focus,.tv-hero-light .tv-form textarea:focus{background:#ffffff!important;border-color:var(--tv-or)!important;box-shadow:0 0 0 4px rgba(255,90,20,0.14)!important}
.tv-hero-light .tv-form .tv-btn{background:var(--tv-or)!important;color:#ffffff!important;box-shadow:0 12px 28px -4px rgba(255,90,20,0.42);border-radius:14px;padding:16px 28px;font-size:16px;font-weight:700;letter-spacing:.01em;margin-top:8px;transition:transform .25s,box-shadow .25s,opacity .25s}
.tv-hero-light .tv-form .tv-btn:hover{background:var(--tv-or)!important;opacity:1;transform:translateY(-2px);box-shadow:0 16px 36px -4px rgba(255,90,20,0.58)}

/* ---------- What we do ---------- */
.tv-wwd{background:var(--tv-li);padding:clamp(70px,10vw,140px) clamp(18px,3vw,40px)}
.tv-wtop{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(32px,5vw,64px)}
.tv .tv-wtop .tv-k{margin-bottom:12px}
.tv .tv-h2{font-weight:800!important;font-size:clamp(34px,6.2vw,96px)!important;line-height:.95!important;letter-spacing:-.04em!important;max-width:16ch}
.tv-link{font-size:14px;font-weight:600;border-bottom:2px solid var(--tv-ink)}
.tv-sg{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,22px);perspective:1400px}
.tv-sc{position:relative;border-radius:var(--tv-r);padding:clamp(22px,2.6vw,36px);min-height:340px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#fff;color:var(--tv-ink);transition:transform .25s,box-shadow .25s;transform-style:preserve-3d}
.tv-sc:hover{box-shadow:0 30px 50px #14141422}
.tv-sc.tv-w2{grid-column:span 2}
.tv-sc.tv-c-or{background:var(--tv-or)}.tv-sc.tv-c-ac{background:var(--tv-ac)}.tv-sc.tv-c-li{background:#fff}
.tv-sc.tv-c-ink{background:var(--tv-ink);color:var(--tv-li)}
.tv-no{font-size:13px;font-weight:600;letter-spacing:.08em;display:flex;justify-content:space-between;opacity:.85}
.tv .tv-sc .tv-h3{font-weight:800!important;font-size:clamp(28px,3.4vw,52px)!important;line-height:.98!important;letter-spacing:-.035em!important;margin:34px 0 12px!important;transform:translateZ(30px)}
.tv .tv-sc .tv-p{font-size:16px;line-height:1.35;max-width:38ch;opacity:.85;margin:0 0 20px!important}
.tv-tg{display:flex;flex-wrap:wrap;gap:8px}
.tv-tg span{font-size:13px;font-weight:500;border:1.5px solid currentColor;border-radius:99px;padding:5px 13px;transition:background .2s,color .2s}
.tv-sc:hover .tv-tg span{background:var(--tv-ink);color:var(--tv-li);border-color:var(--tv-ink)}
.tv-sc.tv-c-ink:hover .tv-tg span{background:var(--tv-or);color:var(--tv-ink);border-color:var(--tv-or)}
.tv-bg{position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;border:34px solid #14141414;transition:transform .6s;pointer-events:none}
.tv-c-ink .tv-bg{border-color:#ffffff14}.tv-sc:hover .tv-bg{transform:scale(1.25) rotate(40deg)}
.tv-sc.tv-c-cta{background:var(--tv-ink);color:var(--tv-or);justify-content:center;gap:20px;align-items:flex-start}
.tv .tv-c-cta .tv-h3{margin:0!important}
.tv-rv{opacity:0;transform:translateY(50px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}
.tv-rv.tv-in{opacity:1;transform:none}

/* ---------- 3D scroll process ---------- */
.tv-proc{height:500vh;background:var(--tv-ink);color:var(--tv-li)}
.tv-stage{position:absolute;top:0;left:0;width:100%;height:100vh;height:100svh;overflow:hidden;perspective:1400px;background:var(--tv-ink);--ch:380px}
.tv-hd{position:absolute;z-index:5;top:clamp(24px,5vh,56px);left:clamp(18px,3vw,40px);right:clamp(18px,3vw,40px)}
.tv-hd .tv-k{color:var(--tv-or)}
.tv .tv-hd .tv-h2{margin-top:8px!important;font-size:clamp(32px,6vw,88px)!important;max-width:none;transition:opacity .25s,transform .25s}
.tv-track{position:absolute;left:0;top:56%;margin-top:calc(var(--ch) / -2);display:flex;gap:clamp(14px,2vw,28px);padding:0 clamp(18px,3vw,40px);width:max-content;transform-style:preserve-3d;will-change:transform}
.tv-fc{flex:none;width:clamp(240px,24vw,320px);height:var(--ch);transform-style:preserve-3d;will-change:transform}
.tv-face{position:absolute;inset:0;border-radius:var(--tv-r);background:var(--tv-li);color:var(--tv-ink);overflow:hidden}
.tv-face.is-back{background:var(--tv-or)}
.tv-inner{height:100%;padding:clamp(20px,2vw,28px);display:flex;flex-direction:column;justify-content:space-between}
.tv-face.is-back .tv-inner{transform:scaleY(-1)} /* cancels the vertical mirror of the flipped card, so text reads correctly */
.tv-cf,.tv-cb{height:100%;display:flex;flex-direction:column;justify-content:space-between}
.tv-cb{display:none!important}.tv-face.is-back .tv-cf{display:none!important}.tv-face.is-back .tv-cb{display:flex!important}
.tv-n{font-weight:800;font-size:clamp(54px,6vw,84px);letter-spacing:-.05em;line-height:.8}
.tv .tv-face .tv-h3{font-weight:800!important;font-size:clamp(26px,2.6vw,36px)!important;letter-spacing:-.03em!important;line-height:1!important;margin-bottom:10px!important}
.tv .tv-face .tv-p{font-size:15px;line-height:1.35}
.tv-lb{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:8px;opacity:.7}
.tv-fin{flex:none;width:min(560px,84vw);height:var(--ch);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:22px;padding-right:6vw;position:relative;z-index:2;transform-style:preserve-3d;will-change:transform}
.tv .tv-fin .tv-h2{font-size:clamp(44px,7vw,104px)!important;color:var(--tv-or)!important}
.tv-prog{position:absolute;left:clamp(18px,3vw,40px);right:clamp(18px,3vw,40px);bottom:calc(22px + env(safe-area-inset-bottom,0px));height:3px;background:#ffffff26;border-radius:3px}
.tv-prog i{display:block;height:100%;width:0;background:var(--tv-or);border-radius:3px}

/* ---------- Responsive ---------- */
@media(max-width:900px){
 .tv-hgrid{grid-template-columns:1fr}
 .tv-hero,.tv-hero-light{align-items:flex-start}
 .tv-hero-light .tv-hl-stats{flex-wrap:wrap;gap:16px}
 .tv .tv-h1{font-size:clamp(40px,14vw,150px)!important}
 .tv-sg{grid-template-columns:1fr 1fr}.tv-sc.tv-w2{grid-column:span 2}.tv-sc{min-height:300px}
 .tv-stage{--ch:350px}
}
@media(max-width:600px){
 .tv-hero-light .tv-hl-stats{width:100%;justify-content:space-between;padding:14px}
 .tv-sg{grid-template-columns:1fr}.tv-sc.tv-w2{grid-column:auto}.tv-sc{min-height:270px}
 .tv-stage{--ch:330px}.tv .tv-hd .tv-h2{font-size:clamp(28px,9.5vw,44px)!important}
 .tv-fc{width:72vw}.tv-track{top:60%}
 .tv .tv-face .tv-h3{font-size:26px!important}
}
@media(prefers-reduced-motion:reduce){.tv-h1 em,.tv-fw{animation:none;transform:none}.tv-rv{opacity:1;transform:none}}
