.elementor-42785 .elementor-element.elementor-element-f26b6f5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:20px;--padding-bottom:20px;--padding-left:0px;--padding-right:0px;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-42785 .elementor-element.elementor-element-d3d4e93{text-align:start;}.elementor-42785 .elementor-element.elementor-element-d3d4e93 img{width:170px;}.elementor-42785 .elementor-element.elementor-element-f4d727b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overlay-opacity:1;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:120px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-f4d727b:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-f4d727b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://telavox.se/wp-content/uploads/2026/06/telavox-3d-pattern.jpg");background-position:center center;background-size:cover;}.elementor-42785 .elementor-element.elementor-element-f4d727b::before, .elementor-42785 .elementor-element.elementor-element-f4d727b > .elementor-background-video-container::before, .elementor-42785 .elementor-element.elementor-element-f4d727b > .e-con-inner > .elementor-background-video-container::before, .elementor-42785 .elementor-element.elementor-element-f4d727b > .elementor-background-slideshow::before, .elementor-42785 .elementor-element.elementor-element-f4d727b > .e-con-inner > .elementor-background-slideshow::before, .elementor-42785 .elementor-element.elementor-element-f4d727b > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:transparent;--background-overlay:'';background-image:linear-gradient(0deg, var( --e-global-color-a0a26fd ) 18%, #FFFFFF00 100%);}.elementor-42785 .elementor-element.elementor-element-eb6c103{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-42785 .elementor-element.elementor-element-b9327d4 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-b8714d3 );}.elementor-42785 .elementor-element.elementor-element-05f8779{text-align:start;}.elementor-42785 .elementor-element.elementor-element-05f8779 .elementor-heading-title{font-family:var( --e-global-typography-1393f25-font-family ), Sans-serif;font-size:var( --e-global-typography-1393f25-font-size );font-weight:var( --e-global-typography-1393f25-font-weight );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-42785 .elementor-element.elementor-element-d5e9bfa{text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-42785 .elementor-element.elementor-element-d08c9ab .elementor-button{fill:var( --e-global-color-a0a26fd );color:var( --e-global-color-a0a26fd );transition-duration:0s;}.elementor-42785 .elementor-element.elementor-element-d08c9ab .elementor-button:hover, .elementor-42785 .elementor-element.elementor-element-d08c9ab .elementor-button:focus{color:var( --e-global-color-f5c2a4c );}.elementor-42785 .elementor-element.elementor-element-d08c9ab .elementor-button:hover svg, .elementor-42785 .elementor-element.elementor-element-d08c9ab .elementor-button:focus svg{fill:var( --e-global-color-f5c2a4c );}.elementor-42785 .elementor-element.elementor-element-c47ceed{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-3e77987 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:30px 30px 30px 30px;}.elementor-42785 .elementor-element.elementor-element-3e77987 img{width:100%;max-width:100%;opacity:1;}.elementor-42785 .elementor-element.elementor-element-7989372{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-7989372:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-7989372 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-2c398b9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overlay-opacity:0.5;}.elementor-42785 .elementor-element.elementor-element-2c398b9:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-2c398b9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-2c398b9::before, .elementor-42785 .elementor-element.elementor-element-2c398b9 > .elementor-background-video-container::before, .elementor-42785 .elementor-element.elementor-element-2c398b9 > .e-con-inner > .elementor-background-video-container::before, .elementor-42785 .elementor-element.elementor-element-2c398b9 > .elementor-background-slideshow::before, .elementor-42785 .elementor-element.elementor-element-2c398b9 > .e-con-inner > .elementor-background-slideshow::before, .elementor-42785 .elementor-element.elementor-element-2c398b9 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-a0a26fd );--background-overlay:'';}.elementor-42785 .elementor-element.elementor-element-a08ab65 > .elementor-widget-container{background-color:var( --e-global-color-a0a26fd );padding:60px 60px 60px 60px;}.elementor-42785 .elementor-element.elementor-element-eecdd02{--display:flex;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:120px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-eecdd02:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-eecdd02 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-f5c2a4c );}.elementor-42785 .elementor-element.elementor-element-908bc2c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-acaef3e .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-50ceba6{text-align:start;}.elementor-42785 .elementor-element.elementor-element-50ceba6 .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-c62622f{width:var( --container-widget-width, 670px );max-width:670px;--container-widget-width:670px;--container-widget-flex-grow:0;text-align:start;font-family:"Inter", Sans-serif;font-size:16px;font-weight:400;line-height:130%;letter-spacing:0px;color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-c62622f.elementor-element{--align-self:flex-start;}.elementor-42785 .elementor-element.elementor-element-352fd78{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:flex-start;--gap:030px 030px;--row-gap:030px;--column-gap:030px;--flex-wrap:nowrap;--margin-top:30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-42785 .elementor-element.elementor-element-8c9447a{--display:flex;--border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-8c9447a:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-8c9447a > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-ecf1d2d > .elementor-widget-container{margin:30px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-ecf1d2d .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-4bdcf4e > .elementor-widget-container{margin:0px 30px 00px 30px;}.elementor-42785 .elementor-element.elementor-element-4bdcf4e{text-align:start;}.elementor-42785 .elementor-element.elementor-element-4bdcf4e .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-accent );}.elementor-42785 .elementor-element.elementor-element-0c25cc5 > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-0c25cc5 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-e0fac03 > .elementor-widget-container{margin:0px 30px 30px 30px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-e0fac03{color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-4f82ee3{--display:flex;--border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-4f82ee3:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-4f82ee3 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-5bcc12d > .elementor-widget-container{margin:30px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-5bcc12d .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-7f0905d > .elementor-widget-container{margin:0px 30px 00px 30px;}.elementor-42785 .elementor-element.elementor-element-7f0905d{text-align:start;}.elementor-42785 .elementor-element.elementor-element-7f0905d .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-accent );}.elementor-42785 .elementor-element.elementor-element-3b07992 > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-3b07992 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-116d5a8 > .elementor-widget-container{margin:0px 30px 30px 30px;}.elementor-42785 .elementor-element.elementor-element-116d5a8{color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-974b1f9{--display:flex;--border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-974b1f9:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-974b1f9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-faf964a > .elementor-widget-container{margin:30px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-faf964a .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-42fdc59 > .elementor-widget-container{margin:0px 30px 00px 30px;}.elementor-42785 .elementor-element.elementor-element-42fdc59{text-align:start;}.elementor-42785 .elementor-element.elementor-element-42fdc59 .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-accent );}.elementor-42785 .elementor-element.elementor-element-4b59c3c > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-4b59c3c .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-de1abf9 > .elementor-widget-container{margin:0px 30px 30px 30px;}.elementor-42785 .elementor-element.elementor-element-de1abf9{color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-3e385f9{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-3e385f9:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-3e385f9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-754552c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-fdf25bd .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-690f768{text-align:start;}.elementor-42785 .elementor-element.elementor-element-690f768 .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-f6da887{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-2200116 > .elementor-widget-container{margin:60px 0px 60px 0px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-2200116.elementor-element{--align-self:flex-start;--order:99999 /* order end hack */;}.elementor-42785 .elementor-element.elementor-element-2200116{text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-2200116 p{margin-block-end:4px;}.elementor-42785 .elementor-element.elementor-element-b1574df{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:30px 30px;--row-gap:30px;--column-gap:30px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:00px;--padding-bottom:120px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-b1574df:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-b1574df > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-5791137{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--flex-wrap:wrap;--margin-top:30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-42785 .elementor-element.elementor-element-3c8710b{--display:flex;}.elementor-42785 .elementor-element.elementor-element-9af167b{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--border-radius:20px 20px 20px 20px;--padding-top:20px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-9af167b:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-9af167b > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-65bae52 );}.elementor-42785 .elementor-element.elementor-element-3e0f30a > .elementor-widget-container{margin:30px 30px 00px 30px;}.elementor-42785 .elementor-element.elementor-element-3e0f30a{text-align:start;}.elementor-42785 .elementor-element.elementor-element-3e0f30a .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-accent );}.elementor-42785 .elementor-element.elementor-element-bcc37a7 > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-bcc37a7 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-f8e85cf > .elementor-widget-container{margin:0px 30px 30px 30px;}.elementor-42785 .elementor-element.elementor-element-f8e85cf{color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-7fd52b7{--display:flex;}.elementor-42785 .elementor-element.elementor-element-166a90e{--display:flex;--border-radius:20px 20px 20px 20px;--padding-top:20px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-166a90e:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-166a90e > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-f5c2a4c );}.elementor-42785 .elementor-element.elementor-element-2b07b13 > .elementor-widget-container{margin:30px 30px 00px 30px;}.elementor-42785 .elementor-element.elementor-element-2b07b13{text-align:start;}.elementor-42785 .elementor-element.elementor-element-2b07b13 .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-accent );}.elementor-42785 .elementor-element.elementor-element-c2a8ae8 > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-c2a8ae8 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-c1a63eb > .elementor-widget-container{margin:0px 30px 0px 30px;}.elementor-42785 .elementor-element.elementor-element-c1a63eb{color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-12003c6{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:120px;--padding-bottom:120px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-12003c6:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-12003c6 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-462aeea{--display:flex;--min-height:525px;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 30px;--row-gap:0px;--column-gap:30px;--margin-top:120px;--margin-bottom:120px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-34db700{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-6769650 img{width:100%;height:297.5px;border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-fa880c5{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-eb816bc{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-b9b5841 img{border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-d8ef1c3{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-97cf55b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-5f4cddb img{border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-e07a385 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-e07a385 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-76d58c2{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-1fa599a{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-7e2ebdd img{border-radius:20px 20px 20px 20px;}.elementor-42785 .elementor-element.elementor-element-9253939 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-9253939 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-2f8145f{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-26fab0d{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:120px;--padding-bottom:120px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-26fab0d:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-26fab0d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-74da385{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-7b650f5 > .elementor-widget-container{margin:0px 020px 0px 0px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-7b650f5{text-align:start;}.elementor-42785 .elementor-element.elementor-element-7b650f5 .elementor-heading-title{font-family:var( --e-global-typography-1e6d350-font-family ), Sans-serif;font-size:var( --e-global-typography-1e6d350-font-size );font-weight:var( --e-global-typography-1e6d350-font-weight );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );color:var( --e-global-color-b8714d3 );}.elementor-42785 .elementor-element.elementor-element-6bb80fb{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-42785 .elementor-element.elementor-element-fcefd06{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-296572b > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-296572b .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-f94c3ff{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-widget-divider{--divider-color:var( --e-global-color-secondary );}.elementor-widget-divider .elementor-divider__text{color:var( --e-global-color-secondary );font-family:var( --e-global-typography-secondary-font-family ), Sans-serif;font-weight:var( --e-global-typography-secondary-font-weight );}.elementor-widget-divider.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon{color:var( --e-global-color-secondary );border-color:var( --e-global-color-secondary );}.elementor-widget-divider.elementor-view-framed .elementor-icon, .elementor-widget-divider.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-secondary );}.elementor-42785 .elementor-element.elementor-element-1a5d1f5{--divider-border-style:solid;--divider-color:var( --e-global-color-7e21173 );--divider-border-width:1px;}.elementor-42785 .elementor-element.elementor-element-1a5d1f5 .elementor-divider-separator{width:100%;margin:0 auto;margin-center:0;}.elementor-42785 .elementor-element.elementor-element-1a5d1f5 .elementor-divider{text-align:center;padding-block-start:7px;padding-block-end:7px;}.elementor-42785 .elementor-element.elementor-element-5eb7c0d > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-5eb7c0d .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-4e48b80{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-e76ddf7{--divider-border-style:solid;--divider-color:var( --e-global-color-7e21173 );--divider-border-width:1px;}.elementor-42785 .elementor-element.elementor-element-e76ddf7 .elementor-divider-separator{width:100%;margin:0 auto;margin-center:0;}.elementor-42785 .elementor-element.elementor-element-e76ddf7 .elementor-divider{text-align:center;padding-block-start:7px;padding-block-end:7px;}.elementor-42785 .elementor-element.elementor-element-061013b > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-061013b .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-807318d{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-5bac0c9{--divider-border-style:solid;--divider-color:var( --e-global-color-7e21173 );--divider-border-width:1px;}.elementor-42785 .elementor-element.elementor-element-5bac0c9 .elementor-divider-separator{width:100%;margin:0 auto;margin-center:0;}.elementor-42785 .elementor-element.elementor-element-5bac0c9 .elementor-divider{text-align:center;padding-block-start:7px;padding-block-end:7px;}.elementor-42785 .elementor-element.elementor-element-f0ba09c > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-f0ba09c .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-75a8886{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-bfa0406{--divider-border-style:solid;--divider-color:var( --e-global-color-7e21173 );--divider-border-width:1px;}.elementor-42785 .elementor-element.elementor-element-bfa0406 .elementor-divider-separator{width:100%;margin:0 auto;margin-center:0;}.elementor-42785 .elementor-element.elementor-element-bfa0406 .elementor-divider{text-align:center;padding-block-start:7px;padding-block-end:7px;}.elementor-42785 .elementor-element.elementor-element-c7568d4 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-c7568d4 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-73d611e{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-4222d05{--divider-border-style:solid;--divider-color:var( --e-global-color-7e21173 );--divider-border-width:1px;}.elementor-42785 .elementor-element.elementor-element-4222d05 .elementor-divider-separator{width:100%;margin:0 auto;margin-center:0;}.elementor-42785 .elementor-element.elementor-element-4222d05 .elementor-divider{text-align:center;padding-block-start:7px;padding-block-end:7px;}.elementor-42785 .elementor-element.elementor-element-cfaad07 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-cfaad07 .elementor-heading-title{font-family:var( --e-global-typography-83dac48-font-family ), Sans-serif;font-size:var( --e-global-typography-83dac48-font-size );font-weight:var( --e-global-typography-83dac48-font-weight );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-8cadec0{column-gap:0px;text-align:start;font-family:var( --e-global-typography-4e7aef6-font-family ), Sans-serif;font-size:var( --e-global-typography-4e7aef6-font-size );font-weight:var( --e-global-typography-4e7aef6-font-weight );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-b38d83c{--display:grid;--e-con-grid-template-columns:repeat(2, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--align-items:end;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:60px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-b38d83c:not(.elementor-motion-effects-element-type-background), .elementor-42785 .elementor-element.elementor-element-b38d83c > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-f5c2a4c );}.elementor-42785 .elementor-element.elementor-element-a923ab8{--display:flex;--justify-content:center;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-07061c0{text-align:start;}.elementor-42785 .elementor-element.elementor-element-07061c0 .elementor-heading-title{font-family:var( --e-global-typography-1393f25-font-family ), Sans-serif;font-size:var( --e-global-typography-1393f25-font-size );font-weight:var( --e-global-typography-1393f25-font-weight );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );color:var( --e-global-color-7e21173 );}.elementor-42785 .elementor-element.elementor-element-5294123{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-a0a26fd );}.elementor-42785 .elementor-element.elementor-element-ba24187{--display:flex;--justify-content:center;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-df16604{text-align:end;}.elementor-42785 .elementor-element.elementor-element-df16604 img{width:30%;}.elementor-42785 .elementor-element.elementor-element-cb8b7b4.elementor-element{--align-self:flex-end;}.elementor-42785 .elementor-element.elementor-element-cb8b7b4{font-family:var( --e-global-typography-5a4fee1-font-family ), Sans-serif;font-size:var( --e-global-typography-5a4fee1-font-size );font-weight:var( --e-global-typography-5a4fee1-font-weight );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );color:var( --e-global-color-7e21173 );}@media(min-width:768px){.elementor-42785 .elementor-element.elementor-element-eb6c103{--width:50%;}.elementor-42785 .elementor-element.elementor-element-c47ceed{--width:50%;}.elementor-42785 .elementor-element.elementor-element-908bc2c{--width:50%;}.elementor-42785 .elementor-element.elementor-element-754552c{--width:50%;}.elementor-42785 .elementor-element.elementor-element-f6da887{--width:50%;}.elementor-42785 .elementor-element.elementor-element-3c8710b{--width:calc(33% - 30px);}.elementor-42785 .elementor-element.elementor-element-7fd52b7{--width:calc(33% - 30px);}.elementor-42785 .elementor-element.elementor-element-462aeea{--content-width:1280px;}.elementor-42785 .elementor-element.elementor-element-34db700{--width:25%;}.elementor-42785 .elementor-element.elementor-element-eb816bc{--width:25%;}.elementor-42785 .elementor-element.elementor-element-97cf55b{--width:25%;}.elementor-42785 .elementor-element.elementor-element-1fa599a{--width:25%;}.elementor-42785 .elementor-element.elementor-element-74da385{--width:33.3333%;}.elementor-42785 .elementor-element.elementor-element-6bb80fb{--width:66.6666%;}.elementor-42785 .elementor-element.elementor-element-b38d83c{--content-width:1280px;}}@media(max-width:1024px) and (min-width:768px){.elementor-42785 .elementor-element.elementor-element-462aeea{--content-width:1600px;}.elementor-42785 .elementor-element.elementor-element-34db700{--width:calc(50% - 15px);}.elementor-42785 .elementor-element.elementor-element-eb816bc{--width:calc(50% - 15px);}.elementor-42785 .elementor-element.elementor-element-97cf55b{--width:calc(50% - 15px);}.elementor-42785 .elementor-element.elementor-element-1fa599a{--width:calc(50% - 15px);}}@media(max-width:1024px){.elementor-42785 .elementor-element.elementor-element-b9327d4 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-05f8779 .elementor-heading-title{font-size:var( --e-global-typography-1393f25-font-size );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-d5e9bfa{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-eecdd02{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:60px;--margin-bottom:60px;--margin-left:0px;--margin-right:0px;--padding-top:15px;--padding-bottom:15px;--padding-left:15px;--padding-right:15px;}.elementor-42785 .elementor-element.elementor-element-acaef3e .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-50ceba6 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c62622f.elementor-element{--align-self:center;}.elementor-42785 .elementor-element.elementor-element-c62622f{text-align:center;font-size:14px;line-height:20px;letter-spacing:-0.3px;}.elementor-42785 .elementor-element.elementor-element-352fd78{--justify-content:center;--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-42785 .elementor-element.elementor-element-ecf1d2d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4bdcf4e .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-0c25cc5 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5bcc12d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-7f0905d .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-3b07992 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-faf964a .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-42fdc59 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4b59c3c .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-3e385f9{--padding-top:120px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-fdf25bd .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-690f768 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2200116{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-b1574df{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:60px;--margin-bottom:60px;--margin-left:0px;--margin-right:0px;--padding-top:15px;--padding-bottom:15px;--padding-left:15px;--padding-right:15px;}.elementor-42785 .elementor-element.elementor-element-5791137{--justify-content:center;--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-42785 .elementor-element.elementor-element-3e0f30a .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-bcc37a7 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2b07b13 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c2a8ae8 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-462aeea{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:30px 30px;--row-gap:30px;--column-gap:30px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-34db700{--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-fa880c5{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-eb816bc{--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-d8ef1c3{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-97cf55b{--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-e07a385 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-e07a385 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-76d58c2{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-1fa599a{--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-9253939 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-9253939 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2f8145f{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-7b650f5 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-296572b .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-f94c3ff{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5eb7c0d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4e48b80{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-061013b .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-807318d{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-f0ba09c .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-75a8886{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c7568d4 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-73d611e{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-cfaad07 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-8cadec0{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-b38d83c{--grid-auto-flow:row;--margin-top:60px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:60px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-a923ab8{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-42785 .elementor-element.elementor-element-07061c0 .elementor-heading-title{font-size:var( --e-global-typography-1393f25-font-size );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5294123{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-ba24187{--gap:20px 20px;--row-gap:20px;--column-gap:20px;}.elementor-42785 .elementor-element.elementor-element-cb8b7b4{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}}@media(max-width:767px){.elementor-42785 .elementor-element.elementor-element-f26b6f5{--padding-top:15px;--padding-bottom:15px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-f4d727b{--padding-top:60px;--padding-bottom:60px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-b9327d4 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-05f8779 .elementor-heading-title{font-size:var( --e-global-typography-1393f25-font-size );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-d5e9bfa{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c47ceed{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-3e77987 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-eecdd02{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:60px;--padding-bottom:60px;--padding-left:30px;--padding-right:030px;}.elementor-42785 .elementor-element.elementor-element-acaef3e .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-50ceba6 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c62622f{text-align:start;font-size:12px;line-height:130%;letter-spacing:0px;}.elementor-42785 .elementor-element.elementor-element-352fd78{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-42785 .elementor-element.elementor-element-ecf1d2d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4bdcf4e .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-0c25cc5 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5bcc12d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-7f0905d .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-3b07992 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-faf964a .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-42fdc59 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4b59c3c .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-3e385f9{--padding-top:120px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-fdf25bd .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-690f768 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2200116 > .elementor-widget-container{margin:20px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-2200116{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-b1574df{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:30px;--padding-bottom:60px;--padding-left:30px;--padding-right:030px;}.elementor-42785 .elementor-element.elementor-element-5791137{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-42785 .elementor-element.elementor-element-3e0f30a .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-bcc37a7 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2b07b13 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c2a8ae8 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-12003c6{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-462aeea{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:20px 20px;--row-gap:20px;--column-gap:20px;--margin-top:120px;--margin-bottom:120px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-34db700{--width:100%;--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-0ad8043 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-fa880c5{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-eb816bc{--width:100%;--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-5a3cbee .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-d8ef1c3{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-97cf55b{--width:100%;--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-e07a385 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-e07a385 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-76d58c2{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-1fa599a{--width:100%;--gap:20px 0px;--row-gap:20px;--column-gap:0px;}.elementor-42785 .elementor-element.elementor-element-9253939 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-9253939 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-2f8145f{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-7b650f5 .elementor-heading-title{font-size:var( --e-global-typography-1e6d350-font-size );line-height:var( --e-global-typography-1e6d350-line-height );letter-spacing:var( --e-global-typography-1e6d350-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-fcefd06{--margin-top:30px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-296572b .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-f94c3ff{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5eb7c0d .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-4e48b80{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-061013b .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-807318d{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-f0ba09c .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-75a8886{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-c7568d4 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-73d611e{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-cfaad07 .elementor-heading-title{font-size:var( --e-global-typography-83dac48-font-size );line-height:var( --e-global-typography-83dac48-line-height );letter-spacing:var( --e-global-typography-83dac48-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-8cadec0{font-size:var( --e-global-typography-4e7aef6-font-size );line-height:var( --e-global-typography-4e7aef6-line-height );letter-spacing:var( --e-global-typography-4e7aef6-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-b38d83c{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:120px;--padding-bottom:0px;--padding-left:30px;--padding-right:30px;}.elementor-42785 .elementor-element.elementor-element-a923ab8{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-07061c0 .elementor-heading-title{font-size:var( --e-global-typography-1393f25-font-size );line-height:var( --e-global-typography-1393f25-line-height );letter-spacing:var( --e-global-typography-1393f25-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-5294123 > .elementor-widget-container{margin:-20px 0px 60px 0px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-5294123{font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}.elementor-42785 .elementor-element.elementor-element-ba24187{--justify-content:flex-start;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-42785 .elementor-element.elementor-element-df16604{text-align:start;}.elementor-42785 .elementor-element.elementor-element-cb8b7b4 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}.elementor-42785 .elementor-element.elementor-element-cb8b7b4{text-align:start;font-size:var( --e-global-typography-5a4fee1-font-size );line-height:var( --e-global-typography-5a4fee1-line-height );letter-spacing:var( --e-global-typography-5a4fee1-letter-spacing );}}/* Start custom CSS for heading, class: .elementor-element-05f8779 */.elementor-42785 .elementor-element.elementor-element-05f8779 span {
    color: #2EC659;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-7989372 */<!-- ================================================================
  TVX BASE — klistra in ETT GÅNG i ett HTML-widget högst upp på sidan.
  Innehåller all CSS och JS. Lägg sedan resten av modulerna under.
================================================================ -->
<div id="tvx-tokyo">
<style>

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400;1,9..40,500&family=Inter:ital,wght@0,400;0,500;0,600;1,400&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0&display=swap');
#tvx-tokyo{
  /* === Brand greens (the palette) ===
     Hierarchy: Green 1 dominant (~40%), Green 2/4/5 supporting (~20%),
     Telavox Green 3 reserved as ACTIVE accent for buttons & key actions. */
  --tx-green-1: #004438;        /* Dark Green &#8212; primary brand color, dominant */
  --tx-green-2: #195e3d;        /* Mid Green &#8212; supporting */
  --tx-green-3: #2ec659;        /* Telavox Green &#8212; accent / active / interactive */
  --tx-green-4: #cfe6cc;        /* Light Green &#8212; supporting surface */
  --tx-green-5: #f2f9f2;        /* Off-white green &#8212; supporting surface */

  /* === Neutrals === */
  --tx-off-black: #151615;
  --tx-white: #ffffff;
  --tx-grey-100: #f2f2f2;
  --tx-grey-300: #d9d9d9;
  --tx-grey-500: #b7b7b7;
  --tx-grey-700: #353839;       /* used in product UI for body text */
  --tx-grey-900: #232323;

  /* === Semantic &#8212; Foreground === */
  --fg-1: var(--tx-green-1);    /* primary text on light surfaces */
  --fg-2: var(--tx-green-1);    /* secondary text &#8212; same green as primary, used in dense product UI */
  --fg-muted: var(--tx-grey-500);
  --fg-on-dark: var(--tx-green-5);
  --fg-on-dark-muted: var(--tx-green-4);
  --fg-accent: var(--tx-green-3);
  --fg-inverse: var(--tx-white);

  /* === Semantic &#8212; Background === */
  --bg-base: var(--tx-white);
  --bg-subtle: var(--tx-green-5);
  --bg-soft: var(--tx-green-4);
  --bg-dark: var(--tx-green-1);
  --bg-dark-2: var(--tx-green-2);
  --bg-accent: var(--tx-green-3);
  --bg-black: var(--tx-off-black);

  /* === Borders / Strokes === */
  --border-subtle: rgba(0, 68, 56, 0.10);
  --border-on-dark: rgba(242, 249, 242, 0.20);
  --border-accent: var(--tx-green-3);

  /* === Radii === */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;            /* canonical Bento-block radius */
  --radius-xl: 32px;
  --radius-pill: 9999px;

  /* === Shadows ===
     The brand defines clean, flat surfaces. Shadows are minimal and only
     appear inside product UI (cards, popovers). Never on Bento blocks. */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.10);

  /* === Spacing scale (4-pt) === */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;              /* gutter inside Bento blocks */
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;

  /* === 16:9 / 1920&#215;1080 grid ===
     12 columns, 30px gutters, 60px outer margin, 20px Bento gap */
  --grid-cols: 12;
  --grid-gutter: 30px;
  --grid-margin: 60px;
  --grid-bento-gap: 20px;

  /* === Type families === */
  --font-display: "DM Sans", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* === Display sizes (DM Sans Regular) ===
     line-height 1.0&#8211;1.2; letter-spacing -1.5%. */
  --display-1: 108px;           /* hero &#8212; section openers */
  --display-2: 96px;
  --display-3: 84px;            /* canonical big headline */
  --display-4: 72px;
  --display-5: 60px;
  --display-6: 48px;            /* H1 &#8212; page-level */
  --display-7: 36px;            /* H2 */
  --display-8: 24px;            /* H3 / card title */

  /* === Body sizes (Inter) === */
  --preamble-lg: 40px;          /* Inter Medium */
  --preamble-md: 32px;          /* Inter Medium &#8212; canonical preamble */
  --preamble-sm: 24px;          /* Inter Medium */
  --body-lg: 18px;              /* Inter Regular &#8212; canonical body in brand */
  --body-md: 16px;              /* product body */
  --body-sm: 14px;
  --body-xs: 11px;              /* labels / captions */
  --button-text: 18px;          /* Inter Semibold 18/24 */

  /* === Weights === */
  --w-regular: 400;
  --w-medium: 500;
  --w-semibold: 600;
  --w-bold: 700;

  /* === Easing & motion === */
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
}
#tvx-tokyo{ color: var(--fg-1); font-family: var(--font-body); -webkit-font-smoothing: antialiased; display:block; position:relative; }
#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo .material-symbols-rounded{ font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased; }
#tvx-tokyo .nav{ position: sticky; }
#tvx-tokyo .hero{ min-height: auto; padding-top: 120px; }
#tvx-tokyo .tvx-logo{ height:22px; width:auto; display:block; }
#tvx-tokyo .footer__logo .tvx-logo{ opacity:.9; }

#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo{
  margin: 0;
  padding: 0;
  background: var(--bg-base);
  color: var(--fg-1);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#tvx-tokyo{
  overflow-x: hidden;
}
#tvx-tokyo a{ color: inherit; }
#tvx-tokyo img{ display: block; max-width: 100%; }
#tvx-tokyo .page{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
#tvx-tokyo .container{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
#tvx-tokyo .nav{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 40px;
  background: rgba(0, 68, 56, 0.55);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--border-on-dark);
}
#tvx-tokyo .nav__logo img{ height: 22px; }
#tvx-tokyo .nav__brand-mark{
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .nav__divider{
  width: 1px; height: 18px;
  background: var(--border-on-dark);
}
#tvx-tokyo .nav__brand-mark .ja{
  font-family: var(--font-body);
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .nav__links{
  display: flex; gap: 28px;
  list-style: none; padding: 0; margin: 0;
}
#tvx-tokyo .nav__links a{
  font-size: 14px;
  color: var(--fg-on-dark);
  text-decoration: none;
  opacity: .85;
  transition: opacity var(--dur-base) var(--ease-out);
}
#tvx-tokyo .nav__links a:hover{ opacity: 1; color: var(--fg-accent); }
#tvx-tokyo .nav__cta{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: var(--radius-pill);
  background: var(--bg-accent);
  color: var(--tx-green-1);
  font-weight: var(--w-semibold);
  font-size: 14px;
  text-decoration: none;
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
#tvx-tokyo .nav__cta:hover{ background: #34d864; }
#tvx-tokyo .nav__cta:active{ transform: scale(.96); }
#tvx-tokyo .hero{
  position: relative;
  min-height: 100vh;
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  overflow: hidden;
  padding: 140px 0 100px;
}
#tvx-tokyo .hero__pattern{
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(46,198,89,.30) 0 1.5px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(207,230,204,.20) 0 1.5px, transparent 2px); background-size: 26px 26px, 34px 34px;
  background-size: cover;
  background-position: center;
  opacity: .14;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .hero__glow{
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(60% 50% at 80% 30%, rgba(46, 198, 89, .28), transparent 60%),
    radial-gradient(40% 40% at 15% 80%, rgba(207, 230, 204, .15), transparent 70%);
  pointer-events: none;
}
#tvx-tokyo .hero__sun{
  position: absolute;
  right: -120px;
  top: 12%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
    rgba(255, 220, 200, .9) 0%,
    rgba(255, 165, 130, .7) 30%,
    rgba(255, 110, 90, .35) 55%,
    rgba(0, 68, 56, 0) 70%);
  filter: blur(2px);
  pointer-events: none;
}
#tvx-tokyo .hero__inner{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
#tvx-tokyo .hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: rgba(46, 198, 89, 0.14);
  border: 1px solid rgba(46, 198, 89, .35);
  color: var(--fg-accent);
  font-size: 13px;
  font-weight: var(--w-medium);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 28px;
}
#tvx-tokyo .hero__eyebrow .dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--fg-accent);
  box-shadow: 0 0 0 3px rgba(46, 198, 89, .25);
  animation: pulse 1.6s var(--ease-in-out) infinite;
}
@keyframes pulse{
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .55; transform: scale(.85); }
}
#tvx-tokyo .hero h1{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(56px, 7.4vw, 108px);
  line-height: 0.96;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  color: var(--fg-on-dark);
  text-wrap: balance;
}
#tvx-tokyo .hero h1 .row{
  display: block;
}
#tvx-tokyo .hero h1 .accent{
  color: var(--fg-accent);
  font-style: italic;
  font-family: "DM Sans", serif;
}
#tvx-tokyo .hero__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 520px;
  color: var(--fg-on-dark-muted);
  margin: 0 0 36px;
}
#tvx-tokyo .hero__ctas{
  display: flex; gap: 16px; align-items: center;
  flex-wrap: wrap;
}
#tvx-tokyo .btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-weight: var(--w-semibold);
  font-size: 17px;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--dur-base) var(--ease-out);
}
#tvx-tokyo .btn--primary{
  background: var(--bg-accent);
  color: var(--tx-green-1);
}
#tvx-tokyo .btn--primary:hover{ background: #34d864; transform: translateY(-1px); }
#tvx-tokyo .btn--ghost{
  background: transparent;
  color: var(--fg-on-dark);
  border-color: rgba(242, 249, 242, .35);
}
#tvx-tokyo .btn--ghost:hover{ background: rgba(242, 249, 242, .08); }
#tvx-tokyo .btn--dark{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
}
#tvx-tokyo .btn--dark:hover{ background: var(--bg-dark-2); }
#tvx-tokyo .btn .material-symbols-rounded{ font-size: 20px; }
#tvx-tokyo .hero__pass{
  position: relative;
  perspective: 1200px;
}
#tvx-tokyo .boarding-pass{
  position: relative;
  background: linear-gradient(135deg, rgba(242, 249, 242, .06), rgba(242, 249, 242, .02));
  border: 1px solid var(--border-on-dark);
  border-radius: 24px;
  padding: 36px;
  backdrop-filter: blur(20px);
  transform: rotate(-2deg);
  transition: transform var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .boarding-pass:hover{ transform: rotate(0deg) translateY(-4px); }
#tvx-tokyo .boarding-pass__top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .boarding-pass__brand{
  text-align: right;
}
#tvx-tokyo .boarding-pass__brand .name{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .boarding-pass__brand .ja{
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .boarding-pass__route{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  align-items: center;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__city{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .boarding-pass__city.right{ text-align: right; }
#tvx-tokyo .boarding-pass__code{
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
  margin-top: 6px;
}
#tvx-tokyo .boarding-pass__plane-icon{
  color: var(--fg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
#tvx-tokyo .boarding-pass__plane-icon svg{ width: 44px; height: 44px; }
#tvx-tokyo .boarding-pass__divider{
  border: 0;
  border-top: 1px dashed rgba(242, 249, 242, .25);
  margin: 8px 0 24px;
  position: relative;
}
#tvx-tokyo .boarding-pass__divider::before, #tvx-tokyo .boarding-pass__divider::after{
  content: "";
  position: absolute;
  top: -16px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--bg-dark);
}
#tvx-tokyo .boarding-pass__divider::before{ left: -52px; }
#tvx-tokyo .boarding-pass__divider::after{ right: -52px; }
#tvx-tokyo .boarding-pass__meta{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .bp-cell .label{
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 6px;
}
#tvx-tokyo .bp-cell .value{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
  line-height: 1.1;
}
#tvx-tokyo .boarding-pass__bottom{
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed rgba(242, 249, 242, .15);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
#tvx-tokyo .barcode{
  display: flex; gap: 2px; align-items: stretch;
  height: 36px;
}
#tvx-tokyo .barcode span{ display: block; width: 2px; background: var(--fg-on-dark-muted); }
#tvx-tokyo .barcode span.t{ width: 1px; }
#tvx-tokyo .barcode span.f{ width: 4px; }
#tvx-tokyo .countdown-strip{
  position: relative;
  z-index: 2;
  margin-top: 60px;
}
#tvx-tokyo .countdown{
  display: grid;
  grid-template-columns: auto repeat(4, 1fr);
  gap: 24px;
  align-items: center;
  padding: 24px 32px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 20px;
  backdrop-filter: blur(8px);
}
#tvx-tokyo .countdown__label{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  font-weight: var(--w-medium);
  max-width: 160px;
  line-height: 1.3;
}
#tvx-tokyo .countdown__cell{
  text-align: center;
  border-left: 1px solid var(--border-on-dark);
  padding: 4px 0;
}
#tvx-tokyo .countdown__cell .num{
  font-family: var(--font-display);
  font-size: 48px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .countdown__cell .lbl{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-top: 8px;
}
#tvx-tokyo .section{
  padding: 120px 0;
  position: relative;
}
#tvx-tokyo .section--light{ background: var(--bg-base); color: var(--fg-1); }
#tvx-tokyo .section--subtle{ background: var(--bg-subtle); color: var(--fg-1); }
#tvx-tokyo .section--soft{ background: var(--bg-soft); color: var(--fg-1); }
#tvx-tokyo .section--dark{ background: var(--bg-dark); color: var(--fg-on-dark); }
#tvx-tokyo .section__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 56px;
}
#tvx-tokyo .section__eyebrow{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  margin-bottom: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  opacity: .65;
}
#tvx-tokyo .section__title{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
#tvx-tokyo .section__title .ja{
  font-size: 0.42em;
  letter-spacing: 0.14em;
  font-family: var(--font-body);
  font-weight: var(--w-medium);
  vertical-align: middle;
  display: inline-block;
  margin-left: 16px;
  color: var(--fg-accent);
  opacity: .9;
}
#tvx-tokyo .section__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 460px;
  opacity: .85;
}
#tvx-tokyo .lb{
  position: relative;
}
#tvx-tokyo .lb__skyline{
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 12% 14%, rgba(46, 198, 89, .35), transparent),
    radial-gradient(1.5px 1.5px at 36% 28%, rgba(46, 198, 89, .25), transparent),
    radial-gradient(2px 2px at 67% 10%, rgba(46, 198, 89, .3), transparent),
    radial-gradient(1.5px 1.5px at 88% 22%, rgba(46, 198, 89, .25), transparent);
}
#tvx-tokyo .plane-wrap{
  position: relative;
  width: 100%;
  margin: 0 auto;
  max-width: 1280px;
}
#tvx-tokyo .plane-svg{
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 30px 50px rgba(0, 30, 25, .35));
}
/* Plane float + gentle bank */
@keyframes planeFloat{
  0%   { transform: translateY(0px) rotate(-0.6deg); }
  30%  { transform: translateY(-14px) rotate(0.4deg); }
  60%  { transform: translateY(-9px) rotate(-0.3deg); }
  100% { transform: translateY(0px) rotate(-0.6deg); }
}
/* Jet exhaust pulse */
@keyframes exhaustPulse{
  0%,100% { opacity:.55; transform:scaleX(1); }
  50%     { opacity:.85; transform:scaleX(1.18); }
}
/* Window flicker subtle */
@keyframes winFlicker{
  0%,100% { opacity:.96; }
  50%     { opacity:.82; }
}
#tvx-tokyo .plane-svg__body{
  animation: planeFloat 7s ease-in-out infinite;
  transform-origin: 700px 305px;
}
#tvx-tokyo .jet-exhaust{ animation: exhaustPulse 1.8s ease-in-out infinite; transform-origin: 60px 310px; }
#tvx-tokyo .win-light{ animation: winFlicker 3.5s ease-in-out infinite; }
#tvx-tokyo .lb-board{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 64px;
}
#tvx-tokyo .lb-group__head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 14px;
}
#tvx-tokyo .lb-group__head h3{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0;
  line-height: 1;
}
#tvx-tokyo .lb-group__head .ja-inline{
  font-family: var(--font-body);
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--fg-accent);
  margin-left: 10px;
}
#tvx-tokyo .lb-group__tag{
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  white-space: nowrap;
}
#tvx-tokyo .lb-colhead{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  padding: 0 22px 10px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  opacity: .7;
}
#tvx-tokyo .lb-colhead .r{ text-align: right; }
#tvx-tokyo .lb-list{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#tvx-tokyo .lb-row{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 22px;
  border-radius: var(--radius-lg);
  background: rgba(242, 249, 242, .05);
  border: 1px solid var(--border-on-dark);
  transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .lb-row:hover{ transform: translateY(-2px); background: rgba(242, 249, 242, .09); }
#tvx-tokyo .lb-row__rank{
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  text-align: center;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__name{
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.15;
  color: var(--fg-on-dark);
}
#tvx-tokyo .lb-row__points{
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
}
#tvx-tokyo .lb-row__points .num{
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__points .unit{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lb-row--onboard{
  background: rgba(46, 198, 89, .08);
  border-color: rgba(46, 198, 89, .28);
}
#tvx-tokyo .lb-row--onboard .lb-row__rank{ color: var(--fg-accent); }
#tvx-tokyo .lb-row--onboard.is-leader{
  background: rgba(46, 198, 89, .16);
  border-color: rgba(46, 198, 89, .55);
}
#tvx-tokyo .how{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
#tvx-tokyo .how-card{
  background: var(--bg-base);
  border-radius: var(--radius-lg);
  padding: 40px;
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
}
#tvx-tokyo .how-card.dark{ background: var(--bg-dark); color: var(--fg-on-dark); border-color: transparent; }
#tvx-tokyo .how-card.accent{ background: var(--bg-accent); color: var(--tx-green-1); border-color: transparent; }
#tvx-tokyo .how-card__big{
  font-family: var(--font-display);
  font-size: 96px;
  line-height: 1;
  margin: 0 0 12px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .how-card__title{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0 0 12px;
  line-height: 1.1;
}
#tvx-tokyo .how-card__body{
  font-size: 16px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
  max-width: 360px;
}
#tvx-tokyo .how-card__icon{
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--bg-subtle);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
}
#tvx-tokyo .how-card.dark .how-card__icon{
  background: rgba(46, 198, 89, .12);
  color: var(--fg-accent);
}
#tvx-tokyo .how-card.accent .how-card__icon{ background: rgba(0, 68, 56, .15); color: var(--tx-green-1); }
#tvx-tokyo .how-card__icon .material-symbols-rounded{ font-size: 28px; }
#tvx-tokyo .how-card.tall{ grid-row: span 2; min-height: 480px; display: flex; flex-direction: column; justify-content: space-between; }
#tvx-tokyo .how-card__pattern{
  position: absolute;
  right: -40px; bottom: -40px;
  width: 280px; height: 280px;
  background: radial-gradient(circle at 40% 40%, rgba(46,198,89,.55), rgba(46,198,89,0) 70%);
  border-radius: 50%;
  opacity: .35;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .win{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .win-card{
  border-radius: var(--radius-lg);
  padding: 36px;
  background: var(--bg-base);
  color: var(--fg-1);
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
#tvx-tokyo .win-card.feature{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  border-color: transparent;
}
#tvx-tokyo .win-card__num{
  font-family: var(--font-display);
  font-size: 88px;
  line-height: 0.9;
  margin: 0 0 4px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .win-card__num .small{ font-size: 0.4em; opacity: .5; vertical-align: super; }
#tvx-tokyo .win-card__type{
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  opacity: .7;
  margin-bottom: 20px;
}
#tvx-tokyo .win-card__h{
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.1;
  margin: 0 0 12px;
}
#tvx-tokyo .win-card__body{
  font-size: 15px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
}
#tvx-tokyo .win-card__tag{
  margin-top: auto;
  padding-top: 24px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--fg-accent);
  font-weight: var(--w-medium);
}
#tvx-tokyo .win-card.feature .win-card__tag{ color: var(--fg-accent); }
#tvx-tokyo .rules{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 60px;
}
#tvx-tokyo .rules__sticky{
  position: sticky;
  top: 100px;
  align-self: start;
}
#tvx-tokyo .rules__list{
  display: flex; flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border-on-dark);
}
#tvx-tokyo .rule{
  border-bottom: 1px solid var(--border-on-dark);
  padding: 28px 0;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  align-items: start;
}
#tvx-tokyo .rule__num{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .rule__title{
  font-family: var(--font-display);
  font-size: 22px;
  margin: 0 0 8px;
  line-height: 1.2;
}
#tvx-tokyo .rule__body{
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-on-dark-muted);
  margin: 0;
}
#tvx-tokyo .rule__body strong{ color: var(--fg-on-dark); font-weight: var(--w-medium); }
#tvx-tokyo .rule__body ul{ padding-left: 18px; margin: 8px 0 0; }
#tvx-tokyo .rule__body li{ margin-bottom: 4px; }
#tvx-tokyo .calc{
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 18px;
  padding: 28px;
}
#tvx-tokyo .calc__row{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(242, 249, 242, .15);
}
#tvx-tokyo .calc__row label{
  font-size: 15px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .calc__control{
  display: inline-flex; align-items: center;
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-pill);
  background: rgba(0,0,0,.2);
  overflow: hidden;
}
#tvx-tokyo .calc__control button{
  width: 36px; height: 36px;
  background: transparent; border: 0; color: var(--fg-on-dark);
  font-size: 20px; cursor: pointer;
  transition: background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .calc__control button:hover{ background: rgba(46,198,89,.18); color: var(--fg-accent); }
#tvx-tokyo .calc__control input{
  width: 70px; height: 36px;
  background: transparent; border: 0;
  color: var(--fg-on-dark);
  font-family: var(--font-display);
  font-size: 22px;
  text-align: center;
  outline: 0;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .calc__control input::-webkit-outer-spin-button, #tvx-tokyo .calc__control input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
#tvx-tokyo .calc__total{
  display: flex; justify-content: space-between; align-items: flex-end;
  padding-top: 22px;
  margin-top: 6px;
  gap: 16px;
}
#tvx-tokyo .calc__total-label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .calc__total-value{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .calc__total-value small{
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  color: var(--fg-on-dark-muted);
  margin-left: 6px;
}
#tvx-tokyo .calc__qual{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: var(--w-medium);
  background: rgba(46,198,89,.18);
  color: var(--fg-accent);
}
#tvx-tokyo .calc__qual.below{
  background: rgba(255, 165, 130, .14);
  color: #ffb89e;
}
#tvx-tokyo .calc__bar{
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(242, 249, 242, .08);
  margin-top: 18px;
  overflow: visible;
}
#tvx-tokyo .calc__bar-fill{
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--fg-accent), #5be07f);
  transition: width var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .calc__bar-mark{
  position: absolute;
  top: -6px; bottom: -6px;
  width: 2px;
  background: rgba(242, 249, 242, .5);
}
#tvx-tokyo .calc__bar-mark span{
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lottery-strip{
  margin-top: 60px;
  padding: 36px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-lg);
}
#tvx-tokyo .lottery-strip__head{
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 28px; gap: 24px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-strip__legend{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--fg-on-dark-muted);
}
#tvx-tokyo .ticket-dot{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  display: inline-block;
}
#tvx-tokyo .lottery-strip__rows{
  display: flex; flex-direction: column; gap: 14px;
}
#tvx-tokyo .lottery-row{
  display: grid;
  grid-template-columns: 100px 1fr 100px;
  gap: 20px;
  align-items: center;
}
#tvx-tokyo .lottery-row__label{
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__count{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__tickets{
  display: flex; gap: 4px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-row__tickets .t{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  opacity: .9;
  animation: ticketFlicker 2.4s var(--ease-in-out) infinite;
}
@keyframes ticketFlicker{
  0%, 100% { opacity: .9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
#tvx-tokyo .footer{
  background: var(--tx-green-2);
  color: var(--fg-on-dark);
  padding: 80px 0 40px;
}
#tvx-tokyo .footer__top{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
  padding-bottom: 60px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 28px;
}
#tvx-tokyo .footer__big{
  font-family: var(--font-display);
  font-size: clamp(56px, 7vw, 108px);
  line-height: 0.95;
  margin: 0;
  letter-spacing: -0.02em;
}
#tvx-tokyo .footer__big .accent{ color: var(--fg-accent); font-style: italic; }
#tvx-tokyo .footer__sub{
  font-size: 14px;
  color: var(--fg-on-dark-muted);
  display: flex; gap: 28px;
  flex-wrap: wrap;
  justify-content: space-between;
}
#tvx-tokyo .footer__logo img{ height: 22px; opacity: .9; }
@media (max-width: 1024px){
#tvx-tokyo .hero__inner{ grid-template-columns: 1fr; }
#tvx-tokyo .hero__pass{ max-width: 480px; }
#tvx-tokyo .countdown{ grid-template-columns: 1fr 1fr; gap: 16px; }
#tvx-tokyo .countdown__label{ grid-column: 1 / -1; max-width: none; }
#tvx-tokyo .countdown__cell:nth-child(2){ border-left: 0; }
#tvx-tokyo .how{ grid-template-columns: 1fr; }
#tvx-tokyo .how-card.tall{ grid-row: auto; min-height: 0; }
#tvx-tokyo .win{ grid-template-columns: 1fr; }
#tvx-tokyo .lb-board{ grid-template-columns: 1fr; gap: 36px; }
#tvx-tokyo .rules{ grid-template-columns: 1fr; gap: 32px; }
#tvx-tokyo .rules__sticky{ position: static; }
#tvx-tokyo .nav__links{ display: none; }
#tvx-tokyo .section__head{ flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px){
#tvx-tokyo .nav{ padding: 14px 20px; }
#tvx-tokyo .container{ padding: 0 20px; }
#tvx-tokyo .section{ padding: 80px 0; }
#tvx-tokyo .hero{ padding: 110px 0 70px; }
#tvx-tokyo .boarding-pass__city{ font-size: 40px; }
#tvx-tokyo .boarding-pass__route{ gap: 12px; }
#tvx-tokyo .boarding-pass{ padding: 24px; }
#tvx-tokyo .countdown__cell .num{ font-size: 36px; }
#tvx-tokyo .lb-row{ grid-template-columns: 46px 1fr auto; padding: 14px 16px; gap: 12px; }
#tvx-tokyo .lb-colhead{ grid-template-columns: 46px 1fr auto; padding: 0 16px 8px; }
#tvx-tokyo .lb-row__rank{ font-size: 26px; }
#tvx-tokyo .lb-row__name{ font-size: 18px; }
#tvx-tokyo .lb-row__points .num{ font-size: 24px; }
#tvx-tokyo .lb-group__head h3{ font-size: 24px; }
#tvx-tokyo .lb-group__head .ja-inline{ display: none; }
}

</style>
<script>
// ============================================================
// Telavox Amazing Race — Tokyo 2026
// ============================================================
// GOOGLE SHEETS INTEGRATION
// ──────────────────────────────────────────────────────────
// 1. Öppna ditt Google Sheet (med kolumner: Namn | Poäng)
// 2. Extensions → Apps Script → klistra in:
//
//    function doGet() {
//      const sheet = SpreadsheetApp.getActiveSpreadsheet()
//        .getSheetByName("Leaderboard");
//      const rows = sheet.getDataRange().getValues().slice(1);
//      const data = rows
//        .filter(r => r[0] && r[1] !== '')
//        .map((r, i) => ({ id: i+1, name: String(r[0]), points: Number(r[1]) }))
//        .sort((a, b) => b.points - a.points);
//      return ContentService
//        .createTextOutput(JSON.stringify(data))
//        .setMimeType(ContentService.MimeType.JSON);
//    }
//
// 3. Deploy → New deployment → Web app → Anyone → Deploy
// 4. Kopiera URL:en och klistra in nedan som SHEETS_URL
// ──────────────────────────────────────────────────────────

const SHEETS_URL = '';   // ← KLISTRA IN DIN APPS SCRIPT URL HÄR

// Fallback-data används automatiskt om Sheets-URL saknas eller misslyckas
const FALLBACK_SELLERS = [
  { id: 1,  name: "Linnea Bergstr\u00f6m",  points: 412 },
  { id: 2,  name: "Erik Sj\u00f6berg",      points: 387 },
  { id: 3,  name: "Amir Hassani",        points: 341 },
  { id: 4,  name: "Sofia Lundqvist",     points: 318 },
  { id: 5,  name: "Marcus Ek",           points: 296 },
  { id: 6,  name: "Johanna Wikstr\u00f6m",  points: 274 },
  { id: 7,  name: "Daniel \u00d6stberg",    points: 251 },
  { id: 8,  name: "Priya Andersson",     points: 233 },
  { id: 9,  name: "Henrik Nordmark",     points: 198 },
  { id: 10, name: "Elin Karlsson",       points: 164 },
  { id: 11, name: "Filip Holm",          points: 132 },
  { id: 12, name: "Sara Akhtar",         points:  96 },
];

// ============================================================
// Telavox Amazing Race — main.js
// ============================================================

(function () {
  const fmt  = (n) => n.toLocaleString('sv-SE');
  const pad  = (n) => String(n).padStart(2, '0');
  const pad3 = (n) => String(n).padStart(3, '0');

  let SELLERS = [];
  let top8    = [];
  let queue   = [];

  /* ---------- Load data: Sheets → fallback ---------- */
  function loadData() {
    // Show skeleton state while loading
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';
    if (gate)    gate.innerHTML    = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';

    if (!SHEETS_URL) {
      useFallback('Ingen Sheets-URL konfigurerad — visar exempeldata.');
      return;
    }

    fetch(SHEETS_URL)
      .then(r => {
        if (!r.ok) throw new Error('HTTP ' + r.status);
        return r.json();
      })
      .then(data => {
        if (!Array.isArray(data) || data.length === 0) throw new Error('Tom data');
        SELLERS = data.sort((a, b) => b.points - a.points);
        boot();
      })
      .catch(err => {
        console.warn('[Tokyo Race] Sheets-hämtning misslyckades:', err.message, '— använder fallback.');
        useFallback();
      });
  }

  function useFallback(msg) {
    if (msg) console.info('[Tokyo Race]', msg);
    SELLERS = FALLBACK_SELLERS;
    boot();
  }

  function boot() {
    top8  = SELLERS.slice(0, 8);
    queue = SELLERS.slice(8);
    renderPlane();
    renderLeaderboard();
    tickCountdown();
    calculator();
    renderLottery();
  }

  /* ---------- Plane: bigger windows, names + hover tooltip ---------- */
  function renderPlane() {
    const g = document.getElementById('plane-windows');
    if (!g) return;
    const startX = 380, endX = 1170, count = 8;
    const step = (endX - startX) / (count - 1);
    const cy = 305;
    let s = '';
    for (let i = 0; i < count; i++) {
      const cx     = endX - step * i;
      const seller = top8[i];
      const firstName = seller ? seller.name.split(' ')[0] : '';
      const rank   = i + 1;
      s += `<circle cx="${cx}" cy="${cy}" r="34" fill="#2ec659" opacity=".12"/>`;
      s += `<rect x="${cx-23}" y="${cy-23}" width="46" height="46" rx="14" fill="#002e24"/>`;
      s += `<rect x="${cx-20}" y="${cy-20}" width="40" height="40" rx="12" fill="#ffe8b0" opacity=".96"/>`;
      s += `<path d="M ${cx-13},${cy-13} Q ${cx-2},${cy-19} ${cx+11},${cy-14}" stroke="rgba(255,255,255,.75)" stroke-width="2.5" fill="none" stroke-linecap="round"/>`;
      s += `<rect x="${cx+11}" y="${cy-32}" width="24" height="17" rx="8" fill="#004438"/>`;
      s += `<text x="${cx+23}" y="${cy-20}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="10" font-weight="700" fill="#2ec659">${rank}</text>`;
      s += `<rect x="${cx-32}" y="${cy+27}" width="64" height="21" rx="6" fill="rgba(0,36,28,.88)"/>`;
      s += `<text x="${cx}" y="${cy+42}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="12" font-weight="600" fill="#f2f9f2">${firstName}</text>`;
      s += `<rect class="plane-seat-hit" x="${cx-33}" y="${cy-36}" width="66" height="84" rx="8" fill="transparent" style="cursor:pointer;" data-idx="${i}"/>`;
    }
    g.innerHTML = s;

    const tooltip = document.getElementById('plane-tooltip');
    const ttRank  = document.getElementById('plane-tooltip-rank');
    const ttName  = document.getElementById('plane-tooltip-name');
    const ttPts   = document.getElementById('plane-tooltip-pts');
    const svg     = document.getElementById('plane');
    const wrap    = document.getElementById('plane-wrap');

    g.querySelectorAll('.plane-seat-hit').forEach(el => {
      el.addEventListener('mouseenter', function() {
        const idx = parseInt(this.dataset.idx);
        const sel = top8[idx];
        if (!sel || !tooltip) return;
        ttRank.textContent = 'Plats ' + (idx + 1);
        ttName.textContent = sel.name;
        ttPts.textContent  = fmt(sel.points) + ' po\u00e4ng';
        const svgRect  = svg.getBoundingClientRect();
        const wrapRect = wrap.getBoundingClientRect();
        const scaleX = svgRect.width  / 1500;
        const scaleY = svgRect.height / 580;
        const cx = endX - step * idx;
        const px = (svgRect.left - wrapRect.left) + cx * scaleX;
        const py = (svgRect.top  - wrapRect.top)  + (cy - 40) * scaleY;
        tooltip.style.left    = px + 'px';
        tooltip.style.top     = py + 'px';
        tooltip.style.display = 'block';
      });
      el.addEventListener('mouseleave', function() {
        if (tooltip) tooltip.style.display = 'none';
      });
    });
  }

  /* ---------- Leaderboard ---------- */
  function row(rank, s, onboard) {
    return `
      <div class="lb-row ${onboard ? 'lb-row--onboard' : ''} ${rank === 1 ? 'is-leader' : ''}">
        <div class="lb-row__rank">${rank}</div>
        <div class="lb-row__name">${s.name}</div>
        <div class="lb-row__points"><span class="num">${fmt(s.points)}</span><span class="unit">p</span></div>
      </div>`;
  }
  function renderLeaderboard() {
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = top8.map((s, i) => row(i + 1, s, true)).join('');
    if (gate)    gate.innerHTML    = queue.map((s, i) => row(9 + i, s, false)).join('');
  }

  /* ---------- Countdown ---------- */
  function tickCountdown() {
    const target = new Date('2026-12-31T23:59:59+01:00').getTime();
    function update() {
      let diff = Math.max(0, target - Date.now());
      const d = Math.floor(diff / 86400000); diff -= d * 86400000;
      const h = Math.floor(diff / 3600000);  diff -= h * 3600000;
      const m = Math.floor(diff / 60000);    diff -= m * 60000;
      const s = Math.floor(diff / 1000);
      const set = (k, v) => { const el = document.querySelector(`[data-cd="${k}"]`); if (el) el.textContent = v; };
      set('d', pad3(d)); set('h', pad(h)); set('m', pad(m)); set('s', pad(s));
    }
    update();
    setInterval(update, 1000);
  }

  /* ---------- Calculator ---------- */
  function calculator() {
    const mob   = document.getElementById('calc-mobile');
    const ai    = document.getElementById('calc-ai');
    const total = document.getElementById('calc-total');
    const qual  = document.getElementById('calc-qual');
    const bar   = document.getElementById('calc-bar');
    if (!mob || !ai) return;
    function compute() {
      const m   = Math.max(0, parseInt(mob.value || 0, 10));
      const a   = Math.max(0, parseInt(ai.value  || 0, 10));
      const sum = m * 1 + a * 10;
      total.textContent = fmt(sum);
      const passes = sum >= 80;
      qual.classList.toggle('below', !passes);
      qual.innerHTML = passes
        ? '<span class="material-symbols-rounded">check_circle</span> \u00d6ver kvalgr\u00e4nsen'
        : `<span class="material-symbols-rounded">flag</span> ${80 - sum} p kvar till kvalet`;
      bar.style.width = Math.min(100, (sum / 500) * 100) + '%';
    }
    [mob, ai].forEach(el => el.addEventListener('input', compute));
    document.querySelectorAll('[data-calc]').forEach(btn => {
      btn.addEventListener('click', () => {
        const t = btn.dataset.calc === 'mobile' ? mob : ai;
        t.value = Math.max(0, parseInt(t.value || 0, 10) + parseInt(btn.dataset.delta, 10));
        compute();
      });
    });
    compute();
  }

  /* ---------- Lottery strip ---------- */
  function renderLottery() {
    document.querySelectorAll('.lottery-row__tickets').forEach(rowEl => {
      const n = parseInt(rowEl.dataset.count, 10);
      let html = '';
      for (let i = 0; i < n; i++) html += `<div class="t" style="animation-delay:${(i * 0.08).toFixed(2)}s"></div>`;
      rowEl.innerHTML = html;
    });
  }

  /* ---------- Kickoff ---------- */
  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', loadData);
  else loadData();
})();
</script>
</div>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-2c398b9 */<!-- ================================================================
  TVX BASE — klistra in ETT GÅNG i ett HTML-widget högst upp på sidan.
  Innehåller all CSS och JS. Lägg sedan resten av modulerna under.
================================================================ -->
<div id="tvx-tokyo">
<style>

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400;1,9..40,500&family=Inter:ital,wght@0,400;0,500;0,600;1,400&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0&display=swap');
#tvx-tokyo{
  /* === Brand greens (the palette) ===
     Hierarchy: Green 1 dominant (~40%), Green 2/4/5 supporting (~20%),
     Telavox Green 3 reserved as ACTIVE accent for buttons & key actions. */
  --tx-green-1: #004438;        /* Dark Green &#8212; primary brand color, dominant */
  --tx-green-2: #195e3d;        /* Mid Green &#8212; supporting */
  --tx-green-3: #2ec659;        /* Telavox Green &#8212; accent / active / interactive */
  --tx-green-4: #cfe6cc;        /* Light Green &#8212; supporting surface */
  --tx-green-5: #f2f9f2;        /* Off-white green &#8212; supporting surface */

  /* === Neutrals === */
  --tx-off-black: #151615;
  --tx-white: #ffffff;
  --tx-grey-100: #f2f2f2;
  --tx-grey-300: #d9d9d9;
  --tx-grey-500: #b7b7b7;
  --tx-grey-700: #353839;       /* used in product UI for body text */
  --tx-grey-900: #232323;

  /* === Semantic &#8212; Foreground === */
  --fg-1: var(--tx-green-1);    /* primary text on light surfaces */
  --fg-2: var(--tx-green-1);    /* secondary text &#8212; same green as primary, used in dense product UI */
  --fg-muted: var(--tx-grey-500);
  --fg-on-dark: var(--tx-green-5);
  --fg-on-dark-muted: var(--tx-green-4);
  --fg-accent: var(--tx-green-3);
  --fg-inverse: var(--tx-white);

  /* === Semantic &#8212; Background === */
  --bg-base: var(--tx-white);
  --bg-subtle: var(--tx-green-5);
  --bg-soft: var(--tx-green-4);
  --bg-dark: var(--tx-green-1);
  --bg-dark-2: var(--tx-green-2);
  --bg-accent: var(--tx-green-3);
  --bg-black: var(--tx-off-black);

  /* === Borders / Strokes === */
  --border-subtle: rgba(0, 68, 56, 0.10);
  --border-on-dark: rgba(242, 249, 242, 0.20);
  --border-accent: var(--tx-green-3);

  /* === Radii === */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;            /* canonical Bento-block radius */
  --radius-xl: 32px;
  --radius-pill: 9999px;

  /* === Shadows ===
     The brand defines clean, flat surfaces. Shadows are minimal and only
     appear inside product UI (cards, popovers). Never on Bento blocks. */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.10);

  /* === Spacing scale (4-pt) === */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;              /* gutter inside Bento blocks */
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;

  /* === 16:9 / 1920&#215;1080 grid ===
     12 columns, 30px gutters, 60px outer margin, 20px Bento gap */
  --grid-cols: 12;
  --grid-gutter: 30px;
  --grid-margin: 60px;
  --grid-bento-gap: 20px;

  /* === Type families === */
  --font-display: "DM Sans", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* === Display sizes (DM Sans Regular) ===
     line-height 1.0&#8211;1.2; letter-spacing -1.5%. */
  --display-1: 108px;           /* hero &#8212; section openers */
  --display-2: 96px;
  --display-3: 84px;            /* canonical big headline */
  --display-4: 72px;
  --display-5: 60px;
  --display-6: 48px;            /* H1 &#8212; page-level */
  --display-7: 36px;            /* H2 */
  --display-8: 24px;            /* H3 / card title */

  /* === Body sizes (Inter) === */
  --preamble-lg: 40px;          /* Inter Medium */
  --preamble-md: 32px;          /* Inter Medium &#8212; canonical preamble */
  --preamble-sm: 24px;          /* Inter Medium */
  --body-lg: 18px;              /* Inter Regular &#8212; canonical body in brand */
  --body-md: 16px;              /* product body */
  --body-sm: 14px;
  --body-xs: 11px;              /* labels / captions */
  --button-text: 18px;          /* Inter Semibold 18/24 */

  /* === Weights === */
  --w-regular: 400;
  --w-medium: 500;
  --w-semibold: 600;
  --w-bold: 700;

  /* === Easing & motion === */
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
}
#tvx-tokyo{ color: var(--fg-1); font-family: var(--font-body); -webkit-font-smoothing: antialiased; display:block; position:relative; }
#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo .material-symbols-rounded{ font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased; }
#tvx-tokyo .nav{ position: sticky; }
#tvx-tokyo .hero{ min-height: auto; padding-top: 120px; }
#tvx-tokyo .tvx-logo{ height:22px; width:auto; display:block; }
#tvx-tokyo .footer__logo .tvx-logo{ opacity:.9; }

#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo{
  margin: 0;
  padding: 0;
  background: var(--bg-base);
  color: var(--fg-1);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#tvx-tokyo{
  overflow-x: hidden;
}
#tvx-tokyo a{ color: inherit; }
#tvx-tokyo img{ display: block; max-width: 100%; }
#tvx-tokyo .page{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
#tvx-tokyo .container{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
#tvx-tokyo .nav{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 40px;
  background: rgba(0, 68, 56, 0.55);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--border-on-dark);
}
#tvx-tokyo .nav__logo img{ height: 22px; }
#tvx-tokyo .nav__brand-mark{
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .nav__divider{
  width: 1px; height: 18px;
  background: var(--border-on-dark);
}
#tvx-tokyo .nav__brand-mark .ja{
  font-family: var(--font-body);
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .nav__links{
  display: flex; gap: 28px;
  list-style: none; padding: 0; margin: 0;
}
#tvx-tokyo .nav__links a{
  font-size: 14px;
  color: var(--fg-on-dark);
  text-decoration: none;
  opacity: .85;
  transition: opacity var(--dur-base) var(--ease-out);
}
#tvx-tokyo .nav__links a:hover{ opacity: 1; color: var(--fg-accent); }
#tvx-tokyo .nav__cta{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: var(--radius-pill);
  background: var(--bg-accent);
  color: var(--tx-green-1);
  font-weight: var(--w-semibold);
  font-size: 14px;
  text-decoration: none;
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
#tvx-tokyo .nav__cta:hover{ background: #34d864; }
#tvx-tokyo .nav__cta:active{ transform: scale(.96); }
#tvx-tokyo .hero{
  position: relative;
  min-height: 100vh;
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  overflow: hidden;
  padding: 140px 0 100px;
}
#tvx-tokyo .hero__pattern{
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(46,198,89,.30) 0 1.5px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(207,230,204,.20) 0 1.5px, transparent 2px); background-size: 26px 26px, 34px 34px;
  background-size: cover;
  background-position: center;
  opacity: .14;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .hero__glow{
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(60% 50% at 80% 30%, rgba(46, 198, 89, .28), transparent 60%),
    radial-gradient(40% 40% at 15% 80%, rgba(207, 230, 204, .15), transparent 70%);
  pointer-events: none;
}
#tvx-tokyo .hero__sun{
  position: absolute;
  right: -120px;
  top: 12%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
    rgba(255, 220, 200, .9) 0%,
    rgba(255, 165, 130, .7) 30%,
    rgba(255, 110, 90, .35) 55%,
    rgba(0, 68, 56, 0) 70%);
  filter: blur(2px);
  pointer-events: none;
}
#tvx-tokyo .hero__inner{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
#tvx-tokyo .hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: rgba(46, 198, 89, 0.14);
  border: 1px solid rgba(46, 198, 89, .35);
  color: var(--fg-accent);
  font-size: 13px;
  font-weight: var(--w-medium);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 28px;
}
#tvx-tokyo .hero__eyebrow .dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--fg-accent);
  box-shadow: 0 0 0 3px rgba(46, 198, 89, .25);
  animation: pulse 1.6s var(--ease-in-out) infinite;
}
@keyframes pulse{
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .55; transform: scale(.85); }
}
#tvx-tokyo .hero h1{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(56px, 7.4vw, 108px);
  line-height: 0.96;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  color: var(--fg-on-dark);
  text-wrap: balance;
}
#tvx-tokyo .hero h1 .row{
  display: block;
}
#tvx-tokyo .hero h1 .accent{
  color: var(--fg-accent);
  font-style: italic;
  font-family: "DM Sans", serif;
}
#tvx-tokyo .hero__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 520px;
  color: var(--fg-on-dark-muted);
  margin: 0 0 36px;
}
#tvx-tokyo .hero__ctas{
  display: flex; gap: 16px; align-items: center;
  flex-wrap: wrap;
}
#tvx-tokyo .btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-weight: var(--w-semibold);
  font-size: 17px;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--dur-base) var(--ease-out);
}
#tvx-tokyo .btn--primary{
  background: var(--bg-accent);
  color: var(--tx-green-1);
}
#tvx-tokyo .btn--primary:hover{ background: #34d864; transform: translateY(-1px); }
#tvx-tokyo .btn--ghost{
  background: transparent;
  color: var(--fg-on-dark);
  border-color: rgba(242, 249, 242, .35);
}
#tvx-tokyo .btn--ghost:hover{ background: rgba(242, 249, 242, .08); }
#tvx-tokyo .btn--dark{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
}
#tvx-tokyo .btn--dark:hover{ background: var(--bg-dark-2); }
#tvx-tokyo .btn .material-symbols-rounded{ font-size: 20px; }
#tvx-tokyo .hero__pass{
  position: relative;
  perspective: 1200px;
}
#tvx-tokyo .boarding-pass{
  position: relative;
  background: linear-gradient(135deg, rgba(242, 249, 242, .06), rgba(242, 249, 242, .02));
  border: 1px solid var(--border-on-dark);
  border-radius: 24px;
  padding: 36px;
  backdrop-filter: blur(20px);
  transform: rotate(-2deg);
  transition: transform var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .boarding-pass:hover{ transform: rotate(0deg) translateY(-4px); }
#tvx-tokyo .boarding-pass__top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .boarding-pass__brand{
  text-align: right;
}
#tvx-tokyo .boarding-pass__brand .name{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .boarding-pass__brand .ja{
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .boarding-pass__route{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  align-items: center;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__city{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .boarding-pass__city.right{ text-align: right; }
#tvx-tokyo .boarding-pass__code{
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
  margin-top: 6px;
}
#tvx-tokyo .boarding-pass__plane-icon{
  color: var(--fg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
#tvx-tokyo .boarding-pass__plane-icon svg{ width: 44px; height: 44px; }
#tvx-tokyo .boarding-pass__divider{
  border: 0;
  border-top: 1px dashed rgba(242, 249, 242, .25);
  margin: 8px 0 24px;
  position: relative;
}
#tvx-tokyo .boarding-pass__divider::before, #tvx-tokyo .boarding-pass__divider::after{
  content: "";
  position: absolute;
  top: -16px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--bg-dark);
}
#tvx-tokyo .boarding-pass__divider::before{ left: -52px; }
#tvx-tokyo .boarding-pass__divider::after{ right: -52px; }
#tvx-tokyo .boarding-pass__meta{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .bp-cell .label{
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 6px;
}
#tvx-tokyo .bp-cell .value{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
  line-height: 1.1;
}
#tvx-tokyo .boarding-pass__bottom{
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed rgba(242, 249, 242, .15);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
#tvx-tokyo .barcode{
  display: flex; gap: 2px; align-items: stretch;
  height: 36px;
}
#tvx-tokyo .barcode span{ display: block; width: 2px; background: var(--fg-on-dark-muted); }
#tvx-tokyo .barcode span.t{ width: 1px; }
#tvx-tokyo .barcode span.f{ width: 4px; }
#tvx-tokyo .countdown-strip{
  position: relative;
  z-index: 2;
  margin-top: 60px;
}
#tvx-tokyo .countdown{
  display: grid;
  grid-template-columns: auto repeat(4, 1fr);
  gap: 24px;
  align-items: center;
  padding: 24px 32px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 20px;
  backdrop-filter: blur(8px);
}
#tvx-tokyo .countdown__label{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  font-weight: var(--w-medium);
  max-width: 160px;
  line-height: 1.3;
}
#tvx-tokyo .countdown__cell{
  text-align: center;
  border-left: 1px solid var(--border-on-dark);
  padding: 4px 0;
}
#tvx-tokyo .countdown__cell .num{
  font-family: var(--font-display);
  font-size: 48px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .countdown__cell .lbl{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-top: 8px;
}
#tvx-tokyo .section{
  padding: 120px 0;
  position: relative;
}
#tvx-tokyo .section--light{ background: var(--bg-base); color: var(--fg-1); }
#tvx-tokyo .section--subtle{ background: var(--bg-subtle); color: var(--fg-1); }
#tvx-tokyo .section--soft{ background: var(--bg-soft); color: var(--fg-1); }
#tvx-tokyo .section--dark{ background: var(--bg-dark); color: var(--fg-on-dark); }
#tvx-tokyo .section__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 56px;
}
#tvx-tokyo .section__eyebrow{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  margin-bottom: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  opacity: .65;
}
#tvx-tokyo .section__title{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
#tvx-tokyo .section__title .ja{
  font-size: 0.42em;
  letter-spacing: 0.14em;
  font-family: var(--font-body);
  font-weight: var(--w-medium);
  vertical-align: middle;
  display: inline-block;
  margin-left: 16px;
  color: var(--fg-accent);
  opacity: .9;
}
#tvx-tokyo .section__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 460px;
  opacity: .85;
}
#tvx-tokyo .lb{
  position: relative;
}
#tvx-tokyo .lb__skyline{
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 12% 14%, rgba(46, 198, 89, .35), transparent),
    radial-gradient(1.5px 1.5px at 36% 28%, rgba(46, 198, 89, .25), transparent),
    radial-gradient(2px 2px at 67% 10%, rgba(46, 198, 89, .3), transparent),
    radial-gradient(1.5px 1.5px at 88% 22%, rgba(46, 198, 89, .25), transparent);
}
#tvx-tokyo .plane-wrap{
  position: relative;
  width: 100%;
  margin: 0 auto;
  max-width: 1280px;
}
#tvx-tokyo .plane-svg{
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 30px 50px rgba(0, 30, 25, .35));
}
/* Plane float + gentle bank */
@keyframes planeFloat{
  0%   { transform: translateY(0px) rotate(-0.6deg); }
  30%  { transform: translateY(-14px) rotate(0.4deg); }
  60%  { transform: translateY(-9px) rotate(-0.3deg); }
  100% { transform: translateY(0px) rotate(-0.6deg); }
}
/* Jet exhaust pulse */
@keyframes exhaustPulse{
  0%,100% { opacity:.55; transform:scaleX(1); }
  50%     { opacity:.85; transform:scaleX(1.18); }
}
/* Window flicker subtle */
@keyframes winFlicker{
  0%,100% { opacity:.96; }
  50%     { opacity:.82; }
}
#tvx-tokyo .plane-svg__body{
  animation: planeFloat 7s ease-in-out infinite;
  transform-origin: 700px 305px;
}
#tvx-tokyo .jet-exhaust{ animation: exhaustPulse 1.8s ease-in-out infinite; transform-origin: 60px 310px; }
#tvx-tokyo .win-light{ animation: winFlicker 3.5s ease-in-out infinite; }
#tvx-tokyo .lb-board{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 64px;
}
#tvx-tokyo .lb-group__head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 14px;
}
#tvx-tokyo .lb-group__head h3{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0;
  line-height: 1;
}
#tvx-tokyo .lb-group__head .ja-inline{
  font-family: var(--font-body);
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--fg-accent);
  margin-left: 10px;
}
#tvx-tokyo .lb-group__tag{
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  white-space: nowrap;
}
#tvx-tokyo .lb-colhead{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  padding: 0 22px 10px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  opacity: .7;
}
#tvx-tokyo .lb-colhead .r{ text-align: right; }
#tvx-tokyo .lb-list{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#tvx-tokyo .lb-row{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 22px;
  border-radius: var(--radius-lg);
  background: rgba(242, 249, 242, .05);
  border: 1px solid var(--border-on-dark);
  transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .lb-row:hover{ transform: translateY(-2px); background: rgba(242, 249, 242, .09); }
#tvx-tokyo .lb-row__rank{
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  text-align: center;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__name{
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.15;
  color: var(--fg-on-dark);
}
#tvx-tokyo .lb-row__points{
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
}
#tvx-tokyo .lb-row__points .num{
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__points .unit{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lb-row--onboard{
  background: rgba(46, 198, 89, .08);
  border-color: rgba(46, 198, 89, .28);
}
#tvx-tokyo .lb-row--onboard .lb-row__rank{ color: var(--fg-accent); }
#tvx-tokyo .lb-row--onboard.is-leader{
  background: rgba(46, 198, 89, .16);
  border-color: rgba(46, 198, 89, .55);
}
#tvx-tokyo .how{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
#tvx-tokyo .how-card{
  background: var(--bg-base);
  border-radius: var(--radius-lg);
  padding: 40px;
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
}
#tvx-tokyo .how-card.dark{ background: var(--bg-dark); color: var(--fg-on-dark); border-color: transparent; }
#tvx-tokyo .how-card.accent{ background: var(--bg-accent); color: var(--tx-green-1); border-color: transparent; }
#tvx-tokyo .how-card__big{
  font-family: var(--font-display);
  font-size: 96px;
  line-height: 1;
  margin: 0 0 12px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .how-card__title{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0 0 12px;
  line-height: 1.1;
}
#tvx-tokyo .how-card__body{
  font-size: 16px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
  max-width: 360px;
}
#tvx-tokyo .how-card__icon{
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--bg-subtle);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
}
#tvx-tokyo .how-card.dark .how-card__icon{
  background: rgba(46, 198, 89, .12);
  color: var(--fg-accent);
}
#tvx-tokyo .how-card.accent .how-card__icon{ background: rgba(0, 68, 56, .15); color: var(--tx-green-1); }
#tvx-tokyo .how-card__icon .material-symbols-rounded{ font-size: 28px; }
#tvx-tokyo .how-card.tall{ grid-row: span 2; min-height: 480px; display: flex; flex-direction: column; justify-content: space-between; }
#tvx-tokyo .how-card__pattern{
  position: absolute;
  right: -40px; bottom: -40px;
  width: 280px; height: 280px;
  background: radial-gradient(circle at 40% 40%, rgba(46,198,89,.55), rgba(46,198,89,0) 70%);
  border-radius: 50%;
  opacity: .35;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .win{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .win-card{
  border-radius: var(--radius-lg);
  padding: 36px;
  background: var(--bg-base);
  color: var(--fg-1);
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
#tvx-tokyo .win-card.feature{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  border-color: transparent;
}
#tvx-tokyo .win-card__num{
  font-family: var(--font-display);
  font-size: 88px;
  line-height: 0.9;
  margin: 0 0 4px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .win-card__num .small{ font-size: 0.4em; opacity: .5; vertical-align: super; }
#tvx-tokyo .win-card__type{
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  opacity: .7;
  margin-bottom: 20px;
}
#tvx-tokyo .win-card__h{
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.1;
  margin: 0 0 12px;
}
#tvx-tokyo .win-card__body{
  font-size: 15px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
}
#tvx-tokyo .win-card__tag{
  margin-top: auto;
  padding-top: 24px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--fg-accent);
  font-weight: var(--w-medium);
}
#tvx-tokyo .win-card.feature .win-card__tag{ color: var(--fg-accent); }
#tvx-tokyo .rules{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 60px;
}
#tvx-tokyo .rules__sticky{
  position: sticky;
  top: 100px;
  align-self: start;
}
#tvx-tokyo .rules__list{
  display: flex; flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border-on-dark);
}
#tvx-tokyo .rule{
  border-bottom: 1px solid var(--border-on-dark);
  padding: 28px 0;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  align-items: start;
}
#tvx-tokyo .rule__num{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .rule__title{
  font-family: var(--font-display);
  font-size: 22px;
  margin: 0 0 8px;
  line-height: 1.2;
}
#tvx-tokyo .rule__body{
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-on-dark-muted);
  margin: 0;
}
#tvx-tokyo .rule__body strong{ color: var(--fg-on-dark); font-weight: var(--w-medium); }
#tvx-tokyo .rule__body ul{ padding-left: 18px; margin: 8px 0 0; }
#tvx-tokyo .rule__body li{ margin-bottom: 4px; }
#tvx-tokyo .calc{
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 18px;
  padding: 28px;
}
#tvx-tokyo .calc__row{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(242, 249, 242, .15);
}
#tvx-tokyo .calc__row label{
  font-size: 15px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .calc__control{
  display: inline-flex; align-items: center;
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-pill);
  background: rgba(0,0,0,.2);
  overflow: hidden;
}
#tvx-tokyo .calc__control button{
  width: 36px; height: 36px;
  background: transparent; border: 0; color: var(--fg-on-dark);
  font-size: 20px; cursor: pointer;
  transition: background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .calc__control button:hover{ background: rgba(46,198,89,.18); color: var(--fg-accent); }
#tvx-tokyo .calc__control input{
  width: 70px; height: 36px;
  background: transparent; border: 0;
  color: var(--fg-on-dark);
  font-family: var(--font-display);
  font-size: 22px;
  text-align: center;
  outline: 0;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .calc__control input::-webkit-outer-spin-button, #tvx-tokyo .calc__control input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
#tvx-tokyo .calc__total{
  display: flex; justify-content: space-between; align-items: flex-end;
  padding-top: 22px;
  margin-top: 6px;
  gap: 16px;
}
#tvx-tokyo .calc__total-label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .calc__total-value{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .calc__total-value small{
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  color: var(--fg-on-dark-muted);
  margin-left: 6px;
}
#tvx-tokyo .calc__qual{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: var(--w-medium);
  background: rgba(46,198,89,.18);
  color: var(--fg-accent);
}
#tvx-tokyo .calc__qual.below{
  background: rgba(255, 165, 130, .14);
  color: #ffb89e;
}
#tvx-tokyo .calc__bar{
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(242, 249, 242, .08);
  margin-top: 18px;
  overflow: visible;
}
#tvx-tokyo .calc__bar-fill{
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--fg-accent), #5be07f);
  transition: width var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .calc__bar-mark{
  position: absolute;
  top: -6px; bottom: -6px;
  width: 2px;
  background: rgba(242, 249, 242, .5);
}
#tvx-tokyo .calc__bar-mark span{
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lottery-strip{
  margin-top: 60px;
  padding: 36px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-lg);
}
#tvx-tokyo .lottery-strip__head{
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 28px; gap: 24px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-strip__legend{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--fg-on-dark-muted);
}
#tvx-tokyo .ticket-dot{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  display: inline-block;
}
#tvx-tokyo .lottery-strip__rows{
  display: flex; flex-direction: column; gap: 14px;
}
#tvx-tokyo .lottery-row{
  display: grid;
  grid-template-columns: 100px 1fr 100px;
  gap: 20px;
  align-items: center;
}
#tvx-tokyo .lottery-row__label{
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__count{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__tickets{
  display: flex; gap: 4px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-row__tickets .t{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  opacity: .9;
  animation: ticketFlicker 2.4s var(--ease-in-out) infinite;
}
@keyframes ticketFlicker{
  0%, 100% { opacity: .9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
#tvx-tokyo .footer{
  background: var(--tx-green-2);
  color: var(--fg-on-dark);
  padding: 80px 0 40px;
}
#tvx-tokyo .footer__top{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
  padding-bottom: 60px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 28px;
}
#tvx-tokyo .footer__big{
  font-family: var(--font-display);
  font-size: clamp(56px, 7vw, 108px);
  line-height: 0.95;
  margin: 0;
  letter-spacing: -0.02em;
}
#tvx-tokyo .footer__big .accent{ color: var(--fg-accent); font-style: italic; }
#tvx-tokyo .footer__sub{
  font-size: 14px;
  color: var(--fg-on-dark-muted);
  display: flex; gap: 28px;
  flex-wrap: wrap;
  justify-content: space-between;
}
#tvx-tokyo .footer__logo img{ height: 22px; opacity: .9; }
@media (max-width: 1024px){
#tvx-tokyo .hero__inner{ grid-template-columns: 1fr; }
#tvx-tokyo .hero__pass{ max-width: 480px; }
#tvx-tokyo .countdown{ grid-template-columns: 1fr 1fr; gap: 16px; }
#tvx-tokyo .countdown__label{ grid-column: 1 / -1; max-width: none; }
#tvx-tokyo .countdown__cell:nth-child(2){ border-left: 0; }
#tvx-tokyo .how{ grid-template-columns: 1fr; }
#tvx-tokyo .how-card.tall{ grid-row: auto; min-height: 0; }
#tvx-tokyo .win{ grid-template-columns: 1fr; }
#tvx-tokyo .lb-board{ grid-template-columns: 1fr; gap: 36px; }
#tvx-tokyo .rules{ grid-template-columns: 1fr; gap: 32px; }
#tvx-tokyo .rules__sticky{ position: static; }
#tvx-tokyo .nav__links{ display: none; }
#tvx-tokyo .section__head{ flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px){
#tvx-tokyo .nav{ padding: 14px 20px; }
#tvx-tokyo .container{ padding: 0 20px; }
#tvx-tokyo .section{ padding: 80px 0; }
#tvx-tokyo .hero{ padding: 110px 0 70px; }
#tvx-tokyo .boarding-pass__city{ font-size: 40px; }
#tvx-tokyo .boarding-pass__route{ gap: 12px; }
#tvx-tokyo .boarding-pass{ padding: 24px; }
#tvx-tokyo .countdown__cell .num{ font-size: 36px; }
#tvx-tokyo .lb-row{ grid-template-columns: 46px 1fr auto; padding: 14px 16px; gap: 12px; }
#tvx-tokyo .lb-colhead{ grid-template-columns: 46px 1fr auto; padding: 0 16px 8px; }
#tvx-tokyo .lb-row__rank{ font-size: 26px; }
#tvx-tokyo .lb-row__name{ font-size: 18px; }
#tvx-tokyo .lb-row__points .num{ font-size: 24px; }
#tvx-tokyo .lb-group__head h3{ font-size: 24px; }
#tvx-tokyo .lb-group__head .ja-inline{ display: none; }
}

</style>
<script>
// ============================================================
// Telavox Amazing Race — Tokyo 2026
// ============================================================
// GOOGLE SHEETS INTEGRATION
// ──────────────────────────────────────────────────────────
// 1. Öppna ditt Google Sheet (med kolumner: Namn | Poäng)
// 2. Extensions → Apps Script → klistra in:
//
//    function doGet() {
//      const sheet = SpreadsheetApp.getActiveSpreadsheet()
//        .getSheetByName("Leaderboard");
//      const rows = sheet.getDataRange().getValues().slice(1);
//      const data = rows
//        .filter(r => r[0] && r[1] !== '')
//        .map((r, i) => ({ id: i+1, name: String(r[0]), points: Number(r[1]) }))
//        .sort((a, b) => b.points - a.points);
//      return ContentService
//        .createTextOutput(JSON.stringify(data))
//        .setMimeType(ContentService.MimeType.JSON);
//    }
//
// 3. Deploy → New deployment → Web app → Anyone → Deploy
// 4. Kopiera URL:en och klistra in nedan som SHEETS_URL
// ──────────────────────────────────────────────────────────

const SHEETS_URL = '';   // ← KLISTRA IN DIN APPS SCRIPT URL HÄR

// Fallback-data används automatiskt om Sheets-URL saknas eller misslyckas
const FALLBACK_SELLERS = [
  { id: 1,  name: "Linnea Bergstr\u00f6m",  points: 412 },
  { id: 2,  name: "Erik Sj\u00f6berg",      points: 387 },
  { id: 3,  name: "Amir Hassani",        points: 341 },
  { id: 4,  name: "Sofia Lundqvist",     points: 318 },
  { id: 5,  name: "Marcus Ek",           points: 296 },
  { id: 6,  name: "Johanna Wikstr\u00f6m",  points: 274 },
  { id: 7,  name: "Daniel \u00d6stberg",    points: 251 },
  { id: 8,  name: "Priya Andersson",     points: 233 },
  { id: 9,  name: "Henrik Nordmark",     points: 198 },
  { id: 10, name: "Elin Karlsson",       points: 164 },
  { id: 11, name: "Filip Holm",          points: 132 },
  { id: 12, name: "Sara Akhtar",         points:  96 },
];

// ============================================================
// Telavox Amazing Race — main.js
// ============================================================

(function () {
  const fmt  = (n) => n.toLocaleString('sv-SE');
  const pad  = (n) => String(n).padStart(2, '0');
  const pad3 = (n) => String(n).padStart(3, '0');

  let SELLERS = [];
  let top8    = [];
  let queue   = [];

  /* ---------- Load data: Sheets → fallback ---------- */
  function loadData() {
    // Show skeleton state while loading
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';
    if (gate)    gate.innerHTML    = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';

    if (!SHEETS_URL) {
      useFallback('Ingen Sheets-URL konfigurerad — visar exempeldata.');
      return;
    }

    fetch(SHEETS_URL)
      .then(r => {
        if (!r.ok) throw new Error('HTTP ' + r.status);
        return r.json();
      })
      .then(data => {
        if (!Array.isArray(data) || data.length === 0) throw new Error('Tom data');
        SELLERS = data.sort((a, b) => b.points - a.points);
        boot();
      })
      .catch(err => {
        console.warn('[Tokyo Race] Sheets-hämtning misslyckades:', err.message, '— använder fallback.');
        useFallback();
      });
  }

  function useFallback(msg) {
    if (msg) console.info('[Tokyo Race]', msg);
    SELLERS = FALLBACK_SELLERS;
    boot();
  }

  function boot() {
    top8  = SELLERS.slice(0, 8);
    queue = SELLERS.slice(8);
    renderPlane();
    renderLeaderboard();
    tickCountdown();
    calculator();
    renderLottery();
  }

  /* ---------- Plane: bigger windows, names + hover tooltip ---------- */
  function renderPlane() {
    const g = document.getElementById('plane-windows');
    if (!g) return;
    const startX = 380, endX = 1170, count = 8;
    const step = (endX - startX) / (count - 1);
    const cy = 305;
    let s = '';
    for (let i = 0; i < count; i++) {
      const cx     = endX - step * i;
      const seller = top8[i];
      const firstName = seller ? seller.name.split(' ')[0] : '';
      const rank   = i + 1;
      s += `<circle cx="${cx}" cy="${cy}" r="34" fill="#2ec659" opacity=".12"/>`;
      s += `<rect x="${cx-23}" y="${cy-23}" width="46" height="46" rx="14" fill="#002e24"/>`;
      s += `<rect x="${cx-20}" y="${cy-20}" width="40" height="40" rx="12" fill="#ffe8b0" opacity=".96"/>`;
      s += `<path d="M ${cx-13},${cy-13} Q ${cx-2},${cy-19} ${cx+11},${cy-14}" stroke="rgba(255,255,255,.75)" stroke-width="2.5" fill="none" stroke-linecap="round"/>`;
      s += `<rect x="${cx+11}" y="${cy-32}" width="24" height="17" rx="8" fill="#004438"/>`;
      s += `<text x="${cx+23}" y="${cy-20}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="10" font-weight="700" fill="#2ec659">${rank}</text>`;
      s += `<rect x="${cx-32}" y="${cy+27}" width="64" height="21" rx="6" fill="rgba(0,36,28,.88)"/>`;
      s += `<text x="${cx}" y="${cy+42}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="12" font-weight="600" fill="#f2f9f2">${firstName}</text>`;
      s += `<rect class="plane-seat-hit" x="${cx-33}" y="${cy-36}" width="66" height="84" rx="8" fill="transparent" style="cursor:pointer;" data-idx="${i}"/>`;
    }
    g.innerHTML = s;

    const tooltip = document.getElementById('plane-tooltip');
    const ttRank  = document.getElementById('plane-tooltip-rank');
    const ttName  = document.getElementById('plane-tooltip-name');
    const ttPts   = document.getElementById('plane-tooltip-pts');
    const svg     = document.getElementById('plane');
    const wrap    = document.getElementById('plane-wrap');

    g.querySelectorAll('.plane-seat-hit').forEach(el => {
      el.addEventListener('mouseenter', function() {
        const idx = parseInt(this.dataset.idx);
        const sel = top8[idx];
        if (!sel || !tooltip) return;
        ttRank.textContent = 'Plats ' + (idx + 1);
        ttName.textContent = sel.name;
        ttPts.textContent  = fmt(sel.points) + ' po\u00e4ng';
        const svgRect  = svg.getBoundingClientRect();
        const wrapRect = wrap.getBoundingClientRect();
        const scaleX = svgRect.width  / 1500;
        const scaleY = svgRect.height / 580;
        const cx = endX - step * idx;
        const px = (svgRect.left - wrapRect.left) + cx * scaleX;
        const py = (svgRect.top  - wrapRect.top)  + (cy - 40) * scaleY;
        tooltip.style.left    = px + 'px';
        tooltip.style.top     = py + 'px';
        tooltip.style.display = 'block';
      });
      el.addEventListener('mouseleave', function() {
        if (tooltip) tooltip.style.display = 'none';
      });
    });
  }

  /* ---------- Leaderboard ---------- */
  function row(rank, s, onboard) {
    return `
      <div class="lb-row ${onboard ? 'lb-row--onboard' : ''} ${rank === 1 ? 'is-leader' : ''}">
        <div class="lb-row__rank">${rank}</div>
        <div class="lb-row__name">${s.name}</div>
        <div class="lb-row__points"><span class="num">${fmt(s.points)}</span><span class="unit">p</span></div>
      </div>`;
  }
  function renderLeaderboard() {
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = top8.map((s, i) => row(i + 1, s, true)).join('');
    if (gate)    gate.innerHTML    = queue.map((s, i) => row(9 + i, s, false)).join('');
  }

  /* ---------- Countdown ---------- */
  function tickCountdown() {
    const target = new Date('2026-12-31T23:59:59+01:00').getTime();
    function update() {
      let diff = Math.max(0, target - Date.now());
      const d = Math.floor(diff / 86400000); diff -= d * 86400000;
      const h = Math.floor(diff / 3600000);  diff -= h * 3600000;
      const m = Math.floor(diff / 60000);    diff -= m * 60000;
      const s = Math.floor(diff / 1000);
      const set = (k, v) => { const el = document.querySelector(`[data-cd="${k}"]`); if (el) el.textContent = v; };
      set('d', pad3(d)); set('h', pad(h)); set('m', pad(m)); set('s', pad(s));
    }
    update();
    setInterval(update, 1000);
  }

  /* ---------- Calculator ---------- */
  function calculator() {
    const mob   = document.getElementById('calc-mobile');
    const ai    = document.getElementById('calc-ai');
    const total = document.getElementById('calc-total');
    const qual  = document.getElementById('calc-qual');
    const bar   = document.getElementById('calc-bar');
    if (!mob || !ai) return;
    function compute() {
      const m   = Math.max(0, parseInt(mob.value || 0, 10));
      const a   = Math.max(0, parseInt(ai.value  || 0, 10));
      const sum = m * 1 + a * 10;
      total.textContent = fmt(sum);
      const passes = sum >= 80;
      qual.classList.toggle('below', !passes);
      qual.innerHTML = passes
        ? '<span class="material-symbols-rounded">check_circle</span> \u00d6ver kvalgr\u00e4nsen'
        : `<span class="material-symbols-rounded">flag</span> ${80 - sum} p kvar till kvalet`;
      bar.style.width = Math.min(100, (sum / 500) * 100) + '%';
    }
    [mob, ai].forEach(el => el.addEventListener('input', compute));
    document.querySelectorAll('[data-calc]').forEach(btn => {
      btn.addEventListener('click', () => {
        const t = btn.dataset.calc === 'mobile' ? mob : ai;
        t.value = Math.max(0, parseInt(t.value || 0, 10) + parseInt(btn.dataset.delta, 10));
        compute();
      });
    });
    compute();
  }

  /* ---------- Lottery strip ---------- */
  function renderLottery() {
    document.querySelectorAll('.lottery-row__tickets').forEach(rowEl => {
      const n = parseInt(rowEl.dataset.count, 10);
      let html = '';
      for (let i = 0; i < n; i++) html += `<div class="t" style="animation-delay:${(i * 0.08).toFixed(2)}s"></div>`;
      rowEl.innerHTML = html;
    });
  }

  /* ---------- Kickoff ---------- */
  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', loadData);
  else loadData();
})();
</script>
</div>/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-50ceba6 */.elementor-42785 .elementor-element.elementor-element-50ceba6 span {
    color: #2EC659;
}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-690f768 */.elementor-42785 .elementor-element.elementor-element-690f768 span {
    color: #2EC659;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-12003c6 */<!-- ================================================================
  TVX BASE — klistra in ETT GÅNG i ett HTML-widget högst upp på sidan.
  Innehåller all CSS och JS. Lägg sedan resten av modulerna under.
================================================================ -->
<div id="tvx-tokyo">
<style>

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400;1,9..40,500&family=Inter:ital,wght@0,400;0,500;0,600;1,400&family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,0,0&display=swap');
#tvx-tokyo{
  /* === Brand greens (the palette) ===
     Hierarchy: Green 1 dominant (~40%), Green 2/4/5 supporting (~20%),
     Telavox Green 3 reserved as ACTIVE accent for buttons & key actions. */
  --tx-green-1: #004438;        /* Dark Green &#8212; primary brand color, dominant */
  --tx-green-2: #195e3d;        /* Mid Green &#8212; supporting */
  --tx-green-3: #2ec659;        /* Telavox Green &#8212; accent / active / interactive */
  --tx-green-4: #cfe6cc;        /* Light Green &#8212; supporting surface */
  --tx-green-5: #f2f9f2;        /* Off-white green &#8212; supporting surface */

  /* === Neutrals === */
  --tx-off-black: #151615;
  --tx-white: #ffffff;
  --tx-grey-100: #f2f2f2;
  --tx-grey-300: #d9d9d9;
  --tx-grey-500: #b7b7b7;
  --tx-grey-700: #353839;       /* used in product UI for body text */
  --tx-grey-900: #232323;

  /* === Semantic &#8212; Foreground === */
  --fg-1: var(--tx-green-1);    /* primary text on light surfaces */
  --fg-2: var(--tx-green-1);    /* secondary text &#8212; same green as primary, used in dense product UI */
  --fg-muted: var(--tx-grey-500);
  --fg-on-dark: var(--tx-green-5);
  --fg-on-dark-muted: var(--tx-green-4);
  --fg-accent: var(--tx-green-3);
  --fg-inverse: var(--tx-white);

  /* === Semantic &#8212; Background === */
  --bg-base: var(--tx-white);
  --bg-subtle: var(--tx-green-5);
  --bg-soft: var(--tx-green-4);
  --bg-dark: var(--tx-green-1);
  --bg-dark-2: var(--tx-green-2);
  --bg-accent: var(--tx-green-3);
  --bg-black: var(--tx-off-black);

  /* === Borders / Strokes === */
  --border-subtle: rgba(0, 68, 56, 0.10);
  --border-on-dark: rgba(242, 249, 242, 0.20);
  --border-accent: var(--tx-green-3);

  /* === Radii === */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;            /* canonical Bento-block radius */
  --radius-xl: 32px;
  --radius-pill: 9999px;

  /* === Shadows ===
     The brand defines clean, flat surfaces. Shadows are minimal and only
     appear inside product UI (cards, popovers). Never on Bento blocks. */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.10);

  /* === Spacing scale (4-pt) === */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;              /* gutter inside Bento blocks */
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;

  /* === 16:9 / 1920&#215;1080 grid ===
     12 columns, 30px gutters, 60px outer margin, 20px Bento gap */
  --grid-cols: 12;
  --grid-gutter: 30px;
  --grid-margin: 60px;
  --grid-bento-gap: 20px;

  /* === Type families === */
  --font-display: "DM Sans", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Menlo, monospace;

  /* === Display sizes (DM Sans Regular) ===
     line-height 1.0&#8211;1.2; letter-spacing -1.5%. */
  --display-1: 108px;           /* hero &#8212; section openers */
  --display-2: 96px;
  --display-3: 84px;            /* canonical big headline */
  --display-4: 72px;
  --display-5: 60px;
  --display-6: 48px;            /* H1 &#8212; page-level */
  --display-7: 36px;            /* H2 */
  --display-8: 24px;            /* H3 / card title */

  /* === Body sizes (Inter) === */
  --preamble-lg: 40px;          /* Inter Medium */
  --preamble-md: 32px;          /* Inter Medium &#8212; canonical preamble */
  --preamble-sm: 24px;          /* Inter Medium */
  --body-lg: 18px;              /* Inter Regular &#8212; canonical body in brand */
  --body-md: 16px;              /* product body */
  --body-sm: 14px;
  --body-xs: 11px;              /* labels / captions */
  --button-text: 18px;          /* Inter Semibold 18/24 */

  /* === Weights === */
  --w-regular: 400;
  --w-medium: 500;
  --w-semibold: 600;
  --w-bold: 700;

  /* === Easing & motion === */
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
}
#tvx-tokyo{ color: var(--fg-1); font-family: var(--font-body); -webkit-font-smoothing: antialiased; display:block; position:relative; }
#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo .material-symbols-rounded{ font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-smoothing:antialiased; }
#tvx-tokyo .nav{ position: sticky; }
#tvx-tokyo .hero{ min-height: auto; padding-top: 120px; }
#tvx-tokyo .tvx-logo{ height:22px; width:auto; display:block; }
#tvx-tokyo .footer__logo .tvx-logo{ opacity:.9; }

#tvx-tokyo *{ box-sizing: border-box; }
#tvx-tokyo{
  margin: 0;
  padding: 0;
  background: var(--bg-base);
  color: var(--fg-1);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#tvx-tokyo{
  overflow-x: hidden;
}
#tvx-tokyo a{ color: inherit; }
#tvx-tokyo img{ display: block; max-width: 100%; }
#tvx-tokyo .page{
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
#tvx-tokyo .container{
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
}
#tvx-tokyo .nav{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 40px;
  background: rgba(0, 68, 56, 0.55);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--border-on-dark);
}
#tvx-tokyo .nav__logo img{ height: 22px; }
#tvx-tokyo .nav__brand-mark{
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .nav__divider{
  width: 1px; height: 18px;
  background: var(--border-on-dark);
}
#tvx-tokyo .nav__brand-mark .ja{
  font-family: var(--font-body);
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .nav__links{
  display: flex; gap: 28px;
  list-style: none; padding: 0; margin: 0;
}
#tvx-tokyo .nav__links a{
  font-size: 14px;
  color: var(--fg-on-dark);
  text-decoration: none;
  opacity: .85;
  transition: opacity var(--dur-base) var(--ease-out);
}
#tvx-tokyo .nav__links a:hover{ opacity: 1; color: var(--fg-accent); }
#tvx-tokyo .nav__cta{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: var(--radius-pill);
  background: var(--bg-accent);
  color: var(--tx-green-1);
  font-weight: var(--w-semibold);
  font-size: 14px;
  text-decoration: none;
  transition: background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
#tvx-tokyo .nav__cta:hover{ background: #34d864; }
#tvx-tokyo .nav__cta:active{ transform: scale(.96); }
#tvx-tokyo .hero{
  position: relative;
  min-height: 100vh;
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  overflow: hidden;
  padding: 140px 0 100px;
}
#tvx-tokyo .hero__pattern{
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 30%, rgba(46,198,89,.30) 0 1.5px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(207,230,204,.20) 0 1.5px, transparent 2px); background-size: 26px 26px, 34px 34px;
  background-size: cover;
  background-position: center;
  opacity: .14;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .hero__glow{
  position: absolute;
  inset: -10%;
  background:
    radial-gradient(60% 50% at 80% 30%, rgba(46, 198, 89, .28), transparent 60%),
    radial-gradient(40% 40% at 15% 80%, rgba(207, 230, 204, .15), transparent 70%);
  pointer-events: none;
}
#tvx-tokyo .hero__sun{
  position: absolute;
  right: -120px;
  top: 12%;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
    rgba(255, 220, 200, .9) 0%,
    rgba(255, 165, 130, .7) 30%,
    rgba(255, 110, 90, .35) 55%,
    rgba(0, 68, 56, 0) 70%);
  filter: blur(2px);
  pointer-events: none;
}
#tvx-tokyo .hero__inner{
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
#tvx-tokyo .hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  border-radius: var(--radius-pill);
  background: rgba(46, 198, 89, 0.14);
  border: 1px solid rgba(46, 198, 89, .35);
  color: var(--fg-accent);
  font-size: 13px;
  font-weight: var(--w-medium);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 28px;
}
#tvx-tokyo .hero__eyebrow .dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--fg-accent);
  box-shadow: 0 0 0 3px rgba(46, 198, 89, .25);
  animation: pulse 1.6s var(--ease-in-out) infinite;
}
@keyframes pulse{
  0%,100% { opacity: 1; transform: scale(1); }
  50% { opacity: .55; transform: scale(.85); }
}
#tvx-tokyo .hero h1{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(56px, 7.4vw, 108px);
  line-height: 0.96;
  letter-spacing: -0.02em;
  margin: 0 0 28px;
  color: var(--fg-on-dark);
  text-wrap: balance;
}
#tvx-tokyo .hero h1 .row{
  display: block;
}
#tvx-tokyo .hero h1 .accent{
  color: var(--fg-accent);
  font-style: italic;
  font-family: "DM Sans", serif;
}
#tvx-tokyo .hero__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 520px;
  color: var(--fg-on-dark-muted);
  margin: 0 0 36px;
}
#tvx-tokyo .hero__ctas{
  display: flex; gap: 16px; align-items: center;
  flex-wrap: wrap;
}
#tvx-tokyo .btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-weight: var(--w-semibold);
  font-size: 17px;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--dur-base) var(--ease-out);
}
#tvx-tokyo .btn--primary{
  background: var(--bg-accent);
  color: var(--tx-green-1);
}
#tvx-tokyo .btn--primary:hover{ background: #34d864; transform: translateY(-1px); }
#tvx-tokyo .btn--ghost{
  background: transparent;
  color: var(--fg-on-dark);
  border-color: rgba(242, 249, 242, .35);
}
#tvx-tokyo .btn--ghost:hover{ background: rgba(242, 249, 242, .08); }
#tvx-tokyo .btn--dark{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
}
#tvx-tokyo .btn--dark:hover{ background: var(--bg-dark-2); }
#tvx-tokyo .btn .material-symbols-rounded{ font-size: 20px; }
#tvx-tokyo .hero__pass{
  position: relative;
  perspective: 1200px;
}
#tvx-tokyo .boarding-pass{
  position: relative;
  background: linear-gradient(135deg, rgba(242, 249, 242, .06), rgba(242, 249, 242, .02));
  border: 1px solid var(--border-on-dark);
  border-radius: 24px;
  padding: 36px;
  backdrop-filter: blur(20px);
  transform: rotate(-2deg);
  transition: transform var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .boarding-pass:hover{ transform: rotate(0deg) translateY(-4px); }
#tvx-tokyo .boarding-pass__top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .boarding-pass__brand{
  text-align: right;
}
#tvx-tokyo .boarding-pass__brand .name{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .boarding-pass__brand .ja{
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .boarding-pass__route{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  align-items: center;
  margin-bottom: 28px;
}
#tvx-tokyo .boarding-pass__city{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .boarding-pass__city.right{ text-align: right; }
#tvx-tokyo .boarding-pass__code{
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--fg-on-dark-muted);
  margin-top: 6px;
}
#tvx-tokyo .boarding-pass__plane-icon{
  color: var(--fg-accent);
  display: flex;
  align-items: center;
  justify-content: center;
}
#tvx-tokyo .boarding-pass__plane-icon svg{ width: 44px; height: 44px; }
#tvx-tokyo .boarding-pass__divider{
  border: 0;
  border-top: 1px dashed rgba(242, 249, 242, .25);
  margin: 8px 0 24px;
  position: relative;
}
#tvx-tokyo .boarding-pass__divider::before, #tvx-tokyo .boarding-pass__divider::after{
  content: "";
  position: absolute;
  top: -16px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--bg-dark);
}
#tvx-tokyo .boarding-pass__divider::before{ left: -52px; }
#tvx-tokyo .boarding-pass__divider::after{ right: -52px; }
#tvx-tokyo .boarding-pass__meta{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .bp-cell .label{
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 6px;
}
#tvx-tokyo .bp-cell .value{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark);
  line-height: 1.1;
}
#tvx-tokyo .boarding-pass__bottom{
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed rgba(242, 249, 242, .15);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
#tvx-tokyo .barcode{
  display: flex; gap: 2px; align-items: stretch;
  height: 36px;
}
#tvx-tokyo .barcode span{ display: block; width: 2px; background: var(--fg-on-dark-muted); }
#tvx-tokyo .barcode span.t{ width: 1px; }
#tvx-tokyo .barcode span.f{ width: 4px; }
#tvx-tokyo .countdown-strip{
  position: relative;
  z-index: 2;
  margin-top: 60px;
}
#tvx-tokyo .countdown{
  display: grid;
  grid-template-columns: auto repeat(4, 1fr);
  gap: 24px;
  align-items: center;
  padding: 24px 32px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 20px;
  backdrop-filter: blur(8px);
}
#tvx-tokyo .countdown__label{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  font-weight: var(--w-medium);
  max-width: 160px;
  line-height: 1.3;
}
#tvx-tokyo .countdown__cell{
  text-align: center;
  border-left: 1px solid var(--border-on-dark);
  padding: 4px 0;
}
#tvx-tokyo .countdown__cell .num{
  font-family: var(--font-display);
  font-size: 48px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .countdown__cell .lbl{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-top: 8px;
}
#tvx-tokyo .section{
  padding: 120px 0;
  position: relative;
}
#tvx-tokyo .section--light{ background: var(--bg-base); color: var(--fg-1); }
#tvx-tokyo .section--subtle{ background: var(--bg-subtle); color: var(--fg-1); }
#tvx-tokyo .section--soft{ background: var(--bg-soft); color: var(--fg-1); }
#tvx-tokyo .section--dark{ background: var(--bg-dark); color: var(--fg-on-dark); }
#tvx-tokyo .section__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 56px;
}
#tvx-tokyo .section__eyebrow{
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  margin-bottom: 16px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  opacity: .65;
}
#tvx-tokyo .section__title{
  font-family: var(--font-display);
  font-weight: var(--w-regular);
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
  text-wrap: balance;
}
#tvx-tokyo .section__title .ja{
  font-size: 0.42em;
  letter-spacing: 0.14em;
  font-family: var(--font-body);
  font-weight: var(--w-medium);
  vertical-align: middle;
  display: inline-block;
  margin-left: 16px;
  color: var(--fg-accent);
  opacity: .9;
}
#tvx-tokyo .section__lede{
  font-size: 20px;
  line-height: 1.5;
  max-width: 460px;
  opacity: .85;
}
#tvx-tokyo .lb{
  position: relative;
}
#tvx-tokyo .lb__skyline{
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(2px 2px at 12% 14%, rgba(46, 198, 89, .35), transparent),
    radial-gradient(1.5px 1.5px at 36% 28%, rgba(46, 198, 89, .25), transparent),
    radial-gradient(2px 2px at 67% 10%, rgba(46, 198, 89, .3), transparent),
    radial-gradient(1.5px 1.5px at 88% 22%, rgba(46, 198, 89, .25), transparent);
}
#tvx-tokyo .plane-wrap{
  position: relative;
  width: 100%;
  margin: 0 auto;
  max-width: 1280px;
}
#tvx-tokyo .plane-svg{
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 30px 50px rgba(0, 30, 25, .35));
}
/* Plane float + gentle bank */
@keyframes planeFloat{
  0%   { transform: translateY(0px) rotate(-0.6deg); }
  30%  { transform: translateY(-14px) rotate(0.4deg); }
  60%  { transform: translateY(-9px) rotate(-0.3deg); }
  100% { transform: translateY(0px) rotate(-0.6deg); }
}
/* Jet exhaust pulse */
@keyframes exhaustPulse{
  0%,100% { opacity:.55; transform:scaleX(1); }
  50%     { opacity:.85; transform:scaleX(1.18); }
}
/* Window flicker subtle */
@keyframes winFlicker{
  0%,100% { opacity:.96; }
  50%     { opacity:.82; }
}
#tvx-tokyo .plane-svg__body{
  animation: planeFloat 7s ease-in-out infinite;
  transform-origin: 700px 305px;
}
#tvx-tokyo .jet-exhaust{ animation: exhaustPulse 1.8s ease-in-out infinite; transform-origin: 60px 310px; }
#tvx-tokyo .win-light{ animation: winFlicker 3.5s ease-in-out infinite; }
#tvx-tokyo .lb-board{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 64px;
}
#tvx-tokyo .lb-group__head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 14px;
}
#tvx-tokyo .lb-group__head h3{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0;
  line-height: 1;
}
#tvx-tokyo .lb-group__head .ja-inline{
  font-family: var(--font-body);
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--fg-accent);
  margin-left: 10px;
}
#tvx-tokyo .lb-group__tag{
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  white-space: nowrap;
}
#tvx-tokyo .lb-colhead{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  padding: 0 22px 10px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  opacity: .7;
}
#tvx-tokyo .lb-colhead .r{ text-align: right; }
#tvx-tokyo .lb-list{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#tvx-tokyo .lb-row{
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 22px;
  border-radius: var(--radius-lg);
  background: rgba(242, 249, 242, .05);
  border: 1px solid var(--border-on-dark);
  transition: transform var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .lb-row:hover{ transform: translateY(-2px); background: rgba(242, 249, 242, .09); }
#tvx-tokyo .lb-row__rank{
  font-family: var(--font-display);
  font-size: 34px;
  line-height: 1;
  text-align: center;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__name{
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.15;
  color: var(--fg-on-dark);
}
#tvx-tokyo .lb-row__points{
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
}
#tvx-tokyo .lb-row__points .num{
  font-family: var(--font-display);
  font-size: 30px;
  line-height: 1;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
#tvx-tokyo .lb-row__points .unit{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lb-row--onboard{
  background: rgba(46, 198, 89, .08);
  border-color: rgba(46, 198, 89, .28);
}
#tvx-tokyo .lb-row--onboard .lb-row__rank{ color: var(--fg-accent); }
#tvx-tokyo .lb-row--onboard.is-leader{
  background: rgba(46, 198, 89, .16);
  border-color: rgba(46, 198, 89, .55);
}
#tvx-tokyo .how{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
#tvx-tokyo .how-card{
  background: var(--bg-base);
  border-radius: var(--radius-lg);
  padding: 40px;
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
}
#tvx-tokyo .how-card.dark{ background: var(--bg-dark); color: var(--fg-on-dark); border-color: transparent; }
#tvx-tokyo .how-card.accent{ background: var(--bg-accent); color: var(--tx-green-1); border-color: transparent; }
#tvx-tokyo .how-card__big{
  font-family: var(--font-display);
  font-size: 96px;
  line-height: 1;
  margin: 0 0 12px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .how-card__title{
  font-family: var(--font-display);
  font-size: 28px;
  margin: 0 0 12px;
  line-height: 1.1;
}
#tvx-tokyo .how-card__body{
  font-size: 16px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
  max-width: 360px;
}
#tvx-tokyo .how-card__icon{
  width: 56px; height: 56px;
  border-radius: 16px;
  background: var(--bg-subtle);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px;
}
#tvx-tokyo .how-card.dark .how-card__icon{
  background: rgba(46, 198, 89, .12);
  color: var(--fg-accent);
}
#tvx-tokyo .how-card.accent .how-card__icon{ background: rgba(0, 68, 56, .15); color: var(--tx-green-1); }
#tvx-tokyo .how-card__icon .material-symbols-rounded{ font-size: 28px; }
#tvx-tokyo .how-card.tall{ grid-row: span 2; min-height: 480px; display: flex; flex-direction: column; justify-content: space-between; }
#tvx-tokyo .how-card__pattern{
  position: absolute;
  right: -40px; bottom: -40px;
  width: 280px; height: 280px;
  background: radial-gradient(circle at 40% 40%, rgba(46,198,89,.55), rgba(46,198,89,0) 70%);
  border-radius: 50%;
  opacity: .35;
  mix-blend-mode: screen;
  pointer-events: none;
}
#tvx-tokyo .win{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
#tvx-tokyo .win-card{
  border-radius: var(--radius-lg);
  padding: 36px;
  background: var(--bg-base);
  color: var(--fg-1);
  border: 1px solid var(--border-subtle);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
#tvx-tokyo .win-card.feature{
  background: var(--bg-dark);
  color: var(--fg-on-dark);
  border-color: transparent;
}
#tvx-tokyo .win-card__num{
  font-family: var(--font-display);
  font-size: 88px;
  line-height: 0.9;
  margin: 0 0 4px;
  letter-spacing: -0.03em;
}
#tvx-tokyo .win-card__num .small{ font-size: 0.4em; opacity: .5; vertical-align: super; }
#tvx-tokyo .win-card__type{
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--w-medium);
  opacity: .7;
  margin-bottom: 20px;
}
#tvx-tokyo .win-card__h{
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.1;
  margin: 0 0 12px;
}
#tvx-tokyo .win-card__body{
  font-size: 15px;
  line-height: 1.5;
  opacity: .85;
  margin: 0;
}
#tvx-tokyo .win-card__tag{
  margin-top: auto;
  padding-top: 24px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--fg-accent);
  font-weight: var(--w-medium);
}
#tvx-tokyo .win-card.feature .win-card__tag{ color: var(--fg-accent); }
#tvx-tokyo .rules{
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 60px;
}
#tvx-tokyo .rules__sticky{
  position: sticky;
  top: 100px;
  align-self: start;
}
#tvx-tokyo .rules__list{
  display: flex; flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--border-on-dark);
}
#tvx-tokyo .rule{
  border-bottom: 1px solid var(--border-on-dark);
  padding: 28px 0;
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  align-items: start;
}
#tvx-tokyo .rule__num{
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--fg-on-dark-muted);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .rule__title{
  font-family: var(--font-display);
  font-size: 22px;
  margin: 0 0 8px;
  line-height: 1.2;
}
#tvx-tokyo .rule__body{
  font-size: 15px;
  line-height: 1.5;
  color: var(--fg-on-dark-muted);
  margin: 0;
}
#tvx-tokyo .rule__body strong{ color: var(--fg-on-dark); font-weight: var(--w-medium); }
#tvx-tokyo .rule__body ul{ padding-left: 18px; margin: 8px 0 0; }
#tvx-tokyo .rule__body li{ margin-bottom: 4px; }
#tvx-tokyo .calc{
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: 18px;
  padding: 28px;
}
#tvx-tokyo .calc__row{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(242, 249, 242, .15);
}
#tvx-tokyo .calc__row label{
  font-size: 15px;
  color: var(--fg-on-dark);
}
#tvx-tokyo .calc__control{
  display: inline-flex; align-items: center;
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-pill);
  background: rgba(0,0,0,.2);
  overflow: hidden;
}
#tvx-tokyo .calc__control button{
  width: 36px; height: 36px;
  background: transparent; border: 0; color: var(--fg-on-dark);
  font-size: 20px; cursor: pointer;
  transition: background var(--dur-base) var(--ease-out);
}
#tvx-tokyo .calc__control button:hover{ background: rgba(46,198,89,.18); color: var(--fg-accent); }
#tvx-tokyo .calc__control input{
  width: 70px; height: 36px;
  background: transparent; border: 0;
  color: var(--fg-on-dark);
  font-family: var(--font-display);
  font-size: 22px;
  text-align: center;
  outline: 0;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .calc__control input::-webkit-outer-spin-button, #tvx-tokyo .calc__control input::-webkit-inner-spin-button{ -webkit-appearance: none; margin: 0; }
#tvx-tokyo .calc__total{
  display: flex; justify-content: space-between; align-items: flex-end;
  padding-top: 22px;
  margin-top: 6px;
  gap: 16px;
}
#tvx-tokyo .calc__total-label{
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
  margin-bottom: 4px;
}
#tvx-tokyo .calc__total-value{
  font-family: var(--font-display);
  font-size: 56px;
  line-height: 1;
  color: var(--fg-on-dark);
  letter-spacing: -0.02em;
}
#tvx-tokyo .calc__total-value small{
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  color: var(--fg-on-dark-muted);
  margin-left: 6px;
}
#tvx-tokyo .calc__qual{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: var(--w-medium);
  background: rgba(46,198,89,.18);
  color: var(--fg-accent);
}
#tvx-tokyo .calc__qual.below{
  background: rgba(255, 165, 130, .14);
  color: #ffb89e;
}
#tvx-tokyo .calc__bar{
  position: relative;
  height: 6px;
  border-radius: 3px;
  background: rgba(242, 249, 242, .08);
  margin-top: 18px;
  overflow: visible;
}
#tvx-tokyo .calc__bar-fill{
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--fg-accent), #5be07f);
  transition: width var(--dur-slow) var(--ease-out);
}
#tvx-tokyo .calc__bar-mark{
  position: absolute;
  top: -6px; bottom: -6px;
  width: 2px;
  background: rgba(242, 249, 242, .5);
}
#tvx-tokyo .calc__bar-mark span{
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fg-on-dark-muted);
}
#tvx-tokyo .lottery-strip{
  margin-top: 60px;
  padding: 36px;
  background: rgba(242, 249, 242, .04);
  border: 1px solid var(--border-on-dark);
  border-radius: var(--radius-lg);
}
#tvx-tokyo .lottery-strip__head{
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-bottom: 28px; gap: 24px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-strip__legend{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--fg-on-dark-muted);
}
#tvx-tokyo .ticket-dot{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  display: inline-block;
}
#tvx-tokyo .lottery-strip__rows{
  display: flex; flex-direction: column; gap: 14px;
}
#tvx-tokyo .lottery-row{
  display: grid;
  grid-template-columns: 100px 1fr 100px;
  gap: 20px;
  align-items: center;
}
#tvx-tokyo .lottery-row__label{
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--fg-on-dark);
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__count{
  font-size: 13px;
  color: var(--fg-on-dark-muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#tvx-tokyo .lottery-row__tickets{
  display: flex; gap: 4px; flex-wrap: wrap;
}
#tvx-tokyo .lottery-row__tickets .t{
  width: 22px; height: 14px;
  background: var(--fg-accent);
  clip-path: polygon(6% 0%, 94% 0%, 100% 22%, 100% 78%, 94% 100%, 6% 100%, 0% 78%, 0% 22%);
  opacity: .9;
  animation: ticketFlicker 2.4s var(--ease-in-out) infinite;
}
@keyframes ticketFlicker{
  0%, 100% { opacity: .9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-1px); }
}
#tvx-tokyo .footer{
  background: var(--tx-green-2);
  color: var(--fg-on-dark);
  padding: 80px 0 40px;
}
#tvx-tokyo .footer__top{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: end;
  padding-bottom: 60px;
  border-bottom: 1px solid var(--border-on-dark);
  margin-bottom: 28px;
}
#tvx-tokyo .footer__big{
  font-family: var(--font-display);
  font-size: clamp(56px, 7vw, 108px);
  line-height: 0.95;
  margin: 0;
  letter-spacing: -0.02em;
}
#tvx-tokyo .footer__big .accent{ color: var(--fg-accent); font-style: italic; }
#tvx-tokyo .footer__sub{
  font-size: 14px;
  color: var(--fg-on-dark-muted);
  display: flex; gap: 28px;
  flex-wrap: wrap;
  justify-content: space-between;
}
#tvx-tokyo .footer__logo img{ height: 22px; opacity: .9; }
@media (max-width: 1024px){
#tvx-tokyo .hero__inner{ grid-template-columns: 1fr; }
#tvx-tokyo .hero__pass{ max-width: 480px; }
#tvx-tokyo .countdown{ grid-template-columns: 1fr 1fr; gap: 16px; }
#tvx-tokyo .countdown__label{ grid-column: 1 / -1; max-width: none; }
#tvx-tokyo .countdown__cell:nth-child(2){ border-left: 0; }
#tvx-tokyo .how{ grid-template-columns: 1fr; }
#tvx-tokyo .how-card.tall{ grid-row: auto; min-height: 0; }
#tvx-tokyo .win{ grid-template-columns: 1fr; }
#tvx-tokyo .lb-board{ grid-template-columns: 1fr; gap: 36px; }
#tvx-tokyo .rules{ grid-template-columns: 1fr; gap: 32px; }
#tvx-tokyo .rules__sticky{ position: static; }
#tvx-tokyo .nav__links{ display: none; }
#tvx-tokyo .section__head{ flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px){
#tvx-tokyo .nav{ padding: 14px 20px; }
#tvx-tokyo .container{ padding: 0 20px; }
#tvx-tokyo .section{ padding: 80px 0; }
#tvx-tokyo .hero{ padding: 110px 0 70px; }
#tvx-tokyo .boarding-pass__city{ font-size: 40px; }
#tvx-tokyo .boarding-pass__route{ gap: 12px; }
#tvx-tokyo .boarding-pass{ padding: 24px; }
#tvx-tokyo .countdown__cell .num{ font-size: 36px; }
#tvx-tokyo .lb-row{ grid-template-columns: 46px 1fr auto; padding: 14px 16px; gap: 12px; }
#tvx-tokyo .lb-colhead{ grid-template-columns: 46px 1fr auto; padding: 0 16px 8px; }
#tvx-tokyo .lb-row__rank{ font-size: 26px; }
#tvx-tokyo .lb-row__name{ font-size: 18px; }
#tvx-tokyo .lb-row__points .num{ font-size: 24px; }
#tvx-tokyo .lb-group__head h3{ font-size: 24px; }
#tvx-tokyo .lb-group__head .ja-inline{ display: none; }
}

</style>
<script>
// ============================================================
// Telavox Amazing Race — Tokyo 2026
// ============================================================
// GOOGLE SHEETS INTEGRATION
// ──────────────────────────────────────────────────────────
// 1. Öppna ditt Google Sheet (med kolumner: Namn | Poäng)
// 2. Extensions → Apps Script → klistra in:
//
//    function doGet() {
//      const sheet = SpreadsheetApp.getActiveSpreadsheet()
//        .getSheetByName("Leaderboard");
//      const rows = sheet.getDataRange().getValues().slice(1);
//      const data = rows
//        .filter(r => r[0] && r[1] !== '')
//        .map((r, i) => ({ id: i+1, name: String(r[0]), points: Number(r[1]) }))
//        .sort((a, b) => b.points - a.points);
//      return ContentService
//        .createTextOutput(JSON.stringify(data))
//        .setMimeType(ContentService.MimeType.JSON);
//    }
//
// 3. Deploy → New deployment → Web app → Anyone → Deploy
// 4. Kopiera URL:en och klistra in nedan som SHEETS_URL
// ──────────────────────────────────────────────────────────

const SHEETS_URL = '';   // ← KLISTRA IN DIN APPS SCRIPT URL HÄR

// Fallback-data används automatiskt om Sheets-URL saknas eller misslyckas
const FALLBACK_SELLERS = [
  { id: 1,  name: "Linnea Bergstr\u00f6m",  points: 412 },
  { id: 2,  name: "Erik Sj\u00f6berg",      points: 387 },
  { id: 3,  name: "Amir Hassani",        points: 341 },
  { id: 4,  name: "Sofia Lundqvist",     points: 318 },
  { id: 5,  name: "Marcus Ek",           points: 296 },
  { id: 6,  name: "Johanna Wikstr\u00f6m",  points: 274 },
  { id: 7,  name: "Daniel \u00d6stberg",    points: 251 },
  { id: 8,  name: "Priya Andersson",     points: 233 },
  { id: 9,  name: "Henrik Nordmark",     points: 198 },
  { id: 10, name: "Elin Karlsson",       points: 164 },
  { id: 11, name: "Filip Holm",          points: 132 },
  { id: 12, name: "Sara Akhtar",         points:  96 },
];

// ============================================================
// Telavox Amazing Race — main.js
// ============================================================

(function () {
  const fmt  = (n) => n.toLocaleString('sv-SE');
  const pad  = (n) => String(n).padStart(2, '0');
  const pad3 = (n) => String(n).padStart(3, '0');

  let SELLERS = [];
  let top8    = [];
  let queue   = [];

  /* ---------- Load data: Sheets → fallback ---------- */
  function loadData() {
    // Show skeleton state while loading
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';
    if (gate)    gate.innerHTML    = '<div style="color:rgba(242,249,242,.35);padding:16px 22px;font-size:14px;">Laddar lista\u2026</div>';

    if (!SHEETS_URL) {
      useFallback('Ingen Sheets-URL konfigurerad — visar exempeldata.');
      return;
    }

    fetch(SHEETS_URL)
      .then(r => {
        if (!r.ok) throw new Error('HTTP ' + r.status);
        return r.json();
      })
      .then(data => {
        if (!Array.isArray(data) || data.length === 0) throw new Error('Tom data');
        SELLERS = data.sort((a, b) => b.points - a.points);
        boot();
      })
      .catch(err => {
        console.warn('[Tokyo Race] Sheets-hämtning misslyckades:', err.message, '— använder fallback.');
        useFallback();
      });
  }

  function useFallback(msg) {
    if (msg) console.info('[Tokyo Race]', msg);
    SELLERS = FALLBACK_SELLERS;
    boot();
  }

  function boot() {
    top8  = SELLERS.slice(0, 8);
    queue = SELLERS.slice(8);
    renderPlane();
    renderLeaderboard();
    tickCountdown();
    calculator();
    renderLottery();
  }

  /* ---------- Plane: bigger windows, names + hover tooltip ---------- */
  function renderPlane() {
    const g = document.getElementById('plane-windows');
    if (!g) return;
    const startX = 380, endX = 1170, count = 8;
    const step = (endX - startX) / (count - 1);
    const cy = 305;
    let s = '';
    for (let i = 0; i < count; i++) {
      const cx     = endX - step * i;
      const seller = top8[i];
      const firstName = seller ? seller.name.split(' ')[0] : '';
      const rank   = i + 1;
      s += `<circle cx="${cx}" cy="${cy}" r="34" fill="#2ec659" opacity=".12"/>`;
      s += `<rect x="${cx-23}" y="${cy-23}" width="46" height="46" rx="14" fill="#002e24"/>`;
      s += `<rect x="${cx-20}" y="${cy-20}" width="40" height="40" rx="12" fill="#ffe8b0" opacity=".96"/>`;
      s += `<path d="M ${cx-13},${cy-13} Q ${cx-2},${cy-19} ${cx+11},${cy-14}" stroke="rgba(255,255,255,.75)" stroke-width="2.5" fill="none" stroke-linecap="round"/>`;
      s += `<rect x="${cx+11}" y="${cy-32}" width="24" height="17" rx="8" fill="#004438"/>`;
      s += `<text x="${cx+23}" y="${cy-20}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="10" font-weight="700" fill="#2ec659">${rank}</text>`;
      s += `<rect x="${cx-32}" y="${cy+27}" width="64" height="21" rx="6" fill="rgba(0,36,28,.88)"/>`;
      s += `<text x="${cx}" y="${cy+42}" text-anchor="middle" font-family="DM Sans,Inter,sans-serif" font-size="12" font-weight="600" fill="#f2f9f2">${firstName}</text>`;
      s += `<rect class="plane-seat-hit" x="${cx-33}" y="${cy-36}" width="66" height="84" rx="8" fill="transparent" style="cursor:pointer;" data-idx="${i}"/>`;
    }
    g.innerHTML = s;

    const tooltip = document.getElementById('plane-tooltip');
    const ttRank  = document.getElementById('plane-tooltip-rank');
    const ttName  = document.getElementById('plane-tooltip-name');
    const ttPts   = document.getElementById('plane-tooltip-pts');
    const svg     = document.getElementById('plane');
    const wrap    = document.getElementById('plane-wrap');

    g.querySelectorAll('.plane-seat-hit').forEach(el => {
      el.addEventListener('mouseenter', function() {
        const idx = parseInt(this.dataset.idx);
        const sel = top8[idx];
        if (!sel || !tooltip) return;
        ttRank.textContent = 'Plats ' + (idx + 1);
        ttName.textContent = sel.name;
        ttPts.textContent  = fmt(sel.points) + ' po\u00e4ng';
        const svgRect  = svg.getBoundingClientRect();
        const wrapRect = wrap.getBoundingClientRect();
        const scaleX = svgRect.width  / 1500;
        const scaleY = svgRect.height / 580;
        const cx = endX - step * idx;
        const px = (svgRect.left - wrapRect.left) + cx * scaleX;
        const py = (svgRect.top  - wrapRect.top)  + (cy - 40) * scaleY;
        tooltip.style.left    = px + 'px';
        tooltip.style.top     = py + 'px';
        tooltip.style.display = 'block';
      });
      el.addEventListener('mouseleave', function() {
        if (tooltip) tooltip.style.display = 'none';
      });
    });
  }

  /* ---------- Leaderboard ---------- */
  function row(rank, s, onboard) {
    return `
      <div class="lb-row ${onboard ? 'lb-row--onboard' : ''} ${rank === 1 ? 'is-leader' : ''}">
        <div class="lb-row__rank">${rank}</div>
        <div class="lb-row__name">${s.name}</div>
        <div class="lb-row__points"><span class="num">${fmt(s.points)}</span><span class="unit">p</span></div>
      </div>`;
  }
  function renderLeaderboard() {
    const onboard = document.getElementById('lb-onboard');
    const gate    = document.getElementById('lb-gate');
    if (onboard) onboard.innerHTML = top8.map((s, i) => row(i + 1, s, true)).join('');
    if (gate)    gate.innerHTML    = queue.map((s, i) => row(9 + i, s, false)).join('');
  }

  /* ---------- Countdown ---------- */
  function tickCountdown() {
    const target = new Date('2026-12-31T23:59:59+01:00').getTime();
    function update() {
      let diff = Math.max(0, target - Date.now());
      const d = Math.floor(diff / 86400000); diff -= d * 86400000;
      const h = Math.floor(diff / 3600000);  diff -= h * 3600000;
      const m = Math.floor(diff / 60000);    diff -= m * 60000;
      const s = Math.floor(diff / 1000);
      const set = (k, v) => { const el = document.querySelector(`[data-cd="${k}"]`); if (el) el.textContent = v; };
      set('d', pad3(d)); set('h', pad(h)); set('m', pad(m)); set('s', pad(s));
    }
    update();
    setInterval(update, 1000);
  }

  /* ---------- Calculator ---------- */
  function calculator() {
    const mob   = document.getElementById('calc-mobile');
    const ai    = document.getElementById('calc-ai');
    const total = document.getElementById('calc-total');
    const qual  = document.getElementById('calc-qual');
    const bar   = document.getElementById('calc-bar');
    if (!mob || !ai) return;
    function compute() {
      const m   = Math.max(0, parseInt(mob.value || 0, 10));
      const a   = Math.max(0, parseInt(ai.value  || 0, 10));
      const sum = m * 1 + a * 10;
      total.textContent = fmt(sum);
      const passes = sum >= 80;
      qual.classList.toggle('below', !passes);
      qual.innerHTML = passes
        ? '<span class="material-symbols-rounded">check_circle</span> \u00d6ver kvalgr\u00e4nsen'
        : `<span class="material-symbols-rounded">flag</span> ${80 - sum} p kvar till kvalet`;
      bar.style.width = Math.min(100, (sum / 500) * 100) + '%';
    }
    [mob, ai].forEach(el => el.addEventListener('input', compute));
    document.querySelectorAll('[data-calc]').forEach(btn => {
      btn.addEventListener('click', () => {
        const t = btn.dataset.calc === 'mobile' ? mob : ai;
        t.value = Math.max(0, parseInt(t.value || 0, 10) + parseInt(btn.dataset.delta, 10));
        compute();
      });
    });
    compute();
  }

  /* ---------- Lottery strip ---------- */
  function renderLottery() {
    document.querySelectorAll('.lottery-row__tickets').forEach(rowEl => {
      const n = parseInt(rowEl.dataset.count, 10);
      let html = '';
      for (let i = 0; i < n; i++) html += `<div class="t" style="animation-delay:${(i * 0.08).toFixed(2)}s"></div>`;
      rowEl.innerHTML = html;
    });
  }

  /* ---------- Kickoff ---------- */
  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', loadData);
  else loadData();
})();
</script>
</div>/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-eb816bc */.elementor-42785 .elementor-element.elementor-element-eb816bc .elementor-icon-box-title{

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-97cf55b */.elementor-42785 .elementor-element.elementor-element-97cf55b .elementor-icon-box-title{

}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1fa599a */.elementor-42785 .elementor-element.elementor-element-1fa599a .elementor-icon-box-title{

}/* End custom CSS */
/* Start custom CSS for heading, class: .elementor-element-07061c0 */.elementor-42785 .elementor-element.elementor-element-07061c0 span {
    color: #2EC659;
}/* End custom CSS */