/* Portada · només la maquetació que Elementor no pot fer sol (seccions fixades, línies, targetes).
   Textos, imatges, colors de fons i tipografies es canvien des d'Elementor.
   Les regles amb .fx només s'apliquen quan les animacions estan actives (mai a l'editor). */

body.home{background:#0d0d0d;overflow-x:clip;--pad:clamp(20px,5vw,90px)} /* mai overflow a html: trencaria el sticky */
.home .site-content,.home #content,.home .ast-container{overflow:visible}

/* Espais: les seccions porten el marge lateral; els contenidors de dins, no */
.home :where(section).e-con{--padding-top:0px;--padding-bottom:0px;--padding-left:var(--pad);--padding-right:var(--pad);--gap:0px}
.home section .e-con,.home .sl-wipe{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px}
/* sense l'espai automàtic d'Elementor entre widgets; cada peça porta el seu marge (prioritat mínima amb :where) */
.home{--kit-widget-spacing:0px;--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px}
.home :where(.e-con>.elementor-widget){margin:0}
/* Elementor anima els desplaçaments (0,4 s); aquí els mou l'scroll i han d'anar sincronitzats */
.home .elementor-element{--e-transform-transition-duration:0s;--e-con-transform-transition-duration:0s}
/* Seccions fixades: espai a dalt perquè el títol no quedi sota la capçalera */
.home section .sl-rst,.home section .sl-tst,.home section .sl-sst{--padding-top:16vh}
.home .sl-tst,.home .sl-sst{justify-content:flex-start}

/* Colors de text segons el fons */
.home .sl-d,.home .sl-c{color:#cfcfcf}
.home .sl-d .elementor-heading-title,.home .sl-c .elementor-heading-title{color:#fff}
.home .sl-l{color:#3a3a3a}
.home .sl-l .elementor-heading-title{color:#111}

/* Peces de text reutilitzades */
.home .sl-over .elementor-heading-title{font:300 clamp(12px,1vw,15px)/1.3 Montserrat,sans-serif;letter-spacing:.28em;text-transform:uppercase}
.home .sl-ttl .elementor-heading-title{font:700 clamp(30px,3.6vw,62px)/1.08 Montserrat,sans-serif;letter-spacing:.02em;text-transform:uppercase}
.home .sl-lead{font:300 clamp(19px,1.6vw,26px)/1.45 'Source Sans 3',sans-serif}
.home .sl-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sl-w{display:inline-block}
.home .sl-btn .elementor-button{background:transparent;color:#fff;border:1px solid currentColor;border-radius:0;min-height:46px;padding:0 2.5em;display:inline-flex;align-items:center;font:600 .75rem Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;transition:background .3s,color .3s}
.home .sl-btn .elementor-button:hover{background:#fff;color:#111}
.home .sl-btn-full .elementor-button{background:#fff;color:#111;border-color:#fff}
.home .sl-btn-full .elementor-button:hover{background:transparent;color:#fff}
.home :focus-visible{outline:2px solid currentColor;outline-offset:.25em}

/* Gra de pel·lícula */
body.home::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:40;opacity:.04;animation:sl-gr .8s steps(5) infinite;
background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes sl-gr{20%{transform:translate(-5%,3%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,5%)}80%{transform:translate(6%,2%)}}

/* Logo (rèplica en text + asterisc real) */
.sl-lg{font:700 1em/1 'Roboto Condensed',sans-serif;letter-spacing:-.03em;white-space:nowrap;text-transform:none}
.sl-lg i{display:inline-block;font-style:normal}
.sl-lg .b{color:#8a8a8a}.sl-lg .s{color:#fff}
.sl-lg .ast{display:inline-block;width:.34em;height:.34em;fill:#8a8a8a;vertical-align:top;position:relative;top:.1em;margin-left:-.13em;overflow:visible}

/* Intro */
.sl-intro{position:fixed;inset:0;z-index:200;background:#0b0b0b;display:grid;place-items:center}
.sl-intro .lgw{position:relative;width:min(72vw,827px)}
.sl-intro .lgw img{display:block;width:100%;height:auto}
.sl-intro .gh{position:absolute;inset:0;opacity:0;filter:blur(3px)}
.sl-intro .gh .b,.sl-intro .gh .s{color:rgba(255,255,255,.3)}.sl-intro .gh .ast{fill:rgba(255,255,255,.3)}
.sl-intro .skip{position:absolute;right:var(--pad);bottom:3vh;min-height:44px;background:none;border:0;color:#8a8a8a;font:600 .65rem Montserrat,sans-serif;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
body.sl-lock{overflow:hidden}

/* 1 · Portada */
.home .sl-hero{min-height:100svh;justify-content:center;align-items:center;text-align:center;--padding-top:10vh;--padding-bottom:8vh}
.home .sl-logo{margin-bottom:7vh}
.home .sl-logo img{width:min(64vw,620px);height:auto}
.home .sl-hero h1{font-size:clamp(28px,3.4vw,58px);max-width:24ch;margin:0 auto 3vh}
.home .sl-hero .sl-over{opacity:.8}
.home .sl-down .elementor-heading-title{display:inline-block;margin-top:9vh;font:300 1.4rem Montserrat,sans-serif;color:#8a8a8a;animation:sl-bob 2.4s ease-in-out infinite}
@keyframes sl-bob{50%{transform:translateY(.6em)}}

/* 2 · El repte */
.home .sl-rep{min-height:100vh}
.fx .home .sl-rep{height:280vh}
.home .sl-rst{height:100vh;justify-content:center;overflow:hidden}
.fx .home .sl-rst{position:sticky;top:0}
.home .sl-rep .sl-over{margin-bottom:6vh}
.home .sl-row .elementor-heading-title{font:700 clamp(32px,6vw,116px)/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.01em;white-space:nowrap}
.home .sl-row-b,.home .sl-row-c{margin-top:.15em}
.home .sl-row-b .elementor-heading-title span{color:#5a5a5a;background:linear-gradient(#fff,#fff) no-repeat 0 58%/var(--st,0%) .09em}
.html-static .home .sl-row-b .elementor-heading-title span{--st:100%}
.home .sl-sub{margin-top:7vh;max-width:44ch}

/* Transicions amb l'asterisc */
.home .sl-wipe{display:none}
.fx .home .sl-wipe{display:grid;height:100vh;place-items:start center;overflow-x:clip}
.home .sl-wipe .sl-wast{width:13vmin;height:13vmin;margin-top:9vh}

/* 3 · Com treballem */
.home .sl-tl{min-height:100vh}
.fx .home .sl-tl{height:420vh}
.home .sl-tst{height:100vh;overflow:hidden;justify-content:center}
.fx .home .sl-tst{position:sticky;top:0}
.home .sl-thead .sl-ttl{margin-top:.3em;max-width:20ch}
.home .sl-track{gap:6vw;margin-top:7vh;padding-right:30vw;width:max-content;flex-wrap:nowrap}
.home .sl-step{width:min(500px,76vw);flex:none}
.fx .home .sl-step{opacity:.22;filter:blur(3px);transition:opacity .6s,filter .6s}
.fx .home .sl-step.on{opacity:1;filter:none}
.home .sl-num .elementor-heading-title{font:700 clamp(54px,6vw,104px)/1 Montserrat,sans-serif;display:block;margin-bottom:.3em}
.home .sl-step h3{font:700 clamp(22px,2.2vw,36px)/1.15 Montserrat,sans-serif;text-transform:uppercase;margin-bottom:.6em}
.home .sl-step p{font-size:clamp(17px,1.25vw,21px);max-width:34ch}
.sl-line{position:relative;margin-top:8vh;height:1px;background:#cfcdc8}
.sl-line i{position:absolute;left:0;top:0;height:1px;width:0;background:#111}
.sl-line svg{position:absolute;top:0;left:0;width:2rem;height:2rem;margin:-1rem 0 0 -1rem;fill:#111}

/* 4 · Serveis */
.home .sl-sv{min-height:100vh}
.fx .home .sl-sv{height:440vh}
.home .sl-sst{height:100vh;overflow:hidden;justify-content:center}
.fx .home .sl-sst{position:sticky;top:0}
.home .sl-sv .sl-ttl .elementor-heading-title{margin-top:.4em;max-width:40ch;font-size:clamp(22px,2.2vw,38px)}
.home .sl-cards{gap:6vw;margin-top:6vh;width:max-content;flex-wrap:nowrap}
.home .sl-card{width:calc(100vw - 2*var(--pad) - 1.5vw);height:min(58vh,560px);flex:none;display:grid;grid-template-columns:1.15fr 1fr;gap:5vw;align-items:center}
.home .sl-card-img,.home .sl-card-img img{height:100%;width:100%}
.home .sl-card-img{overflow:hidden}
.home .sl-card-img img{object-fit:cover;filter:grayscale(1) brightness(.8);transition:filter .8s,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.home .sl-card:hover .sl-card-img img{filter:grayscale(0) brightness(.9);transform:scale(1.03)}
.home .sl-card .sl-over .elementor-heading-title{font-size:clamp(14px,1.2vw,19px);letter-spacing:.1em}
.home .sl-card h3{font:700 clamp(40px,4.6vw,84px)/1 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.02em;margin:.18em 0 .25em}
.home .sl-card p{font-size:clamp(17px,1.25vw,20px);max-width:36ch;margin-bottom:1.6em}
.home .sl-n .elementor-heading-title{display:block;font:300 .8rem Montserrat,sans-serif;letter-spacing:.24em;color:#8a8a8a;margin-bottom:.6em}
.html-static .home .sl-cards{flex-direction:column;width:auto}.html-static .home .sl-card{width:100%}

/* 5 · Vídeo */
.home .sl-film{height:80vh;min-height:460px;justify-content:center;align-items:center}
.home .sl-sv{--padding-bottom:20vh} /* l'aire abans del vídeo és del mateix gris de la secció: cap franja d'un altre color */
.home .sl-film video{filter:grayscale(1) contrast(1.1)}
.home .sl-film-txt .elementor-heading-title{font:700 clamp(26px,3.6vw,62px)/1.15 Montserrat,sans-serif;text-transform:uppercase;max-width:22ch;margin:0 auto;text-align:center}

/* 6 · Casos */
.home .sl-cas{--padding-top:20vh;--padding-bottom:16vh}
.home .sl-cas .sl-ttl{margin:1em 0 7vh}
.home .sl-acc{gap:1vw;height:min(84vh,880px);min-height:480px;flex-wrap:nowrap} /* targetes verticals */
.home .e-con.sl-case{--flex-grow:1;--flex-shrink:1;--flex-basis:0%;position:relative;flex:1 1 0%;min-width:0;overflow:hidden;border-radius:.4em;color:#fff;transition:flex .9s cubic-bezier(.7,0,.2,1)}
.home .sl-acc:hover .e-con.sl-case{--flex-grow:.8;flex-grow:.8} /* les altres s'estrenyen */
.home .sl-acc .e-con.sl-case:hover,.home .sl-acc .e-con.sl-case:focus-visible{--flex-grow:1.7;flex-grow:1.7}
.home .e-con.sl-cap{--width:auto;width:auto;--flex-direction:row;flex-direction:row}
.home .sl-cap>.elementor-widget{min-width:0}.home .sl-cap>.sl-go{flex:none}
.home .sl-case-logo{position:absolute;inset:0;display:grid;place-items:center}
.home .sl-case-logo img{width:88%;clip-path:inset(4% 2% 2% 2%);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.home .sl-case:hover .sl-case-logo img{transform:scale(1.05)}
.home .sl-k{position:absolute;left:7%;top:5%}
.home .sl-k .elementor-heading-title{font:300 .75rem Montserrat,sans-serif;letter-spacing:.24em}
.home .sl-cap{position:absolute;left:7%;right:7%;bottom:5%;flex-direction:row;justify-content:space-between;align-items:flex-end;gap:1em}
.home .sl-cap h3{font:700 clamp(18px,1.6vw,28px)/1.1 Montserrat,sans-serif;text-transform:uppercase}
.home .sl-go .elementor-heading-title{font:600 .7rem Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateY(.6em);transition:.5s;display:block}
.home .sl-case:hover .sl-go .elementor-heading-title,.home .sl-case:focus-visible .sl-go .elementor-heading-title{opacity:1;transform:none}

/* 7 · Lluís Ares */
.home .sl-dir{min-height:82vh;align-items:center;justify-content:center;text-align:center;--padding-top:14vh;--padding-bottom:2vh}
.home .sl-role .elementor-heading-title{font:300 clamp(13px,1.2vw,18px)/1 Montserrat,sans-serif;letter-spacing:.5em;text-transform:uppercase;color:#8a8a8a}
.home .sl-nm{position:relative;margin:4vh 0 5vh}
.home .sl-nm .elementor-heading-title{font:700 clamp(54px,11.5vw,220px)/.95 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.01em;white-space:nowrap}
.home .sl-nm .ghost{position:absolute;inset:0;color:rgba(255,255,255,.3)!important;filter:blur(4px);opacity:0}
.home .sl-rolls ul{list-style:none;padding:0;margin:0;font:600 clamp(12px,1vw,15px)/2.4 Montserrat,sans-serif;letter-spacing:.24em;text-transform:uppercase;color:#fff}
.home .sl-qui{--padding-top:4vh;--padding-bottom:6vh}
.home .sl-qtxt{columns:2;column-gap:4vw;max-width:70rem;margin:0 auto}
.home .sl-qtxt p{break-inside:avoid;margin-bottom:1.1em}

/* 8 · Final */
.home .sl-fin{--padding-top:26vh;--padding-bottom:20vh}
.home .sl-quote .elementor-heading-title{font:700 clamp(28px,4vw,70px)/1.12 Montserrat,sans-serif;text-transform:uppercase;max-width:20ch;margin:0 auto 30vh;text-align:center}
.home .sl-fgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:start}
.home .sl-fcta .sl-ttl{margin-top:.3em}
.home .sl-fcta .sl-lead{max-width:36ch;margin:.7em 0 1.4em}
.home .sl-faq .sl-over{margin-bottom:1.5em}
.home .sl-acc-faq .elementor-accordion-item{border:0;border-bottom:1px solid #2c2c2c}
.home .sl-acc-faq .elementor-accordion-item:first-child{border-top:1px solid #2c2c2c}
.home .sl-acc-faq .elementor-tab-title{padding:1.3em 0;color:#fff;font:600 clamp(15px,1.15vw,18px)/1.35 Montserrat,sans-serif;text-transform:none}
.home .sl-acc-faq .elementor-tab-title a,.home .sl-acc-faq .elementor-accordion-icon{color:#fff;fill:#fff}
.home .sl-acc-faq .elementor-tab-content{border:0;padding:0 0 1.5em;color:#cfcfcf}

/* Mòbil: línia de temps, serveis i casos en vertical */
@media (max-width:1024px){ /* = punt de tauleta d'Elementor */
	.fx .home .sl-tl,.fx .home .sl-sv{height:auto}
	.fx .home .sl-tst,.fx .home .sl-sst{position:static;height:auto}
	.home .sl-tst,.home .sl-sst{height:auto;padding:8vh 0 12vh}
	.home .sl-track,.home .sl-cards{flex-direction:column;width:auto;padding-right:0;gap:9vh}
	.home .sl-step{width:auto}.fx .home .sl-step{opacity:1;filter:none}.sl-line{display:none}
	.home .sl-card{width:auto;grid-template-columns:minmax(0,1fr);height:auto;gap:4vh}.home .sl-card-img{height:30vh}
	.home .sl-card h3{font-size:clamp(26px,8.6vw,44px);overflow-wrap:anywhere}
	.home .sl-acc{flex-direction:column;height:auto}.home .e-con.sl-case,.home .sl-acc:hover .e-con.sl-case,.home .sl-acc .e-con.sl-case:hover{height:auto;aspect-ratio:4/5;flex:none}
	.home .sl-go .elementor-heading-title{opacity:1;transform:none}
	.home .e-con.sl-cap{--flex-direction:column;flex-direction:column;align-items:flex-start;gap:.4em}
	.home .sl-role .elementor-heading-title{letter-spacing:.3em;line-height:1.5}
	.home .sl-dir{min-height:auto;--padding-top:16vh;--padding-bottom:6vh}
	.home .sl-fgrid{grid-template-columns:1fr}.home .sl-qtxt{columns:1}
	.home .sl-nm .elementor-heading-title,.home .sl-row .elementor-heading-title{white-space:normal}
}
/* Indicador d'scroll: una línia fina amb un traç que baixa */
.sl-hint{position:fixed;left:50%;bottom:3.5vh;z-index:55;width:1px;height:2.6rem;overflow:hidden;background:rgba(255,255,255,.22);transform:translateX(-50%);mix-blend-mode:difference;opacity:0;transition:opacity .8s;pointer-events:none}
.sl-hint.on{opacity:1}
.sl-hint::after{content:"";position:absolute;left:0;top:-40%;width:1px;height:40%;background:#fff;animation:sl-hint 2.2s cubic-bezier(.6,0,.3,1) infinite}
@keyframes sl-hint{to{top:100%}}
@media (prefers-reduced-motion:reduce){.sl-hint::after{animation:none;top:30%}}
@media (prefers-reduced-motion:reduce){body.home::after,.home .sl-down .elementor-heading-title{animation:none}}
