/* color-mix-fallback-applied */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}.invisible{visibility:hidden}.visible{visibility:visible}.static{position:static}.container{width:100%}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}section.hero{align-items:flex-start;min-height:100vh;display:flex;position:relative;padding:80px 0 0}@media(min-width:769px){section.hero{padding-bottom:160px;min-height:100vh}}.hero-grid-bg{background-image:linear-gradient(var(--border)1px,transparent 1px),linear-gradient(90deg,var(--border)1px,transparent 1px);pointer-events:none;background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80%,#000 30%,#0000 100%);mask-image:radial-gradient(80% 80%,#000 30%,#0000)}.hero-glow{background:radial-gradient(circle,var(--accent-glow)0%,transparent 70%);pointer-events:none;width:600px;height:600px;transition:background var(--transition);position:absolute;top:10%;right:-100px}.hero-content{z-index:2;width:100%;position:relative}.hero-inner{grid-template-columns:1fr 380px;align-items:flex-start;gap:64px;display:grid}.hero-eyebrow{opacity:0;animation:fadeIn 1s cubic-bezier(.16,1,.3,1) 0s forwards;align-items:center;gap:12px;margin-bottom:32px;display:flex}.hero-eyebrow-line{background:var(--accent);width:32px;height:1px}.hero-headline{margin-bottom:40px}.hero-headline .line{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:hidden}.hero-headline .line-inner{opacity:0;transition:opacity 1.6s cubic-bezier(.16,1,.3,1),transform 1.6s cubic-bezier(.16,1,.3,1);display:block;transform:translateY(105%)}.hero-headline.visible .line:nth-child(1) .line-inner{opacity:1;transform:translateY(0);transition-delay:.1s}.hero-headline.visible .line:nth-child(2) .line-inner{opacity:1;transform:translateY(0);transition-delay:.3s}.hero-headline.visible .line:nth-child(3) .line-inner{opacity:1;transform:translateY(0);transition-delay:.5s}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}.hero-sub{opacity:0;max-width:480px;animation:fadeIn 1.2s cubic-bezier(.16,1,.3,1) 2.2s forwards;margin-bottom:48px}@keyframes fadeIn{to{opacity:1}}.hero-actions{opacity:0;animation:fadeIn 1.2s cubic-bezier(.16,1,.3,1) 1.7s forwards;align-items:center;gap:16px;display:flex}.btn-primary{color:#fff;background:var(--accent-btn);border:1px solid var(--accent-btn);cursor:none;transition:background var(--transition),transform .2s;letter-spacing:.01em;align-items:center;gap:8px;padding:14px 28px;font-family:Söhne,sans-serif;font-size:14px;font-weight:500;display:inline-flex}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{color:var(--text-secondary);cursor:none;transition:color var(--transition);background:0 0;border:none;align-items:center;gap:8px;padding:14px 0;font-family:Söhne,sans-serif;font-size:14px;font-weight:500;display:inline-flex}.btn-secondary:hover{color:var(--text-primary)}.btn-arrow{transition:transform .28s var(--ease-out);display:inline-block}.btn-secondary:hover .btn-arrow,.btn-primary:hover .btn-arrow{transform:translate(4px)}.hero-metrics{border-top:1px solid var(--border);opacity:0;animation:fadeIn 1.2s cubic-bezier(.16,1,.3,1) 2s forwards;gap:0;margin-top:64px;padding-top:40px;display:flex}.metric{border-right:1px solid var(--border);flex:1;padding-right:40px}.metric:last-child{border-right:none;padding-left:40px;padding-right:0}.metric:nth-child(2){padding-left:40px}.metric-value{color:var(--metric-color);letter-spacing:-.02em;margin-bottom:8px;font-family:Berkeley Mono,monospace;font-size:clamp(36px,4vw,52px);font-weight:700;line-height:1}.metric-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:11px;font-weight:500}.scroll-indicator{opacity:0;animation:fadeIn 1s var(--ease-out)3.2s forwards;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.scroll-indicator-text{letter-spacing:.25em;text-transform:uppercase;color:#f0eee8a6;font-family:Berkeley Mono,monospace;font-size:10px}[data-theme=light] .scroll-indicator-text{color:#080c14a6}.scroll-indicator-line{background:#ffffff47;width:2px;height:64px;position:relative;overflow:hidden}[data-theme=light] .scroll-indicator-line{background:#080c1438}.scroll-indicator-dot{background:var(--accent);width:2px;height:12px;animation:2s cubic-bezier(.4,0,.6,1) 3.4s infinite scrollDot;position:absolute;top:-10px;left:50%;transform:translate(-50%)}@keyframes scrollDot{0%{opacity:1;top:-10px}80%{opacity:.8;top:64px}to{opacity:0;top:64px}}.hero-visual{opacity:0;flex-direction:column;animation:.9s cubic-bezier(.16,1,.3,1) 1.8s forwards slideInFromRight;display:flex;position:relative}@keyframes slideInFromRight{0%{opacity:0;transform:translate(48px)}to{opacity:1;transform:translate(0)}}.hero-visual-frame{border:1px solid var(--border);background:var(--bg-surface);flex-direction:column;justify-content:space-between;width:100%;min-height:620px;padding:40px;display:flex;position:relative;overflow:hidden}.hero-visual-frame:before{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent);height:1px;position:absolute;top:0;left:0;right:0}.visual-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:32px;font-size:13px;font-weight:500}.visual-bars{flex-direction:column;gap:28px;display:flex}.visual-bar-row{cursor:default;transition:color var(--transition);align-items:center;gap:12px;display:flex}.visual-bar-row:hover .visual-bar-label,.visual-bar-row:hover .visual-bar-value{color:var(--accent)}.visual-bar-row:hover .visual-bar-track{background:var(--accent)}@supports (color: color-mix(in srgb, red, red)){.visual-bar-row:hover .visual-bar-track{background:var(--border);background:color-mix(in srgb,var(--accent)20%,var(--border))}}.visual-bar-label{color:var(--text-secondary);width:110px;transition:color var(--transition);flex-shrink:0;font-family:Berkeley Mono,monospace;font-size:15px}.visual-bar-track{background:var(--border);flex:1;height:3px;position:relative;overflow:hidden}.visual-bar-fill{background:var(--accent);transform-origin:0;transition:transform 1.2s var(--ease-out);position:absolute;top:0;bottom:0;left:0;transform:scaleX(0)}.visual-bar-fill.animated{transform:scaleX(1)}.visual-bar-value{color:var(--accent);text-align:right;width:52px;transition:color var(--transition);flex-shrink:0;font-family:Berkeley Mono,monospace;font-size:15px}.visual-divider{background:var(--border);height:1px;margin:32px 0}.visual-tags{flex-wrap:wrap;gap:10px;display:flex}.visual-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border);transition:border-color var(--transition),color var(--transition);padding:9px 16px;font-family:Berkeley Mono,monospace;font-size:11px;font-weight:400}.visual-tag:hover{border-color:var(--accent);color:var(--accent)}.ticker-section{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0;overflow:hidden}.ticker-track{white-space:nowrap;animation:30s linear infinite ticker;display:flex}.ticker-item{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:24px;padding-right:24px;font-size:11px;font-weight:500;display:inline-flex}.ticker-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}.why-section,.services-section,.projects-section,.testimonials-section,.ai-section,.cta-section,.process-section,.filters-section,.manifesto-section,.postura-section,.uso-section,.tools-section,.collab-section,.cap-section,.contact-manifesto,.featured-section,.articles-section,.related-section{padding:120px 0}.section-eyebrow{align-items:center;gap:12px;margin-bottom:24px;display:flex;will-change:opacity,transform}.section-eyebrow-line{background:var(--accent);width:24px;height:1px}.why-section{background:var(--bg-base)}.why-headline{font-size:clamp(40px,5vw,72px)!important}.why-headline .why-line{display:block;overflow:hidden;margin-bottom:-.12em;padding-bottom:.12em}.why-headline .why-line-inner{opacity:0;transition:opacity 1.6s cubic-bezier(.16,1,.3,1),transform 1.6s cubic-bezier(.16,1,.3,1);display:block;transform:translateY(105%)}.why-headline .why-line-inner.revealed{opacity:1;transform:translateY(0)}.why-sub{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.why-sub.triggered{opacity:1;transform:translateY(0)}.why-stat-delayed{opacity:0;transition:opacity 1.1s cubic-bezier(.25,1,.5,1),transform 1.1s cubic-bezier(.25,1,.5,1);transform:translate(40px)}.why-stat-delayed.stat-visible{opacity:1;transform:translate(0)}@keyframes stat-swing-right{0%{transform:translate(0)}20%{transform:translate(48px)}to{transform:translate(0)}}@keyframes stat-swing-left{0%{transform:translate(0)}20%{transform:translate(-48px)}to{transform:translate(0)}}.why-stat-delayed.stat-visible:nth-child(odd):hover{animation:1.6s ease-out forwards stat-swing-right}.why-stat-delayed.stat-visible:nth-child(2n):hover{animation:1.6s ease-out forwards stat-swing-left}.why-inner{grid-template-columns:5fr 7fr;align-items:center;gap:80px;display:grid}.why-left{flex-direction:column;justify-content:center;align-self:center;display:flex}.why-right{flex-direction:column;margin-top:0;display:flex}.why-stat{border-bottom:1px solid var(--border);cursor:default;background:0 0;flex:1;grid-template-columns:1fr 2fr;align-items:center;gap:32px;padding:32px 28px;transition:background .5s cubic-bezier(.16,1,.3,1),border-color .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);display:grid}.why-stat:nth-child(odd):hover{transform:translate(24px)}.why-stat:nth-child(2n):hover{transform:translate(-24px)}.why-stat:first-child{border-top:1px solid var(--border)}.why-stat:hover{background:var(--bg-elevated);border-color:var(--border-hover)}.why-stat-number{transition:color .5s cubic-bezier(.16,1,.3,1)}.why-stat:hover .why-stat-number{color:var(--text-primary)}.why-stat-number{color:var(--metric-color);letter-spacing:-.02em;font-family:Berkeley Mono,monospace;font-size:clamp(40px,4vw,56px);font-weight:400;line-height:1}.why-stat-title{letter-spacing:-.01em;margin-bottom:8px;font-family:Syne,sans-serif;font-size:20px;font-weight:700}.services-section{background:var(--bg-surface)}.svc-line{display:block;overflow:hidden;margin-bottom:-.12em;padding-bottom:.12em}.svc-line-inner{opacity:0;transition:opacity 1.6s cubic-bezier(.16,1,.3,1),transform 1.6s cubic-bezier(.16,1,.3,1);display:block;transform:translateY(105%)}.svc-line-inner.revealed{opacity:1;transform:translateY(0)}.svc-sub{opacity:0;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);transform:translate(32px)}.svc-sub.triggered{opacity:1;transform:translate(0)}.services-header{grid-template-columns:7fr 5fr;align-items:end;gap:80px;margin-bottom:64px;display:grid}.services-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.service-card{border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background var(--transition);cursor:none;padding:40px 32px;position:relative;overflow:hidden}.service-card:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .4s var(--ease-out);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.service-card:hover{background:var(--bg-elevated)}.service-card:hover:after{transform:scaleX(1)}.service-num{color:var(--text-tertiary);letter-spacing:.06em;margin-bottom:32px;font-family:Berkeley Mono,monospace;font-size:11px}.service-title{letter-spacing:-.01em;margin-bottom:12px;font-family:Syne,sans-serif;font-size:20px;font-weight:700}.service-arrow{color:var(--text-tertiary);transition:color var(--transition),transform .28s var(--ease-out);font-size:18px;position:absolute;bottom:32px;right:32px}.service-card:hover .service-arrow{color:var(--accent);transform:translate(3px,-3px)}.projects-section{background:var(--bg-base)}.projects-header{justify-content:space-between;align-items:flex-end;margin-bottom:64px;display:flex}.projects-grid{grid-template-columns:7fr 5fr;gap:2px;display:grid;align-items:stretch}.project-card{background:var(--bg-surface);border:1px solid var(--border);cursor:none;transition:border-color var(--transition);position:relative;overflow:hidden}.project-card:hover{border-color:var(--border-hover)}.project-card.large{grid-row:span 2}.project-img{aspect-ratio:16/10;background:var(--bg-elevated);width:100%;position:relative;overflow:hidden}.project-card.large .project-img{height:100%;aspect-ratio:unset}.project-img-inner{background:linear-gradient(135deg,var(--bg-elevated)0%,var(--bg-surface)100%);will-change:transform;background-position:50%;background-size:cover;justify-content:center;align-items:center;transition:transform .1s linear,scale .55s cubic-bezier(.25,.46,.45,.94);display:flex;position:absolute;inset:-8%;scale:1}.project-card:hover .project-img-inner{scale:1.06}.project-img-overlay{opacity:0;z-index:2;pointer-events:none;background:linear-gradient(#0000 85%,#0006 90%,#000000d1);align-items:flex-end;padding:24px 28px;transition:opacity .45s cubic-bezier(.25,.46,.45,.94);display:flex;position:absolute;inset:0}.project-card:hover .project-img-overlay{opacity:1}.project-img-overlay-title{letter-spacing:-.01em;color:#fff;text-shadow:0 1px 6px #0009,0 2px 12px #0006;font-family:Syne,sans-serif;font-size:18px;font-weight:700;line-height:1.2;transition:transform .45s cubic-bezier(.25,.46,.45,.94);transform:translateY(8px)}.project-card:hover .project-img-overlay-title{transform:translateY(0)}[data-theme=light] .project-img-overlay{background:linear-gradient(#0000 85%,#080c1466 90%,#080c14d1)}.project-placeholder{color:var(--border);letter-spacing:-.04em;transition:color var(--transition);font-family:Syne,sans-serif;font-size:clamp(32px,5vw,64px);font-weight:800}.project-card:hover .project-placeholder{color:#3b6fe826}.project-info{border-top:1px solid var(--border);padding:28px 32px}.project-tags{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.project-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);font-size:10px;font-weight:500}.project-tag+.project-tag:before{content:"·";color:var(--text-tertiary);margin-right:8px}.project-name{letter-spacing:-.01em;margin-bottom:8px;font-family:Syne,sans-serif;font-size:20px;font-weight:700}.project-desc{color:var(--text-secondary);font-size:13px;line-height:1.6}.projects-right{flex-direction:column;gap:2px;display:flex;align-self:stretch;height:100%}.projects-right>.project-card{flex:1;min-height:0}.project-card.large{display:flex;flex-direction:column}.testimonials-section{background:var(--bg-surface)}.testimonials-header{grid-template-columns:5fr 7fr;align-items:end;gap:80px;margin-bottom:64px;display:grid}.testimonials-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.testimonial-card{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;justify-content:space-between;gap:32px;padding:40px 32px;display:flex}.testimonial-quote{color:var(--text-secondary);font-size:15px;font-style:normal;line-height:1.75;position:relative}.testimonial-quote:before{content:"“";color:var(--accent);opacity:.6;margin-bottom:16px;font-family:Syne,sans-serif;font-size:48px;line-height:.8;display:block}.testimonial-author{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:24px;display:flex}.testimonial-name{font-family:Syne,sans-serif;font-size:15px;font-weight:700}.testimonial-role{color:var(--text-tertiary);letter-spacing:.04em;font-size:12px}.ai-section{background:var(--bg-base);position:relative}.ai-glow{background:radial-gradient(ellipse,var(--accent-glow)0%,transparent 70%);pointer-events:none;clip-path:inset(0);width:800px;height:400px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ai-inner{z-index:2;grid-template-columns:6fr 6fr;align-items:start;gap:80px;display:grid;position:relative}.ai-inner>div:first-child{align-self:start;position:-webkit-sticky;position:sticky;top:100px}.ai-tools{border:1px solid var(--border);opacity:0;flex-direction:column;align-self:center;gap:0;margin-top:0;transition:opacity 1s cubic-bezier(.16,1,.3,1) .2s,transform 1s cubic-bezier(.16,1,.3,1) .2s;display:flex;transform:translate(64px)}.ai-tools.visible{opacity:1;transform:translate(0)}.ai-tool{border-bottom:1px solid var(--border);transition:background var(--transition);align-items:center;gap:16px;padding:20px 24px;display:flex}.ai-tool:last-child{border-bottom:none}.ai-tool:hover{background:var(--bg-elevated)}.ai-tool-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px}.ai-tool-name{flex:1;font-family:Berkeley Mono,monospace;font-size:13px;font-weight:400}.ai-tool-desc{color:var(--text-tertiary);transition:color var(--transition);font-size:12px}.ai-tool:hover .ai-tool-desc{color:var(--accent)}.home-blog-section{background:var(--bg-base);padding:120px 0}.home-blog-header{justify-content:space-between;align-items:flex-end;margin-bottom:64px;display:flex}.home-blog-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:0;display:grid}.home-blog-empty{text-align:center;color:var(--text-tertiary);grid-column:1/-1;padding:80px 0;font-size:14px}@media(max-width:1024px){.home-blog-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.home-blog-section{padding:60px 0}.home-blog-header{flex-direction:column;align-items:flex-start;gap:24px}.home-blog-grid{grid-template-columns:1fr}}.cta-section{background:var(--bg-surface);border-top:1px solid var(--border)}.cta-inner{grid-template-columns:7fr 5fr;align-items:center;gap:80px;display:grid}.cta-form{border:1px solid var(--border);flex-direction:column;gap:0;display:flex}.form-field{border-bottom:1px solid var(--border);flex-direction:column;display:flex}.form-field:last-of-type{border-bottom:none}.form-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);padding:16px 20px 0;font-size:10px;font-weight:500}.form-input{color:var(--text-primary);background:0 0;border:none;outline:none;width:100%;padding:8px 20px 16px;font-family:Söhne,sans-serif;font-size:15px}.form-input::placeholder{color:var(--text-tertiary)}.form-submit{color:#fff;background:var(--accent-btn);cursor:none;text-align:left;transition:background var(--transition);border:none;justify-content:space-between;align-items:center;width:100%;padding:18px 24px;font-family:Söhne,sans-serif;font-size:14px;font-weight:500;display:flex}.form-submit:hover{background:var(--accent-hover)}footer{background:var(--bg-base);border-top:1px solid #ffffff1f;padding:64px 0 40px}.footer-top{grid-template-columns:3fr 2fr 2fr 2fr;gap:64px;margin-bottom:64px;display:grid}.footer-brand .logo{margin-bottom:16px;font-size:20px}.footer-brand p{color:var(--text-tertiary);max-width:320px;font-size:13px;line-height:1.6}.footer-col-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:20px;font-size:11px;font-weight:500}.footer-links{flex-direction:column;gap:12px;display:flex}.footer-links a{color:var(--text-secondary);transition:color var(--transition),transform var(--transition);font-size:14px;display:inline-block}.footer-links a:hover{color:var(--text-primary);transform:translate(4px)}.footer-scroll-top{border:1px solid var(--border);color:var(--text-tertiary);letter-spacing:.1em;cursor:pointer;transition:color var(--transition),border-color var(--transition),transform var(--transition);background:0 0;border-radius:4px;align-items:center;gap:5px;padding:6px 10px;font-family:Berkeley Mono,monospace;font-size:10px;font-weight:500;display:none}.footer-scroll-top:hover{color:var(--text-primary);border-color:var(--border-hover);transform:translateY(-2px)}.footer-bottom{border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding-top:32px;display:flex}.footer-bottom p{color:var(--text-tertiary);font-size:12px}.footer-email{color:var(--text-tertiary);transition:color var(--transition);font-family:Berkeley Mono,monospace;font-size:12px}.footer-email:hover{color:var(--accent)}.reveal{opacity:0;transition:opacity 1.1s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1);transform:translateY(28px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal.revealed{opacity:1;transform:translateY(0)}.hamburger{cursor:pointer;z-index:10001;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;padding:4px;display:none;position:relative}.hamburger span{background:var(--text-primary);transform-origin:50%;border-radius:2px;width:22px;height:2px;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .25s;display:block}.hamburger.open span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media(max-width:1024px){.hero-inner{grid-template-columns:1fr;gap:64px}.hero-visual{display:none}.text-hero{font-size:clamp(48px,7vw,72px)}.text-h1{font-size:clamp(36px,5.5vw,52px)}.text-h2{font-size:clamp(24px,3.5vw,36px)}nav{display:none}.hamburger{display:flex}.btn-cta-header,.theme-toggle-wrapper{display:none}.why-inner{grid-template-columns:1fr}.why-left{align-self:auto;position:static}.services-header{grid-template-columns:1fr;gap:24px}.services-grid{grid-template-columns:repeat(2,1fr)}.projects-grid{grid-template-columns:1fr}.projects-right{display:block}.testimonials-header{grid-template-columns:1fr;gap:24px}.testimonials-grid,.ai-inner{grid-template-columns:1fr}.ai-inner>div:first-child{align-self:auto;position:static}.cta-inner{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr 1fr;gap:40px}.ai-tools{transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)!important;transform:translateY(20px)!important}.ai-tools.visible{transform:translateY(0)!important}.reveal{transform:translateY(16px)}}@media(max-width:640px){.text-hero{font-size:clamp(40px,11vw,56px)}.text-h1{font-size:clamp(32px,9vw,44px)}.text-h2{font-size:clamp(22px,7vw,30px)}.why-section,.services-section,.projects-section,.testimonials-section,.ai-section,.cta-section,.process-section,.filters-section,.manifesto-section,.postura-section,.uso-section,.tools-section,.collab-section,.cap-section,.contact-manifesto,.featured-section,.articles-section,.related-section{padding:60px 0}.services-grid,.footer-top{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:flex-start;gap:20px}.footer-bottom>div{flex-wrap:wrap;gap:12px}.footer-scroll-top{display:flex}.hero-metrics{flex-direction:column;gap:32px}.metric{border-right:none;border-bottom:1px solid var(--border);padding:0 0 32px}.metric:last-child{border-bottom:none;padding:32px 0 0}}.mobile-menu{background:var(--bg-base);z-index:10000;opacity:0;pointer-events:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 32px;transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1);display:none;position:fixed;inset:0;transform:translateY(-12px)}.mobile-menu.open{opacity:1;pointer-events:all;display:flex;transform:translateY(0)}.mobile-nav{flex-direction:column;gap:8px;width:100%;margin-bottom:48px;display:flex}.mobile-nav-link{letter-spacing:-.02em;color:var(--text-primary);opacity:0;padding:10px 0;font-family:Syne,sans-serif;font-size:clamp(32px,9vw,44px);font-weight:700;line-height:1.15;text-decoration:none;transition:color .2s,opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.mobile-nav-link:last-child{border-bottom:none}.mobile-nav-link:hover,.mobile-nav-link.active{color:var(--accent)}.mobile-menu.open .mobile-nav-link{opacity:1;transform:translateY(0)}.mobile-menu-cta{text-align:center;opacity:0;justify-content:center;width:100%;transition:color .2s,opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1);transform:translateY(12px)}.mobile-menu.open .mobile-menu-cta{opacity:1;transition-delay:.46s;transform:translateY(0)}.mobile-menu-close{border:1px solid var(--border);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:absolute;top:20px;right:24px}.mobile-menu-close:hover{color:var(--text-primary);border-color:var(--text-primary);background:var(--bg-elevated)}.mobile-menu-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.swipe-hint{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;opacity:0;white-space:nowrap;border-radius:100px;align-items:center;gap:6px;padding:8px 16px;font-family:Syne,sans-serif;font-size:11px;font-weight:600;transition:opacity .4s;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.swipe-hint.visible{opacity:1}.mobile-menu-theme{border-top:1px solid var(--border);opacity:0;align-items:center;gap:12px;width:100%;margin-top:32px;padding-top:24px;transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(8px)}.mobile-menu.open .mobile-menu-theme{opacity:1;transition-delay:.54s;transform:translateY(0)}.mobile-menu-theme .theme-toggle-text{letter-spacing:.12em;color:var(--text-tertiary);font-size:11px;font-weight:600}#cookie-banner{z-index:9000;background:var(--bg-elevated);border:1px solid var(--border);opacity:0;width:min(680px,100vw - 48px);transition:transform .5s var(--ease-out),opacity .5s var(--ease-out);pointer-events:none;border-radius:4px;flex-direction:column;gap:20px;padding:28px 32px;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%)translateY(120px);box-shadow:0 24px 64px #00000059}#cookie-banner.visible{opacity:1;pointer-events:all;transform:translate(-50%)translateY(0)}.cookie-banner-top{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.cookie-banner-text .cookie-title{color:var(--text-primary);letter-spacing:.02em;margin-bottom:8px;font-family:Syne,sans-serif;font-size:14px;font-weight:700}.cookie-banner-text p{color:var(--text-secondary);max-width:460px;font-size:12px;line-height:1.6}.cookie-banner-text a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.cookie-banner-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cookie-btn{cursor:pointer;transition:background var(--transition),color var(--transition),opacity var(--transition);letter-spacing:.04em;white-space:nowrap;border:none;border-radius:2px;padding:10px 20px;font-family:Söhne,sans-serif;font-size:12px;font-weight:500}.cookie-btn-accept{background:var(--accent-btn);color:#fff}.cookie-btn-accept:hover{opacity:.85}.cookie-btn-reject{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.cookie-btn-reject:hover{color:var(--text-primary);border-color:var(--border-hover)}.cookie-btn-settings{color:var(--text-secondary);text-underline-offset:2px;background:0 0;padding:10px 0;text-decoration:underline}.cookie-btn-settings:hover{color:var(--text-primary)}#cookie-modal-overlay{z-index:9100;opacity:0;pointer-events:none;background:#0009;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}#cookie-modal-overlay.visible{opacity:1;pointer-events:all}#cookie-modal{background:var(--bg-elevated);border:1px solid var(--border);width:min(560px,100vw - 48px);max-height:90vh;transition:transform .4s var(--ease-out);border-radius:4px;flex-direction:column;gap:28px;padding:40px;display:flex;overflow-y:auto;transform:translateY(16px)}#cookie-modal-overlay.visible #cookie-modal{transform:translateY(0)}.cookie-modal-header{justify-content:space-between;align-items:flex-start;display:flex}.cookie-modal-header h3{color:var(--text-primary);font-family:Syne,sans-serif;font-size:18px;font-weight:700}.cookie-modal-close{cursor:pointer;color:var(--text-tertiary);transition:color var(--transition);background:0 0;border:none;padding:0;font-size:20px;line-height:1}.cookie-modal-close:hover{color:var(--text-primary)}.cookie-modal-desc{color:var(--text-secondary);font-size:13px;line-height:1.65}.cookie-category{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 0;display:flex}.cookie-category-info h5{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.cookie-category-info p{color:var(--text-secondary);max-width:360px;font-size:12px;line-height:1.55}.cookie-toggle{flex-shrink:0;width:44px;height:24px;position:relative}.cookie-toggle input{opacity:0;width:0;height:0;position:absolute}.cookie-toggle-track{background:var(--border);cursor:pointer;border-radius:12px;transition:background .25s;position:absolute;inset:0}.cookie-toggle input:checked+.cookie-toggle-track{background:var(--accent)}.cookie-toggle-track:after{content:"";width:18px;height:18px;transition:transform .25s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.cookie-toggle input:checked+.cookie-toggle-track:after{transform:translate(20px)}.cookie-toggle input:disabled+.cookie-toggle-track{opacity:.5;cursor:not-allowed}.cookie-modal-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}:lang(en) .manifesto-line-inner,:lang(ca) .manifesto-line-inner{font-size:clamp(32px,4vw,60px)}@media(max-width:768px){:lang(en) .manifesto-line-inner,:lang(ca) .manifesto-line-inner{font-size:clamp(28px,8vw,44px)}}@media(max-width:320px){.mobile-nav-link{padding:6px 0;font-size:clamp(24px,7.5vw,32px)}.mobile-nav{gap:4px;margin-bottom:24px}.mobile-menu{justify-content:flex-start;padding:80px 20px 24px;overflow-y:auto}.hero-title{font-size:clamp(36px,12vw,56px)}.contact-hero-title{font-size:clamp(34px,11vw,52px)}.metric-num{font-size:clamp(36px,10vw,52px)}.footer-top{grid-template-columns:1fr;gap:32px}.cookie-banner-actions{flex-direction:column}.cookie-btn{text-align:center;width:100%}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}

/* ── FAQ styles (home) ──────────────────────────── */
.faq-section{border-top:1px solid var(--border);padding:100px 0 80px}
.faq-title{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:48px;font-size:clamp(28px,4vw,48px);font-weight:700}
.faq-list{flex-direction:column;gap:0;width:100%;display:flex}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:first-child{border-top:1px solid var(--border)}
.faq-question{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;list-style:none;display:flex;width:100%;background:0 0;border:none;text-align:left;color:var(--text-primary);font-family:inherit}
.faq-question::-webkit-details-marker{display:none}
.faq-question .faq-q-text,.faq-question>span:first-child{color:var(--text-primary);flex:1;font-size:clamp(15px,1.6vw,17px);font-weight:600;line-height:1.4}
.faq-icon{border:1px solid var(--border);width:28px;height:28px;color:var(--text-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:300;line-height:1;transition:transform .25s,border-color .25s,color .25s;display:flex;margin-left:auto}
.faq-item[open] .faq-icon{border-color:var(--accent);color:var(--accent);transform:rotate(45deg)}
.faq-answer{padding:0 0 24px}
.faq-answer p{color:var(--text-secondary);margin:0;font-size:clamp(14px,1.4vw,15px);line-height:1.75}
.faq-question:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:768px){.faq-section{padding:64px 0 56px}.faq-question .faq-q-text{font-size:15px}.faq-answer p{font-size:14px}}

/* ── Back to top button ─────────────────────────── */
.back-to-top{z-index:150;background:var(--accent);border:1px solid var(--accent);width:44px;height:44px;color:#fff;cursor:pointer;opacity:0;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .3s,transform .3s,background .2s,border-color .2s;display:flex;position:fixed;bottom:32px;right:max(32px,calc((100vw - 1280px)/2 + 32px));transform:translateY(16px)}
.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}

/* overflow-fix-mobile */
@media(max-width:768px){
  .hero-sub{max-width:100%}
  .why-inner{grid-template-columns:1fr}
  .ai-inner{grid-template-columns:1fr}
  .ai-glow{display:none}
  .hero-inner{grid-template-columns:1fr!important;gap:0!important}
  section.hero{min-height:auto!important;padding-bottom:24px!important}
  .hero-visual{display:flex!important;width:100%!important;overflow:hidden!important;margin-top:24px!important}
  .hero-visual-frame{background:none!important;border:none!important;box-shadow:none!important;padding:0!important;min-height:0!important}
  .hero-visual-frame::before{display:none!important}
  .visual-top{display:none!important}
  .visual-divider{display:none!important}
  .visual-bottom{padding:0!important}
  .visual-tags{display:flex!important;flex-wrap:wrap!important;gap:6px!important;padding:0!important}
  .visual-tag{font-size:10px!important;padding:4px 10px!important;letter-spacing:0.06em!important}
  .hero-metrics{display:none!important}
  .hero-headline{margin-bottom:24px}
  .hero-sub{margin-bottom:28px}
  .hero-actions{margin-bottom:0}
}
@media(max-width:480px){
  .hero-sub{font-size:14px}
}

/* grid-fix-mobile */
@media(max-width:900px){
  .why-inner{grid-template-columns:1fr;gap:48px}
  .why-left{position:static}
  .ai-inner{grid-template-columns:1fr;gap:40px}
  .ai-inner>div:first-child{position:static}
  .home-services-grid{grid-template-columns:1fr}
  .home-projects-grid{grid-template-columns:1fr}
}

/* === PREFERS-REDUCED-MOTION (accesibilidad) === */
@media(prefers-reduced-motion:reduce){
  *,::before,::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* Fix: prevent horizontal scroll caused by hero-visual overflow */
body{overflow-x:hidden}


/* === FIX: Paddings de secciones home reducidos en móvil === */
@media (max-width: 480px) {
  .why-section, .services-section, .projects-section,
  .testimonials-section, .ai-section, .cta-section,
  .process-section, .filters-section, .manifesto-section,
  .postura-section, .uso-section, .tools-section,
  .collab-section, .cap-section, .contact-manifesto,
  .featured-section, .articles-section, .related-section {
    padding: 48px 0 !important;
  }
}
@media (max-width: 375px) {
  .why-section, .services-section, .projects-section,
  .testimonials-section, .ai-section, .cta-section,
  .process-section, .filters-section, .manifesto-section,
  .postura-section, .uso-section, .tools-section,
  .collab-section, .cap-section, .contact-manifesto,
  .featured-section, .articles-section, .related-section {
    padding: 40px 0 !important;
  }
}


/* === FIX: projects-right visible en móvil === */
@media (max-width: 640px) {
  .projects-right { display: block !important; margin-top: 16px; }
  .projects-grid { grid-template-columns: 1fr !important; gap: 16px; }
  .projects-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .projects-header .btn-ghost { align-self: flex-start; }
}



/* === FIX v9: Section-specific line-inner classes — hidden by default, revealed by JS === */
/* Base state: hidden (same as svc-line-inner) */
.services-line-inner,
.testimonials-line-inner,
.ai-line-inner,
.cta-line-inner,
.projects-line-inner,
.faq-line-inner {
  opacity: 0;
  transform: translateY(105%);
  display: block;
  transition: opacity 1.6s cubic-bezier(.16,1,.3,1), transform 1.6s cubic-bezier(.16,1,.3,1);
}
/* Revealed state */
.services-line-inner.revealed,
.testimonials-line-inner.revealed,
.ai-line-inner.revealed,
.cta-line-inner.revealed,
.projects-line-inner.revealed,
.faq-line-inner.revealed {
  opacity: 1;
  transform: translateY(0);
}
/* Wrapper needs overflow:hidden to clip the sliding text */
.services-line,
.testimonials-line,
.ai-line,
.cta-line,
.projects-line,
.faq-line {
  overflow: hidden;
  display: block;
}
/* No CSS fallback — JS handles all reveals */

/* === FIX v8: Home — reveal fallback en móvil (solo si JS no ha animado) === */
/* Reducir duración de animación en móvil para que se sienta más ágil */
@media (max-width: 768px) {
  .svc-line-inner,
  .why-line-inner,
  .services-line-inner,
  .testimonials-line-inner,
  .ai-line-inner,
  .cta-line-inner,
  .projects-line-inner,
  .faq-line-inner {
    transition: opacity 1.6s cubic-bezier(.16,1,.3,1), transform 1.6s cubic-bezier(.16,1,.3,1) !important;
  }
  .svc-line-inner.revealed,
  .why-line-inner.revealed {
    opacity: 1 !important;
    transform: none !important;
  }
  /* Fallback: si después de 4s el JS no ha animado, mostrar igual */
  .svc-line-inner:not(.revealed),
  .why-line-inner:not(.revealed) {
    animation: mobileRevealFallback 0.5s cubic-bezier(0.16, 1, 0.3, 1) 4s forwards;
  }
}
@keyframes mobileRevealFallback {
  to { opacity: 1; transform: none; }
}

/* === FIX v8: AI+HI layout vertical en móvil === */
/* En desktop: AI+HI en horizontal (comportamiento original) */
.why-stat-number--stacked {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0;
  line-height: 1;
}
.aihi-line,
.aihi-plus {
  display: inline;
}

/* En móvil: AI / + / HI en vertical, cada uno en su línea */
@media (max-width: 768px) {
  .why-stat-number--stacked {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
    line-height: 1.05 !important;
  }
  .aihi-line,
  .aihi-plus {
    display: block !important;
    line-height: 1.05 !important;
  }
  .aihi-plus {
    font-size: 0.85em !important;
    color: var(--metric-color) !important;
  }
}

/* === FIX v8: project-card.large imagen visible en móvil === */
/* En desktop: height:100% funciona porque el card ocupa 2 filas (grid-row:span 2) */
/* En móvil (1 columna): el contenedor no tiene altura definida → height:100% = 0 */
/* Solución: restaurar aspect-ratio en móvil para que la imagen tenga altura */
@media (max-width: 1024px) {
  .project-card.large {
    grid-row: unset !important;
  }
  .project-card.large .project-img {
    height: auto !important;
    aspect-ratio: 16/9 !important;
    min-height: 240px !important;
  }
}

/* === FIX v8: CTA section — título y párrafo cortados en móvil === */
/* Problema: .svc-line tiene overflow:hidden + font-size demasiado grande → corta letras */
/* Solución: reducir font-size + overflow:visible + forzar visibilidad de animación */
@media (max-width: 768px) {
  .cta-section .svc-line {
    overflow: visible !important;
  }
  .cta-section .svc-line-inner {
    opacity: 1 !important;
    transform: none !important;
    white-space: normal !important;
  }
  .cta-section .cta-headline {
    font-size: clamp(28px, 8vw, 40px) !important;
    overflow: visible !important;
    line-height: 1.1 !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
  .cta-inner > div:first-child {
    overflow: visible !important;
    max-width: 100% !important;
  }
  .cta-section p {
    max-width: 100% !important;
    width: 100% !important;
  }
}
@media (max-width: 480px) {
  .cta-section .cta-headline {
    font-size: clamp(24px, 7.5vw, 34px) !important;
  }
}
/* === FIX: Espaciado compacto entre secciones en móvil === */
@media (max-width: 768px) {
  .why-section,
  .services-section,
  .projects-section,
  .testimonials-section,
  .ai-section,
  .cta-section,
  .process-section {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
  }
  .why-inner {
    gap: 24px !important;
  }
  .why-right {
    margin-top: 0 !important;
  }
  .services-header,
  .projects-header,
  .testimonials-header,
  .ai-header,
  .home-blog-header,
  .process-header,
  .faq-title {
    margin-bottom: 24px !important;
  }
}


/* Hero headline size override — titular largo, fuente intermedia */
.hero .text-hero{font-size:clamp(44px,5.5vw,68px)!important;line-height:1.05!important}
@media(max-width:1024px){.hero .text-hero{font-size:clamp(38px,6vw,58px)!important;line-height:1.05!important}}
@media(max-width:640px){.hero .text-hero{font-size:clamp(32px,9vw,46px)!important;line-height:1.08!important}}

/* Hero tagline override — Syne bold, más grande que el párrafo descriptivo */
.hero-tagline{font-family:Syne,sans-serif!important;font-size:clamp(22px,2.8vw,36px)!important;font-weight:700!important;color:var(--text-primary)!important;letter-spacing:-.02em!important;overflow:hidden;display:block}
/* Hero tagline — reveal animation after headline (last line at 0.9s + gap) */
.hero-tagline-inner{opacity:0;display:block;transform:translateY(20px);animation:slideUp 1.2s cubic-bezier(.16,1,.3,1) 1.1s forwards}
@media(max-width:768px){.hero-tagline{font-size:clamp(18px,5vw,24px)!important}}

/* Hero headline — animación para líneas 4 y 5 (antes solo había 3) */
.hero-headline.visible .line:nth-child(4) .line-inner{opacity:1;transform:translateY(0);transition-delay:.7s}
.hero-headline.visible .line:nth-child(5) .line-inner{opacity:1;transform:translateY(0);transition-delay:.9s}

/* Hero headline — última línea con más espacio para evitar recorte de descenders */
.hero-headline .line:last-child{padding-bottom:.25em;margin-bottom:-.25em}

/* Hero subtítulo — peso reducido */
.hero-sub{font-weight:300!important}

/* Hero headline — no se puede también en azul */
.hero-headline .line:nth-child(4) .line-inner{color:var(--accent)!important}

/* === BLOQUE POR QUÉ EMOVERE — FIXES === */

/* 1. Titular más pequeño + margen inferior ampliado */
.why-headline{font-size:clamp(28px,3.2vw,48px)!important;line-height:1.05!important;margin-bottom:48px!important}

/* 2. Texto descriptivo más ligero — override Footer.CpvDVcep.css font-weight:400 */
.why-section .why-sub{font-weight:300!important}
.why-section .why-sub.text-body{font-weight:300!important}
.why-section .text-body{font-weight:300!important}
.why-section .text-body-sm{font-weight:300!important}
.why-section .text-body-lg{font-weight:300!important}
.why-stat-text p{font-weight:300!important}

/* Servicios — texto descriptivo más ligero */
.services-section .svc-sub{font-weight:300!important}
.services-section .text-body{font-weight:300!important}
.services-section .text-body-sm{font-weight:300!important}


/* 4. Márgenes correctos para stats 3 y 4 */
.why-stat:nth-child(3),
.why-stat:nth-child(4) {
  padding-top:28px!important;
  padding-bottom:28px!important;
}

/* 5. Columna izquierda fija para que el texto de la derecha empiece siempre en el mismo punto.
   El font-size base es clamp(40px,4vw,56px) — a 56px, "Partner" mide ~280px.
   Usamos 240px como ancho fijo: suficiente para Partner/Soci sin exceso para 25+/3. */
.why-stat {
  grid-template-columns: 240px 1fr !important;
}



/* === BLOQUE TESTIMONIOS — FIXES ===
   - Titular más pequeño para menos líneas
   - Grid: columna izquierda más estrecha, derecha más ancha y desplazada
   - Texto derecho con font-weight 300
*/
.testimonials-headline {
  font-size: clamp(32px, 4.5vw, 60px) !important;
  line-height: 1.05 !important;
}
.testimonials-header {
  grid-template-columns: 8fr 3fr !important;
  gap: 48px !important;
  align-items: center !important;
}
.testimonials-header > p.text-body {
  padding-left: 0 !important;
  max-width: 280px !important;
  text-align: right !important;
  margin-left: auto !important;
}
.testimonials-section .text-body,
.testimonials-section .text-secondary,
.testimonials-section p.text-body {
  font-weight: 300 !important;
}


/* =============================================
   AI SECTION — TYPOGRAPHY FIX
   Problema: .text-h1 en ai-headline es demasiado
   grande (clamp 40-64px) para un titular largo.
   Reducimos a un tamaño que cabe en 3-4 líneas
   dentro del layout de dos columnas, y aligeramos
   el peso del texto descriptivo a 300.
   ============================================= */
.ai-section .ai-headline {
  font-size: clamp(28px, 3.2vw, 46px) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
}
.ai-section .text-body,
.ai-section p.text-body,
.ai-section p.text-secondary {
  font-weight: 300 !important;
}


/* AI section: widen left column so headline wraps less — DESKTOP ONLY */
@media (min-width: 901px) {
  .ai-section .ai-inner {
    grid-template-columns: 7fr 5fr !important;
    gap: 64px !important;
  }
}


/* AI headline: block display so overflow:hidden + translateY animation works
   (same as hero and other section headlines) */
.ai-section .ai-headline .svc-line {
  display: block !important;
  overflow: hidden !important;
  padding-bottom: .12em !important;
  margin-bottom: -.12em !important;
}
.ai-section .ai-headline .svc-line-inner {
  display: block !important;
  /* Initial state comes from base .svc-line-inner rule: opacity:0; translateY(105%) */
}
.ai-section .ai-headline .svc-line-inner.revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
}


/* =============================================
   CTA / CONTACT SECTION — TYPOGRAPHY FIX
   "¿Por dónde empezamos?" is a short 2-line
   headline — give it a display size that feels
   intentional, not accidentally huge.
   ============================================= */
.cta-section .cta-headline {
  font-size: clamp(36px, 4.5vw, 64px) !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.025em !important;
}
/* svc-line stays block here so each word group
   sits on its own line (intentional 2-line split) */
.cta-section .cta-headline .svc-line {
  display: block !important;
  overflow: hidden !important;
}
.cta-section .cta-headline .svc-line-inner {
  display: block !important;
}
/* Body text lighter weight */
.cta-section .text-body,
.cta-section p.text-secondary {
  font-weight: 300 !important;
}


/* FAQ title — matches other section h2s at 64px */
.faq-title {
  font-size: clamp(28px, 5vw, 48px) !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
  margin-bottom: 48px !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}


/* AI tools panel — taller rows with more breathing room */
.ai-tools .ai-tool {
  padding: 28px 28px !important;
  min-height: 72px !important;
}
.ai-tools .ai-tool-name {
  font-size: 14px !important;
}
.ai-tools .ai-tool-desc {
  font-size: 13px !important;
}

/* Servicios hero title — slightly smaller to balance with the right panel */
.servicios-page .page-hero-title,
body.page-servicios .page-hero-title {
  font-size: clamp(44px, 5.5vw, 78px) !important;
}

/* Servicios hero desc — lighter weight */
.page-hero-desc {
  font-weight: 300 !important;
}

/* Söhne Leicht — ensure weight 300 is available globally */
@font-face {
  font-family: 'Söhne';
  src: url(/fonts/test-soehne-leicht.woff2) format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* Servicios hero — descriptive text lighter weight */
.visual-desc {
  font-weight: 300 !important;
}


/* === FIX: reglas .revealed que faltaban en el CSS original === */
.why-line-inner.revealed {
  opacity: 1;
}
.why-sub.revealed,
.why-stat-delayed.revealed {
  opacity: 1;
  transform: translateY(0);
}
.services-line-inner.revealed,
.testimonials-line-inner.revealed,
.ai-line-inner.revealed,
.cta-line-inner.revealed,
.contact-line-inner.revealed {
  opacity: 1;
  transform: translateY(0);
}
.ai-tools.revealed {
  opacity: 1;
  transform: translate(0);
}
.svc-sub {
  transform: translateY(24px) !important;
}
.svc-sub.revealed {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* ── Mobile: show tags only, hide metrics frame ── */
@media (max-width: 1024px) {
  .hero-visual {
    display: block !important;
  }
  .hero-visual-frame {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  .visual-top {
    display: none !important;
  }
  .visual-divider {
    display: none !important;
  }
  .visual-bottom {
    padding: 0 !important;
  }
  .visual-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0;
  }
  .visual-tag {
    font-size: 10px !important;
    padding: 4px 10px !important;
    letter-spacing: 0.06em;
    border-radius: 2px;
  }
}

/* ── Mobile 768px: fix why-headline overflow + reduce spacing ── */
@media (max-width: 768px) {
  .why-headline {
    font-size: clamp(26px, 7vw, 36px) !important;
    line-height: 1.08 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
  }
  .why-sub {
    max-width: 100% !important;
  }
  .why-section .container {
    overflow-x: hidden !important;
    max-width: 100% !important;
  }
  .why-inner {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  .why-left {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
}

/* ── Mobile 375px: tighter headline ── */
@media (max-width: 375px) {
  .why-headline {
    font-size: clamp(24px, 6.5vw, 30px) !important;
    line-height: 1.08 !important;
  }
}

/* ── Reduce gap between hero tags and why-section on mobile ── */
@media (max-width: 768px) {
  section.hero {
    padding-bottom: 16px !important;
  }
  .why-section {
    padding-top: 32px !important;
  }
}

/* ── Global: prevent horizontal overflow on mobile ── */
@media (max-width: 768px) {
  html {
    overflow-x: hidden !important;
    overflow-x: clip !important;
    max-width: 100vw !important;
  }
  body {
    overflow-x: hidden !important;
    /* No max-width/position on body — breaks fixed mobile menu on iOS */
  }
  /* Fix: collapse why-inner grid to single column on mobile */
  .why-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  /* Fix: collapse why-stat internal grid to single column on mobile */
  .why-stat {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 24px 16px !important;
    align-items: flex-start !important;
  }
  .why-stat-number {
    font-size: clamp(32px, 8vw, 44px) !important;
  }
  .why-stat-title {
    font-size: 16px !important;
  }
  .why-inner > * {
    min-width: 0 !important;
  }
  .why-section,
  .why-section .container,
  .why-left {
    max-width: 100% !important;
    overflow-x: hidden !important;
    min-width: 0 !important;
  }
  .why-headline {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
    
    -webkit-
  }
  .why-sub {
    max-width: 100% !important;
    word-break: break-word !important;
    min-width: 0 !important;
  }
  /* Hide hero-glow on mobile — it extends to 1365px and causes horizontal scroll */
  .hero-glow {
    display: none !important;
  }
}

/* ── Global: hero-glow causes horizontal scroll — clip at section level ── */
section.hero {
  overflow: hidden !important;
}

/* ── iOS Safari fix: overflow-x:clip is more reliable than hidden on iOS ── */
/* NOTE: position:relative on body was removed — it blocks touch events on fixed
   children (mobile menu) when body.overflow:hidden is set by JS on iOS Safari */
html {
  overflow-x: hidden;
  overflow-x: clip; /* progressive enhancement — Safari 16+ */
}
body {
  overflow-x: hidden;
  /* No position:relative here — it breaks fixed mobile menu on iOS */
}

/* ── Menu open: prevent body scroll without breaking fixed mobile menu ── */
/* Applied to <html> element (not body) to avoid iOS fixed-position issues */
html.menu-open {
  overflow: hidden !important;
}
html.menu-open body {
  overflow: hidden !important;
  /* touch-action:none prevents scroll on iOS without affecting fixed children */
  touch-action: none;
}

/* ── Global: prevent horizontal overflow from hero animation on mobile ── */
@media (max-width: 768px) {
  section.hero {
    overflow: hidden !important;
  }
  .hero-inner {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .hero-visual {
    overflow: hidden !important;
    max-width: 100% !important;
    animation: none !important;
    opacity: 1 !important;
  }
}

/* ── Mobile overflow fixes: ai-glow, testimonials, projects ── */
@media (max-width: 768px) {
  /* ai-glow is 800px wide — hide on mobile like hero-glow */
  .ai-glow {
    display: none !important;
  }

  /* ai-section: clip overflow at section level */
  .ai-section {
    overflow: hidden !important;
  }

  /* ai-inner: force single column on mobile — override desktop 7fr/5fr rule */
  .ai-inner,
  .ai-section .ai-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* ai-inner children need min-width:0 to shrink properly */
  .ai-inner > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* ai-headline: reduce font size on mobile */
  .ai-headline,
  .ai-section .ai-headline {
    font-size: clamp(28px, 7.5vw, 36px) !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    
    -webkit-
    max-width: 100% !important;
  }

  /* ai-tools: prevent overflow from fixed width */
  .ai-tools {
    max-width: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  /* testimonials-header: ensure children don't overflow */
  .testimonials-section {
    overflow: hidden !important;
  }
  .testimonials-header {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .testimonials-header > p.text-body {
    padding-left: 0 !important;
    max-width: 100% !important;
  }
  .testimonials-headline {
    font-size: clamp(36px, 10vw, 56px) !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  /* project-img: clip overflow */
  .project-img {
    overflow: hidden !important;
    max-width: 100% !important;
  }

  /* cta-section: collapse to single column + fix overflow */
  .cta-section {
    overflow: hidden !important;
  }
  .cta-inner,
  .cta-section .cta-inner {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .cta-inner > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  /* cta-headline: smaller font on mobile so it fits */
  .cta-headline,
  .cta-section .cta-headline {
    font-size: clamp(28px, 8vw, 38px) !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    max-width: 100% !important;
  }
  .cta-section .cta-headline .svc-line {
    overflow: visible !important;
  }

  /* faq-section: clip overflow + title mobile size */
  .faq-section {
    overflow: hidden !important;
  }
  .faq-title {
    font-size: clamp(24px, 7vw, 34px) !important;
    margin-bottom: 32px !important;
  }

  /* Global: all sections clip overflow on mobile */
  section {
    overflow-x: hidden !important;
  }
}

/* ── HOME HERO: push hero-inner down + faster scroll indicator ── */
section.hero .hero-inner {
  padding-top: 48px;
}
/* Reduce scroll-indicator-dot animation delay from 1.2s to 0.3s */
section.hero .scroll-indicator-dot {
  animation-delay: 0.8s !important;
}
/* Fade in scroll indicator after content (0.6s delay) */
section.hero .scroll-indicator {
  opacity: 0;
  animation: fadeIn 0.6s ease-out 0.6s forwards !important;
}

/* ── Override: force correct menu font-size on 375px viewports (iPhone SE) ── */
@media (max-width: 375px) {
  .mobile-nav-link {
    font-size: clamp(17px, 5.5vw, 22px) !important;
    padding: 4px 0 !important;
  }
}

@keyframes eyebrowReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.section-eyebrow.reveal{opacity:0;transform:translateY(20px);transition:none}
.section-eyebrow.reveal.revealed{animation:eyebrowReveal 0.8s cubic-bezier(.16,1,.3,1) both;opacity:1;transform:none;transition:none}
