/* Native interactions replacing the original CMS runtime. Page styling is in original/. */
[hidden]{display:none!important}
.elementor-location-header{position:sticky;top:0;z-index:100}
body.dialog-open{overflow:hidden}
/* The last row of opportunities meets the footer without an empty band. */
.elementor-491 .elementor-element.elementor-element-08c2f5c{--margin-bottom:0px;margin-bottom:0!important}
.elementor-button:disabled{opacity:.65;cursor:not-allowed}
.elementor-image-carousel-wrapper.static-logo-carousel .swiper-slide{max-width:none;flex-shrink:0}
.elementor-image-carousel-wrapper.static-logo-carousel .swiper-wrapper{transition:transform 600ms ease}
.jet-listing-grid__slider.static-case-carousel{position:relative}
.static-case-carousel > .jet-listing-grid__items{display:block}
.static-case-carousel .jet-listing-grid__item{width:100%;max-width:100%}
.static-case-carousel button.jet-listing-grid__slider-icon{border:0;padding:0;border-radius:0}
.static-case-carousel .jet-slick-dots button{border:0;padding:0;margin:0;width:100%;height:100%;border-radius:inherit;background:transparent;font-size:0;color:transparent;display:block}
.elementor-nav-menu--dropdown.static-menu-open{display:block;max-height:none;transform:scaleY(1)}
@media(max-width:767px){.elementor-location-header .elementor-nav-menu--dropdown{position:absolute;left:var(--static-menu-left,0px);top:var(--static-menu-top,100%);margin-top:0!important;width:100vw;max-height:var(--static-menu-height,calc(100dvh - 75px));overflow-y:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.static-logo-carousel .swiper-wrapper{transition:none!important}}
.static-case-carousel .jet-listing-grid__item:not([hidden]){display:block!important}
.static-case-carousel .slick-list{overflow:hidden;touch-action:pan-y}
/* Cinematic event scenes: dissolve in place, with motion only in the photograph. */
.static-case-carousel .slick-track{width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr);isolation:isolate;transform:none!important}
.static-case-carousel .slick-track > .jet-listing-grid__item{grid-area:1/1;width:100%!important;max-width:100%!important;min-width:0;height:auto;display:block!important;opacity:0;visibility:hidden;pointer-events:none;z-index:0;transition:opacity 1000ms cubic-bezier(.22,.61,.36,1),visibility 0ms 1000ms}
.static-case-carousel .slick-track > .jet-listing-grid__item.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:2;transition:opacity 1000ms cubic-bezier(.22,.61,.36,1),visibility 0ms}
.static-case-carousel .slick-track > .jet-listing-grid__item.is-leaving{opacity:1;visibility:visible;z-index:1;transition:none}
.static-case-carousel .cinematic-scene{position:relative;overflow:hidden;isolation:isolate}
.static-case-carousel .cinematic-photo{position:absolute;inset:0;z-index:0;background-size:inherit;background-position:inherit;background-repeat:inherit;pointer-events:none;transform:scale(1.065);transform-origin:center}
.static-case-carousel .cinematic-scene > .elementor-background-overlay{z-index:1;pointer-events:none}
.static-case-carousel .cinematic-scene > .elementor-container{position:relative;z-index:2}
.static-case-carousel :is(.is-active,.is-leaving) .cinematic-photo{animation:crowder-cinematic-zoom 8s cubic-bezier(.2,.45,.3,1) both;animation-play-state:paused}
.static-case-carousel.is-in-view :is(.is-active,.is-leaving) .cinematic-photo{animation-play-state:running}
.static-case-carousel .is-active .cinematic-scene > .elementor-container{animation:crowder-cinematic-copy-in 600ms ease 280ms both}
.static-case-carousel .is-leaving .cinematic-scene > .elementor-container{animation:crowder-cinematic-copy-out 180ms ease both}
@keyframes crowder-cinematic-copy-in{from{opacity:0}to{opacity:1}}
@keyframes crowder-cinematic-copy-out{from{opacity:1}to{opacity:0}}
@keyframes crowder-cinematic-zoom{from{transform:scale(1.065)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.static-case-carousel .slick-track > .jet-listing-grid__item{transition:none!important}.static-case-carousel .cinematic-photo{animation:none!important;transform:none!important}.static-case-carousel .cinematic-scene > .elementor-container{animation:none!important}}
/* Contact form, visual only, following the site's black-and-white design. */
.contact-dialog{position:fixed;inset:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;padding:0;background:#000;color:#fff;overflow:auto;overscroll-behavior:contain}
.contact-dialog::backdrop{background:#000}
.contact-dialog[open],.contact-dialog[open]::backdrop{animation:contact-fade-in 320ms ease both}
.contact-dialog[open] .contact-layout{animation:contact-content-in 560ms cubic-bezier(.22,.61,.36,1) 80ms both}
@keyframes contact-fade-in{from{opacity:0}to{opacity:1}}
@keyframes contact-content-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.contact-dialog[open],.contact-dialog[open]::backdrop,.contact-dialog[open] .contact-layout{animation:none}}
.contact-dialog:focus{outline:none}
.contact-panel{max-width:1280px;margin:0 auto;padding:0 30px 30px}
.contact-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 0;position:sticky;top:0;z-index:2;background:#000}
.contact-logo{display:block;width:100px;height:auto}
.contact-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:#b9b9bd;cursor:pointer;flex-shrink:0}
.contact-close svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.contact-close:hover,.contact-close:focus{background:#ffffff12;color:#fff}
.contact-close:focus-visible{outline:1px solid #4ed5cc;outline-offset:2px}
.contact-layout{display:block;max-width:900px;margin:0 auto;min-height:calc(100dvh - 124px);padding-top:60px}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px}
.contact-field{min-width:0}
.contact-field label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.contact-field input,.contact-field textarea{display:block;width:100%;min-width:0;padding:16px 0!important;border:0;border-bottom:1px solid #ffffff40;border-radius:0;background:transparent;font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:1.5;color:#fff;outline:none;transition:border-color .2s}
.contact-field input{height:58px}
.contact-field textarea{min-height:128px;resize:vertical}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:#a0a0a5!important;opacity:1}
.contact-field input:focus,.contact-field textarea:focus{border-bottom-color:#4ed5cc}
.contact-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 100px #000 inset!important;-webkit-text-fill-color:#fff!important}
.contact-field-wide{grid-column:1/-1}
.contact-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:32px}
.contact-footer p,.visual-form-note{margin:0;font-family:Inter,sans-serif;font-size:13px;line-height:1.5;color:#81818b}
.contact-send,.contact-send:hover,.contact-send:focus{display:flex;align-items:center;justify-content:center;gap:30px;padding:17px 30px;border:1px solid #fff;border-radius:40px;background:transparent;font-family:Inter,sans-serif;font-size:15px;font-weight:500;color:#fff}
.contact-send:disabled{opacity:.4;cursor:not-allowed}
.contact-send span{font-size:20px;line-height:1}
.visual-form-note{margin-top:18px;text-align:left}
.static-case-carousel .jet-slick-dots li{min-height:0;min-width:0;line-height:0;list-style:none}
@media(max-width:1024px){.contact-layout{padding-top:45px}}
/* Equal space above and below keeps the form centered; short screens can still scroll. */
@media(min-width:768px){.contact-panel{display:grid;grid-template-rows:94px minmax(min-content,1fr) 94px;min-height:100dvh;padding:0 30px}.contact-panel::after{content:"";grid-row:3}.contact-layout{align-self:center;width:100%;min-height:0;padding:32px 0}}
@media(max-width:767px){.contact-panel{padding:0 30px 36px}.contact-bar{padding:16px 0}.contact-logo{width:90px}.contact-layout{display:block;min-height:0;padding-top:32px}.contact-fields{grid-template-columns:1fr;gap:16px}.contact-field input{height:50px}.contact-field textarea{min-height:112px}.contact-footer{align-items:stretch;flex-direction:column;gap:20px;margin-top:30px}.contact-footer p{text-align:center;order:2}.contact-send{width:100%;justify-content:space-between}}
.privacy-document{max-width:1000px;margin:0 auto;padding:100px 30px;font-family:Inter,sans-serif;font-size:16px;line-height:1.7;color:#45454b}
/* Application forms share one layout across all open positions. */
.jobs-form > .elementor-widget-container{padding:0;border:0;border-radius:0;background:transparent}
.jobs-form .elementor-form-fields-wrapper{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 32px!important;margin:0!important}
.jobs-form .elementor-field-group{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;grid-column:1/-1;width:auto;max-width:none;padding:0!important;margin:0!important}
.jobs-form .elementor-field-group-nombre,.jobs-form .elementor-field-group-email{grid-column:auto}
.jobs-form .elementor-field-type-hidden{display:none!important}
.jobs-form .elementor-field-group > .elementor-field-label{margin:0 0 8px!important;padding:0!important;font-size:14px!important;font-weight:500!important;line-height:1.5;color:#171717}
.jobs-form input.elementor-field-textual{flex:0 0 auto!important;width:100%;min-width:0;height:50px;min-height:50px;padding:12px 0!important;border:0!important;border-bottom:1px solid #989ba1!important;border-radius:0!important;background:transparent!important;font-family:Inter,sans-serif;font-size:15px;line-height:1.5;color:#000;outline:none;box-shadow:none;transition:border-color .2s}
.jobs-form input.elementor-field-textual:focus{border-bottom-color:#000!important;border-bottom-width:2px!important;box-shadow:none}
.jobs-form .e-form__buttons{align-items:flex-start;margin-top:2px!important}
.jobs-form .elementor-button:disabled{min-width:160px;margin:0;padding:13px 28px!important;border:1px solid #000!important;border-radius:0!important;background:#000;color:#fff;font-family:Inter,sans-serif;font-size:15px;font-weight:500;line-height:1.5;opacity:.35;cursor:not-allowed}
.jobs-form .visual-form-note{margin-top:16px;font-size:12px;line-height:1.5;color:#7c7e85}
@media(max-width:767px){.jobs-form .elementor-form-fields-wrapper{grid-template-columns:minmax(0,1fr);gap:32px!important}.jobs-form .elementor-field-group-nombre,.jobs-form .elementor-field-group-email{grid-column:1/-1}.jobs-form .e-form__buttons{align-items:stretch}.jobs-form .elementor-button:disabled{width:100%}}
/* A native file picker with the same restrained typography as the job form. */
.jobs-form .cv-upload{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-width:0;padding:16px 0 20px;border:0;border-bottom:1px solid #989ba1;border-radius:0;background:transparent;transition:border-color .2s}
.jobs-form .cv-upload:hover{border-color:#000}
.jobs-form .cv-upload:focus-within{border-color:#000;outline:1px solid #000;outline-offset:5px}
.jobs-form .cv-upload input[type=file]{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.cv-upload-icon{display:flex;align-items:center;justify-content:flex-start;flex:0 0 28px;width:28px;height:44px;background:transparent;color:#000}
.cv-upload-icon svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cv-upload-copy{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.cv-file-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Inter,sans-serif;font-size:15px;font-weight:500;line-height:1.4;color:#000}
.cv-file-help{font-family:Inter,sans-serif;font-size:12px;line-height:1.5;color:#7c7e85}
.cv-upload-action{flex-shrink:0;padding:10px 17px;border:1px solid #000;border-radius:0;font-family:Inter,sans-serif;font-size:13px;font-weight:500;line-height:1.4;color:#000}
.cv-upload.has-error{border-color:#bd3e36}
.cv-upload.has-error .cv-file-help{color:#bd3e36}
@media(max-width:480px){.jobs-form .cv-upload{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px 12px}.cv-upload-icon{width:28px;height:40px}.cv-upload-action{grid-column:2;justify-self:start;padding:8px 15px}}
.privacy-document h1{font-family:Inter,sans-serif;font-size:50px;font-weight:600;line-height:1.15;margin:0 0 35px;color:#000}
.privacy-document h4{font-family:Inter,sans-serif;font-size:22px;font-weight:600;margin-top:32px;color:#000}
@media(max-width:600px){.privacy-document{padding:60px 30px}.privacy-document h1{font-size:34px}}

/* Enabled SMTP forms use the same straight application button and typography. */
.jobs-form .elementor-button[type=submit]{min-width:160px;margin:0;padding:13px 28px!important;border:1px solid #000!important;border-radius:0!important;background:#000;color:#fff;font-family:Inter,sans-serif;font-size:15px;font-weight:500;line-height:1.5;cursor:pointer}
@media(max-width:767px){.jobs-form .elementor-button[type=submit]{width:100%}}

@media(max-width:767px){.elementor.elementor-location-header .elementor-widget-nav-menu .elementor-nav-menu--dropdown.static-menu-open{margin-top:0!important}}
