:root {
  --qqg-blue: #2468e8;
  --qqg-blue-dark: #174ebd;
  --qqg-navy: #0d1f3c;
  --qqg-text: #13213a;
  --qqg-muted: #68778f;
  --qqg-line: #dce6f3;
  --qqg-soft: #f3f7fd;
  --qqg-orange: #f04b2c;
  --qqg-green: #12a978;
  --qqg-max: 1480px;
  --qqg-shadow: 0 14px 38px rgba(27, 63, 108, .075);
}

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

body {
  color: var(--qqg-text) !important;
  background: var(--qqg-soft) !important;
}

/* Shared, original QQG.NET identity */
.qqg-brand-mark {
  display: block;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}

.brand::before,
.brand strong::before {
  display: none !important;
  content: none !important;
}

.brand,
.dy-brand {
  display: flex !important;
  min-width: 174px;
  align-items: center;
  gap: 11px;
  flex-direction: row !important;
}

.brand > .qqg-brand-copy,
.dy-brand > span:last-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.brand strong,
.dy-brand strong {
  margin: 0 !important;
  color: var(--qqg-text) !important;
  font-size: 21px !important;
  font-weight: 850 !important;
  line-height: 1.05 !important;
  letter-spacing: -.6px !important;
}

.brand .qqg-brand-copy > span,
.dy-brand small {
  margin: 5px 0 0 !important;
  color: #8290a5 !important;
  font-size: 8px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: 1.8px !important;
}

/* Public product pages */
.site-header {
  position: sticky !important;
  z-index: 120 !important;
  top: 0;
  color: var(--qqg-text) !important;
  background: rgba(255, 255, 255, .96) !important;
  border-bottom: 1px solid var(--qqg-line) !important;
  box-shadow: 0 8px 26px rgba(24, 55, 96, .055) !important;
  backdrop-filter: blur(16px);
}

.site-header .header-inner {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  min-height: 72px !important;
  padding: 0 !important;
}

.site-header .header-panel {
  min-width: 0;
}

.site-header .primary-nav {
  gap: 2px;
}

.site-header .nav-item > a,
.site-header .nav-label > a {
  min-height: 72px !important;
  gap: 7px;
  padding: 0 10px !important;
  color: #435169 !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 720 !important;
}

.site-header .nav-item.current > a,
.site-header .nav-item.current > .nav-label,
.site-header .nav-item.current > .nav-label > a {
  color: var(--qqg-blue) !important;
  background: #f1f6ff !important;
  box-shadow: inset 0 -3px var(--qqg-blue) !important;
}

.site-header .nav-symbol,
.dy-nav .nav-symbol {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  flex: 0 0 20px;
  color: currentColor;
}

.site-header .nav-symbol svg,
.dy-nav .nav-symbol svg,
.dy-product-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-header .nav-symbol[data-icon="cloud"] svg {
  fill: currentColor;
  stroke: none;
}

.site-header .header-tools {
  gap: 12px !important;
  color: #435169 !important;
}

.site-header .header-tools > a {
  color: #435169 !important;
}

.site-header .language {
  padding: 3px !important;
  background: #f4f7fb !important;
  border: 1px solid #dce5ef !important;
  border-radius: 10px !important;
}

.site-header .language a {
  padding: 5px 8px !important;
  color: #7a879a !important;
  border-radius: 7px;
}

.site-header .language a.active {
  color: var(--qqg-blue) !important;
  background: #fff !important;
  box-shadow: 0 2px 7px rgba(28, 60, 102, .08);
}

.site-header .register {
  min-height: 38px;
  padding: 0 15px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #3479f0, #1e5bd3) !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 19px rgba(36, 104, 232, .2);
}

.site-header .submenu {
  width: 306px !important;
  padding: 8px !important;
  overflow: hidden;
  background: #fff !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 58px rgba(18, 48, 86, .16) !important;
}

.site-header .submenu a {
  min-height: 56px;
  align-items: center;
  padding: 10px 12px !important;
  color: #25344d !important;
  background: #fff !important;
  border-bottom: 1px solid #edf1f6 !important;
  border-left: 0 !important;
  border-radius: 9px;
}

.site-header .submenu a:last-child {
  border-bottom: 0 !important;
}

.site-header .submenu a:hover,
.site-header .submenu a.active {
  color: var(--qqg-blue) !important;
  background: #edf4ff !important;
}

.site-header .submenu a.active::before {
  display: none !important;
}

.promo {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  grid-template-columns: minmax(0, 1.55fr) minmax(330px, .8fr) !important;
  gap: 14px !important;
  margin: 18px auto !important;
  color: var(--qqg-text) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.promo-left,
.promo-right {
  min-height: 102px !important;
  overflow: hidden;
  padding: 16px 22px !important;
  background: #fff !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 16px !important;
  box-shadow: var(--qqg-shadow) !important;
}

.promo-left {
  grid-template-columns: auto minmax(220px, 1fr) minmax(235px, auto) !important;
  gap: 20px !important;
  background:
    radial-gradient(circle at 12% 15%, rgba(68, 132, 246, .14), transparent 11rem),
    radial-gradient(circle at 92% 70%, rgba(255, 105, 73, .12), transparent 13rem),
    #fff !important;
}

.promo-label {
  color: var(--qqg-blue) !important;
  background: #edf4ff !important;
  border: 1px solid #c9dcfa !important;
  border-radius: 9px !important;
}

.promo-title strong {
  color: var(--qqg-text) !important;
}

.promo-title b {
  color: var(--qqg-orange) !important;
  font-size: clamp(39px, 3vw, 55px) !important;
}

.promo-title p,
.promo-right p {
  color: #7e8da2 !important;
}

.code-box {
  min-width: 235px !important;
  background: rgba(255, 255, 255, .94) !important;
  border: 1px dashed #efaa99;
  border-radius: 12px !important;
}

.code-box small {
  color: #d48a79 !important;
}

.code-box code {
  color: var(--qqg-orange) !important;
}

.code-box button {
  color: #fff !important;
  background: var(--qqg-blue) !important;
}

.promo-right {
  color: var(--qqg-text) !important;
  background:
    radial-gradient(circle at 82% 20%, rgba(36, 104, 232, .15), transparent 10rem),
    #fff !important;
}

.promo-right strong {
  color: var(--qqg-text) !important;
}

.promo-right strong b {
  color: var(--qqg-orange) !important;
}

.promo-right > a {
  color: #fff !important;
  background: var(--qqg-blue) !important;
  border: 0 !important;
  border-radius: 10px;
}

.directory-hero {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  min-height: 178px !important;
  margin: 0 auto !important;
  padding: 30px 36px !important;
  color: var(--qqg-text) !important;
  background:
    radial-gradient(circle at 91% 12%, rgba(36, 104, 232, .15), transparent 18rem),
    linear-gradient(130deg, #fff, #f8fbff) !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--qqg-shadow) !important;
}

.directory-hero > a {
  margin-bottom: 14px !important;
  color: var(--qqg-blue) !important;
}

.directory-hero .eyebrow {
  margin-bottom: 9px !important;
  color: var(--qqg-blue) !important;
}

.directory-hero h1 {
  color: var(--qqg-text) !important;
  font-size: clamp(36px, 3.5vw, 52px) !important;
  font-weight: 800 !important;
  letter-spacing: -1.8px !important;
}

.directory-hero > p:last-child {
  margin-top: 9px !important;
  color: var(--qqg-muted) !important;
  font-size: 16px !important;
}

.product-jump-tabs {
  position: relative !important;
  z-index: 20 !important;
  top: auto !important;
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  margin: 14px auto !important;
  padding: 12px 14px !important;
  overflow-x: auto;
  background: #fff !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 25px rgba(27, 63, 108, .05) !important;
}

.product-jump-tabs > strong {
  color: #526178 !important;
}

.product-jump-tabs a {
  min-height: 40px !important;
  padding: 0 15px !important;
  color: #425169 !important;
  background: #f7f9fc !important;
  border: 1px solid #dfe7f1 !important;
  border-radius: 10px !important;
}

.product-jump-tabs a:hover,
.product-jump-tabs a.active,
.product-jump-tabs a.modern-active {
  color: #fff !important;
  background: var(--qqg-blue) !important;
  border-color: var(--qqg-blue) !important;
  box-shadow: 0 8px 18px rgba(36, 104, 232, .2) !important;
}

.merged-products {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  margin: 0 auto 28px !important;
  background: transparent !important;
}

.merged-product {
  margin: 0 0 18px !important;
  padding: 26px !important;
  overflow: visible !important;
  background: #fff !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 18px !important;
  box-shadow: var(--qqg-shadow) !important;
  scroll-margin-top: 92px !important;
}

.merged-product + .merged-product {
  margin-top: 18px !important;
}

.merged-product-head {
  padding: 0 0 22px !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid #e7edf5 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.merged-product-head h2 {
  color: var(--qqg-text) !important;
  font-size: clamp(28px, 2.5vw, 38px) !important;
  font-weight: 800 !important;
  letter-spacing: -1px !important;
}

.merged-product-head > div > p:last-child {
  margin-top: 8px !important;
  color: var(--qqg-muted) !important;
  font-size: 15px !important;
}

.merged-product-head .button,
.order,
.modern-plan-action .order {
  color: #fff !important;
  background: linear-gradient(135deg, #3479f0, #1d59cf) !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 19px rgba(36, 104, 232, .18) !important;
}

.merged-plans-head {
  padding: 20px 2px 12px !important;
  border: 0 !important;
}

.plan-table.modernized,
.mobile-plans {
  display: none !important;
}

.modern-plan-list {
  display: grid !important;
  gap: 11px !important;
}

.modern-plan-card {
  min-height: 106px !important;
  grid-template-columns: minmax(260px, 1.05fr) minmax(500px, 2fr) minmax(220px, .72fr) !important;
  gap: 18px !important;
  padding: 17px 20px !important;
  background: #fff !important;
  border: 1px solid #dfe7f1 !important;
  border-radius: 14px !important;
  box-shadow: 0 6px 18px rgba(28, 62, 102, .045) !important;
}

.modern-plan-name {
  grid-template-columns: 48px minmax(0, 1fr) !important;
  gap: 13px !important;
}

.modern-plan-mark {
  width: 48px !important;
  height: 48px !important;
  border-radius: 13px !important;
}

.modern-plan-mark svg {
  width: 24px !important;
  height: 24px !important;
}

.modern-plan-name h3,
.modern-plan-name small,
.modern-spec span {
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}

.modern-plan-name h3 {
  color: var(--qqg-text) !important;
  font-size: 17px !important;
  line-height: 1.35;
}

.modern-plan-specs {
  grid-template-columns: repeat(4, minmax(105px, 1fr)) !important;
  gap: 10px !important;
}

.modern-spec {
  grid-template-columns: 40px minmax(0, 1fr) !important;
}

.modern-spec-icon {
  width: 40px !important;
  height: 40px !important;
  color: var(--qqg-blue) !important;
  background: #edf4ff !important;
  border-radius: 11px !important;
}

.modern-spec small {
  margin: 0 0 2px !important;
  color: #95a1b2 !important;
  line-height: 1.2;
}

.modern-spec span {
  color: #2d3c55 !important;
  font-size: 13px !important;
  line-height: 1.35;
}

.modern-plan-action {
  justify-content: flex-end !important;
  gap: 14px !important;
}

.modern-plan-price {
  color: var(--qqg-orange) !important;
  font-size: 25px !important;
}

.notice {
  grid-template-columns: 120px minmax(0, 1fr) !important;
  margin-top: 16px !important;
  padding: 17px 20px !important;
  color: #365477 !important;
  background: #f4f8fe !important;
  border: 1px solid #dce8f7 !important;
  border-left: 4px solid var(--qqg-blue) !important;
  border-radius: 10px;
}

.notice p {
  color: #66778e !important;
}

.cta {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  min-height: 200px !important;
  margin: 0 auto 26px !important;
  padding: 38px 42px !important;
  background:
    radial-gradient(circle at 88% 0, rgba(72, 138, 255, .32), transparent 19rem),
    linear-gradient(145deg, #17345f, #0b1b33) !important;
  border: 0 !important;
  border-radius: 18px !important;
}

.site-footer {
  color: #9cafc8 !important;
  background: #091526 !important;
  border-top: 1px solid #1d2c43 !important;
}

.site-footer .footer-inner {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
}

/* Homepage now shares the same navigation and icon language */
.dy-header {
  background: rgba(255, 255, 255, .96) !important;
  border-bottom: 1px solid var(--qqg-line) !important;
  box-shadow: 0 8px 26px rgba(24, 55, 96, .055) !important;
}

.dy-header-inner,
.dy-hero,
.dy-strip,
.dy-section,
.dy-route-section,
.dy-cta,
.dy-footer-inner {
  width: min(var(--qqg-max), calc(100% - 48px)) !important;
  max-width: none !important;
}

.dy-header-inner {
  min-height: 72px !important;
}

.dy-nav {
  gap: 2px !important;
}

.dy-nav a {
  display: flex !important;
  min-height: 72px !important;
  align-items: center;
  gap: 7px;
  padding: 0 10px !important;
  color: #435169 !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 720 !important;
}

.dy-nav a.active,
.dy-nav a:hover {
  color: var(--qqg-blue) !important;
  background: #f1f6ff !important;
  box-shadow: inset 0 -3px var(--qqg-blue) !important;
}

.dy-tools {
  gap: 12px !important;
}

.dy-register {
  color: #fff !important;
  background: linear-gradient(135deg, #3479f0, #1e5bd3) !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 19px rgba(36, 104, 232, .2);
}

.dy-hero {
  margin-top: 18px !important;
  background:
    radial-gradient(circle at 11% 8%, rgba(69, 137, 250, .14), transparent 20rem),
    radial-gradient(circle at 91% 12%, rgba(70, 170, 255, .12), transparent 18rem),
    #fff !important;
  border: 1px solid var(--qqg-line) !important;
  border-radius: 22px !important;
  box-shadow: var(--qqg-shadow) !important;
}

.dy-hero h1 {
  color: var(--qqg-text) !important;
  font-size: clamp(44px, 4.2vw, 65px) !important;
  font-weight: 820 !important;
  letter-spacing: -2.3px !important;
}

.dy-hero-copy > p {
  color: var(--qqg-muted) !important;
}

.dy-product-icon {
  display: grid !important;
  width: 50px !important;
  height: 50px !important;
  place-items: center;
  color: var(--qqg-blue) !important;
  background: #edf4ff !important;
  border-radius: 14px !important;
}

.dy-product-icon svg {
  width: 25px !important;
  height: 25px !important;
}

.dy-product-card.dedicated .dy-product-icon {
  color: #7154d8 !important;
  background: #f1edff !important;
}

.dy-product-card.multi .dy-product-icon {
  color: #dc7d12 !important;
  background: #fff4e5 !important;
}

.dy-product-card.defense .dy-product-icon {
  color: #e8492d !important;
  background: #fff0ec !important;
}

.dy-product-card {
  border-radius: 17px !important;
  box-shadow: var(--qqg-shadow) !important;
}

@media (max-width: 1240px) {
  .site-header .primary-nav .nav-symbol,
  .dy-nav .nav-symbol {
    display: none;
  }

  .modern-plan-card {
    grid-template-columns: minmax(230px, 1fr) minmax(410px, 1.9fr) !important;
  }

  .modern-plan-action {
    grid-column: 1 / -1;
    justify-content: space-between !important;
    padding-top: 13px;
    border-top: 1px solid #edf1f6;
  }
}

@media (max-width: 1120px) {
  .site-header .header-inner,
  .dy-header-inner {
    min-height: 66px !important;
  }

  .site-header .header-panel {
    top: 66px !important;
    right: 12px !important;
    bottom: 12px !important;
    left: 12px !important;
    width: auto !important;
    padding: 12px !important;
    color: #dce9f8 !important;
    background: #0d1c32 !important;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(4, 14, 30, .32);
  }

  .site-header .nav-item > a,
  .site-header .nav-label > a {
    min-height: 52px !important;
    color: #dce9f8 !important;
  }

  .site-header .nav-item.current > a,
  .site-header .nav-item.current > .nav-label,
  .site-header .nav-item.current > .nav-label > a {
    color: #fff !important;
    background: #1d3d68 !important;
    box-shadow: inset 4px 0 #4e9cff !important;
  }

  .site-header .submenu {
    width: 100% !important;
    background: #0a1729 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .site-header .submenu a {
    color: #cbd9ea !important;
    background: #0a1729 !important;
    border-color: #20334d !important;
  }

  .site-header .header-tools > a {
    color: #dce9f8 !important;
  }

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

@media (max-width: 760px) {
  .site-header .header-inner,
  .promo,
  .directory-hero,
  .product-jump-tabs,
  .merged-products,
  .cta,
  .site-footer .footer-inner,
  .dy-header-inner,
  .dy-hero,
  .dy-strip,
  .dy-section,
  .dy-route-section,
  .dy-cta,
  .dy-footer-inner {
    width: calc(100% - 28px) !important;
  }

  .qqg-brand-mark {
    width: 39px;
    height: 39px;
    flex-basis: 39px;
  }

  .brand,
  .dy-brand {
    min-width: 145px;
    gap: 9px;
  }

  .brand strong,
  .dy-brand strong {
    font-size: 18px !important;
  }

  .promo-left {
    display: grid !important;
    min-height: auto !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 16px !important;
  }

  .promo-label {
    display: inline-flex !important;
    justify-self: start;
  }

  .promo-title strong {
    display: flex !important;
  }

  .promo-title small {
    display: inline !important;
  }

  .code-box {
    width: 100% !important;
    min-width: 0 !important;
  }

  .promo-right {
    min-height: 86px !important;
    padding: 14px 16px !important;
  }

  .directory-hero {
    min-height: 0 !important;
    padding: 24px 20px !important;
  }

  .directory-hero h1 {
    font-size: 36px !important;
  }

  .product-jump-tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    padding: 10px !important;
    overflow: visible !important;
  }

  .product-jump-tabs > strong {
    display: none;
  }

  .product-jump-tabs a {
    flex: 1 1 145px;
    justify-content: center;
    text-align: center;
  }

  .merged-product {
    padding: 18px !important;
  }

  .merged-product-head {
    display: block !important;
  }

  .merged-product-head .button {
    width: 100%;
    margin-top: 15px;
  }

  .modern-plan-card {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 16px !important;
  }

  .modern-plan-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding: 12px;
    background: #f7f9fc;
    border-radius: 12px;
  }

  .modern-plan-action {
    grid-column: auto;
    padding-top: 13px;
  }

  .modern-plan-action .order {
    min-width: 105px;
  }

  .notice {
    display: block !important;
  }

  .notice p {
    margin-top: 6px !important;
  }

  .dy-hero {
    margin-top: 12px !important;
    border-radius: 17px !important;
  }

  .dy-hero h1 {
    font-size: 40px !important;
  }
}

@media (max-width: 420px) {
  .modern-plan-specs {
    grid-template-columns: 1fr !important;
  }

  .promo-right > a {
    padding: 9px !important;
    font-size: 10px !important;
  }
}

/* QQG v10 compact public catalogs.
   The two-level category panel follows the requested information hierarchy
   while all vectors and component styling remain original QQG artwork. */
.qqg-catalog-page .site-header .nav-symbol {
  display: none !important;
}

.qqg-catalog-page .site-header .nav-item > a,
.qqg-catalog-page .site-header .nav-label > a {
  padding-right: 14px !important;
  padding-left: 14px !important;
}

.qqg-catalog-page > main > .promo,
.qqg-catalog-page .directory-hero,
.qqg-catalog-page .product-jump-tabs,
.qqg-catalog-page .merged-plans-head,
.qqg-catalog-page .cta,
.qqg-catalog-page .extras,
.qqg-catalog-page .notice {
  display: none !important;
}

.dy10-catalog-panel,
.dy10-catalog-notice {
  width: min(var(--qqg-max), calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
  box-sizing: border-box;
}

.dy10-catalog-panel {
  margin-top: 20px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d9e3ef;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(27, 63, 108, .07);
}

.dy10-catalog-row {
  display: grid;
  min-height: 84px;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  padding: 15px 28px;
  box-sizing: border-box;
}

.dy10-subcategory-row {
  border-top: 1px solid #e3e9f1;
}

.dy10-catalog-label {
  color: #526178;
  font-size: 16px;
  font-weight: 500;
}

.dy10-catalog-items {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.dy10-category-pill,
.dy10-subcategory-pill {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 18px;
  color: #24344e;
  background: #fff;
  border: 1px solid #dbe3ed;
  border-radius: 13px;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  box-sizing: border-box;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}

.dy10-category-pill:hover,
.dy10-subcategory-pill:hover {
  color: var(--qqg-blue);
  border-color: #9fbff7;
  background: #f7faff;
}

.dy10-category-pill.active {
  color: #fff;
  background: var(--qqg-blue);
  border-color: var(--qqg-blue);
  box-shadow: 0 8px 18px rgba(36, 104, 232, .2);
}

.dy10-category-icon {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  flex: 0 0 25px;
  color: var(--qqg-blue);
}

.dy10-category-pill.active .dy10-category-icon {
  color: #fff;
}

.dy10-category-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dy10-category-pill:first-child .dy10-category-icon svg {
  fill: currentColor;
  stroke: none;
}

.dy10-subcategory-pill {
  min-height: 46px;
  padding: 0 17px;
  font-weight: 500;
}

.dy10-subcategory-pill b {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  flex: 0 0 28px;
  color: #fff;
  background: #ed402d;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
}

.dy10-subcategory-pill.active {
  color: var(--qqg-blue);
  background: #eff5ff;
  border-color: var(--qqg-blue);
  box-shadow: 0 0 0 4px rgba(36, 104, 232, .08);
}

.dy10-catalog-notice {
  display: flex;
  min-height: 56px;
  align-items: center;
  gap: 13px;
  margin-top: 14px;
  padding: 12px 20px;
  color: #17489e;
  background: #edf5ff;
  border: 1px solid #bdd5fb;
  border-radius: 14px;
  font-size: 14px;
}

.dy10-catalog-notice i {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  flex: 0 0 22px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-family: Georgia, serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
}

.qqg-catalog-page .localized-page {
  padding-top: 0 !important;
}

.qqg-catalog-page .merged-products {
  margin-top: 14px !important;
  margin-bottom: 20px !important;
}

.qqg-catalog-page .merged-product {
  margin-bottom: 0 !important;
  padding: 20px !important;
  border-radius: 18px !important;
  box-shadow: 0 7px 22px rgba(27, 63, 108, .06) !important;
}

.qqg-catalog-page .merged-product[hidden] {
  display: none !important;
}

.qqg-catalog-page .merged-product-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 0 0 15px !important;
}

.qqg-catalog-page .merged-product-head .eyebrow {
  display: none !important;
}

.qqg-catalog-page .merged-product-head h2 {
  font-size: 23px !important;
  letter-spacing: -.4px !important;
}

.qqg-catalog-page .merged-product-head > div > p:last-child {
  max-width: 880px;
  margin-top: 5px !important;
  font-size: 13px !important;
  line-height: 1.55;
}

.qqg-catalog-page .merged-product-head .button {
  min-height: 42px;
  padding: 0 18px !important;
}

.qqg-catalog-page .modern-plan-list {
  gap: 8px !important;
}

.qqg-catalog-page .modern-plan-card {
  min-height: 84px !important;
  grid-template-columns: minmax(210px, .95fr) minmax(430px, 2.15fr) minmax(190px, .72fr) !important;
  gap: 14px !important;
  padding: 12px 16px !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.qqg-catalog-page .modern-plan-name {
  grid-template-columns: 40px minmax(0, 1fr) !important;
  gap: 11px !important;
}

.qqg-catalog-page .modern-plan-mark,
.qqg-catalog-page .modern-spec-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 9px !important;
}

.qqg-catalog-page .modern-plan-mark svg {
  width: 20px !important;
  height: 20px !important;
}

.qqg-catalog-page .modern-plan-name h3 {
  font-size: 15px !important;
}

.qqg-catalog-page .modern-plan-name small {
  font-size: 9px !important;
}

.qqg-catalog-page .modern-plan-specs {
  gap: 7px !important;
}

.qqg-catalog-page .modern-spec {
  grid-template-columns: 36px minmax(0, 1fr) !important;
  gap: 8px !important;
}

.qqg-catalog-page .modern-spec small {
  font-size: 9px !important;
}

.qqg-catalog-page .modern-spec span {
  font-size: 12px !important;
}

.qqg-catalog-page .modern-plan-action {
  gap: 10px !important;
}

.qqg-catalog-page .modern-plan-price {
  font-size: 20px !important;
}

.qqg-catalog-page .modern-plan-action .order {
  min-height: 39px;
  padding: 0 14px !important;
}

@media (max-width: 1180px) {
  .qqg-catalog-page .modern-plan-card {
    grid-template-columns: minmax(200px, .9fr) minmax(400px, 2fr) !important;
  }

  .qqg-catalog-page .modern-plan-action {
    grid-column: 1 / -1;
    padding-top: 10px;
    border-top: 1px solid #edf1f6;
  }
}

@media (max-width: 760px) {
  .dy10-catalog-panel,
  .dy10-catalog-notice {
    width: calc(100% - 28px);
  }

  .dy10-catalog-panel {
    margin-top: 14px;
    border-radius: 15px;
  }

  .dy10-catalog-row {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 14px;
  }

  .dy10-catalog-label {
    font-size: 14px;
  }

  .dy10-catalog-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .dy10-category-pill,
  .dy10-subcategory-pill {
    min-width: 0;
    min-height: 44px;
    padding: 0 10px;
    font-size: 13px;
  }

  .dy10-catalog-notice {
    align-items: flex-start;
    padding: 11px 14px;
    font-size: 12px;
    line-height: 1.55;
  }

  .qqg-catalog-page .merged-products {
    width: calc(100% - 28px) !important;
  }

  .qqg-catalog-page .merged-product {
    padding: 14px !important;
  }

  .qqg-catalog-page .merged-product-head {
    display: block !important;
  }

  .qqg-catalog-page .merged-product-head h2 {
    font-size: 20px !important;
  }

  .qqg-catalog-page .merged-product-head .button {
    width: 100%;
    margin-top: 12px;
  }

  .qqg-catalog-page .modern-plan-card {
    grid-template-columns: 1fr !important;
    gap: 11px !important;
    padding: 14px !important;
  }

  .qqg-catalog-page .modern-plan-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    padding: 10px !important;
  }

  .qqg-catalog-page .modern-plan-action {
    grid-column: auto;
    padding-top: 10px;
  }
}

@media (max-width: 420px) {
  .dy10-catalog-items {
    grid-template-columns: 1fr;
  }

  .qqg-catalog-page .modern-plan-specs {
    grid-template-columns: 1fr !important;
  }
}

/* QQG v11: complete mobile navigation and consistent public catalogs. */
@media (max-width: 1120px) {
  html.qqg-front-v9 .site-header {
    overflow: visible !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  html.qqg-front-v9 .site-header .header-inner {
    overflow: visible !important;
    transform: none !important;
    filter: none !important;
  }

  html.qqg-front-v9 .site-header .header-panel {
    position: fixed !important;
    z-index: 190 !important;
    top: 66px !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    display: flex !important;
    width: 100% !important;
    height: calc(100vh - 66px) !important;
    height: calc(100dvh - 66px) !important;
    max-width: none !important;
    max-height: none !important;
    flex-direction: column;
    gap: 16px;
    margin: 0 !important;
    padding: 14px 16px max(26px, env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    color: #12233d !important;
    background: #f5f8fd !important;
    border: 0 !important;
    border-top: 1px solid #dfe7f2 !important;
    border-radius: 0 !important;
    box-shadow: 0 18px 34px rgba(16, 42, 78, .16) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-10px) !important;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
    box-sizing: border-box !important;
    overscroll-behavior: contain;
  }

  html.qqg-front-v9 .site-header .header-panel.open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  body.menu-open {
    overflow: hidden !important;
  }

  html.qqg-front-v9 .site-header .primary-nav {
    display: grid !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    gap: 8px !important;
    margin: 0 !important;
  }

  html.qqg-front-v9 .site-header .nav-item {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden;
    background: #fff !important;
    border: 1px solid #dce5f0 !important;
    border-radius: 13px !important;
  }

  html.qqg-front-v9 .site-header .nav-item.current {
    border-color: #9fc0fb !important;
    box-shadow: 0 0 0 3px rgba(36, 104, 232, .08) !important;
  }

  html.qqg-front-v9 .site-header .nav-item > a,
  html.qqg-front-v9 .site-header .nav-label > a {
    display: flex !important;
    min-height: 50px !important;
    align-items: center !important;
    gap: 11px !important;
    padding: 0 15px !important;
    color: #142640 !important;
    background: transparent !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
  }

  html.qqg-front-v9 .site-header .nav-label {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 50px !important;
    align-items: stretch !important;
  }

  html.qqg-front-v9 .site-header .nav-label button {
    display: grid !important;
    width: 50px !important;
    min-height: 50px !important;
    place-items: center !important;
    color: #3564a8 !important;
    background: transparent !important;
    border: 0 !important;
    border-left: 1px solid #e4eaf3 !important;
    font-size: 20px !important;
    cursor: pointer;
  }

  html.qqg-front-v9 .site-header .has-sub.open .nav-label button {
    transform: rotate(180deg);
  }

  html.qqg-front-v9 .site-header .submenu {
    display: none !important;
    position: static !important;
    width: auto !important;
    min-width: 0 !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 0 10px 10px !important;
    padding: 10px !important;
    background: #edf4ff !important;
    border: 0 !important;
    border-radius: 11px !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  html.qqg-front-v9 .site-header .has-sub.open .submenu {
    display: grid !important;
  }

  html.qqg-front-v9 .site-header .submenu a {
    display: block !important;
    min-width: 0 !important;
    padding: 10px 12px !important;
    color: #1b3760 !important;
    background: #fff !important;
    border: 1px solid #d8e4f5 !important;
    border-radius: 9px !important;
    white-space: normal !important;
  }

  html.qqg-front-v9 .site-header .submenu a span,
  html.qqg-front-v9 .site-header .submenu a small {
    display: block !important;
    overflow: visible !important;
    color: inherit !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  html.qqg-front-v9 .site-header .submenu a small {
    margin-top: 3px !important;
    color: #71819a !important;
    font-size: 11px !important;
  }

  html.qqg-front-v9 .site-header .header-tools {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 9px !important;
    margin: auto 0 0 !important;
    padding: 13px 0 0 !important;
    border-top: 1px solid #dce5f0 !important;
  }

  html.qqg-front-v9 .site-header .header-tools > a,
  html.qqg-front-v9 .site-header .language {
    display: flex !important;
    min-height: 44px !important;
    align-items: center !important;
    justify-content: center !important;
    color: #17345e !important;
    background: #fff !important;
    border: 1px solid #d8e3f1 !important;
    border-radius: 10px !important;
  }

  html.qqg-front-v9 .site-header .language {
    grid-column: 1 / -1;
  }

  html.qqg-front-v9 .site-header .header-tools .register {
    color: #fff !important;
    background: var(--qqg-blue) !important;
    border-color: var(--qqg-blue) !important;
  }
}

@media (max-width: 760px) {
  .qqg-catalog-page .dy10-catalog-items {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .qqg-catalog-page .dy10-category-pill,
  .qqg-catalog-page .dy10-subcategory-pill {
    height: auto !important;
    min-height: 54px !important;
    padding: 9px 10px !important;
    text-align: center;
    white-space: normal !important;
  }

  .qqg-catalog-page .dy10-category-pill span,
  .qqg-catalog-page .dy10-subcategory-pill span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .qqg-catalog-page .modern-plan-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 420px) {
  html.qqg-front-v9 .site-header .submenu {
    grid-template-columns: 1fr !important;
  }

  .qqg-catalog-page .dy10-catalog-items {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .qqg-catalog-page .modern-plan-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
