:root {
  --brand: #ff5100;
  --brand-dark: #e94700;
  --ink: #202124;
  --text: #555;
  --muted: #929292;
  --line: #e8e8e8;
  --surface: #f6f6f6;
  --header-height: clamp(70px, calc(2vw + 40px), 120px);
  --page-width: 90rem;
  --shadow: 0 1.25rem 3.75rem rgb(0 0 0 / 12%);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; padding-top: var(--header-height); color: var(--text); background: #fff; font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; font-size: 14px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
body.is-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, video { max-width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 999; top: -5rem; left: 1rem; padding: .75rem 1rem; color: #fff; background: var(--brand); }
.skip-link:focus { top: 1rem; }
.section-shell { width: min(calc(100% - 4rem), var(--page-width)); margin-inline: auto; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 2.5rem; }
.section-heading h2 { margin: 0; color: var(--ink); font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 500; letter-spacing: -.03em; }
.content-title { margin: 0 auto 3rem; color: var(--ink); font-size: clamp(2rem, 4vw, 4rem); font-weight: 500; text-align: center; }
.empty-state { grid-column: 1/-1; padding: 5rem 1rem; color: var(--muted); text-align: center; }
.primary-button { min-width: 9rem; padding: .8rem 1.5rem; display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; color: #fff; background: var(--brand); border: 0; border-radius: 99rem; cursor: pointer; transition: background .2s, transform .2s; }
.primary-button:hover { background: var(--brand-dark); transform: translateY(-2px); }
.text-link { color: var(--brand); }

/* Header */
.site-header { position: fixed; z-index: 100; top: 0; right: 0; left: 0; height: var(--header-height); color: #f7f7f7; background: #1e1e1e; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Arial, sans-serif; line-height: 1; }
.site-header.is-scrolled { box-shadow: none; }
.site-header__inner { width: 100%; max-width: 100rem; height: 100%; margin: 0 auto; padding: 0 clamp(1.5rem, 3vw, 3.75rem); display: flex; align-items: center; justify-content: space-between; }
.site-logo { flex: 0 0 auto; display: flex; align-items: center; color: var(--brand); font-size: 1.25rem; font-weight: 800; }
.site-logo img { width: auto; height: clamp(1.875rem, 2.2vw, 2.625rem); display: block; object-fit: contain; }
.primary-navigation { min-width: 0; height: 100%; display: flex; flex: 1 1 auto; justify-content: center; }
.primary-navigation__list { height: 100%; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; list-style: none; }
.primary-navigation__item { height: 3.75rem; margin: 0 clamp(.75rem, 1.2vw, 2.25rem); display: flex; align-items: center; }
.primary-navigation__link { position: relative; height: 100%; padding: 0; display: flex; align-items: center; color: #f7f7f7; background: none; border: 0; font-size: 1rem; font-weight: 400; line-height: 3.75rem; white-space: nowrap; cursor: pointer; transition: color .2s ease; }
.primary-navigation__link:hover { color: #f7f7f7; }
.primary-navigation__trigger i { display: none; }
.site-header__tools { flex: 0 0 auto; display: flex; align-items: center; gap: 1.25rem; }
.site-header__tools button { width: 1.25rem; height: 2rem; padding: 0; display: grid; place-items: center; color: #8a8a8a; background: transparent; border: 0; cursor: pointer; }
.site-header__tools button:hover { color: #e3540b; }
.header-search-toggle i { font-size: 1.25rem; line-height: 1; }
.header-language select { min-width: 6rem; height: 2rem; padding: 0 .75rem; color: #f7f7f7; background: #2c2c2c; border: 1px solid #707070; border-radius: .125rem; font-size: .75rem; }
.header-more-links { width: 6.46875rem; margin-left: 1.25rem; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: .375rem; }
.header-external, .header-separator { color: #8a8a8a; font-size: .75rem; font-weight: 300; white-space: nowrap; }
.header-external:hover { color: #e3540b; }
.header-separator { color: rgb(255 255 255 / 15%); }
.mobile-menu-toggle { display: none; }
.nav-mega { position: fixed; z-index: 102; top: calc((var(--header-height) + 3.75rem) / 2); right: 0; left: 0; height: 16rem; visibility: hidden; color: #707070; background: #f2f2f2; opacity: 0; pointer-events: none; transition: opacity .14s ease, visibility .14s ease; }
.primary-navigation__item.is-active > .nav-mega, .primary-navigation__item:focus-within > .nav-mega { visibility: visible; opacity: 1; pointer-events: auto; }
.nav-mega__flat { width: 100%; height: 16rem; display: flex; align-items: center; justify-content: center; }
.nav-mega__item { width: 12%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.875rem; color: #b3b3b3; font-size: .875rem; font-weight: 400; line-height: 1.25rem; text-align: center; transition: filter .3s ease; }
.nav-mega__item span { color: #b3b3b3; }
.nav-mega__item:hover, .nav-mega__group-item:hover { filter: sepia(1) hue-rotate(-35deg) saturate(1000%) brightness(90%) contrast(110%); }
.nav-mega__item:hover span, .nav-mega__group-item:hover { color: #e3540b; }
.nav-mega__item img { width: 5rem; height: 5rem; display: block; object-fit: contain; }
.nav-mega--service { height: auto; min-height: 16rem; }
.nav-mega__groups { min-height: 16rem; padding: 2.5rem 0; display: flex; align-items: flex-start; justify-content: center; gap: 3.75rem; }
.nav-mega__group { min-width: 13.75rem; display: flex; flex-direction: column; }
.nav-mega__group > button { width: 100%; margin: 0 0 .625rem; padding: 0 0 .625rem; color: #505050; background: none; border: 0; border-bottom: 1px solid #c8c8c8; font-size: .875rem; font-weight: 500; line-height: 3.75rem; text-align: center; }
.nav-mega__group > button b { display: none; }
.nav-mega__group > div { display: flex; flex-direction: column; }
.nav-mega__group-item { min-height: 4.75rem; padding: .5rem 3.75rem; display: block; position: relative; color: #707070; font-size: .875rem; line-height: 3.75rem; text-align: center; transition: color .2s ease, filter .2s ease; }
.nav-mega__group-item img { position: absolute; top: 50%; left: .375rem; width: 3rem; height: 3rem; display: block; object-fit: contain; transform: translateY(-50%); }
.mobile-nav-extras { display: none; }
.header-search { position: absolute; top: 100%; right: 0; left: 0; padding: 1.5rem max(2rem, calc((100% - 85rem)/2)); background: #fff; box-shadow: var(--shadow); }
.header-search[hidden] { display: none; }
.header-search > div { position: relative; display: flex; flex-wrap: wrap; }
.header-search input { min-width: 0; height: 3rem; padding: 0 1rem; flex: 1; border: 1px solid var(--line); outline: 0; }
.header-search button { width: 6rem; color: #fff; background: var(--brand); border: 0; }
.header-search p { width: 100%; margin: .75rem 0 0; color: #999; font-size: .75rem; }

/* Footer */
.site-footer { color: #c7c7c7; background: linear-gradient(180deg, #272727, #1a1a1a); font-family: -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Arial, sans-serif; line-height: 1; }
.site-footer__main { width: 100%; max-width: 85rem; margin: auto; padding: 2.5rem clamp(1rem, 2vw, 2rem) 0; display: flex; gap: clamp(2rem, 3vw, 4rem); }
.site-footer__navigation { min-width: 0; flex: 1; }
.footer-back-top { display: none; }
.footer-columns { display: flex; align-items: stretch; gap: clamp(1rem, 2vw, 2.5rem); margin-bottom: 10vh; }
.footer-column { min-width: 0; display: flex; flex: 1 1 0; flex-direction: column; }
.footer-column--service { flex: 3 1 0; }
.footer-column__toggle { width: 100%; margin: 0 0 1.5rem; padding: 0; display: flex; justify-content: space-between; color: #f2f2f2; background: none; border: 0; font-size: .875rem; font-weight: 400; line-height: 1rem; text-align: left; pointer-events: none; }
.footer-column--service .footer-column__toggle { padding-bottom: .75rem; border-bottom: 1px solid rgb(255 255 255 / 8%); }
.footer-column__toggle b { display: none; }
.footer-column ul { margin: 0; padding: 0; list-style: none; }
.footer-column li { margin: 0; }
.footer-column a { margin-bottom: 0; display: block; color: #a9a9a9; font-size: .75rem; font-weight: 300; line-height: 1.375rem; transition: color .2s; white-space: nowrap; }
.footer-column a:hover { color: var(--brand); }
html[lang="ja"] .footer-column a { white-space: normal; overflow-wrap: anywhere; }
.footer-service-groups { display: flex; gap: clamp(1rem, 2vw, 2.5rem); }
.footer-service-groups section { min-width: 0; flex: 1; }
.footer-service-groups h3 { margin: 0 0 1rem; color: #d0d0d0; font-size: .75rem; font-weight: 400; line-height: 1rem; white-space: nowrap; }
.footer-subscribe { width: 18.75rem; max-width: 34%; padding: 0; display: flex; flex: 0 0 auto; flex-direction: column; align-items: stretch; border: 0; }
.footer-subscribe strong { margin-bottom: 1.375rem; color: #fff; font-size: .875rem; font-weight: 400; line-height: 1rem; }
.footer-subscribe > span { margin-bottom: 1.125rem; color: #a9a9a9; font-size: .75rem; font-weight: 400; line-height: .75rem; }
.footer-subscribe form { position: relative; width: 100%; margin-bottom: 1.125rem; display: flex; border: 0; }
.footer-subscribe input { min-width: 0; height: 2rem; padding: .25rem .75rem; flex: 1; color: #a9a9a9; background: transparent; border: 1px solid #707070; border-radius: .125rem 0 0 .125rem; outline: 0; font-size: .875rem; }
.footer-subscribe button { width: 2rem; height: 2rem; padding: 0; color: #fff; background: #707070; border: 0; cursor: pointer; }
.footer-subscribe button:hover { background: var(--brand); }
.footer-subscribe select { width: 100%; height: 2rem; padding: 0 .75rem; color: #ccc; background: #292929; border: 1px solid #707070; }
.footer-more { margin: 1.875rem 0; display: flex; gap: .625rem; color: #999; font-size: .6875rem; }
.footer-more a:hover { color: var(--brand); }
.footer-email-icon { position: relative; width: .875rem; height: .625rem; display: inline-block; border: 1px solid currentColor; }
.footer-email-icon::after { position: absolute; top: -.05rem; right: .1rem; left: .1rem; height: .45rem; border-bottom: 1px solid currentColor; content: ""; transform: rotate(-28deg) skewX(35deg); }
.form-message { position: absolute; top: 100%; left: 0; margin: .2rem 0; color: var(--brand); font-size: .75rem; }
.site-footer__bottom { width: 100%; max-width: 85rem; min-height: 7.875rem; margin: auto; padding: 0 clamp(1rem, 2vw, 2rem) 5.5rem; display: flex; align-items: center; }
.site-footer__legal { width: 60%; color: #d0d0d0; font-size: .75rem; font-weight: 300; line-height: .994rem; }
.footer-socials { width: 40%; display: flex; align-items: center; justify-content: flex-end; gap: .625rem; }
.footer-social { position: relative; }
.footer-social > a, .footer-social > button { width: 1.875rem; height: 1.875rem; padding: 0; display: grid; place-items: center; background: transparent; border: 0; border-radius: 50%; cursor: pointer; }
.footer-social > a:hover, .footer-social > button:hover { background: #707070; }
.footer-social > a img, .footer-social > button img { width: 1.125rem; height: 1.125rem; object-fit: contain; }
.footer-social__icon { width: 1.125rem; height: 1.125rem; display: block; color: #c7c7c7; }
.footer-social__qr { position: absolute; z-index: 10; right: -1.25rem; bottom: 2.5rem; padding: .875rem; display: none; color: #333; background: #fff; border-radius: .25rem; box-shadow: var(--shadow); text-align: center; }
.footer-social:hover .footer-social__qr { display: block; }
.footer-social__qr b { display: block; margin-bottom: .625rem; white-space: nowrap; }
.footer-social__qr img { width: 6.25rem; height: 6.25rem; max-width: none; }
.footer-certification { width: 6.45rem; height: 2.375rem; margin-left: .25rem; display: block; }
.footer-certification img { width: 100%; height: 100%; object-fit: contain; }
.footer-scroll-top { position: fixed; z-index: 24; right: 0; bottom: .25rem; height: 3.5rem; padding: 0; display: flex; color: #efefef; background: none; border: 0; cursor: pointer; }
.footer-scroll-top span, .footer-scroll-top i { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; background: #6c7073; font-size: .75rem; font-style: normal; font-weight: 400; }
.footer-scroll-top span { display: none; }
.footer-scroll-top i { font-size: .8rem; }
.footer-scroll-top:hover span { display: grid; }

/* Carousels */
.hero-carousel, .page-carousel, .explore-carousel { position: relative; overflow: hidden; }
.carousel-track { position: relative; min-height: inherit; }
[data-slide] { display: none; }
[data-slide]:not(.is-active) { display: none !important; }
[data-slide].is-active { display: block; animation: carousel-fade .55s ease both; }
@keyframes carousel-fade { from { opacity: .4; transform: scale(1.01); } to { opacity: 1; transform: none; } }
.hero-carousel { height: min(40vw, 48rem); min-height: 34rem; background: #111; }
.hero-carousel .hero-slide, .hero-carousel .hero-slide a, .hero-carousel .hero-slide picture { min-height: inherit; display: block; }
.hero-carousel .hero-slide img { width: 100%; height: min(40vw, 48rem); min-height: 34rem; display: block; object-fit: cover; }
.hero-carousel .hero-slide__copy, .page-carousel__slide > a > div { position: absolute; z-index: 2; top: 50%; left: max(5vw, calc((100% - 90rem)/2)); color: #fff; transform: translateY(-50%); text-shadow: 0 2px 12px rgb(0 0 0 / 25%); }
.hero-carousel .hero-slide__copy h1, .page-carousel__slide h1 { margin: 0; font-size: clamp(2rem, 4.5vw, 5rem); font-weight: 400; line-height: 1.15; }
.hero-carousel .hero-slide__copy p, .page-carousel__slide p { margin: 1rem 0 0; font-size: clamp(1rem, 1.5vw, 1.4rem); }
.carousel-arrow { position: absolute; z-index: 5; top: 50%; width: 3rem; height: 3rem; color: #fff; background: rgb(0 0 0 / 18%); border: 1px solid rgb(255 255 255 / 55%); border-radius: 50%; font-size: 1.7rem; cursor: pointer; transform: translateY(-50%); transition: background .2s; }
.carousel-arrow:hover { background: var(--brand); }
.carousel-arrow--prev { left: 2rem; }
.carousel-arrow--next { right: 2rem; }
.carousel-dots { position: absolute; z-index: 5; right: 0; bottom: 1.5rem; left: 0; display: flex; justify-content: center; gap: .5rem; }
.carousel-dots button { width: .5rem; height: .5rem; padding: 0; background: rgb(255 255 255 / 55%); border: 0; border-radius: 50%; cursor: pointer; }
.carousel-dots button.is-active { width: 2rem; background: #fff; border-radius: 1rem; }

/* Homepage */
.home-features { padding-block: 10rem; background: #242424; }
.home-explore { padding-block: 7rem; }
.home-feature-grid { display: grid; grid-template-columns: 1.35fr .9fr; grid-template-rows: repeat(2, 18rem); gap: 1.25rem; }
.home-feature-card { position: relative; min-height: 0; overflow: hidden; background: #303030; }
.home-feature-card:nth-child(3) { grid-column: 2; grid-row: 1 / span 2; }
.home-feature-card img { position: absolute; width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.home-feature-card:hover img { transform: scale(1.04); }
.home-feature-card > div { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; padding: 5rem 2rem 2rem; color: #fff; background: linear-gradient(transparent, rgb(0 0 0 / 75%)); }
.home-feature-card h3 { margin: 0; font-size: 1.75rem; font-weight: 500; }
.home-feature-card p { margin: .5rem 0; }
.home-rich-content { padding: 0; }
.home-explore { background: var(--surface); }
.explore-carousel { min-height: 34rem; }
.explore-card { position: relative; }
.explore-card img { width: 100%; height: 34rem; display: block; object-fit: cover; }
.explore-card h3 { position: absolute; bottom: 2rem; left: 2rem; margin: 0; color: #fff; font-size: 1.5rem; }
.home-awards { padding-block: 5rem 8rem; background: #fff; }
.award-carousel { position: relative; overflow: hidden; }
.award-carousel .carousel-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.award-card { min-height: 22rem; padding: 2.5rem; display: block; color: #777; background: #f1f1f1; }
.award-card__header { min-height: 8rem; display: flex; justify-content: space-between; gap: 1rem; }
.award-card__header h3 { margin: 0; color: #222; font-size: 1.75rem; font-weight: 500; }
.award-card__header strong, .award-card__header span, .award-card__header time { display: block; }
.award-card__header strong { color: #444; }
.award-card__badges { display: flex; gap: .4rem; }
.award-card__header img { width: 4rem; height: 4rem; object-fit: contain; }
.award-card p { margin: 1.25rem 0 0; line-height: 1.75; }
.award-controls { margin-top: 2rem; display: flex; align-items: center; justify-content: flex-end; gap: 1rem; }
.award-controls > button { width: 2rem; height: 2rem; background: transparent; border: 0; cursor: pointer; }
.award-controls .carousel-dots { position: static; flex: 1; justify-content: flex-end; }
.award-controls .carousel-dots button { width: 3.5rem; height: 3px; background: #ccc; border-radius: 0; }
.award-controls .carousel-dots button.is-active { background: #444; }
.home-news { padding-block: 7rem; color: #fff; background: #050505; }
.home-news .section-heading h2 { color: #fff; }
.home-news-grid { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: repeat(3, 12rem); gap: 1.25rem; }
.home-news-card { position: relative; min-height: 0; overflow: hidden; background: #202020; }
.home-news-card:first-child { grid-row: 1 / span 3; }
.home-news-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.home-news-card:hover img { transform: scale(1.035); }
.home-news-card h3 { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 4rem 2rem 2rem; color: #fff; background: linear-gradient(transparent, rgb(0 0 0 / 70%)); font-size: 1.25rem; font-weight: 500; }

/* Generic source content */
.page-hero { position: relative; min-height: 28rem; overflow: hidden; color: #fff; background: #222; }
.page-hero img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.page-hero::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / 45%), transparent 70%); content: ""; }
.page-hero__title { position: absolute; z-index: 1; top: 50%; left: max(5vw, calc((100% - 90rem)/2)); transform: translateY(-50%); }
.page-hero h1 { margin: 0; font-size: clamp(2.2rem, 4vw, 4.2rem); font-weight: 400; }
.page-hero--compact { min-height: 22rem; }
.rich-content { width: min(100%, var(--page-width)); margin-inline: auto; }
.source-content { padding: 5rem max(2rem, calc((100% - var(--page-width))/2)); overflow: hidden; }
.rich-content img { height: auto; }
.source-content img, .product-rich-detail img { width: 100%; display: block; }
.source-content section { position: relative; }
.source-content h1, .source-content h2, .source-content h3 { color: var(--ink); line-height: 1.3; }
.source-content h2 { font-size: clamp(1.75rem, 3vw, 3rem); font-weight: 500; }
.source-content table { width: 100%; border-collapse: collapse; }
.source-content td, .source-content th { padding: .8rem; border: 1px solid var(--line); }

/* Product list */
.page--products main { overflow: hidden; background: #f5f5f5; }
.page--products { font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
.content--modular main { overflow: hidden; background: #f5f5f5; }
.content--modular { font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
.page-carousel { height: 21.25vw; min-height: 0; background: #222; }
.page-carousel .carousel-track { height: 100%; }
.page-carousel__slide { position: relative; }
.page-carousel__slide, .page-carousel__slide a, .page-carousel__slide picture { height: 100%; display: block; }
.page-carousel__slide img { width: 100%; height: 100%; object-fit: cover; }
.page-carousel__slide > a > div { left: 20vw; text-shadow: none; }
.page--products .page-carousel__slide h1, .content--modular .page-carousel__slide h1 { font-size: 3rem; font-weight: 500; }
.page-carousel .carousel-arrow { width: 4.5rem; height: 4.5rem; padding: 0; background: transparent; border: 2px dotted rgb(255 255 255 / 85%); font-size: 0; }
.page-carousel .carousel-arrow::after { width: 0; height: 0; display: block; margin: auto; border-top: .5rem solid transparent; border-bottom: .5rem solid transparent; content: ""; }
.page-carousel .carousel-arrow--prev { left: 5.5rem; }
.page-carousel .carousel-arrow--prev::after { border-right: .75rem solid #fff; }
.page-carousel .carousel-arrow--next { right: 5.5rem; }
.page-carousel .carousel-arrow--next::after { border-left: .75rem solid #fff; }
.page-carousel .carousel-dots:has(button:only-child) { display: none; }
.product-category-strip { height: 11.25rem; padding: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #fafafa; border: 0; }
.product-category-strip a { height: 5.375rem; min-width: 0; display: flex; flex: 1 1 15.6875rem; flex-direction: column; align-items: center; justify-content: center; gap: 1.375rem; color: #b2b2b2; border-right: 1px solid #b3b3b3; white-space: nowrap; transition: color .2s; }
.product-category-strip a:last-child { border-right: 0; }
.product-category-strip img { width: 4.0625rem; height: 4.0625rem; object-fit: contain; filter: grayscale(1); opacity: .65; }
.product-category-strip a:hover, .product-category-strip a.is-active { color: var(--brand); }
.product-category-strip a.is-active img { filter: none; opacity: 1; }
.products-layout { width: 100%; max-width: 90rem; padding: 5.5625rem 0 6.5625rem; display: flex; gap: 6.25rem; }
.product-filters { width: 16.25rem; flex: 0 0 16.25rem; }
.product-filters form { position: static; }
.product-filters__header { width: 100%; height: 4rem; padding-bottom: 1.5rem; display: flex; justify-content: space-between; border-bottom: 1px solid #c5c5c5; }
.product-filters__header > span, .filter-reset { padding: 0; color: #333; background: none; border: 0; font-size: 1rem; font-weight: 400; line-height: 1rem; }
.filter-reset { cursor: pointer; }
.filter-reset:hover { color: #e3540b; }
.filter-group { min-width: 0; margin: 0; padding: 1.5rem 0; border: 0; border-bottom: 1px solid #ccc; }
.filter-group:last-child { border-bottom: 0; }
.filter-group__title { width: 100%; margin: 0 0 1.25rem; padding: 0; display: block; color: #666; border: 0; font-size: 1rem; font-weight: 400; line-height: 1rem; }
.filter-group__options { display: grid; grid-template-columns: 45% 45%; gap: 1rem; }
.filter-group label { min-width: 0; margin: 0; display: flex; align-items: center; gap: .375rem; color: #b3b3b3; font-size: .875rem; font-weight: 300; line-height: .875rem; cursor: pointer; }
.filter-group input { position: relative; width: .875rem; height: .875rem; margin: 0; padding: 0; flex: 0 0 .875rem; appearance: none; background: transparent; border: 1px solid #b3b3b3; border-radius: 0; cursor: pointer; }
.filter-group input:checked { background: #e3540b; border-color: #e3540b; }
.filter-group input:checked::after { position: absolute; top: 50%; left: 50%; width: .4375rem; height: .25rem; border-bottom: 1px solid #fff; border-left: 1px solid #fff; content: ""; transform: translate(-50%, -65%) rotate(-45deg); }
.filter-group label:hover { color: #e3540b; }
.filter-group label:hover input { border-color: #e3540b; }
.product-results { width: calc(60vw + 4.5rem); flex: 0 0 calc(60vw + 4.5rem); }
.product-category-page--modular .product-results { width: 100%; flex: 1 1 auto; }
.product-results__header { height: 2.125rem; margin-bottom: 2.1875rem; display: flex; align-items: flex-start; justify-content: space-between; color: #333; }
.product-results__header p { margin: 0; font-size: 1rem; font-weight: 400; line-height: 1rem; }
.product-sort { position: relative; z-index: 4; width: 11.25rem; flex: 0 0 11.25rem; color: #4d4d4d; background: #fafafa; border-radius: .125rem; }
.product-sort__current { width: 100%; height: 2.125rem; padding: .625rem 1.0625rem; display: flex; align-items: center; color: #4d4d4d; background: transparent; border: 0; font-size: .75rem; font-weight: 400; line-height: .875rem; white-space: nowrap; cursor: pointer; }
.product-sort__current span { margin-left: .25rem; }
.product-sort__current i { width: .4rem; height: .4rem; margin-left: auto; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-.125rem) rotate(45deg); }
.product-sort__options { position: absolute; top: 100%; right: 0; left: 0; padding: 0 .375rem .8125rem; display: none; flex-direction: column; background: #fafafa; }
.product-sort:hover .product-sort__options, .product-sort:focus-within .product-sort__options { display: flex; }
.product-sort__options button { padding: .25rem .75rem; color: #6e6e6e; background: transparent; border: 0; font-size: .75rem; font-weight: 400; line-height: .875rem; text-align: left; cursor: pointer; }
.product-sort__options button:hover, .product-sort__options button:focus-visible { background: #f2f2f2; outline: 0; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.product-card { width: 15vw; min-width: 15vw; max-width: 15vw; padding: 2vw 2vw 1.5vw; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; background: #fafafa; border-radius: .125rem; text-align: center; cursor: pointer; transition: box-shadow 1s; }
.product-card__image { width: 10vw; height: 15vw; margin-bottom: 1vw; display: block; flex: 0 0 auto; overflow: hidden; background: transparent; }
.product-card__image img { width: 100%; height: 100%; display: block; object-fit: fill; transition: transform 1s; }
.product-card:hover { box-shadow: 0 .125rem 1.25rem rgb(0 0 0 / 15%); }
.product-card:hover .product-card__image img { transform: scale(1.15); }
.product-card h2 { width: 11.25rem; margin: 0; overflow: hidden; color: #3c3b3b; font-size: .875rem; font-weight: 400; line-height: 1.25rem; }
.product-card:hover h2 { color: #e3540b; }
.product-swatches { height: 1.125rem; margin-bottom: .625rem; display: flex; justify-content: center; gap: .3125rem; }
.product-swatches a { width: 1.125rem; height: 1.125rem; display: block; background: var(--swatch); border: 1px solid #dcdcdc; border-radius: 0; box-shadow: none; }
.product-swatches a:hover { border-color: #e3540b; box-shadow: none; }
.product-results .pagination { margin: 1.875rem 0; padding: 1.25rem; }
.pagination { margin-top: 4rem; display: flex; justify-content: center; gap: .5rem; }
.pagination a, .pagination span { width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border: 1px solid var(--line); }
.pagination .is-current { color: #fff; background: var(--brand); border-color: var(--brand); }

/* Product detail */
.product-detail-nav { position: sticky; z-index: 50; top: var(--header-height); color: #fff; background: rgb(20 20 20 / 94%); backdrop-filter: blur(10px); }
.product-detail-nav .section-shell { min-height: 3.5rem; display: flex; align-items: center; justify-content: space-between; }
.product-detail-nav div div { display: flex; gap: 2rem; }
.product-detail-nav a { color: #bbb; font-size: .8125rem; }
.product-detail-nav a:hover { color: #fff; }
.product-overview { padding-block: 5rem 7rem; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr); gap: 6rem; align-items: center; }
.product-gallery { min-width: 0; }
.product-gallery__main { aspect-ratio: 1/1; background: #f7f7f7; }
.product-gallery__main img { width: 100%; height: 100%; object-fit: contain; }
.product-gallery__thumbs { margin-top: 1rem; display: flex; gap: .75rem; overflow-x: auto; }
.product-gallery__thumbs button { width: 5rem; height: 5rem; padding: .25rem; flex: 0 0 auto; background: #fff; border: 1px solid var(--line); cursor: pointer; }
.product-gallery__thumbs button:hover, .product-gallery__thumbs button.is-active { border-color: var(--brand); }
.product-gallery__thumbs img { width: 100%; height: 100%; object-fit: contain; }
.product-summary__category { margin: 0 0 .5rem; color: var(--brand); }
.product-summary h1 { margin: 0; color: #272727; font-size: clamp(2.2rem, 4vw, 4.5rem); font-weight: 400; line-height: 1.1; }
.product-summary__model { color: #999; }
.variant-picker { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.variant-picker > span { color: #333; font-weight: 600; }
.variant-picker > div { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .75rem; }
.variant-picker a { padding: .55rem .9rem; display: flex; align-items: center; gap: .5rem; border: 1px solid var(--line); }
.variant-picker a.is-active { color: var(--brand); border-color: var(--brand); }
.variant-picker i { width: 1rem; height: 1rem; background: var(--swatch); border: 1px solid #ccc; border-radius: 50%; }
.product-rich-detail { width: min(calc(100% - 4rem), var(--page-width)); margin-inline: auto; background: #fff; font-family: inherit; line-height: 0; }
.product-rich-detail * { font-family: inherit !important; }
.product-rich-detail p { margin: 0; line-height: 1.7; }
.product-specifications, .product-downloads { padding-block: 6rem; }
.product-specifications h2, .product-downloads h2 { margin: 0 0 2.5rem; color: #333; font-size: 2rem; font-weight: 500; }
.product-specifications table { width: 100%; border-collapse: collapse; }
.product-specifications th, .product-specifications td { padding: .9rem 1.2rem; border: 1px solid var(--line); text-align: left; }
.product-specifications th { width: 30%; color: #555; background: #f7f7f7; font-weight: 500; }
.product-downloads { background: #fafafa; }
.product-downloads > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.product-downloads a { padding: 1.25rem; display: flex; justify-content: space-between; color: #555; background: #fff; border: 1px solid var(--line); }
.product-downloads a:hover { color: var(--brand); border-color: var(--brand); }

/* News and video */
.page--news-index main { background: #f6f6f6; }
.news-browser, .video-browser { padding-block: 5rem 7rem; }
.news-browser { width: min(calc(100% - 4rem), 72rem); }
.news-filters { margin-bottom: 2.5rem; display: flex; justify-content: flex-end; gap: 1rem; }
.news-filters select { min-width: 10rem; height: 2.8rem; padding: 0 1rem; color: #666; background: #fff; border: 1px solid var(--line); }
.news-years { margin-bottom: 2.5rem; display: flex; border: 1px solid var(--line); }
.news-years > button { width: 4rem; flex: 0 0 4rem; color: #aaa; background: #fff; border: 0; border-right: 1px solid var(--line); font-size: 1.6rem; cursor: pointer; }
.news-years > button:last-child { border-right: 0; border-left: 1px solid var(--line); }
.news-years__track { min-width: 0; display: flex; flex: 1; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; }
.news-years__track::-webkit-scrollbar { display: none; }
.news-years a { min-width: 0; min-height: 4rem; display: grid; flex: 0 0 25%; place-items: center; color: #aaa; border-right: 1px solid var(--line); }
.news-years a:last-child { border-right: 0; }
.news-years a:hover, .news-years a.is-active { color: var(--brand); background: #fff; }
.news-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.news-row { min-height: 4.6rem; display: grid; grid-template-columns: 16rem minmax(0, 1fr) 8rem; align-items: center; gap: 2rem; border-bottom: 1px solid var(--line); }
.news-row time { color: #aaa; }
.news-row h2 { margin: 0; color: #777; font-size: 1rem; font-weight: 400; line-height: 1.4; }
.news-row__category { color: #aaa; text-align: right; }
.news-row__category span { margin-left: .4rem; color: var(--brand); font-size: 1.25rem; }
.news-card { padding: 2.5rem 0; display: grid; grid-template-columns: minmax(12rem, 22rem) 1fr; gap: 3rem; border-bottom: 1px solid var(--line); }
.news-card__image { aspect-ratio: 16/9; overflow: hidden; background: #eee; }
.news-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.news-card:hover img { transform: scale(1.04); }
.news-card time, .video-card time { color: #aaa; font-size: .75rem; }
.news-card h2 { margin: .5rem 0; color: #333; font-size: 1.5rem; font-weight: 500; line-height: 1.4; }
.news-card p { color: #888; }
.article-detail { max-width: 68rem; padding-block: 6rem; }
.article-detail header { margin-bottom: 4rem; text-align: center; }
.article-detail header p, .article-detail header time { color: #999; }
.article-detail h1 { margin: 1rem 0; color: #222; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; line-height: 1.35; }
.article-body { font-size: 1rem; line-height: 2; }
.article-body img { margin: 2rem auto; display: block; }
.related-content { padding-block: 4rem 7rem; border-top: 1px solid var(--line); }
.related-content > h2 { margin-bottom: 2rem; color: #333; font-size: 1.75rem; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.related-grid img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.related-grid h3 { margin: .8rem 0; color: #333; font-size: 1rem; }
.related-grid time { color: #aaa; font-size: .75rem; }
.pill-tabs { margin-bottom: 3rem; display: flex; justify-content: center; gap: 2rem; }
.pill-tabs a { padding: .5rem 1.4rem; border: 1px solid var(--line); border-radius: 2rem; }
.pill-tabs a.is-active, .pill-tabs a:hover { color: #fff; background: var(--brand); border-color: var(--brand); }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem 1.5rem; }
.video-card button { position: relative; width: 100%; padding: 0; aspect-ratio: 16/9; overflow: hidden; background: #111; border: 0; cursor: pointer; }
.video-card button img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.video-card button > span { position: absolute; top: 50%; left: 50%; width: 3.5rem; height: 3.5rem; display: grid; place-items: center; color: #fff; background: rgb(255 81 0 / 90%); border-radius: 50%; transform: translate(-50%, -50%); }
.video-card:hover img { transform: scale(1.04); }
.video-card time { margin-top: 1rem; display: block; }
.video-card h2 { margin: .4rem 0; color: #333; font-size: 1rem; font-weight: 500; line-height: 1.5; }
.video-player { width: 100%; background: #000; }
.media-dialog { position: fixed; z-index: 500; inset: 0; padding: 5vw; display: grid; place-items: center; background: rgb(0 0 0 / 88%); }
.media-dialog[hidden] { display: none; }
.media-dialog__body { width: min(100%, 75rem); }
.media-dialog video { width: 100%; max-height: 80vh; background: #000; }
.media-dialog__close { position: absolute; top: 1.5rem; right: 1.5rem; width: 3rem; height: 3rem; color: #fff; background: none; border: 1px solid #777; border-radius: 50%; font-size: 2rem; cursor: pointer; }

/* Software, FAQ, contact */
.software-list { padding-block: 5rem 7rem; display: grid; gap: 2rem; }
.software-card { display: grid; grid-template-columns: 18rem 1fr; background: #f7f7f7; }
.software-card__head { min-height: 18rem; padding: 2rem; display: flex; flex-direction: column; justify-content: flex-end; color: #fff; background: linear-gradient(140deg, #252525, #555); }
.software-card__head span { color: var(--brand); }
.software-card__head h2 { margin: .5rem 0; font-size: 1.8rem; font-weight: 500; }
.software-card__body { padding: 2.5rem 3rem; }
.software-card dl { display: flex; gap: 4rem; }
.software-card dl div { display: flex; gap: .5rem; }
.software-card dt { color: #999; }
.software-card dd { margin: 0; color: #333; }
.software-products ul { columns: 3; padding-left: 1.2rem; }
.faq-layout { padding-block: 6rem 8rem; display: grid; grid-template-columns: 16rem 1fr; gap: 5rem; }
.faq-layout aside h1 { margin-top: 0; color: #222; font-size: 2.5rem; font-weight: 500; }
.faq-layout aside nav { display: grid; }
.faq-layout aside a { padding: .7rem 0; color: #888; }
.faq-layout aside a.is-active, .faq-layout aside a:hover { color: var(--brand); }
.accordion { border-top: 1px solid var(--line); }
.accordion-item { border-bottom: 1px solid var(--line); }
.accordion-item > button { width: 100%; padding: 1.5rem 0; display: flex; align-items: center; gap: 1rem; color: #333; background: none; border: 0; font-size: 1rem; text-align: left; cursor: pointer; }
.accordion-mark { width: 1.5rem; color: var(--brand); font-size: 1.5rem; text-align: center; }
.accordion-panel { padding: 0 2.5rem 2rem; color: #777; line-height: 1.9; }
.contact-layout { padding-block: 7rem 9rem; display: grid; grid-template-columns: 1fr 1.2fr; gap: 8rem; }
.contact-copy h1 { margin: 0 0 2rem; color: #222; font-size: 3rem; font-weight: 500; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.contact-form > div { display: grid; gap: .4rem; }
.contact-form > div:has(textarea), .contact-form .helptext, .contact-form .errorlist { grid-column: 1/-1; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: .8rem 1rem; color: #333; background: #fafafa; border: 1px solid var(--line); outline: 0; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--brand); }
.contact-form button { grid-column: 1/-1; }
.success-panel { min-height: 60vh; padding-block: 10rem; text-align: center; }
.page--contact-success .success-panel .primary-button { justify-content: center; text-align: center; }

.reveal { opacity: 1; transform: none; transition: opacity .7s, transform .7s; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1715px) {
  .products-layout { max-width: 87.5rem; }
}

@media (max-width: 1450px) {
  .products-layout { max-width: 68.75rem; }
}

@media (max-width: 1280px) {
  .products-layout { max-width: 62.5rem; gap: 3.125rem; }
  .product-results { width: calc(60vw + 1.875rem); flex-basis: calc(60vw + 1.875rem); }
  .product-grid { gap: .625rem; }
  .nav-mega__flat { gap: 3.75rem; }
  .nav-mega__item { width: 12%; min-width: 0; gap: .3125rem; font-size: .75rem; white-space: nowrap; }
  .nav-mega__item img { width: 3.75rem; height: 3.75rem; }
  .nav-mega__groups { gap: 1.875rem; }
  .nav-mega__group { min-width: 11.25rem; }
  .nav-mega__group-item { padding: .5rem 3.125rem; font-size: .75rem; }
  .nav-mega__group-item img { left: .25rem; width: 2.5rem; height: 2.5rem; }
  .site-footer__main { padding-top: 5.5rem; }
}

@media (max-width: 1024px) {
  .products-layout { max-width: none; padding: 3.125rem .625rem; gap: 3.125rem; }
  .product-results { width: 100%; flex: 1 1 auto; }
  .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .625rem; }
  .product-card { width: auto; min-width: 0; }
}

@media (max-width: 991px) {
  .site-header__inner { padding: 0 2.8125rem; }
  .site-logo { position: absolute; top: 50%; left: 50%; max-width: 50%; transform: translate(-50%, -50%); }
  .site-logo img { width: auto; height: calc(var(--header-height) * .6); max-width: 100%; max-height: 2.5rem; }
  .mobile-menu-toggle { width: 1.875rem; height: 100%; padding: 0; display: flex; flex: 1 1 0; flex-direction: column; align-items: flex-start; justify-content: center; gap: .25rem; background: none; border: 0; }
  .mobile-menu-toggle > span:not(.sr-only) { width: 1.875rem; height: 1px; display: block; background: #e6e6e6; transform-origin: center; transition: transform .25s ease; }
  .mobile-menu-toggle[aria-expanded="true"] > span:nth-child(1) { transform: translate(-.15625rem, .3125rem) rotate(45deg); }
  .mobile-menu-toggle[aria-expanded="true"] > span:nth-child(2) { opacity: 0; }
  .mobile-menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translate(-.15625rem, -.3125rem) rotate(-45deg); }
  .primary-navigation { position: fixed; top: var(--header-height); right: 0; bottom: 0; left: 0; height: auto; visibility: hidden; overflow-x: hidden; overflow-y: auto; display: block; background: #f2f2f2; opacity: 0; transform: translateX(-100%); transition: transform .3s ease, opacity .3s ease, visibility .3s ease; }
  .primary-navigation.is-open { visibility: visible; opacity: 1; transform: none; }
  .primary-navigation__list { height: auto; padding: 3rem 0 0; display: block; }
  .primary-navigation__item { height: auto; margin: 0; display: block; }
  .primary-navigation__link { width: 100%; min-height: 5rem; padding: 0 3rem; justify-content: flex-start; color: #707070; font-size: 1.5rem; font-weight: 500; line-height: 5rem; text-align: left; }
  .primary-navigation__link:hover { color: #e3540b; background: #ebebeb; }
  .primary-navigation__trigger i { display: none; }
  .nav-mega { position: static; height: auto; min-height: 0; display: none; visibility: visible; color: #777; background: transparent; opacity: 1; pointer-events: auto; transition: none; }
  .primary-navigation__item.is-open > .nav-mega { display: block; }
  .primary-navigation__item--product > .nav-mega, .primary-navigation__item--modular > .nav-mega { display: none !important; }
  .nav-mega__flat { width: 100%; height: auto; display: block; }
  .nav-mega__item { width: 100%; min-width: 0; min-height: 3rem; padding: 0 4.625rem; display: flex; flex-direction: row; justify-content: flex-start; color: #999; font-size: 1.25rem; line-height: 3rem; }
  .nav-mega__item img { display: none; }
  .nav-mega__groups { width: 100%; min-height: 0; padding: 0; display: block; }
  .nav-mega__group { width: 100%; min-width: 0; display: block; }
  .nav-mega__group > button { min-height: 3.75rem; margin: 0; padding: 0 3rem; display: flex; align-items: center; justify-content: flex-start; color: #707070; border: 0; font-size: 1.25rem; line-height: 3.75rem; text-align: left; }
  .nav-mega__group > button b { display: none; }
  .nav-mega__group > div { display: none; }
  .nav-mega__group.is-open > div { display: block; }
  .nav-mega__group-item { min-height: 3rem; padding: 0 4.625rem; display: flex; color: #999; font-size: 1.25rem; line-height: 3rem; text-align: left; }
  .nav-mega__group-item img { display: none; }
  .mobile-nav-extras { margin-top: 1rem; padding: 0 3rem 3rem; display: grid; color: #a0a0a0; font-size: 1.125rem; }
  .mobile-nav-extras > a { min-height: 3.5rem; display: flex; align-items: center; }
  .mobile-nav-extras select { width: 3.75rem; height: 2rem; padding: 0 .375rem; color: #fff; background: #2c2c2c; border: 1px solid #707070; border-radius: .125rem; font-size: .75rem; }
  .site-header__tools { flex: 1 1 0; justify-content: flex-end; }
  .site-header__tools .header-language, .site-header__tools .header-more-links { display: none; }
  .site-header__tools button { width: 1.875rem; color: #f7f7f7; }
  body.is-menu-open .site-header__tools { visibility: hidden; }
  .header-search { position: fixed; top: var(--header-height); padding: 1rem; }
}

.header-search-toggle { position: relative; }
.header-search-toggle::before { width: .625rem; height: .625rem; border: 1px solid currentColor; border-radius: 50%; content: ""; }
.header-search-toggle::after { position: absolute; width: .35rem; border-top: 1px solid currentColor; content: ""; transform: translate(.35rem, .35rem) rotate(45deg); }
.header-search-toggle > i { display: none; }

@media (max-width: 520px) {
  :root { --header-height: 60px; }
  .site-header__inner { padding: 0 .625rem; }
  .site-logo img { max-height: 2rem; }
}

@media (max-width: 450px) {
  :root { --header-height: 40px; }
  .mobile-menu-toggle { width: 1.625rem; padding-left: .375rem; gap: .25rem; }
  .mobile-menu-toggle > span:not(.sr-only) { width: 1.125rem; }
  .mobile-menu-toggle[aria-expanded="true"] > span:not(.sr-only) { width: 2.125rem; }
  .site-logo img { height: 1.89375rem; max-height: none; }
  .is-overseas-site .site-logo img { width: 60vw; height: auto; max-height: none; }
  .primary-navigation__list { padding-top: .625rem; }
  .primary-navigation__link { min-height: 2.5rem; padding: 0 1.25rem; font-size: 1.125rem; line-height: 2.5rem; }
  .nav-mega__item { min-height: 2.25rem; padding: 0 2.5rem; font-size: 1rem; line-height: 2.25rem; }
  .nav-mega__group > button { min-height: 2.25rem; padding: 0 1.25rem; font-size: 1rem; line-height: 2.25rem; }
  .nav-mega__group-item { min-height: 2.25rem; padding: 0 2.5rem; font-size: 1rem; line-height: 2.25rem; }
  .mobile-nav-extras { margin-top: 1rem; padding: .375rem 1.25rem 3rem; background: linear-gradient(rgb(0 0 0 / 8%), rgb(0 0 0 / 8%)) 1.25rem 0 / calc(100% - 2.5rem) 1px no-repeat; font-size: .875rem; }
  .mobile-nav-extras > a { min-height: 2.25rem; }
  .mobile-nav-extras select { width: 3.125rem; }
  .site-header__tools button, .header-search-toggle i { font-size: .9375rem; }
}

@media (min-width: 992px) {
  .is-overseas-site .site-header__inner { padding-right: 3vw; padding-left: 3vw; }
  .is-overseas-site .site-logo img { width: clamp(12rem, 18.75vw, 12.75rem); height: auto; }
  .is-overseas-site .primary-navigation__item { margin-right: clamp(.75rem, 1.2vw, 1.1rem); margin-left: clamp(.75rem, 1.2vw, 1.1rem); }
  .is-overseas-site .primary-navigation__link { font-size: 1rem; }
  .is-overseas-site .header-more-links { width: clamp(7.25rem, calc(4.25rem + 4.75vw), 8.5rem); }
  .is-overseas-site .nav-mega { background: #f7f7f7; }
  .is-overseas-site .nav-mega__flat .nav-mega__item {
    height: 100%;
    font-size: clamp(15.048px, 1.1028vw, 16px);
  }
}

@media (min-width: 992px) and (max-width: 1280px) {
  .is-overseas-site .nav-mega__flat .nav-mega__item { font-size: 15.048px; }
}

.is-overseas-site .cookie-consent-banner {
  position: fixed;
  z-index: 10000;
  right: 0;
  bottom: 0;
  left: 0;
  color: #fff;
  background: #202932;
  border-top: 1px solid #e3540b;
}
.is-overseas-site .cookie-consent-banner[hidden] { display: none !important; }
.is-overseas-site .cookie-consent-content {
  box-sizing: content-box;
  width: min(calc(100% - 2.5rem), 75rem);
  min-height: 2.375rem;
  margin: 0 auto;
  padding: 1.25rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.is-overseas-site .cookie-consent-content p {
  margin: 0;
  color: #f0f0f0;
  font-size: .8125rem;
  line-height: 1.25rem;
}
.is-overseas-site .cookie-consent-buttons { display: flex; gap: .9375rem; }
.is-overseas-site .cookie-consent-buttons button {
  width: 6.25rem;
  height: 2.375rem;
  padding: 0;
  color: #fff;
  background: transparent;
  border: 1px solid #687078;
  border-radius: .25rem;
  font: inherit;
  font-size: .8125rem;
  cursor: pointer;
}
.is-overseas-site .cookie-consent-buttons .cookie-consent-accept {
  background: #ef5807;
  border-color: #ef5807;
}
.is-overseas-site .cookie-consent-buttons button:hover { filter: brightness(1.08); }

@media (max-width: 767px) {
  .is-overseas-site .cookie-consent-content {
    box-sizing: border-box;
    width: 100%;
    min-height: 8.5rem;
    padding: .8125rem .75rem;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: .8125rem;
  }
  .is-overseas-site .cookie-consent-content p { margin-left: .875rem; }
  .is-overseas-site .cookie-consent-buttons { flex-direction: column; gap: .875rem; }
  .is-overseas-site .cookie-consent-buttons button { width: 12.5rem; height: 2rem; }
  body { font-size: 13px; }
  .section-shell { width: min(calc(100% - 2rem), var(--page-width)); }
  .hero-carousel { height: 26rem; min-height: 26rem; }
  .hero-carousel .hero-slide img { height: 26rem; min-height: 26rem; }
  .hero-carousel .hero-slide__copy, .page-carousel__slide > a > div { right: 1.5rem; left: 1.5rem; text-align: center; }
  .carousel-arrow { width: 2.5rem; height: 2.5rem; }
  .carousel-arrow--prev { left: .75rem; }
  .carousel-arrow--next { right: .75rem; }
  .home-features, .home-explore { padding-block: 4rem; }
  .home-feature-grid { grid-template-columns: 1fr; }
  .home-feature-grid { grid-template-rows: repeat(3, 9rem); }
  .home-feature-card { min-height: 0; }
  .home-feature-card:nth-child(3) { grid-column: auto; grid-row: auto; }
  .award-carousel .carousel-track, .home-news-grid { grid-template-columns: 1fr; }
  .award-card { min-height: 0; padding: 1.5rem; }
  .home-awards { padding-block: 3rem; }
  .home-awards .section-heading { margin-bottom: 1.5rem; }
  .award-card p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
  .home-news-grid { grid-template-rows: repeat(4, 9rem); }
  .home-news-card, .home-news-card:first-child { min-height: 0; grid-row: auto; }
  .home-news-card h3 { padding: 2rem 1rem 1rem; font-size: .9rem; }
  .home-explore { display: none; }
  .site-footer__main { width: 100%; padding: 3.75rem 0 0; display: block; }
  .footer-back-top { min-height: 4.5rem; margin: 0 .8rem; display: grid; place-items: center; color: #888; border-bottom: 1px solid #4c4d4d; font-size: .75rem; }
  .footer-back-top span { margin-left: .25rem; }
  .footer-columns { margin: 0; display: block; }
  .footer-column { margin: 0 .8rem; border-bottom: 1px solid #4c4d4d; }
  .footer-column__toggle, .footer-column--service .footer-column__toggle { min-height: 3.8rem; margin: 0; padding: 0; align-items: center; border: 0; pointer-events: auto; cursor: pointer; font-size: .875rem; }
  .footer-column__toggle b { display: block; font-weight: 400; }
  .footer-column__body { display: none; padding: 1.5rem 1rem; background: #f2f2f2; }
  .footer-column.is-open .footer-column__body { display: block; }
  .footer-column li { margin-bottom: .85rem; }
  .footer-column a { color: #777; font-size: .8rem; }
  .footer-service-groups { display: block; }
  .footer-service-groups section + section { margin-top: 1.25rem; }
  .footer-service-groups h3 { color: #555; }
  .footer-subscribe { width: auto; margin: 0 .8rem; padding: 2.7rem 0; display: flex; align-items: flex-start; }
  .footer-subscribe strong { margin-bottom: 1.5rem; font-size: .875rem; }
  .footer-subscribe > span { max-width: 6rem; margin-bottom: 1rem; line-height: 1.5; }
  .footer-subscribe form { width: 11rem; margin-bottom: .5rem; }
  .footer-subscribe label { width: 7rem; }
  .footer-subscribe select { width: 100%; }
  .footer-more { margin: 1.5rem 0 0; }
  .site-footer__bottom { width: auto; margin: 0 .8rem; padding: 0 0 2.5rem; display: flex; align-items: flex-start; flex-direction: column; gap: 1.5rem; }
  .site-footer__legal { width: 100%; color: #aaa; font-size: .65rem; line-height: 1.7; }
  .footer-socials { width: 100%; justify-content: flex-start; }
  .footer-social__qr { display: none !important; }
  .footer-scroll-top { display: none; }
  .page-hero, .page-hero--compact { min-height: 16rem; }
  .source-content { padding: 3rem 1rem; }
  .product-detail-nav { overflow-x: auto; }
  .product-detail-nav .section-shell { width: max-content; min-width: 100%; gap: 2rem; }
  .product-overview { padding-block: 2rem 4rem; grid-template-columns: 1fr; gap: 2rem; }
  .product-summary h1 { font-size: 2.4rem; }
  .product-rich-detail { width: min(calc(100% - 2rem), var(--page-width)); }
  .product-specifications, .product-downloads { padding-block: 4rem; }
  .product-downloads > div { grid-template-columns: 1fr; }
  .news-browser, .video-browser { padding-block: 3rem 5rem; }
  .news-filters { justify-content: stretch; }
  .news-filters select { min-width: 0; width: 100%; }
  .news-years { margin-bottom: 1rem; }
  .news-years > button { width: 2.75rem; flex-basis: 2.75rem; }
  .news-years a { min-width: 0; min-height: 2.75rem; flex-basis: 50%; }
  .news-row { min-height: 10.5rem; padding: 1rem 0; display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; align-content: start; align-items: start; }
  .news-row time { grid-column: 1/-1; font-size: .75rem; }
  .news-row h2 { font-size: .9rem; }
  .news-row__category { font-size: .75rem; }
  .article-detail { padding-block: 3rem 5rem; }
  .article-detail header { margin-bottom: 2rem; }
  .related-grid, .video-grid { grid-template-columns: 1fr; }
  .pill-tabs { justify-content: flex-start; gap: .75rem; overflow-x: auto; }
  .software-card { grid-template-columns: 1fr; }
  .software-card__head { min-height: 10rem; }
  .software-card__body { padding: 1.5rem; }
  .software-card dl { display: grid; gap: .4rem; }
  .software-products ul { columns: 1; }
  .faq-layout { padding-block: 3rem 5rem; grid-template-columns: 1fr; gap: 2rem; }
  .faq-layout aside nav { grid-auto-flow: column; justify-content: start; gap: 1rem; overflow-x: auto; }
  .contact-layout { padding-block: 4rem 6rem; grid-template-columns: 1fr; gap: 3rem; }
  .contact-form { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
  .page--products main { background: #fff; }
  .page--products .page-carousel { height: calc(21.25vw + .625rem); aspect-ratio: auto; }
  .content--modular main { padding-top: 1.25rem; }
  .page-carousel .carousel-arrow { display: none; }
  .products-layout { width: 100%; max-width: none; padding: 1.875rem 3.75rem; flex-direction: column; gap: 3.125rem; }
  .product-filters { width: auto; flex: none; }
  .product-filters__header { height: 1rem; margin-bottom: .625rem; padding: 0; border: 0; }
  .product-filters__header > span, .filter-reset { font-size: 1.375rem; font-weight: 500; line-height: 1rem; }
  .product-filters__groups { display: grid; grid-template-columns: 1fr; }
  .filter-group { padding: 1.5rem 0; border: 0; }
  .filter-group label { color: #707070; font-size: 1.125rem; line-height: 1.125rem; }
  .filter-group input { width: 1.125rem; height: 1.125rem; flex-basis: 1.125rem; }
  .product-grid { grid-template-columns: repeat(3, 13.75rem); gap: 1.875rem 3.125rem; }
  .product-card { width: 13.75rem; min-width: 13.75rem; max-width: 17.875rem; padding: .9375rem 1.25rem; }
  .product-card__image { width: 10vw; height: 15.0225rem; margin-bottom: 1vw; display: flex; justify-content: center; overflow: visible; }
  .product-card__image img { width: 9.375rem; max-width: none; }
}

@media (max-width: 520px) {
  .page--products .page-carousel { height: calc(21.25vw + .0625rem); }
  .page-carousel__slide > a > div { right: auto; left: 3.75rem; margin-top: 1.2rem; text-align: left; }
  .page--products .page-carousel__slide h1, .content--modular .page-carousel__slide h1 { font-size: 1rem; font-weight: 400; }
  .product-category-strip { height: 7.6875rem; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .product-category-strip::-webkit-scrollbar { display: none; }
  .product-category-strip a { height: 4.5rem; flex: 0 0 50%; gap: .625rem; border-right: 1px solid #b3b3b3; font-size: .875rem; }
  .product-category-strip img { width: 2.5rem; height: 2.5rem; }
  .products-layout { padding: .625rem; }
  .product-filters__header > span, .filter-reset { font-size: 1.125rem; }
  .product-filters__groups { grid-template-columns: 1fr; }
  .filter-group { padding: .625rem 0; }
  .filter-group__title { font-size: 1.125rem; }
  .filter-group__options { gap: .625rem; }
  .filter-group label { font-size: .75rem; line-height: .9375rem; }
  .filter-group input { width: .9375rem; height: .9375rem; flex-basis: .9375rem; }
  .product-grid { display: flex; flex-wrap: wrap; gap: 1.25rem; justify-content: flex-start; }
  .product-card { width: calc(50% - .625rem); min-width: 0; max-width: none; padding: .625rem; flex: 0 0 calc(50% - .625rem); }
  .product-card__image { width: 6.25rem; height: 15.0225rem; margin-bottom: 1vw; }
  .product-card h2 { width: 7.5rem; font-size: .75rem; line-height: 1.25rem; }
  .site-footer__main { padding-top: 3.75rem; }
  .footer-back-top { min-height: 3.75rem; margin: 0 1.25rem; color: #e5e5e5; font-size: .75rem; }
  .footer-column { margin: 0 1.25rem; }
  .footer-column__toggle, .footer-column--service .footer-column__toggle { min-height: 3.75rem; font-size: .75rem; line-height: 3.75rem; }
  .footer-column__body { padding: .9375rem 1.875rem; }
  .footer-column li { margin: 0 0 .5rem; }
  .footer-column a { margin: 0; font-size: .75rem; line-height: .875rem; }
  .footer-service-groups section + section { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid rgb(0 0 0 / 8%); }
  .footer-service-groups h3 { margin-bottom: .5rem; font-size: .8125rem; line-height: 1rem; }
  .footer-subscribe { width: auto; max-width: none; margin: 0 1.25rem; padding: 2.7rem 0; }
  .footer-subscribe strong, .footer-subscribe > span { font-size: .75rem; }
  .footer-subscribe form { width: 100%; }
  .footer-subscribe label { width: 100%; }
  .site-footer__bottom { width: auto; margin: 0 1.25rem; padding: 0 0 3.625rem; }
}

@media (max-width: 400px) {
  .products-layout { padding: 1.5625rem .625rem; }
  .product-grid { gap: .625rem; }
  .product-card { width: calc(50% - .3125rem); flex-basis: calc(50% - .3125rem); }
}
