/* ============================================================
   Soft4All Free — R25 Information Architecture
   Scope: central Downloads / Help hubs + product-page compaction.
   R17 continues to own the canonical page background.
   ============================================================ */

:root{
  --s4-r25-border:rgba(121,200,255,.20);
  --s4-r25-border-strong:rgba(121,200,255,.38);
  --s4-r25-panel:rgba(8,18,30,.76);
  --s4-r25-text:#eef7ff;
  --s4-r25-muted:#a9bed0;
  --s4-r25-blue:#2b94ff;
  --s4-r25-cyan:#79e7f5;
}

@media (min-width:821px) and (max-width:1080px){
  .s4-global-header .s4-global-header-nav{gap:2px!important}
  .s4-global-header .s4-global-header-nav a{padding-inline:7px!important;font-size:.74rem!important}
}

main.s4-r25-page{
  width:min(1480px,calc(100% - 28px))!important;
  max-width:none!important;
  margin:0 auto 42px!important;
  padding:18px 0 0!important;
  display:grid!important;
  gap:14px!important;
}
.s4-r25-hero,.s4-r25-panel,.s4-r25-download-card,.s4-r25-help-card{
  min-width:0;
  border:1px solid var(--s4-r25-border);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(17,37,58,.78),rgba(7,17,29,.78));
  box-shadow:0 14px 38px rgba(0,0,0,.20);
}
.s4-r25-hero{padding:clamp(20px,3vw,34px)}
.s4-r25-kicker{
  display:block;margin:0 0 8px;color:var(--s4-r25-cyan);
  font-size:.76rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;
}
.s4-r25-hero h1{
  margin:0 0 10px;color:var(--s4-r25-text);
  font-size:clamp(1.9rem,4vw,3.2rem);line-height:1.08;
}
.s4-r25-hero p{
  max-width:900px;margin:0;color:var(--s4-r25-muted);
  font-size:clamp(.96rem,1.4vw,1.08rem);line-height:1.65;
}
.s4-r25-toolbar{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px;
  border:1px solid var(--s4-r25-border);border-radius:14px;background:rgba(7,17,29,.64);
}
.s4-r25-filter{
  min-height:40px;padding:0 14px;border:1px solid var(--s4-r25-border);
  border-radius:10px;background:rgba(255,255,255,.025);color:#c7d8e7;
  font:inherit;font-size:.85rem;font-weight:800;cursor:pointer;
}
.s4-r25-filter:hover,.s4-r25-filter.is-active,.s4-r25-filter[aria-pressed="true"]{
  border-color:var(--s4-r25-border-strong);background:rgba(43,148,255,.12);color:#fff;
}
.s4-r25-download-grid,.s4-r25-help-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;
}
.s4-r25-download-card,.s4-r25-help-card{
  padding:20px;display:flex;flex-direction:column;gap:10px;
}
.s4-r25-download-card[hidden]{display:none!important}
.s4-r25-card-head{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
}
.s4-r25-badge{
  display:inline-flex;align-items:center;min-height:28px;padding:0 9px;
  border:1px solid var(--s4-r25-border-strong);border-radius:999px;
  background:rgba(43,148,255,.10);color:#cfeaff;font-size:.73rem;font-weight:850;
}
.s4-r25-download-card h2,.s4-r25-help-card h2,.s4-r25-panel h2{
  margin:0;color:var(--s4-r25-text);font-size:clamp(1.18rem,2vw,1.55rem);line-height:1.25;
}
.s4-r25-download-card p,.s4-r25-help-card p,.s4-r25-panel p{
  margin:0;color:var(--s4-r25-muted);line-height:1.58;
}
.s4-r25-file{
  display:block;width:100%;padding:10px 12px;border:1px solid rgba(255,255,255,.09);
  border-radius:10px;background:rgba(0,0,0,.20);color:#dceeff;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem;
  overflow-wrap:anywhere;word-break:break-word;
}
.s4-r25-actions{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px;
}
.s4-r25-action{
  min-height:40px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 14px;border:1px solid var(--s4-r25-border-strong);border-radius:10px;
  background:rgba(43,148,255,.10);color:#eaf7ff!important;-webkit-text-fill-color:#eaf7ff!important;
  text-decoration:none!important;font:inherit;font-size:.84rem;font-weight:850;cursor:pointer;
}
.s4-r25-action.primary{
  border-color:rgba(91,189,255,.70);background:linear-gradient(180deg,#268ff4,#176fcf);
  color:#fff!important;-webkit-text-fill-color:#fff!important;
}
.s4-r25-action:hover,.s4-r25-action:focus-visible{
  border-color:#a9ddff;outline:none;box-shadow:0 0 0 3px rgba(43,148,255,.15);
}
.s4-r25-hash{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.s4-r25-hash code{
  min-width:0;padding:9px 10px;border:1px solid rgba(255,255,255,.08);
  border-radius:9px;background:rgba(0,0,0,.18);color:#bfe1ff;font-size:.74rem;
  overflow-wrap:anywhere;word-break:break-all;
}
.s4-r25-copy{
  min-height:38px;padding:0 11px;border:1px solid var(--s4-r25-border);
  border-radius:9px;background:rgba(255,255,255,.03);color:#e5f4ff;
  font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;
}
.s4-r25-copy:hover,.s4-r25-copy:focus-visible{
  border-color:var(--s4-r25-border-strong);background:rgba(43,148,255,.10);outline:none;
}
.s4-r25-note{
  padding:16px 18px;border:1px solid rgba(121,231,245,.18);
  border-radius:14px;background:rgba(10,29,45,.62);
}
.s4-r25-note strong{color:#eaf7ff}
.s4-r25-note p{margin:4px 0 0;color:var(--s4-r25-muted);line-height:1.55}

/* Product page: compact destinations, not repeated catalogues. */
body[data-page="inventario"] .s4-r25-product-downloads{padding:var(--s4-pad,18px)!important}
body[data-page="inventario"] .s4-r25-product-compact{
  min-width:0!important;height:100%!important;padding:var(--s4-pad,18px)!important;
  border:1px solid var(--s4-r25-border)!important;border-radius:16px!important;
  background:linear-gradient(180deg,rgba(17,37,58,.75),rgba(7,17,29,.75))!important;
  box-shadow:0 14px 36px rgba(0,0,0,.18)!important;
}
body[data-page="inventario"] .s4-r25-product-compact h2,
body[data-page="inventario"] .s4-r25-product-compact h3,
body[data-page="inventario"] .s4-r25-product-downloads h2{margin:5px 0 8px!important}
body[data-page="inventario"] .s4-r25-product-compact p,
body[data-page="inventario"] .s4-r25-product-downloads p{margin:0!important;line-height:1.55!important}
body[data-page="inventario"] .s4-r25-product-actions{
  display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:14px!important;
}
body[data-page="inventario"] .s4-r25-product-actions .button{width:auto!important;min-height:40px!important}
body[data-page="inventario"] #apoyar.s4-r25-product-compact{display:block!important}
body[data-page="inventario"] #apoyar.s4-r25-product-compact .button{width:auto!important}

/* Native FAQ accordion is clearer than forcing every answer into a modal. */
.faq > details{overflow:hidden}
.faq > details > summary{position:relative;padding-right:46px!important;cursor:pointer}
.faq > details > summary::after{
  content:"+";position:absolute;right:14px;top:50%;width:26px;height:26px;
  display:grid;place-items:center;transform:translateY(-50%);
  border:1px solid rgba(121,200,255,.24);border-radius:8px;
  background:rgba(43,148,255,.06);color:#9edbff;font-size:1.12rem;font-weight:850;line-height:1;
}
.faq > details[open] > summary::after{
  content:"−";border-color:rgba(121,200,255,.40);background:rgba(43,148,255,.12);color:#fff;
}
.faq > details > summary:focus-visible{outline:2px solid rgba(121,200,255,.75);outline-offset:-2px}

@media (max-width:900px){
  main.s4-r25-page{width:calc(100% - 16px)!important;padding-top:12px!important;gap:12px!important}
  .s4-r25-download-grid,.s4-r25-help-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .s4-r25-hero,.s4-r25-download-card,.s4-r25-help-card{padding:15px}
  .s4-r25-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:10px}
  .s4-r25-filter{width:100%;padding-inline:8px}
  .s4-r25-actions,body[data-page="inventario"] .s4-r25-product-actions{
    display:grid!important;grid-template-columns:1fr!important;
  }
  .s4-r25-action,body[data-page="inventario"] .s4-r25-product-actions .button{width:100%!important}
  .s4-r25-hash{grid-template-columns:1fr}
  .s4-r25-copy{width:100%}
}


/* ============================================================
   R25 FIX1 — real mobile viewport + language + modal safety
   The JS updates --s4-viewport-width/height from VisualViewport
   when available, so browser chrome / virtual keyboard changes
   cannot push dialogs outside the visible screen.
   ============================================================ */
:root{
  --s4-viewport-width:100vw;
  --s4-viewport-height:100vh;
  --s4-safe-top:env(safe-area-inset-top,0px);
  --s4-safe-right:env(safe-area-inset-right,0px);
  --s4-safe-bottom:env(safe-area-inset-bottom,0px);
  --s4-safe-left:env(safe-area-inset-left,0px);
}
@supports (height:100dvh){
  :root{--s4-viewport-height:100dvh}
}

/* Every responsive shell child must be allowed to shrink. */
.s4-global-header .header-inner,
.s4-shell-header-inner,
.s4-shell-top-brand,
.s4-shell-mobile-menu,
main,
main > *,
section,
article,
.s4-r25-download-card,
.s4-r25-help-card{
  min-width:0;
}
.s4-shell-top-brand img{
  display:block;
  max-width:100%;
  height:auto;
}

/* Current-language text is added by r25-information-architecture.js. */
.s4-mobile-language-name{
  display:none;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Known modal families and future accessible dialogs:
   viewport is the hard boundary, not the document size. */
.modal-backdrop,
.language-modal-backdrop,
.s4c-backdrop{
  box-sizing:border-box!important;
  max-width:var(--s4-viewport-width)!important;
  max-height:var(--s4-viewport-height)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
.download-modal,
.language-modal,
.s4c-modal,
[role="dialog"][aria-modal="true"]{
  box-sizing:border-box!important;
  width:min(100%,680px)!important;
  max-width:calc(var(--s4-viewport-width) - 16px - var(--s4-safe-left) - var(--s4-safe-right))!important;
  max-height:calc(var(--s4-viewport-height) - 16px - var(--s4-safe-top) - var(--s4-safe-bottom))!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable both-edges;
}
.modal-text,
.modal-file-box,
.modal-note,
.download-modal h2,
.language-modal h2,
.language-modal p,
.s4c-modal,
.s4c-row,
.s4c-row > span{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
}
.modal-file-box code,
.modal-file-box strong,
[data-modal-checksum]{
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:break-all!important;
}

/* Cookie UI also obeys the visible mobile viewport. */
#s4-cookie-banner{
  box-sizing:border-box!important;
  max-width:calc(var(--s4-viewport-width) - 16px - var(--s4-safe-left) - var(--s4-safe-right))!important;
  max-height:calc(var(--s4-viewport-height) - 16px - var(--s4-safe-top) - var(--s4-safe-bottom))!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}

/* ---------- Phone / tablet shell ---------- */
@media (max-width:820px){
  .s4-global-header .header-inner,
  .s4-shell-header-inner{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding-left:max(8px,var(--s4-safe-left))!important;
    padding-right:max(8px,var(--s4-safe-right))!important;
    gap:8px!important;
  }

  .s4-shell-top-brand{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:min(150px,38vw)!important;
  }
  .s4-shell-top-brand img{
    width:auto!important;
    max-width:100%!important;
    max-height:42px!important;
    object-fit:contain!important;
  }

  .s4a-language-selector{
    flex:0 1 auto!important;
    min-width:0!important;
    margin-left:auto!important;
    z-index:2147482000!important;
  }
  .s4a-language-trigger{
    width:auto!important;
    min-width:0!important;
    max-width:min(160px,42vw)!important;
    height:40px!important;
    padding:0 9px!important;
    gap:6px!important;
  }
  .s4a-language-trigger img{
    flex:0 0 auto!important;
    width:26px!important;
    height:auto!important;
    max-width:26px!important;
  }
  .s4-mobile-language-name{
    display:block!important;
    color:#eef7ff!important;
    -webkit-text-fill-color:#eef7ff!important;
    font-size:.76rem!important;
    font-weight:800!important;
    line-height:1.1!important;
  }
  .s4a-language-chevron{flex:0 0 auto!important}

  /* On phones the language picker becomes a viewport-safe bottom sheet. */
  .s4a-language-menu{
    position:fixed!important;
    left:max(8px,var(--s4-safe-left))!important;
    right:max(8px,var(--s4-safe-right))!important;
    top:auto!important;
    bottom:max(8px,var(--s4-safe-bottom))!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:calc(var(--s4-viewport-height) - 76px - var(--s4-safe-top) - var(--s4-safe-bottom))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    border-radius:14px!important;
    z-index:2147483200!important;
  }
  .s4a-language-option{
    width:100%!important;
    min-width:0!important;
    grid-template-columns:30px minmax(0,1fr) 18px!important;
    gap:10px!important;
    padding:10px 11px!important;
  }
  .s4a-language-option > span:nth-child(2){
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    line-height:1.25!important;
  }

  .modal-backdrop,
  .language-modal-backdrop,
  .s4c-backdrop{
    padding:
      max(8px,var(--s4-safe-top))
      max(8px,var(--s4-safe-right))
      max(8px,var(--s4-safe-bottom))
      max(8px,var(--s4-safe-left))!important;
    place-items:center!important;
  }
  .download-modal,
  .language-modal,
  .s4c-modal,
  [role="dialog"][aria-modal="true"]{
    margin:auto!important;
    border-radius:16px!important;
  }

  #s4-cookie-banner{
    left:max(8px,var(--s4-safe-left))!important;
    right:max(8px,var(--s4-safe-right))!important;
    bottom:max(8px,var(--s4-safe-bottom))!important;
    width:auto!important;
    margin:0!important;
  }
}

/* ---------- Narrow phones ---------- */
@media (max-width:560px){
  .s4-shell-top-brand{max-width:min(128px,34vw)!important}
  .s4a-language-trigger{max-width:min(150px,43vw)!important}
  .download-modal,
  .language-modal,
  .s4c-modal,
  [role="dialog"][aria-modal="true"]{
    width:100%!important;
    padding:14px!important;
    border-radius:14px!important;
  }
  .language-modal h2,
  .download-modal h2{
    font-size:clamp(1.18rem,6vw,1.55rem)!important;
    line-height:1.18!important;
  }
  .language-options{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .modal-actions,
  .s4c-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .modal-actions > *,
  .s4c-actions > *{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
  }
  .modal-file-box{
    padding:10px!important;
  }
  #s4-cookie-banner{
    padding:14px!important;
  }
}

/* ---------- Very narrow phones: preserve language text, free menu space ---------- */
@media (max-width:390px){
  .s4-global-header .header-inner,
  .s4-shell-header-inner{gap:5px!important}
  .s4-shell-top-brand{max-width:min(104px,29vw)!important}
  .s4-shell-top-brand img{max-height:36px!important}
  .s4a-language-trigger{
    max-width:min(142px,46vw)!important;
    padding-inline:7px!important;
  }
  .s4-mobile-language-name{font-size:.72rem!important}
  .s4-shell-menu-button{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    padding-inline:0!important;
    justify-content:center!important;
  }
  .s4-shell-menu-button [data-s4-shell-menu-label]{display:none!important}
}

/* Low-height landscape phones: use almost the full screen and keep scroll internal. */
@media (max-height:520px) and (orientation:landscape){
  .s4a-language-menu{
    top:max(6px,var(--s4-safe-top))!important;
    bottom:max(6px,var(--s4-safe-bottom))!important;
    max-height:none!important;
  }
  .modal-backdrop,
  .language-modal-backdrop,
  .s4c-backdrop{
    place-items:start center!important;
    padding-block:max(6px,var(--s4-safe-top)) max(6px,var(--s4-safe-bottom))!important;
  }
  .download-modal,
  .language-modal,
  .s4c-modal,
  [role="dialog"][aria-modal="true"]{
    max-height:calc(var(--s4-viewport-height) - 12px - var(--s4-safe-top) - var(--s4-safe-bottom))!important;
  }
}


/* JS-classified landscape phone: width alone is not a reliable phone test. */
html[data-s4-viewport="phone-landscape"] body.s4-unified-sidebar-page,
html[data-s4-viewport="phone-landscape"] body.s4-unified-sidebar-page.s4-sidebar-page-collapsed{
  padding-left:0!important;
}
html[data-s4-viewport="phone-landscape"] body.s4-unified-sidebar-page > header{
  width:100%!important;
  margin-left:0!important;
}
html[data-s4-viewport="phone-landscape"] .s4-global-sidebar,
html[data-s4-viewport="phone-landscape"] .s4-global-header .s4-global-header-nav{
  display:none!important;
}
html[data-s4-viewport="phone-landscape"] .s4-global-header .header-inner,
html[data-s4-viewport="phone-landscape"] .s4-shell-header-inner{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding-left:max(8px,var(--s4-safe-left))!important;
  padding-right:max(8px,var(--s4-safe-right))!important;
  gap:8px!important;
}
html[data-s4-viewport="phone-landscape"] .s4-shell-top-brand{
  flex:0 1 auto!important;
  max-width:min(132px,25vw)!important;
}
html[data-s4-viewport="phone-landscape"] .s4a-language-selector{
  display:flex!important;
  flex:0 1 auto!important;
  min-width:0!important;
  margin-left:auto!important;
  z-index:2147482000!important;
}
html[data-s4-viewport="phone-landscape"] .s4a-language-trigger{
  width:auto!important;
  min-width:0!important;
  max-width:min(160px,28vw)!important;
  height:38px!important;
  padding:0 9px!important;
  gap:6px!important;
}
html[data-s4-viewport="phone-landscape"] .s4-mobile-language-name{
  display:block!important;
  color:#eef7ff!important;
  -webkit-text-fill-color:#eef7ff!important;
  font-size:.74rem!important;
  font-weight:800!important;
}
html[data-s4-viewport="phone-landscape"] .s4a-language-menu{
  position:fixed!important;
  left:max(8px,var(--s4-safe-left))!important;
  right:max(8px,var(--s4-safe-right))!important;
  top:max(6px,var(--s4-safe-top))!important;
  bottom:max(6px,var(--s4-safe-bottom))!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  max-height:none!important;
  overflow:auto!important;
  z-index:2147483200!important;
}


/* ==============================================================
   SOFT4ALL MOBILE STABILITY R26
   Corrige la herencia del antiguo espacio lateral en viewport móvil.
   ============================================================== */

@media (max-width: 820px) {

  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
  }

  body.s4-unified-sidebar-page,
  body.s4-unified-sidebar-page.s4-sidebar-page-collapsed {
    --s4-sidebar-space: 0px !important;
    padding-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.s4-unified-sidebar-page > header,
  body.s4-unified-sidebar-page > header.s4-global-header,
  .s4-global-header,
  .site-header.s4-global-header {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  .s4-global-header .header-inner,
  .s4-shell-header-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body > main,
  main,
  #software-center,
  #software-center.sc-shell,
  .s4-r25-page,
  .s4-security-page,
  .s4x-shell,
  .s4-support-pay,
  .s4-contact-page {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #software-center.sc-shell,
  #software-center.sc-shell.s4-sidebar-collapsed,
  main.s4-r25-page,
  .s4-security-page,
  .s4x-shell,
  .s4-support-pay,
  .s4-contact-page {
    width: calc(100% - 16px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .s4-r25-download-card,
  .s4-r25-help-card,
  .s4-r25-panel,
  .s4-r25-hero,
  .sc-content,
  .sc-card,
  .feature,
  .card,
  .s4-pay-card {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  img,
  svg,
  video,
  canvas,
  iframe {
    max-width: 100% !important;
  }

  pre,
  code {
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
}

@media (max-width: 520px) {

  .s4-global-header {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .s4-global-header .header-inner,
  .s4-shell-header-inner {
    gap: 6px !important;
  }

  .s4-shell-top-brand {
    min-width: 0 !important;
    max-width: min(128px, 36vw) !important;
  }

  .s4-shell-top-brand img {
    width: auto !important;
    height: auto !important;
    max-height: 31px !important;
    max-width: 100% !important;
  }

  .s4-shell-menu-button {
    flex: 0 0 auto !important;
  }

  .s4-shell-mobile-menu {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  #software-center.sc-shell,
  main.s4-r25-page,
  .s4-security-page,
  .s4x-shell,
  .s4-support-pay,
  .s4-contact-page {
    width: calc(100% - 12px) !important;
  }
}


/* ==============================================================
   SOFT4ALL MOBILE TARGET FIX R27
   Ajustes dirigidos tras validacion visual R26.
   ============================================================== */

@media (max-width: 820px) {

  /* HOME — filtros y controles */
  #software-center .sc-mobile-filters,
  #software-center .sc-toolbar,
  #software-center .sc-stats,
  #software-center .sc-grid,
  #software-center .sc-content {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #software-center .sc-mobile-filters .sc-filter,
  #software-center .sc-toolbar > *,
  #software-center .sc-search,
  #software-center .sc-search input,
  #software-center .sc-status {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #software-center .sc-mobile-filters .sc-filter {
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  /* INVENTARIO — acciones */
  body[data-page="inventario"] .hero-actions,
  body[data-page="inventario"] .s4-r25-product-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body[data-page="inventario"] .hero-actions > *,
  body[data-page="inventario"] .s4-r25-product-actions > * {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  /* DESCARGAS — toolbar y acciones */
  .s4-r25-toolbar,
  .s4-r25-actions,
  .s4-r25-card-head,
  .s4-r25-hash {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .s4-r25-filter,
  .s4-r25-action,
  .s4-r25-copy,
  .s4-r25-file,
  .s4-r25-hash code {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    white-space: normal !important;
  }

  /* CONTACTO — correos y acciones */
  .s4-contact-card,
  .s4-ticket-card,
  .s4-ticket-actions,
  .s4-support-methods-inline {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .s4-contact-address,
  .s4-contact-link,
  .s4-ticket-action,
  .s4-ticket-actions > *,
  .s4-support-methods-inline > * {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    white-space: normal !important;
  }
}

@media (max-width: 620px) {

  /* HOME */
  #software-center .sc-mobile-filters {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }

  #software-center .sc-mobile-filters .sc-filter:last-child {
    grid-column: 1 / -1 !important;
  }

  /* INVENTARIO */
  body[data-page="inventario"] .hero-actions,
  body[data-page="inventario"] .s4-r25-product-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  body[data-page="inventario"] .hero-actions .button,
  body[data-page="inventario"] .s4-r25-product-actions .button {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  /* DESCARGAS */
  .s4-r25-toolbar {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  .s4-r25-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  .s4-r25-action,
  .s4-r25-copy {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .s4-r25-hash {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  /* CONTACTO */
  .s4-ticket-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 7px !important;
  }

  .s4-ticket-actions > *,
  .s4-contact-link,
  .s4-ticket-action {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
  }

  /* COOKIE — ya no se sale; solo compactamos */
  #s4-cookie-banner {
    padding: 11px !important;
    font-size: .88rem !important;
    line-height: 1.35 !important;
  }

  #s4-cookie-banner p {
    margin-top: 5px !important;
    margin-bottom: 7px !important;
  }

  #s4-cookie-banner button,
  #s4-cookie-banner a {
    min-height: 36px !important;
  }
}

@media (max-width: 390px) {

  #software-center .sc-mobile-filters {
    gap: 5px !important;
  }

  #software-center .sc-mobile-filters .sc-filter {
    padding-left: 5px !important;
    padding-right: 5px !important;
    font-size: .76rem !important;
  }

  .s4-r25-toolbar {
    padding: 7px !important;
  }

  #s4-cookie-banner {
    left: 6px !important;
    right: 6px !important;
    bottom: 6px !important;
    padding: 10px !important;
  }
}


/* ==============================================================
   SOFT4ALL MOBILE PREMIUM FIX R28
   Correccion exclusiva de Inventario > Premium.
   ============================================================== */

@media (max-width: 620px) {

  body[data-page="inventario"] #premium-suite {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  body[data-page="inventario"] #premium-suite .s4-suite-flow,
  body[data-page="inventario"] #premium-suite .s4-pricing-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    gap: 10px !important;
  }

  body[data-page="inventario"] #premium-suite .s4-pro-card,
  body[data-page="inventario"] #premium-suite .s4-price-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  body[data-page="inventario"] #premium-suite h2,
  body[data-page="inventario"] #premium-suite h3,
  body[data-page="inventario"] #premium-suite p,
  body[data-page="inventario"] #premium-suite span,
  body[data-page="inventario"] #premium-suite strong,
  body[data-page="inventario"] #premium-suite .s4-price-line {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    white-space: normal !important;
  }
}


/* ==============================================================
   SOFT4ALL VISUAL POLISH R29
   Pulido visual móvil. No modifica estructura R26-R28.
   ============================================================== */

@media (max-width: 620px) {

  /* ----------------------------------------------------------
     CABECERA / MENU
     ---------------------------------------------------------- */

  .s4-global-header .header-inner,
  .s4-shell-header-inner {
    min-height: 58px !important;
  }

  .s4-shell-mobile-menu {
    gap: 6px !important;
    padding: 8px !important;
  }

  .s4-shell-mobile-menu a {
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 9px 7px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.18 !important;
    border-radius: 9px !important;
    box-sizing: border-box !important;
  }

  .s4-shell-menu-button {
    min-height: 40px !important;
    border-radius: 10px !important;
  }


  /* ----------------------------------------------------------
     JERARQUIA TIPOGRAFICA
     ---------------------------------------------------------- */

  .s4-r25-hero h1,
  .s4-contact-hero h1,
  .s4-security-page h1,
  .s4x-shell h1,
  .s4-support-pay h1 {
    font-size: clamp(1.9rem, 9vw, 2.55rem) !important;
    line-height: 1.06 !important;
    letter-spacing: -.035em !important;
  }

  body[data-page="inventario"] .hero h1 {
    font-size: clamp(2rem, 9.5vw, 2.75rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em !important;
  }

  .section-head h2,
  .s4-r25-page h2,
  .s4-security-page h2,
  .s4x-shell h2,
  .s4-support-pay h2 {
    line-height: 1.12 !important;
  }


  /* ----------------------------------------------------------
     ESPACIADO VERTICAL
     ---------------------------------------------------------- */

  .s4-r25-page,
  .s4-security-page,
  .s4x-shell,
  .s4-support-pay,
  .s4-contact-page {
    margin-bottom: 24px !important;
  }

  .s4-r25-hero,
  .s4-contact-hero {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }

  .s4-r25-download-card,
  .s4-r25-help-card,
  .s4-contact-card,
  .s4-ticket-card,
  .s4-pay-card {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }


  /* ----------------------------------------------------------
     BOTONES / ACCIONES
     ---------------------------------------------------------- */

  .button,
  .s4-r25-action,
  .s4-ticket-action,
  .s4-contact-link,
  .s4-manuals-button,
  .s4-r25-filter,
  .s4-r25-copy {
    min-height: 42px !important;
    line-height: 1.2 !important;
    border-radius: 10px !important;
  }

  .button,
  .s4-r25-action,
  .s4-ticket-action,
  .s4-contact-link,
  .s4-manuals-button {
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }


  /* ----------------------------------------------------------
     COOKIE / PRIVACIDAD
     ---------------------------------------------------------- */

  #s4-cookie-banner {
    padding: 10px 11px !important;
    font-size: .84rem !important;
    line-height: 1.32 !important;
    border-radius: 13px !important;
  }

  #s4-cookie-banner p {
    margin-top: 4px !important;
    margin-bottom: 6px !important;
    line-height: 1.32 !important;
  }

  #s4-cookie-banner button,
  #s4-cookie-banner a {
    min-height: 34px !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    line-height: 1.15 !important;
  }

  #s4-cookie-banner h2,
  #s4-cookie-banner h3,
  #s4-cookie-banner strong {
    line-height: 1.18 !important;
  }


  /* ----------------------------------------------------------
     TARJETAS / TEXTOS
     ---------------------------------------------------------- */

  .s4-r25-download-card p,
  .s4-r25-help-card p,
  .s4-contact-card p,
  .s4-ticket-card p,
  .s4-pay-card p {
    line-height: 1.48 !important;
  }

  .eyebrow {
    line-height: 1.25 !important;
  }
}


@media (max-width: 390px) {

  .s4-shell-mobile-menu {
    gap: 5px !important;
    padding: 6px !important;
  }

  .s4-shell-mobile-menu a {
    min-height: 40px !important;
    font-size: .78rem !important;
  }

  #s4-cookie-banner {
    padding: 9px 10px !important;
    font-size: .82rem !important;
  }

  body[data-page="inventario"] .hero h1 {
    font-size: clamp(1.95rem, 9.3vw, 2.45rem) !important;
  }
}


/* ==============================================================
   SOFT4ALL MOBILE POLISH R30
   Legibilidad y banner de privacidad compacto.
   No modifica la estructura cerrada R26-R28.
   ============================================================== */

@media (max-width: 620px) {

  /* ----------------------------------------------------------
     WRAPPING Y LEGIBILIDAD
     ---------------------------------------------------------- */

  .s4-r25-page,
  .s4-r25-page *,
  .s4-security-page,
  .s4-security-page *,
  .s4x-shell,
  .s4x-shell *,
  .s4-support-pay,
  .s4-support-pay *,
  .s4-contact-page,
  .s4-contact-page *,
  body[data-page="inventario"] main,
  body[data-page="inventario"] main * {
    min-width: 0;
  }

  .s4-r25-page h1,
  .s4-r25-page h2,
  .s4-r25-page h3,
  .s4-security-page h1,
  .s4-security-page h2,
  .s4-security-page h3,
  .s4x-shell h1,
  .s4x-shell h2,
  .s4x-shell h3,
  .s4-support-pay h1,
  .s4-support-pay h2,
  .s4-support-pay h3,
  .s4-contact-page h1,
  .s4-contact-page h2,
  .s4-contact-page h3,
  body[data-page="inventario"] main h1,
  body[data-page="inventario"] main h2,
  body[data-page="inventario"] main h3 {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto;
  }

  .s4-r25-page p,
  .s4-security-page p,
  .s4x-shell p,
  .s4-support-pay p,
  .s4-contact-page p,
  body[data-page="inventario"] main p {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }


  /* ----------------------------------------------------------
     TITULARES GRANDES
     ---------------------------------------------------------- */

  .s4-r25-page h1,
  .s4-security-page h1,
  .s4x-shell h1,
  .s4-support-pay h1,
  .s4-contact-page h1 {
    font-size: clamp(1.85rem, 8.4vw, 2.35rem) !important;
  }


  /* ----------------------------------------------------------
     COOKIE BANNER MÁS COMPACTO
     ---------------------------------------------------------- */

  #s4-cookie-banner {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(48vh, 360px) !important;
    padding: 9px 11px !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
  }

  #s4-cookie-banner p {
    margin: 3px 0 6px !important;
    font-size: .79rem !important;
    line-height: 1.28 !important;
  }

  #s4-cookie-banner h2,
  #s4-cookie-banner h3 {
    margin: 0 0 4px !important;
    font-size: 1rem !important;
    line-height: 1.15 !important;
  }

  #s4-cookie-banner .s4-cookie-actions,
  #s4-cookie-banner [class*="actions"] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 6px !important;
  }

  #s4-cookie-banner button {
    min-width: 0 !important;
    min-height: 34px !important;
    padding: 6px 8px !important;
    font-size: .79rem !important;
  }

  #s4-cookie-banner nav,
  #s4-cookie-banner .s4-cookie-links {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 10px !important;
    margin-top: 5px !important;
  }

  #s4-cookie-banner nav a,
  #s4-cookie-banner .s4-cookie-links a {
    min-height: auto !important;
    padding: 2px 0 !important;
    font-size: .72rem !important;
    line-height: 1.2 !important;
  }
}


@media (max-width: 390px) {

  #s4-cookie-banner {
    left: 6px !important;
    right: 6px !important;
    bottom: 6px !important;
    padding: 8px 9px !important;
  }

  #s4-cookie-banner p {
    font-size: .76rem !important;
  }

  .s4-r25-page h1,
  .s4-security-page h1,
  .s4x-shell h1,
  .s4-support-pay h1,
  .s4-contact-page h1 {
    font-size: clamp(1.8rem, 8.2vw, 2.2rem) !important;
  }
}
