/*
Theme Name: Inspiro Child
Template: inspiro
Version: 1.0
*/

/* ===== Multi-page CSS below. Scope per page with body classes, e.g. .page-id-12 { } ===== */

/*Homepage CSS Start*/
/* ===== TORONTO — Homepage "Transit" (same system as page 129) ===== */

/* ---------- site-wide tokens + fonts (every page) ---------- */
:root{
  --brand:#0f766e; --brand-2:#14b8a6; --brand-3:#2dd4bf;
  --ink:#0e2b28; --ink-soft:#20302d;
  --glow:15,118,110; --glow2:45,212,191;
  --shadow:13,60,55;
  --line:#d7e9e5; --paper:#eef6f4; --card:#ffffff; --dark:#0b201e; --on-dark:#eafaf7;
  --font-head:'Space Grotesk',sans-serif; --font-body:'Manrope',sans-serif;
}
html,body{overflow-x:hidden;}
body{background:var(--paper)!important;}
.elementor-kit-5{
  --e-global-typography-primary-font-family:"Space Grotesk"!important;
  --e-global-typography-secondary-font-family:"Manrope"!important;
  --e-global-typography-text-font-family:"Manrope"!important;
  --e-global-typography-accent-font-family:"Manrope"!important;
}
body,button,input,select,textarea{font-family:'Manrope',sans-serif!important;}
h1,h2,h3,h4,h5,h6,.elementor-heading-title{font-family:'Space Grotesk',sans-serif!important;letter-spacing:-0.02em;}

/* ---------- homepage scope ---------- */
body.home{
  --t-brand:#0f766e; --t-brand-2:#14b8a6; --t-brand-3:#2dd4bf; --t-mint:#99f6e4;
  --t-ink:#0e2b28; --t-muted:#4b635f; --t-line:#d7e9e5; --t-paper:#eef6f4; --t-dark:#081a17;
  --t-glow:20,184,166; --t-ease:cubic-bezier(.22,1,.36,1);
  background:#fff!important;
}
/* sticky cards need clip (not hidden) on html/body */
html:has(body.home),body.home{overflow-x:clip!important;}
/* light hero → solid header */
body.home .site-header.headroom--top .navbar{background:rgba(14,43,40,.97)!important;}

/* ---------- base ---------- */
.elementor-12 .elementor-heading-title{font-family:'Space Grotesk',sans-serif!important;color:var(--t-ink)!important;letter-spacing:-0.035em;}
.elementor-12 p,.elementor-12 li{font-family:'Manrope',sans-serif!important;color:var(--t-muted);font-size:17px;line-height:1.75;}
.elementor-12 .elementor-widget__width-initial{width:100%!important;max-width:100%!important;--container-widget-width:100%!important;}
.elementor-12 .elementor-widget-text-editor a{
  color:var(--t-brand);font-weight:700;text-decoration:none;
  background:linear-gradient(rgba(var(--t-glow),.25),rgba(var(--t-glow),.25)) 0 100% / 100% 35% no-repeat;
  transition:background-size .3s ease,color .2s ease;
}
.elementor-12 .elementor-widget-text-editor a:hover{background-size:100% 100%;color:var(--t-ink);}

/* ---------- buttons: ink pill + teal arrow disc ---------- */
.elementor-12 .elementor-button{
  display:inline-flex!important;align-items:center;gap:16px;padding:9px 9px 9px 28px!important;border-radius:999px!important;
  background:var(--t-ink)!important;color:#fff!important;font:600 16px/1 'Manrope',sans-serif!important;letter-spacing:.2px;
  box-shadow:0 14px 30px rgba(14,43,40,.22);transition:background .3s ease,translate .3s var(--t-ease),box-shadow .3s ease;
}
.elementor-12 .elementor-button::after{
  content:"\2192";display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  background:var(--t-brand-2);color:var(--t-ink);font:700 18px/1 'Space Grotesk',sans-serif;transition:rotate .45s var(--t-ease);
}
.elementor-12 .elementor-button:hover{background:var(--t-brand)!important;translate:0 -2px;box-shadow:0 20px 40px rgba(var(--t-glow),.3);}
.elementor-12 .elementor-button:hover::after{rotate:-45deg;}

/* ---------- sections + the transit rail ---------- */
.elementor-12 > .e-con.th-sec{padding-top:var(--th-pt,96px)!important;padding-bottom:var(--th-pb,96px)!important;min-height:0!important;--min-height:0px!important;}
.elementor-12 > .e-con.th-sec > .e-con-inner{position:relative;padding-left:76px!important;min-height:0!important;}
.elementor-12 .elementor-element.elementor-element-c093a84{background:#fff!important;background-image:none!important;}
.elementor-12 .elementor-element.elementor-element-48ef507{background:var(--t-paper)!important;background-image:none!important;}
.elementor-12 .elementor-element.elementor-element-5f6a067{background:#fff!important;background-image:none!important;--th-pb:0px;}
.elementor-12 .elementor-element.elementor-element-9b86bca{background:#fff!important;background-image:none!important;--th-pt:48px;}
.elementor-12 .elementor-element.elementor-element-afdae96{background:var(--t-paper)!important;background-image:none!important;}
.elementor-12 .elementor-element.elementor-element-773dde1{background:#fff!important;background-image:none!important;}
.elementor-12 .elementor-element.elementor-element-bc04a6d{background:var(--t-paper)!important;background-image:none!important;}
.elementor-12 .elementor-element.elementor-element-7468012{background:#fff!important;background-image:none!important;}
.elementor-12 .th-rail{
  position:absolute;left:22px;width:4px;border-radius:4px;background:var(--t-line);pointer-events:none;z-index:0;
  top:calc(var(--th-pt,96px) * -1);bottom:calc(var(--th-pb,96px) * -1);
}
.elementor-12 .th-first .th-rail{top:0;border-radius:4px 4px 0 0;}
.elementor-12 .th-last .th-rail{bottom:0;}
.elementor-12 .th-rail__fill{
  position:absolute;inset:0;border-radius:inherit;background:linear-gradient(var(--t-brand-2),var(--t-brand));
  transform:scaleY(var(--p,0));transform-origin:top;
}
/* station (JS places it level with each section's first heading) */
.elementor-12 .th-stop{
  position:absolute;left:12px;top:0;width:24px;height:24px;border-radius:50%;z-index:2;pointer-events:none;
  background:#fff;border:5px solid var(--t-line);box-sizing:border-box;
  transform:scale(.6);transition:transform .6s cubic-bezier(.34,1.56,.64,1),border-color .4s ease,box-shadow .4s ease;
}
.elementor-12 .th-stop.th-in{transform:scale(1);border-color:var(--t-brand-2);box-shadow:0 0 0 7px rgba(var(--t-glow),.16);}

/* ---------- section headings: big + highlighter sweep ---------- */
.elementor-12 .th-sec > .e-con-inner > .elementor-widget-heading{margin-bottom:40px!important;}
.elementor-12 .th-sec > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.elementor-12 .ai-heading__title{
  font-size:clamp(34px,4.4vw,60px)!important;font-weight:700!important;line-height:1.05!important;color:var(--t-ink)!important;
  display:inline;padding:0 .08em;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  background-image:linear-gradient(transparent 62%,rgba(var(--t-glow),.38) 62%,rgba(var(--t-glow),.38) 92%,transparent 92%);
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size 1s var(--t-ease);transition-delay:calc(var(--d,0ms) + 450ms);
}
.elementor-12 .th-sec > .e-con-inner > .elementor-widget-heading.th-in .elementor-heading-title,
.elementor-12 .elementor-widget-html.th-in .ai-heading__title{background-size:100% 100%;}
.elementor-12 .ai-heading{margin-bottom:26px;}
.elementor-12 .ai-heading__eyebrow{margin:0 0 14px!important;color:var(--t-brand);font:700 13px/1.2 'Manrope',sans-serif;letter-spacing:.18em;}

/* ================= HERO (914b88c) — subway map, word slide, hanging sign, ticker ================= */
.elementor-12 .elementor-element.elementor-element-914b88c{
  position:relative;isolation:isolate;overflow:hidden;min-height:92vh!important;
  padding:150px 24px 0!important;background-color:var(--t-paper)!important;background-image:none!important;--background-overlay:none;
}
.elementor-12 .elementor-element.elementor-element-914b88c::before{display:none!important;}
.elementor-12 .elementor-element.elementor-element-914b88c > .e-con-inner{
  position:relative;z-index:2;display:grid!important;width:100%;
  grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);grid-template-rows:1fr auto auto;gap:34px 72px;align-items:end;
  min-height:calc(92vh - 150px)!important;padding-bottom:0!important;
}
.elementor-12 .th-map{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.8;}
.elementor-12 .th-map .tl{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:thDraw 2.6s var(--t-ease) .2s forwards;}
.elementor-12 .th-map .tl1{stroke:var(--t-brand-2);stroke-width:12;}
.elementor-12 .th-map .tl2{stroke:var(--t-mint);stroke-width:8;animation-delay:.7s;}
.elementor-12 .th-map .st{fill:#fff;stroke-width:5;transform-box:fill-box;transform-origin:center;transform:scale(0);animation:thPop .6s cubic-bezier(.34,1.56,.64,1) forwards;}
.elementor-12 .th-map .st1{stroke:var(--t-brand);}
.elementor-12 .th-map .st2{stroke:var(--t-brand-2);}
.elementor-12 .th-map .stx{stroke:var(--t-ink);stroke-width:6;}
@keyframes thDraw{to{stroke-dashoffset:0}}
@keyframes thPop{to{transform:scale(1)}}

/* headline */
.elementor-12 .elementor-element-d3d7175{grid-column:1;grid-row:1;align-self:end;text-align:left!important;}
.elementor-12 .elementor-element-d3d7175 .elementor-heading-title{
  font-size:clamp(40px,5.4vw,80px)!important;font-weight:700!important;line-height:1!important;letter-spacing:-0.05em;text-align:left!important;
}
.elementor-12 .th-w{display:inline-block;transition:transform 1s var(--t-ease),opacity .8s ease;transition-delay:calc(var(--i,0) * 110ms + 150ms);}
html.th-ready .elementor-12 .th-w{opacity:0;transform:translateX(var(--from,-60px));}
html.th-ready .elementor-12 .th-hero-in .th-w{opacity:1;transform:none;}
.elementor-12 .th-accent{color:var(--t-brand);position:relative;}
.elementor-12 .th-accent::after{
  content:"";position:absolute;left:0;right:0;bottom:.02em;height:.14em;background:var(--t-brand-3);z-index:-1;
  transform:scaleX(0);transform-origin:left;transition:transform .9s var(--t-ease) 1.2s;
}
.elementor-12 .th-hero-in .th-accent::after{transform:scaleX(1);}

/* button */
.elementor-12 .elementor-element-94a541b{grid-column:1;grid-row:2;justify-self:start;}

/* hanging station sign (the intro paragraph) */
.elementor-12 .elementor-element.elementor-element-c3c5b53{
  grid-column:2;grid-row:1 / span 2;align-self:end;position:relative;width:100%!important;
  padding:30px 30px 28px!important;background:var(--t-ink);border-top:8px solid var(--t-brand-2);border-radius:14px;
  box-shadow:0 30px 60px rgba(14,43,40,.3);transform-origin:50% -44px;
}
.elementor-12 .elementor-element-c3c5b53::before,
.elementor-12 .elementor-element-c3c5b53::after{
  content:"";position:absolute;top:-52px;width:2px;height:44px;background:var(--t-ink);opacity:.45;pointer-events:none;
}
.elementor-12 .elementor-element-c3c5b53::before{left:38px;}
.elementor-12 .elementor-element-c3c5b53::after{right:38px;}
.elementor-12 .elementor-element-c3c5b53 p{margin:0;color:rgba(255,255,255,.9)!important;font-size:18px;line-height:1.65;}

/* hero image (JS pulls it from the container's Elementor background) — the sign hangs in front of it */
.elementor-12 .th-hero-img{grid-column:2;grid-row:1;align-self:end;position:relative;z-index:1;filter:drop-shadow(0 26px 34px rgba(14,43,40,.18));}
.elementor-12 .th-hero-img .th-frame{aspect-ratio:4 / 3.3;}
.elementor-12 .th-has-img .elementor-element.elementor-element-c3c5b53{
  grid-row:2;align-self:start;justify-self:start;z-index:3;
  width:calc(100% - 20px)!important;margin:-120px 0 0 -44px!important;
}

/* ticker (the existing marquee) */
.elementor-12 .elementor-element-f0f5efb{grid-column:1 / -1;grid-row:3;margin-top:36px!important;}
.elementor-12 .elementor-element-f0f5efb .ids-marquee{background:var(--t-ink);padding:16px 0!important;width:100vw!important;}
.elementor-12 .elementor-element-f0f5efb .ids-marquee__item{
  color:var(--t-mint)!important;font:500 15px/1.6 'Space Grotesk',sans-serif!important;letter-spacing:.01em;padding:0 34px!important;
}
.elementor-12 .elementor-element-f0f5efb .ids-marquee__item::before{
  content:"";display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:16px;vertical-align:1px;
  background:var(--t-brand-3);box-shadow:0 0 0 4px rgba(var(--t-glow),.22);
}

/* ================= IMAGES (JS wraps in .th-frame) — leaf shape + diagonal wipe ================= */
.elementor-12 .elementor-widget-image{width:100%!important;}
.elementor-12 .th-frame{position:relative;display:block;overflow:hidden;border-radius:64px 8px 64px 8px;aspect-ratio:4 / 3;}
.elementor-12 .th-frame img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;border-radius:0!important;transition:transform 1s var(--t-ease);}
.elementor-12 .elementor-widget-image:hover .th-frame img{transform:scale(1.05);}
html.th-ready .elementor-12 .th-diag .th-frame{
  clip-path:polygon(0% 0%,0% 0%,-30% 100%,-30% 100%);
  transition:clip-path 1.3s var(--t-ease);transition-delay:var(--d,0ms);
}
html.th-ready .elementor-12 .th-diag.th-in .th-frame{clip-path:polygon(0% 0%,130% 0%,100% 100%,-30% 100%);}

/* ================= c093a84 — two platform cards ================= */
.elementor-12 .elementor-element-c093a84 > .e-con-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;align-items:stretch;}
.elementor-12 .elementor-element.elementor-element-03d52e6,
.elementor-12 .elementor-element.elementor-element-f5fdb50{
  display:flex!important;flex-direction:column;gap:14px;width:100%!important;padding:22px 22px 34px!important;
  background:#fff;border:1px solid var(--t-line);border-radius:22px;box-shadow:0 18px 40px rgba(14,43,40,.07);
  transition:translate .45s var(--t-ease),box-shadow .45s ease;
}
.elementor-12 .elementor-element-03d52e6:hover,
.elementor-12 .elementor-element-f5fdb50:hover{translate:0 -6px;box-shadow:0 28px 56px rgba(var(--t-glow),.16);}
.elementor-12 .elementor-element-03d52e6 .elementor-widget-image,
.elementor-12 .elementor-element-f5fdb50 .elementor-widget-image{order:-1;margin-bottom:12px!important;}
.elementor-12 .elementor-element-f5fdb50 .th-frame{border-radius:8px 64px 8px 64px;}
.elementor-12 .elementor-element-03d52e6 > .elementor-widget:not(.elementor-widget-image),
.elementor-12 .elementor-element-f5fdb50 > .elementor-widget:not(.elementor-widget-image){padding:0 12px;}
.elementor-12 .elementor-element-03d52e6 .elementor-heading-title,
.elementor-12 .elementor-element-f5fdb50 .elementor-heading-title{font-size:clamp(24px,2.2vw,30px)!important;font-weight:700!important;line-height:1.15!important;}
.elementor-12 .elementor-element-03d52e6 p,.elementor-12 .elementor-element-f5fdb50 p{margin:0;}

/* ================= 48ef507 — "lines": split rows with route bullets ================= */
.elementor-12 .elementor-element-79f19fc p{margin:0;max-width:760px;color:var(--t-ink)!important;font-size:clamp(19px,1.6vw,22px);font-weight:500;line-height:1.6;}
.elementor-12 .elementor-element.elementor-element-39f85df{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:0;width:100%!important;margin-top:48px;counter-reset:thline;}
.elementor-12 .elementor-element.elementor-element-536fcaa,
.elementor-12 .elementor-element.elementor-element-0076c50{
  display:grid!important;grid-template-rows:auto auto;column-gap:64px;row-gap:14px;align-content:center;
  width:100%!important;padding:56px 0!important;border-top:2px solid var(--t-ink);counter-increment:thline;
}
.elementor-12 .elementor-element.elementor-element-536fcaa{grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-areas:"img head" "img text";}
.elementor-12 .elementor-element.elementor-element-0076c50{grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-areas:"head img" "text img";border-bottom:2px solid var(--t-ink);}
.elementor-12 .elementor-element-536fcaa .elementor-widget-image,
.elementor-12 .elementor-element-0076c50 .elementor-widget-image{grid-area:img;align-self:center;margin:0!important;}
.elementor-12 .elementor-element-0076c50 .th-frame{border-radius:8px 64px 8px 64px;}
.elementor-12 .elementor-element-536fcaa .elementor-widget-heading,
.elementor-12 .elementor-element-0076c50 .elementor-widget-heading{grid-area:head;align-self:end;}
.elementor-12 .elementor-element-536fcaa .elementor-widget-text-editor,
.elementor-12 .elementor-element-0076c50 .elementor-widget-text-editor{grid-area:text;align-self:start;}
.elementor-12 .elementor-element-536fcaa .elementor-heading-title,
.elementor-12 .elementor-element-0076c50 .elementor-heading-title{font-size:clamp(28px,3vw,42px)!important;font-weight:700!important;line-height:1.08!important;}
.elementor-12 .elementor-element-536fcaa .elementor-heading-title::before,
.elementor-12 .elementor-element-0076c50 .elementor-heading-title::before{
  content:counter(thline);display:inline-grid;place-items:center;width:1.3em;height:1.3em;margin:0 .4em .12em 0;vertical-align:middle;
  border-radius:50%;background:var(--t-brand-2);color:var(--t-ink);font-size:.62em;letter-spacing:0;
}
.elementor-12 .elementor-element-536fcaa p,.elementor-12 .elementor-element-0076c50 p{margin:0;}

/* ================= 5f6a067 — Innovative Web Design (Swiss split) ================= */
.elementor-12 .elementor-element.elementor-element-9fea8dc,
.elementor-12 .elementor-element.elementor-element-8dd84f6,
.elementor-12 .elementor-element.elementor-element-36d1b3e{min-height:0!important;--min-height:0px!important;height:auto!important;}
.elementor-12 .elementor-element.elementor-element-9fea8dc{
  display:grid!important;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:64px;align-items:start;width:100%!important;
}
.elementor-12 .elementor-element-8dd84f6 p{margin:0;color:var(--t-ink)!important;font-size:clamp(19px,1.6vw,22px);font-weight:500;line-height:1.6;}
.elementor-12 .elementor-element-36d1b3e{padding-top:22px;border-top:2px solid var(--t-ink);}
.elementor-12 .elementor-element-36d1b3e p{margin:0;}

/* ================= 9b86bca — two hanging signs ================= */
.elementor-12 .elementor-element-9b86bca > .e-con-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;align-items:start;}
.elementor-12 .elementor-element.elementor-element-5f7afb4,
.elementor-12 .elementor-element.elementor-element-4412cd6{
  display:flex!important;flex-direction:column;gap:16px;width:100%!important;padding:30px 30px 34px!important;
  background:var(--t-ink)!important;border-top:8px solid var(--t-brand-2);border-radius:14px;
  box-shadow:0 30px 60px rgba(14,43,40,.25);transform-origin:50% -40px;
  transition:rotate .45s var(--t-ease),translate .45s var(--t-ease),box-shadow .45s ease;
}
.elementor-12 .elementor-element.elementor-element-4412cd6{margin-top:64px!important;}
.elementor-12 .elementor-element-5f7afb4:hover,.elementor-12 .elementor-element-4412cd6:hover{rotate:-1deg;translate:0 -6px;box-shadow:0 38px 70px rgba(14,43,40,.32);}
.elementor-12 .elementor-element-5f7afb4 .elementor-heading-title,
.elementor-12 .elementor-element-4412cd6 .elementor-heading-title{color:#fff!important;font-size:clamp(22px,2vw,28px)!important;font-weight:700!important;line-height:1.2!important;}
.elementor-12 .elementor-element-5f7afb4 p,.elementor-12 .elementor-element-4412cd6 p{margin:0;color:rgba(255,255,255,.82)!important;}
.elementor-12 .elementor-element-5f7afb4 .th-frame,.elementor-12 .elementor-element-4412cd6 .th-frame{aspect-ratio:16 / 10;}
.elementor-12 .elementor-element-4412cd6 .th-frame{border-radius:8px 64px 8px 64px;}

/* ================= afdae96 — AI services: stacked sticky cards ================= */
.elementor-12 .elementor-element.elementor-element-afdae96,
.elementor-12 .elementor-element-afdae96 > .e-con-inner{overflow:visible!important;}
.elementor-12 .elementor-element-16696b0{margin-bottom:44px!important;}
.elementor-12 .elementor-element-16696b0 p{margin:0;max-width:820px;}
.elementor-12 .elementor-element.elementor-element-cad1f38{
  display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;gap:28px;width:100%!important;
  overflow:visible!important;padding:0 0 10vh!important;scroll-snap-type:none!important;counter-reset:thstop;
}
.elementor-12 .elementor-element-cad1f38 > .e-child{
  position:sticky;top:calc(110px + var(--i,0) * 26px);counter-increment:thstop;
  display:grid!important;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto auto;
  grid-template-areas:"img head" "img text";column-gap:48px;row-gap:12px;align-content:center;
  width:100%!important;max-width:none!important;min-height:360px;padding:30px!important;border-radius:24px;
  background:#fff;border:1px solid var(--t-line);box-shadow:0 -10px 40px rgba(14,43,40,.08);
  transform-origin:top center;transition:filter .3s ease;
}
.elementor-12 .elementor-element-cad1f38 > .e-child:nth-child(even){background:var(--t-ink);border-color:var(--t-ink);}
.elementor-12 .elementor-element-cad1f38 > .e-child .elementor-widget-image{grid-area:img;align-self:center;position:relative;margin:0!important;}
.elementor-12 .elementor-element-cad1f38 > .e-child .elementor-widget-image::before{
  content:"Stop " counter(thstop,decimal-leading-zero);
  position:absolute;top:16px;left:16px;right:auto;bottom:auto;width:auto;height:auto;z-index:3;pointer-events:none;
  padding:7px 12px;border-radius:999px;background:var(--t-brand-3);color:var(--t-ink);
  font:700 12px/1 'Manrope',sans-serif;letter-spacing:.12em;text-transform:uppercase;
}
.elementor-12 .elementor-element-cad1f38 > .e-child .elementor-widget-heading{grid-area:head;align-self:end;}
.elementor-12 .elementor-element-cad1f38 > .e-child .elementor-widget-text-editor{grid-area:text;align-self:start;}
.elementor-12 .elementor-element-cad1f38 > .e-child .elementor-heading-title{font-size:clamp(24px,2.4vw,34px)!important;font-weight:700!important;line-height:1.12!important;}
.elementor-12 .elementor-element-cad1f38 > .e-child p{margin:0;font-size:16.5px;}
.elementor-12 .elementor-element-cad1f38 > .e-child:nth-child(even) .elementor-heading-title{color:#fff!important;}
.elementor-12 .elementor-element-cad1f38 > .e-child:nth-child(even) p{color:rgba(255,255,255,.82)!important;}
.elementor-12 .elementor-element-cad1f38 > .e-child:nth-child(even) .th-frame{border-radius:8px 64px 8px 64px;}
.elementor-12 .elementor-element-6086c10 p{margin:0;max-width:820px;}

/* ================= b88340c — bright teal band + outline marquee ================= */
.elementor-12 .elementor-element.elementor-element-b88340c{
  --th-pt:220px;position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(120deg,var(--t-brand) 0%,var(--t-brand-2) 100%)!important;
}
.elementor-12 .th-marq{position:absolute;top:44px;left:0;width:100%;overflow:hidden;z-index:0;pointer-events:none;}
.elementor-12 .th-marq__track{display:inline-flex;white-space:nowrap;animation:thMarq 45s linear infinite;}
.elementor-12 .th-marq__track span{
  padding-right:60px;font:700 clamp(64px,9vw,130px)/1 'Space Grotesk',sans-serif;letter-spacing:-0.03em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.35);
}
@keyframes thMarq{to{transform:translateX(-50%)}}
.elementor-12 .elementor-element-b88340c > .e-con-inner{z-index:1;}
.elementor-12 .elementor-element-b88340c .th-rail{background:rgba(255,255,255,.28);}
.elementor-12 .elementor-element-b88340c .th-rail__fill{background:#fff;}
.elementor-12 .elementor-element-b88340c .th-stop{border-color:rgba(255,255,255,.5);}
.elementor-12 .elementor-element-b88340c .th-stop.th-in{border-color:#fff;box-shadow:0 0 0 7px rgba(255,255,255,.2);}
.elementor-12 .elementor-element-69e9ceb{max-width:940px!important;}
.elementor-12 .elementor-element-69e9ceb :is(h3,span){
  margin:0;color:#fff!important;font-family:'Space Grotesk',sans-serif!important;font-size:clamp(22px,2.4vw,32px);line-height:1.4;font-weight:500!important;letter-spacing:-0.015em;
}

/* ================= 773dde1 — Why INNO: transit tickets ================= */
.elementor-12 .elementor-element.elementor-element-e60fe8c{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;width:100%!important;}
.elementor-12 .elementor-element-fd788bb,
.elementor-12 .elementor-element-303bc9c{
  position:relative;width:100%!important;padding:38px 130px 38px 38px!important;border-radius:16px;
  background:
    radial-gradient(circle at calc(100% - 55px) 50%,var(--t-brand-2) 0 13px,transparent 14px),
    radial-gradient(circle at calc(100% - 55px) 50%,rgba(var(--t-glow),.18) 0 24px,transparent 25px),
    repeating-linear-gradient(to bottom,var(--t-line) 0 8px,transparent 8px 16px) calc(100% - 110px) 0 / 2px 100% no-repeat,
    #fff;
  border:1px solid var(--t-line);box-shadow:0 18px 40px rgba(14,43,40,.08);
  transition:rotate .45s var(--t-ease),translate .45s var(--t-ease),box-shadow .45s ease;
}
.elementor-12 .elementor-element-fd788bb::before,.elementor-12 .elementor-element-fd788bb::after,
.elementor-12 .elementor-element-303bc9c::before,.elementor-12 .elementor-element-303bc9c::after{
  content:"";position:absolute;right:96px;width:28px;height:28px;border-radius:50%;background:#fff;
}
.elementor-12 .elementor-element-fd788bb::before,.elementor-12 .elementor-element-303bc9c::before{top:-15px;box-shadow:inset 0 -1px 0 var(--t-line);}
.elementor-12 .elementor-element-fd788bb::after,.elementor-12 .elementor-element-303bc9c::after{bottom:-15px;box-shadow:inset 0 1px 0 var(--t-line);}
.elementor-12 .elementor-element-fd788bb:hover,.elementor-12 .elementor-element-303bc9c:hover{rotate:-1.5deg;translate:0 -6px;box-shadow:0 28px 56px rgba(var(--t-glow),.18);}
.elementor-12 .elementor-element-fd788bb p,.elementor-12 .elementor-element-303bc9c p{margin:0;}
.elementor-12 .elementor-element-fd788bb p{color:var(--t-ink)!important;font-size:18px;font-weight:500;line-height:1.65;}

/* ================= bc04a6d — intro + departure-board office ================= */
.elementor-12 .elementor-element-bc04a6d > .e-con-inner{display:grid!important;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:center;}
.elementor-12 .elementor-element.elementor-element-9ee2ca3{width:100%!important;padding:0!important;}
.elementor-12 .elementor-element-c612177{padding-left:26px;border-left:6px solid var(--t-brand-2);}
.elementor-12 .elementor-element-c612177 p{margin:0;color:var(--t-ink)!important;font-family:'Space Grotesk',sans-serif!important;font-size:clamp(18px,1.5vw,21px);font-weight:500;line-height:1.6;letter-spacing:-0.01em;}
.elementor-12 .elementor-element-02e1e20{width:100%!important;}
.elementor-12 .elementor-element-02e1e20 .inno-office__card{
  max-width:none;padding:40px;border-radius:16px;background:var(--t-dark);box-shadow:0 26px 60px rgba(8,26,23,.3);perspective:900px;
}
.elementor-12 .elementor-element-02e1e20 .inno-office__eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;text-transform:none;
  font:700 clamp(24px,2.4vw,30px)/1.1 'Space Grotesk',sans-serif!important;letter-spacing:-0.02em;color:#fff!important;
}
.elementor-12 .elementor-element-02e1e20 .inno-office__eyebrow::after{
  content:"";width:10px;height:10px;border-radius:50%;background:var(--t-brand-3);box-shadow:0 0 0 0 rgba(45,212,191,.6);animation:thLive 1.8s ease-out infinite;
}
@keyframes thLive{70%{box-shadow:0 0 0 10px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
.elementor-12 .elementor-element-02e1e20 .inno-office__row{
  display:grid;grid-template-columns:40px 1fr;gap:16px;align-items:start;
  padding:18px 16px;margin:6px 0 0;border:0;border-top:1px solid rgba(255,255,255,.06);border-radius:8px;background:rgba(255,255,255,.04);
  transform-origin:top center;transition:transform .7s var(--t-ease),opacity .5s ease;transition-delay:calc(var(--i,0) * 160ms + 200ms);
}
html.th-ready .elementor-12 .elementor-element-02e1e20 .inno-office__row{transform:rotateX(-90deg);opacity:0;}
html.th-ready .elementor-12 .elementor-element-02e1e20.th-in .inno-office__row{transform:none;opacity:1;}
.elementor-12 .elementor-element-02e1e20 .inno-office__icon{background:rgba(45,212,191,.14);color:var(--t-brand-3);}
.elementor-12 .elementor-element-02e1e20 .inno-office__label{font:700 12px/1.9 'Manrope',sans-serif;letter-spacing:.16em;color:var(--t-brand-3);}
.elementor-12 .elementor-element-02e1e20 .inno-office__value{font:500 17px/1.6 'Space Grotesk',sans-serif;color:#fff;font-variant-numeric:tabular-nums;}
.elementor-12 .elementor-element-02e1e20 .inno-office__value a{color:#fff;border-bottom:1px dashed rgba(153,246,228,.6);}
.elementor-12 .elementor-element-02e1e20 .inno-office__value a:hover{color:var(--t-mint);border-color:var(--t-mint);}

/* ================= 7468012 — FAQ: Swiss rows ================= */
.elementor-12 .elementor-element-c1eb80f{width:100%!important;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item{
  margin:0!important;border:0!important;border-bottom:2px solid var(--t-ink)!important;border-radius:0!important;background:transparent;
}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item:first-child{border-top:2px solid var(--t-ink)!important;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title{
  position:relative;overflow:hidden;display:flex!important;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 14px!important;border:0!important;background:transparent!important;cursor:pointer;list-style:none;
}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title::-webkit-details-marker{display:none;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title::before{
  content:"";position:absolute;inset:0;z-index:0;background:rgba(var(--t-glow),.14);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--t-ease);
}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title:hover::before,
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item[open] .e-n-accordion-item-title::before{transform:scaleX(1);}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title > *{position:relative;z-index:1;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title-text{font:600 clamp(18px,1.6vw,22px)/1.35 'Space Grotesk',sans-serif!important;color:var(--t-ink)!important;letter-spacing:-0.01em;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title-icon{flex:0 0 40px;width:40px;height:40px;display:flex!important;align-items:center;justify-content:center;background:none!important;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title-icon > span{display:none!important;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item-title-icon::before{
  content:"\2192";font:700 26px/1 'Space Grotesk',sans-serif;color:var(--t-brand);transition:transform .45s var(--t-ease),color .3s ease;
}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item[open] .e-n-accordion-item-title-icon::before{transform:rotate(90deg);color:var(--t-ink);}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item > [role="region"]{padding:4px 14px 30px!important;border:0!important;}
.elementor-12 .elementor-element-c1eb80f .e-n-accordion-item[open] > [role="region"]{animation:thFaq .5s var(--t-ease);}
@keyframes thFaq{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.elementor-12 .elementor-element-c1eb80f [role="region"] p{margin:0;max-width:760px;}

/* ================= 3c09c6b — final CTA: dark grid + rotating-text badge ================= */
.elementor-12 .elementor-element.elementor-element-3c09c6b{
  padding:110px 24px!important;overflow:hidden;
  background-color:var(--t-dark)!important;
  background-image:
    linear-gradient(rgba(45,212,191,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(45,212,191,.07) 1px,transparent 1px)!important;
  background-size:64px 64px!important;
}
.elementor-12 .elementor-element-3c09c6b > .e-con-inner{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center;}
.elementor-12 .elementor-element-7b6d24a{max-width:none!important;}
.elementor-12 .elementor-element-7b6d24a :is(h3,b){
  margin:0;color:#fff!important;font-family:'Space Grotesk',sans-serif!important;font-size:clamp(26px,3.2vw,44px);line-height:1.15;font-weight:700;letter-spacing:-0.035em;
}
.elementor-12 .elementor-element-cc556f3{width:auto!important;text-align:left!important;}
.elementor-12 .th-badge{
  position:relative;display:grid!important;place-items:center;width:220px;height:220px;border-radius:50%;
  background:none!important;text-decoration:none!important;
}
.elementor-12 .th-badge__ring{position:absolute;inset:0;width:100%;height:100%;animation:thRot 16s linear infinite;}
.elementor-12 .th-badge__ring text{font:700 15px 'Manrope',sans-serif;letter-spacing:3.2px;fill:rgba(255,255,255,.85);text-transform:uppercase;}
.elementor-12 .th-badge__core{
  width:140px;height:140px;border-radius:50%;display:grid;place-items:center;
  background:var(--t-brand-2);color:var(--t-ink);font:700 44px/1 'Space Grotesk',sans-serif;
  box-shadow:0 0 0 0 rgba(45,212,191,.5);transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .3s ease;
  animation:thLive 2.4s ease-out infinite;
}
.elementor-12 .th-badge__core span{display:inline-block;transition:transform .45s var(--t-ease);}
.elementor-12 .th-badge:hover .th-badge__core{transform:scale(1.08);background:var(--t-mint);}
.elementor-12 .th-badge:hover .th-badge__core span{transform:rotate(45deg);}
.elementor-12 .th-badge:hover .th-badge__ring{animation-duration:6s;}
@keyframes thRot{to{transform:rotate(1turn)}}

/* ================= REVEALS ================= */
html.th-ready .elementor-12 .th-slide{
  opacity:0;transform:translateX(-32px);
  transition:opacity .8s ease,transform 1s var(--t-ease);transition-delay:var(--d,0ms);
}
html.th-ready .elementor-12 .th-slide.th-in{opacity:1;transform:none;}
html.th-ready .elementor-12 .th-ticket{
  opacity:0;transform:translateY(40px) rotate(-3deg);
  transition:opacity .8s ease,transform 1.1s var(--t-ease);transition-delay:var(--d,0ms);
}
html.th-ready .elementor-12 .th-ticket.th-in{opacity:1;transform:none;}
html.th-ready .elementor-12 .th-swing{opacity:0;}
html.th-ready .elementor-12 .th-swing.th-in{animation:thSwing 1.6s var(--t-ease) var(--d,0ms) both;}
@keyframes thSwing{
  0%{opacity:0;transform:rotate(-16deg)}
  30%{opacity:1;transform:rotate(9deg)}
  55%{transform:rotate(-4.5deg)}
  75%{transform:rotate(2deg)}
  100%{opacity:1;transform:rotate(0)}
}

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .elementor-12 > .e-con.th-sec{--th-pt:72px;--th-pb:72px;}
  .elementor-12 .elementor-element.elementor-element-5f6a067{--th-pb:0px;}
  .elementor-12 .elementor-element.elementor-element-9b86bca{--th-pt:36px;}
  .elementor-12 .elementor-element.elementor-element-b88340c{--th-pt:160px;}
  .elementor-12 > .e-con.th-sec > .e-con-inner{padding-left:46px!important;}
  .elementor-12 .th-rail{left:12px;}
  .elementor-12 .th-stop{left:4px;width:20px;height:20px;border-width:4px;}
  .elementor-12 .elementor-element.elementor-element-914b88c{min-height:0!important;padding:130px 20px 0!important;}
  .elementor-12 .elementor-element.elementor-element-914b88c > .e-con-inner{grid-template-columns:1fr;grid-template-rows:auto;min-height:0!important;gap:28px;}
  .elementor-12 .elementor-element-d3d7175,
  .elementor-12 .elementor-element-94a541b,
  .elementor-12 .elementor-element.elementor-element-c3c5b53,
  .elementor-12 .elementor-element-f0f5efb{grid-column:1;grid-row:auto;}
  .elementor-12 .elementor-element.elementor-element-c3c5b53{margin-top:46px;}
  .elementor-12 .th-hero-img{grid-column:1;grid-row:auto;order:3;}
  .elementor-12 .elementor-element-d3d7175{order:1;}
  .elementor-12 .elementor-element-94a541b{order:2;}
  .elementor-12 .elementor-element.elementor-element-c3c5b53{order:4;}
  .elementor-12 .elementor-element-f0f5efb{order:5;}
  .elementor-12 .th-has-img .elementor-element.elementor-element-c3c5b53{grid-row:auto;width:calc(100% - 24px)!important;margin:-70px 0 0 12px!important;}
  .elementor-12 .th-map{opacity:.28;}
  .elementor-12 .elementor-element-c093a84 > .e-con-inner,
  .elementor-12 .elementor-element.elementor-element-9fea8dc,
  .elementor-12 .elementor-element-9b86bca > .e-con-inner,
  .elementor-12 .elementor-element.elementor-element-e60fe8c,
  .elementor-12 .elementor-element-bc04a6d > .e-con-inner,
  .elementor-12 .elementor-element-3c09c6b > .e-con-inner{grid-template-columns:1fr;gap:28px;}
  .elementor-12 .elementor-element.elementor-element-4412cd6{margin-top:0!important;}
  .elementor-12 .elementor-element.elementor-element-536fcaa,
  .elementor-12 .elementor-element.elementor-element-0076c50{grid-template-columns:1fr;grid-template-areas:"img" "head" "text";padding:40px 0!important;}
  .elementor-12 .elementor-element-cad1f38 > .e-child{
    position:relative;top:auto;min-height:0;grid-template-columns:1fr;grid-template-areas:"img" "head" "text";padding:20px 20px 28px!important;
  }
  .elementor-12 .elementor-element.elementor-element-cad1f38{padding-bottom:0!important;}
  .elementor-12 .elementor-element-fd788bb,
  .elementor-12 .elementor-element-303bc9c{padding:30px 100px 30px 26px!important;}
  .elementor-12 .elementor-element-02e1e20 .inno-office__card{padding:28px 20px;}
  .elementor-12 .elementor-element-3c09c6b > .e-con-inner{justify-items:start;}
  .elementor-12 .th-badge{width:180px;height:180px;}
  .elementor-12 .th-badge__core{width:116px;height:116px;font-size:36px;}
}
@media (prefers-reduced-motion:reduce){
  .elementor-12 *,.elementor-12 *::before,.elementor-12 *::after{animation:none!important;transition:none!important;}
  html.th-ready .elementor-12 .th-slide,html.th-ready .elementor-12 .th-ticket,
  html.th-ready .elementor-12 .th-swing,html.th-ready .elementor-12 .th-w,
  html.th-ready .elementor-12 .elementor-element-02e1e20 .inno-office__row{opacity:1;transform:none;}
  html.th-ready .elementor-12 .th-diag .th-frame{clip-path:none;}
  .elementor-12 .th-map .tl{stroke-dashoffset:0;}
  .elementor-12 .th-map .st{transform:none;}
}
/*Homepage CSS End*/

/*Marketing & Web Design Services CSS Start*/
/* ===== TORONTO — page 129 "Transit" (teal Swiss) ===== */

body.page-id-129{
  --t-brand:#0f766e; --t-brand-2:#14b8a6; --t-brand-3:#2dd4bf; --t-mint:#99f6e4;
  --t-ink:#0e2b28; --t-muted:#4b635f; --t-line:#d7e9e5; --t-paper:#eef6f4; --t-dark:#081a17;
  --t-glow:20,184,166; --t-ease:cubic-bezier(.22,1,.36,1);
  background:#fff!important;
}
/* sticky needs clip (not hidden) on html/body */
html:has(body.page-id-129),body.page-id-129{overflow-x:clip!important;}
/* light hero → solid header on this page */
body.page-id-129 .site-header.headroom--top .navbar{background:rgba(14,43,40,.97)!important;}

/* ---------- base ---------- */
.elementor-129 .elementor-heading-title{font-family:'Space Grotesk',sans-serif!important;color:var(--t-ink)!important;letter-spacing:-0.035em;}
.elementor-129 p,.elementor-129 li{font-family:'Manrope',sans-serif!important;color:var(--t-muted);font-size:17px;line-height:1.75;}
.elementor-129 .elementor-widget__width-initial{width:100%!important;max-width:100%!important;--container-widget-width:100%!important;}
.elementor-129 .elementor-widget-text-editor a{
  color:var(--t-brand);font-weight:700;text-decoration:none;
  background:linear-gradient(rgba(var(--t-glow),.25),rgba(var(--t-glow),.25)) 0 100% / 100% 35% no-repeat;
  transition:background-size .3s ease,color .2s ease;
}
.elementor-129 .elementor-widget-text-editor a:hover{background-size:100% 100%;color:var(--t-ink);}

/* ---------- sections + the transit rail ---------- */
.elementor-129 > .e-con.tor-sec{padding-top:var(--tor-pt,100px)!important;padding-bottom:var(--tor-pb,100px)!important;}
.elementor-129 > .e-con.tor-sec > .e-con-inner{position:relative;padding-left:76px!important;}
.elementor-129 .elementor-element-3a48df2{background:#fff!important;}
.elementor-129 .elementor-element-6a84c72{background:var(--t-paper)!important;}
.elementor-129 .elementor-element-1e2e9a6{background:#fff!important;}
.elementor-129 .elementor-element-dba12c3{background:var(--t-paper)!important;}
.elementor-129 .elementor-element-e00d88e{background:#fff!important;}
.elementor-129 .elementor-element-9087d72{background:#fff!important;}
.tor-rail{
  position:absolute;left:22px;width:4px;border-radius:4px;background:var(--t-line);pointer-events:none;z-index:0;
  top:calc(var(--tor-pt,100px) * -1);bottom:calc(var(--tor-pb,100px) * -1);
}
.tor-first .tor-rail{top:0;border-radius:4px 4px 0 0;}
.tor-last .tor-rail{bottom:0;}
.tor-rail__fill{
  position:absolute;inset:0;border-radius:inherit;background:linear-gradient(var(--t-brand-2),var(--t-brand));
  transform:scaleY(var(--p,0));transform-origin:top;
}
/* stations on each section's heading */
.elementor-129 .tor-station{position:relative;}
.elementor-129 .tor-station::before{
  content:"";position:absolute;left:-66px;top:12px;width:24px;height:24px;border-radius:50%;z-index:2;
  background:#fff;border:5px solid var(--t-line);box-sizing:border-box;
  transform:scale(.6);transition:transform .6s cubic-bezier(.34,1.56,.64,1),border-color .4s ease,box-shadow .4s ease;
}
.elementor-129 .tor-station.tor-in::before{transform:scale(1);border-color:var(--t-brand-2);box-shadow:0 0 0 7px rgba(var(--t-glow),.16);}

/* ---------- headings: slide + highlighter ---------- */
.elementor-129 .tor-sec .elementor-widget-heading{margin-bottom:44px!important;}
.elementor-129 .tor-sec .elementor-widget-heading .elementor-heading-title{
  font-size:clamp(34px,4.4vw,60px)!important;font-weight:700!important;line-height:1.05!important;
  display:inline;padding:0 .08em;-webkit-box-decoration-break:clone;box-decoration-break:clone;
  background-image:linear-gradient(transparent 62%,rgba(var(--t-glow),.38) 62%,rgba(var(--t-glow),.38) 92%,transparent 92%);
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size 1s var(--t-ease);transition-delay:calc(var(--d,0ms) + 450ms);
}
.elementor-129 .tor-sec .elementor-widget-heading.tor-in .elementor-heading-title{background-size:100% 100%;}

/* ================= HERO (4f942f3) ================= */
.elementor-129 .elementor-element.elementor-element-4f942f3{
  position:relative;isolation:isolate;overflow:hidden;min-height:86vh;
  display:flex!important;align-items:center;padding:160px 24px 110px!important;
  background-color:var(--t-paper)!important;background-image:none!important;
}
.elementor-129 .elementor-element-4f942f3 > .e-con-inner{
  position:relative;z-index:2;display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);gap:28px 72px;align-items:end;width:100%;
}
.tor-map{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.8;}
.tor-map .tl{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:torDraw 2.6s var(--t-ease) .2s forwards;}
.tor-map .tl1{stroke:var(--t-brand-2);stroke-width:12;}
.tor-map .tl2{stroke:var(--t-mint);stroke-width:8;animation-delay:.7s;}
.tor-map .st{fill:#fff;stroke-width:5;transform-box:fill-box;transform-origin:center;transform:scale(0);animation:torPop .6s cubic-bezier(.34,1.56,.64,1) forwards;}
.tor-map .st1{stroke:var(--t-brand);}
.tor-map .st2{stroke:var(--t-brand-2);}
.tor-map .stx{stroke:var(--t-ink);stroke-width:6;}
@keyframes torDraw{to{stroke-dashoffset:0}}
@keyframes torPop{to{transform:scale(1)}}
.elementor-129 .elementor-element-afb2e16{grid-column:1;}
.elementor-129 .elementor-element-afb2e16 .elementor-heading-title{
  font-size:clamp(46px,7vw,96px)!important;font-weight:700!important;line-height:.98!important;letter-spacing:-0.05em;
}
.elementor-129 .tor-w{display:inline-block;transition:transform 1s var(--t-ease),opacity .8s ease;transition-delay:calc(var(--i,0) * 110ms + 150ms);}
html.tor-ready .elementor-129 .tor-w{opacity:0;transform:translateX(var(--from,-60px));}
html.tor-ready .elementor-129 .tor-hero-in .tor-w{opacity:1;transform:none;}
.elementor-129 .tor-accent{color:var(--t-brand);position:relative;}
.elementor-129 .tor-accent::after{
  content:"";position:absolute;left:0;right:0;bottom:.02em;height:.14em;background:var(--t-brand-3);z-index:-1;
  transform:scaleX(0);transform-origin:left;transition:transform .9s var(--t-ease) 1.1s;
}
.elementor-129 .tor-hero-in .tor-accent::after{transform:scaleX(1);}
.elementor-129 .elementor-element-d9e091b{grid-column:1;}
.elementor-129 .elementor-element-d9e091b p{font-size:clamp(17px,1.4vw,20px);max-width:540px;margin:0;}
/* hanging station sign */
.elementor-129 .elementor-element.elementor-element-88069fa{
  grid-column:2;grid-row:1 / span 2;align-self:end;width:100%!important;padding:30px 30px 28px!important;
  background:var(--t-ink)!important;border-top:8px solid var(--t-brand-2);border-radius:14px;
  box-shadow:0 30px 60px rgba(14,43,40,.3);transform-origin:50% -40px;
}
.elementor-129 .elementor-element-88069fa .elementor-heading-title{color:#fff!important;font-size:21px!important;font-weight:600!important;line-height:1.3!important;}
.elementor-129 .elementor-element-88069fa p{color:rgba(255,255,255,.75)!important;font-size:15.5px;margin:10px 0 0;}
html.tor-ready .elementor-129 .tor-swing{opacity:0;}
html.tor-ready .elementor-129 .tor-swing.tor-in{animation:torSwing 1.6s var(--t-ease) var(--d,0ms) both;}
@keyframes torSwing{
  0%{opacity:0;transform:rotate(-16deg)}
  30%{opacity:1;transform:rotate(9deg)}
  55%{transform:rotate(-4.5deg)}
  75%{transform:rotate(2deg)}
  100%{opacity:1;transform:rotate(0)}
}

/* ================= IMAGES (JS wraps in .tor-frame) — leaf shape + diagonal wipe ================= */
.elementor-129 .elementor-widget-image{width:100%!important;}
.elementor-129 .tor-frame{position:relative;display:block;overflow:hidden;border-radius:64px 8px 64px 8px;aspect-ratio:4 / 3;}
.elementor-129 .tor-frame img{display:block;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;border-radius:0!important;transition:transform 1s var(--t-ease);}
.elementor-129 .elementor-widget-image:hover .tor-frame img{transform:scale(1.05);}
html.tor-ready .elementor-129 .tor-diag .tor-frame{
  clip-path:polygon(0% 0%,0% 0%,-30% 100%,-30% 100%);
  transition:clip-path 1.3s var(--t-ease);transition-delay:var(--d,0ms);
}
html.tor-ready .elementor-129 .tor-diag.tor-in .tor-frame{clip-path:polygon(0% 0%,130% 0%,100% 100%,-30% 100%);}

/* ================= WEB DESIGN EXPERTS (3a48df2) ================= */
.elementor-129 .elementor-element.elementor-element-19d6321{
  display:grid!important;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:center;width:100%!important;
}
.elementor-129 .elementor-element.elementor-element-2dd8788{display:flex!important;flex-direction:column;gap:22px;width:100%!important;}
.elementor-129 .elementor-element-4b3e12e p{margin:0;color:var(--t-ink)!important;font-size:clamp(19px,1.6vw,22px);font-weight:500;line-height:1.6;}
.elementor-129 .elementor-element-9f2e6d3{padding-top:22px;border-top:2px solid var(--t-ink);}
.elementor-129 .elementor-element-9f2e6d3 p{margin:0;}
.elementor-129 .elementor-element.elementor-element-9f9b12e{
  margin-top:56px!important;padding:30px 34px!important;border-radius:12px;background:var(--t-ink);border-top:6px solid var(--t-brand-2);
}
.elementor-129 .elementor-element-9f9b12e p{margin:0;color:rgba(255,255,255,.88)!important;}
.elementor-129 .elementor-element-9f9b12e a{color:var(--t-mint)!important;background-image:linear-gradient(rgba(153,246,228,.25),rgba(153,246,228,.25));}

/* ================= WEB DESIGN WITH PURPOSE (6a84c72) — sticky portrait ================= */
.elementor-129 .elementor-element.elementor-element-4fb22a0{
  display:grid!important;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start;width:100%!important;
}
.elementor-129 .elementor-element-fb299ec{position:sticky;top:110px;}
.elementor-129 .elementor-element-fb299ec .tor-frame{aspect-ratio:3 / 4;border-radius:8px 64px 8px 64px;}
.elementor-129 .elementor-element.elementor-element-84dc0e7{display:flex!important;flex-direction:column;gap:30px;width:100%!important;padding-top:24px;}
.elementor-129 .elementor-element-c49362a p{margin:0;color:var(--t-ink)!important;font-size:clamp(20px,1.8vw,25px);font-weight:500;line-height:1.55;font-family:'Space Grotesk',sans-serif!important;letter-spacing:-0.01em;}
.elementor-129 .elementor-element-7313e56{padding-left:26px;border-left:6px solid var(--t-brand-2);}
.elementor-129 .elementor-element-7313e56 p{margin:0;}

/* ================= TRUSTED (1e2e9a6) — transit tickets ================= */
.elementor-129 .elementor-element.elementor-element-1675bf0{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;width:100%!important;}
.elementor-129 .elementor-element-40bfb0a,
.elementor-129 .elementor-element-ac812be{
  position:relative;padding:38px 130px 38px 38px!important;border-radius:16px;
  background:
    radial-gradient(circle at calc(100% - 55px) 50%,var(--t-brand-2) 0 13px,transparent 14px),
    radial-gradient(circle at calc(100% - 55px) 50%,rgba(var(--t-glow),.18) 0 24px,transparent 25px),
    repeating-linear-gradient(to bottom,var(--t-line) 0 8px,transparent 8px 16px) calc(100% - 110px) 0 / 2px 100% no-repeat,
    #fff;
  border:1px solid var(--t-line);box-shadow:0 18px 40px rgba(14,43,40,.08);
  transition:rotate .45s var(--t-ease),translate .45s var(--t-ease),box-shadow .45s ease;
}
.elementor-129 .elementor-element-40bfb0a::before,.elementor-129 .elementor-element-40bfb0a::after,
.elementor-129 .elementor-element-ac812be::before,.elementor-129 .elementor-element-ac812be::after{
  content:"";position:absolute;right:96px;width:28px;height:28px;border-radius:50%;background:#fff;
}
.elementor-129 .elementor-element-40bfb0a::before,.elementor-129 .elementor-element-ac812be::before{top:-15px;box-shadow:inset 0 -1px 0 var(--t-line);}
.elementor-129 .elementor-element-40bfb0a::after,.elementor-129 .elementor-element-ac812be::after{bottom:-15px;box-shadow:inset 0 1px 0 var(--t-line);}
.elementor-129 .elementor-element-40bfb0a:hover,.elementor-129 .elementor-element-ac812be:hover{rotate:-1.5deg;translate:0 -6px;box-shadow:0 28px 56px rgba(var(--t-glow),.18);}
.elementor-129 .elementor-element-40bfb0a p,.elementor-129 .elementor-element-ac812be p{margin:0;}
.elementor-129 .elementor-element-40bfb0a p{color:var(--t-ink)!important;font-size:19px;font-weight:500;line-height:1.6;}

/* ================= ONE SYSTEM (dba12c3) — stacked sticky cards ================= */
.elementor-129 .elementor-element.elementor-element-c246418{display:flex!important;flex-direction:column;gap:28px;width:100%!important;padding-bottom:14vh!important;}
.elementor-129 .elementor-element-4e5ed17,
.elementor-129 .elementor-element-27d15cb{
  position:sticky;min-height:38vh;display:flex!important;align-items:center;padding:48px 52px!important;border-radius:24px;
  box-shadow:0 -10px 40px rgba(14,43,40,.08);transform-origin:top center;transition:filter .3s ease;
}
.elementor-129 .elementor-element-4e5ed17{top:120px;background:#fff;border:1px solid var(--t-line);}
.elementor-129 .elementor-element-27d15cb{top:150px;background:var(--t-ink);}
.elementor-129 .elementor-element-4e5ed17 p,.elementor-129 .elementor-element-27d15cb p{margin:0;font-size:clamp(18px,1.5vw,21px);line-height:1.65;}
.elementor-129 .elementor-element-4e5ed17 p{color:var(--t-ink)!important;}
.elementor-129 .elementor-element-27d15cb p{color:rgba(255,255,255,.9)!important;}

/* ================= OFFICE (e00d88e) — departure board ================= */
.elementor-129 .elementor-element-e00d88e > .e-con-inner{display:grid!important;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:44px;align-items:center;}
.elementor-129 .elementor-element.elementor-element-dafb4f1{
  padding:40px!important;border-radius:16px;background:var(--t-dark);box-shadow:0 26px 60px rgba(8,26,23,.3);perspective:900px;
}
.elementor-129 .elementor-element-dafb4f1 p{margin:0;color:rgba(255,255,255,.88)!important;}
.elementor-129 .elementor-element-dafb4f1 p:first-child{margin-bottom:18px;display:flex;align-items:center;gap:12px;}
.elementor-129 .elementor-element-dafb4f1 p:first-child b{font:700 clamp(24px,2.4vw,30px)/1.1 'Space Grotesk',sans-serif;color:#fff;letter-spacing:-0.02em;}
.elementor-129 .elementor-element-dafb4f1 p:first-child::after{
  content:"";width:10px;height:10px;border-radius:50%;background:var(--t-brand-3);box-shadow:0 0 0 0 rgba(45,212,191,.6);animation:torLive 1.8s ease-out infinite;
}
@keyframes torLive{70%{box-shadow:0 0 0 10px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
.elementor-129 .elementor-element-dafb4f1 p:not(:first-child) b{color:var(--t-mint);}   /* fallback without JS */
.elementor-129 .tor-board{display:grid;}
.elementor-129 .tor-board__row{
  display:grid;grid-template-columns:140px 1fr;gap:18px;padding:18px 16px;margin-top:6px;border-radius:8px;
  background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.06);
  transform-origin:top center;transition:transform .7s var(--t-ease),opacity .5s ease;transition-delay:calc(var(--i,0) * 160ms + 200ms);
}
html.tor-ready .elementor-129 .tor-board__row{transform:rotateX(-90deg);opacity:0;}
html.tor-ready .elementor-129 .elementor-element-dafb4f1.tor-in .tor-board__row{transform:none;opacity:1;}
.elementor-129 .tor-board__label{font:700 12px/1.9 'Manrope',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--t-brand-3);}
.elementor-129 .tor-board__val{font:500 17px/1.6 'Space Grotesk',sans-serif;color:#fff;font-variant-numeric:tabular-nums;}
.elementor-129 .tor-board__val a{color:#fff!important;background:none!important;border-bottom:1px dashed rgba(153,246,228,.6);}
.elementor-129 .tor-board__val a:hover{color:var(--t-mint)!important;}
.elementor-129 .elementor-element-f22240a .tor-frame{aspect-ratio:4 / 5;}

/* ================= AI BAND (a0d4055) — bright teal + outline marquee ================= */
.elementor-129 .elementor-element.elementor-element-a0d4055{
  --tor-pt:230px;position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(120deg,var(--t-brand) 0%,var(--t-brand-2) 100%)!important;
}
.tor-marq{position:absolute;top:44px;left:0;width:100%;overflow:hidden;z-index:0;pointer-events:none;}
.tor-marq__track{display:inline-flex;white-space:nowrap;animation:torMarq 45s linear infinite;}
.tor-marq__track span{
  padding-right:60px;font:700 clamp(64px,9vw,130px)/1 'Space Grotesk',sans-serif;letter-spacing:-0.03em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.35);
}
@keyframes torMarq{to{transform:translateX(-50%)}}
.elementor-129 .elementor-element-a0d4055 > .e-con-inner{
  position:relative;z-index:1;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:end;
}
.elementor-129 .elementor-element-a0d4055 .tor-rail{background:rgba(255,255,255,.28);}
.elementor-129 .elementor-element-a0d4055 .tor-rail__fill{background:#fff;}
.elementor-129 .elementor-element-a0d4055 .tor-station::before{border-color:rgba(255,255,255,.5);}
.elementor-129 .elementor-element-a0d4055 .tor-station.tor-in::before{border-color:#fff;box-shadow:0 0 0 7px rgba(255,255,255,.2);}
.elementor-129 .elementor-element-aa5a07b{margin-bottom:0!important;}
.elementor-129 .elementor-element-a0d4055 .elementor-heading-title{color:#fff!important;background-image:linear-gradient(transparent 62%,rgba(8,26,23,.25) 62%,rgba(8,26,23,.25) 92%,transparent 92%)!important;}
.elementor-129 .elementor-element-6cbb14f{width:100%!important;}
.elementor-129 .elementor-element-ce5fe14 p{margin:0;color:rgba(255,255,255,.92)!important;font-size:18px;}
.elementor-129 .elementor-element-ce5fe14 a{color:#fff!important;background-image:linear-gradient(rgba(8,26,23,.3),rgba(8,26,23,.3))!important;}

/* ================= FAQ (9087d72) — Swiss rows ================= */
.elementor-129 .elementor-element-ec1c1bb{width:100%!important;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item{
  margin:0!important;border:0!important;border-bottom:2px solid var(--t-ink)!important;border-radius:0!important;background:transparent;
}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item:first-child{border-top:2px solid var(--t-ink)!important;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title{
  position:relative;overflow:hidden;display:flex!important;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 14px!important;border:0!important;background:transparent!important;cursor:pointer;list-style:none;
}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title::-webkit-details-marker{display:none;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title::before{
  content:"";position:absolute;inset:0;z-index:0;background:rgba(var(--t-glow),.14);
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--t-ease);
}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title:hover::before,
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item[open] .e-n-accordion-item-title::before{transform:scaleX(1);}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title > *{position:relative;z-index:1;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title-text{font:600 clamp(18px,1.6vw,22px)/1.35 'Space Grotesk',sans-serif!important;color:var(--t-ink)!important;letter-spacing:-0.01em;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title-icon{flex:0 0 40px;width:40px;height:40px;display:flex!important;align-items:center;justify-content:center;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title-icon > span{display:none!important;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item-title-icon::before{
  content:"\2192";font:700 26px/1 'Space Grotesk',sans-serif;color:var(--t-brand);transition:transform .45s var(--t-ease),color .3s ease;
}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item[open] .e-n-accordion-item-title-icon::before{transform:rotate(90deg);color:var(--t-ink);}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item > [role="region"]{padding:4px 14px 30px!important;border:0!important;}
.elementor-129 .elementor-element-ec1c1bb .e-n-accordion-item[open] > [role="region"]{animation:torFaq .5s var(--t-ease);}
@keyframes torFaq{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.elementor-129 .elementor-element-ec1c1bb [role="region"] p{margin:0;max-width:760px;}

/* ================= FINAL CTA (941bd7c) — dark grid + rotating-text badge ================= */
.elementor-129 .elementor-element.elementor-element-941bd7c{
  padding:110px 24px!important;
  background-color:var(--t-dark)!important;
  background-image:
    linear-gradient(rgba(45,212,191,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(45,212,191,.07) 1px,transparent 1px)!important;
  background-size:64px 64px!important;
}
.elementor-129 .elementor-element.elementor-element-dd7ff24{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:60px;align-items:center;width:100%!important;text-align:left!important;
}
.elementor-129 .elementor-element-dd7ff24 p{margin:0;}
.elementor-129 .elementor-element-dd7ff24 p:first-child,
.elementor-129 .elementor-element-dd7ff24 p:first-child b{
  color:#fff!important;font-family:'Space Grotesk',sans-serif!important;font-size:clamp(28px,3.6vw,48px);line-height:1.12;font-weight:700;letter-spacing:-0.035em;
}
/* fallback pill (before JS builds the badge) */
.elementor-129 .elementor-element-dd7ff24 p:last-child a:not(.tor-badge){
  display:inline-block;padding:16px 30px;border-radius:999px;background:var(--t-brand-2)!important;color:var(--t-ink)!important;
}
.elementor-129 .tor-badge{
  position:relative;display:grid!important;place-items:center;width:220px;height:220px;border-radius:50%;
  background:none!important;text-decoration:none!important;
}
.elementor-129 .tor-badge__ring{position:absolute;inset:0;width:100%;height:100%;animation:torRot 16s linear infinite;}
.elementor-129 .tor-badge__ring text{font:700 15px 'Manrope',sans-serif;letter-spacing:3.2px;fill:rgba(255,255,255,.85);text-transform:uppercase;}
.elementor-129 .tor-badge__core{
  width:140px;height:140px;border-radius:50%;display:grid;place-items:center;
  background:var(--t-brand-2);color:var(--t-ink);font:700 44px/1 'Space Grotesk',sans-serif;
  box-shadow:0 0 0 0 rgba(45,212,191,.5);transition:transform .45s cubic-bezier(.34,1.56,.64,1),background .3s ease;
  animation:torLive 2.4s ease-out infinite;
}
.elementor-129 .tor-badge__core span{display:inline-block;transition:transform .45s var(--t-ease);}
.elementor-129 .tor-badge:hover .tor-badge__core{transform:scale(1.08);background:var(--t-mint);}
.elementor-129 .tor-badge:hover .tor-badge__core span{transform:rotate(45deg);}
.elementor-129 .tor-badge:hover .tor-badge__ring{animation-duration:6s;}
@keyframes torRot{to{transform:rotate(1turn)}}

/* ================= REVEALS ================= */
html.tor-ready .elementor-129 .tor-slide{
  opacity:0;transform:translateX(-32px);
  transition:opacity .8s ease,transform 1s var(--t-ease);transition-delay:var(--d,0ms);
}
html.tor-ready .elementor-129 .tor-slide.tor-in{opacity:1;transform:none;}
html.tor-ready .elementor-129 .tor-ticket{
  opacity:0;transform:translateY(40px) rotate(-3deg);
  transition:opacity .8s ease,transform 1.1s var(--t-ease);transition-delay:var(--d,0ms);
}
html.tor-ready .elementor-129 .tor-ticket.tor-in{opacity:1;transform:none;}

/* ================= RESPONSIVE ================= */
@media (max-width:900px){
  .elementor-129 > .e-con.tor-sec{--tor-pt:72px;--tor-pb:72px;}
  .elementor-129 .elementor-element.elementor-element-a0d4055{--tor-pt:160px;}
  .elementor-129 > .e-con.tor-sec > .e-con-inner{padding-left:46px!important;}
  .tor-rail{left:12px;}
  .elementor-129 .tor-station::before{left:-46px;top:8px;width:20px;height:20px;border-width:4px;}
  .elementor-129 .elementor-element.elementor-element-4f942f3{min-height:0;padding:130px 20px 90px!important;}
  .elementor-129 .elementor-element-4f942f3 > .e-con-inner{grid-template-columns:1fr;}
  .elementor-129 .elementor-element.elementor-element-88069fa{grid-column:1;grid-row:auto;margin-top:10px;}
  .tor-map{opacity:.28;}
  .elementor-129 .elementor-element.elementor-element-19d6321,
  .elementor-129 .elementor-element.elementor-element-4fb22a0,
  .elementor-129 .elementor-element.elementor-element-1675bf0,
  .elementor-129 .elementor-element-e00d88e > .e-con-inner,
  .elementor-129 .elementor-element-a0d4055 > .e-con-inner{grid-template-columns:1fr;gap:28px;}
  .elementor-129 .elementor-element-fb299ec{position:static;}
  .elementor-129 .elementor-element-fb299ec .tor-frame{aspect-ratio:4 / 3;}
  .elementor-129 .elementor-element-40bfb0a,
  .elementor-129 .elementor-element-ac812be{padding:30px 100px 30px 26px!important;}
  .elementor-129 .elementor-element-4e5ed17,
  .elementor-129 .elementor-element-27d15cb{position:relative;top:auto;min-height:0;padding:30px 26px!important;}
  .elementor-129 .elementor-element.elementor-element-c246418{padding-bottom:0!important;}
  .elementor-129 .elementor-element.elementor-element-dafb4f1{padding:28px 22px!important;}
  .elementor-129 .tor-board__row{grid-template-columns:1fr;gap:4px;}
  .elementor-129 .elementor-element.elementor-element-dd7ff24{grid-template-columns:1fr;gap:36px;justify-items:start;}
  .elementor-129 .tor-badge{width:180px;height:180px;}
  .elementor-129 .tor-badge__core{width:116px;height:116px;font-size:36px;}
}
@media (prefers-reduced-motion:reduce){
  .elementor-129 *,.elementor-129 *::before,.elementor-129 *::after,.tor-map *{animation:none!important;transition:none!important;}
  html.tor-ready .elementor-129 .tor-slide,html.tor-ready .elementor-129 .tor-ticket,
  html.tor-ready .elementor-129 .tor-swing,html.tor-ready .elementor-129 .tor-w,
  html.tor-ready .elementor-129 .tor-board__row{opacity:1;transform:none;}
  html.tor-ready .elementor-129 .tor-diag .tor-frame{clip-path:none;}
  .tor-map .tl{stroke-dashoffset:0;}
  .tor-map .st{transform:none;}
}
/*Marketing & Web Design Services CSS End*/