/* Henan Weiqi: restrained liquid-glass treatment on the existing layout. */
:root {
  --container-7xl: 1300px;
  --glass-ink: #173450;
  --glass-line: rgba(255, 255, 255, .82);
  --glass-shadow: 0 18px 48px rgba(28, 61, 91, .11), 0 2px 9px rgba(28, 61, 91, .05);
}

body {
  background: #edf4f8;
}

main {
  overflow: clip;
}

main section.bg-white,
main section.bg-bg-light {
  position: relative;
  isolation: isolate;
  background-color: transparent;
}

main section.bg-white {
  background-image: radial-gradient(circle at 88% 18%, rgba(198, 224, 239, .18), transparent 30%),
    linear-gradient(145deg, #fff 0%, #f8fbfd 100%);
}

main section.bg-bg-light {
  background-image: radial-gradient(circle at 12% 16%, rgba(197, 205, 212, .28), transparent 34%),
    radial-gradient(circle at 88% 82%, rgba(224, 214, 198, .12), transparent 29%),
    linear-gradient(145deg, #eef1f3 0%, #e3e8eb 100%);
}

main section.bg-white > .max-w-7xl,
main section.bg-bg-light > .max-w-7xl {
  position: relative;
  z-index: 1;
}

main section.bg-white h2,
main section.bg-bg-light h2 {
  letter-spacing: -.025em;
}

main section.bg-white .w-16.h-1.bg-accent,
main section.bg-bg-light .w-16.h-1.bg-accent {
  height: 4px;
  width: 52px;
  background: linear-gradient(90deg, #f4ad42, #ffe2a6);
  box-shadow: 0 2px 12px rgba(245, 166, 35, .24);
}

/* Floating navigation keeps the existing links and mobile menu intact. */
#site-header {
  top: 14px;
  left: 20px;
  right: 20px;
  width: auto;
}

#site-header .nav-backdrop,
#site-header.scrolled .nav-backdrop {
  background: linear-gradient(125deg, rgba(18, 43, 67, .82), rgba(36, 68, 96, .68));
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 24px;
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  backdrop-filter: blur(28px) saturate(160%);
  box-shadow: 0 12px 38px rgba(7, 27, 48, .20), inset 0 1px rgba(255, 255, 255, .28);
}

/* The Astro-scoped header has a later, more specific rule for .scrolled. */
body #site-header.scrolled .nav-backdrop {
  background: linear-gradient(125deg, rgba(14, 36, 58, .88), rgba(29, 57, 82, .78)) !important;
  box-shadow: 0 15px 42px rgba(7, 27, 48, .21), inset 0 1px rgba(255, 255, 255, .28);
}

#site-header .nav-backdrop:before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(160deg, rgba(255, 255, 255, .12), transparent 47%);
}

#site-header nav .rounded-lg,
#mobile-menu a.rounded-lg {
  border-radius: 14px;
}

#site-header nav a.rounded-lg:hover,
#site-header nav a.rounded-lg:focus-visible {
  background: rgba(255, 255, 255, .13);
}

#mobile-menu {
  margin-top: 9px;
  background: rgba(18, 43, 67, .94);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 22px;
  box-shadow: 0 22px 42px rgba(7, 27, 48, .25);
  -webkit-backdrop-filter: blur(26px) saturate(150%);
  backdrop-filter: blur(26px) saturate(150%);
  overflow: hidden;
}

/* More legible navigation and phone numbers across shared templates. */
#site-header nav .hidden.lg\:flex > a {
  font-size: 16px;
  padding-inline: 12px;
  white-space: nowrap;
}

#mobile-menu a:not([href^="tel:"]) {
  font-size: 18px;
}

#site-header nav a[href^="tel:"] {
  font-size: 18px;
  padding-inline: 16px;
  white-space: nowrap;
}

#mobile-menu a[href^="tel:"] {
  font-size: 18px;
}

.site-phone {
  font-size: max(1.12em, 18px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: .015em;
  line-height: 1.25;
  white-space: nowrap;
}

#site-header nav .site-phone {
  font-size: 18px;
}

main a[href="13569807856"],
main a[href^="tel:"]:not(.text-3xl) {
  font-size: 18px;
}

@media (min-width: 1024px) and (max-width: 1279px) {
  #site-header nav .hidden.lg\:flex { display: none; }
  #mobile-menu-btn { display: flex; }
  #mobile-menu:not(.hidden) { display: block; }
}

@media (min-width: 1280px) and (max-width: 1399px) {
  #site-header nav img {
    max-width: 300px;
    max-height: 40px;
    object-fit: contain;
  }
}

/* Hero controls and content gain depth without covering the crane imagery. */
.hero-swiper .swiper-slide > .absolute.inset-0 > .absolute.inset-0 {
  background: none;
}

.hero-swiper .swiper-slide > .relative.h-full .max-w-2xl {
  position: relative;
  max-width: 780px;
  padding: clamp(26px, 3.6vw, 48px);
  margin-left: calc(-1 * clamp(26px, 3.6vw, 48px));
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 30px;
  background: linear-gradient(125deg, rgba(9, 31, 54, .34), rgba(14, 38, 61, .16));
  -webkit-backdrop-filter: blur(2px) saturate(110%);
  backdrop-filter: blur(2px) saturate(110%);
  box-shadow: inset 0 1px rgba(255, 255, 255, .17), 0 25px 60px rgba(2, 20, 38, .12);
}

.hero-prev,
.hero-next {
  border: 1px solid rgba(255, 255, 255, .48);
  background: rgba(255, 255, 255, .18);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  box-shadow: inset 0 1px rgba(255, 255, 255, .34), 0 12px 32px rgba(0, 0, 0, .14);
}

/* Cards retain their original grid, dimensions and reading order. */
main .product-card,
main section a.group.bg-white,
main section div.group.bg-white,
main section .group.relative.bg-bg-light,
main section form.bg-white,
main section .bg-white.rounded-2xl,
main section .bg-white.rounded-xl {
  background: linear-gradient(145deg, rgba(255, 255, 255, .83), rgba(249, 253, 255, .60));
  border: 1px solid var(--glass-line);
  box-shadow: var(--glass-shadow), inset 0 1px rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
  border-radius: 24px;
}

main .product-card:hover,
main section a.group.bg-white:hover,
main section div.group.bg-white:hover,
main section .group.relative.bg-bg-light:hover {
  background: linear-gradient(145deg, rgba(255, 255, 255, .95), rgba(246, 251, 255, .78));
  border-color: rgba(255, 255, 255, .98);
  box-shadow: 0 25px 52px rgba(28, 61, 91, .17), inset 0 1px #fff;
  transform: translateY(-5px);
}

main section .group.relative.bg-bg-light:hover h3,
main section .group.relative.bg-bg-light:hover p {
  color: var(--glass-ink);
}

main section .group.relative.bg-bg-light:hover .text-primary\/5 {
  color: rgba(30, 58, 95, .10);
}

main section .group.relative.bg-bg-light > .w-14.h-14,
main section .group.relative.bg-bg-light:hover > .w-14.h-14 {
  background: rgba(214, 232, 245, .74);
  color: #1e3a5f;
  border: 1px solid rgba(255, 255, 255, .9);
  box-shadow: inset 0 1px #fff;
}

main .product-card img,
main section a.group img {
  transition: transform .55s cubic-bezier(.2, .75, .2, 1),
    scale .55s cubic-bezier(.2, .75, .2, 1);
}

#product-grid .product-image-frame {
  aspect-ratio: 4 / 3;
}

/* Application cards follow the product cards' lift and image-zoom rhythm. */
main section a.group.relative.h-72 {
  border: 1px solid rgba(255, 255, 255, .55);
  box-shadow: 0 10px 26px rgba(28, 61, 91, .08);
  transition: transform .45s cubic-bezier(.2, .75, .2, 1),
    box-shadow .45s cubic-bezier(.2, .75, .2, 1);
}

main section a.group.relative.h-72:hover,
main section a.group.relative.h-72:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 23px 46px rgba(28, 61, 91, .20);
}

main section a.group.relative.h-72 > .bg-gradient-to-t {
  background-image: linear-gradient(to top, rgba(20, 40, 66, .9), rgba(20, 40, 66, .4) 50%, transparent);
}

main section a.group.relative.h-72 > .bg-gradient-to-t::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(207, 124, 25, .56), transparent 75%);
  opacity: 0;
  transition: opacity .45s cubic-bezier(.2, .75, .2, 1);
  pointer-events: none;
}

main section a.group.relative.h-72:hover > .bg-gradient-to-t::after,
main section a.group.relative.h-72:focus-visible > .bg-gradient-to-t::after {
  opacity: 1;
}

/* Buttons use the site's blue and amber palette with a glass highlight. */
.btn-primary,
.btn-accent,
main a.rounded-full.bg-accent {
  position: relative;
  border: 1px solid rgba(255, 255, 255, .28);
  box-shadow: 0 9px 22px rgba(30, 58, 95, .17), inset 0 1px rgba(255, 255, 255, .28);
}

.btn-primary:hover,
.btn-accent:hover,
main a.rounded-full.bg-accent:hover {
  box-shadow: 0 15px 29px rgba(30, 58, 95, .22), inset 0 1px rgba(255, 255, 255, .38);
}

main .product-consult-button {
  width: min(100%, 340px);
  justify-content: center;
  gap: 6px;
  padding-inline: 12px;
  white-space: nowrap;
}

main .product-consult-button .site-phone {
  font-size: 18px;
}

main .product-consult-button > svg {
  flex-shrink: 0;
}

@media (max-width: 375px) {
  main .product-cta-panel { padding-inline: 16px; }
}

@media (max-width: 349px) {
  main .product-consult-button { padding-inline: 8px; }
  main .product-consult-button > svg { display: none; }
}

main input,
main textarea,
main select {
  background: rgba(255, 255, 255, .79);
  border-color: rgba(115, 150, 178, .35);
}

main input:focus-visible,
main textarea:focus-visible,
main select:focus-visible,
button:focus-visible,
a:focus-visible {
  outline: 3px solid #d28a19;
  outline-offset: 3px;
}

main section.sticky.bg-white {
  position: sticky;
  top: 94px;
  z-index: 40;
  background: rgba(249, 251, 253, .97);
  border-bottom-color: rgba(255, 255, 255, .7);
  -webkit-backdrop-filter: blur(20px) saturate(145%);
  backdrop-filter: blur(20px) saturate(145%);
  box-shadow: 0 10px 26px rgba(25, 55, 83, .12);
}

main section.sticky.bg-white > .max-w-7xl > .flex {
  justify-content: center;
  gap: 10px;
}

main section.sticky.bg-white a.rounded-full {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  font-size: 15px;
  white-space: nowrap;
  transition: background-color .25s, color .25s, box-shadow .25s, transform .25s;
}

main section.sticky.bg-white a.rounded-full:not(.bg-primary) {
  background: rgba(255, 255, 255, .92);
  border: 1px solid rgba(191, 205, 216, .78);
  box-shadow: 0 2px 7px rgba(25, 55, 83, .07);
}

main section.sticky.bg-white a.rounded-full:hover,
main section.sticky.bg-white a.rounded-full:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(25, 55, 83, .15);
}

main section .bg-white\/10.backdrop-blur-lg {
  border-color: rgba(255, 255, 255, .36);
  background: rgba(255, 255, 255, .14);
  -webkit-backdrop-filter: blur(24px) saturate(150%);
  backdrop-filter: blur(24px) saturate(150%);
  box-shadow: inset 0 1px rgba(255, 255, 255, .3), 0 20px 48px rgba(4, 27, 51, .17);
}

footer.bg-bg-dark {
  background: linear-gradient(145deg, #173450, #10283f);
  border-top: 1px solid rgba(255, 255, 255, .26);
}

footer .footer-phone-detail {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

footer .footer-phone-link {
  color: #fff;
  text-decoration: none;
}

footer .footer-phone-link:hover {
  color: #ffad42;
}

footer .footer-contact-actions {
  flex-direction: column;
}

footer .footer-contact-actions a {
  width: 100%;
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  #site-header .nav-backdrop { background: #193956; }
  body #site-header.scrolled .nav-backdrop { background: #132e48 !important; }
  #mobile-menu { background: #193956; }
  main .product-card,
  main section a.group.bg-white,
  main section div.group.bg-white,
  main section .group.relative.bg-bg-light,
  main section form.bg-white { background: #f9fcff; }
}

@media (max-width: 767px) {
  #site-header { top: 8px; left: 10px; right: 10px; }
  #site-header .nav-backdrop { border-radius: 18px; }
  #site-header nav img {
    max-width: calc(100vw - 130px);
    object-fit: contain;
  }
  main section.sticky.bg-white { top: 90px; }
  main section.sticky.bg-white > .max-w-7xl {
    padding-inline: 16px;
  }
  main section.sticky.bg-white > .max-w-7xl > .flex {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  main section.sticky.bg-white > .max-w-7xl > .flex::-webkit-scrollbar { display: none; }
  main section.sticky.bg-white a.rounded-full { flex: 0 0 auto; }
  .hero-swiper .swiper-slide > .relative.h-full .max-w-2xl {
    margin-left: 0;
    padding: 22px;
    border-radius: 24px;
  }
  .hero-prev,
  .hero-next { width: 38px; height: 38px; }
  main .product-card,
  main section a.group.bg-white,
  main section div.group.bg-white,
  main section .group.relative.bg-bg-light { border-radius: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  main .product-card,
  main section a.group.bg-white,
  main section div.group.bg-white,
  main section .group.relative.bg-bg-light,
  main section a.group.relative.h-72,
  main section a.group.relative.h-72 img,
  main section a.group.relative.h-72 > .bg-gradient-to-t::after,
  .hero-prev,
  .hero-next { transition-duration: .01ms; }
}
