/* Layout lives in Elementor controls. These rules bridge the retained interactions. */
.tsse-supporting-visual{display:block;overflow:hidden;border:1px solid #d7e4e5;border-radius:16px;background:#eff8f7;margin:0 0 24px;width:100%}
.elementor .tsse-supporting-visual img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:5/3;object-fit:contain}
@media(max-width:767px){.tsse-supporting-visual{margin-bottom:20px;border-radius:12px}}
.tsse-service-contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:55px;padding:45px;background:#eff8f7;border:1px solid #d7e4e5;border-radius:16px;margin-block:75px}
.tsse-service-contact h2{font-size:clamp(32px,4vw,48px);line-height:1.15;letter-spacing:-1px;margin:20px 0}
.tsse-service-contact-copy p{color:#526873}
.tsse-service-contact .field label,.tsse-service-contact .consent{color:#00243d}
.tsse-service-contact .privacy-note{color:#526873}
.tsse-service-contact .field label{font-weight:600}
@media(max-width:767px){.tsse-service-contact{grid-template-columns:1fr;gap:28px;padding:24px}.tsse-service-contact .field{grid-column:1/-1}}
/* Mobile hero uses an ordinary still image with no sticky scroll scene. */
.hero-mobile-poster{display:none}
@media(max-width:767px){
 .elementor-widget-tss-hero .hero .scroll-scene{height:auto;min-height:0}
 .elementor-widget-tss-hero .hero .video-stage{position:relative;top:0;height:auto;min-height:660px}
 .elementor-widget-tss-hero .hero .video-stage video,
 .elementor-widget-tss-hero .hero .progress,
 .elementor-widget-tss-hero .hero .video-caption>p{display:none}
 .elementor-widget-tss-hero .hero .video-stage .hero-mobile-poster{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;z-index:0}
 .elementor-widget-tss-hero .hero .video-stage::after{z-index:1}
 .elementor-widget-tss-hero .hero .intro{z-index:2;min-height:max(660px,calc(100svh - 75px));height:auto}
 .elementor-widget-tss-hero .hero .video-caption{z-index:2}
}
@media(max-width:767px){
 body.tsse-work-page #main .elementor-widget-image.tss-picture{width:100vw;max-width:none;flex:0 0 auto;margin-inline:calc((100% - 100vw)/2)}
 body.tsse-work-page #main .elementor-widget-image.tss-picture .elementor-widget-container,
 body.tsse-work-page #main .elementor-widget-image.tss-picture figure,
 body.tsse-work-page #main .elementor-widget-image.tss-picture a{display:block;width:100%;max-width:none;margin:0}
 body.tsse-work-page #main .elementor-widget-image.tss-picture img{display:block;width:100%;max-width:100%;height:auto;border-radius:0}
 body.tsse-work-page #main .elementor-widget-image.tss-picture figcaption{padding-inline:16px}
}
.tss-elementor-main{display:block!important}
.elementor .tss-page{padding:0;overflow:visible}
.elementor .tss-page .e-con,.elementor .tss-header .e-con{min-width:0;flex-shrink:1}
.elementor .tss-section{padding-inline:5%}
.elementor .tss-page>.tss-section:first-child{padding-top:75px}
.elementor .tss-page>.tss-section:last-child{padding-bottom:75px}
.elementor .tss-picture img{width:100%;height:auto;object-fit:contain}
.elementor .tss-picture figcaption{font-size:11px;color:#526873;margin-top:10px}
/* Service titles already follow each image; suppress duplicate image captions. */
.elementor #services .elementor-widget-image figcaption{display:none}
.elementor #services .elementor-widget-image figure{margin:0;display:block;height:auto}
.elementor #services .elementor-widget-image img{display:block;width:100%;height:auto;max-width:100%}
.elementor .tss-dark-panel .elementor-heading-title,.elementor .tss-dark-panel p{color:#fff}
.elementor .tss-dark-panel .serif{color:#60dfd3}
.elementor-widget-tss-comparison section{padding-block:0;margin-block:0}
/* Override Elementor's generic img height/max-width even when loaded later.
   The before photo must extend beyond its screen window to hide its laptop shell. */
.elementor .elementor-widget-tss-comparison .comparison-layer>img{width:100%;height:100%;max-width:100%;object-fit:contain}
.elementor .elementor-widget-tss-comparison .comparison-screen>img{position:absolute;max-width:none;width:128.428094%;height:133.159948%;left:-14.214047%;top:-5.071521%;object-fit:fill}
.elementor-widget-tss-packages .packages-area{margin-block:0;padding-block:75px}
.elementor-widget-tss-inquiry .form{width:100%}
.elementor-widget-tss-hero{overflow:visible}
.elementor .tss-header .elementor-widget-image img{width:220px}
.elementor .tss-header .elementor-widget-image figcaption{display:none}
.elementor-editor-active .tss-reveal{opacity:1;transform:none}
.elementor-editor-active .scroll-scene{height:auto;min-height:0}
.elementor-editor-active .video-stage{position:relative;top:0}
.tss-elementor-main .elementor{width:100%}
.brand-inquiry-modal .brand-inquiry-intro{color:var(--muted);margin:0 0 25px}
.brand-inquiry-modal .form{width:100%;margin:0}
.brand-inquiry-modal .form .field label{color:#00243d;font-weight:600}
.brand-inquiry-modal .form .consent{color:#00243d}
.brand-inquiry-modal .form .privacy-note{color:#526873}
.brand-inquiry-modal .form input,.brand-inquiry-modal .form textarea,.brand-inquiry-modal .form select{max-width:100%}
/* Restore the original branding panel on already-imported native widgets.
   Keep all saved text, links and widget IDs intact; no page reimport is needed. */
.elementor #branding>.e-con-inner{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,.9fr);column-gap:80px;row-gap:20px;padding:55px;border:1px solid #d7e4e5;border-radius:16px;background:#eff8f7;align-items:start;position:relative}
/* Keep the heading and description together rather than sharing inquiry rows. */
.elementor #branding>.e-con-inner>.e-con:first-child{display:flex;flex-direction:column;grid-area:1/1/5/2;width:100%;gap:24px;align-self:start}
.elementor #branding>.e-con-inner>.e-con:first-child>.e-con:first-child{display:flex;flex-direction:column;width:100%;gap:18px}
.elementor #branding>.e-con-inner>.e-con:first-child>.e-con:last-child{width:100%;padding:0}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(2){grid-area:5/1}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(3){grid-area:1/2;align-self:end}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(4){grid-area:2/2}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(5){grid-area:3/2;align-self:end}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(6){grid-area:4/2}
.elementor #branding>.e-con-inner::after{content:'';grid-area:1/2/5/3;align-self:stretch;border-left:1px solid #bbd3d5;margin-left:-40px;pointer-events:none;width:0}
.elementor #branding .elementor-widget{min-width:0;margin:0}
.elementor #branding h2.elementor-heading-title{font-size:clamp(32px,3.4vw,48px);line-height:1.12;letter-spacing:-1.5px}
.elementor #branding p{margin:0;font-size:15px;line-height:1.65}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(2) p{font-size:11px;color:#00243d}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(3) p{font-size:18px;color:#00243d}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(4) .elementor-button{background:#00b8ae;color:#00243d;border:1px solid #00b8ae;font-size:13px;font-weight:600;padding:16px 24px}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(5) p{font-size:13px}
.elementor #branding>.e-con-inner>.elementor-widget:nth-child(6) .elementor-button{background:transparent;color:#00243d;border:0;border-bottom:1px solid #00243d;border-radius:0;padding:0 0 3px;font-size:13px;font-weight:600}
@media(max-width:900px){
 .elementor #branding>.e-con-inner{padding:30px;column-gap:45px;grid-template-columns:minmax(0,1.4fr) minmax(190px,1fr)}
 .elementor #branding>.e-con-inner::after{margin-left:-22px}
}
@media(max-width:767px){
 .elementor #branding>.e-con-inner{display:flex;flex-direction:column;gap:24px;padding:28px}
 .elementor #branding>.e-con-inner>.e-con:first-child,
 .elementor #branding>.e-con-inner>.e-con:first-child>.e-con:first-child{display:flex;flex-direction:column;width:100%;gap:18px}
 .elementor #branding>.e-con-inner::after{display:none}
 .elementor #branding>.e-con-inner>.elementor-widget:nth-child(3){align-self:stretch;border-top:1px solid #bbd3d5;padding-top:24px}
}
@media(max-width:767px){
 .elementor #services>.e-con-inner>.e-con:last-child{display:grid;grid-template-columns:minmax(0,1fr);gap:40px;width:100%;height:auto}
 .elementor #services>.e-con-inner>.e-con:last-child>.e-con{display:flex;flex-direction:column;gap:20px;width:100%;height:auto;min-height:0;flex:none}
 .elementor #services .elementor-widget{flex:0 0 auto;width:100%;height:auto;min-height:0;margin:0;position:relative;top:auto;bottom:auto}
 .elementor #services .elementor-widget-heading .elementor-heading-title{font-size:26px;line-height:1.2;letter-spacing:-.6px;overflow-wrap:break-word}
 .elementor #services .elementor-widget-text-editor p{margin:0;font-size:16px;line-height:1.7}
 .elementor .tss-header,.elementor .tss-header>.e-con-inner{flex-direction:row;align-items:center;flex-wrap:nowrap}
 .elementor .tss-header .e-con:first-child{width:65%}
 .elementor .tss-header .e-con:last-child{width:35%}
 .elementor .tss-dark-panel{padding:28px}
}

/* Balance the creative-service heroes without changing saved Elementor content. */
.elementor .tsse-hero-supporting-visual{margin-top:32px;width:100%;max-width:520px;border:1px solid #d3e4e5;border-radius:16px;overflow:hidden;background:#EFF8F7}
.elementor .tsse-hero-supporting-visual img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:5/3;object-fit:contain}
@media(max-width:767px){.elementor .tsse-hero-supporting-visual{margin-top:24px;max-width:100%;border-radius:12px}}
