/* Marca original: sin marco, padding ni fondo añadido. */
.rubik-brand img { background:transparent; padding:0; border:0; border-radius:50%; object-fit:contain; box-shadow:none; }
.rubik-brand:hover img { filter:drop-shadow(0 0 8px #55c9ff36); }
.rubik-header.is-scrolled { background:#0b1220f2; }
.rubik-footer .rubik-brand img { width:54px; height:54px; }
/* Servicios: composición editorial e ilustraciones de cada capacidad. */
#servicios { position:relative; overflow:hidden; background:radial-gradient(ellipse at 5% 0,#67cba80a,transparent 40%),radial-gradient(ellipse at 95% 40%,#7e8cec0a,transparent 45%),var(--surface); }
#servicios>.container { position:relative; }
#servicios .section-heading { max-width:none; display:grid; grid-template-columns:1.15fr 1fr; column-gap:70px; text-align:left; margin-bottom:46px; }
#servicios .section-heading .section-kicker { grid-column:1/-1; margin:0 0 18px; }
#servicios .section-heading h2 { margin:0; font-size:clamp(2.3rem,3.9vw,3.55rem); letter-spacing:-.055em; }
#servicios .section-heading>p:last-child { align-self:end; margin:0; padding:0 0 5px 25px; border-left:1px solid var(--line); font-size:.95rem; line-height:1.85; max-width:460px; }
#servicios .service-grid { gap:25px; }
.service-card { --service-color:#84efc2; --service-glow:#75f1bb18; padding:0; gap:0; border-radius:19px; background:var(--bg); box-shadow:0 9px 30px #10203d06; overflow:hidden; }
.service-cyan { --service-color:#87d9f2; --service-glow:#87d9f21b; }.service-violet { --service-color:#b1a6ff; --service-glow:#b1a6ff22; }.service-amber { --service-color:#e9c78c; --service-glow:#e9c78c1c; }.service-blue { --service-color:#94b8ff; --service-glow:#94b8ff1c; }
.service-card:before { display:none; }
.service-card:hover { background:var(--bg); border-color:var(--green-ink); box-shadow:0 18px 45px #07152914; }
.service-visual { position:relative; background:radial-gradient(ellipse at 50% 50%,var(--service-glow),transparent 70%),linear-gradient(145deg,#101e30,#0b1523); color:var(--service-color); border-bottom:1px solid #ffffff0d; padding:9px 0 0; height:171px; overflow:hidden; isolation:isolate; }
.service-visual:after { content:""; position:absolute; bottom:0; left:12%; right:12%; height:1px; background:linear-gradient(90deg,transparent,var(--service-color),transparent); opacity:.35; }
.service-visual>svg { display:block; width:100%; height:100%; transition:transform .45s ease; }
.service-card:hover .service-visual>svg { transform:translateY(-3px) scale(1.025); }
.service-card-body { display:flex; flex-direction:column; padding:25px 27px 23px; flex:1; min-width:0; }
.service-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px; }
.service-icon { width:42px; height:42px; margin:0; border-radius:11px; border:1px solid var(--line); color:var(--green-ink); background:var(--surface); flex-shrink:0; }
.service-index { font-size:.62rem; letter-spacing:.09em; color:var(--muted); }
.service-card h3 { font-size:1.24rem; font-weight:700; line-height:1.3; letter-spacing:-.035em; margin:0; }
.service-card p { font-size:.88rem; line-height:1.8; margin:14px 0 22px; }
.service-card .service-tags { margin-top:auto; margin-bottom:20px; gap:6px; }
.service-card .service-tags span { font-size:.7rem; padding:5px 9px; background:var(--surface); border-color:var(--line); }
.service-card .service-quote { font-size:.83rem; min-height:48px; margin-top:0; padding-top:15px; }
html[data-theme=dark] .service-card { background:#0d1522; border-color:#29364a; box-shadow:0 10px 35px #0001; }
html[data-theme=dark] .service-card:hover { background:#0d1522; border-color:var(--service-color); box-shadow:0 18px 45px #0003; }
html[data-theme=dark] .service-card .service-icon { color:var(--service-color); background:#ffffff04; border-color:#ffffff15; }
html[data-theme=dark] .service-card .service-quote { color:var(--service-color); }
/* Portadas: marco estable, skeleton discreto y revelado después de decodificar. */
.case-card { display:flex; flex-direction:column; }
.case-cover { position:relative; display:block; flex-shrink:0; width:100%; aspect-ratio:16/9; background:var(--surface); isolation:isolate; border-bottom:1px solid var(--line); }
.case-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; z-index:1; opacity:0; transform:scale(1.025); transition:opacity .4s ease,transform .6s ease; }
.case-cover.is-loaded img { opacity:1; transform:scale(1); }
.case-card:hover .case-cover.is-loaded img { transform:scale(1.035); }
.case-image-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:radial-gradient(ellipse at 50% 50%,#8297b00b,transparent 65%),var(--surface); color:var(--muted); }
.case-image-placeholder svg { width:43px; height:43px; stroke:currentColor; stroke-width:1.2; fill:none; opacity:.36; }
.case-image-status { font-size:.76rem; line-height:1.6; text-align:center; padding-inline:20px; color:var(--muted); }
.case-cover.is-loading .case-image-placeholder svg,.case-cover.is-loading .case-image-status { visibility:hidden; }
.case-cover.is-loading:after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(100deg,transparent 15%,#8ca2be12 45%,transparent 75%); transform:translateX(-100%); animation:case-image-shimmer 1.7s ease-in-out infinite; pointer-events:none; }
.case-cover.is-loaded .case-image-placeholder { visibility:hidden; }
.case-cover.is-failed img { opacity:0; }
.case-cover:not(.is-loaded) img { pointer-events:none; }
.case-image-retry { display:inline-flex; min-height:44px; padding:7px 16px; border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--green-ink); font-size:.78rem; cursor:pointer; }
.case-copy { display:flex; flex-direction:column; flex:1; }
.case-quote { margin-top:auto; }
.case-description { margin-bottom:22px; }
@keyframes case-image-shimmer { to { transform:translateX(100%); } }
@media(max-width:991px) { #servicios .section-heading { column-gap:35px; }#servicios .section-heading h2 { font-size:2.6rem; }#servicios .section-heading>p:last-child { font-size:.88rem; padding-left:22px; }#servicios .service-grid { gap:20px; }.service-visual { height:165px; }.service-card-body { padding:24px; } }
@media(max-width:767px) { #servicios .section-heading { display:block; }#servicios .section-heading h2 { margin-bottom:22px; }#servicios .section-heading>p:last-child { padding:0; border:0; max-width:570px; } }
@media(max-width:575px) { #servicios .section-heading { margin-bottom:32px; }#servicios .section-heading h2 { font-size:2.4rem; }#servicios .service-grid { gap:23px; }.service-visual { height:166px; }.service-card-body { padding:25px; }.service-card h3 { font-size:1.3rem; }.service-card p { font-size:.91rem; }.service-index { font-size:.65rem; }.case-image-status { font-size:.8rem; }.rubik-footer .rubik-brand img { width:48px; height:48px; } }
@media(max-width:375px) { #servicios .section-heading h2 { font-size:2.1rem; }.service-visual { height:143px; }.service-card-body { padding:22px; }.service-card h3 { font-size:1.17rem; } }
@media(prefers-reduced-motion:reduce) { .case-cover.is-loading:after { animation:none; transform:none; }.case-cover img,.service-visual>svg { transition:none; }.case-card:hover .case-cover.is-loaded img,.service-card:hover .service-visual>svg { transform:none; } }
