/* RoninManga responsive polish — loaded last to normalize all theme modules. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 5rem; }
body { max-width: 100%; overflow-x: hidden; overflow-x: clip; }
img, video, iframe, canvas, svg { max-width: 100%; }
img { height: auto; }
button, input, select, textarea { max-width: 100%; font: inherit; }
button, a, input, select, textarea { touch-action: manipulation; }
:focus-visible { outline: 2px solid var(--primary, #e51400); outline-offset: 3px; }
.container, .site-main, .page-content, .content-wrapper, .shop-wrap { min-width: 0; }
.site-header { position: relative; z-index: 100; }
.header-wrapper, .header-actions, .site-branding { min-width: 0; }
.site-title { overflow-wrap: anywhere; }
.main-nav { min-width: 0; }
.primary-menu, .primary-menu li { min-width: 0; }
.search-modal { padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom)); }
.search-modal-content { width: min(100%, 620px); max-height: min(88dvh, 720px); overflow-y: auto; }
.manga-grid, .dl-grid, .products, .woocommerce .products { min-width: 0; }
.manga-card, .manga-item, .shop-item, .dl-card, .product { min-width: 0; }
.manga-card img, .manga-item img, .shop-item img, .product img { max-width: 100%; }
.single-manga, .single-chapter, .chapters-section, .reader-wrap, .woocommerce, .woocommerce-page { min-width: 0; max-width: 100%; }
.single-manga .manga-description, .product .summary, .woocommerce-product-details__short-description { overflow-wrap: anywhere; }
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
.woocommerce-page form .form-row select { width: 100%; min-height: 44px; }
.woocommerce .quantity input.qty { min-height: 44px; }
.tabbar { padding-bottom: max(5px, env(safe-area-inset-bottom)); }

@media (max-width: 900px) {
  .container { width: 100%; }
  .content-wrapper { grid-template-columns: minmax(0, 1fr); }
  .sidebar { min-width: 0; }
  .woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
}
@media (max-width: 768px) {
  html { scroll-padding-top: 4rem; }
  body.has-tabbar { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
  .site-header { z-index: 500; }
  .site-header > .container { padding-inline: 12px; }
  .header-wrapper { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; min-height: 60px; }
  .site-branding { flex: 1 1 auto; min-width: 0; }
  .site-title { margin: 0; font-size: clamp(18px, 4.5vw, 24px); line-height: 1.2; }
  .site-title img, .custom-logo { max-height: 42px; width: auto; }
  .header-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 5px; }
  .header-actions .account-link { display: none; }
  .header-actions .lang-switcher { display: none; }
  .header-actions .icon-btn { width: 40px; height: 40px; min-width: 40px; padding: 8px; }
  .mobile-menu-toggle { display: flex !important; }
  .main-nav { position: absolute; top: 100%; inset-inline: 0; width: 100%; max-height: calc(100dvh - 70px); overflow-y: auto; overscroll-behavior: contain; padding: 8px 16px 18px; background: var(--header-bg, #151515); border-bottom: 1px solid var(--card-border); box-shadow: 0 14px 30px rgba(0,0,0,.22); }
  .main-nav.is-open { display: block; }
  .primary-menu { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 0; }
  .primary-menu > li { width: 100%; border-bottom: 1px solid var(--card-border); }
  .primary-menu > li:last-child { border-bottom: 0; }
  .primary-menu a { display: flex; align-items: center; min-height: 46px; padding: 10px 4px; white-space: normal; }
  .primary-menu .sub-menu { position: static; display: none; width: 100%; padding: 0 14px 8px; opacity: 1; visibility: visible; transform: none; background: transparent; border: 0; box-shadow: none; }
  .primary-menu li.active > .sub-menu { display: block; }
  .primary-menu .sub-menu a { min-height: 40px; font-size: .94em; }
  .featured-item { min-width: 0; }
  .featured-info { min-width: 0; }
  .single-manga .manga-header { min-width: 0; }
  .single-manga .chapters-section { padding: 16px; }
  .single-manga .chapters-controls { width: 100%; flex-wrap: wrap; }
  .single-manga .chapter-card-link { align-items: flex-start; flex-wrap: wrap; padding: 12px; }
  .single-manga .chapter-card-meta { flex-wrap: wrap; gap: 6px 10px; }
  .woocommerce ul.products, .woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0 !important; }
  .woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
  .woocommerce ul.products li.product, .woocommerce-page ul.products li.product { float: none !important; clear: none !important; width: auto !important; margin: 0 !important; min-width: 0; }
  .woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: 100%; margin: 0; min-width: 0; }
  .woocommerce div.product div.images img { width: 100%; height: auto; }
  .woocommerce-cart .woocommerce, .woocommerce-checkout .woocommerce, .woocommerce-account .woocommerce { overflow-x: auto; }
  .woocommerce table.shop_table { font-size: 13px; }
  .woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 8px 6px; }
  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
  .woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { padding: 14px; }
  .woocommerce #payment #place_order, .woocommerce-page #payment #place_order { width: 100%; min-height: 48px; }
  .site-footer { margin-top: 32px; padding-top: 28px; }
}
@media (max-width: 480px) {
  .container { padding-inline: 12px; }
  .header-wrapper { gap: 4px; }
  .header-actions { gap: 2px; }
  .header-actions .icon-btn { width: 36px; height: 36px; min-width: 36px; }
  .manga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .woocommerce ul.products, .woocommerce-page ul.products { gap: 10px; }
  .woocommerce ul.products li.product .button { display: block; width: 100%; padding: 11px 8px; text-align: center; font-size: 13px; }
  .woocommerce .woocommerce-ordering, .woocommerce .woocommerce-result-count { float: none; display: block; width: 100%; margin: 0 0 10px; }
  .woocommerce .woocommerce-ordering select { width: 100%; min-height: 44px; }
  .woocommerce div.product .product_title { font-size: 22px; line-height: 1.4; }
  .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 8px; }
  .woocommerce div.product form.cart .quantity { margin: 0; }
  .woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 150px; min-height: 46px; }
  .woocommerce .coupon { display: flex; flex-wrap: wrap; gap: 8px; }
  .woocommerce .coupon input, .woocommerce .coupon button { width: 100% !important; min-height: 44px; }
  .error-404 { padding: 48px 16px; }
  .error-404-code { font-size: 64px; }
}
@media (max-width: 360px) {
  .manga-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .site-title { font-size: 17px; }
  .header-actions .icon-btn { width: 34px; min-width: 34px; }
  .tabbar .tab span { font-size: 10px; }
}
