/* =========================================================
   IKARO MEDIOS 5.4.2 — MOBILE APP SYSTEM
   Capa final exclusivamente móvil.
   Objetivo: header robusto + menú tipo app + ritmo visual tipo banca.
   ========================================================= */

/* Accesibilidad: evita que el texto interno del toggle aparezca visualmente. */
.screen-reader-text{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

@media(max-width:980px){
  :root{
    --ik-mobile-header-h:72px;
    --ik-mobile-gap:12px;
    --ik-mobile-radius:22px;
  }

  /* Safari: un backdrop-filter en el ancestro puede alterar fixed descendants. */
  .site-header,
  .site-header.scrolled{
    min-height:var(--ik-mobile-header-h)!important;
    padding:10px 12px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto 46px!important;
    gap:8px!important;
    align-items:center!important;
    background:#050505!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 10px 28px rgba(0,0,0,.28)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    transform:none!important;
    filter:none!important;
    overflow:visible!important;
  }

  .site-header .brand{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    position:relative!important;
    z-index:1003!important;
  }
  .site-header .brand img,
  .site-header .brand .custom-logo{
    width:112px!important;
    max-width:112px!important;
    max-height:48px!important;
    object-fit:contain!important;
  }

  .ik-mobile-talk{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:42px!important;
    padding:0 14px!important;
    border:1px solid rgba(244,160,0,.88)!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#ffc247,#f4a000)!important;
    color:#161006!important;
    font-size:12px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:.01em!important;
    box-shadow:0 8px 22px rgba(244,160,0,.17)!important;
    position:relative!important;
    z-index:1003!important;
  }

  .menu-toggle{
    display:grid!important;
    place-content:center!important;
    gap:6px!important;
    width:46px!important;
    height:46px!important;
    padding:0!important;
    margin:0!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:15px!important;
    background:#101010!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
    position:relative!important;
    z-index:1004!important;
    cursor:pointer!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  .menu-toggle::before{display:none!important}
  .menu-toggle span:not(.screen-reader-text){
    display:block!important;
    width:20px!important;
    height:2px!important;
    margin:0!important;
    border-radius:99px!important;
    background:#fff!important;
    transform-origin:center!important;
    transition:transform .22s ease,background .22s ease!important;
  }
  .menu-toggle[aria-expanded="true"]{
    background:#f4a000!important;
    border-color:#f4a000!important;
  }
  .menu-toggle[aria-expanded="true"] span:not(.screen-reader-text){background:#171006!important}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)!important}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)!important}

  .ik-mobile-menu-backdrop{
    display:block!important;
    position:fixed!important;
    inset:0!important;
    z-index:999!important;
    background:rgba(0,0,0,.76)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transition:opacity .2s ease,visibility .2s ease!important;
  }
  .ik-mobile-menu-backdrop.is-open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  .site-header .nav{
    position:fixed!important;
    z-index:1001!important;
    top:var(--ik-menu-top,82px)!important;
    right:10px!important;
    bottom:max(10px,env(safe-area-inset-bottom,10px))!important;
    left:10px!important;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    margin:0!important;
    padding:18px 16px max(16px,env(safe-area-inset-bottom,16px))!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:26px!important;
    background:
      radial-gradient(circle at 10% 0%,rgba(244,160,0,.12),transparent 27%),
      #080808!important;
    box-shadow:0 28px 90px rgba(0,0,0,.72)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-10px) scale(.985)!important;
    transform-origin:top center!important;
    transition:opacity .2s ease,transform .24s cubic-bezier(.22,1,.36,1),visibility .2s ease!important;
  }
  .site-header .nav.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  .ik-mobile-nav-head{
    display:block!important;
    padding:3px 5px 14px!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  .ik-mobile-nav-head span{
    display:block!important;
    margin:0!important;
    color:#f4a000!important;
    font-size:9px!important;
    font-weight:900!important;
    letter-spacing:.15em!important;
  }
  .ik-mobile-nav-head strong{display:none!important}

  .site-header .nav .ik-primary-menu{
    display:grid!important;
    width:100%!important;
    gap:8px!important;
    margin:12px 0 14px!important;
    padding:0!important;
    list-style:none!important;
  }
  .site-header .nav .ik-primary-menu li{
    margin:0!important;
    border:0!important;
  }
  .site-header .nav .ik-primary-menu a{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr 30px!important;
    align-items:center!important;
    gap:12px!important;
    min-height:56px!important;
    padding:0 14px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:15px!important;
    background:#101010!important;
    color:#f4f0e8!important;
    font-size:17px!important;
    font-weight:780!important;
    line-height:1.1!important;
    letter-spacing:-.015em!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  .site-header .nav .ik-primary-menu a::after{
    content:"→"!important;
    display:grid!important;
    place-items:center!important;
    width:30px!important;
    height:30px!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.05)!important;
    color:#f4a000!important;
    font-size:17px!important;
  }
  .site-header .nav .current-menu-item>a,
  .site-header .nav .current-menu-ancestor>a{
    border-color:rgba(244,160,0,.55)!important;
    background:linear-gradient(135deg,rgba(244,160,0,.18),rgba(244,160,0,.04))!important;
    color:#ffc247!important;
  }
  .site-header .nav .current-menu-item>a::before{display:none!important}

  .site-header .nav-cta{display:none!important}

  .ik-mobile-wa-app{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr) 30px!important;
    align-items:center!important;
    gap:12px!important;
    margin-top:auto!important;
    padding:11px!important;
    border:1px solid rgba(244,160,0,.55)!important;
    border-radius:18px!important;
    background:linear-gradient(135deg,rgba(244,160,0,.20),rgba(244,160,0,.04))!important;
    color:#fff!important;
  }
  .ik-mobile-wa-app__icon{
    display:grid!important;
    place-items:center!important;
    width:48px!important;
    height:48px!important;
    border-radius:14px!important;
    background:#f4a000!important;
    color:#151008!important;
  }
  .ik-mobile-wa-app__icon svg{width:26px!important;height:26px!important}
  .ik-mobile-wa-app__copy small{font-size:9px!important}
  .ik-mobile-wa-app__copy strong{font-size:14px!important}

  body.ik-menu-open .ik-mobile-dock{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(14px)!important;
  }
}

@media(max-width:767px){
  :root{
    --ik-app-gutter:14px;
    --ik-app-radius:20px;
    --ik-app-panel:#0d0d0d;
    --ik-app-panel-2:#11100e;
    --ik-app-line:rgba(255,255,255,.10);
    --ik-app-muted:#aaa397;
  }

  html,body{max-width:100%!important;overflow-x:clip!important}
  body.ikaro-site{
    background:#050505!important;
    padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;
  }

  /* Gutter único y legible en toda la app. */
  .ik-content-shell,
  .ikg-shell,
  .ikp-shell,
  .ik-about-shell,
  .ik-home-shell,
  .ik-footer-shell{
    width:calc(100% - (var(--ik-app-gutter) * 2))!important;
    max-width:none!important;
    margin-inline:auto!important;
  }

  /* Escala móvil consistente. */
  .ik-main h1,
  .ik-page-canvas h1,
  .ikaro-home-manager h1,
  .ikg-contact h1,
  .ikp-process h1,
  .ik-about-page h1{
    font-size:clamp(36px,10vw,46px)!important;
    line-height:.98!important;
    letter-spacing:-.045em!important;
  }
  .ik-main h2,
  .ik-page-canvas h2,
  .ikaro-home-manager h2,
  .ikg-contact h2,
  .ikp-process h2,
  .ik-about-page h2{
    font-size:27px!important;
    line-height:1.12!important;
    font-weight:700!important;
    letter-spacing:-.03em!important;
  }
  .ik-main h3,
  .ik-page-canvas h3,
  .ikaro-home-manager h3,
  .ikg-contact h3,
  .ikp-process h3,
  .ik-about-page h3{
    font-size:19px!important;
    line-height:1.2!important;
    font-weight:600!important;
  }
  .ik-main p,
  .ik-main li,
  .ik-page-canvas p,
  .ik-page-canvas li{
    font-size:15px!important;
    line-height:1.68!important;
  }

  /* Botones táctiles tipo app. */
  .button,
  .ikg-button,
  .ikp-button,
  .ik-about-btn,
  .ik-about-text-link{
    min-height:48px!important;
    border-radius:14px!important;
    padding-inline:16px!important;
    font-size:13px!important;
    font-weight:850!important;
  }
  .button:active,
  .ikg-button:active,
  .ikp-button:active,
  .ik-about-btn:active{transform:scale(.985)!important}

  /* Dock inferior: compacto, redondeado y separado del borde. */
  .ik-mobile-dock{
    left:10px!important;
    right:10px!important;
    bottom:max(9px,env(safe-area-inset-bottom,9px))!important;
    min-height:64px!important;
    border-radius:22px!important;
    border-color:rgba(255,255,255,.14)!important;
    background:#090909!important;
    box-shadow:0 18px 52px rgba(0,0,0,.52)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  /* HOME */
  .ikaro-home-manager .hero{
    min-height:78svh!important;
    padding-left:var(--ik-app-gutter)!important;
    padding-right:var(--ik-app-gutter)!important;
  }
  .ikaro-home-manager .hero-layout{width:100%!important}
  .ikaro-home-manager .hero h1{max-width:12ch!important}
  .ikaro-home-manager .hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  .ikaro-home-manager .hero-actions .button{width:100%!important}
  .ikaro-home-manager .showreel-card,
  .ikaro-home-manager .ik-home-intro-media,
  .ikaro-home-manager .ik-method-media,
  .ikaro-home-manager .ik-home-cta-card,
  .ikaro-home-manager .ik-tech-feature-grid article,
  .ikaro-home-manager .ik-tech-insight-grid article,
  .ikaro-home-manager .ik-coverage-grid article{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }

  /* CONTACTO */
  .ikg-contact{padding-bottom:116px!important}
  .ikg-section{padding:52px 0!important}
  .ikg-hero__grid{padding-bottom:56px!important}
  .ikg-brief,
  .ikg-card,
  .ikg-process article,
  .ikg-form-slot,
  .ikg-direct__item,
  .ikg-wide-media,
  .ikg-split__media,
  .ikg-editorial-grid__media{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ikg-form-slot input:not([type="checkbox"]):not([type="submit"]),
  .ikg-form-slot select,
  .ikg-form-slot textarea{
    border-radius:13px!important;
  }
  .ikg-faq details{
    margin-bottom:10px!important;
    padding:0 16px!important;
    border:1px solid var(--ik-app-line)!important;
    border-radius:16px!important;
    background:#0d0d0d!important;
  }

  /* CÓMO TRABAJAMOS */
  .ikp-process{padding-bottom:116px!important}
  .ikp-section{padding:52px 0!important}
  .ikp-hero__grid{padding-bottom:64px!important}
  .ikp-hero__panel,
  .ikp-phase-card,
  .ikp-step,
  .ikp-step__media,
  .ikp-step__aside,
  .ikp-step__signal,
  .ikp-quote-card,
  .ikp-start__checklist{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ikp-step,
  .ikp-step--reverse{
    margin:0 0 12px!important;
    padding:20px 16px!important;
    border:1px solid var(--ik-app-line)!important;
    background:linear-gradient(145deg,#10100f,#0b0b0b)!important;
  }
  .ikp-phase-label{padding:24px 0!important}

  /* QUIÉNES SOMOS */
  .ik-about-page .ik-about-section,
  .ik-about-page .ik-about-manifesto,
  .ik-about-page .ik-about-principles,
  .ik-about-page .ik-about-method,
  .ik-about-page .ik-about-view,
  .ik-about-page .ik-about-experience,
  .ik-about-page .ik-about-faq-section{padding-block:50px!important}
  .ik-about-page .ik-about-story,
  .ik-about-page .ik-about-hero__card,
  .ik-about-page .ik-about-tags span,
  .ik-about-page .ik-about-faq details{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }

  /* ARCHIVOS: Servicios / Proyectos / Noticias */
  .ik-directory-hero__grid,
  .ik-archive-hero .ik-content-shell{
    padding-top:108px!important;
    padding-bottom:28px!important;
  }
  .ik-directory-panel,
  .ik-service-paths__grid>a,
  .ik-service-card,
  .ik-project-archive-card,
  .ik-news-card{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ik-directory-heading{margin-bottom:24px!important}
  .ik-directory-heading h2{font-size:27px!important}
  .ik-service-paths{padding:14px 0 24px!important}
  .ik-service-paths__grid{
    display:flex!important;
    gap:10px!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    scrollbar-width:none!important;
    padding:0 calc((100vw - 84vw)/2) 8px!important;
    margin-inline:calc((100vw - 100%)/-2)!important;
  }
  .ik-service-paths__grid::-webkit-scrollbar{display:none!important}
  .ik-service-paths__grid>a{
    flex:0 0 84vw!important;
    min-height:154px!important;
    scroll-snap-align:center!important;
  }
  .ik-service-paths__grid>a.is-default-active{
    background:linear-gradient(145deg,#f4a000,#c77e00)!important;
    border-color:#f4a000!important;
    color:#171006!important;
  }
  .ik-service-paths__grid>a.is-default-active span,
  .ik-service-paths__grid>a.is-default-active strong,
  .ik-service-paths__grid>a.is-default-active small,
  .ik-service-paths__grid>a.is-default-active b{color:#171006!important}
  .ik-service-showcase-grid,
  .ik-project-archive-grid,
  .ik-news-grid,
  .ik-archive-grid{grid-template-columns:1fr!important;gap:14px!important}
  .ik-card-body{padding:18px!important}
  .ik-card-media{aspect-ratio:16/10!important}
  .ik-card-media img{width:100%!important;height:100%!important;object-fit:cover!important}

  /* SINGLE SERVICIO */
  .ik-service-hero__inner{padding-top:108px!important;padding-bottom:30px!important}
  .ik-service-hero__actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .ik-service-hero__actions .button{width:100%!important}
  .ik-service-hero__proof{border-radius:var(--ik-app-radius)!important;overflow:hidden!important}
  .ik-service-specs__grid{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
    gap:10px!important;
    padding-bottom:8px!important;
    scrollbar-width:none!important;
  }
  .ik-service-specs__grid::-webkit-scrollbar{display:none!important}
  .ik-service-specs__grid>article{
    flex:0 0 84vw!important;
    scroll-snap-align:center!important;
    border-radius:var(--ik-app-radius)!important;
    background:#0d0d0d!important;
    border:1px solid var(--ik-app-line)!important;
  }
  .ik-service-story__main{display:grid!important;gap:12px!important}
  .ik-service-section{
    margin:0!important;
    padding:20px 16px!important;
    border:1px solid var(--ik-app-line)!important;
    border-radius:var(--ik-app-radius)!important;
    background:linear-gradient(145deg,#10100f,#0b0b0b)!important;
    overflow:hidden!important;
  }
  .ik-service-section__media{border-radius:16px!important;overflow:hidden!important}
  .ik-faq-list details{
    margin-bottom:10px!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:#0d0d0d!important;
  }

  /* SINGLE PROYECTO */
  .ik-case-hero__grid{padding-top:108px!important;padding-bottom:30px!important}
  .ik-case-hero__panel,
  .ik-case-stage,
  .ik-case-detail-intro,
  .ik-case-detail-stage,
  .ik-case-gallery__grid figure,
  .ik-case-video__frame{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ik-case-detail-stage{
    padding:20px 16px!important;
    margin-bottom:12px!important;
    border:1px solid var(--ik-app-line)!important;
    background:#0d0d0d!important;
  }

  /* SINGLE NOTICIA — lectura como app, no columna plana. */
  .ik-tech-hero__grid{padding-top:108px!important;padding-bottom:30px!important}
  .ik-tech-hero__panel,
  .ik-tech-intro,
  .ik-tech-section,
  .ik-tech-inline-cta,
  .ik-tech-related .ik-news-card{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ik-tech-reading{padding:42px 0 54px!important}
  .ik-tech-reading__content{display:grid!important;gap:12px!important}
  .ik-tech-intro{margin:0!important;padding:20px 16px!important}
  .ik-tech-section{
    margin:0!important;
    padding:20px 16px!important;
    border:1px solid var(--ik-app-line)!important;
    background:linear-gradient(145deg,#10100f,#0b0b0b)!important;
  }
  .ik-tech-section h2{margin-bottom:14px!important}
  .ik-tech-section h3{margin-top:22px!important}
  .ik-tech-section ul,
  .ik-tech-section ol{
    padding:16px 16px 16px 34px!important;
    border-radius:14px!important;
  }
  .ik-tech-section blockquote{
    padding:18px!important;
    border-radius:14px!important;
  }
  .ik-tech-related{padding:52px 0!important}

  /* PÁGINAS EDITORIALES MANEJADAS */
  .ik-editorial-hero__grid{padding-top:108px!important;padding-bottom:30px!important}
  .ik-editorial-hero__panel,
  .ik-editorial-intro,
  .ik-editorial-stage,
  .ik-editorial-stage__media{
    border-radius:var(--ik-app-radius)!important;
    overflow:hidden!important;
  }
  .ik-editorial-story{padding:42px 0 54px!important}
  .ik-editorial-story__main{display:grid!important;gap:12px!important}
  .ik-editorial-intro{margin:0!important}
  .ik-editorial-stage{
    margin:0!important;
    padding:20px 16px!important;
    border:1px solid var(--ik-app-line)!important;
    background:linear-gradient(145deg,#10100f,#0b0b0b)!important;
  }
  .ik-editorial-stage.has-media{gap:18px!important}
  .ik-editorial-faq details{
    margin-bottom:10px!important;
    padding:0 14px!important;
    border:1px solid rgba(255,255,255,.08)!important;
    border-radius:14px!important;
    background:#090909!important;
  }

  /* PÁGINAS GENÉRICAS */
  .ik-page-hero{padding-top:100px!important;padding-bottom:28px!important}
  .ik-page-featured{border-radius:var(--ik-app-radius)!important;overflow:hidden!important}
  .ik-page-body{padding:42px 0!important}
  .ik-entry-content>h2{
    margin-top:34px!important;
  }

  /* FOOTER móvil más compacto, sin competir con el dock. */
  .ik-footer-main{gap:26px!important;padding:42px 0 34px!important}
  .ik-footer-title{font-size:30px!important;line-height:1.08!important}
  .ik-footer-contact{border-radius:var(--ik-app-radius)!important}
  .ik-footer-bottom{padding-bottom:104px!important}
}

@media(max-width:390px){
  .site-header{grid-template-columns:minmax(0,1fr) auto 44px!important;padding-inline:9px!important;gap:6px!important}
  .site-header .brand img,.site-header .brand .custom-logo{width:100px!important;max-width:100px!important}
  .ik-mobile-talk{min-height:40px!important;padding-inline:10px!important;font-size:11px!important}
  .menu-toggle{width:44px!important;height:44px!important}
}

@media(prefers-reduced-motion:reduce){
  .site-header .nav,
  .ik-mobile-menu-backdrop,
  .menu-toggle span:not(.screen-reader-text){transition:none!important}
}
