/* Shared responsive and cross-browser compatibility layer. */
:root {
  --mobile-gutter: 20px;
  --tap-size: 44px;
  --bg: #FFFFFF;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 80px; }
body { min-width: 280px; background: #FFFFFF; overflow-wrap: break-word; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
img, video, canvas, svg, iframe { max-width: 100%; }
img, video { height: auto; }
button, input, select, textarea { max-width: 100%; font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: rgba(50, 198, 255, .16); }
button, [role="button"], input[type="button"], input[type="submit"] { touch-action: manipulation; }
table { width: 100%; border-collapse: collapse; }
.container, .nav-inner, .hero-content, .page-hero .container, .footer .container { width: 100%; }
.nav, .nav.scrolled { background-color: rgba(255, 255, 255, .96); }
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nav { background-color: rgba(255, 255, 255, .86); }
  .nav.scrolled { background-color: rgba(255, 255, 255, .72); }
}
.nav-menu, .nav-menu li, .nav-menu a, [class*="grid"] > *, [class*="-content"], [class*="-text"] { min-width: 0; }

@media (max-width: 1024px) {
  html { scroll-padding-top: 64px; }
  .nav, .nav-inner { height: 64px; }
  .nav-inner { padding-left: 24px; padding-right: 24px; justify-content: space-between; }
  .nav-logo img { max-height: 40px; width: auto; }
  .nav-toggle { display: flex !important; align-items: center; justify-content: center; width: var(--tap-size); height: var(--tap-size); margin-left: auto; flex: 0 0 var(--tap-size); }
  .nav-menu { top: 64px !important; max-height: 0; max-height: 0dvh; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .nav-menu.open { max-height: calc(100vh - 64px) !important; max-height: calc(100dvh - 64px) !important; overflow-y: auto !important; }
  .nav-menu a, .nav-sub a { min-height: var(--tap-size); }
  .hero, .page-hero { padding-top: 64px; }
  .hero { min-height: 560px; min-height: min(720px, 88svh); max-height: none; }
  [class*="grid"] { min-width: 0; }
}

@media (max-width: 640px) {
  :root { --section-py: 52px; --mobile-gutter: 18px; }
  body { font-size: 15px; line-height: 1.65; }
  .container, .nav-inner, .hero-content, .page-hero .container, .stats-grid { padding-left: var(--mobile-gutter) !important; padding-right: var(--mobile-gutter) !important; }
  .nav-inner { gap: 10px; }
  .nav-logo img { max-width: min(52vw, 190px); }
  .nav-menu, .nav-menu.open { padding-left: var(--mobile-gutter) !important; padding-right: var(--mobile-gutter) !important; }
  .section-title, .page-hero-title, .hero-title { font-size: clamp(28px, 8.5vw, 38px) !important; line-height: 1.18; word-break: normal; }
  .section-subtitle, .page-hero-desc, .hero-desc { font-size: 15px !important; line-height: 1.75; }
  .page-hero { padding-top: 118px !important; padding-bottom: 46px !important; }
  .hero { min-height: 620px; min-height: max(620px, 92svh); padding-bottom: 44px; }
  .hero-btns, .cta-buttons, .contact-actions { width: 100%; gap: 12px; }
  .btn-primary, .btn-outline, .btn, [class*="button"] { min-height: var(--tap-size); }
  .btn-primary, .btn-outline { width: 100%; justify-content: center; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { width: 100%; min-height: var(--tap-size); font-size: 16px; }
  .footer-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
  .footer-col, .footer-col:first-child, .footer-col:nth-child(4) { grid-column: 1 !important; text-align: left; }
  .footer-brand-logo, .footer-social { justify-content: flex-start !important; }
  .footer-desc { margin-left: 0 !important; margin-right: 0 !important; }
  .footer-bottom, .footer-bottom-links { justify-content: center; text-align: center; flex-wrap: wrap; }
  .news-filter, .tabs, [class*="-tabs"] { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .news-filter::-webkit-scrollbar, .tabs::-webkit-scrollbar, [class*="-tabs"]::-webkit-scrollbar { display: none; }
  pre, code { white-space: pre-wrap; overflow-wrap: anywhere; }
  table { min-width: 560px; }
  .table-wrap, [class*="table-wrap"] { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Swipe through values horizontally instead of stacking a long list. */
  .values-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    width: calc(100% + var(--mobile-gutter));
    max-width: none !important;
    margin-right: calc(-1 * var(--mobile-gutter));
    padding: 4px var(--mobile-gutter) 14px 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .values-grid::-webkit-scrollbar { display: none; }
  .values-grid > .value-item {
    flex: 0 0 min(78vw, 360px);
    min-width: 0;
    padding: 22px 18px !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .values-grid > .value-item::after { display: none !important; }
}

@media (max-width: 374px) {
  :root { --mobile-gutter: 14px; }
  .nav-logo img { max-width: 48vw; }
  .section-title, .page-hero-title, .hero-title { font-size: 27px !important; }
}
@media (hover: none), (pointer: coarse) {
  .nav-menu a, .nav-sub a, .footer-links a { padding-top: 12px; padding-bottom: 12px; }
  .nav-dropdown:hover .nav-caret { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  .nav, .nav-toggle { display: none !important; }
  body { background: #fff !important; }
  a { text-decoration: underline; }
}

/* ===== Shared site chrome: header + footer ===== */
.nav {
  height: 72px;
  border-bottom: 1px solid rgba(27, 23, 18, .08) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .7);
}
.nav-inner {
  height: 72px;
  max-width: 1280px !important;
  gap: 24px;
}
.nav-logo img {
  height: 42px !important;
  width: auto !important;
}
.nav-menu a {
  font-weight: 500;
  letter-spacing: .01em;
}
.nav-toggle {
  border-radius: 12px;
  transition: background-color .2s ease, color .2s ease;
}
.nav-toggle:focus-visible,
.nav-menu a:focus-visible,
.footer a:focus-visible {
  outline: 2px solid #32C6FF;
  outline-offset: 3px;
}

.footer {
  position: relative;
  padding: 72px 0 0 !important;
  overflow: hidden;
  background: linear-gradient(145deg, #11131d 0%, #0c0d12 58%, #11152b 100%) !important;
  color: rgba(255, 255, 255, .72);
  border-top: 3px solid #32C6FF;
}
.footer::before {
  content: '';
  position: absolute;
  width: 420px;
  height: 420px;
  right: -180px;
  top: -250px;
  border-radius: 50%;
  background: rgba(50, 198, 255, .13);
  filter: blur(3px);
  pointer-events: none;
}
.footer > .container {
  position: relative;
  z-index: 1;
  max-width: 1280px !important;
}
.footer-grid {
  display: grid !important;
  grid-template-columns: minmax(250px, 1.35fr) minmax(130px, .65fr) minmax(130px, .65fr) minmax(270px, 1.2fr) !important;
  gap: clamp(32px, 5vw, 72px) !important;
  padding-bottom: 58px !important;
}
.footer-col { min-width: 0; }
.footer-brand-logo {
  display: flex;
  align-items: center;
  min-height: 48px;
  margin-bottom: 20px !important;
}
.footer-brand-logo img {
  height: 44px !important;
  width: auto !important;
}
.footer-desc {
  max-width: 360px !important;
  margin-bottom: 24px !important;
  color: rgba(255, 255, 255, .53) !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
}
.footer-col h4 {
  position: relative;
  margin: 4px 0 22px !important;
  padding-bottom: 11px;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
}
.footer-col h4::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 28px;
  height: 2px;
  border-radius: 2px;
  background: #32C6FF;
}
.footer-links {
  display: grid !important;
  gap: 4px !important;
  list-style: none;
}
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  color: rgba(255, 255, 255, .58) !important;
  font-size: 14px !important;
  transition: color .2s ease, transform .2s ease;
}
@media (hover: hover) {
  .footer-links a:hover { color: #fff !important; transform: translateX(4px); }
}
.footer-social {
  display: flex;
  align-items: center;
  gap: 10px !important;
}
.footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px !important;
  height: 42px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, .055) !important;
  color: rgba(255, 255, 255, .72) !important;
}
.footer-social svg { width: 18px !important; height: 18px !important; fill: currentColor; }
.footer-contact-row {
  display: flex !important;
  align-items: flex-start;
  gap: 11px !important;
  margin-bottom: 14px !important;
  color: rgba(255, 255, 255, .58) !important;
  font-size: 13px !important;
  line-height: 1.7 !important;
}
.footer-contact-row svg {
  width: 17px !important;
  height: 17px !important;
  margin-top: 3px;
  flex: 0 0 17px;
  fill: none;
  stroke: #32C6FF !important;
  stroke-width: 1.8;
}
.footer-contact-row a { color: rgba(255, 255, 255, .76) !important; overflow-wrap: anywhere; }
.footer-bottom {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  min-height: 70px;
  padding: 20px 0 !important;
  border-top: 1px solid rgba(255, 255, 255, .09) !important;
  color: rgba(255, 255, 255, .37) !important;
  font-size: 12px !important;
}
.footer-bottom-links { display: flex; gap: 24px !important; }
.footer-bottom-links a { color: rgba(255, 255, 255, .43) !important; }

@media (max-width: 1024px) {
  .nav, .nav-inner { height: 64px; }
  .nav-logo img { height: 38px !important; }
  .nav-right { margin-left: auto; }
  .nav-toggle {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    background: #ECF9FE !important;
    border: 1px solid rgba(50, 198, 255, .12) !important;
  }
  .nav-toggle span {
    display: block;
    width: 19px;
    height: 2px;
    margin: 0 !important;
    border-radius: 2px;
    background: #087FA8 !important;
  }
  .nav-menu {
    top: 64px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    border: 1px solid rgba(27, 23, 18, .08) !important;
    border-top: 0 !important;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 18px 45px rgba(20, 22, 38, .16) !important;
  }
  .footer-grid {
    grid-template-columns: 1.25fr .7fr .7fr !important;
  }
  .footer-col:nth-child(4) { grid-column: 1 / -1 !important; }
}

@media (max-width: 640px) {
  .nav-inner { padding-left: 16px !important; padding-right: 14px !important; }
  .nav-logo img { height: 36px !important; max-width: min(56vw, 180px); }
  .nav-menu { left: 8px !important; right: 8px !important; padding-top: 8px !important; }
  .nav-menu.open { padding-bottom: 14px !important; }
  .nav-menu > li > a { min-height: 48px; padding-left: 8px !important; padding-right: 8px !important; }

  .footer { padding-top: 46px !important; }
  .footer::before { width: 300px; height: 300px; right: -170px; top: -190px; }
  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 34px 20px !important;
    padding-bottom: 36px !important;
  }
  .footer-col { grid-column: auto !important; text-align: left !important; }
  .footer-col:first-child {
    grid-column: 1 / -1 !important;
    padding: 24px 22px !important;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .07), rgba(50, 198, 255, .09));
  }
  .footer-col:nth-child(4) {
    grid-column: 1 / -1 !important;
    margin: 0 !important;
    padding: 22px !important;
    border: 1px solid rgba(255, 255, 255, .09) !important;
    border-radius: 18px !important;
    background: rgba(255, 255, 255, .045) !important;
  }
  .footer-brand-logo { justify-content: flex-start !important; margin-bottom: 16px !important; }
  .footer-brand-logo img { height: 38px !important; }
  .footer-desc { margin: 0 0 19px !important; font-size: 13px !important; }
  .footer-social { justify-content: flex-start !important; }
  .footer-col h4 { margin-bottom: 14px !important; font-size: 13px !important; }
  .footer-links { gap: 0 !important; }
  .footer-links a { min-height: 42px; font-size: 13px !important; }
  .footer-contact-row { margin-bottom: 13px !important; font-size: 13px !important; }
  .footer-contact-row:last-child { margin-bottom: 0 !important; }
  .footer-bottom {
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    gap: 12px !important;
    padding: 24px 0 30px !important;
    text-align: center;
    line-height: 1.7;
  }
  .footer-bottom-links { justify-content: center; gap: 18px !important; }
}

@media (max-width: 360px) {
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-col, .footer-col:first-child, .footer-col:nth-child(4) { grid-column: 1 !important; }
}

/* Conventional, compact mobile footer. Keep this after the shared chrome rules. */
@media (max-width: 640px) {
  .footer {
    padding-top: 36px !important;
    background: #0e0f14 !important;
  }
  .footer::before { display: none; }
  .footer > .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .footer-grid {
    display: block !important;
    padding-bottom: 0 !important;
  }
  .footer-col,
  .footer-col:first-child,
  .footer-col:nth-child(4) {
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 24px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, .09) !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-align: left !important;
  }
  .footer-col:first-child { padding-top: 0 !important; padding-bottom: 28px !important; }
  .footer-col:nth-child(4) { padding-bottom: 26px !important; }
  .footer-brand-logo {
    min-height: 0;
    margin-bottom: 14px !important;
  }
  .footer-brand-logo img { height: 36px !important; }
  .footer-desc {
    max-width: none !important;
    margin: 0 0 18px !important;
    font-size: 13px !important;
    line-height: 1.8 !important;
  }
  .footer-social { gap: 10px !important; }
  .footer-social a {
    width: 38px !important;
    height: 38px !important;
    border-radius: 9px !important;
  }
  .footer-col h4 {
    margin: 0 0 15px !important;
    padding: 0 !important;
    font-size: 14px !important;
    letter-spacing: .08em !important;
  }
  .footer-col h4::after { display: none; }
  .footer-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px !important;
    row-gap: 0 !important;
  }
  .footer-links a {
    min-height: 36px;
    padding: 6px 0 !important;
    font-size: 13px !important;
    line-height: 1.5;
  }
  .footer-contact-row {
    gap: 10px !important;
    margin-bottom: 11px !important;
    font-size: 12px !important;
    line-height: 1.65 !important;
  }
  .footer-contact-row svg {
    width: 16px !important;
    height: 16px !important;
    flex-basis: 16px;
    margin-top: 2px;
  }
  .footer-bottom {
    align-items: flex-start;
    gap: 9px !important;
    padding: 20px 0 24px !important;
    border-top: 0 !important;
    text-align: left;
    font-size: 11px !important;
  }
  .footer-bottom-links {
    justify-content: flex-start;
    gap: 16px !important;
  }
}

/* Logo sizing must override the generic intrinsic-image rule above. */
.nav .nav-inner .nav-logo {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start;
  align-self: stretch;
  width: 112px;
  height: 72px;
  overflow: hidden;
  flex: 0 0 112px;
}
.nav .nav-inner .nav-logo img {
  display: block !important;
  width: auto !important;
  height: 44px !important;
  max-width: 112px !important;
  max-height: 44px !important;
  margin: 0 !important;
  object-fit: contain !important;
}
.footer .footer-brand-logo {
  display: flex !important;
  align-items: flex-start !important;
  width: 150px;
  height: 52px;
  min-height: 52px;
  overflow: hidden;
}
.footer .footer-brand-logo img {
  display: block !important;
  width: auto !important;
  height: 52px !important;
  max-width: 150px !important;
  max-height: 52px !important;
  margin: 0 !important;
  object-fit: contain !important;
}

@media (max-width: 1024px) {
  .nav .nav-inner .nav-logo {
    width: 92px;
    height: 64px;
    flex-basis: 92px;
  }
  .nav .nav-inner .nav-logo img {
    height: 38px !important;
    max-width: 92px !important;
    max-height: 38px !important;
  }
}

@media (max-width: 640px) {
  .nav .nav-inner .nav-logo {
    width: 82px;
    flex-basis: 82px;
  }
  .nav .nav-inner .nav-logo img {
    height: 36px !important;
    max-width: 82px !important;
    max-height: 36px !important;
  }
  .footer .footer-brand-logo {
    width: 120px;
    height: 42px;
    min-height: 42px;
  }
  .footer .footer-brand-logo img {
    height: 42px !important;
    max-width: 120px !important;
    max-height: 42px !important;
  }
}

/* Stronger desktop navigation and dropdown feedback. */
@media (min-width: 1025px) {
  .nav-inner { align-items: center !important; }
  .nav-logo {
    display: flex !important;
    align-items: center !important;
    align-self: stretch;
    height: 72px;
    margin: 0 !important;
    padding: 0 !important;
  }
  .nav-logo img {
    display: block;
    height: 42px !important;
    margin: 0 !important;
  }
  .footer-grid { align-items: start !important; }
  .footer-brand-logo {
    align-items: flex-start !important;
    min-height: 0;
    margin: 0 0 20px !important;
  }
  .footer-brand-logo img {
    display: block;
    height: 44px !important;
    margin: 0 !important;
  }
  .footer-col h4 { margin-top: 0 !important; }
  .nav-menu > li > a {
    margin: 12px 1px;
    padding: 0 13px !important;
    border-radius: 0;
    transition: color .2s ease, background-color .2s ease, box-shadow .2s ease !important;
  }
  .nav-menu > li > a::after {
    bottom: -12px !important;
    width: 34px !important;
    height: 3px !important;
  }
  .nav-menu > li > a:hover,
  .nav-menu > li:focus-within > a {
    color: #009DD8 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .nav-menu > li > a.active {
    color: #009DD8 !important;
    background: transparent !important;
    font-weight: 600 !important;
  }
  .nav-menu > li > a.active::after {
    opacity: 1 !important;
  }
  .nav-dropdown > .nav-drop-toggle {
    gap: 0 !important;
  }
  .nav-dropdown > .nav-drop-toggle .nav-caret {
    display: none !important;
  }
  .nav-dropdown:hover > .nav-drop-toggle .nav-caret,
  .nav-dropdown:focus-within > .nav-drop-toggle .nav-caret {
    transform: rotate(180deg);
    background: transparent;
  }
  .nav-menu .nav-sub {
    top: calc(100% - 3px) !important;
    min-width: 190px !important;
    padding: 10px !important;
    border: 1px solid rgba(255, 255, 255, .62) !important;
    border-top: 3px solid #32C6FF !important;
    border-radius: 0 !important;
    background: rgba(244, 249, 252, .72) !important;
    -webkit-backdrop-filter: blur(22px) saturate(165%) !important;
    backdrop-filter: blur(22px) saturate(165%) !important;
    box-shadow: 0 18px 50px rgba(20, 24, 55, .16), inset 0 1px 0 rgba(255, 255, 255, .62) !important;
    transform: translateX(-50%) translateY(12px) !important;
  }
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .nav-menu .nav-sub { background: rgba(248, 250, 252, .96) !important; }
  }
  .nav-menu .nav-sub::before {
    display: none;
  }
  .nav-dropdown:hover > .nav-sub,
  .nav-dropdown:focus-within > .nav-sub {
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(0) !important;
  }
  .nav-menu .nav-sub a {
    position: relative;
    min-height: 42px;
    padding: 10px 16px !important;
    border-radius: 0 !important;
    color: #4d4943 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: color .18s ease, background-color .18s ease, transform .18s ease !important;
  }
  .nav-menu .nav-sub a::before {
    display: none !important;
  }
  .nav-menu .nav-sub a:hover,
  .nav-menu .nav-sub a:focus-visible {
    color: #009DD8 !important;
    background: rgba(255, 255, 255, .48) !important;
    transform: none;
  }
  .nav-menu .nav-sub a:hover::before,
  .nav-menu .nav-sub a:focus-visible::before,
  .nav-menu .nav-sub a.active::before {
    background: #32C6FF;
  }
  .nav-menu .nav-sub a.active {
    color: #009DD8 !important;
    background: rgba(255, 255, 255, .4) !important;
    font-weight: 600 !important;
  }
}

/* Mobile disclosure controls and swipeable homepage news. */
@media (max-width: 1024px) {
  .nav-menu > .nav-dropdown > .nav-drop-toggle::before { display: none !important; }
  .nav-menu > .nav-dropdown > .nav-drop-toggle::after {
    content: '+' !important;
    display: inline-flex !important;
    position: absolute;
    right: 8px;
    top: 50%;
    align-items: center;
    justify-content: center;
    width: 26px !important;
    height: 26px !important;
    transform: translateY(-50%) !important;
    border: 1px solid rgba(50, 198, 255, .22);
    border-radius: 50%;
    background: #EAF9FF !important;
    color: #009DD8 !important;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    opacity: 1 !important;
  }
  .nav-menu > .nav-dropdown.submenu-open > .nav-drop-toggle::after {
    content: '−' !important;
    background: #32C6FF !important;
    color: #fff !important;
  }
  .nav-menu > .nav-dropdown:not(.submenu-open) > .nav-sub {
    display: none !important;
  }
  .nav-menu > .nav-dropdown.submenu-open > .nav-sub {
    display: block !important;
  }
}

@media (max-width: 640px) {
  #news .news-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 14px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 2px var(--mobile-gutter) 18px !important;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--mobile-gutter);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  #news .news-grid::-webkit-scrollbar { display: none; }
  #news .news-card {
    display: block;
    flex: 0 0 min(82vw, 320px);
    width: min(82vw, 320px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

@media (max-width: 340px) {
  .footer-links { grid-template-columns: 1fr; }
}

/* Clear primary/secondary hierarchy in the mobile navigation. */
@media (max-width: 1024px) {
  .nav-menu > li {
    display: block !important;
    border-bottom: 1px solid #ece9e2;
  }
  .nav-menu > li:last-child { border-bottom: 0; }
  .nav-menu > li > a {
    position: relative;
    min-height: 50px;
    padding: 13px 10px !important;
    border-bottom: 0 !important;
    color: #24211d !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 1.5;
  }
  .nav-menu > .nav-dropdown {
    padding-bottom: 10px;
  }
  .nav-menu > .nav-dropdown > .nav-drop-toggle {
    padding-right: 40px !important;
  }
  .nav-menu > .nav-dropdown > .nav-drop-toggle::before {
    content: '栏目';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    padding: 2px 7px;
    border-radius: 999px;
    background: #E8F8FF;
    color: #32C6FF;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
  }
  .nav-menu .nav-sub {
    position: static !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 8px 0 18px !important;
    padding: 6px 10px 6px 14px !important;
    border: 0 !important;
    border-left: 3px solid #32C6FF !important;
    border-radius: 0 10px 10px 0 !important;
    background: #F5FCFF !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }
  .nav-menu .nav-sub li {
    position: relative;
    border: 0 !important;
  }
  .nav-menu .nav-sub a {
    position: relative;
    min-height: 40px;
    padding: 9px 8px 9px 18px !important;
    border: 0 !important;
    color: #6d6962 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.55;
  }
  .nav-menu .nav-sub a::before {
    content: '';
    display: block !important;
    position: absolute;
    left: 2px;
    top: 50%;
    width: 7px;
    height: 1px;
    transform: translateY(-50%);
    background: #aaa7bd;
    opacity: 1 !important;
  }
  .nav-menu .nav-sub a.active {
    color: #32C6FF !important;
    font-weight: 600 !important;
  }
  .nav-menu .nav-sub a.active::before {
    width: 8px;
    height: 8px;
    left: 1px;
    border-radius: 50%;
    background: #32C6FF;
  }
}

/* Preserve image proportions on desktop and mobile. */
img {
  max-width: 100%;
  height: auto;
  object-position: center;
}
.nav-logo img,
.footer-brand-logo img,
.brand-logo,
.brand-card img,
.plan-card img,
.dr-card img,
.ac-infocard img,
.nd-content img {
  width: auto;
  max-width: 100%;
  height: auto !important;
  object-fit: contain !important;
}
.hero-bg img,
.page-hero-bg img,
.news-card-img img,
.news-card-cover img,
.case-card img,
.about-img img,
.store-img img,
.gallery-item img,
.shop-about-image img,
.intro-image img,
.ab-intro-img img,
.ab-svc-photo img,
.tm-bigimg img,
.tm-photo img,
.ct-loc-img img,
.jn-hero img,
.nd-hero-bg img,
.nd-cover img,
.nd-side-thumb img,
.pj-img img,
.pc-hero img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center;
}

@media (max-width: 640px) {
  .news-card-img,
  .news-card-cover,
  .store-img,
  .gallery-item,
  .shop-about-image,
  .intro-image,
  .ab-intro-img,
  .tm-bigimg,
  .ct-loc-img,
  .nd-cover,
  .pj-img {
    aspect-ratio: 4 / 3;
    height: auto !important;
    overflow: hidden;
  }
  .case-card img {
    aspect-ratio: 4 / 3;
    height: auto !important;
  }
  .hero-bg,
  .page-hero-bg,
  .jn-hero,
  .nd-hero-bg,
  .pc-hero {
    overflow: hidden;
  }
  .plan-card img,
  .dr-card img,
  .ac-infocard img,
  .nd-content img {
    display: block;
    width: 100% !important;
  }
}

/* Mobile brand categories and cards: one horizontal swipe row. */
@media (max-width: 640px) {
  body #brands .brand-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 2px var(--mobile-gutter) 12px !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body #brands .brand-tabs::-webkit-scrollbar { display: none; }
  body #brands .brand-tab {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content;
    min-height: 44px;
    padding: 10px 18px !important;
    white-space: nowrap;
    scroll-snap-align: start;
  }
  body #brands .brand-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 4px var(--mobile-gutter) 18px !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--mobile-gutter);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body #brands .brand-grid::-webkit-scrollbar { display: none; }
  body #brands .brand-item {
    flex: 0 0 min(72vw, 280px) !important;
    width: min(72vw, 280px) !important;
    min-height: 150px;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Mobile after-sales cards: one horizontal swipe row. */
@media (max-width: 640px) {
  body #service .service-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 14px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 4px var(--mobile-gutter) 18px !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--mobile-gutter);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body #service .service-grid::-webkit-scrollbar { display: none; }
  body #service .service-item {
    display: flex !important;
    flex: 0 0 min(82vw, 320px) !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: min(82vw, 320px) !important;
    min-height: 210px;
    margin: 0 !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Mobile store cards: Shenyang HQ and Beijing flagship in one swipe row. */
.store-switch { display: none; }
@media (max-width: 640px) {
  body #stores .store-switch {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    margin: 0 0 14px;
    padding: 4px;
    border: 1px solid #CDEFFF;
    border-radius: 12px;
    background: rgba(255, 255, 255, .7);
  }
  body #stores .store-switch-btn {
    min-width: 0;
    min-height: 42px;
    padding: 8px 10px;
    border-radius: 9px;
    color: #706b63;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease, box-shadow .2s ease;
  }
  body #stores .store-switch-btn.active {
    background: #32C6FF;
    color: #fff;
    box-shadow: 0 5px 14px rgba(50, 198, 255, .24);
  }
  body #stores .stores-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 14px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 4px var(--mobile-gutter) 18px !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--mobile-gutter);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body #stores .stores-grid::-webkit-scrollbar { display: none; }
  body #stores .store-card {
    flex: 0 0 min(86vw, 340px) !important;
    width: min(86vw, 340px) !important;
    margin: 0 !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  body #stores .store-badge {
    max-width: calc(100% - 32px);
    padding-left: 14px;
    padding-right: 14px;
    white-space: nowrap;
  }
}

/* Mobile acoustic project cards: one swipe row and full-card links. */
.case-card { color: inherit; text-decoration: none; }
@media (max-width: 640px) {
  body #cases .cases-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 14px !important;
    margin-left: calc(var(--mobile-gutter) * -1);
    margin-right: calc(var(--mobile-gutter) * -1);
    padding: 4px var(--mobile-gutter) 18px !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--mobile-gutter);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body #cases .cases-grid::-webkit-scrollbar { display: none; }
  body #cases .case-card {
    display: block;
    flex: 0 0 min(84vw, 330px) !important;
    width: min(84vw, 330px) !important;
    margin: 0 !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}

/* Mobile page context and reliable back navigation. */
.mobile-page-nav { display: none; }
@media (max-width: 1024px) {
  .mobile-page-nav {
    position: relative;
    top: auto;
    left: auto;
    z-index: 90;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    height: 42px;
    margin-top: 64px;
    padding: 0 20px;
    border: 0;
    border-top: 0;
    border-bottom: 1px solid #e8e5df;
    border-radius: 0;
    background: #f8f7f4;
    box-shadow: none;
  }
  .mobile-back-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 30px;
    padding: 0;
    border-radius: 0;
    background: transparent !important;
    color: #292621;
    font-size: 12px;
    white-space: nowrap;
  }
  .mobile-back-btn > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 1px solid #dedad2;
    border-radius: 50%;
    background: #fff;
    color: #39352f;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
  }
  .mobile-back-btn > strong { font-weight: 500; letter-spacing: .04em; }
  .mobile-current-page {
    min-width: 0;
    max-width: min(50vw, 220px);
    margin-left: 12px;
    overflow: hidden;
    color: #8d877e;
    font-size: 11px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-current-page::before {
    content: '/';
    margin-right: 12px;
    color: #c4beb5;
  }
}
@media (max-width: 640px) {
  .mobile-page-nav {
    top: auto;
    left: auto;
    max-width: none;
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* Shared floating back-to-top control. */
.back-to-top {
  position: fixed;
  right: 22px;
  right: calc(22px + env(safe-area-inset-right, 0px));
  bottom: 24px;
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 98;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 50%;
  background: #32C6FF !important;
  color: #fff;
  box-shadow: 0 10px 28px rgba(35, 45, 135, .28);
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .22s ease, visibility .22s ease, transform .22s ease, background-color .2s ease;
}
.back-to-top.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top > span {
  font-size: 23px;
  font-weight: 300;
  line-height: 1;
}
.back-to-top:focus-visible {
  outline: 3px solid rgba(50, 198, 255, .4);
  outline-offset: 3px;
}
@media (hover: hover) {
  .back-to-top:hover {
    background: #009DD8 !important;
    transform: translateY(-2px);
  }
}
@media (max-width: 640px) {
  .back-to-top {
    right: 14px;
    right: calc(14px + env(safe-area-inset-right, 0px));
    bottom: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: 42px;
    height: 42px;
  }
}
/* Full-site mobile corrections: intrinsic widths, touch targets and table containment. */
.responsive-table{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.responsive-table:focus-visible{outline:2px solid #32c6ff;outline-offset:3px}
@media(max-width:1024px){
  .nav-menu:not(.open){visibility:hidden;pointer-events:none}
  .nav-menu.open{visibility:visible;pointer-events:auto;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
  .nav .nav-inner{max-width:none!important}
  .nav .nav-right{gap:12px;min-width:0}
  .nav .nav-lang{display:block;font-size:12px;padding-left:0;border-left:0;white-space:nowrap}
  .nav .nav-lang .sep{margin:0 7px}
  .nav .nav-inner .nav-logo{width:64px;flex-basis:64px}
  .nav .nav-toggle{margin-left:0}
  .ac-case{grid-template-columns:minmax(0,1fr)}
  .ac-case>*,.ac-draws>*,.ct-msg-grid>*,.ct-field-row>*{min-width:0;max-width:100%}
  .responsive-table table{margin-bottom:0}
}
@media(max-width:640px){
  .ac-fact{gap:10px}.ac-fact b{width:66px}.ac-fact span{min-width:0;overflow-wrap:anywhere}
  .ac-rt{min-width:0;table-layout:fixed}.ac-rt th,.ac-rt td{padding:10px 8px;overflow-wrap:anywhere}
  .ct-form input,.ct-form textarea,.ct-form select{font-size:16px!important;box-sizing:border-box}
  .brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .brand-logo-text,.brand-logo-sub,.brand-card .brand-name{overflow-wrap:anywhere;text-align:center}
  .brand-tab,.pj-tab,.news-filter-tab,.store-switch-btn{min-height:44px}
  .footer-contact-row{min-width:0}.footer-contact-row a{overflow-wrap:anywhere;min-width:0}
  .footer-bottom-links a{display:inline-flex;align-items:center;min-height:44px}
  .mobile-back-btn{min-height:40px}.mobile-page-nav{height:46px}
  .nd-content img,.article-content img{max-width:100%!important;height:auto!important}
  .brand-showcase .brand-family{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .brand-showcase .brand-orbit-card{height:68px}
  .brand-showcase .brand-orbit-cards{gap:30px}
  .brand-showcase .brand-family-title{font-size:17px;line-height:1.5}
}
@media(max-width:374px){
  .nav .nav-inner{gap:8px}.nav .nav-right{gap:8px}
  .nav .nav-lang{font-size:11px}
  .nav .nav-inner .nav-logo{width:48px;flex-basis:48px}
}
@media(hover:none){.brand-orbit-card:hover,.brand-item:hover,.brand-card:hover{transform:none;box-shadow:none}}

/* Homepage mobile flow: the desktop statistics card intentionally hangs below
   the hero. Once it becomes two rows on mobile it must participate in layout,
   otherwise it covers the gallery heading and copy. */
@media (max-width: 640px) {
  body .hero {
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 0 28px !important;
    align-items: stretch;
  }
  body .hero-bg {
    bottom: auto;
    height: 390px;
  }
  body .hero-banner-control { top: 195px; }
  body .stats {
    position: relative;
    inset: auto;
    width: 100%;
    margin: 300px auto 0;
    padding: 0 16px;
  }
  body .stats-grid {
    min-height: 0;
    padding: 20px 14px !important;
    border-radius: 18px;
  }
  body .stats-intro { padding: 0 4px 14px; }
  body .stats-intro strong { font-size: 18px; line-height: 1.45; }
  body .stats-intro span { font-size: 13px; line-height: 1.6; }
  body .stat-item { min-width: 0; padding: 11px 6px; }
  body .stat-number { font-size: 30px; }
  body .stat-label { font-size: 13px; }
  body .ad-gallery { padding-top: 0; }
  body .ad-gallery-copy {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    padding: 34px 18px 24px;
    transform: none;
  }
  body .ad-gallery-heading.site-title {
    margin-bottom: 12px;
    font-size: clamp(24px, 7.2vw, 28px) !important;
    line-height: 1.35;
  }
  body .ad-gallery-subtitle.site-copy {
    margin-top: 0;
    font-size: 15px !important;
    line-height: 1.75 !important;
  }
  body .ad-gallery-viewport { height: 470px; }
}

/* Final mobile layout: keep the hero, statistics, service and footer in a
   compact document flow instead of reusing desktop overlays. */
@media (max-width: 640px) {
  body .hero {
    display: block !important;
    padding-bottom: 0 !important;
  }
  body .hero-bg {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: 300px !important;
  }
  body .hero-banner-control { top: 150px !important; }
  body .stats {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 14px 22px !important;
    background: #f6f6f3;
  }
  body .stats-grid {
    box-shadow: 0 12px 30px rgba(18, 20, 24, .08) !important;
  }

  body #service { padding: 28px 0 !important; }
  body #service .container {
    width: calc(100% - 24px) !important;
    padding: 24px 14px 16px !important;
    border-radius: 18px !important;
  }
  body #service .section-header { margin-bottom: 16px !important; }
  body #service .section-title {
    margin-bottom: 7px !important;
    font-size: 26px !important;
    line-height: 1.25 !important;
  }
  body #service .section-subtitle {
    max-width: 300px;
    margin: 0 auto;
    font-size: 13px !important;
    line-height: 1.65 !important;
  }
  body #service .service-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body #service .service-item {
    width: auto !important;
    min-width: 0 !important;
    min-height: 104px !important;
    padding: 14px 8px !important;
    flex: none !important;
    border-radius: 14px !important;
  }
  body #service .service-icon {
    width: 36px !important;
    height: 36px !important;
    margin-bottom: 10px !important;
  }
  body #service .service-item h3 {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }
  body #service .service-apply {
    margin-top: 12px !important;
    padding: 14px 12px !important;
    border-radius: 14px !important;
  }
  body #service .service-apply h3 {
    margin-bottom: 9px !important;
    font-size: 15px !important;
  }
  body #service .service-steps {
    gap: 5px !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
  }
  body #service .service-apply .btn {
    min-height: 42px !important;
    margin-top: 12px !important;
    padding: 9px 18px !important;
  }

  body .footer { padding: 0 !important; }
  body .footer > .container {
    width: 100% !important;
    padding: 0 18px !important;
  }
  body .footer-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 22px !important;
    padding: 26px 0 18px !important;
  }
  body .footer-col {
    display: block !important;
    min-width: 0;
    padding: 17px 0 !important;
    border: 0 !important;
  }
  body .footer-col:first-child {
    grid-column: 1 / -1;
    padding-top: 0 !important;
    padding-bottom: 20px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .1) !important;
  }
  body .footer-col:nth-child(2),
  body .footer-col:nth-child(3) { grid-column: auto; }
  body .footer-col:nth-child(4) {
    grid-column: 1 / -1;
    padding-bottom: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, .1) !important;
  }
  body .footer-logo {
    width: 66px !important;
    margin-bottom: 12px !important;
  }
  body .footer-desc {
    max-width: 320px;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.75 !important;
  }
  body .footer-title {
    margin-bottom: 12px !important;
    font-size: 14px !important;
  }
  body .footer-links {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  body .footer-links a {
    min-height: 30px !important;
    font-size: 12px !important;
    line-height: 30px !important;
  }
  body .footer-contact {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
  }
  body .footer-contact-row {
    align-items: flex-start !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
  }
  body .footer-bottom {
    padding: 14px 0 18px !important;
    font-size: 11px !important;
    line-height: 1.7 !important;
  }
}

/* Mobile artwork is displayed in full, without cropping or horizontal overflow. */
@media(max-width:1024px) {
 body.website-home .hero {display:block!important;height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;}
 body.website-home .hero-bg {position:relative!important;inset:auto!important;height:auto!important;min-height:0!important;}
 body.website-home .hero-banner {position:relative!important;inset:auto!important;display:none!important;overflow:hidden;}
 body.website-home .hero-banner.is-active {display:block!important;}
 body.website-home .hero-banner picture {display:block;height:auto;}
 body.website-home .hero-bg img {display:block!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;}
 body.website-home .hero-bg::after,body.website-home .hero-scroll {display:none!important;}
 body.website-home .hero-banner-control {top:50%!important;display:flex;align-items:center;justify-content:center;width:30px!important;height:30px!important;padding:0; font-size:0!important;line-height:1!important;transform:translateY(-50%);}
 body.website-home .hero-banner-control::before {content:'';display:block;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;}
 body.website-home .hero-banner-control--prev::before {transform:translateX(2px) rotate(-135deg);}
 body.website-home .hero-banner-control--next::before {transform:translateX(-2px) rotate(45deg);}
 body.website-home .stats {position:relative!important;inset:auto!important;width:auto!important;margin:16px!important;transform:none!important;}
 body.website-home .stats-grid {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;}
 body.website-home .stats-intro {grid-column:1/-1!important;}
 body .mobile-original-banner {box-sizing:border-box;aspect-ratio:var(--banner-ratio);height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;}
 body .mobile-original-banner img {object-fit:contain!important;}
 body .mobile-original-banner>[class$="-bg"] {background-size:contain!important;}



}

/* Compact mobile footer shared by every website page. */
@media (max-width: 1024px) {
    body .footer { padding: 0 !important; }
    body .footer > .container {
        box-sizing: border-box;
        width: 100% !important;
        padding: 0 22px !important;
    }
    body .footer .footer-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 0 24px !important;
        padding: 30px 0 0 !important;
    }
    body .footer .footer-col {
        box-sizing: border-box;
        width: auto !important;
        min-width: 0;
        margin: 0 !important;
        padding: 22px 0 !important;
        border: 0 !important;
    }
    body .footer .footer-col:first-child {
        grid-column: 1 / -1 !important;
        padding: 0 0 22px !important;
        border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
    }
    body .footer .footer-col:nth-child(2) { grid-column: 1 !important; }
    body .footer .footer-col:nth-child(3) { grid-column: 2 !important; }
    body .footer .footer-col:nth-child(4) {
        grid-column: 1 / -1 !important;
        border-top: 1px solid rgba(255, 255, 255, .12) !important;
    }
    body .footer .footer-brand-logo {
        width: auto !important;
        height: 40px !important;
        min-height: 40px !important;
        margin: 0 0 12px !important;
    }
    body .footer .footer-brand-logo img {
        height: 40px !important;
        max-height: 40px !important;
        width: auto !important;
    }
    body .footer .footer-desc {
        margin: 0 !important;
        font-size: 13px !important;
        line-height: 1.8 !important;
        color: rgba(255, 255, 255, .65) !important;
    }
    body .footer .footer-col h4 {
        margin: 0 0 10px !important;
        font-size: 15px !important;
        line-height: 1.5 !important;
        letter-spacing: 0 !important;
        color: #fff !important;
    }
    body .footer .footer-links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none;
    }
    body .footer .footer-links li { margin: 0 !important; padding: 0 !important; }
    body .footer .footer-links a {
        box-sizing: border-box;
        display: flex !important;
        align-items: center;
        min-height: 44px !important;
        padding: 8px 0 !important;
        font-size: 14px !important;
        line-height: 1.5 !important;
        color: rgba(255, 255, 255, .72) !important;
    }
    body .footer .footer-contact-row {
        margin: 0 0 10px !important;
        font-size: 13px !important;
        line-height: 1.8 !important;
        overflow-wrap: anywhere;
        color: rgba(255, 255, 255, .72) !important;
    }
    body .footer .footer-contact-row:last-child { margin-bottom: 0 !important; }
    body .footer .footer-bottom {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 18px 0 calc(20px + env(safe-area-inset-bottom)) !important;
        border-top: 1px solid rgba(255, 255, 255, .12) !important;
        font-size: 11px !important;
        line-height: 1.8 !important;
        text-align: center !important;
    }
    body .footer .footer-bottom-links {
        display: flex !important;
        flex-wrap: wrap;
        justify-content: center !important;
        gap: 4px 16px !important;
    }
    body .footer .footer-bottom-links a { min-height: 36px !important; }
}

/* Mobile brand signature: align the mark and concise introduction. */
.footer-desc-mobile { display: none; }
@media (max-width: 1024px) {
    body .footer .footer-col:first-child {
        display: grid !important;
        grid-template-columns: 38px minmax(0, 1fr) !important;
        align-items: center !important;
        column-gap: 16px !important;
        padding-bottom: 24px !important;
    }
    body .footer .footer-col:first-child .footer-brand-logo {
        width: 38px !important;
        height: 44px !important;
        min-height: 0 !important;
        margin: 0 !important;
        align-items: center !important;
    }
    body .footer .footer-col:first-child .footer-brand-logo img {
        width: auto !important;
        max-width: 38px !important;
        height: auto !important;
        max-height: 44px !important;
        object-fit: contain !important;
    }
    body .footer .footer-desc-desktop { display: none !important; }
    body .footer .footer-desc-mobile {
        display: flex !important;
        flex-direction: column;
        gap: 6px;
        min-width: 0;
        margin: 0 !important;
        text-align: left;
    }
    body .footer .footer-desc-mobile strong {
        color: #f2f4f7;
        font-size: 15px;
        font-weight: 600;
        line-height: 1.5;
        letter-spacing: .02em;
    }
    body .footer .footer-desc-mobile span {
        color: rgba(255, 255, 255, .6);
        font-size: 12px;
        line-height: 1.7;
        text-wrap: pretty;
    }
}
/* Compact homepage business figures on phones. */
@media (max-width: 640px) {
    body.website-home .stats {
        padding: 16px 0 20px !important;
        background: transparent !important;
    }
    body.website-home .stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        padding: 16px 12px !important;
        background: transparent !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
    body.website-home .stats-intro { padding: 0 0 12px !important; }
    body.website-home .stats-intro strong { font-size: 16px !important; }
    body.website-home .stats-intro span { font-size: 12px !important; }
    body.website-home .stat-item { min-width: 0; padding: 10px 2px !important; }
    body.website-home .stat-item:not(:last-child)::after { display: block !important; }
    body.website-home .stat-icon { width: 18px; height: 18px; }
    body.website-home .stat-number { font-size: 22px !important; }
    body.website-home .stat-label { font-size: 11px !important; letter-spacing: 0; }
}

.ad-gallery-label-icon img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Desktop banners retain the full artwork and determine the hero height. */
@media (min-width: 1025px) {
    body.website-home .hero {
        display: block;
        min-height: 0;
        max-height: none;
        padding: 0;
    }
    body.website-home .hero-bg {
        position: relative;
        inset: auto;
        display: grid;
    }
    body.website-home .hero-banner {
        position: relative;
        inset: auto;
        grid-area: 1 / 1;
        align-self: start;
        min-width: 0;
    }
    body.website-home .hero-banner picture { height: auto; }
    body.website-home .hero-bg img {
        display: block;
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}

/* Keep desktop business figures in their own row below the banner. */
@media (min-width: 1025px) {
    body.website-home .stats {
        position: relative;
        inset: auto;
        width: 100%;
        margin: 0;
        padding: 36px 40px 0;
        transform: none;
        background: transparent;
    }
    body.website-home .hero-scroll { display: none; }
}

/* Desktop banner controls: open, thin chevrons. */
@media (min-width: 1025px) {
    body.website-home .hero-banner-control {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 88px;
        height: 112px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        color: rgba(255, 255, 255, .8);
        font-size: 0;
    }
    body.website-home .hero-banner-control::before {
        content: '';
        display: block;
        width: 48px;
        height: 48px;
        border-top: 3px solid currentColor;
        border-right: 3px solid currentColor;
    }
    body.website-home .hero-banner-control--prev { left: 6%; }
    body.website-home .hero-banner-control--next { right: 6%; }
    body.website-home .hero-banner-control--prev::before { transform: translateX(8px) rotate(-135deg); }
    body.website-home .hero-banner-control--next::before { transform: translateX(-8px) rotate(45deg); }
    body.website-home .hero-banner-control:hover,
    body.website-home .hero-banner-control:focus-visible { background: transparent; color: #fff; }
}

/* Full-height side targets keep banner navigation easy on pale artwork. */
@media (min-width: 1025px) {
    body.website-home .hero-banner-control {
        top: 0;
        bottom: 0;
        width: 18%;
        height: 100%;
        transform: none;
        cursor: pointer;
    }
    body.website-home .hero-banner-control--prev { left: 0; }
    body.website-home .hero-banner-control--next { right: 0; }
    body.website-home .hero-banner-control::before {
        filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6));
    }
}

/* Mobile banner controls follow the desktop open-chevron appearance. */
@media (max-width: 1024px) {
    body.website-home .hero-banner-control {
        width: 44px !important;
        height: 64px !important;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        color: rgba(255, 255, 255, .8);
    }
    body.website-home .hero-banner-control::before {
        width: 20px;
        height: 20px;
        border-top-width: 2px;
        border-right-width: 2px;
        filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .6));
    }
    body.website-home .hero-banner-control--prev { left: 8px; }
    body.website-home .hero-banner-control--next { right: 8px; }
    body.website-home .hero-banner-control--prev::before { transform: translateX(4px) rotate(-135deg); }
    body.website-home .hero-banner-control--next::before { transform: translateX(-4px) rotate(45deg); }
    body.website-home .hero-banner-control:hover,
    body.website-home .hero-banner-control:focus-visible {
        background: transparent;
        color: #fff;
        transform: translateY(-50%);
    }
}
