/* ==========================================================================
   ApkAward redesign — layout/UX inspired by app-store directories
   (apkpure.net's search-first structure, aptoide.com's card/button/accent
   treatment), existing ApkAward brand (own logo/name — no third-party
   branding, logos or marketing copy copied). Scope: header search bar,
   category chip bar, section titles, and the app-card grid (shared by the
   homepage, category, search and related-apps listings). Palette is LIGHT
   (white/light-gray surfaces, dark text). The theme's built-in dark mode is
   still available to visitors via the existing #button_light_dark toggle
   (appyn_color_theme admin option flipped from 'oscuro' to 'claro' so LIGHT
   is the default for new visitors and crawlers). Accent updated from the
   apkpure-style green #2aae4b to an aptoide-style coral-orange #fe6446 (site
   owner request, explicitly scoped to color/layout inspiration only — see
   the Performance & Duplication Fixes entry on this change). The three
   parent-theme admin "Colores" options that already drive .buttond /
   .rating-average / .stars (color_theme_principal, color_download_button,
   color_stars) were updated to match via update_option(), same mechanism
   the theme itself provides for a sitewide recolor — not overridden here.
   Nothing here touches <head>, URLs, or any PHP data output — presentation
   only, layered after the parent theme's stylesheet.

   IMPORTANT: this file only recolors/reshapes existing elements. It never
   changes display/flex/position/width/height on the header's own
   logo+search+nav row — that row is already a working, responsive,
   theme-native layout; fighting it caused a real layout bug in an earlier
   draft (the nav wrapped outside the header's fixed height). Keep it that
   way: cosmetic-only rules in the header section below.
   ========================================================================== */

:root{
  --aa-bg:#e6e9ef; /* matches the parent theme's own light-mode base body background - no seam between chrome we style and chrome we don't */
  --aa-surface:#ffffff; /* card/box surfaces - white, apkpure-style */
  --aa-surface-alt:#f4f5f8; /* footer / alt band, a touch off the page bg */
  --aa-border:#e3e6ec;
  --aa-ink:#5b6472; /* muted body/meta text, ~5:1 contrast on white */
  --aa-ink-strong:#1a1d24; /* headings/strong text, near-black */
  --aa-accent:#fe6446; /* aptoide-style coral-orange accent (was #2aae4b apkpure-style green, before that #ea8909) */
  --aa-header-grad: linear-gradient(90deg, #ff7a38 0%, #ffb35c 35%, #6fe0b9 70%, #39b9a0 100%); /* orange-to-teal header gradient, site owner reference mockups (2026-09-02) */
  --aa-tag-mod:#20a400;
  --aa-radius-sm:3px;
  --aa-radius-md:8px;
  --aa-radius-icon:20%; /* matches apkpure.net's measured 15% icon radius, scaled up slightly since our icons render a touch smaller */
  --aa-radius-pill:999px;
  --aa-gap:12px; /* apkpure.net's measured card-grid gap */
}

/* --------------------------------------------------------------------- */
/* Header search bar — cosmetic only (color/shape), no layout changes.   */
/* The theme's own #header .searchBox / #subheader.np .searchBox already  */
/* handle sizing, responsiveness and the live search-suggestions dropdown;*/
/* we only recolor them to match the light green brand.                   */
/* --------------------------------------------------------------------- */
#header .searchBox .sb_search[type=text]{
  background:var(--aa-surface);
  color:var(--aa-ink-strong);
  border-radius:var(--aa-radius-pill) 0 0 var(--aa-radius-pill);
}
#header .searchBox .sb_search[type=text]::placeholder{
  color:var(--aa-ink);
  opacity:.75;
}
#header .searchBox .sb_submit[type=submit]{
  border-radius:0 var(--aa-radius-pill) var(--aa-radius-pill) 0;
}

/* --------------------------------------------------------------------- */
/* Category chip bar (apkpure-style pills)                                */
/* --------------------------------------------------------------------- */
.catbar{
  margin:16px 0;
  padding-bottom:2px;
}
.catbar ul{
  display:flex;
  gap:8px;
  overflow-x:auto;
  scrollbar-width:thin;
  padding:2px 2px 8px;
  list-style:none;
  margin:0;
}
.catbar li{
  flex:none;
}
.catbar li a{
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  background:var(--aa-surface) !important;
  color:var(--aa-ink-strong) !important;
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-pill);
  padding:8px 16px;
  font-size:13px;
  font-weight:600;
  transition:background .15s ease,border-color .15s ease;
}
.catbar li a:hover,
.catbar li a:focus-visible{
  background:var(--aa-accent) !important;
  border-color:var(--aa-accent);
  color:#fff !important;
}
.catbar .icop:empty{
  display:none; /* hide the icon slot when a category has no icon set, avoids a stray glyph box */
}
/* The resting chip (--aa-surface on --aa-bg) reads as flat gray at a glance
   since both are dark shades — give it a visible accent-tinted border and
   more weight so it reads as a distinct, tappable pill even before hover. */
.catbar li a{
  border-color:rgba(254,100,70,.35);
  font-weight:700;
  font-size:14px;
  padding:9px 18px;
}

/* --------------------------------------------------------------------- */
/* Section titles — a short accent bar makes each section read as a      */
/* distinct block instead of body copy, without adding any new heading    */
/* text (same string, same tag — just a visual marker before it).        */
/* --------------------------------------------------------------------- */
.section .title-section{
  font-size:19px;
  font-weight:700;
  color:var(--aa-ink-strong);
  border-bottom:none;
  margin:0 0 14px;
  padding:0 0 0 12px;
  position:relative;
}
.section .title-section::before{
  content:'';
  position:absolute;
  left:0;
  top:2px;
  bottom:2px;
  width:4px;
  border-radius:var(--aa-radius-sm);
  background:var(--aa-accent);
}

/* --------------------------------------------------------------------- */
/* App card grid — used on homepage, category, search, related-apps       */
/* (.baps is the existing grid wrapper; .bav/.bav2 are the existing card  */
/* classes, kept for compatibility with rating-vote JS and the site's own */
/* accent-color CSS, which still targets them and keeps working).         */
/* --------------------------------------------------------------------- */
.section .baps,
.rlat .baps,
#sidebar .baps{
  display:grid;
  grid-template-columns:repeat(auto-fit,140px); /* apkpure.net's measured card width is ~142px */
  gap:var(--aa-gap);
}
@media (max-width:480px){
  .section .baps,.rlat .baps,#sidebar .baps{
    grid-template-columns:repeat(auto-fit,104px);
    gap:10px;
    /* Site owner report (image, 2026-09-02): homepage category cards read
       too tall on mobile, with uneven blank gaps in shorter cards (CSS
       Grid's default align-items:stretch forces every card in a row to
       match the row's tallest card, and .acard__rating{margin-top:auto}
       below then pushes the stars down into that leftover space). Letting
       cards size to their own content removes both the forced stretch and
       the resulting gap. */
    align-items:start;
  }
  /* Compact card content on mobile only -- desktop/tablet untouched. */
  .acard__icon{
    padding:8px 8px 0;
  }
  .acard__body{
    padding:6px 8px 8px;
    gap:3px;
  }
  .acard__body .title{
    font-size:12.5px;
    min-height:0;
    -webkit-line-clamp:1; /* was 2 -- the reserved 2-line height was the single biggest source of extra card height on mobile */
  }
  .acard__meta{
    font-size:10.5px;
  }
  .acard__rating{
    margin-top:4px; /* was auto -- no longer needed now the card isn't force-stretched */
    padding-top:0;
  }
}

.acard{
  padding:0 !important; /* overrides parent's flex-item padding, grid gap replaces it */
}
/* The parent theme injects a per-breakpoint inline <style> that sets
   .section .baps .bav { width: calc(100%/N) } for its own flex-based list
   layout (N = the admin's "apps per row" setting). That inline block loads
   after this stylesheet and would otherwise squeeze our grid items down to
   a tiny fraction of their grid column, so we explicitly hand width control
   back to the grid track here. */
.section .baps .acard,
.rlat .baps .acard,
#sidebar .baps .acard{
  width:auto !important;
}
.acard > a{
  display:flex;
  flex-direction:column;
  height:100%;
  background:var(--aa-surface);
  border:1px solid var(--aa-border) !important; /* the site's own accent-color CSS sets border-color on .bav a unconditionally; keep the calm state here and let :hover below re-color it */
  border-radius:var(--aa-radius-md);
  overflow:hidden;
  box-shadow:none;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.acard > a:hover,
.acard > a:focus-visible{
  transform:translateY(-5px) scale(1.015);
  border-color:var(--aa-accent) !important;
  box-shadow:0 14px 28px -10px rgba(26,29,36,.22),0 0 0 1px rgba(254,100,70,.25);
}
.acard > a::before{
  content:none !important; /* remove the old full-card overlay link trick from bav1 */
}

.acard__icon{
  position:relative;
  padding:10px 10px 0; /* apkpure.net's measured card padding is a flat 10px */
}
.acard__icon .bloque-imagen{
  padding-bottom:0 !important;
  border-radius:var(--aa-radius-icon);
  overflow:hidden;
  aspect-ratio:1/1;
  background-size:cover;
  background-position:center;
}
.acard__icon .bloque-imagen img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:var(--aa-radius-icon);
}
/* keep existing status ribbon (New/Updated) readable over the icon */
.acard__icon .bloque-status{
  position:absolute;
  top:6px;
  left:6px;
  z-index:2;
  font-size:10px;
  padding:3px 8px;
  border-radius:var(--aa-radius-sm);
  color:#fff;
}

.acard__body{
  padding:8px 10px 10px; /* apkpure.net's measured 8px gap under the icon, 10px side padding */
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1;
}
.acard__body .title{
  font-size:14px;
  font-weight:700;
  color:var(--aa-ink-strong);
  line-height:1.25;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.5em;
}
.acard__meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 8px;
  font-size:12px; /* apkpure.net's measured developer-line size */
  color:var(--aa-ink);
  opacity:.85;
}
.acard__meta .developer{
  order:1;
}
.acard__meta .version{
  order:2;
  display:flex;
  align-items:center;
  gap:4px;
}
.acard__meta .size,
.acard__meta .app-date{
  order:3;
}
.acard__meta .b-type{
  display:inline-block;
  font-size:9px;
  font-weight:700;
  color:#fff;
  background:var(--aa-tag-mod);
  border-radius:var(--aa-radius-sm);
  padding:1px 5px;
  text-transform:uppercase;
}

.acard__rating{
  margin-top:auto;
  padding-top:6px;
}
.acard__rating .box-rating{
  margin:0 !important;
}
.acard__rating .rating-average,
.acard__rating .rating-text{
  font-size:11px;
}

/* Carousel context ("Most Rated" section reuses the same .acard) */
.px-carousel-item .acard{
  width:150px;
}

/* --------------------------------------------------------------------- */
/* Motion & accessibility                                                  */
/* --------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .acard > a{ transition:none; }
  .acard > a:hover{ transform:none; }
}

/* ==========================================================================
   Single app / article page — hero + gallery + boxes.
   Scope: .app-s (single.php / single-versions.php wrapper) only. AMP is
   intentionally untouched (own CSS budget/validity, out of scope). Every
   color here is already the site's own admin-configured accent (green),
   applied dynamically by the parent theme's own inline CSS — nothing here
   sets a new background/text color on .buttond, .tags a, .meta-cats a,
   .rating-average, or .stars; those already render on-brand. This section
   only reshapes spacing, radius and typography on the parent's existing
   markup — no template-part overrides, no PHP, no new markup.
   ========================================================================== */

/* Section boxes: slightly larger radius to match the card system, and a
   bolder, brand-colored title so each section reads as a distinct block. */
.app-s .box{
  border-radius:var(--aa-radius-md);
}
.app-s .box .box-title{
  font-size:15px;
  letter-spacing:.03em;
}

/* Hero icon (the .image-single background-image div inside .s1). Keep the
   parent's aspect-ratio/width/float mechanics untouched — only round the
   corners and lift it with a soft shadow so it reads as the page's one
   focal image, matching apkpure's product-page hero treatment. */
.app-s .s1 .bloque-imagen,
.app-s .s1 .image-single{
  border-radius:14px;
}
.app-s .s1 .bloque-imagen{
  overflow:hidden;
  box-shadow:0 10px 24px -10px rgba(26,29,36,.2);
}

/* Primary download CTA: pill-shaped, roomier, with its own lift-on-hover —
   the one button on the page that should look unmistakably "press me". */
.app-s .s1 .buttond{
  border-radius:var(--aa-radius-pill);
  font-size:13px;
  letter-spacing:.02em;
  transition:transform .15s ease,box-shadow .15s ease;
}
.app-s .s1 .buttond.downloadAPK{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:12px 10px;
  font-size:12px;
  letter-spacing:0;
  white-space:nowrap;
  overflow:hidden;
  box-shadow:0 8px 18px -8px rgba(254,100,70,.55);
}
/* The parent theme reserves a fixed 38px left gutter for the icon via
   position:absolute + a fixed-width strip (see .buttond i in style.css).
   That layout leaves too little room for "Download APK" inside this
   150px sidebar column, so it wraps onto two lines. Switching the icon
   back into normal flex flow reclaims that space and keeps icon+text on
   a single centered line at any width (mobile and desktop). */
.app-s .s1 .buttond.downloadAPK i{
  position:static;
  height:auto;
  width:auto;
  padding:0;
  background:transparent;
  border-right:0;
  font-size:13px;
  line-height:1;
}
.app-s .s1 .buttond.downloadAPK:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 22px -8px rgba(254,100,70,.65);
}
/* Secondary actions (last version / Telegram / YouTube / back) are outline
   pills so they read as secondary next to the solid download button —
   background stays transparent, using the theme's own accent for text and
   border via currentColor, so no new color is introduced. */
.app-s .s1 .buttond:not(.downloadAPK){
  background:transparent !important;
  border:1px solid var(--aa-border);
  color:var(--aa-ink-strong);
  box-shadow:none;
}
.app-s .s1 .buttond.danv{
  background:transparent !important;
  border:1px solid rgba(249,64,64,.5);
  color:#f94040;
}
.app-s .s1 .buttond:not(.downloadAPK) i{
  background:transparent;
  border-right-color:transparent;
}

/* Rating row, centered under the buttons */
.app-s .s1 .box-rating .stars{
  height:16px;
}
.app-s .s1 .rating-average{
  font-size:15px;
}
.app-s .link-report{
  color:var(--aa-ink);
  opacity:.8;
}
.app-s .link-report:hover{
  color:var(--aa-accent) !important;
  opacity:1;
}

/* Category chips in the hero meta row — same pill shape as the homepage
   category bar, just reusing the theme's already-green .meta-cats a. */
.app-s .s2 .meta-cats a{
  border-radius:var(--aa-radius-pill);
  padding:3px 12px;
  font-size:11px;
}

/* Screenshot gallery: larger rounded corners + a subtle border on each
   shot, more breathing room. The JS carousel (prev/next transform, click
   for lightbox) is entirely untouched — visual only. */
#slideimages{
  margin-top:4px;
}
#slideimages .px-carousel-item{
  margin-right:12px;
}
#slideimages .px-carousel-item img{
  max-height:300px;
  border-radius:12px;
  border:1px solid var(--aa-border);
}

/* Tags box: pill-shaped tag links, consistent with the category chips. */
.app-s .tags a{
  display:inline-block;
  border-radius:var(--aa-radius-pill);
  padding:5px 14px;
  margin:3px 4px 3px 0;
  font-size:12px;
}

@media (max-width:600px){
  .app-s .s1 .bloque-imagen{
    box-shadow:0 6px 16px -8px rgba(26,29,36,.18);
  }
}

/* ==========================================================================
   Round 2 — visible, structural upgrades (not just spacing tweaks).
   Adds: a real homepage hero/H1, a pill-styled "New Games | New Apps" row,
   a bolder always-on card elevation + accent top edge, and a clearer star
   rating widget. All additive: no existing markup removed, no PHP data
   logic touched, colors stay the site's own green/light brand.
   ========================================================================== */

/* Homepage hero (new .aa-hero markup, added via a do_home hook) */
.aa-hero{
  padding:22px 4px 6px;
  text-align:center;
}
.aa-hero__title{
  font-size:26px;
  font-weight:700;
  color:var(--aa-ink-strong);
  margin:0 0 6px;
  letter-spacing:.01em;
}
.aa-hero__tag{
  font-size:13px;
  color:var(--aa-ink);
  opacity:.75;
  margin:0;
}
@media (max-width:600px){
  .aa-hero__title{ font-size:21px; }
}

/* "New Games | New Apps" admin links row — was unstyled centered text;
   now reads as a pill tab-bar sitting right under the hero. */
.hdt-t{
  margin:14px 0 0;
}
.hdt-t a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--aa-surface);
  border:1px solid rgba(254,100,70,.35);
  border-radius:var(--aa-radius-pill);
  padding:7px 16px;
  margin:0 4px;
  font-size:13px;
  font-weight:700;
  color:var(--aa-ink-strong) !important;
  text-decoration:none;
  transition:background .15s ease,border-color .15s ease;
}
.hdt-t a:hover{
  background:var(--aa-accent);
  border-color:var(--aa-accent);
  color:#fff !important;
}
.hdt-t i{
  color:var(--aa-accent);
}
.hdt-t a:hover i{
  color:#fff;
}

/* Cards: always-on elevation + a 2px accent top edge, so cards read as     */
/* distinct, "designed" tiles at rest, not just on hover.                   */
.acard > a{
  box-shadow:0 2px 10px -4px rgba(26,29,36,.1);
  border-top-width:2px !important;
  border-top-color:var(--aa-accent) !important;
}
.acard > a:hover,
.acard > a:focus-visible{
  box-shadow:0 14px 28px -10px rgba(26,29,36,.22),0 0 0 1px rgba(254,100,70,.25);
}

/* Star rating widget on cards: bigger and set against a visible dark track */
/* so it reads clearly at a glance instead of a thin sliver of color.       */
.acard__rating .box-rating{
  width:96px;
}
.acard__rating .box-rating .rating{
  background:rgba(26,29,36,.08);
  border-radius:var(--aa-radius-sm);
  overflow:hidden;
}
.acard__rating .rating .stars{
  height:16px;
}

/* Header: subtle shadow + a touch more logo presence. Height/layout of the */
/* logo+search+nav row is untouched (see the warning at the top of this     */
/* file) — only a shadow and the logo image's own max-height change.       */
#header{
  box-shadow:0 2px 10px rgba(26,29,36,.08);
}
#header .logo a img{
  max-height:44px;
  height:44px;
}

/* ==========================================================================
   Round 3 — featured/trending hero slider, Editor's Choice, footer grid,
   single-page What's New accordion + description Read More, mobile menu
   polish, sticky mobile download bar. All additive (no existing selectors
   removed), same token set as Round 1/2 above.
   ========================================================================== */

/* --- Homepage hero/featured slider (#featured_posts, already admin-curated) */
#featured_posts{
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:4px 2px 4px;
  margin:6px 0 4px;
  border-radius:var(--aa-radius-md);
}
#featured_posts::-webkit-scrollbar{ display:none; }
#featured_posts:hover .fp_box{ opacity:1; } /* neutralize parent's "dim siblings on hover" grid trick — wrong effect in a slider */
.fp_box{
  flex:0 0 78%;
  scroll-snap-align:center;
  padding:0 !important;
}
@media (min-width:680px){
  .fp_box{ flex:0 0 46%; }
}
@media (min-width:1000px){
  .fp_box{ flex:0 0 31.5%; }
}
.fp_box:nth-last-child(1){ padding-right:0 !important; }
.fp_box a{
  border-radius:16px;
  padding:0 !important;
  height:0 !important;
  padding-bottom:44% !important;
  box-shadow:0 12px 26px -12px rgba(26,29,36,.3);
  border:1px solid var(--aa-border);
}
.fp_box a::before{
  background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.85) 100%) !important;
  border-radius:16px;
}
.fpb_a{
  border-radius:16px;
  overflow:hidden;
}
.fpb_title{
  font-size:15px;
  font-weight:700;
  letter-spacing:.01em;
  text-shadow:0 2px 6px rgba(0,0,0,.6);
}

/* Slider chrome added by redesign.js: prev/next arrows + dot indicators. */
.aa-slider-wrap{ position:relative; }
.aa-slider-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:34px;
  height:34px;
  border-radius:var(--aa-radius-pill);
  background:rgba(19,22,29,.72);
  border:1px solid rgba(255,255,255,.15);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background .15s ease;
}
.aa-slider-nav:hover{ background:var(--aa-accent); }
.aa-slider-nav.prev{ left:8px; }
.aa-slider-nav.next{ right:8px; }
@media (max-width:680px){
  .aa-slider-nav{ display:none; } /* swipe on mobile, arrows on desktop */
}
.aa-slider-dots{
  display:flex;
  justify-content:center;
  gap:6px;
  margin:10px 0 2px;
}
.aa-slider-dots button{
  width:6px;
  height:6px;
  padding:0;
  border:0;
  border-radius:50%;
  background:var(--aa-border);
  cursor:pointer;
  transition:background .15s ease,width .15s ease;
}
.aa-slider-dots button.active{
  background:var(--aa-accent);
  width:18px;
  border-radius:3px;
}

/* --- Editor's Choice: same .section/.baps/.acard grid as every other home
   section, just a small ribbon icon in the title so it reads as curated. */
.section .title-section .aa-ec-badge{
  color:var(--aa-accent);
  margin-right:6px;
  font-size:15px;
}


/* --- Footer redesign (child-theme footer-default.php override below) --- */
/* Pivot (site owner reference mockups, 2026-09-02): plain dark footer with a
   thin top accent bar reusing the new header gradient, instead of the
   earlier dark navy-purple circuit background -- ties the palette together
   without fighting the now-light hero card above it. */
#footer{
  position:relative;
  overflow:hidden;
  background:#171b26;
  border-top:none;
  margin-top:24px;
  padding-top:8px;
}
#footer::before{
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:3px;
  background: var(--aa-header-grad);
}
.aa-footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:28px;
  padding:32px 0 20px;
}
@media (max-width:760px){
  /* Site owner report (annotated image, 2026-09-02): on mobile the three
     footer columns (brand, Quick Links, Categories) used to stack into one
     plain full-width column with no visual separation between them --
     read as a single cramped wall of links. Now: brand keeps its own full-
     width row, Quick Links and Categories sit side by side as two clearly
     boxed columns (background tint + border), matching the desktop card-
     like separation instead of a flat list. */
  .aa-footer-grid{
    grid-template-columns:1fr 1fr;
    gap:14px;
    padding:22px 0 12px;
  }
  .aa-footer-grid > .aa-footer-col{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    border-radius:var(--aa-radius-md);
    padding:14px 16px;
  }
  .aa-footer-grid > .aa-footer-col:first-child{
    grid-column:1 / -1;
  }
}
.aa-footer-col h3{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#fff;
  margin:0 0 14px;
}
.aa-footer-brand{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.aa-footer-brand img{
  max-height:32px;
  width:auto;
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.95))
    drop-shadow(0 0 2px rgba(255,255,255,.7))
    drop-shadow(0 0 4px rgba(255,255,255,.35));
}
.aa-footer-desc{
  font-size:13px;
  line-height:1.6;
  color:#b9c0cc;
  opacity:1;
  max-width:42ch;
  margin:0 0 14px;
}
.aa-footer-social{
  display:flex;
  gap:8px;
}
.aa-footer-social a{
  width:32px;
  height:32px;
  border-radius:var(--aa-radius-pill);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff !important;
  transition:background .15s ease,border-color .15s ease;
}
.aa-footer-social a:hover{ background:var(--aa-accent); border-color:var(--aa-accent); color:#fff !important; }
.aa-footer-col ul{ list-style:none; margin:0; padding:0; }
.aa-footer-col ul li{ margin-bottom:9px; }
.aa-footer-col ul li a{
  color:#b9c0cc !important;
  font-size:13px;
  opacity:1;
  transition:color .15s ease;
}
.aa-footer-col ul li a:hover{ color:var(--aa-accent) !important; opacity:1; }
.aa-footer-disclaimer{
  border-top:1px solid rgba(255,255,255,.1);
  padding:16px 0;
  font-size:11.5px;
  line-height:1.6;
  color:#b9c0cc;
  opacity:.85;
}
/* Site owner request (2026-09-03): bottom copyright line centered instead
   of the previous left-copy/right-logo space-between row, plus a new
   "Theme Designed by" credit line underneath. Stacked column, everything
   centered; the small logo mark moves to the top of the stack instead of
   sitting off to the side. */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding:16px 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:8px;
}
.footer-bottom .copy{
  font-size:12px;
  color:#b9c0cc;
  opacity:1;
}
.footer-bottom .copy ul{ margin-top:6px; }
.footer-bottom .copy ul li a{ font-size:12px; }
.footer-bottom .aa-footer-credit{
  font-size:11.5px;
  color:#8a93a3;
  order:3;
}
.footer-bottom .aa-footer-credit a{
  color:var(--aa-accent);
  font-weight:600;
}
.footer-bottom .aa-footer-credit a:hover{
  text-decoration:underline;
}
.footer-bottom .logo{
  order:1;
}
.footer-bottom .copy{
  order:2;
}
.footer-bottom .logo img{
  max-height:26px;
  opacity:1;
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.95))
    drop-shadow(0 0 2px rgba(255,255,255,.7))
    drop-shadow(0 0 4px rgba(255,255,255,.35));
}

/* --- "What's New" accordion (#novedades box) — content stays in the DOM
   and visible-by-default; redesign.js only adds a collapse toggle, so
   nothing is hidden from no-JS visitors or crawlers. --- */
#novedades .box-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  gap:10px;
}
#novedades .aa-toggle-ic{
  color:var(--aa-accent);
  font-size:13px;
  transition:transform .2s ease;
  flex:none;
}
#novedades.aa-collapsed .aa-toggle-ic{ transform:rotate(-90deg); }
#novedades .box-content{
  overflow:hidden;
  transition:max-height .25s ease;
}
#novedades.aa-collapsed .box-content{ max-height:0 !important; }

/* --- Description "Read more" (.desent box) --- */
.desent .entry-limit{
  position:relative;
  overflow:hidden;
  transition:max-height .25s ease;
}
.desent.aa-clamped .entry-limit{ max-height:180px; }
.desent.aa-clamped .entry-limit::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:0;
  height:56px;
  background:linear-gradient(180deg,rgba(40,45,58,0) 0%,var(--aa-surface) 92%);
  pointer-events:none;
}
.aa-readmore-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  background:transparent;
  border:1px solid rgba(254,100,70,.4);
  color:var(--aa-accent) !important;
  border-radius:var(--aa-radius-pill);
  padding:6px 16px;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.aa-readmore-btn:hover{ background:rgba(254,100,70,.12); }


/* --- Mobile hamburger drawer polish (mechanics/JS untouched, see the
   warning at the top of this file — only color/spacing/touch-target). --- */
#menu-mobile ul li a{
  padding:14px 16px;
  font-size:14.5px;
}
#menu-mobile ul li a:hover,
#menu-mobile ul li a:active{
  color:var(--aa-accent) !important;
  background:rgba(254,100,70,.06);
}
#menu-mobile ul.social li a{
  padding:14px 12px;
}
/* scoped to the mobile hamburger breakpoint only - this rule used to
   apply unconditionally, which kept .menu-open (display:flex) visible at
   ALL widths even though the parent theme's base rule hides it (display:
   none) above 900px; that stray always-on flex box was adding 48px of
   extra height to #header nav in the two-row tablet layout below. */
@media (max-width:900px){
#header nav .menu-open{
  min-width:44px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}
}

/* --- App Info metadata table (Android/requirements, size, version,
   developer, dates, downloads) — turned on via style_info_app filter
   in functions.php. Cosmetic only: reshapes the parent's own .table. --- */
.app-s table.table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
  background:var(--aa-surface);
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-md);
  overflow:hidden;
  margin:0 0 16px;
}
.app-s table.table tr{
  border-bottom:1px solid var(--aa-border);
}
.app-s table.table tr:last-child{ border-bottom:0; }
.app-s table.table td{
  padding:12px 14px;
  color:var(--aa-ink);
}
.app-s table.table td:first-child{
  color:var(--aa-ink-strong);
  opacity:.75;
  font-weight:600;
  width:42%;
}
.app-s table.table td b{ font-weight:inherit; }

/* --- App Info "quick facts" strip (site owner request): size/version/
   requirements/downloads as one compact line with icons, above the
   remaining detail table (developer/released/updated/get-it-on). Flex-
   wrap so it still degrades gracefully on the very narrowest phones
   instead of overflowing, but fits one line at normal mobile widths. */
.app-s .aa-quickfacts{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px 10px;
  padding:12px 14px;
  margin:0 0 16px;
  background:var(--aa-surface);
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-md);
  font-size:12.5px;
  font-weight:700;
  color:var(--aa-ink-strong);
}
/* Site owner request: on wider (tablet/desktop) viewports the hero
   card (icon, title/breadcrumb, download button, rating, report link,
   social-share row) and this quick-facts strip both sat flush left
   inside the page's full content width, leaving a large empty gap on
   the right at desktop widths. The hero's internal layout (a 150px
   float:left icon column beside a text column sized via the parent
   theme's width:100%/negative-margin trick) is left completely intact
   -- only the OUTER box is capped to a sane content width and centered,
   which is simpler and safer than reworking that float/negative-margin
   relationship. The hero box is reliably `.app-s`'s first child (the
   theme gives it no other distinguishing class -- verified live via
   the rendered DOM, not just PHP source), so no :has() selector is
   needed. 860px comfortably fits the widest natural content in either
   block (the 5-button social-share row measures ~565px, + the icon
   column's 170px = ~735px) with room to spare; below that width both
   blocks simply become 100% of the viewport as normal block elements,
   so this has no effect on the existing sub-650px mobile layout. */
/* Site owner follow-up: reduce ALL of .app-s's content boxes (Description,
   Video, Images, Download links, Comments -- not just the hero) to the
   same centered, non-full-bleed width, since they inherited the same
   "flush against a too-wide container" look once the hero above them was
   centered. #box-report is the one exception: it isn't a normal in-flow
   box, it's the "Report this app" MODAL -- position:fixed;width:100% is
   how its dark backdrop covers the whole viewport, so capping its width
   here would visibly shrink that backdrop instead of the content inside
   it. Confirmed live (each box's id/class) before excluding it. */
.app-s > .box:not(#box-report){
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
  float:none;
}
.app-s > .aa-quickfacts{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
}
.app-s .aa-qf-item{
  display:inline-flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
/* Site owner follow-up: developer / released-on / updated / get-it-on now
   join the same quick-facts bar instead of a separate table underneath
   it. Their values are richer HTML the parent theme already builds (a
   developer link, a store-badge <img>) rather than plain text -- size
   the badge image down to the bar's own compact height and let a link's
   color keep reading as a link (site's link-green), same as it did in
   the old table. */
.app-s .aa-qf-rich img{
  height:16px;
  width:auto;
  vertical-align:middle;
}
.app-s .aa-qf-rich a{
  color:var(--aa-accent);
}
.app-s .aa-qf-item i{
  color:var(--aa-accent);
  font-size:13px;
}
.app-s .aa-qf-sep{
  color:var(--aa-border);
  font-weight:400;
}

/* Site owner follow-up: swap the quick-facts bar and the social-share row
   (see the px_social_buttons / func_caja_app_info swap in functions.php).
   The quick-facts bar now renders INSIDE the hero .box, right after the
   icon/buttons/rating/report column (.s1), which is still float:left at
   desktop widths -- clear:both drops it below that column at full box
   width instead of the narrow 150px it would get if left to wrap beside
   the float. width:100% is relative to the .box parent, which is already
   capped+centered to 860px by the rule above, so no separate max-width is
   needed here. justify-content:center matches the hero's own centered
   treatment (title, icon, buttons are all centered -- see the mobile hero
   centering block below and the Request B centering rules above). */
.app-s .box > .aa-quickfacts{
  clear:both;
  width:100%;
  margin-top:14px;
  justify-content:center;
}
/* Each fact reads as its own small pill instead of a run-on line separated
   by bullets -- the individually-badged-spec look is a standard app-store
   convention (Google Play / APKPure) and reads cleaner than the bullet
   separators once every item has its own background. */
.app-s .aa-qf-item{
  background:var(--aa-bg);
  border-radius:var(--aa-radius-pill);
  padding:5px 12px;
}
.app-s .aa-qf-sep{
  display:none;
}
body.theme-dark .app-s .aa-qf-item{
  background:rgba(255,255,255,.08);
}

/* The social-share row now renders where the quick-facts bar used to (a
   sibling box below the hero, direct child of .app-s) -- it keeps the
   parent theme's own .s2 classes (app-spe s2 box-social), whose float-
   avoidance padding (padding-left:170px;margin-left:-170px, meant to
   clear the hero's 150px floated icon column from *inside* the hero box)
   and every mobile/tablet override for it are scoped to requiring a
   `.box` ancestor it no longer has at this new position. Reset those
   explicitly and give it its own card treatment, matching the quick-
   facts strip it now sits beside. */
.app-s > .box-social{
  float:none !important;
  width:auto !important;
  padding:14px !important;
  margin-left:auto;
  margin-right:auto;
  max-width:860px;
  background:var(--aa-surface);
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-md);
}
.app-s > .box-social .botones_sociales{
  justify-content:center;
  margin:0;
}
body.theme-dark .app-s > .box-social{
  background:#1f2430;
  border-color:rgba(255,255,255,.1);
}

/* --- Sticky mobile download bar (redesign.js clones the primary download
   link's href/label once the hero button scrolls out of view; hidden on
   desktop, and never replaces the original in-page button). --- */
#aa-sticky-dl{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:998;
  background:var(--aa-surface-alt);
  border-top:1px solid var(--aa-border);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  transform:translateY(110%);
  transition:transform .2s ease;
  box-shadow:0 -8px 20px -10px rgba(26,29,36,.18);
}
#aa-sticky-dl.aa-show{ transform:translateY(0); }
#aa-sticky-dl a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:46px;
  background:var(--aa-accent);
  color:#fff !important;
  border-radius:var(--aa-radius-pill);
  font-size:14px;
  font-weight:700;
}
@media (min-width:900px){
  #aa-sticky-dl{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  #featured_posts{ scroll-behavior:auto; }
  .desent .entry-limit,#novedades .box-content,#aa-sticky-dl{ transition:none; }
}


/* Footer social/widgets list resets (px_header_social()/dynamic_sidebar
   both output <ul><li> markup) */
.aa-footer-social ul.social{
  display:flex;
  gap:8px;
  list-style:none;
  margin:0;
  padding:0;
}
.aa-footer-social ul.social li{ display:inline-block; }
.aa-footer-widgets{
  padding:20px 0 4px;
  border-bottom:1px solid var(--aa-border);
}
.aa-footer-widgets > ul{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  list-style:none;
  margin:0;
  padding:0;
}
/* ============================================================
   Light-theme header & navigation overrides (apkpure-style)
   The parent theme hardcodes #header and its dropdowns/menus to
   a fixed dark navy (#1d222d) with white text, completely
   independent of the appyn_color_theme light/dark option. Since
   the whole site is now a light interface, override those fixed
   colors here so header/nav/menus match. Also harmonizes the
   parent's stray teal (#1bbc9b) accents to our green accent.
   ============================================================ */
/* Pivot (site owner reference mockups, 2026-09-02): orange-to-teal gradient
   header bar, replacing the earlier dark navy-purple circuit background.
   Site owner follow-up (2026-09-02, image report): the parent theme's own
   #header is position:fixed (with #main-site's padding-top reserving space
   for it, see the squeeze-zone/#main-site override below) -- this rule had
   been overriding that to position:relative ever since the earlier dark-
   hero round (originally added only so the now-removed circuit-pattern
   decorative background layers had a positioning context). That silently
   broke two things: the header scrolled away with the page instead of
   staying stuck to the top, AND #main-site's padding-top kept reserving
   space for an out-of-flow header that was no longer out-of-flow, so the
   in-flow header's own height was ADDED on top of that reserved space --
   the large empty gray gap the owner reported. Restoring position:fixed
   (matching the parent's own default) fixes both. overflow:hidden also
   dropped -- it was only there for the same removed decorative layers,
   and left on a fixed header it risks clipping nav dropdown submenus. */
#header{
  position:fixed;
  background: var(--aa-header-grad);
  border-bottom: none;
}
#header nav a{
  color: #fff;
}
#header nav ul li.current-menu-item a{
  background: rgba(255,255,255,.22);
  color: #fff;
}
#header nav .menu>li>a::before{
  background: var(--aa-accent);
}
#header nav .menu>li>.sub-menu,
#header nav .menu .sub-menu li a{
  background: #1b2130;
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
}
#header nav .menu .sub-menu li a:hover{
  background: rgba(26,29,36,.06);
}
#header nav .menu-open{
  color: #fff;
}
#menu-mobile{
  background: var(--aa-surface);
  border-left: 1px solid var(--aa-border);
}
#menu-mobile ul li a{
  color: var(--aa-ink-strong);
  border-top: 1px solid var(--aa-border);
  border-bottom: 1px solid var(--aa-border);
}
#menu-mobile ul.social li a:hover{
  opacity: .7;
}
#subheader{
  background: var(--aa-surface);
  color: var(--aa-ink-strong);
  border-bottom: 2px solid var(--aa-border);
}
.searchBox ul{
  background: var(--aa-surface);
  border: 1px solid var(--aa-border);
  box-shadow: 0 8px 24px rgba(26,29,36,.12);
}
.searchBox ul li a{
  color: var(--aa-ink-strong);
  border-bottom: 1px solid var(--aa-border);
}
/* The site logo mark was designed for the old dark header, so it
   stays on a small dark chip instead of relying on the new light
   header background - keeps it legible without needing a new
   logo asset. */
/* Logo asset (navy/gold wordmark, updated) reads best on a light
   surface -- header is already white in light mode, so no pill needed
   there; dark mode gets an explicit light chip below so the dark-navy
   logo stays legible against the dark header background. */
#header .logo{
  border-radius: 8px;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
}
/* ============================================================
   Header: two-row layout for the "squeeze zone" (901px-1300px)
   Between the mobile hamburger breakpoint (<=900px) and full
   desktop width, the parent theme's inline nav (flex-shrink:0,
   ~724px content-width) forced the search box down to ~60px
   wide - effectively cut off / unusable. Fix: nav drops to its
   own full-width row BELOW the logo+search row, as a horizontal
   scrollable pill bar (nice UX, no items lost, nothing squeezed).
   #header is position:fixed with a hardcoded #main-site padding-
   top:80px offset elsewhere in the parent theme (not computed
   from actual header height), so growing the header here also
   requires bumping that offset - see #main-site override below.
   ============================================================ */
@media (max-width: 1300px) and (min-width: 901px) {
  #header{
    height: auto;
  }
  #header .container{
    height: auto;
    flex-wrap: wrap;
    align-content: flex-start;
    padding-top: 8px;
    padding-bottom: 8px;
  }
  #header .logo{
    order: 1;
  }
  .searchBox{
    order: 2;
    flex: 1 1 auto;
    margin: 0 15px;
  }
  #header nav{
    order: 3;
    flex: 0 0 100%;
    width: 100%;
    height: auto;
    float: none;
    margin-top: 8px;
  }
  #header nav .menu{
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 6px;
    width: 100%;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  #header nav .menu::-webkit-scrollbar{
    display: none;
  }
  #header nav .menu>li{
    float: none;
    flex: 0 0 auto;
  }
  #header nav a{
    white-space: nowrap;
    padding: 8px 14px;
    border-radius: 999px;
  }
  #header nav ul li.current-menu-item a{
    border-radius: 999px;
  }
}
@media (max-width: 1300px) and (min-width: 901px) {
  /* nav wraps to its own full-width row (above); within that row, the
     pill menu and the light/dark toggle (also a direct child of <nav>)
     now sit side by side instead of stacking into an extra 3rd row. */
  #header nav{
    display: flex;
    align-items: center;
    gap: 10px;
  }
  #header nav .menu{
    flex: 1 1 auto;
    min-width: 0;
  }
  #button_light_dark{
    flex: 0 0 auto;
  }
}
@media (max-width: 1300px) and (min-width: 901px) {
  /* #header is position:fixed and the parent theme reserves space for it
     via a hardcoded #main-site{padding-top:80px} (an inline <style> block
     in <head>, not computed from the header's real height) - with the
     header now two rows tall (~140px) at this breakpoint, that reserved
     space must grow to match or page content renders partly hidden under
     the fixed header. !important guards against the inline block's
     uncertain position in <head> relative to this stylesheet. */
  #main-site{
    padding-top: 160px !important;
  }
}

/* ============================================================
   Dark-mode-safe text/background for this file's own custom
   colors (header/nav/menu/subheader, category chips). The site's
   own light/dark toggle (#button_light_dark) only flips a
   parent-printed inline <style id="css-dark-theme"> block and,
   on click, a body.theme-dark class (redesign.js syncs that class
   on page load too, see initDarkModeSync). That inline block
   re-darkens some elements (#header, #subheader.np, etc.) but
   never touches text colors this file introduced, and this file's
   .catbar chip rule uses !important - both left text dark-on-dark
   and invisible once dark mode was on. Every rule below is scoped
   to body.theme-dark so light mode (the default) is untouched.
   ============================================================ */
body.theme-dark #header{
  background: var(--aa-header-grad);
  border-bottom-color: transparent;
}
body.theme-dark #header nav a{
  color: #fff;
}
body.theme-dark #header nav .menu>li>.sub-menu,
body.theme-dark #header nav .menu .sub-menu li a{
  background: #13161d;
  color: #fff;
  border-color: rgba(255,255,255,.1);
}
body.theme-dark #header nav .menu .sub-menu li a:hover{
  background: rgba(255,255,255,.08);
}
body.theme-dark #header nav .menu-open{
  color: #fff;
}
body.theme-dark .menu-open{
  color: #fff;
}
body.theme-dark #menu-mobile{
  background: #13161d;
  border-left-color: rgba(255,255,255,.08);
}
body.theme-dark #menu-mobile ul li a{
  color: #fff;
  border-top-color: rgba(255,255,255,.06);
  border-bottom-color: rgba(255,255,255,.06);
}
body.theme-dark #subheader{
  color: #fff;
}
body.theme-dark .searchBox ul{
  background: #13161d;
  border-color: rgba(255,255,255,.1);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
body.theme-dark .searchBox ul li a{
  color: #fff;
  border-bottom-color: rgba(255,255,255,.08);
}
/* No backing box behind the logo (site owner request) -- but the logo
   itself is a dark navy/gold wordmark, so on the near-black dark header
   it was reading as invisible with nothing behind it (confirmed live).
   Fixed with a soft light glow on the image itself (drop-shadow follows
   the PNG/WEBP alpha shape, not a box), instead of a background -- keeps
   the wordmark's own colors and adds no visible chip/rectangle. */
#header .logo{
  background: transparent;
}
#header .logo a img{
  filter:
    drop-shadow(0 0 1px rgba(255,255,255,.95))
    drop-shadow(0 0 2px rgba(255,255,255,.7))
    drop-shadow(0 0 4px rgba(255,255,255,.35));
}
body.theme-dark .catbar li a{
  background: #282d3a !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.12);
}
body.theme-dark .catbar li a:hover,
body.theme-dark .catbar li a:focus-visible{
  background: var(--aa-accent) !important;
  color: #fff !important;
}

/* Homepage per-category sections (func_action_home_categories) show up
   to 6 posts each (appyn_categories_home_limite), 6 columns per row on
   desktop (appyn_apps_per_row_pc) - most categories on this site have
   fewer than 6 posts, so the row is a partial row by default and the
   flex container's default justify-content:flex-start left-aligns it
   with a visible empty gap on the right. Centering here is a no-op for
   any FULL row (nothing to redistribute) and only affects short/partial
   rows, so it's safe across every .section .baps grid on the site. */
.section .baps{
  justify-content: center;
}
/* Round 2 dark-mode fix: several of this stylesheet's own text-color rules
   use var(--aa-ink-strong) (near-black) with no dark-mode counterpart, and
   the parent theme's dark CSS doesn't cover these custom classes - so once
   their containers go dark (title-section sits directly on the dark page
   background, the hero heading sits on the dark page background, and
   #footer itself goes dark per the parent's own dark rule), the text became
   invisible dark-on-dark. Fixing the same way as the header/catbar fix
   above: a body.theme-dark override beats the base rule on specificity. */
body.theme-dark .title-section{
  color: #fff;
}
body.theme-dark .aa-hero__title{
  color: #fff;
}
body.theme-dark .aa-footer-col h3{
  color: #fff;
}

/* Round 3 dark-mode fix: app-info table had unreadable even rows (parent dark CSS painted them solid dark while our table stayed white), and var(--aa-ink) muted gray text (card meta, hero tagline, footer links/disclaimer, report link) is low-contrast on the dark page background. */
body.theme-dark .app-s table.table{ background: #1f2430; border-color: rgba(255,255,255,.1); }
body.theme-dark .app-s table.table tr{ border-bottom-color: rgba(255,255,255,.08); }
body.theme-dark .app-s table.table tr:nth-child(even){ background: #262c3a; }
body.theme-dark .app-s table.table td{ color: #fff; background: transparent; }
body.theme-dark .app-s table.table td:first-child{ color: #fff; opacity: .75; }
body.theme-dark .app-s .aa-quickfacts{ background: #1f2430; border-color: rgba(255,255,255,.1); color: #fff; }
/* Site owner report (screenshot, dark-mode toggle ON, 2026-09-02): that old
   dark-mode rule above also matched the hero's own quickfacts wrapper
   (.app-s > .box:first-child .aa-quickfacts is still a .app-s descendant),
   painting a dark rectangle strip behind the (now light/white) stat tiles.
   The hero is a fixed light-theme card regardless of the toggle -- same as
   its other unconditional colors above -- so undo the dark fill just for
   this one wrapper. */
body.theme-dark .app-s > .box:first-child .aa-quickfacts{ background:none; border-color:transparent; color:inherit; }
body.theme-dark .app-s .aa-qf-sep{ color: rgba(255,255,255,.25); }
body.theme-dark .app-s .s1 .buttond:not(.downloadAPK){ color: #fff; border-color: rgba(255,255,255,.15); }
body.theme-dark .acard__meta,
body.theme-dark .app-s .link-report,
body.theme-dark .aa-hero__tag,
body.theme-dark .aa-footer-desc,
body.theme-dark .aa-footer-disclaimer,
body.theme-dark .footer-bottom .copy{ color: #b9c0cc; }
body.theme-dark .aa-footer-col ul li a{ color: #b9c0cc !important; }
body.theme-dark #header .searchBox .sb_search[type=text]::placeholder{ color: var(--aa-ink); opacity:.75; }

/* Round 4 dark-mode fix: card background. The parent theme's own dark CSS
   only repaints card links scoped as `.section .bav a` (i.e. only the
   homepage's per-category grid). Our .acard markup is reused verbatim for
   Related Apps (.rlat) and any theme sidebar (#sidebar) - matching this
   session's own established .section/.rlat/#sidebar grid pattern above -
   but those two contexts never picked up the parent's dark card color, so
   their cards stayed on our own var(--aa-surface) white background: a
   jarring white tile inside an otherwise all-dark page. Same fix pattern,
   just extended to the two contexts the parent's selector didn't reach. */
body.theme-dark .rlat .baps .acard > a,
body.theme-dark #sidebar .baps .acard > a{
  background: #282d3a;
  border-color: rgba(255,255,255,.12) !important;
}

/* Mobile hero centering (article/app page). Confirmed via live 390px
   screenshot: the parent theme's own mobile CSS (max-width:650px and
   max-width:500px blocks in style.min.css) resets .s2 (title/breadcrumb
   block) to float:none/width:100%, but never resets .app-icb's base
   float:left for .s1 (icon+download-button+rating+report+social-share
   block) - so .s1 stays floated with an ineffective margin:auto (auto
   margins do nothing on a floated box) and everything inside it pins to
   the left edge instead of reading as a centered hero card. Fixed by
   taking over .s1's layout entirely below 650px: drop the float, become
   a centered flex column, and give the icon a fixed width instead of
   stretching to the container. */
@media (max-width:650px){
  .app-s .box:not(.box-download) > .app-spe.s2{
    text-align:center;
  }
  .app-s .s1.app-icb{
    float:none !important;
    width:100% !important;
    padding-right:0 !important;
    margin:16px 0 0 !important;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .app-s .s1.app-icb .bloque-imagen{
    width:130px;
    flex:none;
  }
  .app-s .s1.app-icb .botones_sociales{
    justify-content:center;
  }
}

/* Center section titles above their grid (Task: category names should
   sit centered above the first box, not left-aligned). Overrides the two
   properties from the left-aligned block above (text-align, padding-
   left) via a later rule at equal specificity, and swaps the left
   accent bar for a small centered underline instead, since a left bar
   reads oddly under centered text. Applies to every .section heading -
   Editor's Choice, Top rated apps, Latest Apps, every per-category
   section, and the closing Latest Posts section - since they all share
   this same .title-section markup. */
.section .title-section{
  text-align:center;
  padding-left:0;
}
.section .title-section::before{
  content:none;
}
.section .title-section::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-8px;
  transform:translateX(-50%);
  width:36px;
  height:3px;
  margin:0;
  border-radius:var(--aa-radius-sm);
  background:var(--aa-accent);
}

/* Fix: the centering above had no visible effect because the PARENT
   theme's own .title-section base rule is display:flex;align-items:
   center (confirmed in style.min.css) with no justify-content set, so
   the icon+text content flex-aligns to flex-start (left) regardless of
   text-align, which only affects inline content, not flex-item
   placement along the main axis. Adding justify-content:center is what
   actually centers it. */
.section .title-section{
  justify-content:center;
}

/* Category badge/pill under the hero title (site owner request): the
   breadcrumb above the title already links to this same category, so this
   second, larger badge (parent theme's own .meta-cats, rendered directly
   in template-parts/single-infoapp.php -- not hookable, so hidden via CSS
   rather than a template-part override, matching this file's own "no
   template-part overrides" scope note above) was pure duplication.
   get_the_category_list()'s markup stays in the DOM (harmless for SEO/
   internal linking), just not shown. */
.app-s .s2 .meta-cats{
  display:none;
}
/* ============================================================
   Left sidebar navigation (site owner request: adopt aptoide.com's
   general layout pattern -- own ApkAward branding/menu items, not a
   copy of aptoide's content/logo). Wide desktop only (min-width:1300px)
   so this never touches the mobile hamburger menu (<=900px) or the
   already-tuned two-row "squeeze zone" pill nav (901px-1300px,
   documented above) -- both keep working exactly as before.

   Mechanism: <nav> is the LAST child of #header's flex row
   (.logo, .searchBox, nav), sitting after the searchBox in the
   source. Giving it position:fixed pulls it out of that row's flow
   entirely, so the row's remaining children (logo, search) simply
   reflow to fill the space -- no header restructuring needed, and
   nothing above this breakpoint is touched. #button_light_dark is
   already nav's last child in the parent theme's own markup, so it
   rides along inside the new sidebar and is pinned to the rail's
   bottom via margin-top:auto once nav becomes a flex column.

   Every page region built on the theme's shared .container class
   (confirmed live: header, page content, footer -- exactly 3 on any
   given page) gets the same margin-left so nothing ever renders
   under the fixed rail; box-sizing math handles the width
   automatically since none of the three set an explicit pixel width.
   ============================================================ */
:root{
  --aa-sidebar-w:220px;
}
@media (min-width:1300px){
  .container{
    /* .container carries an explicit width (not auto) from the parent
       theme's own CSS, so margin-left alone pushed it 220px past the
       right edge instead of shrinking it -- confirmed live via a real
       220px horizontal overflow (documentElement.scrollWidth 1660 vs a
       1440 viewport) before this fix. width:calc() forces the shrink
       regardless of whatever fixed/percentage width the parent set. */
    margin-left:var(--aa-sidebar-w);
    width:calc(100% - var(--aa-sidebar-w)) !important;
  }
  #header nav.menu-main-menu-container{
    position:fixed;
    top:60px;
    left:0;
    bottom:0;
    width:var(--aa-sidebar-w);
    margin:0;
    display:flex;
    flex-direction:column;
    background:#13161d;
    border-right:1px solid rgba(255,255,255,.08);
    padding:14px 0;
    overflow-y:auto;
    z-index:998; /* below #header's own 9999 so the fixed top bar always paints over the rail's top edge */
  }
  #header nav .menu-open{
    display:none !important; /* hamburger toggle - irrelevant once every item is always visible in the rail */
  }
  #header nav .menu{
    display:flex;
    flex-direction:column;
    margin:0;
    float:none;
    width:100%;
  }
  #header nav ul li{
    float:none;
    width:100%;
    margin-right:0;
  }
  #header nav a{
    padding:12px 20px 12px 24px;
    line-height:1.3;
    font-size:14px;
  }
  #header nav a i{
    width:18px;
    text-align:center;
    margin-right:12px;
  }
  #header nav .menu>li>a::before{
    display:none; /* the parent's horizontal grow-underline effect reads oddly in a vertical rail; replaced by the flat tint below */
  }
  #header nav ul li.current-menu-item a,
  #header nav ul li a:hover{
    background:rgba(254,100,70,.15) !important;
    color:var(--aa-accent) !important;
    border-radius:0 999px 999px 0;
    margin-right:14px;
  }
  #button_light_dark{
    float:none;
    margin:auto 0 4px 24px;
  }
}
body.theme-dark{
  /* dark-mode rail: matches the existing dark #header treatment
     (#13161d) documented in the Round 2 dark-mode fix above, rather
     than the light var(--aa-surface)/var(--aa-border) used by default. */
}
@media (min-width:1300px){
  body.theme-dark #header nav.menu-main-menu-container{
    background:#13161d;
    border-right-color:rgba(255,255,255,.08);
  }
  body.theme-dark #header nav ul li.current-menu-item a,
  body.theme-dark #header nav ul li a:hover{
    background:rgba(254,100,70,.16);
  }
}


/* ==========================================================================
   App-page stat row -- v2, simplified (site owner feedback: the divided
   table-like version with vertical borders + horizontal scrollbar read as
   "ajeeb"/cluttered, not professional. Replaced with plain, independent
   rounded stat cards -- icon, bold value, small muted label -- spaced
   apart and left to wrap onto a second line if needed, instead of being
   crammed into one divided strip. No scroll-on-mobile trick, no vertical
   divider lines: just simple, evenly spaced cards, same visual language
   (surface/border/radius tokens) as every other card on the page. Still
   100% CSS -- content:attr(title) still supplies the visible label from
   the same title attribute PHP already outputs. ========================================================================== */
.app-s .box > .aa-quickfacts{
  display:flex;
  flex-wrap:wrap;
  align-items:stretch;
  justify-content:center;
  gap:10px;
  padding:0;
  background:none;
  border:none;
  overflow:visible;
}
.app-s .aa-qf-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex:0 0 auto;
  min-width:84px;
  padding:13px 16px;
  background:var(--aa-surface);
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-md);
  white-space:normal;
  text-align:center;
  font-size:14px;
  font-weight:700;
}
.app-s .aa-qf-item i{
  font-size:16px;
  color:var(--aa-accent);
  margin-bottom:0;
}
.app-s .aa-qf-item::after{
  content:attr(title);
  font-size:10px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--aa-ink);
  opacity:.55;
}
.app-s .aa-qf-rich img{ height:14px; }
body.theme-dark .app-s .aa-qf-item{
  background:#1b2029;
  border-color:rgba(255,255,255,.08);
}
@media (max-width:480px){
  .app-s .aa-qf-item{ min-width:calc(50% - 5px); }
}

/* ==========================================================================
   Hero layout, desktop/tablet -- close the dead-space gap (site owner
   request: make the app-page hero "the best"). Diagnosed live: the icon
   column (.s1: icon + download/telegram/youtube buttons + rating + report,
   float:left 150px) runs ~280px tall, while the title column (.s2:
   breadcrumb + title, float:right via the parent's own negative-margin
   wrap trick) is only ~67px tall -- so .aa-quickfacts (clear:both) had to
   wait for the TALL icon column to finish floating before it could start,
   leaving a large empty gap under the title on every app page. Fix: turn
   the hero .box into a real 2-column grid at tablet/desktop widths (below
   the existing 650px mobile-centering breakpoint, untouched) so the
   quickfacts row moves up into that gap, right under the title, instead
   of being pushed below the whole icon column. `.app-s > .box:first-child`
   is the same hero-only selector already established elsewhere in this
   file (the theme gives the hero box no distinguishing class/id, but it's
   reliably .app-s's first child -- every other .box on the page, e.g.
   #descripcion/#novedades/#comments, has its own id and would wrongly
   become a grid too without the :first-child scope). .s1's own float
   layout (icon/button/rating/report stacked) is left completely intact --
   only which OUTER grid cell it sits in changes. ========================================================================== */
/* Hero: the theme always emits an empty placeholder box (.app-spe.s2, 3rd
   direct <div> child -- used by an unrelated 'data-app' feature this site
   doesn't populate) between the icon and the quickfacts row. It has no
   content but still occupies layout space on every viewport -- hide it. */
.app-s > .box:first-child > .app-spe.s2:nth-of-type(3){
  display:none;
}
@media (min-width:651px){
  .app-s > .box:first-child{
    display:grid;
    grid-template-columns:170px 1fr;
    grid-template-rows:min-content 1fr;
    column-gap:24px;
    row-gap:14px;
    align-items:start;
  }
  .app-s > .box:first-child > .app-icb.s1{
    grid-column:1;
    grid-row:1 / span 2;
    float:none;
    width:auto;
    margin:0;
  }
  .app-s > .box:first-child > .app-spe.s2:first-of-type{
    grid-column:2;
    grid-row:1;
    float:none;
    width:auto;
    margin:0;
    padding:0;
  }
  .app-s > .box:first-child > .aa-quickfacts{
    grid-column:2;
    grid-row:2;
    clear:none;
    width:auto;
    margin:0;
    justify-content:flex-start;
  }
}

/* ==========================================================================
   Real download button ("Download links" box, #list-downloadlinks) --
   site owner request: the actual APK download button (as opposed to the
   hero's #download jump-link CTA, already restyled earlier) still had
   ZERO child-theme styling and rendered 100% parent-theme default: a
   narrow ~240px pill, centered, with a flush-left semi-transparent
   icon "well" (position:absolute, border-radius:0, clipped by the
   button's own overflow:hidden) that reads as dated next to the rest of
   the now-redesigned page -- especially cramped/hard to tap on mobile.
   Rebuilt as a full-width (capped on wide screens), flex-centered pill
   matching the same accent/shadow/hover language as every other primary
   button on the page; icon goes back into normal inline flow (no more
   absolute-positioned "well") so it just sits beside the label with a
   clean gap. No JS/PHP touched -- .show_download_links's own reveal-
   after-countdown behavior (redesign.js) is unaffected. ==========================================================================*/
.app-s #list-downloadlinks.ldl-b{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.app-s #list-downloadlinks.ldl-b li{
  width:100%;
}
.app-s #list-downloadlinks.ldl-b .buttond{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  max-width:420px;
  margin:0 auto;
  padding:15px 22px;
  border-radius:var(--aa-radius-pill);
  font-size:15px;
  min-height:50px;
  box-shadow:0 10px 22px -10px rgba(254,100,70,.55);
  transition:transform .15s ease,box-shadow .15s ease;
}
.app-s #list-downloadlinks.ldl-b .buttond:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 26px -10px rgba(254,100,70,.65);
}
.app-s #list-downloadlinks.ldl-b .buttond i{
  position:static;
  height:auto;
  width:auto;
  background:none;
  border-right:0;
  padding:0;
  line-height:1;
  font-size:17px;
}

/* ==========================================================================
   Two small bugs found while polishing the mobile download button, right
   next to it, worth fixing in the same pass:
   1) #backtotop's chevron-up icon renders as a blank/"tofu" glyph on
      mobile -- it's marked `far` (Font Awesome regular weight/400), but
      this site's Font Awesome 6 Free load only ships the solid style for
      this glyph. Force solid (weight 900); same font-family, so this is
      a one-line fix, no icon swap needed.
   2) #backtotop (position:fixed, bottom:15px, z-index:999) sits ON TOP of
      the sticky mobile download bar (#aa-sticky-dl, z-index:998) once the
      bar slides up -- confirmed live via elementFromPoint: backtotop was
      literally intercepting taps on the bar's right edge. Lift it above
      the bar only while the bar is actually showing (:has(.aa-show), not
      just present in the DOM -- the bar stays in the DOM translated off-
      screen the rest of the time). ========================================================================== */
#backtotop i.far{
  font-weight:900;
}
body:has(#aa-sticky-dl.aa-show) #backtotop{
  bottom:calc(15px + 60px + env(safe-area-inset-bottom)) !important;
  transition:bottom .2s ease;
}

/* Hero/single-page app icon fix (site owner request): the parent theme's
   base .image-single rule (style.css) sets background-size:cover and a
   padding-bottom:100% square box, but never sets background-position, so it
   defaults to the CSS initial value (0% 0% / top-left). Any non-square
   source image -- a wide promo banner instead of a proper square icon --
   therefore gets cropped from its top-left corner instead of its center,
   which can cut off the interesting part of the image or leave odd
   whitespace. The listing-card icons already get background-position:center
   via .acard__icon .bloque-imagen above; this brings the single app page's
   hero icon (.app-icb.s1 .image-single) in line with that, with no source
   image changes required. */
.app-icb.s1 .image-single{
  background-position:center;
}


/* ==========================================================================
   Round 4 -- aptoide.com-inspired header search polish, header utility
   links (Contact/DMCA, replacing what would be aptoide's own header promo
   slot), and a richer hero-slider tile (version badge, rating, GET pill,
   eyebrow band) closer to aptoide's slide treatment. Own branding/content
   throughout -- layout/shape inspiration only, same scope note as the file
   header above. Additive only, same token set as Round 1-3.
   ========================================================================== */

/* --- Header search bar: a bit more definition/polish (border, shadow,
   focus ring) so the pill reads as a clear, inviting input against the
   white header bar, closer to aptoide.com's search treatment. Still no
   size/position changes -- same warning as the Round 1 search rules above. */
#header .searchBox form{
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-pill);
  background:var(--aa-surface);
  box-shadow:0 1px 2px rgba(26,29,36,.04);
  transition:box-shadow .15s ease,border-color .15s ease;
}
#header .searchBox form:focus-within{
  border-color:var(--aa-accent);
  box-shadow:0 0 0 3px rgba(254,100,70,.14);
}
#header .searchBox .sb_search[type=text]{
  border:0;
  background:transparent;
}
#header .searchBox .sb_submit[type=submit]{
  background:var(--aa-accent);
  color:#fff;
}
/* Kept light even when the dark-mode toggle is on: this pill's own
   background used to flip dark here while the input text stayed
   near-black (var(--aa-ink-strong)), so typed/placeholder text became
   unreadable -- site owner report: header search bar text "black nazar
   nahi araha". Also matches the new gradient-header reference, which has
   no separate dark search treatment. */
body.theme-dark #header .searchBox form{
  background:var(--aa-surface);
  border-color:var(--aa-border);
}

/* --- Header utility links (Contact / DMCA) -- own group, visually distinct
   from the primary nav items, in whichever of the 3 nav layouts is active
   (mobile slide-out menu, tablet/small-desktop pill row, wide-desktop
   sidebar rail). aa-header-util-first carries the divider so it never
   collides with :first-of-type matching the actual first nav li. */
.aa-header-util a{
  opacity:.82;
  font-weight:600;
}
.aa-header-util a:hover{
  opacity:1;
}
.aa-header-util-first{
  margin-left:8px;
  padding-left:12px;
  border-left:1px solid var(--aa-border);
}
@media (min-width:1300px){
  .aa-header-util-first{
    margin-left:0;
    padding-left:24px;
    padding-top:12px;
    margin-top:10px;
    border-left:0;
    border-top:1px solid var(--aa-border);
  }
}
#menu-mobile .aa-header-util-first{
  border-color:rgba(255,255,255,.14);
}
body.theme-dark .aa-header-util-first{
  border-color:rgba(255,255,255,.12);
}

/* --- Hero slider eyebrow band (site owner request: aptoide.com-style
   small header strip above the slider row -- icon plus label/subtitle plus
   a More link, own copy/branding, links to the site's existing most-viewed
   page). Sits between the header and the #featured_posts row (both
   rendered by the same appyn_child_featured_slider() function). */
.aa-slider-eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  margin:2px 2px 10px;
}
.aa-slider-eyebrow-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  flex:none;
  border-radius:var(--aa-radius-pill);
  background:rgba(254,100,70,.12);
  color:var(--aa-accent);
  font-size:14px;
}
.aa-slider-eyebrow-text{
  display:flex;
  flex-direction:column;
  line-height:1.3;
  min-width:0;
}
.aa-slider-eyebrow-text strong{
  font-size:14px;
  color:var(--aa-ink-strong);
}
.aa-slider-eyebrow-text small{
  font-size:11.5px;
  color:var(--aa-ink);
  opacity:.8;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.aa-slider-more{
  margin-left:auto;
  flex:none;
  display:flex;
  align-items:center;
  gap:4px;
  font-size:12.5px;
  font-weight:700;
  color:var(--aa-ink) !important;
  white-space:nowrap;
}
.aa-slider-more:hover{
  color:var(--aa-accent) !important;
}
.aa-slider-more i{
  font-size:10px;
}
body.theme-dark .aa-slider-eyebrow-text strong{
  color:#fff;
}

/* --- Hero slider tile meta: version badge (top-right corner) plus a
   bottom bar that now holds two rows (title, then rating + a visual GET
   pill) instead of just the title -- closer to aptoide's slide info
   density. The bottom bar's fixed 78px height (parent theme) is relaxed to
   auto so the second row has room; the gradient/blur backdrop is untouched. */
.fp-badge{
  position:absolute;
  top:10px;
  right:10px;
  z-index:2;
  background:rgba(19,22,29,.72);
  color:#fff;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.02em;
  padding:3px 9px;
  border-radius:var(--aa-radius-pill);
  backdrop-filter:blur(2px);
}
.fpb_a{
  height:auto !important;
  min-height:78px;
  padding:12px 14px !important;
  align-items:center;
}
.fpb_info{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.fpb_info .fpb_title{
  font-size:14.5px;
  line-height:1.25;
  -webkit-line-clamp:1;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.fpb_meta{
  display:flex;
  align-items:center;
  gap:8px;
}
.fpb_meta .box-rating{
  flex:none;
}
.fpb_meta .box-rating .rating{
  width:70px;
}
.fpb_meta .rating-average,
.fpb_meta .rating-text{
  display:none;
}
.fp-dl{
  margin-left:auto;
  flex:none;
  background:var(--aa-accent);
  color:#fff;
  font-size:11px;
  font-weight:700;
  letter-spacing:.03em;
  padding:4px 12px;
  border-radius:var(--aa-radius-pill);
}

/* --- Fix: #featured_posts (and now .aa-slider-eyebrow/.aa-slider-dots,
   both siblings of it, all rendered by appyn_child_featured_slider() on
   the 'subheader' hook) sit directly under <main>, never inside .container
   -- so the Round 3 sidebar-rail fix above (which only margins .container)
   never reached them. Pre-existing on the slider itself (confirmed: it was
   already rendering its left ~220px under the fixed rail's opaque
   background before this round, just less noticeable on an edge-to-edge
   image than on the new eyebrow text). Same fix, same breakpoint. */
@media (min-width:1300px){
  .aa-slider-eyebrow,
  .aa-slider-wrap,
  .aa-slider-dots{
    margin-left:var(--aa-sidebar-w);
    width:calc(100% - var(--aa-sidebar-w));
    box-sizing:border-box;
  }
}

/* ==========================================================================
   App-article hero -- dark "aptoide-style" card, PC AND mobile (site
   owner request: originally mobile-only, then extended to desktop with
   the same reference screenshot -- "same design ... pc aur mobile k
   leye"). Dark gradient card, glowing icon ring, gradient download
   button, and dark glass stat tiles now apply at every width.
   `.app-s > .box:first-child` is this file's already-established
   hero-only selector (see the "close the dead-space gap" round above --
   that round's own grid-template-columns layout for desktop is left
   completely untouched here, only its colors change). Unconditional (not
   scoped to body.theme-dark) because the reference is a fixed dark
   treatment for this one card, independent of the site's own light/dark
   toggle -- Aptoide's own app-page hero has no toggle at all and is
   simply always dark there.

   NOT replicated: the reference's green "Verified" checkmark next to the
   version. A number of this site's listed apps are unofficial/modded
   builds or aren't on the Play Store at all (confirmed elsewhere in this
   project -- e.g. a modded clone and a gambling app). Stamping a
   "Verified" trust badge across every app page regardless would be a
   false safety claim shown to visitors, not a style choice, so it's
   intentionally left out; the version still renders, just restyled as a
   plain pill to suit the dark card. Happy to add a non-claim accent
   badge there instead (e.g. "Popular", "Updated") if wanted.
   ========================================================================== */
.app-s > .box:first-child{
  position:relative;
  overflow:hidden;
  box-shadow:0 4px 18px rgba(26,29,36,.07);
  /* Pivot (site owner reference mockups, 2026-09-02): plain white card with
     a faint grid texture, matching the new light-theme reference -- swaps
     out the earlier dark teal-to-purple circuit-pattern background below. */
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M40 0H0V40' fill='none' stroke='%231a1d24' stroke-opacity='0.035' stroke-width='1'/%3E%3C/svg%3E"),
    var(--aa-surface);
  background-repeat:repeat, no-repeat;
}
.app-s > .box:first-child #breadcrumbs a{
  color:var(--aa-ink);
}
.app-s > .box:first-child #breadcrumbs li{
  color:rgba(26,29,36,.3);
}
.app-s > .box:first-child .main-box-title{
  color:var(--aa-ink-strong);
}
.app-s > .box:first-child .version{
  display:inline-block;
  margin-top:6px;
  padding:3px 12px;
  background:var(--aa-surface-alt);
  border:1px solid var(--aa-border);
  border-radius:var(--aa-radius-pill);
  color:var(--aa-ink);
  font-size:12.5px;
  font-weight:700;
}

/* Soft contact-shadow behind the icon (light theme now -- the neon glow
   ring suited the earlier dark card, not this white one) */
.app-s > .box:first-child .bloque-imagen{
  position:relative;
}
.app-s > .box:first-child .bloque-imagen::before{
  content:'';
  position:absolute;
  inset:-10px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(26,29,36,.08), transparent 72%);
  filter:blur(6px);
  z-index:0;
}
.app-s > .box:first-child .bloque-imagen .image-single{
  position:relative;
  z-index:1;
  box-shadow:0 8px 20px rgba(26,29,36,.18);
}

.app-s > .box:first-child .link-report{
  color:var(--aa-ink);
}
.app-s > .box:first-child .rating-average,
.app-s > .box:first-child .rating-text{
  color:var(--aa-ink-strong);
}

.app-s > .box:first-child .buttond.downloadAPK{
  background:linear-gradient(180deg, #ff7a5c, var(--aa-accent) 55%, #e2502f);
  box-shadow:0 10px 22px rgba(254,100,70,.4), inset 0 1px 0 rgba(255,255,255,.25);
  border:none;
}

/* Quick-facts tiles: dark glass cards instead of the light default */
/* Site owner follow-up: shrink these stat tiles -- the base sitewide
   .aa-qf-item rule (13px/16px padding, 84px min-width, 14px value text)
   was sized for the earlier plain-strip version; on this dark hero card
   specifically they should read closer to the reference's more compact
   boxes. */
.app-s > .box:first-child .aa-qf-item{
  background:var(--aa-surface);
  border:1px solid var(--aa-border);
  box-shadow:0 2px 6px rgba(26,29,36,.05);
  color:var(--aa-ink-strong);
  padding:9px 10px;
  gap:3px;
  font-size:12px;
}
.app-s > .box:first-child .aa-qf-item i{
  display:block;
  width:24px;
  height:24px;
  line-height:24px;
  margin:0 auto 4px;
  background:rgba(254,100,70,.1);
  color:var(--aa-accent);
  border-radius:7px;
  font-size:11px;
}
.app-s > .box:first-child .aa-qf-item::after{
  color:var(--aa-ink);
  font-size:9px;
}

/* Mobile-only: edge-to-edge card (no rounded corners / drop-shadow --
   site owner follow-up, confirmed live the parent theme's default 20px
   radius + grey drop-shadow made this read as a floating "box" rather
   than a full-bleed section) plus the icon/button/rating/report row
   layout -- icon and button each force a full-width wrap break, rating
   and report then land on the same shared line beside each other,
   matching the reference's single "stars . votes . Report" row, purely
   via flex-wrap (icon, button, rating, report are already siblings in
   that DOM order -- no template markup changes). */
@media (max-width:650px){
  .app-s > .box:first-child{
    border-radius:0;
    margin-bottom:0;
    padding:22px 18px 20px;
  }
  .app-s > .box:first-child .bloque-imagen{
    margin-top:6px;
  }
  .app-s > .box:first-child .app-icb.s1{
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:center;
    gap:14px 10px;
  }
  .app-s > .box:first-child .app-icb.s1 > .buttond.downloadAPK{
    flex:0 0 100%;
  }
  .app-s > .box:first-child .app-icb.s1 > .box-rating.movil,
  .app-s > .box:first-child .app-icb.s1 > .link-report{
    flex:0 0 auto;
    margin:0;
  }
  .app-s > .box:first-child .link-report{
    padding-left:12px;
    border-left:1px solid var(--aa-border);
  }
  /* Site owner follow-up: on mobile the 1fr/1fr grid stretched each tile
     to fill half the card, so they still looked "big" despite the
     smaller padding/font above. Switched to content-sized columns
     (max-content) so tiles shrink-wrap their content just like the
     desktop layout already does, while still centering 2 per row. */
  .app-s > .box:first-child .aa-quickfacts{
    margin-top:4px;
    display:grid;
    grid-template-columns:repeat(2, max-content);
    justify-content:center;
    gap:8px;
  }
  .app-s > .box:first-child .aa-qf-item{
    width:auto;
    min-width:110px;
  }
}

/* Desktop/tablet: the dark card sits inside the page's normal centered
   860px column (see "close the dead-space gap" round above) alongside
   every other card on the page, so it keeps a rounded edge and its own
   padding instead of mobile's edge-to-edge treatment -- that round's
   own 2-column grid (170px icon column + title/quickfacts column) is
   untouched, this only adds color-safe spacing/radius on top of it. */
@media (min-width:651px){
  .app-s > .box:first-child{
    border-radius:var(--aa-radius-md);
    padding:28px 30px;
  }
}