/*
 * Camada responsiva consolidada — Sagittariu
 * Fonte de verdade para tablet e mobile. Mantém a composição desktop intacta
 * e neutraliza regras antigas conflitantes carregadas pelo protótipo.
 */

@media (max-width: 70rem) {
  :root {
    --responsive-gutter: 1.5rem;
    --responsive-section: 5rem;
  }

  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

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

  .container,
  .header-container {
    width: min(calc(100% - (var(--responsive-gutter) * 2)), 86rem) !important;
    margin-inline: auto !important;
  }

  .section {
    padding-block: var(--responsive-section) !important;
  }

  h1,
  h2,
  h3,
  .section-heading,
  .split-heading,
  .account-main__header {
    max-width: 100%;
    overflow: visible;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .button,
  button,
  input,
  select,
  textarea {
    min-height: 3rem;
  }

  /* Header: o mesmo breakpoint e a mesma anatomia em todas as rotas. */
  .site-header {
    position: relative;
    z-index: 100;
  }

  .utility-bar {
    min-height: 2.5rem !important;
  }

  .utility-bar .header-container {
    min-height: 2.5rem !important;
    justify-content: center !important;
  }

  .utility-bar .utility-links {
    display: none !important;
  }

  .utility-bar strong {
    font-size: .875rem !important;
    line-height: 1.25rem !important;
    text-align: center;
  }

  .header-main {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 1rem !important;
    min-height: 5rem !important;
    padding-block: .75rem !important;
  }

  .header-main .brand {
    justify-self: start;
    min-width: 0;
  }

  .header-main .brand img {
    width: 3rem !important;
    height: 3rem !important;
    object-fit: contain;
  }

  .header-main .brand span {
    font-size: 1rem !important;
    letter-spacing: .28em !important;
  }

  .header-search {
    display: none !important;
  }

  .header-actions {
    display: none !important;
  }

  .menu-toggle {
    display: grid !important;
    place-content: center !important;
    width: 3rem !important;
    height: 3rem !important;
    min-height: 3rem !important;
    margin: 0 !important;
    padding: .75rem !important;
    border: .0625rem solid rgba(158, 181, 207, .42) !important;
    background: transparent !important;
  }

  .menu-toggle > span:not(.sr-only) {
    width: 1.5rem !important;
  }

  .primary-nav {
    position: absolute !important;
    inset: 100% 0 auto !important;
    display: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 7.5rem) !important;
    padding: 0 !important;
    overflow-y: auto !important;
    border-top: .0625rem solid #263a54 !important;
    border-bottom: .0625rem solid #263a54 !important;
    background: #071426 !important;
    box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, .34) !important;
  }

  .primary-nav.is-open,
  .primary-nav[data-open="true"] {
    display: block !important;
  }

  .primary-nav .header-container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: minmax(3rem, auto) !important;
    align-items: stretch !important;
    gap: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-block: 1rem !important;
  }

  .primary-nav a {
    display: flex !important;
    align-items: center !important;
    min-height: 3rem !important;
    padding: .75rem 1rem !important;
    border-bottom: .0625rem solid rgba(93, 119, 149, .22) !important;
  }

  /* Ritmo e grids compartilhados das páginas editoriais. */
  .split-heading,
  .tcg-explorer-heading,
  .fandom-bento-heading,
  .events-intro,
  .collectibles-final-inner,
  .anime-final-inner,
  .games-final-inner,
  .tcg-final-inner {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .split-heading h2,
  .section-heading h2,
  .fandom-bento-heading h2,
  .tcg-explorer-heading h2,
  .events-intro h2 {
    font-size: clamp(2.5rem, 7vw, 4.5rem) !important;
    line-height: .98 !important;
  }

  .games-showcase,
  .anime-campaign,
  .room-immersive,
  .collectibles-hero-inner,
  .anime-hero-inner,
  .games-page-hero-inner,
  .tcg-page-hero-inner,
  .contact-hero-inner,
  .events-hero-inner,
  .institutional-hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 2rem !important;
  }

  .fandom-bento,
  .anime-universe-grid,
  .games-category-grid,
  .collectibles-category-grid,
  .tcg-product-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .tcg-products-layout {
    grid-template-columns: 13rem minmax(0, 1fr) !important;
    gap: 2rem !important;
  }

  .tcg-product-grid,
  .shop-grid,
  ul.products.shop-grid,
  .search-product-grid,
  .favorites-grid,
  .related-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  /* Loja, produto e fluxo de compra. */
  .shop-page > .container {
    padding-block: 5rem !important;
  }

  .shop-heading h1,
  .cart-page h1,
  .checkout h1,
  .account-page h1 {
    font-size: clamp(3.5rem, 9vw, 6rem) !important;
    line-height: .9 !important;
  }

  .shop-categories {
    display: flex !important;
    gap: .5rem !important;
    overflow-x: auto !important;
    padding-bottom: .5rem !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .shop-categories::-webkit-scrollbar {
    display: none;
  }

  .shop-categories a {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .product-hero-inner,
  .product-details-grid,
  .product-packaging-grid,
  .cart-layout,
  .checkout-layout,
  .checkout-live .woocommerce-checkout,
  .woocommerce-checkout .col2-set,
  .woocommerce-checkout-review-order {
    grid-template-columns: 1fr !important;
  }

  .product-gallery,
  .product-buy {
    min-width: 0 !important;
  }

  .product-facts,
  .product-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .product-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, .84fr) !important;
  }

  .cart-layout,
  .checkout-live .woocommerce-checkout {
    gap: 2rem !important;
  }

  .cart-summary,
  .woocommerce-checkout-review-order {
    position: static !important;
    width: 100% !important;
  }

  /* Conta: navegação horizontal no tablet, sem a coluna lateral estreita. */
  .account-hub__section {
    padding-block: 5rem !important;
  }

  .account-hub__layout {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .account-sidebar {
    position: static !important;
    min-width: 0;
  }

  .account-sidebar .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    gap: .5rem !important;
    overflow-x: auto !important;
    padding-bottom: .5rem !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .account-sidebar .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
    display: none;
  }

  .account-sidebar .woocommerce-MyAccount-navigation li {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }

  .account-sidebar .woocommerce-MyAccount-navigation a {
    border-left: 0 !important;
    border-bottom: .1875rem solid transparent !important;
    white-space: nowrap;
  }

  .account-sidebar .woocommerce-MyAccount-navigation li.is-active a {
    border-bottom-color: var(--red) !important;
  }

  .account-profile-grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(16rem, .7fr) !important;
  }

  /* Rodapé: remove as alturas fixas que transformavam o footer em outra página. */
  .site-footer {
    padding-top: 0 !important;
  }

  .footer-grid {
    grid-template-columns: 1fr !important;
  }

  .footer-brand {
    min-height: 0 !important;
    padding: 2.5rem !important;
  }

  .footer-navigation {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .footer-navigation > div {
    min-height: 0 !important;
    padding: 2rem 1.5rem !important;
  }

  .footer-bottom {
    min-height: 0 !important;
    padding-block: 1.5rem !important;
    gap: .75rem !important;
  }
}

@media (max-width: 47.5rem) {
  :root {
    --responsive-gutter: 1rem;
    --responsive-section: 4rem;
  }

  body {
    font-size: 1rem;
  }

  .container,
  .header-container {
    width: calc(100% - (var(--responsive-gutter) * 2)) !important;
  }

  .utility-bar strong {
    max-width: calc(100% - 2rem);
    font-size: .75rem !important;
    letter-spacing: .08em;
  }

  .header-main {
    min-height: 4.5rem !important;
  }

  .header-main .brand img {
    width: 2.5rem !important;
    height: 2.5rem !important;
  }

  .header-main .brand span {
    font-size: .875rem !important;
  }

  .primary-nav {
    max-height: calc(100dvh - 7rem) !important;
  }

  .primary-nav .header-container {
    grid-template-columns: 1fr !important;
    grid-auto-rows: minmax(3.5rem, auto) !important;
  }

  .primary-nav a {
    min-height: 3.5rem !important;
  }

  .hero,
  .tcg-page-hero,
  .games-page-hero,
  .anime-hero,
  .collectibles-hero,
  .contact-hero,
  .events-hero,
  .institutional-hero {
    min-height: auto !important;
  }

  .hero {
    height: auto !important;
    padding-block: 5rem !important;
  }

  .hero-copy {
    position: relative !important;
    inset: auto !important;
    padding: 0 !important;
  }

  .hero h1,
  .tcg-page-hero h1,
  .games-page-hero h1,
  .anime-hero h1,
  .collectibles-hero h1,
  .contact-hero h1,
  .events-hero h1,
  .institutional-hero h1,
  .product-buy h1 {
    max-width: 100% !important;
    font-size: clamp(3rem, 15vw, 5rem) !important;
    line-height: .9 !important;
  }

  .hero .button-row,
  .room-story .button-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
  }

  .hero .button,
  .room-story .button,
  .fandom-bento-heading .button,
  .events-intro .button {
    width: 100% !important;
  }

  .benefits {
    overflow: hidden;
  }

  .benefits-track {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: min(78vw, 19rem) !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .benefits-track::-webkit-scrollbar {
    display: none;
  }

  .benefits article {
    min-width: 0 !important;
    min-height: 8rem !important;
    scroll-snap-align: start;
  }

  .universe-showcase,
  .games-showcase,
  .anime-campaign,
  .room-immersive,
  .collectibles-hero-inner,
  .anime-hero-inner,
  .games-page-hero-inner,
  .tcg-page-hero-inner,
  .contact-hero-inner,
  .events-hero-inner,
  .institutional-hero-inner {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
  }

  .universe-showcase {
    width: calc(100% - 2rem) !important;
    margin-inline: auto !important;
  }

  .universe-feature {
    min-height: 28rem !important;
  }

  .universe-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .universe-tabs,
  .tcg-type-rail {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .universe-tabs::-webkit-scrollbar,
  .tcg-type-rail::-webkit-scrollbar {
    display: none;
  }

  .universe-tabs > *,
  .tcg-type-rail > * {
    flex: 0 0 9rem !important;
    scroll-snap-align: start;
  }

  .product-carousel {
    margin-inline: 0 !important;
  }

  .product-carousel .product-grid {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: min(82vw, 20rem) !important;
    grid-template-columns: none !important;
    gap: 1rem !important;
    overflow-x: auto !important;
    padding: .25rem 0 1rem !important;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .product-carousel .product-grid::-webkit-scrollbar {
    display: none;
  }

  .product-carousel .product-card {
    scroll-snap-align: start;
  }

  .product-carousel-control {
    display: none !important;
  }

  .tcg-explorer-heading,
  .fandom-bento-heading,
  .events-intro {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .tcg-franchise-mosaic,
  .fandom-bento,
  .anime-universe-grid,
  .games-category-grid,
  .collectibles-category-grid,
  .tcg-product-type-grid,
  .room-features,
  .events-grid,
  .gifts-grid {
    grid-template-columns: 1fr !important;
  }

  .fandom-bento-item,
  .anime-universe-card,
  .games-category-card,
  .collectibles-category-card,
  .tcg-product-type-card {
    min-height: 18rem !important;
    aspect-ratio: auto !important;
  }

  .games-visual,
  .anime-campaign-visual,
  .fandom-shelf,
  .collector-display,
  .tcg-card-table {
    min-height: 22rem !important;
    order: -1;
  }

  .room-stage {
    min-height: 24rem !important;
  }

  .room-features {
    gap: .75rem !important;
  }

  /* Catálogos internos: filtros viram painel recolhível, produtos legíveis. */
  .tcg-products-layout {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .tcg-filters {
    position: static !important;
    width: 100% !important;
  }

  .tcg-filter-toggle {
    display: flex !important;
    width: 100% !important;
    justify-content: space-between !important;
  }

  .tcg-filters > div {
    max-height: 0;
    overflow: hidden;
  }

  .tcg-filters > div.is-open,
  .tcg-filter-toggle[aria-expanded="true"] + div {
    max-height: 60rem;
    padding-top: 1rem;
  }

  .tcg-product-toolbar,
  .shop-toolbar {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
    align-items: stretch !important;
  }

  .tcg-product-toolbar label,
  .shop-toolbar > div,
  .shop-toolbar form,
  .woocommerce-ordering,
  .woocommerce-ordering select {
    width: 100% !important;
  }

  .tcg-product-grid,
  .shop-grid,
  ul.products.shop-grid,
  .search-product-grid,
  .favorites-grid,
  .related-products-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .sagittariu-product-card,
  .search-product-card,
  .related-products-grid .product-card {
    width: 100% !important;
    min-width: 0 !important;
  }

  .sagittariu-product-card__image,
  .related-products-grid .product-art {
    aspect-ratio: 1 !important;
  }

  .sagittariu-product-card__body,
  .search-product-card .sagittariu-product-card__body,
  .related-products-grid .product-info {
    gap: .5rem !important;
    padding: .75rem !important;
  }

  .sagittariu-product-card__body h2,
  .search-product-card .sagittariu-product-card__body h2,
  .related-products-grid .product-info h3 {
    min-height: 2.5rem !important;
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }

  .sagittariu-product-card .price,
  .search-product-card .price,
  .related-products-grid .product-info p {
    font-size: 1rem !important;
  }

  .sagittariu-product-card .button,
  .search-product-card .button,
  .related-products-grid .product-info .button {
    min-height: 2.5rem !important;
    margin-top: .5rem !important;
    padding-inline: .5rem !important;
    font-size: .75rem !important;
    line-height: 1 !important;
  }

  /* Produto. */
  .product-hero,
  .product-details,
  .product-packaging,
  .product-delivery,
  .product-related,
  .product-faq {
    padding-block: 4rem !important;
  }

  .product-hero-inner,
  .product-details-grid,
  .product-packaging-grid,
  .product-delivery-grid {
    gap: 2rem !important;
  }

  .product-image-placeholder {
    min-height: 0 !important;
    aspect-ratio: 1 / 1.08 !important;
  }

  .product-thumbnails {
    grid-template-columns: repeat(3, 4rem) !important;
  }

  .product-thumbnails button {
    width: 4rem !important;
    height: 4rem !important;
  }

  .product-facts,
  .product-specs {
    grid-template-columns: 1fr !important;
  }

  .product-facts > div,
  .product-specs > div {
    grid-template-columns: minmax(7rem, .8fr) minmax(0, 1.2fr) !important;
  }

  .product-actions {
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
  }

  .product-actions form,
  .product-actions .button,
  .product-actions .product-favorite {
    width: 100% !important;
  }

  .product-delivery-grid > div,
  .product-delivery-grid > div + div {
    padding: 1.5rem 0 !important;
  }

  /* Carrinho e checkout. */
  .cart-page,
  .checkout {
    padding-block: 4rem !important;
  }

  .cart-product {
    grid-template-columns: 5rem minmax(0, 1fr) !important;
    gap: 1rem !important;
    padding: 1rem !important;
  }

  .cart-product-image {
    width: 5rem !important;
    height: 5rem !important;
  }

  .cart-product-price {
    grid-column: 2;
    justify-self: start !important;
  }

  .cart-product-remove {
    inset: .75rem .75rem auto auto !important;
  }

  .cart-actions-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
  }

  .cart-actions-row .button,
  .cart-summary .button,
  .checkout .button {
    width: 100% !important;
  }

  .cart-summary,
  .checkout-live .woocommerce-billing-fields,
  .checkout-live .woocommerce-additional-fields,
  .woocommerce-checkout-review-order {
    padding: 1.5rem !important;
  }

  .checkout-site-header__inner {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 1rem !important;
  }

  /* Conta. */
  .account-hub__section,
  .account-page--guest {
    padding-block: 4rem !important;
  }

  .account-sidebar__greeting {
    margin-bottom: 1rem !important;
  }

  .account-sidebar .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    grid-template-columns: none !important;
  }

  .account-main__header {
    display: block !important;
    min-height: 0 !important;
  }

  .account-main__header h1 {
    font-size: 2rem !important;
  }

  .account-profile-grid,
  .account-main__body .woocommerce-Addresses,
  .account-main__body form,
  .account-grid {
    grid-template-columns: 1fr !important;
  }

  .account-profile-card,
  .account-main__body > .woocommerce-Addresses,
  .account-main__body > form,
  .account-main__body > .woocommerce-info,
  .account-main__body > .woocommerce-message,
  .account-main__body > table,
  .account-main__body > .woocommerce-EditAccountForm,
  .account-panel {
    padding: 1.5rem !important;
  }

  .account-profile-card dl {
    grid-template-columns: 1fr !important;
  }

  .account-main__body table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }

  /* Formulários e páginas institucionais. */
  .contact-grid,
  .contact-form-grid,
  .institutional-grid,
  .policy-layout,
  .event-details-grid {
    grid-template-columns: 1fr !important;
  }

  form input,
  form select,
  form textarea {
    max-width: 100%;
  }

  /* Footer compacto em duas colunas no mobile. */
  .footer-brand {
    padding: 2rem !important;
  }

  .footer-brand .brand {
    align-items: center !important;
  }

  .footer-navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .footer-navigation > div {
    min-height: 0 !important;
    padding: 1.5rem 1rem !important;
    border-top: .0625rem solid #24384f !important;
    border-left: 0 !important;
  }

  .footer-navigation h3 {
    margin-bottom: 1rem !important;
    font-size: .75rem !important;
  }

  .footer-navigation a {
    min-height: 2rem !important;
    font-size: .875rem !important;
    line-height: 1.35 !important;
  }

  .footer-bottom {
    display: grid !important;
    grid-template-columns: 1fr !important;
    padding: 1.5rem 1rem !important;
  }
}

@media (max-width: 22rem) {
  .header-main .brand span {
    max-width: 9rem;
    overflow: hidden;
    white-space: nowrap;
  }

  .footer-navigation {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================================== */
/* Canonical shared components                                                */
/* These rules are deliberately last: every template must render the same     */
/* campaign and footer, regardless of the prototype stylesheet it imports.    */
/* ========================================================================== */

.site-footer {
  position: relative !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  color: #f7f9fc !important;
  background: #020a16 !important;
  border: 0 !important;
  border-top: .1875rem solid var(--red, #f52946) !important;
}

.site-footer .footer-grid {
  width: min(calc(100% - 3rem), 86rem) !important;
  max-width: none !important;
  min-height: 35rem !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(20rem, 4fr) minmax(0, 8fr) !important;
  grid-template-rows: auto !important;
  gap: 0 !important;
  align-items: stretch !important;
  background: #07101d !important;
}

.site-footer .footer-brand {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
  min-height: 35rem !important;
  margin: 0 !important;
  padding: 4rem !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 3rem !important;
  color: #fff !important;
  background: var(--red, #f52946) !important;
  border: 0 !important;
}

.site-footer .footer-brand .brand {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  color: #fff !important;
}

.site-footer .footer-brand .brand img {
  width: 3rem !important;
  height: 3rem !important;
  object-fit: contain !important;
  filter: brightness(0) invert(1) !important;
}

.site-footer .footer-brand p,
.site-footer .footer-brand strong {
  max-width: 23rem !important;
  color: #fff !important;
}

.site-footer .footer-brand p {
  margin: 0 0 2rem !important;
  font-size: 1rem !important;
  line-height: 1.5rem !important;
}

.site-footer .footer-brand strong {
  display: block !important;
  font-size: 1.5rem !important;
  line-height: 2rem !important;
}

.site-footer .footer-navigation {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: minmax(17.5rem, auto) !important;
  gap: 0 !important;
  align-content: stretch !important;
  background: #07101d !important;
}

.site-footer .footer-navigation > div,
.site-footer .footer-navigation > div:nth-child(n) {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 3rem 2rem !important;
  border: 0 !important;
  border-right: .0625rem solid #20324a !important;
  border-bottom: .0625rem solid #20324a !important;
}

.site-footer .footer-navigation > div:nth-child(3n) {
  border-right: 0 !important;
}

.site-footer .footer-navigation > div:nth-child(n + 4) {
  border-bottom: 0 !important;
}

.site-footer .footer-navigation h3 {
  margin: 0 0 1.5rem !important;
  color: var(--red, #f52946) !important;
  font-size: .875rem !important;
  line-height: 1rem !important;
  letter-spacing: .125rem !important;
  text-transform: uppercase !important;
}

.site-footer .footer-navigation a {
  min-height: 0 !important;
  margin: 0 0 .75rem !important;
  padding: 0 !important;
  display: block !important;
  color: #a9b8ca !important;
  font-size: 1rem !important;
  line-height: 1.5rem !important;
  text-decoration: none !important;
}

.site-footer .footer-navigation a:hover,
.site-footer .footer-navigation a:focus-visible {
  color: #fff !important;
}

.site-footer .footer-bottom {
  width: min(calc(100% - 3rem), 86rem) !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 1.5rem 4rem !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: .5rem 2rem !important;
  color: #7f91a6 !important;
  background: #0c1a2d !important;
  border: 0 !important;
  border-top: .0625rem solid #20324a !important;
  font-size: .875rem !important;
  line-height: 1.25rem !important;
}

@media (max-width: 70rem) {
  .site-footer .footer-grid {
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
  }

  .site-footer .footer-brand {
    min-height: 0 !important;
    padding: 2rem !important;
    display: grid !important;
    grid-template-columns: 8rem minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 2rem !important;
  }

  .site-footer .footer-brand > div:last-child {
    max-width: 36rem !important;
  }

  .site-footer .footer-navigation {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
  }

  .site-footer .footer-navigation > div,
  .site-footer .footer-navigation > div:nth-child(n) {
    padding: 2rem !important;
  }
}

@media (max-width: 47.5rem) {
  .anime-feature {
    padding-block: 0 !important;
  }

  .anime-feature .anime-campaign {
    position: relative !important;
    isolation: isolate !important;
    min-height: clamp(40rem, 178vw, 44rem) !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: flex-end !important;
    overflow: hidden !important;
    background: #061225 !important;
  }

  .anime-feature .anime-campaign-visual {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    order: initial !important;
  }

  .anime-feature .anime-campaign-visual > img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  .anime-feature .anime-campaign-visual::before {
    background:
      linear-gradient(0deg, #061225 0%, rgba(6, 18, 37, .98) 42%, rgba(6, 18, 37, .58) 67%, rgba(6, 18, 37, .08) 100%),
      linear-gradient(90deg, rgba(6, 18, 37, .38), transparent 55%, rgba(6, 18, 37, .2)) !important;
  }

  .anime-feature .anime-campaign-copy {
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 2rem 1.5rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    background: transparent !important;
  }

  .anime-feature .anime-campaign-copy h2 {
    max-width: 12ch !important;
    margin-bottom: 1rem !important;
    font-size: clamp(2.5rem, 12vw, 3rem) !important;
    line-height: .96 !important;
  }

  .anime-feature .anime-campaign-copy p {
    font-size: 1rem !important;
    line-height: 1.5rem !important;
  }

  .anime-feature .anime-campaign-copy .button {
    width: 100% !important;
    justify-content: center !important;
  }

  .site-footer .footer-grid,
  .site-footer .footer-bottom {
    width: min(calc(100% - 2rem), 86rem) !important;
  }

  .site-footer .footer-brand {
    padding: 1.5rem !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .site-footer .footer-brand .brand {
    display: flex !important;
    align-items: center !important;
    justify-items: initial !important;
    gap: .5rem !important;
  }

  .site-footer .footer-brand .brand span {
    font-size: .875rem !important;
    line-height: 1rem !important;
    letter-spacing: .25em !important;
  }

  .site-footer .footer-brand .brand img {
    width: 2.5rem !important;
    height: 2.5rem !important;
  }

  .site-footer .footer-brand p {
    margin-bottom: 1rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }

  .site-footer .footer-brand strong {
    font-size: 1rem !important;
    line-height: 1.25rem !important;
  }

  .site-footer .footer-navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .site-footer .footer-navigation > div,
  .site-footer .footer-navigation > div:nth-child(n) {
    padding: 1rem !important;
    border-right: .0625rem solid #20324a !important;
    border-bottom: .0625rem solid #20324a !important;
  }

  .site-footer .footer-navigation > div:nth-child(2n) {
    border-right: 0 !important;
  }

  .site-footer .footer-navigation > div:last-child,
  .site-footer .footer-navigation > div:nth-last-child(2):nth-child(odd) {
    border-bottom: 0 !important;
  }

  .site-footer .footer-navigation > div:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
    border-right: 0 !important;
  }

  .site-footer .footer-navigation h3 {
    margin-bottom: .75rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }

  .site-footer .footer-navigation a {
    margin-bottom: .25rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }

  .site-footer .footer-bottom {
    padding: 1rem !important;
    display: grid !important;
    gap: .5rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }
}

/*
 * Fechamento responsivo: seletores com a mesma especificidade do prototipo.
 * Esta faixa fica intencionalmente no fim do arquivo para impedir que regras
 * antigas de cada pagina voltem a impor alturas e areas de grid fixas.
 */
@media (max-width: 70rem) {
  .site-footer .footer-grid {
    grid-template-columns: 1fr !important;
  }

  .site-footer .footer-brand {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: initial !important;
    gap: 2rem !important;
    min-height: 0 !important;
    padding: 2rem !important;
  }

  .site-footer .footer-brand > div {
    display: grid !important;
    gap: .75rem !important;
  }

  .site-footer .footer-brand p,
  .site-footer .footer-brand strong {
    max-width: 36rem !important;
    margin: 0 !important;
  }

  .site-footer .footer-navigation {
    grid-column: 1 / -1 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .site-footer .footer-navigation > div,
  .site-footer .footer-navigation > div:nth-child(n) {
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 0 !important;
    padding: 1.5rem !important;
    border-right: .0625rem solid #20324a !important;
    border-bottom: .0625rem solid #20324a !important;
  }

  .site-footer .footer-navigation > div:nth-child(3n) {
    border-right: 0 !important;
  }

  .site-footer .footer-navigation > div:nth-last-child(-n + 3) {
    border-bottom: 0 !important;
  }

  .site-footer .footer-navigation h3 {
    margin-bottom: 1rem !important;
  }

  .site-footer .footer-navigation a {
    margin-bottom: .5rem !important;
    font-size: .875rem !important;
    line-height: 1.25rem !important;
  }
}

@media (max-width: 47.5rem) {
  .tcg-franchise-mosaic,
  .fandom-bento,
  .anime-universe-grid,
  .games-category-grid,
  .collectibles-category-grid,
  .tcg-product-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: none !important;
    grid-auto-rows: 12rem !important;
    grid-template-areas: none !important;
    min-height: 0 !important;
    gap: 1rem !important;
  }

  .tcg-franchise-mosaic > *,
  .fandom-bento > *,
  .anime-universe-grid > *,
  .games-category-grid > *,
  .collectibles-category-grid > *,
  .tcg-product-type-grid > * {
    grid-area: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
  }

  .tcg-franchise-mosaic > :first-child,
  .fandom-bento > :first-child,
  .anime-universe-grid > :first-child,
  .collectibles-category-grid > :first-child,
  .tcg-product-type-grid > :first-child {
    grid-column: 1 / -1 !important;
    grid-row: span 2 !important;
  }

  .games-category-grid > .is-games,
  .games-category-grid > .is-keyboards {
    grid-column: 1 / -1 !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    min-height: 24rem !important;
  }

  .tcg-franchise-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
  }

  .tcg-franchise-grid > .tcg-franchise-card {
    grid-column: auto !important;
    grid-row: auto !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: 13rem auto !important;
  }

  .tcg-franchise-grid > .tcg-franchise-card.is-featured {
    grid-column: 1 / -1 !important;
    grid-template-rows: 22rem auto !important;
  }

  .site-footer .footer-brand {
    grid-template-columns: 6rem minmax(0, 1fr) !important;
    gap: 1rem !important;
    padding: 1rem !important;
  }

  .site-footer .footer-brand .brand img {
    width: 2.5rem !important;
    height: 2.5rem !important;
  }

  .site-footer .footer-brand p {
    font-size: .75rem !important;
    line-height: 1rem !important;
  }

  .site-footer .footer-brand strong {
    font-size: 1rem !important;
    line-height: 1.25rem !important;
  }

  .site-footer .footer-navigation {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .site-footer .footer-navigation > div,
  .site-footer .footer-navigation > div:nth-child(n) {
    min-height: 0 !important;
    padding: 1rem !important;
    border-right: .0625rem solid #20324a !important;
    border-bottom: .0625rem solid #20324a !important;
  }

  .site-footer .footer-navigation > div:nth-child(2n) {
    border-right: 0 !important;
  }

  .site-footer .footer-navigation > div:nth-last-child(-n + 2) {
    border-bottom: 0 !important;
  }

  .site-footer .footer-navigation h3 {
    margin-bottom: .5rem !important;
  }

  .site-footer .footer-navigation a {
    min-height: 0 !important;
    margin-bottom: .25rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }

  .site-footer .footer-bottom {
    min-height: 0 !important;
    gap: .5rem !important;
    padding: 1rem !important;
    font-size: .75rem !important;
    line-height: 1rem !important;
  }
}

@media (max-width: 22rem) {
  .tcg-product-grid,
  .shop-grid,
  ul.products.shop-grid,
  .search-product-grid,
  .favorites-grid,
  .related-products-grid {
    grid-template-columns: 1fr !important;
  }

  .site-footer .footer-brand {
    grid-template-columns: 1fr !important;
  }

  .site-footer .footer-navigation > div,
  .site-footer .footer-navigation > div:nth-child(n) {
    padding-inline: .75rem !important;
  }
}

/* Mobile footer final state. Kept after every legacy responsive block. */
@media (max-width: 47.5rem) {
  .site-footer .footer-brand {
    padding: 1.5rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }

  .site-footer .footer-brand .brand {
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
  }

  .site-footer .footer-brand .brand span {
    font-size: .875rem !important;
    line-height: 1rem !important;
    letter-spacing: .25em !important;
  }

  .site-footer .footer-brand > div {
    display: block !important;
    min-width: 0 !important;
  }

  .site-footer .footer-brand p,
  .site-footer .footer-brand strong {
    max-width: 100% !important;
    margin-inline: 0 !important;
  }

  .site-footer .footer-brand p {
    margin-bottom: 1rem !important;
  }

  .site-footer .footer-navigation > div:last-child,
  .site-footer .footer-navigation > div:nth-last-child(2):nth-child(odd) {
    border-bottom: 0 !important;
  }

  .site-footer .footer-navigation > div:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
    border-right: 0 !important;
  }
}
