/* Páginas de servicio (krbn.mx/<servicio>/). Mismo lenguaje visual que la página principal. */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{--bg:#0A0A0A;margin:0;background:#0A0A0A;color:#F5F5F2;font-family:'Montserrat',system-ui,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}
body.lock{overflow:hidden}
a{color:#F5F5F2;text-decoration:none}a:hover{color:#FFFFFF}
img,video{display:block}
button{font:inherit;cursor:pointer}
.lg{display:inline-flex;flex-direction:column;align-items:center;line-height:1}
.lg .w{font-weight:600;letter-spacing:.32em;margin-right:-.32em}
.lg .d{font-weight:500;font-size:.15em;letter-spacing:1.1em;margin-right:-1.1em;margin-top:.9em}
.k{position:relative;display:inline-block}
.k::after{content:"";position:absolute;top:-6%;bottom:-6%;left:21%;width:7%;background:var(--bg)}
.wrap{max-width:1360px;margin:0 auto;padding-left:32px;padding-right:32px}
@media (max-width:640px){.wrap{padding-left:16px;padding-right:16px}}
.mono{font-weight:500;letter-spacing:.1em}
.disp{font-weight:800;text-transform:uppercase;letter-spacing:-.02em}
.navlink{position:relative;padding:12px 0;color:#C9C9C4}
.navlink:hover{color:#FFFFFF}
.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 28px;border-radius:999px;font-weight:500}
.btn-light{background:#F5F5F2;color:#0A0A0A;font-weight:600}.btn-light:hover{color:#0A0A0A;background:#FFFFFF}
.btn-line{border:1px solid #3A3A38}.btn-line:hover{border-color:#F5F5F2}
.btn-dark{background:#0A0A0A;color:#FFFFFF;font-weight:600}.btn-dark:hover{color:#FFFFFF;background:#262626}

.light{background:#FFFFFF;color:#0A0A0A}
.light a{color:#0A0A0A}
.sec{padding-top:112px;padding-bottom:112px}
@media (max-width:640px){.sec{padding-top:80px;padding-bottom:80px}}
.eyebrow{font-size:12px;color:#9A9A96;margin-bottom:16px}
.light .eyebrow{color:#5A5A56}
.h2{margin:0;font-size:clamp(34px,4.5vw,64px);line-height:1}
.lead{margin:0;max-width:640px;font-size:19px;line-height:1.6;color:#C9C9C4}
.prose{max-width:760px;font-size:18px;line-height:1.7;color:#2A2A28}
.prose p{margin:0 0 20px}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:32px}
.item{border-top:2px solid #0A0A0A;padding-top:20px;display:flex;flex-direction:column;gap:10px}
.item b{font-size:21px;font-weight:600}
.item span{font-size:15px;color:#55554F;line-height:1.6}
.dark .item{border-top-color:#F5F5F2}.dark .item span{color:#9A9A96}

.works{display:grid;gap:20px}
.works.reels{grid-template-columns:repeat(auto-fill,minmax(min(44%,220px),1fr))}
.works.wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:28px}
.tile{display:flex;flex-direction:column;gap:12px;color:#F5F5F2;padding:0;border:0;background:none;text-align:left}
.tile-box{position:relative;display:block;overflow:hidden;background:#111;border-radius:6px}
.tile-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.tile:hover .tile-box video{transform:scale(1.035)}
.tile-play{position:absolute;right:12px;bottom:12px;width:44px;height:44px;border-radius:50%;border:1px solid #F5F5F2;display:flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease}
.tile:hover .tile-play{background:#E5352B;border-color:#E5352B}
.tile-t{display:flex;flex-direction:column;gap:2px}
.tile-t b{font-size:15px;font-weight:700}
.tile-t span{font-size:13px;color:#9A9A96}

.photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){.photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.photos img{width:100%;aspect-ratio:1/1;object-fit:cover}

.mock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:640px){.mock{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mock img{width:100%;aspect-ratio:1113/1086;object-fit:cover;border-radius:4px}

.faq details{border-top:1px solid #D9D9D5;padding:22px 0}
.faq details:last-child{border-bottom:1px solid #D9D9D5}
.faq summary{cursor:pointer;font-size:19px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:24px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:24px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq p{margin:14px 0 0;max-width:760px;font-size:16px;line-height:1.7;color:#3A3A38}

.others{display:flex;flex-wrap:wrap;gap:10px}
.others a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid #3A3A38;border-radius:999px;font-size:14px;font-weight:500}
.others a:hover{border-color:#F5F5F2}

.modal{position:fixed;inset:0;display:none;z-index:70;background:rgba(0,0,0,.94);flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px}
.modal.open{display:flex}
.close{width:48px;height:48px;flex-shrink:0;border-radius:50%;background:rgba(0,0,0,.5);border:1px solid #F5F5F2;display:flex;align-items:center;justify-content:center}
.wa{position:fixed;right:24px;bottom:24px;z-index:40;width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.35)}
@media (max-width:640px){.wa{right:16px;bottom:16px}}

/* Encabezado con video de fondo en loop */
.hero{position:relative;min-height:min(92vh,900px);display:flex;flex-direction:column;overflow:hidden;background:#000 center/cover no-repeat}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.6) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 42%,rgba(10,10,10,.82) 80%,#0A0A0A 100%),linear-gradient(90deg,rgba(0,0,0,.4),rgba(0,0,0,0) 65%)}
.hero header,.hero-in{position:relative}
.hero-in{margin-top:auto;padding-top:120px;padding-bottom:72px;width:100%}
.hero .lead{color:#E6E6E3}
.hero nav[aria-label="Ruta"]{border-bottom-color:rgba(245,245,242,.25)!important;color:#C9C9C4!important}
@media (prefers-reduced-motion:reduce){.hero-bg{display:none}}
.works.reels{grid-template-columns:repeat(var(--cols,5),minmax(0,1fr))}
@media (max-width:900px){.works.reels{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.works.reels{grid-template-columns:repeat(2,minmax(0,1fr))}}
.works.wide{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.hero header{width:100%}
/* Sobre video el corte de la K se hace con máscara (no hay color de fondo que tapar) */
.hero .k::after{display:none}
.hero .k{-webkit-mask:linear-gradient(90deg,#000 21%,transparent 21%,transparent 28%,#000 28%);mask:linear-gradient(90deg,#000 21%,transparent 21%,transparent 28%,#000 28%)}
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.15) 24%,rgba(0,0,0,.1) 40%,rgba(10,10,10,.85) 82%,#0A0A0A 100%),linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,0) 70%)}
.hero .navlink,.hero nav[aria-label="Ruta"]{text-shadow:0 1px 8px rgba(0,0,0,.6)}
/* Menú de servicios en el encabezado */
.svc-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-bottom:28px;border-bottom:1px solid #262626}
.hero .svc-nav{border-bottom-color:rgba(245,245,242,.25)}
.svc-nav a{display:inline-flex;align-items:center;min-height:36px;padding:0 16px;border:1px solid rgba(245,245,242,.35);border-radius:999px;font-size:13px;font-weight:500;color:#F5F5F2;background:rgba(0,0,0,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.svc-nav a:hover{border-color:#F5F5F2;color:#FFFFFF}
.svc-nav a[aria-current="page"]{background:#F5F5F2;color:#0A0A0A;border-color:#F5F5F2}
/* El video ocupa toda la primera pantalla (svh: alto real en celular, sin la barra del navegador) */
.hero{min-height:100vh;min-height:100svh}
/* Botón de WhatsApp con neón animado: brillo que respira + ondas que se expanden */
.wa{animation:waGlow 2.4s ease-in-out infinite;box-shadow:0 0 8px #25D366,0 0 20px rgba(37,211,102,.7),0 0 42px rgba(37,211,102,.45),0 8px 24px rgba(0,0,0,.35)}
.wa::before,.wa::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;box-shadow:0 0 12px #25D366;animation:waRing 2.4s ease-out infinite;pointer-events:none}
.wa::after{animation-delay:1.2s}
.wa svg{position:relative;filter:drop-shadow(0 0 4px rgba(255,255,255,.8))}
.wa:hover{animation-play-state:paused;transform:scale(1.06)}
@keyframes waGlow{0%,100%{box-shadow:0 0 6px #25D366,0 0 16px rgba(37,211,102,.6),0 0 32px rgba(37,211,102,.35),0 8px 24px rgba(0,0,0,.35)}50%{box-shadow:0 0 12px #3DFF8A,0 0 30px rgba(61,255,138,.85),0 0 64px rgba(37,211,102,.6),0 8px 24px rgba(0,0,0,.35)}}
@keyframes waRing{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@media (prefers-reduced-motion:reduce){.wa,.wa::before,.wa::after{animation:none}.wa::before,.wa::after{display:none}}
/* Línea bajo la ruta cuando la página no lleva botones de servicios */
.svc-line{margin-top:28px;border-bottom:1px solid #262626}
.hero .svc-line{border-bottom-color:rgba(245,245,242,.25)}
/* Páginas sin video: header + portada llenan la primera pantalla (--hh lo mide servicio.js) */
.top-full{min-height:calc(100vh - var(--hh,92px));min-height:calc(100svh - var(--hh,92px));display:flex;flex-direction:column;justify-content:center}
/* Encabezado con collage de diseños (Diseño gráfico) */
.hero-collage{position:absolute;inset:-12% -8%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;transform:rotate(-7deg);overflow:hidden}
.cc{overflow:hidden}
.cc-in{display:flex;flex-direction:column;gap:18px;animation:ccScroll var(--d,50s) linear infinite}
.cc.up .cc-in{animation-direction:reverse}
.cc img{width:100%;height:auto;border-radius:6px;box-shadow:0 18px 40px rgba(0,0,0,.45)}
@keyframes ccScroll{from{transform:translateY(0)}to{transform:translateY(calc(-50% - 9px))}}
@media (max-width:640px){.hero-collage{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.cc:nth-child(n+4){display:none}.cc-in{gap:10px}}
@media (prefers-reduced-motion:reduce){.cc-in{animation:none}}

/* ---------- iPhones con historias de Instagram (Diseño gráfico) ---------- */
.ig-sec{background:#0A0A0A}
.ig-phones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,3vw,40px);align-items:end}
@media (max-width:820px){.ig-phones{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}}
/* Marco de titanio, botones laterales y Dynamic Island */
.iph{position:relative;aspect-ratio:9/19.5;border-radius:16%/7.4%;padding:3.2%;background:linear-gradient(145deg,#6b6b70,#2b2b2e 22%,#4a4a4f 50%,#1e1e20 78%,#5a5a5f);box-shadow:0 0 0 1px #0a0a0a inset,0 40px 60px -20px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.06)}
.iph::before{content:"";position:absolute;left:-1.6%;top:20%;width:1.6%;height:7%;border-radius:2px 0 0 2px;background:#3a3a3d;box-shadow:0 13cqh 0 #3a3a3d}
.iph::after{content:"";position:absolute;right:-1.6%;top:26%;width:1.6%;height:11%;border-radius:0 2px 2px 0;background:#3a3a3d}
.iph-scr{position:relative;height:100%;border-radius:13.5%/6.3%;overflow:hidden;background:#000;container-type:inline-size}
.iph-island{position:absolute;left:50%;top:2.2%;width:33%;height:3.6%;transform:translateX(-50%);background:#000;border-radius:999px;z-index:5}
.ig-bar{position:absolute;inset:0 0 auto;z-index:4;display:flex;justify-content:space-between;align-items:center;padding:4.6cqw 9cqw 0;color:#fff;font-size:4.2cqw;font-weight:600}
.ig-bat svg{width:15cqw;height:auto;display:block}
/* Pantalla de inicio de Instagram */
.ig-feed{position:absolute;inset:0;padding-top:15cqw;background:#000;color:#fff}
.ig-top{display:flex;justify-content:space-between;align-items:center;padding:0 5cqw 3cqw;font-size:6cqw}
.ig-top svg{width:7cqw;height:7cqw;display:block}
.ig-tray{display:flex;gap:3.5cqw;padding:2cqw 4cqw 4cqw;border-bottom:1px solid #222}
.ig-av{flex:0 0 17cqw;height:17cqw;border-radius:50%;padding:1cqw;background:conic-gradient(from 210deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5,#feda75)}
.ig-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 35%;border:1cqw solid #000;display:block}
.ig-av:not(.ig-tap){background:#3a3a3c}
.ig-av:not(.ig-tap)::after{content:"";display:block;width:100%;height:100%;border-radius:50%;background:#1c1c1e;border:1cqw solid #000;box-sizing:border-box}
.ig-post{padding:4cqw}
.ig-post i{display:block;background:#1c1c1e;border-radius:2cqw;margin-bottom:3cqw}
.ig-post i:nth-child(1){height:6cqw;width:45%}
.ig-post i:nth-child(2){height:92cqw}
.ig-post i:nth-child(3){height:5cqw;width:70%}
/* Historia abierta */
.ig-story{position:absolute;inset:0;z-index:3;transform-origin:13% 13%;transform:scale(.12);border-radius:50%;opacity:0;overflow:hidden;background:#000}
.ig-story>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ig-prog{position:absolute;left:3cqw;right:3cqw;top:13cqw;height:.8cqw;border-radius:2px;background:rgba(255,255,255,.35);overflow:hidden}
.ig-prog span{display:block;height:100%;width:0;background:#fff}
.ig-head{position:absolute;left:3.5cqw;right:3.5cqw;top:16.5cqw;display:flex;align-items:center;gap:2.2cqw;color:#fff;font-size:3.8cqw;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.ig-mini{width:8cqw;height:8cqw;border-radius:50%;background:#F5F5F2;flex:0 0 auto}
.ig-head em{font-style:normal;opacity:.8}
.ig-x{margin-left:auto;font-size:5cqw}
.ig-foot{position:absolute;left:3.5cqw;right:3.5cqw;bottom:5cqw;display:flex;align-items:center;gap:3.5cqw}
.ig-foot svg{width:7.5cqw;height:7.5cqw;flex:0 0 auto}
.ig-msg{flex:1;border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:2.6cqw 4.5cqw;color:#fff;font-size:3.6cqw}
/* Animación: corre solo cuando la sección entra en pantalla (servicio.js agrega .in) */
.ig-phones.in .ig-story{animation:igOpen 8s cubic-bezier(.7,0,.25,1) infinite;animation-delay:calc(var(--i) * .7s)}
.ig-phones.in .ig-prog span{animation:igProg 8s linear infinite;animation-delay:calc(var(--i) * .7s)}
.ig-phones.in .ig-tap{animation:igTap 8s ease infinite;animation-delay:calc(var(--i) * .7s)}
@keyframes igOpen{0%,12%{transform:scale(.12);border-radius:50%;opacity:0}13%{opacity:1}22%{transform:scale(1);border-radius:0;opacity:1}88%{transform:scale(1);border-radius:0;opacity:1}96%,100%{transform:scale(.12);border-radius:50%;opacity:0}}
@keyframes igProg{0%,22%{width:0}86%,100%{width:100%}}
@keyframes igTap{0%,8%{transform:scale(1)}11%{transform:scale(.88)}14%,100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.ig-phones .ig-story,.ig-phones.in .ig-story{animation:none;transform:none;opacity:1;border-radius:0}.ig-prog span{width:60%}}
/* La historia (9:16) va completa, sin recorte: arriba bajo la barra de estado y la respuesta en la franja negra de abajo, como en Instagram */
.ig-story>img{inset:auto;left:0;top:13cqw;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:3cqw}
.ig-prog{top:15.5cqw}
.ig-head{top:19cqw}
.ig-foot{bottom:6cqw}
.iph-island{box-shadow:0 0 0 1px #1c1c1e,inset 0 0 0 1px #111}
