/* VLOOP STUDIO — Estilos del sitio público (portado de la Home V4 "inmersión fluida") */
/* Fuentes alojadas en el dominio (OFL). Inter variable cubre 200–900. */
@font-face{font-family:'Inter';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/inter-latin-ext.woff2) format('woff2');
    unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2) format('woff2');
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212}
/* Tonos de texto recalibrados para el fondo azul (WCAG AA ≥ 4.5:1 incluso en
   la zona más clara del degradado). --primary/--secondary quedan para fondos
   y bordes; para texto en color se usan --link y los degradados --grad-*. */
:root{
    --primary:#3B82F6; --primary-dark:#2563EB; --secondary:#8B5CF6; --accent:#10B981;
    --darker:#020617; --slate-900:#0F172A; --slate-800:#1E293B; --slate-700:#334155;
    --slate-600:#AEBBD0; --slate-500:#AEBBD0; --slate-400:#B8C4D6; --slate-300:#D3DCE8;
    --slate-200:#E2E8F0; --slate-100:#F1F5F9; --white:#FFFFFF;
    --link:#9CCBFF; --check:#5EEAB4; --field-border:#5E6C8A;
    --btn-grad:linear-gradient(135deg,#2563EB,#7C3AED);
    --grad-text:linear-gradient(120deg,#7FB2FF,#B79CFF);
    --grad-text-sm:linear-gradient(120deg,#9CCBFF,#C9BBFF);
    --ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:100px}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
    background:
        radial-gradient(1100px 700px at 12% -8%, rgba(59,130,246,.18), transparent 60%),
        radial-gradient(900px 650px at 100% 0%, rgba(139,92,246,.16), transparent 55%),
        linear-gradient(180deg, #283760 0%, #24325A 45%, #1F2C51 100%);
    background-attachment:fixed;
    color:var(--slate-100);line-height:1.6;overflow-x:hidden;position:relative;-webkit-font-smoothing:antialiased}
::selection{background:rgba(139,92,246,.45);color:#fff}
a{text-decoration:none;color:inherit}

/* ===== Accesibilidad ===== */
:focus-visible{outline:2px solid #9CCBFF;outline-offset:3px;border-radius:6px}
[tabindex="-1"]:focus{outline:none}
.skip-link{position:absolute;left:16px;top:-80px;z-index:10002;padding:12px 18px;border-radius:10px;
    background:#fff;color:#0B1224;font-weight:700;transition:top .2s}
.skip-link:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
::placeholder{color:var(--slate-500);opacity:1}
/* Enlaces dentro de texto: subrayados, no solo diferenciados por color (1.4.1). */
main p a:not(.btn),main li a:not(.btn),.form-note a,.prose a,.blog-faq-a a,.blog-article blockquote a{
    text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
main p a:not(.btn):hover,main li a:not(.btn):hover{text-decoration-thickness:2px}

.grain-overlay{position:fixed;inset:0;pointer-events:none;opacity:.045;z-index:2;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='2.5' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.scroll-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:0 50%;will-change:transform;z-index:10000;background:linear-gradient(90deg,var(--primary),var(--secondary),var(--accent))}

.container{max-width:1200px;margin:0 auto;padding:0 32px;position:relative;z-index:5}
.content{position:relative;z-index:5}

/* ===== Header ===== */
header.site{position:fixed;top:0;left:0;right:0;z-index:9998;padding:18px 0;border-bottom:1px solid transparent;transition:padding .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease)}
header.site.scrolled{padding:11px 0;background:rgba(4,7,18,.55);backdrop-filter:blur(24px) saturate(180%);border-bottom-color:rgba(255,255,255,.06)}
.hd{display:flex;justify-content:space-between;align-items:center}
.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.4px;font-size:18px;color:#fff}
.brand img{height:32px}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-add-mobile{display:none}
.nav-sep{width:1px;height:22px;background:rgba(255,255,255,.14);flex-shrink:0}
.nav-dir{color:var(--slate-200)!important}
.nav-cta.ghost{background:transparent;border:1px solid rgba(255,255,255,.18);box-shadow:none;color:var(--slate-200)}
.nav-cta.ghost:hover{border-color:var(--link);color:#fff}
.nav-links a{position:relative;color:var(--slate-300);font-weight:500;font-size:14.5px;transition:color .3s}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;height:2px;width:0;background:linear-gradient(90deg,var(--primary),var(--secondary));transition:width .35s var(--ease)}
.nav-links a:hover{color:#fff}.nav-links a:hover::after{width:100%}
.nav-cta{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#fff;padding:11px 22px;border-radius:50px;
    background:var(--btn-grad);transition:all .4s var(--ease)}
.nav-cta:hover{transform:translateY(-2px)}
.nav-toggle{display:none;background:none;border:none;color:#fff;cursor:pointer;position:relative;z-index:61;padding:8px;margin:-8px -8px -8px 0;-webkit-tap-highlight-color:transparent;pointer-events:auto}

/* ===== Hero ===== */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:130px 0 90px}
/* Fondo fluido: vive solo dentro del hero y termina en un borde recto. En
   su parte inferior se funde a negro en poco espacio; hacia el contenido el
   corte es nítido (línea fina). */
.hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
    border-bottom:1px solid rgba(156,203,255,.28);
    opacity:0;transition:opacity .8s ease-out}
.hero-bg::after{content:'';position:absolute;left:0;right:0;bottom:0;height:clamp(56px,7vw,96px);
    background:linear-gradient(to bottom,rgba(3,5,13,0) 0%,rgba(3,5,13,.55) 45%,#03050D 100%)}
#bg{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-bg .veil{position:absolute;inset:0;
    background:radial-gradient(ellipse 95% 75% at 50% 0%,transparent 45%,rgba(2,6,23,.4) 100%),
               linear-gradient(180deg,rgba(2,6,23,.3),rgba(2,6,23,.06) 30%,rgba(2,6,23,.12) 75%,rgba(2,6,23,.3))}
/* El fondo aparece cuando ya hay un fotograma pintado (sin silueta vacía). */
.hero.gl-ready .hero-bg{opacity:1}
.hero.no-gl .hero-bg{opacity:1;background:linear-gradient(160deg,#16244F,#2A2462 55%,#123A52)}
.hero-h1{display:inline-block;margin-bottom:22px;font-size:clamp(.95rem,1.5vw,1.15rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-200);
    opacity:0;animation:rise .9s var(--ease) .05s forwards}
.hero-slogan{font-size:clamp(2.9rem,9vw,6.6rem);font-weight:800;line-height:.96;letter-spacing:-3px;color:#fff}
.hero-slogan .grad{background:linear-gradient(120deg,#7FB2FF,#B79CFF 50%,#5EE6F5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.rw{display:inline-block;vertical-align:top}
/* Sin opacity: el eslogan es el elemento de mayor tamaño (LCP) y debe pintarse ya. */
.rw>span{display:inline-block;transform:translateY(26px);animation:riseT 1.1s var(--ease) both}
@keyframes riseT{to{transform:none}}
.hero-slogan>.rw:nth-of-type(1)>span{animation-delay:.18s}
.hero-slogan>.rw:nth-of-type(2)>span{animation-delay:.3s}
.hero-slogan>.rw:nth-of-type(3)>span{animation-delay:.42s}
@keyframes rise{to{opacity:1;transform:none}}
.hero .lead{font-size:clamp(1.08rem,2vw,1.35rem);color:var(--slate-300);max-width:620px;margin:34px auto 0;line-height:1.65;opacity:0;transform:translateY(18px);animation:rise 1.1s var(--ease) .56s forwards}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:44px;opacity:0;transform:translateY(18px);animation:rise 1.1s var(--ease) .7s forwards}
@keyframes fade{to{opacity:1}}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:16px;border-radius:50px;cursor:pointer;border:none;transition:all .4s var(--ease)}
.btn-primary{color:#fff;padding:17px 34px;background:linear-gradient(135deg,#2563EB,#7C3AED 50%,#2563EB);background-size:200% auto}
.btn-primary:hover{background-position:right center;transform:translateY(-3px)}
.btn-primary svg{transition:transform .35s var(--ease)}.btn-primary:hover svg{transform:translateX(5px)}
.btn-ghost{color:#fff;padding:17px 30px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px)}
.btn-ghost:hover{background:rgba(255,255,255,.1);transform:translateY(-3px)}

/* ===== Section shell ===== */
section.block{padding:130px 0;position:relative;z-index:5}
/* Ritmo vertical uniforme para los bloques inferiores (métricas, reseñas,
   CTA final): mismo hueco que separa los showcases superiores (170px). Se
   anula el padding del bloque y se usa margen para no duplicar el espacio. */
#crear{padding-bottom:0}
.block.flow-section{padding-top:0;padding-bottom:0;margin-top:120px}
.block.flow-last{margin-bottom:120px}
.sec-head{max-width:760px;margin:0 auto 76px;text-align:center}
.sec-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
    background:var(--grad-text-sm);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:18px}
.sec-title{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:800;letter-spacing:-1.6px;line-height:1.06;color:#fff}
.sec-sub{margin-top:20px;font-size:1.15rem;color:var(--slate-400);line-height:1.7}
.grad{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

p .grad{background:var(--grad-text-sm);-webkit-background-clip:text;background-clip:text}

.sc-copy .n{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--link);letter-spacing:1px;display:inline-flex;align-items:center;gap:12px;margin-bottom:20px}
.sc-copy .n::before{content:'';width:30px;height:1px;background:linear-gradient(90deg,var(--primary),transparent)}
.sc-copy h3,.sc-copy h2.sc-h{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-1px;color:#fff;line-height:1.1;margin-bottom:18px}
.sc-copy p{color:var(--slate-400);font-size:1.06rem;line-height:1.7;margin-bottom:24px;max-width:460px}
.sc-copy ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.sc-copy ul li{display:flex;align-items:center;gap:12px;color:var(--slate-200);font-size:.98rem}
.sc-copy ul li svg{color:var(--check);flex-shrink:0}

/* Home: servicios con la foto en cabecera de la tarjeta "Qué incluye" */
.sec-lead{font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.55;color:var(--slate-200);text-align:center}
.sc-more{display:inline-flex;align-items:center;gap:8px;margin-top:4px;color:var(--link);font-weight:600;font-size:.98rem}
.sc-more svg{transition:transform .3s var(--ease)}
.sc-more:hover svg{transform:translateX(4px)}
/* Servicios de la home: tarjeta dividida imagen | texto (alternando lado).
   La imagen (maqueta apaisada 3:2) ocupa la columna ancha y se ve entera:
   contain sobre el mismo azul noche del fondo de la maqueta. */
.svc{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"media body" "inc inc";
    margin-bottom:44px;border-radius:24px;overflow:hidden;background:rgba(8,12,26,.42);border:1px solid rgba(255,255,255,.08);
    transition:border-color .4s var(--ease),transform .4s var(--ease)}
.svc:last-child{margin-bottom:0}
.svc--flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"body media" "inc inc"}
.svc:hover{border-color:rgba(156,203,255,.35)}
.svc:hover,.js .svc.reveal.in:hover{transform:translateY(-4px)}
.svc:focus-within{outline:2px solid #9CCBFF;outline-offset:4px}
.svc-media{grid-area:media;position:relative;margin:0;min-height:0;aspect-ratio:3 / 2;background:#0B1224;overflow:hidden}
.svc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform 1s var(--ease)}
.svc:hover .svc-media img{transform:scale(1.035)}
.svc-body{grid-area:body;align-self:center;padding:40px 44px}
.svc-body p{max-width:none;margin-bottom:0}
.svc-inc{grid-area:inc;padding:28px 52px 32px;border-top:1px solid rgba(255,255,255,.1);background:rgba(8,12,26,.25)}
.svc-inc > .sec-tag{margin-bottom:18px}
.svc-foot{display:flex;justify-content:flex-end;margin-top:22px}
.svc-link{margin-top:0}
.svc-link::after{content:'';position:absolute;inset:0;z-index:1}
.svc-link:focus-visible{outline:none}
.svc:hover .svc-link svg{transform:translateX(4px)}
.svc-inc.sc-copy ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 28px}
.svc-inc.sc-copy li{align-items:flex-start;font-size:.95rem;line-height:1.45}
.svc-inc.sc-copy li svg{margin-top:2px}

/* ===== Cards genéricas (servicios/proceso en subpáginas) ===== */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{position:relative;padding:32px;border-radius:20px;background:rgba(8,12,26,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);transition:all .4s var(--ease)}
.card:hover{transform:translateY(-6px);border-color:rgba(59,130,246,.3)}
.card .ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;background:linear-gradient(135deg,rgba(59,130,246,.2),rgba(139,92,246,.15));border:1px solid rgba(59,130,246,.3);color:#93C5FD}
.card h2,.card h3{font-size:1.3rem;font-weight:700;color:#fff;margin-bottom:10px;letter-spacing:-.3px}
.card p{color:var(--slate-400);font-size:.97rem;line-height:1.65}
.card ul{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:9px}
.card ul li{display:flex;align-items:center;gap:10px;color:var(--slate-300);font-size:.9rem}
.card ul li svg{color:var(--link);flex-shrink:0}

/* ===== Process ===== */
.proc{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.proc .p{position:relative;padding:30px;border-radius:20px;overflow:hidden;background:rgba(8,12,26,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);transition:all .4s var(--ease)}
.proc .p:hover{transform:translateY(-6px);border-color:rgba(139,92,246,.35)}
.p-media{position:relative;margin:-30px -30px 24px;aspect-ratio:16 / 10;overflow:hidden;background:#0B1224}
.p-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.proc .p:hover .p-media img{transform:scale(1.04)}
.p-media::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(8,12,26,.82) 0%,rgba(8,12,26,.35) 38%,transparent 65%)}
.p-num{position:absolute;left:24px;bottom:12px;z-index:1;font-size:3.6rem;font-weight:200;line-height:1;letter-spacing:-2px;color:#fff;font-variant-numeric:tabular-nums}
.proc .p h2,.proc .p h3{font-size:1.18rem;color:#fff;font-weight:700;margin-bottom:9px}
.proc .p p{color:var(--slate-400);font-size:.93rem;line-height:1.6}

/* ===== Final CTA ===== */
.final{position:relative;text-align:center;border-radius:32px;padding:96px 40px;overflow:hidden;background:rgba(8,12,26,.5);backdrop-filter:blur(14px);border:1px solid rgba(139,92,246,.28)}
.final .hero-cta,.final h2,.final p{position:relative;z-index:1}
.final h2{position:relative;font-size:clamp(2.2rem,5.2vw,3.8rem);font-weight:800;letter-spacing:-1.6px;color:#fff;line-height:1.04}
.final p{position:relative;color:var(--slate-300);max-width:540px;margin:20px auto 38px;font-size:1.15rem}

/* ===== Formularios ===== */
.form-card{max-width:720px;margin:0 auto;background:rgba(8,12,26,.6);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:40px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{display:flex;flex-direction:column;margin-bottom:18px;min-width:0}
.form-group label{color:#fff;font-weight:600;margin-bottom:9px;font-size:.92rem}
.form-group input,.form-group select,.form-group textarea{width:100%;max-width:100%;box-sizing:border-box;background:rgba(2,6,23,.6);border:1px solid var(--field-border);color:#fff;padding:13px 16px;border-radius:12px;font-size:1rem;font-family:inherit;transition:all .3s ease}
.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline:2px solid #9CCBFF;outline-offset:1px;border-color:#9CCBFF}
.form-group textarea{resize:vertical;min-height:130px}
.form-note{margin-top:14px;text-align:center;color:var(--slate-500);font-size:.85rem}
.alert{max-width:720px;margin:0 auto 24px;padding:16px 20px;border-radius:14px;font-size:.95rem}
.alert-success{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);color:#6EE7B7}
.alert-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#FCA5A5}

/* ===== Prose (páginas legales) ===== */
.prose{max-width:800px;margin:0 auto}
.prose h2{color:#fff;font-size:1.5rem;margin:32px 0 12px;letter-spacing:-.5px}
.prose h3{color:#fff;font-size:1.15rem;margin:24px 0 10px}
.prose p,.prose li{color:var(--slate-400);line-height:1.8;margin-bottom:12px}
.prose ul{padding-left:22px;margin-bottom:16px}
.prose a{color:var(--link)}
.prose a:hover{text-decoration:underline}

/* ===== Blog ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.blog-card{display:flex;flex-direction:column;gap:12px;padding:26px;border-radius:18px;
    background:rgba(8,12,26,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);
    transition:border-color .4s var(--ease),transform .4s var(--ease);color:var(--slate-200)}
.blog-card:hover{border-color:rgba(59,130,246,.35);transform:translateY(-4px)}
.blog-card-cat{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
    color:#bfdbfe;background:rgba(59,130,246,.14);border:1px solid rgba(59,130,246,.25);padding:4px 10px;border-radius:20px}
.blog-card h2,.blog-card h3{color:#fff;font-size:1.15rem;font-weight:800;line-height:1.3;margin:4px 0 0;letter-spacing:-.3px}
.blog-card p{color:var(--slate-400);font-size:.92rem;line-height:1.6;margin:0}
.blog-card-meta{display:flex;gap:8px;align-items:center;color:var(--slate-500);font-size:.8rem;margin-top:auto}
.blog-card-link{display:inline-flex;align-items:center;gap:6px;color:var(--link);font-weight:600;font-size:.9rem;margin-top:4px}

/* Artículo */
.blog-article-head{max-width:800px;margin:0 auto}
.blog-article-head h1{margin:14px 0 0}
.blog-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--slate-500);font-size:.9rem;margin-top:14px}
.page-hero .blog-meta{justify-content:center}
.blog-cover{max-width:820px;margin:28px auto 0}
.blog-cover img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:16px;border:1px solid rgba(255,255,255,.08)}
.blog-article{font-size:1.02rem}
.blog-lead,.blog-body:not(.blog-body--resto)>p:first-child{font-size:1.18rem;line-height:1.7;color:var(--slate-300)!important;margin-bottom:8px}
.blog-article h2{scroll-margin-top:90px;font-size:1.6rem;margin-top:40px}
.blog-article h3{scroll-margin-top:90px}
.blog-article blockquote{margin:22px 0;padding:16px 22px;border-left:3px solid var(--primary);
    background:rgba(59,130,246,.07);border-radius:0 12px 12px 0;color:var(--slate-200);font-size:1.06rem;font-style:italic}
.blog-article strong{color:var(--slate-200)}

/* Índice del artículo (TOC) */
.blog-toc{margin:26px 0;padding:20px 24px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(8,12,26,.5)}
.blog-toc-title{color:#fff;font-weight:700;margin:0 0 10px;font-size:.95rem}
.blog-toc ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.blog-toc a{color:var(--slate-300);font-size:.95rem}
.blog-toc a:hover{color:var(--link)}

/* Tabla */
.blog-table-wrap{overflow-x:auto;margin:18px 0}
.blog-table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:520px}
.blog-table th,.blog-table td{text-align:left;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.09);vertical-align:top}
.blog-table th{color:#fff;font-weight:700;background:rgba(59,130,246,.08)}
.blog-table td{color:var(--slate-400)}

/* FAQ */
.blog-faq{display:flex;flex-direction:column;gap:10px;margin:14px 0 8px}
.blog-faq-item{border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(8,12,26,.5);overflow:hidden}
.blog-faq-item summary{cursor:pointer;padding:16px 18px;color:#fff;font-weight:600;list-style:none;position:relative}
.blog-faq-item summary::-webkit-details-marker{display:none}
.blog-faq-item summary::after{content:'+';position:absolute;right:18px;top:14px;font-size:1.3rem;color:var(--link);transition:transform .2s}
.blog-faq-item[open] summary::after{transform:rotate(45deg)}
.blog-faq-a{padding:0 18px 16px;color:var(--slate-400);line-height:1.75}
.blog-related{max-width:960px;margin:60px auto 0}
.blog-related h2{color:#fff;font-size:1.4rem;margin-bottom:22px;text-align:center}

@media (max-width:900px){.blog-grid{grid-template-columns:1fr}}
@media (min-width:901px) and (max-width:1100px){.svc-inc.sc-copy ul{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== Página de servicio (/servicios/{slug}) ===== */
.crumbs ol{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 20px;font-size:.88rem;color:var(--slate-400)}
.crumbs li+li::before{content:'/';margin-right:8px;color:var(--slate-500)}
main .crumbs li a{color:var(--slate-300);text-decoration:none}
main .crumbs li a:hover{color:#fff;text-decoration:underline}
.block.srv{padding-top:40px;padding-bottom:0}
#proceso{padding-top:40px;padding-bottom:50px}
.srv-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:56px;align-items:start}
.srv-intro p{font-size:1.1rem;line-height:1.75;color:var(--slate-300);margin-bottom:16px}
.srv-block{margin-top:56px}
.srv-h{font-size:1.6rem;font-weight:800;color:#fff;letter-spacing:-.5px;line-height:1.2;margin-bottom:22px}
.check-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px}
.check-list li,.need-list li{display:flex;gap:12px;align-items:flex-start;color:var(--slate-200);line-height:1.55}
.check-list svg{color:var(--check);flex-shrink:0;margin-top:3px}
.inc-list{list-style:none;border-top:1px solid rgba(255,255,255,.12)}
.inc-list li{display:flex;gap:22px;align-items:baseline;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);color:var(--slate-200);line-height:1.55}
.inc-n{min-width:42px;font-size:1.6rem;font-weight:200;line-height:1;color:var(--link);font-variant-numeric:tabular-nums}
.need-list{list-style:none;display:flex;flex-direction:column;gap:14px}
.need-list svg{color:var(--link);flex-shrink:0;margin-top:3px}
.srv-note{margin-top:20px;padding:14px 18px;border-left:3px solid var(--primary);background:rgba(59,130,246,.08);border-radius:0 12px 12px 0;color:var(--slate-300);font-size:.95rem}
.mini-steps{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mini-steps li{display:flex;gap:16px;padding:18px 20px;border-radius:14px;background:rgba(8,12,26,.42);border:1px solid rgba(255,255,255,.08)}
.mini-n{min-width:42px;font-size:2rem;font-weight:200;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.mini-steps strong{display:block;color:#fff;margin-bottom:4px}
.mini-steps p{color:var(--slate-400);font-size:.92rem;line-height:1.55}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px}
.chips li{padding:8px 15px;border-radius:50px;border:1px solid rgba(255,255,255,.2);background:rgba(8,12,26,.42);color:var(--slate-200);font-size:.9rem}
.srv-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:18px}
.srv-photo{aspect-ratio:16 / 10;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#0B1224}
.srv-photo img{display:block;width:100%;height:100%;object-fit:cover}
.srv-box{padding:24px;border-radius:18px;background:rgba(8,12,26,.6);border:1px solid rgba(139,92,246,.35)}
.srv-box-t{color:#fff;font-weight:800;font-size:1.1rem;margin-bottom:6px}
.srv-box p{color:var(--slate-300);font-size:.94rem}
.srv-box-btn{width:100%;justify-content:center;margin:18px 0 16px;padding:14px 20px}
.srv-channels{list-style:none;display:flex;flex-direction:column;gap:10px}
main .srv-channels li a{display:flex;align-items:center;gap:10px;color:var(--slate-200);font-size:.93rem;text-decoration:none;overflow-wrap:anywhere}
main .srv-channels li a:hover{color:#fff;text-decoration:underline}
.srv-channels svg{color:var(--link);flex-shrink:0}
.srv-para{padding:22px 24px;border-radius:18px;background:rgba(8,12,26,.42);border:1px solid rgba(255,255,255,.08)}
.srv-para ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:10px}
.srv-para li{position:relative;padding-left:16px;color:var(--slate-300);font-size:.93rem}
.srv-para li::before{content:'';position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--link)}
.srv-rel{display:flex;flex-direction:column;padding:0;overflow:hidden;color:inherit}
.srv-rel-media{aspect-ratio:16 / 9;overflow:hidden;background:#0B1224}
.srv-rel-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.srv-rel:hover .srv-rel-media img{transform:scale(1.04)}
.srv-rel-body{display:flex;flex-direction:column;gap:10px;flex:1;padding:24px 26px 28px}
.srv-rel-body h3{margin-bottom:0}
.srv-rel .sc-more{margin-top:auto}
.srv-posts{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.srv-posts .blog-card{flex:0 1 380px}
@media (max-width:900px){
    .srv-grid{grid-template-columns:1fr;gap:40px}
    .srv-sticky{position:static}
    .check-list,.mini-steps{grid-template-columns:1fr}
}

/* ===== Páginas de ciudad ===== */
.city-srv{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.city-srv-item{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:14px;background:rgba(8,12,26,.42);
    border:1px solid rgba(255,255,255,.08);transition:border-color .3s var(--ease),transform .3s var(--ease)}
.city-srv-item:hover{border-color:rgba(156,203,255,.4);transform:translateY(-2px)}
.city-srv-item strong{color:#fff;font-size:1.02rem}
.city-srv-item span{color:var(--slate-400);font-size:.92rem;line-height:1.5}
.city-sect{grid-template-columns:1fr}
.city-sect strong{color:#fff}
.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.city-card{display:flex;flex-direction:column;gap:10px;padding:26px;border-radius:18px;background:rgba(8,12,26,.5);
    border:1px solid rgba(255,255,255,.08);transition:border-color .3s var(--ease),transform .3s var(--ease);color:inherit}
.city-card:hover{border-color:rgba(156,203,255,.4);transform:translateY(-4px)}
.city-card-tag{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#bfdbfe;
    background:rgba(59,130,246,.14);border:1px solid rgba(59,130,246,.25);padding:4px 10px;border-radius:20px}
.city-card h2{color:#fff;font-size:1.35rem;font-weight:800;letter-spacing:-.3px}
.city-card p{color:var(--slate-400);font-size:.93rem;line-height:1.55;flex:1}
.srv-zonas{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.92rem}
main .srv-zonas a{color:var(--slate-300)}
main .srv-zonas a:hover{color:#fff}
.city-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.city-strip a{padding:8px 16px;border-radius:50px;border:1px solid rgba(255,255,255,.2);background:rgba(8,12,26,.42);color:var(--slate-200);font-size:.92rem;transition:border-color .25s,color .25s}
.city-strip a:hover{border-color:#9CCBFF;color:#fff}
@media (max-width:900px){.city-srv{grid-template-columns:1fr}.city-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.city-grid{grid-template-columns:1fr}}

/* ===== Footer ===== */
footer.site{border-top:1px solid rgba(255,255,255,.06);padding:48px 0 40px;margin-top:0;position:relative;z-index:5;background:rgba(2,6,23,.5)}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.foot-brand{max-width:300px}.foot-brand .brand{margin-bottom:14px}
.foot-brand p{color:var(--slate-500);font-size:.92rem;line-height:1.6}
.foot-cols{display:flex;gap:48px;flex-wrap:wrap}
.foot-col h2{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--slate-500);margin-bottom:16px}
.foot-col a{display:block;color:var(--slate-400);font-size:.92rem;margin-bottom:11px;transition:color .25s}
.foot-col a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-top:50px;padding-top:26px;border-top:1px solid rgba(255,255,255,.05);color:var(--slate-600);font-size:.85rem}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.12s}.reveal[data-d="2"]{transition-delay:.24s}.reveal[data-d="3"]{transition-delay:.36s}

/* Page hero (subpáginas) */
.page-hero{padding:170px 0 40px;text-align:center}
.page-hero h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;letter-spacing:-2px;color:#fff;line-height:1.05}
.page-hero p{color:var(--slate-400);max-width:600px;margin:20px auto 0;font-size:1.12rem;line-height:1.65}

/* ===== Header logo-only ===== */
.brand-logo-only img{height:46px;width:auto}

/* ===== Modal de contacto ===== */
.contact-modal{position:fixed;inset:0;z-index:10001;display:none;align-items:center;justify-content:center;padding:20px}
.contact-modal.open{display:flex}
.cm-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.72);backdrop-filter:blur(6px);animation:cmFade .3s ease}
.cm-dialog{position:relative;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;
    background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(8,12,26,.98));border:1px solid rgba(59,130,246,.25);
    border-radius:24px;padding:38px;box-shadow:0 40px 120px rgba(0,0,0,.6);animation:cmIn .4s var(--ease)}
@keyframes cmFade{from{opacity:0}to{opacity:1}}
@keyframes cmIn{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}
.cm-close{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:11px;border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.04);color:var(--slate-300);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s}
.cm-close:hover{background:rgba(255,255,255,.1);color:#fff}
.cm-head{margin-bottom:24px}
.cm-head h2{color:#fff;font-size:1.7rem;font-weight:800;letter-spacing:-.8px;margin:12px 0 8px}
.cm-head p{color:var(--slate-400);font-size:.95rem;line-height:1.55}
.cm-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cm-form .form-group{margin-bottom:14px}
.cm-alert{padding:12px 16px;border-radius:12px;font-size:.9rem;margin-bottom:16px}
.cm-alert.ok{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);color:#6EE7B7}
.cm-alert.err{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#FCA5A5}
.js-contact{cursor:pointer}
@media (max-width:520px){.cm-row{grid-template-columns:1fr}.cm-dialog{padding:28px 22px}}

@media (max-width:900px){
    .svc,.svc--flip{grid-template-columns:1fr;grid-template-areas:"media" "body" "inc";margin-bottom:32px}
    .svc-media{min-height:0;aspect-ratio:3 / 2}
    .svc-body{padding:30px 24px 26px}
    .svc-inc{padding:24px 24px 28px}
    .svc-inc.sc-copy ul{grid-template-columns:1fr}
    /* ── Menú móvil / tablet ── */
    .nav-links{display:none}
    .nav-toggle{display:block}
    .nav-cta.ghost{display:none}                 /* en móvil, dentro del menú */
    header.site.nav-open .nav-add-mobile{display:block;color:var(--link)!important;font-weight:600}
    header.site.nav-open .nav-sep{width:auto;height:1px;margin:6px 4px;background:rgba(255,255,255,.1)}
    header.site.nav-open .nav-links{
        display:flex;flex-direction:column;align-items:stretch;gap:2px;
        position:absolute;top:calc(100% + 8px);right:16px;min-width:230px;max-width:calc(100vw - 32px);
        background:rgba(6,10,24,.97);backdrop-filter:blur(20px) saturate(160%);
        border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:12px;
        box-shadow:0 24px 60px rgba(0,0,0,.55);animation:navDrop .25s var(--ease);z-index:60}
    header.site.nav-open .nav-links a{width:100%;padding:13px 16px;border-radius:10px;font-size:15px;color:var(--slate-200)}
    header.site.nav-open .nav-links a::after{display:none}
    header.site.nav-open .nav-links a:hover{background:rgba(255,255,255,.06);color:#fff}
}
@media (max-width:640px){
    .hero-slogan{letter-spacing:-1.5px}
    .form-row{grid-template-columns:1fr;gap:0}
}
/* ===== Directorio de empresas ===== */
.dir-search{display:flex;justify-content:center;gap:12px;margin:32px auto 0;max-width:760px;flex-wrap:wrap}
.dir-search-field{flex:1 1 300px;min-width:0;height:54px;display:flex;align-items:center;gap:12px;padding:0 18px;
    background:rgba(8,12,26,.6);border:1px solid var(--field-border);border-radius:14px;color:var(--slate-400)}
.dir-search-field input{flex:1;min-width:0;height:100%;background:none;border:none;color:#fff;font-size:15px;font-family:inherit;outline:none}
.dir-search-field:focus-within{outline:2px solid #9CCBFF;outline-offset:2px}
.dir-search-field input::placeholder{color:var(--slate-500)}
.dir-search-prov{flex:0 0 auto;height:54px;min-width:210px;padding:0 48px 0 18px;border-radius:14px;cursor:pointer;
    -webkit-appearance:none;appearance:none;font-family:inherit;font-size:15px;color:#fff;
    background:rgba(8,12,26,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239CCBFF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 18px center;
    border:1px solid var(--field-border);transition:border-color .25s}
.dir-search-prov:hover{border-color:#9CCBFF}
.dir-search-prov option{background:#0B1224;color:#fff}
.dir-search .btn{height:54px;padding:0 30px;justify-content:center}
@media (max-width:600px){.dir-search-prov,.dir-search .btn{flex:1 1 100%}}
.block.dir-sec{margin-top:72px}
.block.dir-sec--first{margin-top:36px}
.dir-sec .sec-head{margin-bottom:40px}
.dir-prov-wrap{position:relative;z-index:5}
.dir-prov{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}
.dir-prov-t{color:var(--slate-400);font-size:.9rem;margin-right:4px}
.dir-prov a{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:50px;border:1px solid rgba(255,255,255,.2);
    background:rgba(8,12,26,.42);color:var(--slate-200);font-size:.9rem;transition:border-color .25s,color .25s}
.dir-prov a:hover{border-color:#9CCBFF;color:#fff}
.dir-prov a span{font-size:.78rem;color:var(--slate-400);font-family:'JetBrains Mono',monospace}
.dir-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-top:56px;padding:30px 34px;
    border-radius:20px;background:linear-gradient(135deg,rgba(37,99,235,.16),rgba(124,58,237,.14));border:1px solid rgba(156,203,255,.28)}
.dir-cta-t{color:#fff;font-size:1.25rem;font-weight:800;letter-spacing:-.3px;margin-bottom:6px}
.dir-cta p{color:var(--slate-300);max-width:620px}
.dir-cta-actions{display:flex;gap:12px;flex-wrap:wrap}
.dir-cta-actions .btn{padding:14px 24px;font-size:.95rem}
.dir-back{display:table;margin:0 auto 14px;color:var(--slate-400);font-size:.9rem;font-weight:600;transition:color .3s}
.dir-back:hover{color:var(--link)}

.dir-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.dir-cat{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:16px;
    background:rgba(8,12,26,.5);border:1px solid rgba(255,255,255,.07);color:var(--slate-200);
    transition:border-color .3s var(--ease),transform .3s var(--ease),background .3s var(--ease);position:relative}
.dir-cat:hover{border-color:rgba(59,130,246,.4);transform:translateY(-3px);background:rgba(59,130,246,.06)}
.dir-cat svg{color:var(--link)}
.dir-cat-name{font-weight:600;font-size:.98rem;line-height:1.25}
.dir-cat-count{position:absolute;top:18px;right:18px;font-family:var(--mono,monospace);font-size:.78rem;
    color:var(--slate-500);background:rgba(255,255,255,.05);border-radius:20px;padding:2px 9px;min-width:26px;text-align:center}

.dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.biz-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:24px;border-radius:18px;
    background:rgba(8,12,26,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);
    transition:border-color .4s var(--ease),transform .4s var(--ease);color:var(--slate-200)}
.biz-star{position:absolute;top:14px;right:14px;z-index:2;display:grid;place-items:center;width:28px;height:28px;
    border-radius:50%;color:#0b1020;background:linear-gradient(120deg,#FBBF24,#F59E0B)}
.biz-card:has(.biz-star) .biz-head{padding-right:26px}
.biz-card:hover{border-color:rgba(59,130,246,.35);transform:translateY(-4px)}
.biz-top{display:flex;align-items:flex-start;gap:13px;flex-wrap:wrap}
.biz-ico{width:46px;height:46px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;color:#fff;
    background:var(--btn-grad)}
.biz-head{flex:1;min-width:0}
.biz-head h3{color:#fff;font-size:1.08rem;font-weight:700;line-height:1.25;margin:0}
.biz-cat{display:inline-block;margin-top:4px;font-size:.76rem;font-weight:600;letter-spacing:.02em;
    color:var(--slate-400);text-transform:uppercase}
.biz-rec{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;color:#0b1020;
    background:linear-gradient(120deg,#FBBF24,#F59E0B);padding:4px 9px;border-radius:20px;white-space:nowrap}
.biz-desc{color:var(--slate-400);font-size:.92rem;line-height:1.55;margin:0}
.biz-meta{display:flex;flex-direction:column;gap:7px;margin-top:auto}
.biz-meta span{display:flex;align-items:center;gap:8px;color:var(--slate-400);font-size:.86rem}
.biz-meta svg{color:var(--link);flex-shrink:0}
.biz-link{display:inline-flex;align-items:center;gap:6px;color:var(--link);font-weight:600;font-size:.9rem;margin-top:4px}

/* Ficha de empresa */
.biz-detail-head{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:8px}
.biz-detail-ico{width:64px;height:64px;flex-shrink:0;border-radius:16px;display:grid;place-items:center;color:#fff;
    background:var(--btn-grad)}
.biz-detail-tags{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.biz-detail-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px;align-items:start}
.biz-detail-main{display:flex;flex-direction:column;gap:18px}
.biz-contact{list-style:none;display:flex;flex-direction:column;gap:14px}
.biz-contact li{display:flex;align-items:flex-start;gap:11px;color:var(--slate-300);font-size:.92rem}
.biz-contact svg{color:var(--link);flex-shrink:0;margin-top:2px}
.biz-contact a{color:var(--slate-200)}
.biz-contact a:hover{color:var(--link)}
.biz-trust{display:flex;gap:13px;align-items:flex-start;padding:18px 20px;border-radius:14px;
    background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.28)}
.biz-trust svg{color:#FBBF24;flex-shrink:0;margin-top:1px}
.biz-trust strong{display:block;color:#fff;font-size:.98rem;margin-bottom:3px}
.biz-trust span{color:var(--slate-400);font-size:.88rem}

/* Logo de la empresa dentro del icono (tarjeta y ficha) */
.biz-ico:has(img),.biz-detail-ico:has(img){background:#fff;padding:5px}
.biz-ico img,.biz-detail-ico img{width:100%;height:100%;object-fit:contain;border-radius:8px}
/* Imagen de portada en la ficha */
.biz-cover{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);line-height:0}
.biz-cover img{width:100%;height:auto;aspect-ratio:16 / 9;max-height:420px;object-fit:cover;display:block}

/* Campos de subida de archivos en el formulario público */
.field-hint{display:block;margin-top:6px;color:var(--slate-400);font-size:.8rem}
.word-count{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.word-count-n{color:#FCD34D;font-weight:600;white-space:nowrap}
.word-count-n.ok{color:var(--check)}
.file-input{width:100%;max-width:100%;min-width:0;box-sizing:border-box;cursor:pointer;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;padding:10px 14px}
.file-input::file-selector-button{margin-right:12px;padding:8px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.16);
    background:rgba(59,130,246,.14);color:#fff;font-weight:600;cursor:pointer;font-family:inherit;font-size:.85rem;transition:background .3s ease}
.file-input::file-selector-button:hover{background:rgba(59,130,246,.24)}

/* Paginación del directorio */
.pager{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin-top:40px}
.pager-btn,.pager-num{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;
    border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(8,12,26,.6);color:var(--slate-200);
    font-weight:600;font-size:.95rem;text-decoration:none;transition:all .25s ease}
.pager-btn:hover,.pager-num:hover{border-color:var(--link);color:#fff;transform:translateY(-2px)}
.pager-num.is-current{background:var(--btn-grad);border-color:transparent;color:#fff}
.pager-num.is-current:hover{transform:none}
.pager-btn.is-disabled{opacity:.35;pointer-events:none}
.pager-gap{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:42px;color:var(--slate-500)}

/* Atribución de fuente de datos abierta (ODbL) */
.dir-attrib{margin-top:40px;text-align:center;color:var(--slate-500);font-size:.8rem}
.dir-attrib a{color:var(--slate-400)}
.dir-attrib a:hover{color:var(--link)}

/* Bloque de datos de contacto privados en el alta */
.form-fieldset{margin-top:26px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.form-fieldset-title{color:#fff;font-size:1.12rem;font-weight:700;margin-bottom:6px}
.form-fieldset-note{display:flex;align-items:center;gap:8px;color:var(--slate-400);font-size:.86rem;margin-bottom:20px}
.form-fieldset-note svg{color:var(--link);flex-shrink:0}

@media (max-width:900px){
    .dir-cats{grid-template-columns:repeat(2,1fr)}
    .dir-grid{grid-template-columns:repeat(2,1fr)}
    .biz-detail-grid{grid-template-columns:1fr}
}
@media (max-width:600px){
    .dir-grid{grid-template-columns:1fr}
    .dir-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .dir-cat{padding:16px 14px;gap:8px}
    .dir-cat-name{font-size:.9rem}
    .dir-cat-count{top:12px;right:12px}
}

@media (max-width:900px){.block.flow-section{margin-top:80px}.block.flow-last{margin-bottom:80px}}

@keyframes navDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none}.rw>span,.hero-h1,.hero .lead,.hero-cta{opacity:1;transform:none}}

/* Controles de pausa (WCAG 2.2.2): animación del hero y carrusel de reseñas */
.motion-toggle{position:absolute;right:24px;bottom:120px;z-index:6;display:inline-flex;align-items:center;gap:8px;
    padding:8px 14px;border-radius:50px;border:1px solid rgba(255,255,255,.3);background:rgba(8,12,26,.6);color:var(--slate-200);
    font:600 13px/1 'Inter',sans-serif;cursor:pointer;backdrop-filter:blur(8px)}
.motion-toggle:hover{background:rgba(8,12,26,.85);color:#fff}
.motion-toggle svg{width:14px;height:14px}
.motion-toggle .i-play,.motion-toggle[data-paused="true"] .i-pause{display:none}
.motion-toggle[data-paused="true"] .i-play{display:inline}
.hero.no-gl .motion-toggle{display:none}
@media (prefers-reduced-motion:reduce){.hero .motion-toggle{display:none}}
@media (max-width:640px){.motion-toggle{right:16px;bottom:22px;padding:8px 12px}}

/* ===== Tablet y móvil: rejillas y ritmo vertical ===== */
@media (max-width:1024px){
    .grid-3,.proc{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
    section.block{padding:84px 0}
    .sec-head{margin-bottom:48px}
    .page-hero{padding:130px 0 32px}
    .final{padding:64px 28px;border-radius:24px}
}
@media (max-width:640px){
    .container{padding:0 20px}
    .grid-3,.grid-2,.proc{grid-template-columns:minmax(0,1fr);gap:16px}
    section.block{padding:64px 0}
    .block.flow-section{margin-top:64px}
    .block.flow-last{margin-bottom:64px}
    .sec-head{margin-bottom:36px}
    .sec-title{letter-spacing:-1px}
    .sec-sub{font-size:1.05rem}
    .card:not(.srv-rel){padding:26px 22px}
    .srv-rel-body{padding:20px 22px 24px}
    .proc .p{padding:24px 22px}
    .p-media{margin:-24px -22px 20px;aspect-ratio:16 / 9}
    .p-num{left:20px;font-size:3rem}
    .hero{padding:110px 0 84px}
    .hero-h1{letter-spacing:.08em;font-size:.85rem}
    .hero .lead{margin-top:24px;font-size:1.05rem}
    .hero-cta{margin-top:32px;flex-direction:column;align-items:stretch;gap:12px;max-width:340px;margin-left:auto;margin-right:auto}
    .hero-cta .btn{justify-content:center}
    .final{padding:48px 20px}
    .final p{font-size:1.02rem;margin:16px auto 28px}
    .page-hero{padding:112px 0 24px}
    .page-hero h1{letter-spacing:-1px}
    .page-hero p{font-size:1.02rem}
    .form-card{padding:26px 20px;border-radius:18px}
    .svc{border-radius:20px;margin-bottom:24px}
    .svc-body{padding:24px 20px 22px}
    .svc-inc{padding:20px 20px 24px}
    .sc-copy p{font-size:1rem}
    .dir-cta{padding:24px 20px}
    .foot-cols{gap:28px 40px}
    .brand-logo-only img{height:40px}
}

/* ===== Trabajos (/trabajos, /trabajos/{slug} y carrusel de la home) ===== */
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.work-grid--center{max-width:560px;margin:0 auto;grid-template-columns:1fr}
.work-card{display:flex;flex-direction:column;height:100%;border-radius:20px;overflow:hidden;color:inherit;
    background:rgba(8,12,26,.5);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);transition:transform .4s var(--ease),border-color .4s var(--ease)}
.work-card:hover{transform:translateY(-5px);border-color:rgba(59,130,246,.35)}
.work-card-media{aspect-ratio:16 / 10;overflow:hidden;background:#0B1224;border-bottom:1px solid rgba(255,255,255,.08)}
.work-card-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease)}
.work-card:hover .work-card-media img{transform:scale(1.03)}
.work-card-body{display:flex;flex-direction:column;gap:10px;flex:1;padding:24px 26px 26px}
.work-card-tag{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-400)}
.work-card h2,.work-card h3{color:#fff;font-size:1.3rem;font-weight:800;line-height:1.25;letter-spacing:-.3px;margin:0}
.work-card p{color:var(--slate-400);font-size:.95rem;line-height:1.6;margin:0}
.work-card .blog-card-link{margin-top:auto;padding-top:6px}
/* Carrusel: desplazamiento nativo con scroll-snap (táctil y teclado), sin autoplay. */
.work-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 28px) / 2);gap:28px;
    overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 14px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.work-track:focus-visible{outline:2px solid var(--link);outline-offset:4px;border-radius:12px}
.work-slide{scroll-snap-align:start;min-width:0}
.work-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:22px}
.work-nav .sc-more{margin:0 0 0 10px}
.work-btn{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;
    background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.28);transition:background .25s,border-color .25s}
.work-btn:hover:not(:disabled){background:rgba(255,255,255,.12);border-color:#9CCBFF}
.work-btn:disabled{opacity:.35;cursor:default}
.work-btn[hidden]{display:none}
/* Ficha del caso */
.block.work-shots-sec{padding-top:30px;padding-bottom:80px}
.work-shots{position:relative;max-width:1060px;margin:0 auto;padding-right:120px}
.work-shot{margin:0;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:#0B1224;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.work-shot img{display:block;width:100%;height:auto}
.work-shot--mob{position:absolute;right:0;bottom:-40px;width:230px;border-radius:26px;border:6px solid #0F172A}
.work-list{grid-template-columns:1fr}
.work-group+.work-group{margin-top:30px}
.work-group h3{color:#fff;font-size:1.08rem;font-weight:700;letter-spacing:-.2px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}
.work-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}
.work-stats div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:6px;padding:20px;border-radius:16px;background:rgba(8,12,26,.42);border:1px solid rgba(255,255,255,.08)}
.work-stats dd{font-size:2.2rem;font-weight:800;line-height:1;color:#fff;letter-spacing:-1px}
.work-stats dt{color:var(--slate-400);font-size:.92rem;line-height:1.45}
.work-visit{margin-top:40px;font-size:1.08rem;color:var(--slate-300)}
@media (max-width:900px){
    .work-grid{grid-template-columns:1fr}
    .work-track{grid-auto-columns:85%;gap:18px}
    .work-shots{padding-right:70px}
    .work-shot--mob{width:150px;bottom:-30px;border-width:4px;border-radius:18px}
}
@media (max-width:640px){
    .work-shots{padding-right:0}
    .work-shot--mob{display:none}
    .block.work-shots-sec{padding-bottom:20px}
    .work-stats{grid-template-columns:1fr 1fr}
    .work-card-body{padding:20px 20px 22px}
}

/* ===== Herramienta «¿Está caída mi web?» (informe técnico) ===== */
.wc-form{max-width:980px}
.wc-fila{display:flex;gap:12px}
.wc-fila input{flex:1;min-width:0}
.wc-fila .btn{flex:none}
.wc-err{color:#FCA5A5}
.wc-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:.86em;letter-spacing:0}
.wc-res{max-width:980px;margin:28px auto 0;outline:none;scroll-margin-top:100px;display:flex;flex-direction:column;gap:18px}
.wc-head,.wc-panel{padding:26px 28px;border-radius:20px;background:rgba(8,12,26,.62);border:1px solid rgba(255,255,255,.09)}
.wc-head{border-top:3px solid var(--wc-c,#9CCBFF)}
.wc-res--ok{--wc-c:#5EEAB4}.wc-res--aviso{--wc-c:#FBBF24}.wc-res--caida,.wc-res--invalida{--wc-c:#F87171}
.wc-pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--wc-c);background:color-mix(in srgb,var(--wc-c) 14%,transparent);border:1px solid color-mix(in srgb,var(--wc-c) 45%,transparent)}
.wc-pill i{width:8px;height:8px;border-radius:50%;background:var(--wc-c);box-shadow:0 0 10px var(--wc-c)}
.wc-res-t{color:#fff;font-size:1.45rem;font-weight:800;letter-spacing:-.3px;margin:12px 0 6px;line-height:1.3}
.wc-res-url{color:var(--slate-300);overflow-wrap:anywhere;margin:0}
.wc-meta{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0}
.wc-meta li{display:flex;align-items:center;gap:8px;padding:6px 11px;border-radius:10px;background:rgba(2,6,23,.55);border:1px solid rgba(255,255,255,.08);color:#fff;font-size:.86rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.wc-meta li span{color:var(--slate-400);font-family:'Inter',sans-serif;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}
.wc-scores{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.wc-score{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;border-radius:18px;background:rgba(8,12,26,.62);border:1px solid rgba(255,255,255,.09);text-align:center}
.wc-score span{color:var(--slate-300);font-size:.84rem;font-weight:600}
.wc-score--ok{--sc:#5EEAB4}.wc-score--aviso{--sc:#FBBF24}.wc-score--error{--sc:#F87171}
.wc-ring{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--sc) calc(var(--v)*1%),rgba(255,255,255,.08) 0)}
.wc-ring b{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:#0A1022;color:#fff;font:700 1.25rem 'JetBrains Mono',ui-monospace,monospace}
.wc-panel h3{color:#fff;font-size:1.05rem;font-weight:800;margin:0 0 16px;display:flex;align-items:center;gap:10px}
.wc-panel h3::before{content:'';width:4px;height:16px;border-radius:2px;background:linear-gradient(#60a5fa,#a78bfa)}
.wc-panel h4{color:var(--slate-200);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;margin:20px 0 10px}
.wc-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}
.wc-kpis div{padding:12px 14px;border-radius:12px;background:rgba(2,6,23,.55);border:1px solid rgba(255,255,255,.07)}
.wc-kpis span{display:block;color:var(--slate-400);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.wc-kpis b{display:block;color:#fff;font:700 1.05rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin-top:4px}
.wc-water{display:flex;flex-direction:column;gap:8px}
.wc-water-row{display:grid;grid-template-columns:150px 1fr 80px;align-items:center;gap:12px}
.wc-water-l{color:var(--slate-300);font-size:.86rem}
.wc-water-v{color:#fff;text-align:right}
.wc-water-track{position:relative;height:12px;border-radius:6px;background:rgba(255,255,255,.05);overflow:hidden}
.wc-water-track i{position:absolute;top:0;bottom:0;border-radius:6px}
.wc-f-dns{background:#22d3ee}.wc-f-conexion{background:#60a5fa}.wc-f-tls{background:#a78bfa}.wc-f-espera{background:#FBBF24}.wc-f-descarga{background:#5EEAB4}
.wc-nota{color:var(--slate-400);font-size:.82rem;line-height:1.55;margin:14px 0 0}
.wc-nota--pie{text-align:center;margin:0}
.wc-checks{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0}
.wc-checks li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:rgba(2,6,23,.45);border-left:3px solid transparent}
.wc-checks li svg{flex-shrink:0;margin-top:2px}
.wc-checks li div{display:flex;flex-direction:column;gap:3px;min-width:0}
.wc-checks strong{color:#fff;font-size:.95rem}
.wc-checks span{color:var(--slate-300);font-size:.88rem;line-height:1.55;overflow-wrap:anywhere}
.wc-checks .wc-ok{border-left-color:#5EEAB4}.wc-checks .wc-aviso{border-left-color:#FBBF24}.wc-checks .wc-error{border-left-color:#F87171}
.wc-ok svg{color:#5EEAB4}.wc-aviso svg{color:#FBBF24}.wc-error svg{color:#F87171}
.wc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.wc-kv{margin:0;display:flex;flex-direction:column}
.wc-kv div{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:14px;padding:9px 0;border-bottom:1px dashed rgba(255,255,255,.08)}
.wc-kv div:last-child{border-bottom:0}
.wc-kv dt{color:var(--slate-400);font-size:.84rem}
.wc-kv dt small{color:var(--slate-500);margin-left:4px;font-size:.74rem}
.wc-kv dd{margin:0;color:#fff;font-size:.88rem;overflow-wrap:anywhere;line-height:1.5}
.wc-kv dd small{color:var(--slate-400)}
.wc-txt-ok{color:#86EFC4!important}.wc-txt-aviso{color:#FCD34D!important}.wc-txt-error{color:#FCA5A5!important}.wc-txt-off{color:var(--slate-400)!important}
.wc-chips{display:flex;flex-wrap:wrap;gap:6px}
.wc-chip{padding:3px 8px;border-radius:7px;background:rgba(96,165,250,.14);border:1px solid rgba(96,165,250,.3);color:#BFDBFE;font:600 .74rem ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.wc-flags{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.wc-flags li{display:grid;grid-template-columns:12px auto;gap:4px 10px;align-items:center}
.wc-flags small{grid-column:2;color:var(--slate-400);font-size:.78rem;line-height:1.45}
.wc-flags .wc-mono{color:#fff}
.wc-dot{width:10px;height:10px;border-radius:50%;background:#475569}
.wc-flags .wc-ok .wc-dot,.wc-flags li.wc-ok .wc-dot{background:#5EEAB4;box-shadow:0 0 8px rgba(94,234,180,.6)}
.wc-flags li.wc-off .wc-mono{color:var(--slate-400)}
.wc-tech{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.wc-tech li{display:flex;flex-direction:column;padding:10px 12px;border-radius:12px;background:rgba(2,6,23,.55);border:1px solid rgba(255,255,255,.07)}
.wc-tech b{color:#fff;font-size:.9rem}
.wc-tech span{color:var(--slate-400);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.wc-chain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:var(--slate-200)}
.wc-chain li{display:flex;align-items:center;gap:10px;overflow-wrap:anywhere}
.wc-cod{flex:none;padding:2px 8px;border-radius:6px;font-weight:700;background:rgba(255,255,255,.08);color:#fff}
.wc-cod--2{background:rgba(94,234,180,.16);color:#86EFC4}.wc-cod--3{background:rgba(96,165,250,.16);color:#BFDBFE}.wc-cod--4,.wc-cod--5,.wc-cod--x{background:rgba(248,113,113,.16);color:#FCA5A5}
.wc-raw summary{cursor:pointer;color:#fff;font-weight:700}
.wc-raw table{width:100%;border-collapse:collapse;margin-top:14px}
.wc-raw th,.wc-raw td{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.06)}
.wc-raw th{color:#93C5FD;white-space:nowrap;width:1%}
.wc-raw td{color:var(--slate-200);overflow-wrap:anywhere;word-break:break-all}
.wc-cta{padding:22px 26px;border-radius:20px;background:linear-gradient(135deg,rgba(37,99,235,.18),rgba(124,58,237,.18));border:1px solid rgba(139,92,246,.3);display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.wc-cta p{flex-basis:100%;color:var(--slate-200);margin:0}
.wc-info{max-width:760px;margin:70px auto 0}
@media (max-width:900px){.wc-grid{grid-template-columns:1fr}.wc-scores{grid-template-columns:repeat(3,1fr)}.wc-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){
  .wc-fila{flex-direction:column}
  .wc-head,.wc-panel{padding:20px 16px}
  .wc-scores{grid-template-columns:repeat(2,1fr)}
  .wc-kpis{grid-template-columns:repeat(2,1fr)}
  .wc-water-row{grid-template-columns:96px 1fr 62px;gap:8px}
  .wc-kv div{grid-template-columns:1fr;gap:2px}
}
/* ── Directorio: «Reclama tu ficha» ─────────────────────── */
.check-line{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;color:var(--slate-300);font-size:.9rem;line-height:1.5;cursor:pointer}
.check-line input{flex:none;width:18px;height:18px;margin-top:2px;accent-color:#3B82F6}
.claim-info{margin:4px 0 20px;padding:16px 18px;border-radius:14px;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.25);font-size:.9rem;color:var(--slate-300)}
.claim-info strong{color:#fff}
.claim-info p{margin:6px 0 0}
.claim-box{margin-top:18px;padding:18px 20px;border-radius:16px;background:rgba(8,12,26,.5);border:1px solid rgba(255,255,255,.08)}
.claim-box h2{font-size:1rem;margin:0 0 6px}
.claim-box p{color:var(--slate-400);font-size:.88rem;margin:0 0 14px}
.claim-box .btn{width:100%;justify-content:center;padding:12px 18px}
.claim-box small{display:block;margin-top:10px;text-align:center;font-size:.8rem}
.claim-box small a{color:var(--slate-400)}
.biz-claimed{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:50px;font-size:.78rem;font-weight:600;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.35);color:#6EE7B7}
.owner-dim{color:var(--slate-400);font-size:.9rem;margin:0 0 16px}
.owner-tip{margin:16px 0 0;padding:14px 16px;border-radius:12px;background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.3);color:var(--slate-200);font-size:.9rem}
.owner-stats{overflow-x:auto}
.owner-stats table{width:100%;border-collapse:collapse;font-size:.92rem}
.owner-stats th,.owner-stats td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.07);text-align:right;white-space:nowrap}
.owner-stats th:first-child,.owner-stats td:first-child{text-align:left}
.owner-stats th{color:var(--slate-400);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}
.owner-stats td{color:#fff}
.owner-baja{border-color:rgba(248,113,113,.25)}
.owner-baja-btn{color:#FCA5A5;border-color:rgba(248,113,113,.4)}
@media (max-width:520px){
  .owner-stats th,.owner-stats td{padding:9px 4px;font-size:.84rem;white-space:normal}
  .owner-stats th{font-size:.7rem;letter-spacing:.02em}
  .owner-stats td:first-child{width:55%}
}
.form-card .form-fieldset-title{margin-top:18px}
