@charset "UTF-8";

/* Bundled webfonts keep typography consistent across desktop and mobile. */
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url("./assets/fonts/InterVariable.woff2?v=4.1") format("woff2");
}

@font-face {
  font-family: Pretendard;
  font-style: normal;
  font-weight: 45 920;
  font-display: block;
  src: url("./assets/fonts/PretendardVariable.woff2?v=1.3.9") format("woff2");
}

@property --mobile-menu-progress {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}

:root {
  color-scheme: light;
  --accent: #0052a4;
  --ink: #1e1e1e;
  --icon-link-size: 18px;
  /* Corner radii follow component roles; full shapes and section curves stay distinct. */
  --radius-control: 4px;
  --radius-small: 8px;
  --radius-card: 12px;
  --radius-media: 16px;
  --radius-feature: 24px;
  --radius-pill: 999px;
  /* Fluid type keeps the same scale across mobile and desktop layouts. */
  --type-home-heading: clamp(1.5rem, calc(1.1rem + 1.8vw), 3.25rem);
  --type-home-product-heading: clamp(1.25rem, calc(.825rem + 1.65vw), 2.75rem);
  --type-home-about-copy: clamp(.75rem, calc(.75rem + .525vw), 1.3125rem);
  --type-home-copy: clamp(.75rem, calc(.65rem + .5vw), 1.1875rem);
  --type-home-card-heading: clamp(1rem, calc(.575rem + 1.8vw), 2.375rem);
  --type-home-card-copy: clamp(.6875rem, calc(.5rem + .8vw), 1.3125rem);
  --type-body-copy: clamp(.9375rem, calc(.9rem + .12vw), 1rem);
  --type-page-lead: clamp(.9375rem, calc(.89rem + .2vw), 1.0625rem);
  --muted: #737b80;
  --paper: #fff;
  --gutter: clamp(22px, 4.2vw, 80px);
  /* Three successive 5% reductions preserve logo and navigation sizes. */
  --site-header-content-height: calc(clamp(72px, calc(97.33px - 1.11vw), 84px) * .857375);
  /* The header paints the top safe area; shared offsets include that same area. */
  --site-header-height: calc(var(--site-header-content-height) + env(safe-area-inset-top, 0px));
  --site-header-center-offset: calc(var(--site-header-height) * .5);
  --header-active-surface: rgba(255, 255, 255, .86);
  --header-active-blur: 8px;
  --header-active-shadow: 0 4px 14px rgba(18, 35, 50, .06);
  /* Motion source of truth: JS reads these same numeric values in milliseconds.
     Scale playback time only; entrance delays, media dwell and native scroll stay unchanged. */
  --motion-time-scale: 1.2;
  --motion-menu-open-ms: 320;
  --motion-menu-close-ms: 280;
  --motion-image-ms: 800;
  --motion-image-outside-ms: 1000;
  --motion-dialog-open-ms: 220;
  --motion-dialog-close-ms: 160;
  --motion-feedback-ms: 180;
  --motion-content-ms: 320;
  --motion-switch-ms: 280;
  --motion-scroll-damping: 10;
  --motion-touch-swipe-ratio: .12;
  --motion-touch-scroll-damping: 8.5;
  --motion-text-ms: 980;
  --motion-text-move-ms: 1040;
  --motion-hero-text-ms: 1300;
  --motion-hero-move-ms: 1380;
  --motion-section-text-ms: 800;
  --motion-home-image-ms: 1000;
  --motion-home-image-outside-ms: 1250;
  /* Stagger is an unscaled interval, separate from playback time. */
  --motion-text-stagger-ms: 150;
  --motion-section-stagger-ms: 210;
  --motion-company-stagger-ms: 150;
  --motion-image-stagger-ms: 310;
  --motion-company-ms: 1050;
  --motion-text-exit-ms: 300;
  --motion-map-point-ms: 700;
  --motion-map-line-ms: 800;
  --motion-video-poster-ms: 800;
  --motion-text-time: calc(var(--motion-text-ms) * var(--motion-time-scale) * 1ms);
  --motion-text-move-time: calc(var(--motion-text-move-ms) * var(--motion-time-scale) * 1ms);
  --motion-hero-text-time: calc(var(--motion-hero-text-ms) * var(--motion-time-scale) * 1ms);
  --motion-hero-move-time: calc(var(--motion-hero-move-ms) * var(--motion-time-scale) * 1ms);
  --motion-section-text-time: calc(var(--motion-section-text-ms) * var(--motion-time-scale) * 1ms);
  --motion-company-time: calc(var(--motion-company-ms) * var(--motion-time-scale) * 1ms);
  --motion-text-exit-time: calc(var(--motion-text-exit-ms) * var(--motion-time-scale) * 1ms);
  --motion-map-point-time: calc(var(--motion-map-point-ms) * var(--motion-time-scale) * 1ms);
  --motion-map-line-time: calc(var(--motion-map-line-ms) * var(--motion-time-scale) * 1ms);
  --motion-video-poster-time: calc(var(--motion-video-poster-ms) * var(--motion-time-scale) * 1ms);
  --motion-dialog-open-time: calc(var(--motion-dialog-open-ms) * var(--motion-time-scale) * 1ms);
  --motion-dialog-close-time: calc(var(--motion-dialog-close-ms) * var(--motion-time-scale) * 1ms);
  --menu-open-time: calc(var(--motion-menu-open-ms) * var(--motion-time-scale) * 1ms);
  --menu-open-ease: cubic-bezier(.16, 1, .3, 1);
  --menu-close-time: calc(var(--motion-menu-close-ms) * var(--motion-time-scale) * 1ms);
  --menu-close-ease: cubic-bezier(.6, 0, 1, 1);
  --mobile-menu-surface: var(--header-active-surface);
  --process-image: url("./assets/company/process-strip.png");
  --die-image: url("./assets/products/shared/product-die-video-loading.jpg?v=20261021");
  --plate-image: url("./assets/products/shared/product-flexo-video-loading.jpg");
}

* { box-sizing: border-box; }
/* Shared icons: shape lives in icons.mjs; color follows the surrounding text. */
[data-icon] { display: inline-flex; width: var(--icon-size, 20px); height: var(--icon-size, 20px); flex: none; align-items: center; justify-content: center; vertical-align: -.125em; }
.icon { display: block; width: var(--icon-size, 20px); height: var(--icon-size, 20px); flex: none; }
[data-icon] > .icon { width: 100%; height: 100%; }
[data-icon="chevron-right"] { --icon-size: var(--icon-link-size); }
.icon--sm { --icon-size: 16px !important; }
.icon--lg { --icon-size: 24px !important; }
.icon--xl { --icon-size: 32px !important; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
/* Suppress horizontal boundary bounce without restricting scrolling or pinch zoom. */
html, body { overscroll-behavior-x: none; }
html.has-mobile-nav-open { overflow: hidden; }
body {
  margin: 0;
  /* Preserve the default side insets for content while the fixed header fills the viewport. */
  padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Pretendard, "Noto Sans KR", "Apple SD Gothic Neo", system-ui, sans-serif;
  letter-spacing: .015em;
  word-break: keep-all;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
.site-header,
.mega-menu,
.section-nav,
.hero-nav,
.product-card__more {
  -webkit-tap-highlight-color: transparent;
}
.skip-link {
  position: fixed;
  z-index: 20;
  top: calc(12px + env(safe-area-inset-top, 0px));
  left: calc(12px + env(safe-area-inset-left, 0px));
  padding: 10px 14px;
  transform: translateY(calc(-150% - env(safe-area-inset-top, 0px)));
  background: #1e1e1e;
  color: #fff;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }

*::-webkit-scrollbar { width: 10px; height: 10px; background: transparent; }
*::-webkit-scrollbar-track,
*::-webkit-scrollbar-track-piece,
*::-webkit-scrollbar-corner { background: transparent; }
*::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: var(--radius-pill);
  background: #c5cdd7;
  background-clip: padding-box;
}
*::-webkit-scrollbar-thumb:hover { background: #748398; background-clip: padding-box; }
*::-webkit-scrollbar-thumb:active { background: var(--accent); background-clip: padding-box; }

.hero {
  position: relative;
  height: 100svh;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
  background: #59615f;
  color: #fff;
}
.hero__shade { position: absolute; inset: 0; pointer-events: none; }
.hero__media,
.hero__slide { position: absolute; inset: 0; }
.hero__media { z-index: 0; overflow: hidden; pointer-events: none; }
.hero__slide {
  z-index: 0;
  opacity: 0;
  transition: opacity var(--media-crossfade-duration) cubic-bezier(.4, 0, .2, 1), filter var(--media-focus-duration) cubic-bezier(.2, 0, .2, 1) var(--media-focusHold-duration);
}
.hero__slide.is-active { z-index: 2; opacity: 1; }
.hero__slide.is-outgoing { z-index: 1; opacity: 1; }
.hero__slide img,
.hero__slide video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero__slide.is-photo-animating img {
  animation-name: hero-photo-drift;
  animation-duration: var(--hero-slide-duration, 5.6s);
  animation-timing-function: linear;
  animation-iteration-count: 1;
  animation-fill-mode: both;
  transform-origin: center;
}
.hero__slide .hero__video-poster,
.hero__video-poster + video { position: absolute; inset: 0; }
.hero__slide.is-video-unavailable video { visibility: hidden; }
.hero__slide--first-photo.is-photo-animating img { animation-name: hero-photo-drift-horizontal; }
.hero__slide:nth-child(3).is-photo-animating img { animation-name: hero-photo-drift-reverse; }
.hero__slide:nth-child(4).is-photo-animating img { animation-name: hero-photo-drift-diagonal; }
.hero__slide.is-photo-animating img.hero__video-poster { animation: none; }
@keyframes hero-photo-drift-horizontal {
  from { transform: scale(1.04) translate3d(-1.4%, 0, 0); }
  to { transform: scale(1.1) translate3d(1.4%, 0, 0); }
}
@keyframes hero-photo-drift {
  from { transform: scale(1.025) translate3d(-1%, .5%, 0); }
  to { transform: scale(1.095) translate3d(1%, -.5%, 0); }
}
@keyframes hero-photo-drift-reverse {
  from { transform: scale(1.03) translate3d(1%, -.5%, 0); }
  to { transform: scale(1.095) translate3d(-1%, .5%, 0); }
}
@keyframes hero-photo-drift-diagonal {
  from { transform: scale(1.025) translate3d(-.7%, -.6%, 0); }
  to { transform: scale(1.09) translate3d(.7%, .8%, 0); }
}
.hero__slide {
  filter: saturate(.82) blur(6px);
  transform: scale(1.015);
}
.hero__slide.is-active { filter: saturate(.82) blur(0); }
.hero__slide.is-active.is-defocusing,
.hero__slide.is-outgoing {
  filter: saturate(.82) blur(6px);
  transition: filter var(--media-defocus-duration) cubic-bezier(.4, 0, .6, 1);
}
.hero__slide.is-resetting { transition: none; }
.hero__slide.is-outgoing.is-receding {
  transition: opacity var(--media-crossfade-duration) cubic-bezier(.4, 0, .2, 1), filter var(--media-defocus-duration) cubic-bezier(.4, 0, .6, 1);
}
.hero__media.is-motion-paused .hero__slide.is-photo-animating img { animation-play-state: paused; }
.hero__slide--first-photo img { object-position: center; }
.hero__slide.hero__slide--rotary-die :is(img, video) { object-position: center 62%; }
.hero__slide.hero__slide--plate-closeup img { object-position: center 46%; }
.hero__slide.hero__slide--dieboard-table img { object-position: center 50%; }
.hero__shade {
  z-index: 1;
  background: linear-gradient(180deg, rgba(12, 19, 20, .38), rgba(12, 19, 20, .22) 27%, rgba(12, 19, 20, .22) 72%, rgba(12, 19, 20, .28));
  transition: opacity var(--motion-video-poster-time) ease;
}
.hero__copy {
  text-shadow: 0 1px 8px rgba(0, 0, 0, .16);
  transition: opacity var(--motion-video-poster-time) ease;
}
.site-header {
  position: fixed;
  z-index: 5;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  height: var(--site-header-height);
  align-items: center;
  justify-content: space-between;
  padding-top: env(safe-area-inset-top, 0px);
  padding-inline: max(50px, calc((100% - 1820px) / 2), env(safe-area-inset-left, 0px)) max(50px, calc((100% - 1820px) / 2), env(safe-area-inset-right, 0px));
  transition: background-color var(--menu-close-time) var(--menu-close-ease), backdrop-filter var(--menu-close-time) var(--menu-close-ease);
}
.site-header.is-scrolled {
  background: var(--header-active-surface);
  backdrop-filter: blur(var(--header-active-blur));
  box-shadow: var(--header-active-shadow);
}
.site-header.is-scrolled .main-nav > :is(a, button, .nav-category) { color: #202b38; }
.site-header.is-scrolled .main-nav > :is(a, button, .nav-category)::after { background: var(--accent); }
.site-header.has-open-menu {
  background: var(--header-active-surface);
  box-shadow: none;
  backdrop-filter: blur(var(--header-active-blur));
  transition: background-color var(--menu-open-time) var(--menu-open-ease), backdrop-filter var(--menu-open-time) var(--menu-open-ease);
}
.site-header.is-menu-closing { box-shadow: none; }
.site-header.has-open-menu .main-nav > :is(a, button, .nav-category) { color: #202b38; }
.site-header.has-open-menu .main-nav > :is(a, button, .nav-category)::after { background: var(--accent); }
.section-nav {
  --section-gap-dot-count: 3;
  --section-gap-base: 32px;
  --section-gap-step: 1.5px;
  --section-gap-min-height: 25px;
  --section-nav-link-height: 26px;
  position: fixed;
  z-index: 3;
  top: calc(52% + var(--site-header-center-offset));
  right: max(clamp(8px, 1.8vw, 24px), env(safe-area-inset-right, 0px));
  display: flex;
  width: 28px;
  min-width: 28px;
  max-width: 28px;
  flex: 0 0 28px;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  padding: 1px 0;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: var(--radius-pill);
  background: rgba(20, 29, 38, .28);
  color: #fff;
  backdrop-filter: blur(9px);
  box-shadow: 0 8px 26px rgba(10, 18, 26, .1);
  transform: translateY(-50%);
  transition: background-color .24s ease, border-color .24s ease, color .24s ease, box-shadow .24s ease;
}
.section-nav.is-scrolled {
  border-color: rgba(32, 43, 56, .1);
  background: rgba(255, 255, 255, .84);
  color: #202b38;
  box-shadow: 0 5px 18px rgba(18, 35, 50, .1);
}
.section-nav__current {
  position: fixed;
  z-index: 3;
  top: calc(52% + var(--site-header-center-offset));
  right: calc(max(clamp(8px, 1.8vw, 24px), env(safe-area-inset-right, 0px)) + 28px + 12px);
  color: #fff;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
  text-shadow: none;
  opacity: 0;
  pointer-events: none;
  transform: translate(4px, -50%);
  visibility: hidden;
  transition: top .24s ease, color .2s ease, opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.section-nav__current.is-visible { opacity: 1; transform: translate(0, -50%); visibility: visible; transition-delay: 0s; }
.section-nav__current.is-dark-text { color: #111; }
.section-nav__list { display: grid; width: 100%; gap: 0; margin: 0; padding: 0; list-style: none; }
.section-nav__link {
  position: relative;
  display: grid;
  width: 100%;
  height: var(--section-nav-link-height);
  place-items: center;
  border-radius: var(--radius-pill);
}
.section-nav__link::after {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: transparent;
  content: "";
  pointer-events: auto;
  transform: translate(-50%, -50%);
}
.section-nav__gap {
  position: relative;
  display: block;
  height: var(--section-gap-base);
  min-height: 0;
  pointer-events: none;
}
.section-nav__gap span {
  position: absolute;
  left: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #b7c1cc;
  opacity: .82;
  transform: translate(-50%, -50%) scale(var(--gap-dot-scale, .72));
  transition: transform .15s cubic-bezier(.2, .8, .2, 1), background-color .13s ease, top .15s ease;
  pointer-events: none;
}
.section-nav__gap span:nth-child(1) { top: 10%; }
.section-nav__gap span:nth-child(2) { top: 50%; }
.section-nav__gap span:nth-child(3) { top: 90%; }
.section-nav__gap span.is-progress-filled,
.section-nav__gap span.is-progress-current { background: #76a2e8; opacity: 1; }
.section-nav__link::before {
  position: relative;
  z-index: 2;
  width: 10px;
  height: 10px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: currentColor;
  content: "";
  opacity: .64;
  pointer-events: none;
  transform: scale(var(--dot-scale, .5));
  transition: transform .15s cubic-bezier(.2, .8, .2, 1), opacity .13s ease, background-color .13s ease, box-shadow .2s ease;
}
.section-nav__link[aria-current="location"]::before {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .22);
  opacity: 1;
}
.section-nav.is-scrolled .section-nav__link[aria-current="location"]::before {
  border-color: var(--accent);
  background: var(--accent);
  box-shadow: 0 0 0 3px rgba(0, 82, 164, .13);
}
.section-nav__link:is(:hover, :focus-visible)::before {
  border-color: #fff;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .22);
  opacity: 1;
  transform: scale(calc(var(--dot-scale, .5) + .42));
}
.section-nav__link[aria-current="location"]:is(:hover, :focus-visible)::before {
  transform: scale(calc(var(--dot-scale, 1.4) + .08));
}
.section-nav.is-scrolled .section-nav__link[aria-current="location"]:is(:hover, :focus-visible)::before {
  border-color: #fff;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .22);
}
html.has-mobile-nav-open .section-nav { opacity: 0; pointer-events: none; }

@media (max-width: 980px), (max-height: 720px) {
  .section-nav { --section-gap-base: 29px; --section-gap-step: 1px; --section-nav-link-height: 24px; }
}

@media (max-height: 560px) {
  .section-nav { --section-gap-base: 26px; --section-gap-step: .5px; --section-nav-link-height: 21px; padding-block: 3px; }
}
.brand { position: relative; z-index: 1; display: inline-flex; min-width: max-content; align-items: center; gap: 12px; color: #fff; }
.brand__image { display: block; width: clamp(188px, calc(225px - 1.5vw), 216px); height: auto; }
.main-nav {
  --menu-gap: 22px;
  display: grid;
  /* Share the dropdown columns while keeping each label intrinsically sized. */
  grid-template-columns: var(--menu-columns, repeat(4, max-content));
  grid-auto-flow: column;
  grid-auto-columns: max-content;
  align-items: center;
  gap: var(--menu-gap);
}
.main-nav > :is(a, button, .nav-category) {
  position: relative;
  z-index: 1;
  display: flex;
  justify-self: center;
  min-height: 70px;
  align-items: center;
  justify-content: flex-start;
  color: rgba(255, 255, 255, .92);
  font-size: 16px;
  font-weight: 450;
  white-space: nowrap;
  transition: color .2s ease;
}
.main-nav > button[data-nav-trigger] {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: default;
  font-family: inherit;
  letter-spacing: inherit;
  text-align: center;
}
.main-nav > a[href="certifications.html"] { cursor: pointer; }
.nav-category__link {
  display: flex;
  min-height: inherit;
  align-items: center;
  flex: 1;
  color: inherit;
}
.nav-category__toggle {
  display: none;
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.nav-chevron { display: none; }
.main-nav > :is(a, button, .nav-category)::after {
  position: absolute;
  bottom: 15px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: #fff;
  content: "";
  transform: translateX(-50%) scaleX(0);
  transition: transform .2s ease;
}
.main-nav > :is(a, button, .nav-category):hover,
.main-nav > :is(a, button, .nav-category):is(:focus-visible, :focus-within) { color: #fff; }
.site-header.is-scrolled .main-nav > :is(a, button, .nav-category):hover,
.site-header.is-scrolled .main-nav > :is(a, button, .nav-category):is(:focus-visible, :focus-within),
.site-header.has-open-menu .main-nav > :is(a, button, .nav-category):hover,
.site-header.has-open-menu .main-nav > :is(a, button, .nav-category):is(:focus-visible, :focus-within) { color: var(--accent); }
.main-nav > :is(a, button, .nav-category):hover::after,
.main-nav > :is(a, button, .nav-category):is(:focus-visible, :focus-within)::after,
.main-nav > :is(a, button, .nav-category).is-submenu-active::after { transform: translateX(-50%) scaleX(1); }
.site-header.is-scrolled .main-nav > :is(a, button, .nav-category).is-submenu-active,
.site-header.has-open-menu .main-nav > :is(a, button, .nav-category).is-submenu-active { color: var(--accent); }
.mega-menu {
  position: fixed;
  z-index: 4;
  top: var(--site-header-height);
  left: 0;
  display: block;
  width: 100vw;
  padding: 7px 0 24px;
  background-color: var(--header-active-surface);
  color: #202b38;
  backdrop-filter: blur(0px);
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  pointer-events: none;
  transition: clip-path var(--menu-close-time) var(--menu-close-ease), opacity var(--menu-close-time) var(--menu-close-ease), backdrop-filter var(--menu-close-time) var(--menu-close-ease), visibility 0s linear var(--menu-close-time);
  visibility: hidden;
}
.site-header.is-scrolled + .mega-menu {
  backdrop-filter: blur(var(--header-active-blur));
  opacity: 1;
}
.mega-menu__inner {
  --menu-gap: 22px;
  display: grid;
  width: max-content;
  grid-template-columns: var(--menu-columns, repeat(4, max-content));
  gap: var(--menu-gap);
  margin-right: var(--menu-right, max(50px, calc((100vw - 1820px) / 2)));
  margin-left: auto;
}
.site-header.has-open-menu + .mega-menu {
  backdrop-filter: blur(var(--header-active-blur));
  /* Let the shadow extend below the dropdown without clipping it. */
  clip-path: inset(0 0 -32px);
  opacity: 1;
  pointer-events: auto;
  box-shadow: var(--header-active-shadow);
  transition: clip-path var(--menu-open-time) var(--menu-open-ease), opacity var(--menu-open-time) var(--menu-open-ease), backdrop-filter var(--menu-open-time) var(--menu-open-ease), visibility 0s;
  visibility: visible;
}
.site-header.is-scrolled.has-open-menu + .mega-menu {
  transition: clip-path var(--menu-open-time) var(--menu-open-ease), visibility 0s;
}
.mega-menu__group { display: flex; width: max-content; justify-self: center; flex-direction: column; align-items: flex-start; gap: 7px; }
.mega-menu__group a {
  align-self: stretch;
  color: rgba(32, 43, 56, .72);
  font-size: 14px;
  line-height: 1.45;
  transition: color .16s ease;
  text-align: left;
  white-space: nowrap;
}
.mega-menu__group a:hover { color: var(--accent); }
@media (min-width: 681px) {
  #resin-examples .product-examples__grid { align-items: stretch; }
  #resin-examples .resin-examples__row--packaging { align-items: stretch; }
  #resin-examples .resin-examples__row--packaging .product-examples__figure {
    display: flex;
    flex-direction: column;
  }
  .main-nav > :is(a, button, .nav-category) { letter-spacing: .08em; }
  .mega-menu__group { position: relative; width: 100%; max-width: none; justify-self: stretch; }
  .mega-menu__group[data-nav-group-panel="company"] {
    display: grid;
    grid-template-columns: max-content;
    justify-content: center;
    align-content: start;
  }
  .mega-menu__group + .mega-menu__group::before {
    position: absolute;
    top: 2px;
    right: calc(100% + var(--menu-divider-offset, 20px));
    width: 1px;
    height: 44px;
    background: rgb(32 43 56 / 12%);
    content: "";
    pointer-events: none;
  }
  .mega-menu__group a { align-self: flex-start; max-width: none; white-space: nowrap; }
  .mega-menu__group:is([data-nav-group-panel="equipment"], [data-nav-group-panel="certifications"]) a { align-self: center; }
}
.menu-toggle { display: none; }

@media (min-width: 1600px) {
  .site-header { padding-inline: max(52px, calc((100% - 1960px) / 2), env(safe-area-inset-left, 0px)) max(52px, calc((100% - 1960px) / 2), env(safe-area-inset-right, 0px)); }
  .main-nav > :is(a, button, .nav-category) { min-height: 64px; font-size: clamp(14px, calc(18px - .13vw), 16px); }
  .main-nav > :is(a, button, .nav-category)::after { bottom: 12px; }
}

@media (max-width: 1200px) {
  :root { --site-header-content-height: calc(clamp(72px, calc(36px + 4vw), 84px) * .857375); }
  .hero { height: 100svh; min-height: 0; }
  .site-header { padding-inline: max(32px, env(safe-area-inset-left, 0px)) max(32px, env(safe-area-inset-right, 0px)); }
  .brand__image { width: 205px; }
}

.hero__copy {
  position: absolute;
  top: 50%;
  right: 24px;
  left: 24px;
  z-index: 2;
  text-align: center;
  transform: translateY(-50%);
}
html.has-text-motion [data-text-reveal] {
  opacity: 0;
  filter: blur(3px);
  transform: translate3d(0, 22px, 0);
  transition: opacity var(--motion-text-time) ease, filter var(--motion-text-time) ease, transform var(--motion-text-move-time) cubic-bezier(.2, .8, .2, 1);
  transition-delay: var(--text-reveal-delay, 0ms);
  will-change: opacity, filter, transform;
}
html.has-text-motion [data-text-reveal-group].is-text-visible > [data-text-reveal] {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  will-change: auto;
}
html.has-text-motion .hero__copy > [data-text-reveal] {
  transition-duration: var(--motion-hero-text-time), var(--motion-hero-text-time), var(--motion-hero-move-time);
}
html.has-text-motion [data-text-reveal-group].is-text-prepared > [data-text-reveal] {
  transition: none;
}
html.has-text-motion [data-section-reveal] > [data-text-reveal] {
  filter: none;
  transform: translate3d(0, 12px, 0);
  transition-duration: var(--motion-section-text-time);
  transition-timing-function: cubic-bezier(.16, 1, .3, 1);
}
html.has-text-motion [data-section-reveal].is-text-visible > [data-text-reveal] {
  transform: translate3d(0, 0, 0);
}
html.has-text-motion .is-section-prepared [data-section-reveal] > [data-text-reveal] {
  transition: none;
}
html.has-section-image-motion [data-image-motion]:not(.is-image-visible) {
  translate: var(--image-entrance-translate, 0 0);
  clip-path: var(--image-entrance-clip, none);
}
html.has-text-motion .hero__copy.is-copy-transitioning-out > [data-text-reveal] {
  transition-duration: var(--motion-text-exit-time);
  transition-delay: 0ms;
  transition-timing-function: ease-in;
}
html.has-text-motion [data-text-reveal-group] > [data-text-reveal]:focus-within {
  opacity: 1;
  filter: none;
  transform: none;
  transition: none;
}
[data-text-reveal-group] > [data-text-reveal]:nth-child(2) { --text-reveal-delay: calc(var(--motion-text-stagger-ms) * 1ms); }
[data-text-reveal-group] > [data-text-reveal]:nth-child(3) { --text-reveal-delay: calc(var(--motion-text-stagger-ms) * 2ms); }
[data-text-reveal-group].hero__copy > [data-text-reveal]:nth-child(1) { --text-reveal-delay: 400ms; }
[data-text-reveal-group].hero__copy > [data-text-reveal]:nth-child(2) { --text-reveal-delay: 0ms; }
.hero__eyebrow {
  margin: 0 0 20px;
  color: rgba(255, 255, 255, .96);
  font-size: clamp(1.0625rem, calc(.7rem + 1.2vw), 2.25rem);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.02em;
}
.hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.8125rem, calc(1.625rem + 1.2vw), 3.25rem);
  font-weight: 620;
  line-height: 1.57;
  letter-spacing: -0.06em;
}
.hero-nav {
  position: absolute;
  bottom: calc(clamp(52px, 8vh, 68px) + 30px);
  left: 50%;
  z-index: 3;
  width: min(410.4px, calc(100% - 2 * var(--gutter)));
  transform: translateX(-50%);
}
.hero-nav__track {
  position: relative;
  height: 2px;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, .42), rgba(255, 255, 255, .42)) 33.333% 0 / 1px 100% no-repeat,
    linear-gradient(rgba(255, 255, 255, .42), rgba(255, 255, 255, .42)) 66.666% 0 / 1px 100% no-repeat,
    rgba(255, 255, 255, .42);
}
.hero-nav__progress {
  position: absolute;
  inset: 0 auto 0 0;
  width: 33.333%;
  background: rgba(255, 255, 255, .12);
  transition: transform .5s cubic-bezier(.2, .8, .2, 1);
}
.hero-nav__timer {
  display: block;
  width: 0;
  height: 100%;
  background: #fff;
  box-shadow: 0 0 12px rgba(255, 255, 255, .56);
}
.hero-nav__items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hero-nav__item {
  display: flex;
  min-width: 0;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px 10px 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, .66);
  cursor: pointer;
  font-size: clamp(12.825px, 1.026vw, 14.535px);
  font-weight: 550;
  letter-spacing: -0.04em;
  text-shadow: 0 1px 10px rgba(0, 0, 0, .34);
  transition: color .2s ease, opacity .2s ease;
}
.hero-nav__item:hover,
.hero-nav__item[aria-pressed="true"] { color: #fff; }
.hero-nav__item:active { opacity: .78; }
.hero-nav__item:focus-visible { outline-color: #fff; outline-offset: 2px; }
.hero-nav__item > span { overflow-wrap: anywhere; }

.about {
  position: relative;
  z-index: 2;
  height: auto;
  margin-top: 0;
  overflow: hidden;
  border-radius: 58px 58px 0 0;
  background: #fff;
}
.about__intro {
  display: flex;
  min-height: 560px;
  flex-direction: column;
  align-items: center;
  padding: 118px 30px 72px;
  text-align: center;
}
.section-label {
  margin: 0 0 18px;
  color: #1e1e1e;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.4;
}
.about h2,
.products h2 {
  margin: 0;
  color: #1e1e1e;
  font-size: clamp(34px, 3.3vw, 60px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.06em;
}
.about__description {
  max-width: 1080px;
  margin: 46px 0 0;
  color: #1e1e1e;
  font-size: clamp(19px, 1.6vw, 25px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.05em;
}
.about__photo {
  border-radius: var(--radius-media);
  width: 100%;
  height: 100svh;
  max-height: calc(100svh - 1px);
  background-color: #909692;
  background-image: linear-gradient(rgba(23, 29, 29, .04), rgba(23, 29, 29, .04)), var(--process-image);
  background-position: center;
  background-size: cover;
}
@media (max-width: 1200px) {
  .about {
    margin-top: 0;
    border-radius: clamp(32px, 5vw, 64px) clamp(32px, 5vw, 64px) 0 0;
  }
}

.products {
  height: auto;
  margin-top: 0;
  padding-bottom: 104px;
  overflow: hidden;
  background: #fff;
}
.products__intro {
  min-height: 570px;
  padding: 122px 30px 88px;
  text-align: center;
}
.about__intro .section-label,
.products__intro .section-label { margin-bottom: 22px; }
.products h2 { font-size: clamp(35px, 3.3vw, 60px); }
.products__description {
  margin: 18px 0 0;
  color: #1e1e1e;
  font-size: clamp(19px, 1.6vw, 25px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.04em;
}
.network {
  display: grid;
  min-height: 100svh;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(18px, 3vw, 48px);
  margin: 0;
  padding: clamp(90px, calc(var(--site-header-height) + 5vh), 132px) clamp(18px, 3vw, 44px) clamp(24px, 3vh, 42px);
  overflow: hidden;
  background: #fff;
}
.network__intro { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding-inline: clamp(0px, 2vw, 32px); }
.network .section-label { margin-bottom: clamp(10px, 1.6vh, 18px); font-size: clamp(15px, 1.35vw, 20px); }
.network h2 {
  margin: 0;
  color: #1e1e1e;
  font-size: clamp(34px, 3.3vw, 60px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.06em;
}
.network__accent { color: var(--accent); }
.network__description {
  max-width: 620px;
  margin: clamp(16px, 2.3vh, 28px) 0 0;
  color: #1e1e1e;
  font-size: clamp(17px, 1.4vw, 22px);
  line-height: 1.6;
  letter-spacing: -0.03em;
}
.network__more {
  display: inline-flex;
  width: fit-content;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  color: var(--accent);
  font-size: clamp(14px, 1.1vw, 16px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.01em;
  text-decoration: none;
}
.network__more:is(:hover, :focus-visible) > span:first-child { text-decoration: underline; text-underline-offset: 4px; }
.network__more:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
.network__map {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 0;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  margin: 0;
  padding: clamp(20px, 3vw, 44px);
  overflow: hidden;
  border-radius: var(--radius-feature);
  background: #f3f5f4;
}
.network__map img { display: block; width: min(100%, 500px); height: 100%; min-height: 0; justify-self: center; object-fit: contain; mix-blend-mode: multiply; }
.network__map .network-map { display: block; width: 100%; max-width: 480px; height: 100%; min-height: 0; justify-self: center; overflow: visible; }
.network-map__connector { stroke-dasharray: 1; stroke-dashoffset: 0; }
html.has-section-image-motion .network-map:not(.is-map-ready) :is(.network-map__connector, .network-map__headquarters, .network-map__branch) { opacity: 0; }
html.has-section-image-motion .network-map.is-map-ready .network-map__connector { animation: network-map-line var(--motion-map-line-time) cubic-bezier(.16, 1, .3, 1) var(--network-arrival, .2s) both; }
html.has-section-image-motion .network-map.is-map-ready :is(.network-map__headquarters, .network-map__branch) { animation: network-map-point var(--motion-map-point-time) ease-out calc(var(--network-arrival, .2s) + .06s) both; }
.network-map > .network-map__connector:nth-of-type(2), .network-map > .network-map__branch:nth-of-type(2) { --network-arrival: .56s; }
.network-map > .network-map__connector:nth-of-type(3), .network-map > .network-map__branch:nth-of-type(3) { --network-arrival: .92s; }
.network-map > .network-map__connector:nth-of-type(4), .network-map > .network-map__branch:nth-of-type(4) { --network-arrival: 1.28s; }
.network-map > .network-map__connector:nth-of-type(5), .network-map > .network-map__branch:nth-of-type(5) { --network-arrival: 1.64s; }
.network-map > .network-map__connector:nth-of-type(6), .network-map > .network-map__branch:nth-of-type(6) { --network-arrival: 2s; }
.network-map > .network-map__connector:nth-of-type(7), .network-map > .network-map__branch:nth-of-type(7) { --network-arrival: 2.36s; }
@keyframes network-map-line { from { stroke-dashoffset: 1; opacity: 0; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes network-map-point { from { opacity: 0; } to { opacity: 1; } }
.network__map-count { position: absolute; z-index: 1; top: clamp(16px, 2vw, 28px); left: clamp(18px, 2.2vw, 32px); display: flex; align-items: baseline; gap: 8px; color: #737b80; }
.network__map-count strong { color: #578092; font-size: clamp(30px, 4vw, 52px); font-weight: 550; line-height: 1; letter-spacing: -0.045em; }
.network__map-count span { font-size: 13px; letter-spacing: -0.015em; }
.network__map figcaption { padding-top: 10px; color: #737b80; font-size: 13px; line-height: 1.5; text-align: center; letter-spacing: -0.01em; }
.home-inquiry {
  display: grid;
  min-height: 100svh;
  place-items: center;
  padding: calc(var(--site-header-height) + 48px) max(var(--gutter), env(safe-area-inset-right, 0px)) 48px max(var(--gutter), env(safe-area-inset-left, 0px));
  background: #f3f5f4;
  text-align: center;
  word-break: keep-all;
}
.home-inquiry__content { width: 100%; max-width: 800px; min-width: 0; }
.home-inquiry .section-label { margin-bottom: 16px; font-size: 16px; }
.home-inquiry h2 { margin: 0; font-size: var(--type-home-heading); font-weight: 600; line-height: 1.35; letter-spacing: -0.05em; text-wrap: balance; }
.home-inquiry__description { max-width: 36em; margin: 18px auto 0; font-size: max(1rem, var(--type-home-copy)); line-height: 1.6; letter-spacing: -0.02em; }
.home-inquiry__contact { margin: 32px 0 8px; }
.home-inquiry__phone-label { display: block; margin-bottom: 4px; font-size: 16px; line-height: 1.5; }
.home-inquiry__phone {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--accent);
  font-size: clamp(1.75rem, 5vw, 3.25rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.025em;
  overflow-wrap: anywhere;
  word-break: normal;
}
.home-inquiry__phone:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 6px; }
.home-inquiry__phone:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; border-radius: 2px; }
.home-inquiry__more { display: flex; margin: 0 auto; font-size: 16px; }
.product-list { display: grid; justify-items: center; gap: 28px; }
.product-card {
  --product-card-radius: var(--radius-feature);
  --product-more-inset: clamp(6px, 1.2vw, 12px);
  position: relative;
  width: calc(100% - 30px);
  overflow: hidden;
  border-radius: var(--product-card-radius);
  background: #57615f;
  color: #fff;
}
.product-card--die,
.product-card--plate { height: 100svh; max-height: calc(100svh - 1px); }
.product-card__image {
  position: absolute;
  z-index: 0;
  inset: 0;
  background-position: center;
  background-size: cover;
  transition: transform .7s cubic-bezier(.2, .65, .25, 1);
}
.product-card--die .product-card__image {
  background-color: #505d61;
  background-image: linear-gradient(180deg, rgba(13, 23, 30, .03) 45%, rgba(13, 23, 30, .4)), var(--die-image);
}
.product-card--plate .product-card__image {
  background-color: #8b7478;
  background-image: linear-gradient(180deg, rgba(20, 20, 20, .05) 40%, rgba(18, 20, 22, .56)), var(--plate-image);
}
.product-card:hover .product-card__image { transform: scale(1.01); }
.product-card__more {
  position: absolute;
  top: var(--product-more-inset);
  right: var(--product-more-inset);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, .8vw, 10px);
  min-height: clamp(32px, 3.5vw, 44px);
  padding: 0 clamp(10px, 1.3vw, 16px);
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: calc(var(--product-card-radius) - var(--product-more-inset));
  background: rgba(15, 25, 32, .65);
  color: #fff;
  font-size: clamp(11px, 1.1vw, 14px);
  line-height: 1.25;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s;
}
.product-card__more:hover { background: var(--accent); }
.product-card__more:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.product-card__disclosure {
  position: absolute;
  top: var(--product-more-inset);
  right: var(--product-more-inset);
  z-index: 2;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: calc(var(--product-card-radius) - var(--product-more-inset));
  background: rgba(15, 25, 32, .65);
  color: #fff;
  -webkit-tap-highlight-color: transparent;
}
.product-card__disclosure .product-card__more {
  position: static;
  display: flex;
  width: 100%;
  justify-content: space-between;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: pointer;
}
.product-card__disclosure .product-card__more[hidden] { display: none; }
.product-card__disclosure .product-card__more:hover { background: var(--accent); }
.product-card__disclosure .product-card__more:focus-visible { outline-offset: -3px; }
.product-card__chevron {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  transition: transform .24s ease;
}
.product-card__disclosure.is-open .product-card__chevron { transform: rotate(180deg); }
.product-card__more > [data-icon],
.product-card__options a > [data-icon] { --icon-size: var(--icon-link-size); }
.product-card__options {
  display: grid;
  grid-template-rows: 1fr;
  visibility: visible;
  transition: grid-template-rows .28s cubic-bezier(.16, 1, .3, 1), visibility .28s;
}
.product-card__disclosure.is-enhanced:not(.is-open) .product-card__options { grid-template-rows: 0fr; visibility: hidden; }
.product-card__disclosure.is-open .product-card__options { grid-template-rows: 1fr; visibility: visible; }
.product-card__options-inner { min-height: 0; overflow: hidden; }
.product-card__options a {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 clamp(10px, 1.3vw, 16px);
  border-top: 1px solid rgba(255, 255, 255, .2);
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 500;
  transition: background .2s;
}
.product-card__options a:hover { background: var(--accent); }
.product-card__options a:focus-visible { outline: 2px solid #fff; outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) {
  .product-card__options, .product-card__chevron { transition: none; }
}
.product-card__image video { width: 100%; height: 100%; object-fit: cover; display: block; }
[data-product-video-carousel] video {
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: 0;
  filter: blur(6px);
  transform: scale(1.015);
  transition: opacity var(--media-crossfade-duration) cubic-bezier(.4, 0, .2, 1), filter var(--media-focus-duration) cubic-bezier(.2, 0, .2, 1) var(--media-focusHold-duration);
}
[data-product-video-carousel] video.is-active { z-index: 2; opacity: 1; filter: blur(0); }
[data-product-video-carousel] video.is-outgoing { z-index: 1; opacity: 1; filter: blur(6px); }
[data-product-video-carousel] video.is-active.is-defocusing {
  filter: blur(6px);
  transition: filter var(--media-defocus-duration) cubic-bezier(.4, 0, .6, 1);
}
[data-product-video-carousel] video.is-resetting { transition: none; }
@media (prefers-reduced-motion: reduce) {
  [data-product-video-carousel] video,
  [data-product-video-carousel] video.is-active,
  [data-product-video-carousel] video.is-outgoing,
  [data-product-video-carousel] video.is-active.is-defocusing { transition: none; filter: none; }
}

.product-card__image:has(video)::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 20, 20, .05) 40%, rgba(18, 20, 22, .56));
}
.product-card__copy {
  position: absolute;
  right: 30px;
  bottom: 25px;
  left: 30px;
  z-index: 1;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .2);
}
.product-card h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.045em;
}
.product-card p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, .96);
  font-size: clamp(21px, 2vw, 28px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.04em;
}

.page-spacer { height: clamp(120px, 18vh, 220px); min-height: 0; background: #fff; }
.footer {
  min-height: 359px;
  border-top: 1px solid #eef0f1;
  background: #fff;
}
.footer__inner {
  display: flex;
  width: min(calc(100% - 80px), 1560px);
  min-height: 359px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 50px;
  margin-inline: auto;
  padding: 24px 0;
}
.brand--footer { gap: 0; color: #1e2428; }
.brand--footer .brand__image { width: 132px; }
.company-info { width: min(445px, 100%); }
.company-info dl { display: grid; gap: 8px; margin: 14px 0 0; }
.company-info dl > div { display: grid; grid-template-columns: 72px 1fr; align-items: start; }
.company-info dt { color: #8a9198; font-size: 14.3px; line-height: 1.7; }
.company-info dd { margin: 0; color: #1d2328; font-size: 14.3px; font-weight: 550; line-height: 1.7; }
.company-info dd a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-nav { display: grid; width: min(820px, 60%); grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 24px 18px; padding-top: 4px; }
.footer-nav__group { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 10px; text-align: left; }
.footer-nav__heading {
  position: relative;
  display: inline-block;
  padding-bottom: 5px;
  color: #30383d;
  font-size: 15.4px;
  font-weight: 650;
  line-height: 1.5;
  transition: color .2s ease;
}
.footer-nav__heading::after,
.footer-nav__direct-link::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--accent);
  content: "";
  transform: scaleX(0);
  transition: transform .2s ease;
}
.footer-nav__group:hover .footer-nav__heading,
.footer-nav__group:focus-within .footer-nav__heading { color: var(--accent); }
.footer-nav__group:hover .footer-nav__heading::after,
.footer-nav__group:focus-within .footer-nav__heading::after,
.footer-nav__direct-link:hover::after,
.footer-nav__direct-link:focus-visible::after { transform: scaleX(1); }
.footer-nav__subcategories { display: flex; width: 100%; flex-direction: column; align-items: flex-start; gap: 8px; margin: 0; padding: 0; list-style: none; }
.footer-nav__direct { display: contents; }
.footer-nav__subcategory { display: block; max-width: 100%; color: #646c71; font-size: 14.3px; line-height: 1.5; text-align: left; transition: color .2s ease; }
.footer-nav__subcategory:hover { color: var(--accent); }
.footer-nav__direct-link { position: relative; display: block; max-width: 100%; align-self: start; justify-self: center; padding-bottom: 5px; color: #30383d; font-size: 15.4px; font-weight: 650; line-height: 1.5; text-align: center; transition: color .2s ease; }
.footer-nav__direct-link:hover { color: var(--accent); }
.footer-nav__direct-link:focus-visible { color: var(--accent); outline: none; }

.subpage-hero {
  position: relative;
  display: flex;
  min-height: 360px;
  height: min(64svh, 590px);
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  padding: 110px var(--gutter) 54px;
  background: #59615f;
  color: #fff;
}
.subpage-hero__background {
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: var(--page-image);
  background-position: center;
  background-size: cover;
  filter: blur(2px) saturate(.84);
  transform: scale(1.008);
}
.subpage-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(9, 16, 19, .66), rgba(9, 16, 19, .12)), linear-gradient(0deg, rgba(9, 16, 19, .2), transparent 45%);
  content: "";
}
.subpage-hero__content { width: min(1180px, 100%); margin-inline: auto; }
.subpage-hero__eyebrow,
.subpage-content__eyebrow { margin: 0 0 13px; font-size: 12px; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.subpage-hero__eyebrow { color: rgba(255, 255, 255, .78); }
.subpage-hero h1 { max-width: 900px; margin: 0; font-size: clamp(36px, 4vw, 58px); font-weight: 620; line-height: 1.3; letter-spacing: -0.05em; }
.subpage-hero__description { max-width: 700px; margin: 18px 0 0; color: rgba(255, 255, 255, .86); font-size: clamp(16px, 1.5vw, 20px); line-height: 1.75; letter-spacing: -0.02em; }
.breadcrumb { display: flex; width: min(1180px, calc(100% - 2 * var(--gutter))); gap: 10px; margin: 26px auto 0; color: #858d92; font-size: 13px; }
.breadcrumb a:hover { color: #273238; }
.breadcrumb__current { color: #3c454a; }
.subpage-content { width: min(1180px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: 70px 0 112px; }
.subpage-content__eyebrow { color: #778188; }
.subpage-content h2 { margin: 0; color: #22292d; font-size: clamp(30px, 3vw, 44px); font-weight: 600; line-height: 1.4; letter-spacing: -0.045em; }
.subpage-content__lead { max-width: 760px; margin: 16px 0 0; color: #677178; font-size: var(--type-page-lead); line-height: 1.8; letter-spacing: -0.01em; }
.certificate-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 28px 24px; margin: 32px 0 0; padding: 0; list-style: none; }
.certificate-gallery__item { min-width: 0; }
.certificate-gallery__link { appearance: none; display: block; width: 100%; margin: 0; padding: 16px; border: 1px solid #e8ebed; border-radius: 0; background: #fff; color: #30383d; font: inherit; cursor: zoom-in; transition: border-color .2s ease, color .2s ease; }
.certificate-gallery__link:hover { border-color: var(--accent); color: var(--accent); }
.page-shell[data-page="certificates.html"] .certificate-gallery__link { border-color: transparent; border-radius: var(--radius-card); overflow: hidden; box-shadow: 0 10px 28px -10px rgb(26 43 58 / 18%); transform-origin: center bottom; transition: transform calc(var(--motion-feedback-ms) * var(--motion-time-scale) * 1ms) cubic-bezier(.16, 1, .3, 1); }
.page-shell[data-page="certificates.html"] .certificate-gallery__link:hover { border-color: transparent; transform: translateY(-6px) scale(1.035); }
@media (prefers-reduced-motion: reduce) {
  .page-shell[data-page="certificates.html"] .certificate-gallery__link,
  .page-shell[data-page="certificates.html"] .certificate-gallery__link:hover { transform: none; transition: none; }
}
.certificate-gallery__link:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.certificate-gallery__image { display: block; width: 100%; height: auto; object-fit: contain; }
.certificate-lightbox { inset: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); width: fit-content; max-width: calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 32px); max-height: calc(100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 32px); margin: auto; padding: 56px 16px 16px; border: 0; border-radius: var(--radius-card); background: #fff; overscroll-behavior: contain; }
.certificate-lightbox::backdrop { background: rgba(9, 16, 19, .8); opacity: 0; transition: opacity var(--motion-dialog-close-time) ease-out; }
.certificate-lightbox.is-open::backdrop { opacity: 1; transition-duration: var(--motion-dialog-open-time); }
@media (prefers-reduced-motion: reduce) {
  .certificate-lightbox::backdrop { transition: none; }
}
.certificate-lightbox__close { appearance: none; position: absolute; top: 6px; right: 6px; display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; margin: 0; padding: 0; border: 0; border-radius: var(--radius-control); background: #fff; color: #30383d; font: inherit; font-size: 30px; line-height: 1; cursor: pointer; }
[data-photo-open] { cursor: zoom-in; }
[data-photo-open]:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.certificate-lightbox__viewport { display: contents; }
.certificate-lightbox.is-preprinting { width: fit-content; }
.certificate-lightbox.is-preprinting .certificate-lightbox__viewport {
  display: block;
  position: relative;
  overflow: hidden;
  width: min(1368px, calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 64px), calc((100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 104px) * 2.2597));
  aspect-ratio: 1810 / 801;
}
.certificate-lightbox.is-preprinting .certificate-lightbox__image {
  position: absolute;
  /* Show source pixels x=270..2080, y=515..1316 without resynthesis. */
  left: -14.917127%;
  top: -64.294632%;
  width: 129.337017%;
  height: 229.213483%;
  max-width: none;
  max-height: none;
  margin: 0;
  object-fit: fill;
  object-view-box: none;
}
.certificate-lightbox__close:hover { background: #f5f7f7; color: var(--accent); }
.certificate-lightbox__close:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }
.certificate-lightbox__close > [data-icon] { --icon-size: 24px; }
.certificate-lightbox__image { display: block; width: auto; height: auto; max-width: min(100%, calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 64px)); max-height: calc(100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 104px); margin: auto; object-fit: contain; }
.page-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 38px; }
.page-tile { min-height: 218px; padding: 0; overflow: hidden; border-radius: var(--radius-card); background: #f2f4f4; }
.page-tile:not(:has(.page-tile__image)) { min-height: 0; }
.page-tile__image { display: block; height: 148px; background-color: #67706d; background-image: linear-gradient(180deg, rgba(15, 24, 27, .04), rgba(15, 24, 27, .34)), var(--tile-image); background-position: center; background-size: cover; transition: transform .5s ease; }
.page-tile:hover .page-tile__image { transform: scale(1.012); }
.page-tile__copy { display: flex; min-height: 70px; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; }
.page-tile__title { color: #20272b; font-size: 15px; font-weight: 650; }
.page-tile__arrow { color: #737e84; font-size: 17px; transition: transform .18s ease; }
.page-tile:hover .page-tile__arrow { transform: translateX(3px); }
.detail-copy { width: min(920px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: 76px 0 48px; }
.detail-copy__label { margin: 0 0 12px; color: #7b858b; font-size: 12px; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.detail-copy h2 { margin: 0; color: #242b2f; font-size: clamp(28px, 2.7vw, 40px); line-height: 1.4; letter-spacing: -0.045em; }
.detail-copy p { max-width: 740px; margin: 15px 0 0; color: #667177; font-size: var(--type-body-copy); line-height: 1.85; }
.environment-visual { margin: 32px 0 0; }
.environment-visual img { display: block; width: 100%; height: auto; border-radius: var(--radius-media); }
.message-card { margin: 30px 0 0; padding: 28px; border-left: 3px solid #707c82; background: #f5f7f7; }
.message-card p { max-width: 700px; margin: 0; color: #313b40; font-size: clamp(18px, 2vw, 25px); font-weight: 500; line-height: 1.7; }
.message-card cite { display: block; margin-top: 16px; color: #788188; font-size: 13px; font-style: normal; }
.detail-visual {
  position: relative;
  display: flex;
  height: 100svh;
  max-height: calc(100svh - 1px);
  align-items: flex-end;
  margin: 0 20px;
  overflow: hidden;
  border-radius: var(--radius-media);
  isolation: isolate;
  background: #66706d;
  color: #fff;
}
.detail-visual__background { position: absolute; z-index: -2; inset: 0; background: var(--page-image) center / cover no-repeat; transition: transform .8s ease; }
.detail-visual:hover .detail-visual__background { transform: scale(1.008); }
.detail-visual::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, rgba(6, 13, 16, .64), transparent 55%); content: ""; }
.detail-visual__copy { width: min(1100px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: 54px 0; }
.detail-visual__copy p { max-width: 720px; margin: 12px 0 0; color: rgba(255, 255, 255, .88); font-size: clamp(16px, 1.65vw, 22px); line-height: 1.7; }
.detail-visual__copy h2 { margin: 0; font-size: clamp(31px, 3.5vw, 50px); line-height: 1.36; letter-spacing: -0.045em; }
.info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 32px; }
.info-card { min-height: 142px; padding: 22px; border: 1px solid #e8ebed; border-radius: var(--radius-card); background: #fff; }
.info-card__label { margin: 0; color: #858e93; font-size: 12px; }
.info-card__value { margin: 12px 0 0; color: #252d31; font-size: 16px; font-weight: 620; line-height: 1.55; }
.contact-action { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; margin-top: 25px; padding: 0 20px; border-radius: var(--radius-pill); background: #202a2e; color: #fff; font-size: 14px; font-weight: 600; transition: background .2s ease; }
.contact-action:hover { background: #48565d; }
.empty-state { margin-top: 32px; padding: 40px; border: 1px solid #e8ebed; border-radius: var(--radius-card); background: #f7f8f8; color: #687379; font-size: 15px; line-height: 1.8; }
@media (max-width: 900px) {
  :root { --site-header-content-height: calc(clamp(68px, calc(36px + 4vw), 72px) * .857375); }
  .hero { height: 100svh; min-height: 0; }
  .site-header { padding-inline: max(20px, env(safe-area-inset-left, 0px)) max(20px, env(safe-area-inset-right, 0px)); }
  .brand__image { width: min(190px, 32vw); }
  .main-nav > :is(a, button, .nav-category) { font-size: 14px; }
  .about {
    height: auto;
    margin-top: 0;
    border-radius: clamp(32px, 5vw, 46px) clamp(32px, 5vw, 46px) 0 0;
  }
  .about__intro { min-height: 490px; padding-top: 108px; padding-bottom: 70px; }
  .about__description { max-width: 800px; font-size: 21px; }
  .about__photo { height: 100svh; max-height: calc(100svh - 1px); min-height: 0; }
  .products { height: auto; padding-bottom: 84px; }
  .products__intro { min-height: 500px; padding-top: 110px; }
  .products__description { font-size: 21px; }
  .product-card--die, .product-card--plate { height: 100svh; max-height: calc(100svh - 1px); min-height: 0; }
  .product-card h3 { font-size: clamp(30px, 4vw, 44px); }
  .product-card p { font-size: clamp(22px, 3vw, 32px); }
  .page-spacer { height: 160px; min-height: 0; }
}

@media (max-width: 680px) {
  :root { --radius-feature: var(--radius-media); --gutter: 22px; --site-header-content-height: clamp(60px, calc(36px + 4.7vw), 68px); }
  html { scroll-padding-top: 16px; }
  .hero { height: 100svh; min-height: 0; }
  .hero__slide img,
  .hero__slide video { object-position: center top; }
  /* Keep the header glass on a sibling layer so it cannot isolate the menu's backdrop. */
  .site-header,
  .site-header.is-scrolled,
  .site-header.has-open-menu,
  body:has(.page-shell) .site-header {
    padding-inline: max(18px, env(safe-area-inset-left, 0px)) max(18px, env(safe-area-inset-right, 0px));
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
    --mobile-menu-progress: 0;
    --mobile-menu-revealed-height: calc(var(--mobile-nav-height, 0px) * var(--mobile-menu-progress));
    transition: --mobile-menu-progress var(--menu-close-time) var(--menu-close-ease);
  }
  .site-header.has-open-menu,
  body:has(.page-shell) .site-header.has-open-menu {
    --mobile-menu-progress: 1;
    transition: --mobile-menu-progress var(--menu-open-time) var(--menu-open-ease);
  }
  .site-header::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: transparent;
    -webkit-backdrop-filter: blur(0px);
    backdrop-filter: blur(0px);
    content: "";
    pointer-events: none;
    transition: background-color var(--menu-close-time) var(--menu-close-ease), backdrop-filter var(--menu-close-time) var(--menu-close-ease);
  }
  .site-header.is-scrolled::before,
  .site-header.has-open-menu::before,
  body:has(.page-shell) .site-header::before {
    background: var(--mobile-menu-surface);
    -webkit-backdrop-filter: blur(var(--header-active-blur));
    backdrop-filter: blur(var(--header-active-blur));
  }
  .site-header.is-scrolled:not(.has-open-menu)::before { box-shadow: var(--header-active-shadow); }
  .site-header.has-open-menu::before {
    transition: background-color var(--menu-open-time) var(--menu-open-ease), backdrop-filter var(--menu-open-time) var(--menu-open-ease);
  }
  /* The hero header and menu share one edge as their glass surface retracts. */
  body:has(.hero) .site-header:not(.is-scrolled) {
    --mobile-menu-hidden-height: calc((var(--site-header-height) + var(--mobile-nav-height, 0px)) * (1 - var(--mobile-menu-progress)));
    --mobile-menu-revealed-height: clamp(0px, calc(var(--mobile-nav-height, 0px) - var(--mobile-menu-hidden-height)), var(--mobile-nav-height, 0px));
  }
  body:has(.hero) .site-header:not(.is-scrolled)::before {
    background: var(--mobile-menu-surface);
    -webkit-backdrop-filter: blur(var(--header-active-blur));
    backdrop-filter: blur(var(--header-active-blur));
    clip-path: inset(0 0 clamp(0px, calc(var(--mobile-menu-hidden-height) - var(--mobile-nav-height, 0px)), var(--site-header-height)) 0);
    transition: none;
  }
  body:has(.hero) .site-header:not(.is-scrolled) > .main-nav {
    clip-path: inset(0 0 clamp(0px, var(--mobile-menu-hidden-height), 100%) 0);
  }
  .brand { gap: 8px; }
  .brand__image { width: min(172px, 46vw); }
  .menu-toggle {
    display: flex;
    position: relative;
    width: 44px;
    height: 44px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    cursor: pointer;
  }
  .menu-toggle__icon { --icon-size: 24px; color: var(--menu-icon-color, #fff); }
  .menu-toggle__icon path { transition: transform .2s ease; }
  .menu-toggle__icon path:first-child { transform-origin: 12px 5px; }
  .menu-toggle__icon path:nth-child(2) { transform-origin: 12px 12px; transform: scaleX(1); }
  .menu-toggle__icon path:last-child { transform-origin: 12px 19px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon path:first-child { transform: translateY(7px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon path:nth-child(2) { transform: scaleX(0); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__icon path:last-child { transform: translateY(-7px) rotate(-45deg); }
  .site-header.is-scrolled .menu-toggle { --menu-icon-color: var(--accent); }
  .site-header.has-open-menu .menu-toggle { --menu-icon-color: var(--accent); }
  .site-header::after {
    position: absolute;
    /* Size the blur to the exposed backdrop; clipping the filter can distort its sample. */
    top: calc(var(--site-header-height) + var(--mobile-menu-revealed-height));
    right: 0;
    left: 0;
    z-index: 0;
    height: max(0px, calc(100svh - var(--site-header-height) - var(--mobile-menu-revealed-height)));
    background: rgba(8, 12, 15, .5);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    content: "";
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity var(--menu-close-time) var(--menu-close-ease), visibility 0s linear var(--menu-close-time);
  }
  .site-header.has-open-menu::after {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity var(--menu-open-time) var(--menu-open-ease), visibility 0s;
  }
  .site-header > .brand,
  .site-header > .menu-toggle,
  .site-header > .main-nav { z-index: 1; }
  .main-nav {
    position: absolute;
    top: var(--site-header-height);
    right: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    grid-template-columns: none;
    --menu-gap: 0px;
    gap: 0;
    max-height: calc(100svh - var(--site-header-height));
    overflow-y: auto;
    overscroll-behavior: contain;
    overflow-anchor: none;
    padding: 8px max(22px, env(safe-area-inset-right, 0px)) max(24px, env(safe-area-inset-bottom, 0px)) max(22px, env(safe-area-inset-left, 0px));
    border-bottom: 1px solid rgba(20, 38, 58, .12);
    background: var(--mobile-menu-surface);
    -webkit-backdrop-filter: blur(var(--header-active-blur));
    backdrop-filter: blur(var(--header-active-blur));
    clip-path: inset(0 0 calc(100% * (1 - var(--mobile-menu-progress))) 0);
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0s linear var(--menu-close-time);
  }
  .main-nav.is-open {
    visibility: visible;
    pointer-events: auto;
    box-shadow: var(--header-active-shadow);
    transition: visibility 0s;
  }
  /* Collapsing panels must keep their animated height inside the capped scroller. */
  .main-nav > * { flex-shrink: 0; }
  .site-header.is-scrolled .main-nav.is-open,
  .site-header.has-open-menu .main-nav.is-open { background: var(--mobile-menu-surface); }
  .site-header.has-open-menu .main-nav > :is(a, button, .nav-category),
  .site-header.is-scrolled .main-nav > :is(a, button, .nav-category) { color: #202b38; border-color: rgba(20, 38, 58, .12); }
  .site-header.has-open-menu .main-nav > :is(a, button, .nav-category):hover,
  .site-header.is-scrolled .main-nav > :is(a, button, .nav-category):hover { color: var(--accent); }
  .site-header.is-scrolled .nav-chevron,
  .site-header.has-open-menu .nav-chevron { color: rgba(32, 43, 56, .65); }
  .main-nav > :is(a, button, .nav-category) { width: 100%; min-height: 56px; justify-content: space-between; border-bottom: 1px solid rgba(20, 38, 58, .12); font-size: 16px; font-weight: 600; letter-spacing: -0.005em; text-align: left; }
  .main-nav > :is(a, button, .nav-category)::after { display: none; }
  .main-nav > :is(a, button, .nav-category)[aria-expanded="true"],
  .main-nav > .nav-category:has([data-nav-toggle][aria-expanded="true"]) { border-bottom-color: transparent; }
  .nav-category__link { flex: 0 0 auto; }
  .nav-category__toggle { display: flex; min-width: 44px; min-height: inherit; flex: 1; align-self: stretch; align-items: center; justify-content: flex-end; padding-right: 18px; }
  .nav-category__link:focus-visible,
  .nav-category__toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--radius-control); }
  .nav-chevron { display: inline-flex; --icon-size: 16px; margin-left: 12px; color: rgba(255, 255, 255, .72); transition: transform .2s ease; }
  .nav-category__toggle .nav-chevron { margin: 0; }
  .main-nav > button[aria-expanded="true"] .nav-chevron,
  .nav-category__toggle[aria-expanded="true"] .nav-chevron { transform: rotate(180deg); }
  .mega-menu { display: none; }
  .mega-menu__group { display: none; }
  .main-nav > .mega-menu__group:is(.is-mobile-open, .is-mobile-closing) {
    display: flex;
    width: 100%;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0 0 12px;
    border: 0;
    border-bottom: 1px solid #e8ebed;
    border-radius: 0;
    background: transparent;
  }
  .main-nav > .mega-menu__group a {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-self: stretch;
    align-items: center;
    justify-content: flex-start;
    padding: 10px 12px;
    color: #646c71;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    white-space: normal;
    transition: color .2s ease;
  }
  .main-nav > .mega-menu__group a:hover { color: #111; }
  .main-nav > .mega-menu__group a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: var(--radius-control); }
  .hero__copy { top: 50%; right: 20px; left: 20px; }
  html.has-text-motion [data-text-reveal] { transform: translate3d(0, 16px, 0); }
  .hero__eyebrow { margin-bottom: 16px; }
  .hero h1 { max-width: 350px; margin-inline: auto; line-height: 1.55; }
  .hero-nav { bottom: calc(clamp(120px, 25vh, 220px) + env(safe-area-inset-bottom)); width: calc(100% - 72px); }
  .hero-nav__item { min-height: 44px; padding: 6px 4px 0; font-size: clamp(15px, 4vw, 17px); }
  .about { margin-top: 0; border-radius: 32px 32px 0 0; }
  .about__intro { min-height: 0; padding: 90px 22px 64px; }
  .section-label { margin-bottom: 16px; font-size: 18px; }
  .about h2, .products h2 { font-size: clamp(30px, 8vw, 38px); line-height: 1.38; }
  .desktop-break { display: none; }
  .about__description { margin-top: 22px; font-size: 16px; line-height: 1.8; }
  .about__photo { height: 100svh; max-height: calc(100svh - 1px); min-height: 0; }
  .products { margin-top: 0; padding-bottom: 64px; }
  .products__intro { height: auto; min-height: 390px; padding: 84px 22px 58px; }
  .about__intro .section-label,
  .products__intro .section-label { margin-bottom: 16px; }
  .products__intro h2 { font-size: clamp(28px, 7.25vw, 34px); }
  .products__intro h2 br { display: none; }
  .products__description { margin-top: 20px; font-size: 16px; line-height: 1.75; }
  .product-list { gap: 14px; }
  .product-card { width: calc(100% - 28px); min-height: 0; }
  .product-card--die, .product-card--plate { height: 100svh; max-height: calc(100svh - 1px); }
  .product-card__copy { right: 18px; bottom: 20px; left: 18px; }
  .product-card h3 { font-size: clamp(24px, 6vw, 29px); line-height: 1.45; }
  .product-card p { margin-top: 8px; font-size: 16px; line-height: 1.7; }
  .product-card p br { display: none; }
  .page-spacer { height: 100px; min-height: 0; }
  .footer { min-height: 0; }
  .footer__inner { width: calc(100% - 44px); min-height: 0; flex-direction: column; gap: 34px; padding: 32px 0; }
  .company-info { width: 100%; }
  .company-info dl > div { grid-template-columns: 68px 1fr; }
  .company-info dd { font-size: 13.2px; }
  .footer-nav { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .footer-nav__group { gap: 8px; }
  .footer-nav__heading,
  .footer-nav__direct-link { font-size: 14.3px; }
  .footer-nav__subcategory { font-size: 13.2px; }
}

@media (max-width: 900px) {
  .subpage-hero { min-height: 340px; height: 56svh; padding-bottom: 38px; }
  .subpage-content { padding: 58px 0 82px; }
  .certificate-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .page-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .detail-copy { padding-top: 60px; }
  .detail-visual { margin-inline: 14px; }
  .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .subpage-hero { min-height: 340px; height: 54svh; padding: 100px 22px 32px; }
  /* A narrow rail keeps generous links, scaling down only on short screens. */
  .section-nav { --section-nav-link-height: clamp(24px, calc((100svh - var(--site-header-height) - 72px) / var(--section-nav-item-count, 6)), 44px); top: auto; right: env(safe-area-inset-right, 0px); bottom: max(24px, calc(env(safe-area-inset-bottom) + 16px)); width: 44px; min-width: 44px; max-width: 44px; flex-basis: 44px; gap: 0; padding: 6px 0; border: 0; background: transparent; backdrop-filter: none; box-shadow: none; transform: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .24s ease, visibility 0s linear .24s; }
  .section-nav::before { position: absolute; inset: 0 13px; border: 1px solid rgb(32 43 56 / 8%); border-radius: var(--radius-pill); background: rgb(255 255 255 / 90%); content: ''; pointer-events: none; }
  .section-nav.is-scrolled { border: 0; background: transparent; box-shadow: none; }
  .section-nav.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  .section-nav__current, .section-nav__current.is-dark-text { top: auto; right: calc(env(safe-area-inset-right, 0px) + 48px); max-width: calc(100vw - 76px); padding: 5px 8px; border: 1px solid rgb(32 43 56 / 8%); border-radius: var(--radius-small); background: rgb(255 255 255 / 96%); color: var(--ink); font-size: 11px; white-space: normal; word-break: keep-all; }
  html:has(.section-nav:not(.is-visible)) .section-nav__current { opacity: 0; visibility: hidden; }
  .section-nav__gap { display: none; }
  .section-nav__link { width: 100%; }
  .section-nav__link::after { width: 44px; height: var(--section-nav-link-height); border-radius: var(--radius-control); }
  .section-nav .section-nav__link::before { width: 4px; height: 4px; border: 0; background: #7e8b99; box-shadow: none; opacity: .65; transform: none; }
  .section-nav .section-nav__link[aria-current="location"]::before,
  .section-nav.is-scrolled .section-nav__link[aria-current="location"]::before,
  .section-nav.is-scrolled .section-nav__link[aria-current="location"]:is(:hover, :focus-visible)::before { width: 8px; height: 8px; background: var(--accent); box-shadow: none; opacity: 1; transform: none; }
  .section-nav .section-nav__link:is(:hover, :focus-visible)::before { background: var(--accent); opacity: 1; transform: none; }
  .section-nav__link:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
  .subpage-hero h1 { font-size: clamp(32px, 9vw, 40px); }
  .subpage-hero__description { margin-top: 12px; font-size: 15px; }
  .breadcrumb { margin-top: 20px; font-size: 12px; }
  .subpage-content { padding: 46px 0 62px; }
  .subpage-content__lead { font-size: var(--type-page-lead); }
  .certificate-gallery { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 26px; }
  .page-shell[data-page="certificates.html"] .certificate-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
  .certificate-gallery__link { padding: 12px; }
  .page-tiles { grid-template-columns: 1fr; gap: 12px; margin-top: 26px; }
  .page-tile { min-height: 0; }
  .page-tile__image { height: 132px; }
  .page-tile__copy { min-height: 58px; padding: 12px 15px; }
  .detail-copy { padding: 46px 0 32px; }
  .detail-copy p { font-size: var(--type-body-copy); }
  .detail-visual { margin-inline: 10px; }
  .detail-visual__copy { padding: 34px 0; }
  .detail-visual__copy p { font-size: 15px; }
  .info-grid { grid-template-columns: 1fr; gap: 10px; }
  .info-card { min-height: 112px; padding: 18px; }
  .empty-state { padding: 25px; font-size: 14px; }
  .footer-nav { width: 100%; grid-template-columns: repeat(2, 1fr); }
}


/* Desktop wheel transitions use the controller; touch devices use native snapping. */
html:has([data-section-nav]) {
  scroll-padding-top: 0;
  scroll-snap-type: none;
}
@media (hover: none) and (pointer: coarse) {
  html:has([data-section-nav]) { scroll-snap-type: y mandatory; }
}
html.has-section-wheel-input:has([data-section-nav]) { scroll-snap-type: none; }
html:has([data-section-nav]) .scene-track {
  position: relative;
  height: 100svh;
  scroll-snap-align: start;
}
html:has([data-section-nav]) .scene-track__pin {
  position: relative;
  height: 100svh;
}
html:has([data-section-nav]) .scene-track__pin > :is(.hero, .about, .products, .network) {
  height: 100svh;
  margin: 0;
}
html:has([data-section-nav]) .scene-track.scene-track--inquiry,
html:has([data-section-nav]) .scene-track.scene-track--inquiry > .scene-track__pin { height: auto; min-height: 100svh; }
html:has([data-section-nav]) .scene-track--footer { height: auto; }
html:has([data-section-nav]) .scene-track--footer > .scene-track__pin { height: auto; }
html:has([data-section-nav]) .about {
  display: grid;
  height: 100svh;
  min-height: 0;
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  grid-template-rows: minmax(0, 1fr);
}
html:has([data-section-nav]) .about__intro {
  min-height: 0;
  max-height: 100svh;
  justify-content: safe center;
  padding: clamp(28px, 5vw, 84px);
  overflow-y: auto;
  scrollbar-width: thin;
}
html:has([data-section-nav]) .about__intro > * { flex-shrink: 0; }
html:has([data-section-nav]) .about__intro:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
html:has([data-section-nav]) .about .section-label { margin-bottom: clamp(10px, 1.6vh, 18px); font-size: clamp(15px, 1.35vw, 20px); }
html:has([data-section-nav]) .about h2 { font-size: var(--type-home-heading); line-height: 1.28; }
html:has([data-section-nav]) .about__description {
  max-width: 650px;
  margin-top: clamp(16px, 2.3vh, 28px);
  font-size: var(--type-home-about-copy);
  line-height: 1.6;
  letter-spacing: -0.03em;
}
html:has([data-section-nav]) .about__photo { height: 100%; max-height: none; }
html:has([data-section-nav]) .about h2,
html:has([data-section-nav]) .products h2,
html:has([data-section-nav]) .network h2,
html:has([data-section-nav]) .product-card h3 { text-wrap: balance; word-break: keep-all; }
html:has([data-section-nav]) .about__description,
html:has([data-section-nav]) .products__description,
html:has([data-section-nav]) .network__description,
html:has([data-section-nav]) .product-card p,
html:has([data-section-nav]) .company-info dd,
html:has([data-section-nav]) .footer-nav__subcategory { word-break: keep-all; }
html:has([data-section-nav]) .products {
  display: grid;
  height: 100svh;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(12px, 2.1svh, 22px);
  padding: calc(var(--site-header-height) + clamp(12px, 2.4svh, 26px)) clamp(18px, 3vw, 44px) clamp(16px, 2.6svh, 28px) clamp(18px, 3vw, 44px);
}
html:has([data-section-nav]) .products__intro { display: flex; min-height: 0; flex-direction: column; justify-content: center; padding: 0; }
html:has([data-section-nav]) .products__intro .section-label { margin-bottom: clamp(8px, 1.2svh, 14px); font-size: clamp(13px, 1vw, 16px); }
html:has([data-section-nav]) .products h2 { font-size: var(--type-home-product-heading); line-height: 1.25; }
html:has([data-section-nav]) .products__description { margin-top: clamp(8px, 1.4svh, 16px); font-size: var(--type-home-copy); line-height: 1.45; }
html:has([data-section-nav]) .network {
  height: 100svh;
  min-height: 0;
  grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
  gap: clamp(18px, 3vw, 44px);
  padding: calc(var(--site-header-height) + clamp(12px, 2.4svh, 26px)) clamp(18px, 3vw, 44px) clamp(16px, 2.6svh, 28px);
}
html:has([data-section-nav]) .network__intro { padding-inline: clamp(8px, 2vw, 30px); }
html:has([data-section-nav]) .network .section-label { margin-bottom: clamp(8px, 1.2svh, 14px); font-size: clamp(13px, 1vw, 16px); }
html:has([data-section-nav]) .network h2 { font-size: var(--type-home-heading); line-height: 1.28; }
html:has([data-section-nav]) .network__description { margin-top: clamp(10px, 2.1svh, 24px); font-size: var(--type-home-copy); line-height: 1.5; }
html:has([data-section-nav]) .network__map { padding: clamp(16px, 2.2vw, 32px); }
html:has([data-section-nav]) .network__map-count { top: clamp(12px, 1.8vw, 24px); left: clamp(14px, 2vw, 28px); }
html:has([data-section-nav]) .network__map-count strong { font-size: clamp(28px, 3.4vw, 46px); }
html:has([data-section-nav]) .network__map-count span,
html:has([data-section-nav]) .network__map figcaption { font-size: clamp(10px, .95vw, 13px); }
html:has([data-section-nav]) .product-list {
  min-height: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.8vw, 24px);
}
html:has([data-section-nav]) .product-card { width: 100%; min-height: 0; }
html:has([data-section-nav]) .product-card--die,
html:has([data-section-nav]) .product-card--plate { height: 100%; max-height: none; min-height: 0; }
html:has([data-section-nav]) .product-card__copy { right: clamp(18px, 2.5vw, 38px); bottom: clamp(16px, 2.4svh, 28px); left: clamp(18px, 2.5vw, 38px); }
html:has([data-section-nav]) .product-card h3 { font-size: var(--type-home-card-heading); line-height: 1.3; }
html:has([data-section-nav]) .product-card p { font-size: var(--type-home-card-copy); line-height: 1.45; }
html:has([data-section-nav]) .footer { height: auto; min-height: 0; }
html:has([data-section-nav]) .footer__inner {
  height: auto;
  min-height: 0;
  align-items: flex-start;
  padding-block: 32px max(32px, env(safe-area-inset-bottom, 0px));
}

@media (max-width: 680px) {
  :root {
    /* Keep a balanced gutter clear of the 22px section capsule. */
    --gutter: 28px;
    --type-home-heading: clamp(1.75rem, calc(1.4rem + 1.5vw), 2.125rem);
    --type-home-product-heading: clamp(1.5rem, calc(1.15rem + 1.6vw), 1.875rem);
    --type-home-about-copy: 1.0625rem;
    --type-home-copy: 1rem;
    --type-home-card-heading: clamp(1.25rem, calc(.95rem + 1.2vw), 1.5rem);
    --type-home-card-copy: 1rem;
    --type-body-copy: 1rem;
    --type-page-lead: 1.0625rem;
  }
  /* Home snap scenes keep the shared 100svh height; media takes the remainder. */
  html:has([data-section-nav]) .about {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
  }
  html:has([data-section-nav]) .about__intro {
    padding: calc(var(--site-header-height) + 16px) var(--gutter) 24px;
  }
  html:has([data-section-nav]) .about .section-label { margin-bottom: 8px; font-size: 15px; }
  html:has([data-section-nav]) .about h2 { font-size: var(--type-home-heading); line-height: 1.35; }
  html:has([data-section-nav]) .about__description { margin-top: 16px; font-size: var(--type-home-about-copy); line-height: 1.65; }
  html:has([data-section-nav]) .about__photo { min-height: 0; }
  html:has([data-section-nav]) .products {
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(8px, 1.5svh, 14px);
    padding: calc(var(--site-header-height) + clamp(6px, 1.4svh, 12px)) var(--gutter) clamp(10px, 1.8svh, 18px);
  }
  html:has([data-section-nav]) .products__intro .section-label { margin-bottom: 10px; font-size: 15px; }
  html:has([data-section-nav]) .products h2 { font-size: var(--type-home-product-heading); line-height: 1.35; }
  html:has([data-section-nav]) .products__intro h2 br { display: none; }
  html:has([data-section-nav]) .products__description { margin-top: 12px; font-size: var(--type-home-copy); line-height: 1.6; }
  html:has([data-section-nav]) .network {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: 16px;
    padding: calc(var(--site-header-height) + 16px) var(--gutter) 24px;
  }
  html:has([data-section-nav]) .network__intro { min-height: 0; padding-inline: 0; }
  html:has([data-section-nav]) .network .section-label { margin-bottom: 10px; font-size: 15px; }
  html:has([data-section-nav]) .network h2 { font-size: var(--type-home-heading); line-height: 1.35; }
  html:has([data-section-nav]) .network__description { margin-top: 12px; font-size: var(--type-home-copy); line-height: 1.6; }
  html:has([data-section-nav]) .network__more { margin-top: 8px; font-size: 16px; }
  html:has([data-section-nav]) .network__map { padding: 6px 8px; }
  /* Give the map the remaining screen height; SVG labels scale with its viewBox. */
  html:has([data-section-nav]) .network-map__label { font-size: 28px; }
  html:has([data-section-nav]) .network-map > g[aria-hidden="true"] text { font-size: 22px; }
  html:has([data-section-nav]) .network-map__connector { vector-effect: non-scaling-stroke; stroke-opacity: .8; }
  html:has([data-section-nav]) .network-map__dot { vector-effect: non-scaling-stroke; stroke-width: 1.5px; }
  html:has([data-section-nav]) .network__map-count { top: 8px; left: 12px; gap: 5px; }
  html:has([data-section-nav]) .network__map-count strong { font-size: 24px; }
  html:has([data-section-nav]) .network__map-count span,
  html:has([data-section-nav]) .network__map figcaption { font-size: 13px; }
  html:has([data-section-nav]) .network__map figcaption { padding-top: 4px; }
  html:has([data-section-nav]) .product-list { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: clamp(8px, 1.5svh, 14px); }
  html:has([data-section-nav]) .product-card { display: flex; flex-direction: column; justify-content: flex-end; min-height: 0; }
  html:has([data-section-nav]) .product-card__copy { position: relative; inset: auto; min-height: 0; max-height: 100%; padding: 54px 16px 14px; overflow-y: auto; overscroll-behavior-y: contain; }
  html:has([data-section-nav]) .product-card h3 { font-size: var(--type-home-card-heading); line-height: 1.35; }
  html:has([data-section-nav]) .product-card p { margin-top: 8px; font-size: var(--type-home-card-copy); line-height: 1.5; }
  html:has([data-section-nav]) .product-card p br { display: none; }
  .product-card__more { min-height: 44px; padding-inline: 12px; font-size: 15px; }
  .product-card__options a { font-size: 16px; }
}

@media (max-width: 680px) and (max-height: 740px) {
  html:has([data-section-nav]) .products__intro .section-label { margin-bottom: 6px; font-size: 14px; }
  html:has([data-section-nav]) .products h2 { font-size: 22px; line-height: 1.25; }
  html:has([data-section-nav]) .products__description { margin-top: 8px; line-height: 1.4; }
  html:has([data-section-nav]) .product-card__copy { padding: 52px 12px 10px; }
  html:has([data-section-nav]) .product-card h3 { font-size: 18px; line-height: 1.3; }
  html:has([data-section-nav]) .product-card p { margin-top: 6px; line-height: 1.4; }
}

@media (prefers-reduced-motion: reduce) {
  html.has-text-motion [data-text-reveal] { opacity: 1 !important; filter: none !important; transform: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
  .hero__slide { filter: saturate(.82); }
  .hero__slide.is-active { filter: saturate(.82); }
  .hero__slide.is-active.is-defocusing { filter: saturate(.82); }
  .hero__slide.is-outgoing { filter: saturate(.82); }
  .hero__slide.is-photo-animating img { animation: none !important; transform: none !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Mobile footer: contact information, disclosures, then quick links. */
@media (max-width: 680px) {
  /* Let an expanded footer category settle at its own position on touch devices. */
  html:has(.footer-nav__accordion[open]) { scroll-snap-type: none; }
  html:has([data-section-nav]) .scene-track--footer,
  html:has([data-section-nav]) .scene-track--footer > .scene-track__pin {
    position: relative;
    height: auto;
  }
  html:has([data-section-nav]) .footer { height: auto; min-height: 0; }
  html .footer .footer__inner {
    width: auto;
    height: auto;
    min-height: 0;
    margin-inline: var(--gutter);
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 28px;
    padding: 36px 0 max(28px, env(safe-area-inset-bottom));
  }
  html:has([data-section-nav]) .footer__inner { padding-top: 28px; }
  html .footer .company-info { width: 100%; }
  html .footer .brand--footer .brand__image { width: 132px; }
  html .footer .company-info dl { gap: 12px; margin-top: 24px; }
  html .footer .company-info dl > div { grid-template-columns: 64px minmax(0, 1fr); gap: 8px; align-items: baseline; }
  html .footer .company-info dt,
  html .footer .company-info dd { font-size: 17.6px; line-height: 1.65; word-break: keep-all; overflow-wrap: anywhere; }
  html .footer .company-info dd a[href^="tel:"] {
    display: inline-block;
    min-height: 44px;
    margin-block: -11px;
    padding-block: 11px;
    color: inherit;
    font: inherit;
  }
  html .footer .footer-nav { width: 100%; grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; border-top: 1px solid #e8ebed; }
  html .footer .footer-nav__group { align-items: stretch; gap: 0; border-bottom: 1px solid #e8ebed; text-align: left; }
  html .footer .footer-nav__accordion { display: block; }
  html .footer .footer-nav__heading,
  html .footer .footer-nav__summary {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 24px 14px 0;
    font-size: 17.6px;
    line-height: 1.5;
    list-style: none;
  }
  html .footer .footer-nav__summary { padding-top: 6px; padding-bottom: 6px; color: #30383d; font-weight: 650; }
  html .footer .footer-nav__summary > .footer-nav__heading { min-height: 44px; padding: 8px 0; color: #30383d; }
  html .footer .footer-nav__accordion[open]:not(.is-closing) > .footer-nav__summary > .footer-nav__heading { color: var(--accent); }
  html .footer .footer-nav__heading:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
  .footer-nav__accordion > summary { cursor: pointer; }
  .footer-nav__chevron { margin-right: 0; transition: transform var(--menu-open-time) var(--menu-open-ease); }
  .footer-nav__accordion > summary::-webkit-details-marker { display: none; }
  html .footer .footer-nav__heading::after { content: none; }
  html .footer .footer-nav__accordion[open] > summary > .footer-nav__chevron { transform: rotate(180deg); }
  html .footer .footer-nav__accordion.is-closing > summary > .footer-nav__chevron { transform: rotate(0); }
  html .footer .footer-nav__subcategories { align-items: stretch; gap: 0; padding-bottom: 12px; }
  html .footer .footer-nav__subcategory { display: flex; min-height: 44px; align-items: center; padding: 10px 12px; font-size: 17.6px; line-height: 1.5; text-align: left; }
  html .footer .footer-nav__direct { display: flex; flex-direction: column; gap: 0; padding: 0; }
  html .footer .footer-nav__direct-link {
    display: flex;
    width: 100%;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 24px 14px 0;
    border-bottom: 1px solid #e8ebed;
    font-size: 17.6px;
    line-height: 1.5;
    text-align: left;
  }
  html .footer .footer-nav__direct-link::after { content: none; }
  html .footer .footer-nav__direct-link > [data-icon] { --icon-size: var(--icon-link-size); }
  html .footer :is(summary, a):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: var(--radius-control); }
}

/* Shared subpage title template */
body:has(.page-shell) .site-header { background: var(--header-active-surface); backdrop-filter: blur(var(--header-active-blur)); box-shadow: var(--header-active-shadow); }
body:has(.page-shell) .site-header:is(.has-open-menu, .is-menu-closing) { box-shadow: none; }
@media (max-width: 680px) {
  body:has(.page-shell) .site-header { background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }
}
body:has(.page-shell) .site-header .main-nav > :is(a, button, .nav-category) { color: #202b38; }
body:has(.page-shell) .site-header .main-nav > :is(a, button, .nav-category):is(:hover, :focus-visible, :focus-within, .is-submenu-active) { color: var(--accent); }
body:has(.page-shell) .site-header .main-nav > :is(a, button, .nav-category)::after { background: var(--accent); }
body:has(.page-shell) .site-header .nav-chevron { color: rgba(32,43,56,.65); }
body:has(.page-shell) .site-header .menu-toggle { --menu-icon-color: var(--accent); }
.organization-page { --org-ink: var(--ink); --org-muted: var(--muted); --org-line: #c5cdd7; --org-die: #ac814d; --org-plate: #578092; width: min(1740px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding-bottom: clamp(76px,8vw,120px); color: var(--org-ink); }
.page-shell {
  --page-heading-top-space: clamp(38px, 5vw, 70px);
  --page-heading-bottom-space: clamp(32px, 4vw, 56px);
  padding-top: calc(var(--site-header-height) + var(--page-heading-top-space));
}
.page-preview-notice { width: min(1120px, calc(100% - 2 * var(--gutter))); box-sizing: border-box; margin: 0 auto 40px; padding: 24px 28px; border: 1px solid #dce4ed; border-radius: var(--radius-card); background: #f5f8fc; color: var(--ink); word-break: keep-all; overflow-wrap: anywhere; }
.page-preview-notice__title { margin: 0 0 8px; font-size: 16px; font-weight: 700; }
.page-preview-notice__description { margin: 0; color: #536173; font-size: 15px; line-height: 1.8; }
.page-heading { width: min(1320px, calc(100% - 2 * var(--gutter))); margin: 0 auto; padding-bottom: var(--page-heading-bottom-space); border-bottom: 1px solid #e8ebed; color: var(--ink); text-align: center; }
.organization-page .page-heading { width: min(1320px, 100%); }
.page-heading__eyebrow { margin: 0 0 16px; color: var(--accent); font-size: 13px; font-weight: 600; line-height: 1.4; letter-spacing: -0.005em; }
.page-heading__title { margin: 0; font-size: clamp(2rem, calc(1.65rem + 1.3vw), 3.25rem); font-weight: 600; line-height: 1.28; letter-spacing: -0.06em; }
.page-heading__description { max-width: 760px; margin: 20px auto 0; color: var(--design-muted, #586570); font-size: clamp(15px, 1.4vw, 18px); font-weight: 400; line-height: 1.6; letter-spacing: -0.03em; }
.customers-reference-visual { width: min(1740px, calc(100% - 2 * var(--gutter))); margin: 34px auto 0; padding-bottom: clamp(76px,8vw,120px); }
.customers-reference-visual img { display: block; width: 100%; height: auto; }
/* Organization content stays independent of the shared title template. */
.organization-layout { display: grid; grid-template-columns: minmax(0,.46fr) minmax(0,1fr); gap: 44px; margin-top: 36px; }
.organization-location { padding: 0 40px 36px 0; border-right: 1px solid #e8ebed; }
.organization-location__heading, .organization-chart__heading { margin: 0; font-size: clamp(20px,1.5vw,24px); font-weight: 600; line-height: 1.4; letter-spacing: -0.05em; }
.organization-location__count { margin: 5px 0 0; color: var(--org-muted); font-size: 14px; }
.organization-location__map { margin: 28px 0 24px; }
.organization-location__map img { display: block; width: 100%; max-width: 510px; height: auto; margin: 0 auto; }
.organization-location__legend { display: flex; flex-wrap: wrap; gap: 20px 56px; margin: 0 0 14px; padding: 0; list-style: none; color: var(--org-muted); font-size: 13px; }
.organization-location__legend li { display: flex; align-items: center; gap: 10px; }
.organization-location__legend li::before { width: 9px; height: 9px; border-radius: 50%; background: var(--org-die); content: ''; }
.organization-location__legend .is-plate::before { background: var(--org-plate); }
.organization-map-credit { margin-top: 28px; color: var(--org-muted); font-size: 12px; line-height: 1.65; }
.organization-map-credit summary { display: flex; align-items: center; gap: 8px; width: fit-content; min-height: 44px; margin-left: auto; padding: 8px 0 8px 12px; list-style: none; cursor: pointer; }
.organization-map-credit summary::-webkit-details-marker { display: none; }
.organization-map-credit summary > [data-icon] { --icon-size: 12px; transition: transform .2s ease; }
.organization-map-credit[open] summary > [data-icon] { transform: rotate(180deg); }
.organization-map-credit summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.organization-map-credit__content { padding: 8px 0 4px; text-align: right; word-break: keep-all; }
.organization-map-credit__content p { margin: 4px 0; }
.organization-chart { min-width: 0; }
.organization-chart__tree { margin-top: 0; }
.organization-chart__top { position: relative; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 24px; align-items: center; }
.organization-chart__leader { position: relative; grid-column: 3; display: grid; place-items: center; min-height: 70px; padding: 12px; border-radius: var(--radius-card); background: var(--accent); color: #fff; text-align: center; }
.organization-chart__leader strong { font-size: 23px; font-weight: 600; line-height: 1.4; letter-spacing: -0.04em; }
.organization-chart__leader::after { position: absolute; top: 100%; left: 50%; height: 20px; border-left: 1.5px solid var(--org-line); content: ''; }
.organization-chart__research { position: relative; grid-column: 4 / 6; justify-self: start; width: min(calc(100% - 30px),260px); margin-left: 30px; display: grid; place-items: center; min-height: 66px; padding: 12px; border: 1px solid #e0e5e9; border-radius: var(--radius-card); background: var(--paper); font-size: 17px; font-weight: 600; letter-spacing: -0.03em; text-align: center; }
.organization-chart__research::before { position: absolute; right: 100%; top: 50%; width: 54px; border-top: 1.5px dashed var(--org-line); content: ''; }
.organization-chart__departments { position: relative; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 24px; margin: 54px 0 0; padding: 0; list-style: none; }
.organization-chart__departments::before { position: absolute; top: -34px; left: calc((100% - 96px) / 10); right: calc((100% - 96px) / 10); border-top: 1.5px solid var(--org-line); content: ''; }
.organization-department { --branch-color: var(--org-line); position: relative; min-width: 0; }
.organization-department::before { position: absolute; top: -34px; left: 50%; height: 34px; border-left: 1.5px solid var(--org-line); content: ''; }
.organization-department__title { display: grid; place-items: center; min-height: 66px; margin: 0; padding: 12px 8px; border: 1px solid #e0e5e9; border-radius: var(--radius-card); background: var(--paper); font-size: clamp(14px,1.1vw,20px); font-weight: 600; line-height: 1.5; text-align: center; letter-spacing: -0.04em; word-break: keep-all; }
.organization-department--die { --branch-color: var(--org-die); }
.organization-department--plate { --branch-color: var(--org-plate); }
.organization-department--die .organization-department__title, .organization-department--plate .organization-department__title { border-left-color: var(--branch-color); border-left-width: 3px; }
.organization-department__children { position: relative; display: grid; gap: 10px; margin: 66px 8px 0 34px; padding: 0; list-style: none; }
.organization-department__children::before { position: absolute; bottom: 23px; left: -21px; top: -30px; border-left: 1.5px solid var(--branch-color); content: ''; }
.organization-department__children::after { position: absolute; top: -66px; right: calc(50% + 13px); width: calc(50% + 8px); height: 36px; border-right: 1.5px solid var(--branch-color); border-bottom: 1.5px solid var(--branch-color); content: ''; }
.organization-department__children li { position: relative; display: flex; align-items: center; min-height: 46px; padding: 9px 10px; border: 1px solid #e8ebed; border-radius: var(--radius-small); color: var(--org-ink); background: var(--paper); letter-spacing: -0.02em; font-size: 15px; line-height: 1.5; word-break: keep-all; }
.organization-department__children li::before { position: absolute; right: 100%; top: 50%; width: 21px; border-top: 1.5px solid var(--branch-color); content: ''; }
@media (max-width: 1300px) and (min-width: 901px) {
  .organization-layout { grid-template-columns: minmax(280px,.46fr) minmax(0,1fr); gap: 28px; }
  .organization-location { padding-right: 24px; }
  .organization-chart__top, .organization-chart__departments { gap: 14px; }
  .organization-chart__departments::before { left: calc((100% - 56px) / 10); right: calc((100% - 56px) / 10); }
  .organization-chart__research { margin-left: 14px; width: min(calc(100% - 14px),220px); font-size: 14px; }
  .organization-chart__research::before { width: 28px; }
  .organization-chart__leader strong { font-size: 18px; }
  .organization-department__title { font-size: 14px; padding-inline: 5px; }
  .organization-department__children { margin-left: 24px; margin-right: 0; }
  .organization-department__children::after { right: calc(50% + 12px); width: calc(50% + 9px); }
  .organization-department__children li { padding-inline: 6px; font-size: 12px; }
  .organization-location__legend { gap: 12px 24px; }
}
@media (max-width: 900px) {
  .page-shell { --page-heading-top-space: 34px; }
  .page-heading, .organization-page { width: calc(100% - 44px); }
  .organization-layout { grid-template-columns: 1fr; gap: 20px; }
  .organization-location { padding: 0; border-right: 0; }
  .organization-location__map { max-width: 440px; margin: 10px auto 20px; }
  .organization-chart__tree { margin-top: 0; }
  .organization-location__legend { margin-bottom: 0; }
  .organization-map-credit { margin-top: 24px; }
  .organization-chart__top { gap: 14px; }
  .organization-chart__departments { gap: 14px; }
  .organization-chart__departments::before { left: calc((100% - 56px) / 10); right: calc((100% - 56px) / 10); }
  .organization-chart__research { margin-left: 10px; width: calc(100% - 10px); font-size: 14px; }
  .organization-chart__research::before { width: 24px; }
  .organization-chart__leader strong { font-size: 18px; }
  .organization-department__title { font-size: 14px; padding-inline: 5px; }
  .organization-department__children { margin-left: 24px; margin-right: 0; }
  .organization-department__children::after { right: calc(50% + 12px); width: calc(50% + 9px); }
  .organization-department__children li { font-size: 12px; padding-inline: 6px; }
}
@media (max-width: 680px) {
  .organization-layout { margin-top: 26px; }
  .organization-chart__top { display: flex; justify-content: space-between; gap: 24px; }
  .organization-chart__leader { width: 45%; min-height: 64px; }
  .organization-chart__leader::after { left: 24px; height: 30px; }
  .organization-chart__research { width: calc(55% - 24px); min-height: 58px; margin-left: 0; padding: 8px; }
  .organization-chart__departments { grid-template-columns: 1fr; gap: 24px; margin-top: 30px; padding-left: 46px; }
  .organization-chart__departments::before { top: 0; bottom: auto; height: 32px; left: 24px; right: auto; border-top: 0; border-left: 1.5px solid var(--org-line); }
  .organization-department::before { top: 32px; left: -22px; width: 22px; height: 0; border-left: 0; border-top: 1.5px solid var(--org-line); }
  .organization-department::after { position: absolute; top: 32px; bottom: -56px; left: -22px; border-left: 1.5px solid var(--org-line); content: ""; }
  .organization-department:last-child::after { display: none; }
  .organization-department__title { min-height: 64px; font-size: 16px; }
  .organization-department__children { gap: 8px; margin: 28px 0 0 24px; }
  .organization-department__children::after { top: -28px; height: 12px; right: calc(50% + 12px); }
  .organization-department__children::before { top: -16px; }
  .organization-department__children li { font-size: 14px; padding-inline: 12px; }
}

/* The unlabelled map and interactive locations share a 480 x 640 canvas. */
.organization-location__canvas { position: relative; container-type: inline-size; width: 100%; max-width: 480px; margin-inline: auto; }
.organization-location__points, .organization-location__connectors { position: absolute; inset: 0; width: 100%; height: 100%; }
.organization-location__connectors { pointer-events: none; fill: none; stroke: #a7b8c4; stroke-width: 1; }
.organization-location__connectors .is-selected { stroke: var(--accent); stroke-width: 2; }
.organization-map-point { --point-color: var(--org-plate); position: absolute; left: var(--x); top: var(--y); width: 24px; height: 24px; transform: translate(-50%, -50%); margin: 0; padding: 0; border: 0; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.organization-map-point--die { --point-color: var(--org-die); }
.organization-map-point--headquarters { --point-color: var(--accent); }
.organization-location__legend .is-headquarters::before { background: var(--accent); }
.organization-map-point__label { position: absolute; left: calc(12px + var(--label-x)); top: calc(12px + var(--label-y)); transform: translate(-50%, -50%); padding: 7px 9px; border: 1px solid #e2e8ed; border-radius: var(--radius-control); background: #fff; color: #344854; font-size: clamp(12px, 3.4cqw, 15px); font-weight: 600; line-height: 1.3; white-space: nowrap; transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease; }
.organization-map-point--headquarters .organization-map-point__label { border-color: #9cbedb; color: var(--accent); font-weight: 700; }
.organization-map-point__dot { position: absolute; inset: 6px; border: 2px solid #fff; border-radius: 50%; background: var(--point-color); box-shadow: 0 0 0 1px color-mix(in srgb, var(--point-color) 35%, transparent); transition: box-shadow 180ms ease; }
.organization-map-point__dot::after { position: absolute; inset: -6px; border: 1.5px solid var(--accent); border-radius: 50%; content: ''; opacity: 0; transform: scale(.8); transition: transform 180ms ease, opacity 180ms ease; }
.organization-map-point.is-selected { z-index: 2; }
.organization-map-point.is-selected .organization-map-point__label { color: #fff; border-color: var(--accent); background: var(--accent); font-weight: 700; box-shadow: 0 3px 10px #0054a61a; }
.organization-map-point.is-selected .organization-map-point__dot { background: var(--accent); box-shadow: 0 0 0 5px #0054a618; }
.organization-map-point.is-selected .organization-map-point__dot::after { opacity: 1; transform: scale(1); }
.organization-map-point:focus-visible { outline: none; }
.organization-map-point:focus-visible .organization-map-point__label { outline: 2px solid var(--accent); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .organization-map-point__label { transition: none; } }
.organization-location__hint { margin: 14px 20px 0; color: var(--org-muted); font-size: 12px; line-height: 1.6; text-align: left; word-break: keep-all; }
.organization-chart__tree { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); column-gap: 24px; }
.organization-chart__heading { grid-column: 1 / -1; grid-row: 1; }
.organization-chart__top { grid-column: 1 / -1; grid-row: 2; margin-top: 56px; }
.organization-chart__departments { grid-column: 1 / -1; grid-row: 3; }
.organization-branch-panel { --panel-muted: #52616c; --panel-line: #e0e5e9; position: relative; z-index: 1; grid-column: 1 / 4; grid-row: 3; align-self: start; min-width: 0; min-height: 268px; margin: 168px 10px 0 0; padding: 22px 0 0; border-top: 1px solid var(--org-line); background: var(--paper); scroll-margin-top: calc(var(--site-header-height) + 20px); }
.organization-branch-panel:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.organization-branch-panel [hidden] { display: none; }
.organization-branch-panel__empty > p { max-width: 34ch; margin: 12px 0 0; font-size: 14px; color: var(--panel-muted); line-height: 1.8; word-break: keep-all; }
.organization-branch-panel h3 { margin: 0; font-size: clamp(22px,1.8vw,26px); font-weight: 600; line-height: 1.4; letter-spacing: -0.03em; }
.organization-branch-panel__empty h3 { font-size: 20px; }
.organization-branch-panel__heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; }
.organization-branch-panel__heading p { margin: 0; color: var(--panel-muted); font-size: 13px; line-height: 1.5; }
.organization-branch-panel__facts { margin: 18px 0 0; }
.organization-branch-panel__facts > div { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: baseline; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--panel-line); font-size: 15px; line-height: 1.7; }
.organization-branch-panel__facts dt { color: var(--panel-muted); font-size: 13px; }
.organization-branch-panel__facts dd { margin: 0; word-break: keep-all; overflow-wrap: anywhere; }
.organization-branch-panel__facts a { display: inline-block; color: var(--ink); text-decoration: underline; text-decoration-color: var(--org-line); text-underline-offset: 4px; overflow-wrap: anywhere; }
.organization-branch-panel__facts a:hover { color: var(--accent); text-decoration-color: currentColor; }
.organization-branch-panel__facts a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 2px; }
.organization-department__children li:has(.organization-branch-button) { padding: 0; transition: border-color 180ms ease, background-color 180ms ease; }
.organization-branch-button { display: block; width: 100%; min-height: 44px; padding: 9px 10px; border: 0; border-radius: inherit; background: transparent; color: inherit; font: inherit; text-align: left; letter-spacing: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.organization-branch-button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.organization-department__children li.is-selected { border-color: var(--branch-color); }
.organization-branch-button.is-selected { color: var(--accent); background: #edf5fc; font-weight: 700; }
.organization-department__title { transition: border-color 180ms ease; }
.organization-department.is-active-department .organization-department__title { border-color: color-mix(in srgb, var(--branch-color) 60%, #e0e5e9); }
@media (hover: hover) and (pointer: fine) {
  .organization-map-point:hover .organization-map-point__dot::after { opacity: .7; transform: scale(1); }
}
@media (max-width: 1300px) {
  .organization-chart__tree { column-gap: 14px; }
  .organization-branch-button { padding-inline: 6px; }
}
@media (max-width: 900px) {
  .organization-branch-panel { grid-row: 1; grid-column: 1 / -1; margin: 0 0 30px; min-height: 268px; }
  .organization-chart__heading { grid-row: 2; }
  .organization-chart__top { grid-row: 3; margin-top: 24px; }
  .organization-chart__departments { grid-row: 4; }
  .organization-map-point__dot { --dot-size: 10px; }
  .organization-location__hint { margin-inline: 0; font-size: 13px; text-align: center; }
}
@media (max-width: 680px) {
  .organization-branch-button { padding-inline: 12px; }
  .organization-branch-panel h3 { font-size: 24px; }
  .organization-branch-panel__empty h3 { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .organization-map-point, .organization-map-point__dot, .organization-map-point__dot::after,
  .organization-department__title, .organization-department__children li { transition: none; }
}

/* Editorial layouts for the completed company, business and support pages. */
.page-design,
.footer--with-related {
  --design-line: #dfe5e9;
  --design-muted: #586570;
  --design-surface: #f3f5f6;
  --design-space: clamp(56px, 7vw, 104px);
}
.page-design { padding-bottom: var(--design-space); }
.page-shell:has(> .page-heading--video) { padding-top: 0; }
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu) {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
}
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu)::before {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: none;
}
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu) .main-nav > :is(a, button, .nav-category) { color: #fff; }
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu) .main-nav > :is(a, button, .nav-category)::after { background: #fff; }
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu) .nav-chevron { color: rgba(255, 255, 255, .75); }
body:has(.page-heading--video) .site-header:not(.is-scrolled):not(.has-open-menu) .menu-toggle { --menu-icon-color: #fff; }
.page-shell .page-heading--video {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 0;
  padding: calc(var(--site-header-height) + var(--page-heading-top-space)) var(--gutter) var(--page-heading-bottom-space);
  overflow: hidden;
  border: 0;
  background: #18252e;
  color: #fff;
}
.page-heading__media { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.page-heading__media::after { position: absolute; inset: 0; z-index: 3; background: rgba(8, 20, 29, .58); content: ''; }
.page-shell:is([data-page="equipment.html"], [data-page="certificates.html"], [data-page="innovation.html"]) .page-heading__media::after { background: rgba(8, 20, 29, .46); }
.page-heading__media :is(img, video) {
  position: absolute;
  inset: -16px;
  display: block;
  width: calc(100% + 32px);
  height: calc(100% + 32px);
  object-fit: cover;
  filter: blur(5px);
}
.page-shell:is([data-page="equipment.html"], [data-page="certificates.html"]) .page-heading__media :is(img, video) { filter: blur(3px); }
.page-shell[data-page="innovation.html"] .page-heading__media :is(img, video) { filter: blur(4px); }
/* This supplied video and its poster already contain the intended blur. */
.page-shell:is([data-page="company.html"], [data-page="company-introduction.html"]) .page-heading__media :is(img, video) { inset: 0; width: 100%; height: 100%; filter: none; }
.page-heading__video { visibility: hidden; }
.page-heading--video.is-video-playing .page-heading__video { visibility: visible; }
.page-heading__content { width: min(100%, 1320px); }
.page-shell .page-heading--video .page-heading__eyebrow { color: #fff; }
.page-shell .page-heading--video .page-heading__description { color: #fff; text-wrap: pretty; }
@media (prefers-reduced-motion: reduce) {
  .page-heading--video.is-video-playing .page-heading__video { visibility: hidden; }
}
.design-body { width: min(1320px, calc(100% - 2 * var(--gutter))); margin: 0 auto; }
.page-design [id] { scroll-margin-top: calc(var(--site-header-height) + 24px); }
.design-body :is(h2, h3, p, figure, blockquote, dl) { margin-top: 0; }
.design-body :is(h2, h3) { text-wrap: balance; }
.design-body h2 { margin-bottom: 20px; font-size: clamp(26px, 2.6vw, 38px); font-weight: 600; line-height: 1.4; letter-spacing: -0.04em; }
.design-body h3 { margin-bottom: 14px; font-size: clamp(20px, 1.7vw, 25px); font-weight: 600; line-height: 1.45; letter-spacing: -0.03em; }
.design-body p { line-height: 1.75; }
.design-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(32px, 6vw, 80px); margin-top: clamp(36px, 5vw, 64px); }
.design-intro > *, .design-grid > *, .design-section-head > * { min-width: 0; }
.design-body .design-kicker { margin-bottom: 20px; color: var(--accent); font-size: 12px; font-weight: 650; line-height: 1.5; letter-spacing: .09em; }
.design-body .design-title { margin-bottom: 24px; font-size: clamp(30px, 3.5vw, 48px); font-weight: 600; line-height: 1.36; letter-spacing: -0.045em; }
.design-body .design-lead { max-width: 660px; margin-bottom: 24px; color: var(--design-muted); font-size: clamp(17px, 1.5vw, 20px); line-height: 1.8; letter-spacing: -0.01em; }
.design-copy, .design-copy p { color: var(--design-muted); font-size: 16px; line-height: 1.75; letter-spacing: -0.005em; }
.design-copy > :last-child { margin-bottom: 0; }
.design-media { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--design-surface); }
img.design-media, .company-opening__photo, .company-products__photo { border-radius: var(--radius-media); }
.design-media--portrait { aspect-ratio: 4 / 5; }
.design-media--wide { aspect-ratio: 16 / 7; }
.design-media :is(img, video), img.design-media { display: block; width: 100%; height: 100%; object-fit: cover; }
img.design-media { height: auto; }
.design-media--contain img { object-fit: contain; }
.design-section { margin-top: var(--design-space); }
.design-section-head { display: flex; justify-content: space-between; align-items: start; gap: 32px; margin-bottom: 32px; }
.design-section-head h2 { margin-bottom: 0; flex: 1; }
.design-section-head > p { flex: 1; max-width: 560px; margin-bottom: 0; color: var(--design-muted); font-size: 16px; }
.design-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 44px); }
.design-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.design-card { padding: 28px 0 0; border-top: 1px solid var(--design-line); }
.design-card > p:not(.design-number):not(.design-kicker) { color: var(--design-muted); font-size: 16px; }
.design-card > .design-media { margin-bottom: 24px; }
.design-body .design-number { display: block; margin-bottom: 30px; color: var(--accent); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .06em; }
.design-link { display: inline-flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 24px; padding: 9px 0; border-bottom: 1px solid var(--design-line); color: var(--ink); font-size: 15px; font-weight: 550; transition: color .2s, border-color .2s; }
.design-link > [data-icon] { --icon-size: var(--icon-link-size); color: var(--accent); }
.design-link:hover { color: var(--accent); border-bottom-color: var(--accent); }
.design-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 30px; }
.design-button { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 24px; padding: 13px 24px; border: 1px solid var(--accent); border-radius: var(--radius-control); background: var(--accent); color: #fff; font-size: 15px; font-weight: 550; line-height: 1.5; transition: background .2s, border-color .2s; }
.design-button:hover { background: #003e7c; border-color: #003e7c; }
.design-button--secondary { background: transparent; border-color: #c6d1da; color: var(--ink); }
.design-button--secondary:hover { background: #eaf0f5; border-color: var(--accent); }
.design-facts { margin: 0; border-top: 1px solid var(--design-line); }
.design-facts > div { display: grid; grid-template-columns: minmax(90px, .3fr) minmax(0, 1fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--design-line); font-size: 16px; line-height: 1.7; }
.design-facts dt { color: var(--design-muted); }
.design-facts dd { margin: 0; }
.design-body .product-overview {
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: start;
  gap: clamp(28px, 4vw, 56px);
  margin-top: clamp(28px, 4vw, 48px);
}
.product-overview__copy { padding-top: 4px; }
.design-body .product-overview .design-kicker { margin-bottom: 12px; }
.design-body .product-overview .design-title {
  max-width: 17em;
  margin-bottom: 16px;
  font-size: clamp(26px, 2.6vw, 36px);
  line-height: 1.35;
}
.design-body .product-overview .design-lead { margin-bottom: 20px; font-size: clamp(16px, 1.3vw, 18px); line-height: 1.75; }
.product-overview .design-facts > div { grid-template-columns: 80px minmax(0, 1fr); gap: 16px; padding-block: 16px; font-size: 15px; }
.product-overview .design-actions { margin-top: 16px; }
.design-body .product-overview > .product-overview__media {
  width: 100%;
  height: auto;
  max-height: 360px;
  aspect-ratio: 16 / 10;
}
img.product-overview__media { object-position: center 65%; }
.page-design[data-page="flatbed-die.html"] .flatbed-gallery {
  display: grid;
  width: min(100%, 900px);
  grid-template-columns: minmax(0, 2.056fr) minmax(0, .596fr);
  align-items: start;
  gap: clamp(16px, 2vw, 28px);
  margin: clamp(28px, 4vw, 48px) auto 0;
}
.page-design[data-page="flatbed-die.html"] .flatbed-gallery > img {
  display: block;
  width: 100%;
  height: auto;
  min-width: 0;
}
@media (max-width: 800px) {
  .design-body .product-overview { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .product-overview__copy { padding-top: 0; }
  .design-body .product-overview .design-title { max-width: 20em; font-size: clamp(26px, 4.5vw, 32px); }
  .design-body .product-overview .design-lead { max-width: 40em; }
  .page-design[data-page="flatbed-die.html"] .flatbed-gallery { width: min(100%, 640px); grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .page-design[data-page="flatbed-die.html"] .flatbed-gallery__portrait { max-width: 220px; justify-self: center; }
}
.design-facts a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 5px; }
.page-design[data-page="company-introduction.html"] { --design-space: clamp(56px, 7vw, 88px); padding-top: var(--site-header-height); padding-bottom: 0; }
html:has(.company-opening) { scroll-snap-type: none; scroll-padding-top: var(--site-header-height); }
@media (hover: none) and (pointer: coarse) {
  html:has(.company-opening) { scroll-snap-type: y mandatory; }
}
html.has-mobile-nav-open:has(.company-opening) { scroll-snap-type: none; }
html:has(.company-opening):has(.site-header.has-open-menu) { scroll-snap-type: none; }
html.has-section-wheel-input:has(.company-opening) { scroll-snap-type: none; }
.company-opening, .company-panel { min-height: calc(100svh - var(--site-header-height)); scroll-snap-align: start; }
.page-design :is(.company-opening, .company-panel) { scroll-margin-top: 0; }
.company-opening { display: flex; flex-direction: column; justify-content: center; gap: clamp(28px, 4svh, 48px); padding-block: clamp(32px, 5svh, 64px); }
.page-design[data-page="company-introduction.html"]:has(.page-heading--video) { padding-top: 0; }
.company-opening:has(> .page-heading--video) { justify-content: flex-start; padding-top: 0; }
.company-opening .design-intro { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); margin-top: 0; }
.company-opening__copy { min-width: 0; }
.company-opening .company-opening__copy .design-title { max-width: 10em; margin-bottom: 20px; }
.company-opening .company-opening__copy .design-lead { font-size: clamp(15px, 1.35vw, 18px); }
.company-opening__photo { height: clamp(240px, 39svh, 420px); aspect-ratio: auto; }
.company-opening__photo img { object-position: 64% 61%; }
html.has-company-motion [data-company-reveal] { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity var(--motion-company-time) ease, transform var(--motion-company-time) cubic-bezier(.16, 1, .3, 1); transition-delay: var(--company-reveal-delay, 0ms); }
html.has-company-motion [data-company-reveal].is-company-visible { opacity: 1; transform: translate3d(0, 0, 0); }
html.has-company-motion .is-company-prepared [data-company-reveal] { transition: none; }
.company-panel { display: flex; flex-direction: column; justify-content: center; gap: clamp(32px, 5svh, 56px); margin-top: 0; padding-block: clamp(48px, 8svh, 96px); }
.company-panel > .design-section-head { margin-bottom: 0; }
.company-closing > .design-section { margin-top: 0; }
.company-closing { display: grid; gap: 0; }
.company-closing > .design-callout.company-panel { flex-direction: row; align-items: center; justify-content: space-between; padding-block: clamp(32px, 5svh, 56px); }
body:has(.company-opening) > .footer { display: flex; align-items: center; height: auto; min-height: 0; scroll-snap-align: start; }
body:has(.company-opening) > .footer .footer__inner { height: auto; min-height: 0; padding-block: 24px max(24px, env(safe-area-inset-bottom, 0px)); }
.page-design[data-page="company-introduction.html"] .design-intro .design-lead { margin-bottom: 0; }
.page-design[data-page="company-introduction.html"] .design-section-head .design-title { margin-bottom: 0; }
.company-principles, .company-products { display: grid; grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); align-items: center; gap: clamp(32px, 4vw, 64px); border-top: 1px solid var(--design-line); }
.company-panel > .design-section-head { display: block; min-width: 0; margin-bottom: 0; }
.page-design[data-page="company-introduction.html"] .company-panel > .design-section-head .design-title { max-width: 9em; font-size: clamp(30px, 3.5vw, 44px); line-height: 1.35; }
.company-products .design-section-head > .design-copy { margin-top: 20px; }
.company-principles .design-grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 12px clamp(24px, 3vw, 40px); background: var(--design-surface); }
.company-principles .design-card { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: baseline; gap: 8px 16px; padding: 22px 0; border-top: 0; border-bottom: 1px solid var(--design-line); }
.company-principles .design-card:last-child { border-bottom: 0; }
.company-principles .design-number { grid-row: 1 / 3; margin-bottom: 0; }
.company-principles .design-card h3 { margin-bottom: 0; }
.company-principles .design-card .design-copy { grid-column: 2; }
.company-principles .design-copy { margin-bottom: 0; }
.company-principles { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.company-principles .principle-story { width: 100%; max-width: 460px; margin: 32px 0 0; }
.principle-story__stage { display: grid; position: relative; width: 100%; }
.principle-story__scene { position: relative; grid-area: 1 / 1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: center; gap: clamp(8px, 1.5vw, 20px); }
.principle-story__scene[hidden] { display: none; }
.principle-story__piece { position: relative; }
.principle-story__media { position: relative; aspect-ratio: 1; }
.principle-story__phrase { display: flex; align-items: flex-start; justify-content: center; min-height: 2.8em; margin-top: 12px; color: var(--ink); font-size: clamp(11px, 1.2vw, 14px); font-weight: 600; line-height: 1.4; text-align: center; word-break: keep-all; text-wrap: balance; }
.has-principle-story .principle-story__phrase { opacity: 0; transform: translateY(7px); transition: opacity 400ms ease 120ms, transform 500ms cubic-bezier(.16, 1, .3, 1) 120ms, color 240ms ease; }
.has-principle-story .is-revealed .principle-story__phrase { opacity: 1; transform: translateY(0); }
.principle-story__piece.is-current .principle-story__phrase { color: var(--accent); }
.company-principles .design-card.is-principle-active .design-copy { color: var(--ink); animation: principle-copy-enter 450ms ease-out; }
@keyframes principle-copy-enter { from { opacity: .45; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .has-principle-story .principle-story__phrase { transition: none; }
  .company-principles .design-card.is-principle-active .design-copy { animation: none; }
}
.has-principle-story .principle-story__piece { opacity: 0; transform: translateY(12px); transition: opacity 450ms ease, transform 600ms cubic-bezier(.16, 1, .3, 1); }
.has-principle-story .principle-story__piece.is-revealed { opacity: 1; transform: translateY(0); }
.principle-story__piece :is(img, video) { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.principle-story__piece video { opacity: 0; transition: opacity 200ms ease; }
.principle-story__piece.is-playing video { opacity: 1; }
.principle-story__controls { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; margin-top: 16px; }
.principle-select { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer; transition: color 220ms ease; }
.principle-select:disabled { color: inherit; opacity: 1; cursor: default; }
.principle-select:hover, .is-principle-active .principle-select { color: var(--accent); }
.principle-select:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.company-principles .design-number { position: relative; }
.company-principles .design-number::before { position: absolute; content: ''; top: 50%; left: -12px; width: 3px; height: 18px; background: var(--accent); opacity: 0; transform: translateY(-50%); transition: opacity 220ms ease; }
.company-principles .is-principle-active .design-number::before { opacity: 1; }
.principle-credits-button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 32px; padding: 4px 12px; border: 1px solid var(--design-line); border-radius: var(--radius-pill); background: var(--paper); color: var(--design-muted); font-size: 12px; cursor: pointer; transition: color 180ms ease, border-color 180ms ease, background 180ms ease; }
.principle-credits-button::after { content: ''; position: absolute; inset: -6px 0; }
.principle-credits-button > [data-icon] { --icon-size: 16px; }
.principle-credits-button:hover { border-color: var(--accent); color: var(--accent); background: var(--design-surface); }
.principle-credits-button:focus-visible, .principle-credits-dialog button:focus-visible, .principle-credits-dialog a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
html:has(.principle-credits-dialog[open]) { overflow: hidden; }
.principle-credits-dialog { inset: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px); width: min(560px, calc(100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 32px)); max-height: min(680px, calc(100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 48px)); margin: auto; padding: 0; overflow: hidden; border: 1px solid #dfe6ed; border-radius: var(--radius-card); background: var(--paper); color: var(--ink); box-shadow: 0 16px 64px #0a20332b; }
.principle-credits-dialog[open] { display: flex; flex-direction: column; animation: principle-dialog-enter var(--motion-dialog-open-time) ease-out; }
.principle-credits-dialog[open].is-closing { animation: principle-dialog-exit var(--motion-dialog-close-time) ease-in both; }
.principle-credits-dialog::backdrop { background: #10243566; backdrop-filter: blur(4px); animation: principle-backdrop-enter var(--motion-dialog-open-time) ease-out; }
.principle-credits-dialog.is-closing::backdrop { animation: principle-backdrop-exit var(--motion-dialog-close-time) ease-in both; }
.principle-credits-dialog__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 16px 10px 24px; border-bottom: 1px solid #e4eaf0; }
.principle-credits-dialog h2 { margin: 0; font-size: 20px; line-height: 1.4; letter-spacing: -0.025em; }
.principle-credits-dialog h2:focus { outline: none; }
.principle-credits-dialog__close { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: #485967; cursor: pointer; }
.principle-credits-dialog__close:hover { color: var(--accent); background: #f1f4f7; }
.principle-credits-dialog__list { min-height: 0; margin: 0; padding: 4px 24px 12px; overflow-y: auto; overscroll-behavior: contain; list-style: none; }
.principle-credits-dialog__list li + li { border-top: 1px solid #edf0f3; }
.principle-credits-dialog__source { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; color: #263b4d; font-size: 13px; white-space: nowrap; }
.principle-credits-dialog__creator { color: #647687; font-size: 12px; }
.principle-credits-dialog__source:hover, .principle-credits-dialog__source:hover .principle-credits-dialog__creator { color: var(--accent); }
@keyframes principle-dialog-enter { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes principle-dialog-exit { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(6px) scale(.985); } }
@keyframes principle-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes principle-backdrop-exit { from { opacity: 1; } to { opacity: 0; } }
@media (max-width: 540px) {
  .principle-credits-dialog { max-height: calc(100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 32px); }
  .principle-credits-dialog__header { padding-left: 16px; }
  .principle-credits-dialog__list { padding-inline: 12px; }
  .principle-credits-dialog__source { gap: 8px; font-size: 12px; }
  .principle-credits-dialog__creator { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .principle-credits-dialog[open], .principle-credits-dialog[open].is-closing, .principle-credits-dialog::backdrop, .principle-credits-dialog.is-closing::backdrop { animation: none; }
  .principle-credits-button { transition: none; }
}
.principle-tabs { display: none; }
.company-products .design-grid { gap: clamp(24px, 3vw, 40px); }
.company-products .design-grid > article { min-width: 0; }
.company-products__photo { height: clamp(160px, 25svh, 260px); aspect-ratio: auto; margin-bottom: 22px; }
.company-products__photo img { object-position: 50% 47%; }
.company-products__photo--die img { object-position: 50% 55%; }
.company-products .design-facts > div { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 14px 0; }
.company-closing { min-height: 0; border-top: 1px solid var(--design-line); }
.company-profile.company-panel { gap: 20px; padding-block: clamp(32px, 5svh, 56px); }
.company-profile .design-section-head { margin-bottom: 0; }
.company-profile__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 56px); }
.company-profile__facts > div { grid-template-columns: 90px minmax(0, 1fr); gap: 16px; padding: 14px 0; font-size: 15px; }
.company-profile__facts > .company-profile__wide { grid-column: 1 / -1; }
.company-profile__facts .design-link { padding: 0; border-bottom: 0; }
@media (max-width: 680px), (max-height: 480px) {
  .company-opening { padding-block: 40px; }
  .company-panel { padding-block: 48px; }
}
@media (max-width: 960px) {
  .company-closing > .design-callout.company-panel { flex-direction: column; align-items: flex-start; justify-content: center; }
}
@media (max-width: 680px) {
  .company-panel { padding-block: 32px; }
  .company-opening { gap: 24px; padding-block: 28px; }
  .company-opening .page-heading { padding-bottom: 24px; }
  .company-opening .design-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .company-opening .company-opening__copy .design-title { max-width: 14em; margin-bottom: 14px; font-size: 30px; }
  .company-opening .design-kicker { margin-bottom: 12px; }
  .company-opening__photo { height: clamp(150px, 24svh, 220px); }
  .company-principles, .company-products { grid-template-columns: minmax(0, 1fr); align-content: center; gap: 28px; }
  .company-principles > .design-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); align-items: center; gap: 20px; }
  .company-principles > .design-section-head { grid-template-columns: minmax(0, 1fr) 144px; }
  .company-principles .principle-story { margin: 0; }
  .company-principles .design-grid { padding-inline: 20px; }
  .company-principles .design-card { gap: 8px 12px; }
  .company-products .design-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .company-products .design-grid > article { display: grid; grid-template-columns: 104px minmax(0, 1fr); column-gap: 18px; align-content: start; }
  .company-products__photo { grid-column: 1; grid-row: 1 / 4; height: 100%; min-height: 160px; margin-bottom: 0; }
  .company-products .design-grid > article > :not(figure) { grid-column: 2; }
  .company-products .design-grid h3 { margin-bottom: 10px; font-size: 20px; }
  .company-products .design-facts > div { padding-block: 10px; font-size: 14px; }
  .company-products .design-link { justify-self: start; gap: 16px; font-size: 14px; }
}
@media (min-width: 681px) and (max-height: 700px) {
  .company-opening { gap: 16px; padding-block: 20px; }
  .company-opening .page-heading { padding-bottom: 24px; }
  .company-opening__photo { height: 244px; }
  .company-opening .company-opening__copy .design-title { font-size: 32px; }
  .company-principles.company-panel { padding-block: 20px; }
  .company-products.company-panel { padding-block: 24px; }
  .company-products__photo { height: 140px; margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.company-opening) { scroll-behavior: auto; scroll-snap-type: none; }
  html.has-company-motion [data-company-reveal] { opacity: 1; transform: none; transition: none; }
  .principle-story__piece video, .has-principle-story .principle-story__piece, .principle-select, .company-principles .design-number::before { transition: none; }
}
@media (max-width: 680px) {
  .company-profile.company-panel { padding-block: 24px; }
  .company-profile__facts { grid-template-columns: minmax(0, 1fr); }
  .company-profile__facts > div { grid-template-columns: 74px minmax(0, 1fr); }
}
@media (max-width: 680px) and (max-height: 740px) {
  .company-opening { gap: 16px; padding-block: 16px; }
  .company-opening .page-heading { padding-bottom: 16px; }
  .company-opening .page-heading__eyebrow { margin-bottom: 8px; }
  .company-opening .page-heading__title { font-size: 28px; }
  .company-opening .page-heading__description { margin-top: 12px; font-size: 14px; }
  .company-opening .design-intro { gap: 16px; }
  .company-opening .design-kicker { margin-bottom: 8px; }
  .company-opening .company-opening__copy .design-title { margin-bottom: 12px; font-size: 26px; }
  .company-opening .company-opening__copy .design-lead { font-size: 14px; line-height: 1.65; }
  .company-opening__photo { height: 96px; }
  .company-principles.company-panel, .company-products.company-panel { gap: 20px; padding-block: 20px; }
  .company-principles.company-panel { gap: 16px; padding-block: 12px; }
  .page-design[data-page="company-introduction.html"] .company-panel > .design-section-head .design-title { font-size: 26px; }
  .company-principles > .design-section-head { grid-template-columns: minmax(0, 1fr) 120px; }
  .company-principles .design-grid { padding: 6px 16px; }
  .company-principles .design-card { padding-block: 14px; }
  .company-principles .design-card h3 { font-size: 18px; }
  .company-principles .principle-select { margin-block: -8px; }
  .company-principles .design-copy { font-size: 14px; line-height: 1.55; }
  .company-products .design-section-head > .design-copy { margin-top: 12px; font-size: 14px; line-height: 1.55; }
  .company-products .design-grid { gap: 18px; }
  .company-products .design-grid > article { grid-template-columns: 72px minmax(0, 1fr); column-gap: 16px; }
  .company-products .company-products__photo { height: calc(100% - 52px); min-height: 72px; }
  .company-products .design-grid h3 { margin-bottom: 6px; font-size: 18px; }
  .company-products .design-facts > div { gap: 2px; padding-block: 6px; line-height: 1.5; }
  .company-products .design-facts dt { font-size: 12px; }
  .company-products .design-grid > article > .design-link { grid-column: 1; grid-row: 2; align-self: end; justify-self: stretch; min-height: 44px; padding-block: 4px; gap: 6px; font-size: 12px; line-height: 1.5; }
  .company-products .design-link > [data-icon] { --icon-size: 14px; }
  .company-profile.company-panel { padding-block: 16px; gap: 14px; }
  .company-profile .company-profile__facts > div { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; padding-block: 7px; font-size: 14px; line-height: 1.55; }
}
@media (max-width: 360px) and (max-height: 740px) {
  .company-principles.company-panel { gap: 12px; }
  .company-principles > .design-section-head { grid-template-columns: minmax(0, 1fr) 104px; gap: 12px; }
  .company-principles .design-card { gap: 6px 12px; padding-block: 10px; }
  .company-principles .design-card .design-copy { grid-column: 1 / -1; }
  .company-principles .design-number { grid-row: 1; }
}
/* Mobile keeps all three descriptions visible beneath the category progress tracks. */
@media (max-width: 960px) {
  .company-principles.has-principle-story { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-block: 28px; }
  .company-principles.has-principle-story > .design-section-head { display: contents; }
  .page-design .company-principles.has-principle-story > .design-section-head .design-title { grid-row: 1; max-width: none; margin: 0; font-size: 30px; }
  .principle-tabs:not([hidden]) { display: grid; grid-row: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .principle-tabs button { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 7px; min-height: 44px; padding: 8px 4px; border: 0; background: transparent; font-size: 14px; font-weight: 600; cursor: pointer; }
  .principle-tabs button::before, .principle-tabs button::after { content: ''; position: absolute; right: 0; bottom: 2px; left: 0; height: 2px; pointer-events: none; animation: none; transition: none; }
  .principle-tabs button::before { background: var(--design-line); }
  .principle-tabs button::after { background: var(--accent); transform: scaleX(var(--principle-progress, 0)); transform-origin: left; }
  .principle-tabs button > span { font-size: 10px; font-variant-numeric: tabular-nums; }
  .principle-tabs button[aria-pressed="true"] { color: var(--accent); }
  .principle-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .company-principles.has-principle-story .principle-story { grid-row: 3; justify-self: center; width: 100%; max-width: 440px; margin: 0; }
  .company-principles.has-principle-story .design-grid { grid-row: 4; min-height: 0; gap: 0; padding: 4px 16px; align-items: start; }
  .company-principles.has-principle-story .design-card { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 4px 10px; padding: 10px 0; }
  .company-principles.has-principle-story .design-card .design-number { grid-row: 1 / 3; margin: 0; line-height: 21px; }
  .company-principles.has-principle-story .design-card h3 { font-size: 18px; }
  .company-principles.has-principle-story .principle-select { margin-block: -8px; }
  .company-principles.has-principle-story .design-card .design-copy { grid-column: 2; font-size: 14px; line-height: 1.5; text-align: left; }
}
@media (max-width: 960px) and (max-height: 740px) {
  .company-principles.has-principle-story { gap: 8px; padding-block: 12px; }
  .page-design .company-principles.has-principle-story > .design-section-head .design-title { font-size: 24px; }
  .company-principles.has-principle-story .principle-story { max-width: 220px; }
  .company-principles.has-principle-story .principle-story__phrase { margin-top: 4px; }
  .company-principles.has-principle-story .principle-story__controls { margin-top: 0; }
  .company-principles.has-principle-story .design-grid { padding: 0 8px; }
  .company-principles.has-principle-story .design-card { column-gap: 8px; padding-block: 5px; }
  .company-principles.has-principle-story .design-card h3 { display: none; }
  .company-principles.has-principle-story .design-card .design-number { grid-row: 1; }
  .principle-tabs button { font-size: 13px; }
}
.design-rows { border-top: 1px solid var(--design-line); }
.design-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: baseline; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--design-line); transition: color .2s; }
.design-row h3 { margin-bottom: 8px; }
.design-row p { margin-bottom: 0; color: var(--design-muted); }
.design-row .design-number { margin-bottom: 0; }
.design-row > [aria-hidden] { color: var(--accent); font-size: 24px; }
.design-row:is(a):hover h3 { color: var(--accent); }
.design-callout { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: clamp(28px, 4vw, 56px); background: #f0f4f7; }
.design-callout h2 { font-size: clamp(25px, 2.4vw, 34px); margin-bottom: 12px; }
.design-callout p { margin-bottom: 0; color: var(--design-muted); }
.design-callout .design-actions { flex-shrink: 0; margin-top: 0; }
.design-callout > .design-button { flex-shrink: 0; }
.design-timeline { margin: 0; padding: 0 0 0 32px; list-style: none; border-left: 1px solid var(--design-line); }
.design-timeline > li { position: relative; padding: 0 0 48px 16px; }
.design-timeline > li:last-child { padding-bottom: 0; }
.design-timeline > li::before { position: absolute; top: 8px; left: -37px; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); content: ''; }
.design-timeline time { display: block; margin-bottom: 16px; color: var(--accent); font-size: 24px; font-weight: 550; }
.design-step { display: flex; align-items: baseline; gap: 24px; padding: 26px 0; border-top: 1px solid var(--design-line); }
.design-step .design-number { flex-shrink: 0; }
.design-step p { margin-bottom: 0; color: var(--design-muted); }
.design-signature { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--design-line); color: var(--design-muted); font-size: 15px; line-height: 1.8; }
.design-signature strong { margin-left: 16px; color: var(--ink); font-size: 22px; font-weight: 550; letter-spacing: .1em; }
.design-body .design-section-head .design-title { font-size: clamp(26px, 2.6vw, 38px); }
.design-body .design-callout .design-title { font-size: clamp(25px, 2.4vw, 34px); margin-bottom: 12px; }
.design-body blockquote { margin-inline: 0; padding: 22px 0 0 24px; border-left: 2px solid var(--accent); }
.design-body .environment-visual { margin-top: 48px; }
.design-body .environment-visual figcaption { padding-top: 14px; font-size: 13px; }
.design-logo-grid .design-media { aspect-ratio: 2.5; }
.page-design[data-page="history.html"] .design-section:has(> .design-timeline) { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1fr); gap: 64px; padding-top: 40px; border-top: 1px solid var(--design-line); }
.page-design[data-page="history.html"] .design-section:has(> .design-timeline) > div:first-child { position: sticky; top: calc(var(--site-header-height) + 32px); align-self: start; }
.page-design[data-page="history.html"] .design-section-head p { margin-top: 18px; }
.page-design[data-page="history.html"] .design-timeline h3 { font-size: 18px; font-weight: 500; line-height: 1.6; }
.page-design[data-page="history.html"] .design-timeline time { font-size: 20px; margin-bottom: 10px; font-variant-numeric: tabular-nums; }
@media (max-width: 960px) {
  .design-intro { gap: 32px; }
  .design-grid { gap: 24px; }
  .design-callout { align-items: flex-start; flex-direction: column; }
  .design-callout .design-actions { flex-shrink: 1; }
}
@media (max-width: 680px) {
  .page-design { --design-space: 56px; }
  .page-heading__description { max-width: 32em; }
  .design-intro, .design-grid, .design-grid--two { grid-template-columns: minmax(0, 1fr); }
  .design-intro { gap: 32px; }
  .design-media--portrait { max-height: 480px; }
  .design-media--wide { aspect-ratio: 4 / 3; }
  .design-logo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .design-logo-grid .design-media { aspect-ratio: 1.7; }
  .page-design[data-page="history.html"] .design-section:has(> .design-timeline) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .page-design[data-page="history.html"] .design-section:has(> .design-timeline) > div:first-child { position: static; }
  .design-section-head { flex-direction: column; gap: 16px; margin-bottom: 26px; }
  .design-body .design-title { font-size: clamp(28px, 7.5vw, 36px); }
  .design-body .design-lead { font-size: 17px; }
  .design-body .design-number { margin-bottom: 18px; }
  .design-row { grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; padding: 24px 0; }
  .design-row .design-number { margin-bottom: 0; }
  .design-facts > div { grid-template-columns: 74px minmax(0, 1fr); gap: 16px; padding: 20px 0; font-size: 15px; }
  .company-profile__facts > div { padding-block: 12px; }
  .design-callout { gap: 24px; padding: 28px 24px; }
  .design-actions { gap: 12px 20px; }
  .design-button { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-design :is(.design-link, .design-button, .design-row) { transition: none; }
}

/* Match the CI lower edge to the Korean glyphs, including their descent. */
.page-design .brand-ci-inline {
  display: inline-block;
  width: auto;
  height: 1.8em;
  max-width: 100%;
  margin-inline: .12em;
  vertical-align: -.1em;
}

/* The CEO letter fills one section; small screens keep the full reading flow. */
.page-design[data-page="ceo.html"] {
  --design-space: clamp(40px, 4vw, 56px);
}
.page-design[data-page="ceo.html"] #ceo-opening { gap: clamp(12px, 2svh, 20px); padding-block: clamp(12px, 2svh, 24px); }
.page-design[data-page="ceo.html"] .design-intro { grid-template-columns: minmax(0, 1fr) minmax(0, .42fr); gap: clamp(24px, 3vw, 40px); margin-top: 0; }
.page-design[data-page="ceo.html"] .design-kicker { margin-bottom: 8px; }
.page-design[data-page="ceo.html"] #ceo-opening .design-title { margin-bottom: 14px; font-size: clamp(26px, 2.35vw, 34px); line-height: 1.35; }
.page-design[data-page="ceo.html"] .design-intro .design-copy { margin-bottom: 8px; font-size: 15px; line-height: 1.65; }
.page-design[data-page="ceo.html"] #ceo-opening .design-media--portrait { width: min(100%, 360px); height: auto; max-height: none; justify-self: center; }
.page-design[data-page="ceo.html"] .design-intro blockquote { margin-block: 12px; padding: 0 0 0 16px; }
.page-design[data-page="ceo.html"] .design-lead { max-width: none; margin-bottom: 0; font-size: 16px; line-height: 1.6; }
.page-design[data-page="ceo.html"] .design-signature { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; margin-top: 16px; padding-top: 12px; }
.page-design[data-page="ceo.html"] .design-signature .design-copy { margin-bottom: 0; }
.page-design[data-page="ceo.html"] .design-signature strong { margin-left: 0; font-size: 20px; }
.page-design[data-page="ceo.html"] #ceo-company .design-callout { margin-top: 0; }
.page-design[data-page="ceo.html"] .design-callout { padding: clamp(24px, 3vw, 40px); }
.page-design[data-page="ceo.html"] .design-callout .design-title { font-size: 28px; }
@media (min-width: 900px) and (max-height: 800px) {
  .page-design[data-page="ceo.html"] #ceo-opening { gap: 10px; padding-block: 8px; }
  .page-design[data-page="ceo.html"] #ceo-opening .design-title { font-size: clamp(26px, 2.2vw, 28px); }
  .page-design[data-page="ceo.html"] .design-intro .design-copy { margin-bottom: 6px; line-height: 1.6; }
  .page-design[data-page="ceo.html"] .design-intro blockquote { margin-block: 10px; }
  .page-design[data-page="ceo.html"] .design-signature .design-copy { margin-bottom: 0; }
}
@media (max-width: 680px) {
  .page-design[data-page="ceo.html"] #ceo-opening .design-intro { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .page-design[data-page="ceo.html"] #ceo-opening .design-title { font-size: 26px; }
  .page-design[data-page="ceo.html"] .design-intro .design-copy { font-size: 16px; line-height: 1.75; }
  .page-design[data-page="ceo.html"] #ceo-opening .design-media--portrait { max-width: 260px; }
  .page-design[data-page="ceo.html"] #ceo-opening .design-lead { margin-bottom: 0; font-size: 17px; }
}
html.has-company-motion .page-design[data-page="ceo.html"] #ceo-opening .design-intro :is(h2, p, blockquote, .design-signature)[data-company-reveal] {
  transform: translate3d(0, 12px, 0);
  transition: opacity var(--motion-company-time) ease, transform var(--motion-text-move-time) cubic-bezier(.16, 1, .3, 1), filter var(--motion-text-time) ease;
  transition-delay: var(--company-reveal-delay, 0ms);
}
html.has-company-motion .page-design[data-page="ceo.html"] #ceo-opening .design-title[data-company-reveal] { filter: blur(3px); }
html.has-company-motion .page-design[data-page="ceo.html"] #ceo-opening .design-intro :is(h2, p, blockquote, .design-signature)[data-company-reveal].is-company-visible { filter: none; transform: translate3d(0, 0, 0); }
html.has-company-motion .page-design[data-page="ceo.html"] #ceo-opening.is-company-prepared .design-intro [data-company-reveal] { transition: none; }
@media (prefers-reduced-motion: reduce) {
  html.has-company-motion .page-design[data-page="ceo.html"] #ceo-opening .design-intro :is(h2, p, blockquote, .design-signature)[data-company-reveal] { opacity: 1; filter: none; transform: none; transition: none; }
}

/* Subpages use the same section controller; long and single-section pages stay continuous. */
html.has-subpage-sections { scroll-padding-top: var(--site-header-height); }
html.has-subpage-sections:has(.subpage-opening--video) { scroll-padding-top: 0; }
html.has-subpage-sections.has-subpage-center-scroll { scroll-snap-type: none; }
@media (hover: none) and (pointer: coarse) {
  html.has-subpage-sections.has-subpage-center-scroll { scroll-snap-type: y mandatory; }
}
html.has-subpage-sections.has-subpage-center-scroll.has-section-wheel-input { scroll-snap-type: none; }
html.has-subpage-free-scroll,
html.has-subpage-sections.has-mobile-nav-open,
html.has-subpage-sections:has(.site-header.has-open-menu),
html.has-subpage-sections:has(.footer-nav__accordion[open]) { scroll-snap-type: none; }
[data-section-page][data-section-scroll="snap"] { padding-top: var(--site-header-height); padding-bottom: 0; }
[data-section-page]:has(.subpage-opening--video) { padding-top: 0; }
[data-section-page] [data-subpage-section] { scroll-margin-top: 0; }
[data-section-page][data-section-scroll="center"] [data-subpage-section] { scroll-snap-align: center; }
html.has-subpage-center-scroll .footer { scroll-snap-align: start; }
[data-section-page][data-section-scroll="snap"] [data-subpage-section] {
  min-height: calc(100svh - var(--site-header-height));
  margin-top: 0;
  padding-block: clamp(24px, 5svh, 56px);
  scroll-snap-align: start;
}
[data-section-page][data-section-scroll="snap"] .subpage-panel:where(:not(.design-grid):not(.design-intro):not(.page-heading)) {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(24px, 4svh, 40px);
}
[data-section-page][data-section-scroll="snap"] .subpage-panel:is(.design-grid, .design-intro) { align-content: center; }
[data-section-page][data-section-scroll="snap"] .subpage-opening--video {
  min-height: 100svh;
  justify-content: flex-start;
  gap: clamp(24px, 4svh, 40px);
  padding-block: 0 clamp(24px, 5svh, 56px);
}
[data-section-page][data-section-scroll="snap"] .subpage-opening--video > .page-heading {
  flex-shrink: 0;
}
[data-section-page][data-section-scroll="snap"] .subpage-opening--video > .design-body {
  flex: 1;
  display: grid;
  align-content: center;
}
[data-section-page]:has(.subpage-opening--video) [data-subpage-section]:not(.subpage-opening--video),
body:has(.subpage-opening--video) > .footer { scroll-margin-top: var(--site-header-height); }
[data-section-page][data-section-scroll="snap"] .subpage-opening .design-intro,
[data-section-page][data-section-scroll="snap"] .subpage-panel > .design-intro,
[data-section-page][data-section-scroll="snap"] .subpage-opening .design-section,
[data-section-page][data-section-scroll="snap"] .subpage-opening .subpage-content { margin-top: 0; }
[data-section-page][data-section-scroll="snap"] .subpage-panel > .design-section-head { margin-bottom: 0; }
[data-section-page][data-section-scroll="snap"] .design-media { max-height: min(36svh, 360px); }
[data-section-page][data-section-scroll="snap"] .page-heading--video { padding-inline: var(--gutter); }
[data-section-page][data-section-scroll="snap"] .certificate-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
[data-section-page][data-section-scroll="snap"] .certificate-gallery:not(:has(> :nth-child(3))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-section-page][data-section-scroll="snap"] .certificate-gallery__image { height: min(46svh, 420px); }
.design-grid--one { grid-template-columns: minmax(0, 1fr); }
.business-product-panel .design-card {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1fr);
  column-gap: clamp(32px, 5vw, 72px);
  align-content: center;
  border-top: 0;
  padding-top: 0;
}
.business-product-panel .design-card > .design-media { grid-column: 1; grid-row: 1 / 6; height: min(44svh, 440px); max-height: none; margin-bottom: 0; aspect-ratio: auto; }
.business-product-panel .design-card > :not(.design-media) { grid-column: 2; }
.business-product-panel .design-card > .design-link { justify-self: start; }
[data-section-page] .product-panel-group > :is(.design-section, .design-intro),
[data-section-page] .company-overview-details > .design-section { margin-top: 0; }
[data-section-page][data-section-scroll="snap"] .company-overview-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  column-gap: clamp(32px, 6vw, 80px);
}
.product-quality-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 24px 40px; align-items: center; }
.product-quality-layout > .design-section-head { grid-column: 1 / -1; margin-bottom: 0; }
.product-quality-layout__cards { grid-template-columns: minmax(0, 1fr); gap: 0; }
.product-quality-layout__cards .design-card { padding-block: 16px; }
.product-quality-layout__cards .design-card :is(h3, p) { margin-bottom: 6px; }
.product-quality-layout--text { grid-template-columns: minmax(0, 1fr); }
.resin-quality__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 40px 0 0; padding: 0; list-style: none; }
.resin-quality__number { display: flex; align-items: center; gap: 18px; margin-bottom: 28px; color: var(--accent); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .06em; }
.resin-quality__number::after { content: ""; height: 1px; flex: 1; background: #cbd5dc; }
.resin-quality__steps h3 { margin: 0 0 14px; font-size: clamp(20px, 1.8vw, 25px); line-height: 1.4; letter-spacing: -0.02em; }
.resin-quality__steps .design-copy { max-width: 32em; margin: 0; }
@media (max-width: 760px) {
  .resin-quality__steps { grid-template-columns: minmax(0, 1fr); gap: 0; margin-top: 28px; }
  .resin-quality__steps > li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 18px; padding: 24px 0; border-top: 1px solid #dce3e8; }
  .resin-quality__number { display: block; margin: 4px 0 0; font-size: 13px; }
  .resin-quality__number::after { display: none; }
  .resin-quality__steps h3 { margin-bottom: 10px; }
}
@media (max-width: 760px) and (max-height: 700px) {
  .resin-quality__steps { margin-top: 24px; }
  .resin-quality__steps > li { padding-block: 18px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening { gap: 16px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening .page-heading { padding-bottom: 8px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening .design-intro { gap: 16px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening :is(.design-title, .design-lead) { margin-bottom: 12px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening .design-actions { margin-top: 16px; }
  [data-page="resin-plate.html"][data-section-scroll="snap"] #resin-opening .design-media { max-height: 15svh; }
}
.product-quality-layout--text .product-quality-layout__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 760px) {
  .product-quality-layout--text .product-quality-layout__cards { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
[data-section-page] .product-quality-layout__media { height: min(38svh, 360px); aspect-ratio: auto; }
[data-section-page][data-section-scroll="snap"] .product-panel-group--applications {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: center;
  gap: 28px 48px;
}
.product-panel-group--applications > .design-section:last-child:not(:nth-child(2)) { grid-column: 1 / -1; }
.product-panel-group--applications > .design-section:not(:last-child) > .design-section-head { display: block; margin-bottom: 20px; }
.product-panel-group--applications .design-media { height: min(25svh, 240px); aspect-ratio: auto; }
.product-panel-group--applications .design-card { padding-top: 16px; }
.product-panel-group--applications .design-card > p { margin-bottom: 10px; }
.product-panel-group--results .design-media { height: min(28svh, 280px); aspect-ratio: auto; }
[data-page="equipment.html"] {
  --equipment-nav-height: 64px;
  --equipment-nav-total-height: calc(var(--equipment-nav-height) + 1px);
  --equipment-feature-height: calc(100svh - var(--site-header-height) - var(--equipment-nav-total-height));
}
.page-shell[data-page="equipment.html"][data-section-scroll="snap"] .equipment-intro { display: block; min-height: 0; padding: 0; }
[data-page="equipment.html"] .equipment-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; width: min(1320px, calc(100% - 2 * max(var(--gutter), calc(64px + env(safe-area-inset-right, 0px))))); min-width: 0; margin: 0 auto; padding: 0; list-style: none; font-size: clamp(13px, 1.4vw, 18px); font-weight: 600; }
[data-page="equipment.html"] .equipment-highlights li { min-width: 0; }
[data-page="equipment.html"] .equipment-highlights a { display: flex; align-items: center; justify-content: center; min-width: 0; height: var(--equipment-nav-height); padding: 12px 4px; color: var(--design-muted); text-align: center; line-height: 1.45; word-break: keep-all; transition: color calc(var(--motion-feedback-ms) * var(--motion-time-scale) * 1ms) ease; }
[data-page="equipment.html"] .equipment-highlights a:is(:hover, [aria-current="location"]) { color: var(--accent); }
[data-page="equipment.html"] .equipment-highlights a:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; border-radius: var(--radius-control); }
[data-section-page][data-page="equipment.html"] .equipment-feature[data-subpage-section] { scroll-margin-top: calc(var(--site-header-height) + var(--equipment-nav-total-height)); }
.page-shell[data-page="equipment.html"][data-section-scroll="snap"] .equipment-feature { height: auto; min-height: var(--equipment-feature-height); padding-block: clamp(12px, 3svh, 24px); gap: 0; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-opening.equipment-feature { scroll-snap-align: start; }
[data-page="equipment.html"][data-section-scroll="snap"] .equipment-feature > .equipment-feature__body { display: flex; flex-direction: column; flex: 0 0 auto; min-height: 0; min-width: 0; justify-content: center; gap: 24px; }
[data-page="equipment.html"] .equipment-feature__body > h2 { flex: 0 0 auto; margin: 0; font-size: clamp(22px, 2.2vw, 30px); text-align: center; }
[data-page="equipment.html"] .equipment-feature__body > .equipment-feature__summary { font-size: clamp(22px, 2.5vw, 34px); font-weight: 700; line-height: 1.4; letter-spacing: -0.02em; word-break: keep-all; }
[data-page="equipment.html"] .equipment-feature__nav { position: sticky; top: var(--site-header-height); z-index: 2; width: 100%; min-width: 0; margin: clamp(40px, 7svh, 72px) 0 0; background: var(--header-active-surface); -webkit-backdrop-filter: blur(var(--header-active-blur)); backdrop-filter: blur(var(--header-active-blur)); border-bottom: 1px solid var(--design-line); box-shadow: none; transform: translateY(0); visibility: visible; transition: transform .5s cubic-bezier(.2, .8, .2, 1), visibility 0s linear 0s; }
[data-page="equipment.html"] .equipment-feature__nav.is-outside-features { transform: translateY(calc(-100% - 1px)); visibility: hidden; pointer-events: none; transition: transform .5s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .5s; }
[data-page="equipment.html"] .equipment-feature__indicator { position: absolute; bottom: -1px; left: 0; height: 2px; width: var(--equipment-indicator-width, 0px); background: var(--accent); transform: translateX(var(--equipment-indicator-x, 0px)); opacity: 0; pointer-events: none; transition: opacity .25s ease; }
[data-page="equipment.html"] .equipment-feature__nav.has-active-indicator .equipment-feature__indicator { opacity: 1; }
[data-page="equipment.html"] .equipment-feature__gallery { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; flex: 0 1 auto; width: min(100%, 1100px); min-height: 0; min-width: 0; margin-inline: auto; gap: clamp(12px, 2vw, 28px); }
[data-page="equipment.html"] .equipment-feature__gallery--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
[data-page="equipment.html"] .equipment-feature__photo { display: flex; flex-direction: column; justify-content: center; gap: 12px; min-width: 0; min-height: 0; margin: 0; }
[data-page="equipment.html"] .equipment-feature__photo img { display: block; align-self: center; width: auto; max-width: 100%; height: auto; max-height: max(80px, calc(var(--equipment-feature-height) - 120px)); min-height: 0; object-fit: contain; border-radius: var(--radius-media); }
[data-page="equipment.html"] .equipment-feature__gallery--triple { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
[data-page="equipment.html"] .equipment-feature__gallery--triple .equipment-feature__photo img { width: 100%; max-width: 100%; height: auto; max-height: none; object-fit: contain; }
[data-page="equipment.html"] .equipment-feature__gallery--triple figcaption { min-width: 0; margin: 0; color: var(--design-muted); font-size: 16px; line-height: 1.6; text-align: center; white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
[data-page="equipment.html"] .equipment-feature__gallery--triple figcaption > span { display: block; }
[data-page="equipment.html"] .equipment-feature__model { margin-top: 2px; font-size: 14px; }
[data-page="equipment.html"] .equipment-feature__video { position: relative; width: min(100%, max(142px, calc((var(--equipment-feature-height) - 120px) * 1.7777778))); aspect-ratio: 16 / 9; margin-inline: auto; overflow: hidden; border-radius: var(--radius-media); }
[data-page="equipment.html"] .equipment-feature__video img { height: 100%; max-height: none; }
[data-page="equipment.html"] .equipment-feature__video video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; visibility: hidden; }
[data-page="equipment.html"] .equipment-feature__video.is-video-playing video { visibility: visible; }
@media (max-width: 680px) {
  .page-shell[data-page="equipment.html"][data-section-scroll="snap"] .equipment-feature { height: auto; min-height: 0; padding-block: 36px; }
  [data-page="equipment.html"][data-section-scroll="snap"] .equipment-feature > .equipment-feature__body { flex: none; gap: 16px; }
  [data-page="equipment.html"] .equipment-highlights { gap: 0 8px; width: calc(100% - 2 * var(--gutter)); margin-inline: auto; font-size: clamp(11px, 2.7vw, 14px); }
  [data-page="equipment.html"] .equipment-highlights a { padding-inline: 0; }
  [data-page="equipment.html"] .equipment-feature__nav { width: 100%; margin-inline: 0; }
  [data-page="equipment.html"] .equipment-feature__gallery { grid-template-columns: minmax(0, 1fr); gap: 12px; width: 100%; }
  [data-page="equipment.html"] .equipment-feature__gallery--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  [data-page="equipment.html"] .equipment-feature__gallery--triple { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  [data-page="equipment.html"] .equipment-feature__photo { gap: 8px; }
  [data-page="equipment.html"] .equipment-feature__photo img { max-height: none; }
  [data-page="equipment.html"] .equipment-feature__gallery--pair img { max-height: 48vw; }
  [data-page="equipment.html"] .equipment-feature__video { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  [data-page="equipment.html"] :is(.equipment-feature__indicator, .equipment-feature__nav) { transition: none; }
  [data-page="equipment.html"] .equipment-feature__nav.is-outside-features { transition: none; }
  [data-page="equipment.html"] .equipment-feature__video.is-video-playing video { visibility: hidden; }
}
[data-page="equipment.html"] .equipment-status-section { padding-block: 0; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status {
  height: auto;
  min-height: calc(100svh - var(--site-header-height));
  padding-block: clamp(12px, 3svh, 32px);
  gap: 0;
}
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status > .design-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  min-height: min-content;
}
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-status-heading { flex: 0 0 auto; margin-bottom: clamp(8px, 2svh, 20px); }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-status-title { margin-bottom: 0; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-table-instruction { margin: 8px 0 0; line-height: 1.5; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-workspace { flex: 1; min-height: min-content; max-height: clamp(384px, 60svh, 520px); }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-table-viewport { min-height: 0; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-status-table { height: 100%; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-status-table :is(th, td) { padding-block: clamp(2px, .6svh, 6px); }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-row-button { min-height: 0; padding-block: 4px; }
[data-page="equipment.html"][data-section-scroll="snap"] #equipment-status tbody th > span { display: inline-block; padding-block: 4px; }
@media (max-width: 680px) {
  [data-page="equipment.html"][data-section-scroll="snap"] #equipment-status .equipment-workspace { max-height: clamp(340px, 52svh, 448px); }
}
[data-page="equipment.html"] .equipment-status-heading { margin-bottom: 24px; }
[data-page="equipment.html"] .equipment-table-instruction { margin: 12px 0 0; color: var(--design-muted); font-size: 14px; }
[data-page="equipment.html"] .equipment-workspace {
  --equipment-layout-time: calc(var(--motion-content-ms) * var(--motion-time-scale) * 1ms);
  display: grid;
  grid-template-columns: minmax(0, 0fr) minmax(0, 1fr);
  column-gap: 0;
  width: 100%;
  min-width: 0;
  transition: grid-template-columns var(--equipment-layout-time) var(--menu-open-ease), column-gap var(--equipment-layout-time) var(--menu-open-ease);
}
[data-page="equipment.html"] .equipment-workspace.has-selection { grid-template-columns: minmax(0, .28fr) minmax(0, .72fr); column-gap: clamp(16px, 2.5vw, 36px); }
[data-page="equipment.html"] .equipment-preview {
  position: relative;
  min-width: 0;
  overflow: hidden;
  visibility: hidden;
  opacity: 0;
  transform: translateX(16px);
  transition: opacity var(--equipment-layout-time) ease, transform var(--equipment-layout-time) var(--menu-open-ease), visibility var(--equipment-layout-time);
}
[data-page="equipment.html"] .has-selection .equipment-preview { visibility: visible; opacity: 1; transform: none; }
[data-page="equipment.html"] .equipment-preview__inner { position: absolute; inset: 0; display: flex; flex-direction: column; min-width: 0; }
[data-page="equipment.html"] .equipment-preview__heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 12px; }
[data-page="equipment.html"] .equipment-preview__heading h3 { margin: 0; font-size: clamp(15px, 1.6vw, 22px); font-weight: 600; white-space: nowrap; }
[data-page="equipment.html"] .equipment-preview__close { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--design-muted); cursor: pointer; }
[data-page="equipment.html"] .equipment-preview__close [data-icon] { display: flex; }
[data-page="equipment.html"] .equipment-preview__close:hover { color: var(--accent); background: #edf5fc; }
[data-page="equipment.html"] .equipment-preview__media { display: flex; align-items: center; justify-content: center; flex: 1; min-height: 0; overflow: hidden; border-radius: var(--radius-media); background: var(--design-surface); }
[data-page="equipment.html"] .equipment-preview__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
[data-page="equipment.html"] .equipment-preview__media img[hidden] { display: none; }
[data-page="equipment.html"] ~ .certificate-lightbox .certificate-lightbox__image { border-radius: var(--radius-media); }
[data-page="equipment.html"] .equipment-preview__status { padding: 16px; color: var(--design-muted); font-size: 13px; text-align: center; }
[data-page="equipment.html"] .equipment-preview__status:empty { display: none; }
[data-page="equipment.html"] .equipment-status-table.is-interactive tbody tr[data-equipment-row] { cursor: pointer; }
[data-page="equipment.html"] .equipment-status-table.is-interactive tbody tr > * { transition: background-color calc(var(--motion-feedback-ms) * var(--motion-time-scale) * 1ms) ease, color calc(var(--motion-feedback-ms) * var(--motion-time-scale) * 1ms) ease; }
[data-page="equipment.html"] .equipment-workspace:not([data-equipment-input="touch"]) .equipment-status-table.is-interactive tbody tr:has(.equipment-row-button:focus-visible) > *,
[data-page="equipment.html"] .equipment-status-table.is-interactive tbody tr.is-selected > * { background: #e7f0f8; color: var(--accent); }
[data-page="equipment.html"] .equipment-status-table.is-interactive tbody tr.is-selected > :first-child { box-shadow: inset 3px 0 var(--accent); }
[data-page="equipment.html"] .equipment-row-button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; white-space: nowrap; cursor: pointer; }
[data-page="equipment.html"] .equipment-row-button::after { content: '→'; color: var(--accent); opacity: .6; }
[data-page="equipment.html"] .equipment-row-button[aria-expanded="true"]::after { content: '←'; opacity: 1; }
[data-page="equipment.html"] :is(.equipment-row-button, .equipment-preview__close):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
[data-page="equipment.html"] .equipment-status-table tbody tr.is-pointer-over > * { background: #edf5fc; color: #004d8d; }
@media (max-width: 980px) {
  [data-page="equipment.html"] .equipment-row-button::after { display: none; }
  [data-page="equipment.html"] .has-selection .equipment-status-table tr > :first-child { width: 28%; }
  [data-page="equipment.html"] .has-selection .equipment-status-table th,
  [data-page="equipment.html"] .has-selection .equipment-status-table td { padding-inline: 2px; }
}
@media (max-width: 680px) {
  [data-page="equipment.html"] .equipment-workspace,
  [data-page="equipment.html"] .equipment-workspace.has-selection { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
  [data-page="equipment.html"] .equipment-preview { display: none; }
  [data-page="equipment.html"] .has-selection .equipment-preview { display: none; }
  [data-page="equipment.html"] .equipment-preview__inner { max-width: 250px; margin-inline: auto; }
  [data-page="equipment.html"] .has-selection .equipment-status-table tr > :first-child { width: 29%; }
}
@media (prefers-reduced-motion: reduce) {
  [data-page="equipment.html"] .equipment-workspace,
  [data-page="equipment.html"] .equipment-preview,
  [data-page="equipment.html"] .equipment-status-table.is-interactive tbody tr > * { transition: none; transform: none; }
}
[data-page="equipment.html"] .equipment-status-title {
  margin: 0 0 24px;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.25;
}
[data-page="equipment.html"] .equipment-table-viewport { width: 100%; min-width: 0; border: 1px solid var(--design-line); border-radius: var(--radius-small); overflow: hidden; }
[data-page="equipment.html"] .equipment-status-table {
  width: 100%;
  min-width: 0;
  border-collapse: collapse;
  table-layout: fixed;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
[data-page="equipment.html"] .equipment-status-table .equipment-table-caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  clip-path: inset(50%);
}
[data-page="equipment.html"] .equipment-status-table th,
[data-page="equipment.html"] .equipment-status-table td {
  padding: clamp(10px, 1.6vh, 18px) clamp(2px, .8vw, 12px);
  border: 1px solid var(--design-line);
  vertical-align: middle;
  font-size: clamp(12px, 1.3vw, 18px);
  line-height: 1.5;
  white-space: nowrap;
}
[data-page="equipment.html"] .equipment-status-table thead th {
  background: var(--design-surface);
  font-weight: 600;
}
[data-page="equipment.html"] .equipment-status-table tr > :first-child { width: 24%; }
[data-page="equipment.html"] .equipment-status-table tr > :first-child { border-left: 0; }
[data-page="equipment.html"] .equipment-status-table tr > :last-child { border-right: 0; }
[data-page="equipment.html"] .equipment-status-table thead tr:first-child > * { border-top: 0; }
[data-page="equipment.html"] .equipment-status-table tbody tr:last-child > * { border-bottom: 0; }
[data-page="equipment.html"] .equipment-status-table [scope="row"] { text-align: left; font-weight: 600; white-space: normal; word-break: keep-all; }
[data-page="equipment.html"] .equipment-status-table tr > :last-child {
  background: var(--design-surface);
  color: var(--accent);
  font-weight: 700;
}
@media (max-width: 480px) {
  [data-page="equipment.html"] .equipment-status-table tr > :first-child { width: 32%; }
  [data-page="equipment.html"] .equipment-status-table th,
  [data-page="equipment.html"] .equipment-status-table td { padding: 16px 1px; font-size: clamp(11px, 3vw, 12px); letter-spacing: -0.025em; }
}
@media (max-width: 680px) {
  [data-page="equipment.html"] .equipment-status-table th,
  [data-page="equipment.html"] .equipment-status-table td { padding-block: 5px; }
  [data-page="equipment.html"] .equipment-status-table [scope="row"] { text-align: center; }
  [data-page="equipment.html"] .equipment-row-button { justify-content: center; width: 100%; min-height: 32px; padding-block: 4px; text-align: center; }
}
[data-section-page] [data-section-reading-list] > article { scroll-snap-align: start; scroll-margin-top: calc(var(--reading-heading-height, 80px) + 16px); }
[data-section-page] #equipment-opening { scroll-snap-align: none; }
[data-section-page] #equipment-opening > .page-heading { scroll-snap-align: start; scroll-margin-top: clamp(24px, 5svh, 56px); }
@media (hover: none) and (pointer: coarse) {
  html.has-subpage-sections:has([data-section-reading-list]) { scroll-snap-type: y proximity; }
  /* A long gallery is one reading area; individual cards must not pull touch gestures back. */
  [data-section-page] [data-section-reading-list] > article { scroll-snap-align: none; }
  [data-section-page] #equipment-opening { scroll-snap-align: start; }
  [data-section-page] #equipment-opening > .page-heading { scroll-snap-align: none; }
  html.has-subpage-sections.has-section-wheel-input:has([data-section-reading-list]),
  html.has-subpage-sections.has-mobile-nav-open:has([data-section-reading-list]),
  html.has-subpage-sections:has([data-section-reading-list]):has(.site-header.has-open-menu) { scroll-snap-type: none; }
}
html.has-subpage-sections .footer { height: auto; min-height: 0; }
html.has-subpage-sections .footer__inner { height: auto; min-height: 0; padding-block: 32px max(32px, env(safe-area-inset-bottom, 0px)); }
html.has-subpage-sections:not(.has-subpage-free-scroll):not(.has-subpage-center-scroll) .footer { display: flex; align-items: center; min-height: 0; scroll-snap-align: start; }
/* Related pages and company information share the final reading section. */
html.has-subpage-sections .footer.footer--with-related {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 28px;
  padding-top: 24px;
}
.footer__related,
.footer-related-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 24px 40px;
}
.footer__related > :only-child,
.footer__related > .footer-related-group,
.footer-related-group > :only-child { grid-column: 1 / -1; }
.footer__related :is(.design-section, .design-section-head, .design-actions) { margin-top: 0; }
.footer__related .design-section-head { display: block; margin-bottom: 16px; }
.footer__related .design-section-head > p { margin-top: 12px; }
.footer__related :is(h2, .design-title) { margin-bottom: 12px; font-size: clamp(24px, 2.2vw, 30px); }
.footer__related .design-callout { height: auto; gap: 20px; padding: 24px 28px; }
.footer-related-group > .design-callout { flex-direction: column; align-items: flex-start; }
.footer__related .design-actions { gap: 12px 24px; }
.footer__related .design-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.footer__related .design-row { grid-template-columns: 24px minmax(0, 1fr) auto; gap: 12px; padding-block: 16px; }
.footer__related .design-row :is(h3, p) { margin-bottom: 0; }
.footer__related .design-row h3 { font-size: 20px; }
.footer__related .design-row .design-number { margin-bottom: 0; font-size: 13px; white-space: nowrap; }
.footer__related [id] { scroll-margin-top: calc(var(--site-header-height) + 24px); }
.footer-related-title-link { display: inline-flex; align-items: center; gap: 12px; color: inherit; }
.footer-related-title-link > [data-icon] { width: 18px; height: 18px; color: var(--accent); }
html .footer.footer--with-related .footer__inner {
  width: min(1320px, calc(100% - 2 * var(--gutter)));
  height: auto;
  min-height: 0;
  align-items: flex-start;
  margin-inline: auto;
  padding-block: 24px max(24px, env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--design-line);
  /* A long closing section keeps an endpoint below its start snap position. */
  scroll-snap-align: end;
}
/* Free-reading pages do not keep the old trailing space after moving links. */
.page-design:has(+ .footer--with-related) { padding-bottom: 0; }
@media (max-width: 960px) {
  .footer__related,
  .footer-related-group { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 680px) {
  html.has-subpage-sections .footer.footer--with-related { gap: 28px; padding-top: 24px; }
  .footer__related .design-callout { padding: 24px; }
  .footer__related .design-rows { grid-template-columns: minmax(0, 1fr); }
  html .footer.footer--with-related .footer__inner { align-items: stretch; }
}
/* A closed mobile footer fits below a section without adding a reading stop.
   Opening a category still grows the document so every link stays reachable. */
@media (max-width: 680px) {
  html .footer .footer__inner,
  html .footer.footer--with-related .footer__inner,
  body:has(.company-opening) > .footer .footer__inner {
    width: calc(100% - 2 * var(--gutter));
    margin-inline: auto;
    gap: 24px;
    padding-block: 24px max(24px, env(safe-area-inset-bottom, 0px));
  }
  html .footer .brand--footer .brand__image { width: 148px; }
  html .footer .company-info dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin-top: 16px; }
  html .footer .company-info dl > div { grid-template-columns: 48px minmax(0, 1fr); gap: 8px; }
  html .footer .company-info dl > div:nth-child(3) { grid-column: 1 / -1; }
  html .footer .company-info dl > div:nth-child(n + 4) { display: block; }
  html .footer .company-info dt { color: var(--design-muted, #586570); font-size: 13px; line-height: 1.5; }
  html .footer .company-info dd { color: #30383d; font-size: 16px; font-weight: 500; line-height: 1.5; }
  html .footer .company-info dl > div:first-child dd { font-weight: 650; }
  html .footer .company-info dl > div:nth-child(4) dd { font-size: 18px; font-weight: 650; }
  html .footer .company-info dd a[href^="tel:"] { margin-block: -10px; padding-block: 10px; color: var(--accent); }
  html .footer .footer-nav { grid-template-columns: minmax(0, 1fr); align-items: start; }
  html .footer .footer-nav__accordion[open] { grid-column: 1 / -1; }
  html .footer .footer-nav__summary,
  html .footer .footer-nav__direct-link { min-height: 48px; padding: 0; font-size: 16px; }
  html .footer .footer-nav__summary > .footer-nav__heading { padding-block: 8px; font-size: 16px; }
  html .footer .company-info dl > div:not(:nth-child(3)) dd { white-space: nowrap; }
  html.has-subpage-sections .footer.footer--with-related { gap: 16px; padding-top: 16px; }
  .footer__related,
  .footer-related-group { gap: 12px; }
  .footer__related :is(h2, .design-title) { margin-bottom: 6px; font-size: 20px; line-height: 1.4; }
  .footer__related .design-callout { gap: 8px; padding: 12px 16px; }
  .footer__related .design-callout .design-copy { font-size: 16px; line-height: 1.5; }
  .footer__related .design-callout :is(.design-link, .design-button) { min-height: 44px; padding-block: 8px; font-size: 16px; }
  .footer__related .design-actions { gap: 8px 16px; }
  /* Keep the destination on the heading rather than repeating its button.
     Product links remain in the business category directly below. */
  .footer__related .footer-related-title-link { min-height: 44px; }
  .footer__related .footer-related-repeat-link,
  .footer__related .footer-related-business-links { display: none; }
}
/* Small phones need full-width contact rows; fixed label columns otherwise
   leave too little room for the company name and unbroken phone numbers. */
@media (max-width: 379px) {
  html .footer .company-info dl > div:nth-child(-n + 2) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; }
  html .footer .company-info dl > div:nth-child(-n + 2) dt { flex-shrink: 0; }
  html .footer .company-info dl > div:nth-child(n + 4) {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: baseline;
  }
}
@media (max-width: 680px) and (max-height: 720px) {
  html .footer .footer__inner,
  html .footer.footer--with-related .footer__inner,
  body:has(.company-opening) > .footer .footer__inner {
    gap: 12px;
    padding-block: 8px max(8px, env(safe-area-inset-bottom, 0px));
  }
  html .footer .brand--footer .brand__image { width: 132px; }
  html .footer .company-info dl { gap: 4px 16px; margin-top: 8px; }
  html .footer .company-info dl > div:nth-child(4) dd { font-size: 16px; }
  html .footer .footer-nav__summary,
  html .footer .footer-nav__direct-link { min-height: 44px; }
  html.has-subpage-sections .footer.footer--with-related { gap: 8px; padding-top: 8px; }
  .footer__related,
  .footer-related-group { gap: 4px; }
  .footer__related :is(h2, .design-title) { margin-bottom: 4px; }
  .footer__related .design-callout { gap: 4px; padding: 0; background: transparent; }
  .footer__related .design-actions .design-link { min-height: 44px; padding-block: 4px; font-size: 16px; line-height: 1.5; }
}
@media (max-width: 379px) and (max-height: 720px) {
  html.has-subpage-sections .footer.footer--with-related { gap: 4px; padding-top: 0; }
}
/* Wide phones have room for a balanced footer: company details on the left,
   navigation on the right, instead of a narrow stack in an otherwise empty row. */
@media (min-width: 560px) and (max-width: 680px) {
  html .footer .footer__inner,
  html .footer.footer--with-related .footer__inner,
  body:has(.company-opening) > .footer .footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
    align-items: start;
    gap: 40px;
    padding-block: 24px max(24px, env(safe-area-inset-bottom, 0px));
  }
  html .footer .brand--footer .brand__image { width: 148px; }
  html .footer .company-info dl { gap: 8px 16px; margin-top: 16px; }
  html .footer .company-info dl > div:nth-child(4) dd { font-size: 18px; }
  html .footer .footer-nav { grid-template-columns: minmax(0, 1fr); border-top: 0; }
  html .footer .footer-nav__summary,
  html .footer .footer-nav__direct-link { min-height: 48px; }
}
@media (max-width: 680px) {
  .page-heading, .organization-page { width: calc(100% - 2 * var(--gutter)); }
  [data-section-page] > .design-body,
  [data-section-page] .subpage-opening > .design-body,
  [data-section-page] .subpage-content {
    width: calc(100% - 2 * var(--gutter));
    margin-inline: auto;
  }
  .organization-page[data-section-page] { padding-right: 0; }
  /* Keep the readable type floor even when short-screen rules reduce spacing. */
  .page-heading__description,
  .page-design .page-heading__description,
  .company-opening .page-heading__description,
  .company-opening .company-opening__copy .design-lead,
  .company-principles .design-copy,
  .company-principles.has-principle-story .design-card .design-copy {
    font-size: 16px;
    line-height: 1.65;
  }
  .design-facts > div,
  .product-overview .design-facts > div,
  .company-profile .company-profile__facts > div,
  .organization-department__children li,
  .organization-branch-panel__empty > p,
  .organization-branch-panel__facts > div { font-size: 16px; }
  [data-section-page][data-section-scroll="snap"] [data-subpage-section] { padding-block: 24px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening--video { padding-block: 0 24px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .page-heading { padding-bottom: 20px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .design-intro { gap: 20px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .page-heading__description { margin-top: 12px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .design-title { margin-bottom: 16px; font-size: 28px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .design-lead { margin-bottom: 16px; font-size: 16px; line-height: 1.65; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .design-kicker { margin-bottom: 12px; }
  [data-section-page][data-section-scroll="snap"] .subpage-opening .design-media { max-height: 18svh; }
  [data-section-page][data-section-scroll="snap"] .design-media { max-height: min(27svh, 240px); }
  [data-section-page][data-section-scroll="snap"] .certificate-gallery { gap: 12px; }
  [data-section-page][data-section-scroll="snap"] .certificate-gallery__image { height: auto; max-height: 40svh; }
  [data-section-page][data-section-scroll="snap"] .certificate-gallery__link { padding: 6px; }
  .business-product-panel .design-card { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .business-product-panel .design-card > .design-media { grid-column: 1; grid-row: auto; height: min(24svh, 200px); margin-bottom: 20px; }
  .business-product-panel .design-card > :not(.design-media) { grid-column: 1; }
  [data-section-page][data-section-scroll="snap"] .company-overview-details { gap: 24px; }
  .company-overview-details > .design-section { min-width: 0; }
  .company-overview-details .design-section-head .design-title { font-size: 24px; }
  .company-overview-details .design-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding-block: 16px; }
  .company-overview-details .design-row .design-number { display: none; }
  .company-overview-details .design-row h3 { font-size: 16px; }
  [data-section-page][data-section-scroll="snap"] .product-panel-group--applications { grid-template-columns: minmax(0, 1fr); }
  .product-quality-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  [data-section-page] .product-quality-layout__media { height: 160px; }
  .product-panel-group--applications .design-media { height: min(22svh, 180px); }
  [data-page="equipment.html"][data-section-scroll="snap"] .subpage-opening .design-media { max-height: none; }
}

/* Safari and touch WebKit use native scrolling regardless of pointer type.
   Long equipment content stays continuous. */
html.has-native-section-gestures :is(.scene-track, .company-opening, .company-panel, [data-subpage-section], .footer) {
  scroll-snap-stop: always;
}
html.has-native-section-gestures:has([data-section-nav]),
html.has-native-section-gestures:has(.company-opening) { scroll-snap-type: y mandatory; }
html.has-native-section-gestures:has([data-section-reading-list]) { scroll-snap-type: y proximity; }
html.has-native-section-gestures [data-section-reading-list] > article { scroll-snap-align: none; }
html.has-native-section-gestures [data-section-page] #equipment-opening { scroll-snap-align: start; }
html.has-native-section-gestures [data-section-page] #equipment-opening > .page-heading { scroll-snap-align: none; }
html.has-native-section-gestures:is(.has-mobile-nav-open, .has-subpage-free-scroll),
html.has-native-section-gestures:has(.site-header.has-open-menu),
html.has-native-section-gestures:has(.footer-nav__accordion[open]) { scroll-snap-type: none; }
/* The shared spring owns touch drags and settling; restore native snap on arrival. */
html.has-section-touch-drag { scroll-snap-type: none !important; }
/* Preserve native panning of a pinch-zoomed page, including horizontal rails. */
html.has-section-viewport-zoom,
html.has-section-viewport-zoom * { scroll-snap-type: none !important; }
/* Shared dimensions for the three business detail pages. */
.business-detail[data-section-page] {
  --product-content-width: 1200px;
  padding-top: 0;
}
.business-detail .design-body {
  width: min(var(--product-content-width), calc(100% - 2 * var(--gutter)));
}
.business-detail .page-heading,
.business-detail .page-heading__content {
  width: 100%;
  max-width: none;
}
.business-detail[data-section-page][data-section-scroll] .page-heading {
  display: grid;
  align-content: center;
  min-height: calc(var(--site-header-height) + 210px);
  margin: 0;
  padding: calc(var(--site-header-height) + 32px) max(var(--gutter), calc((100% - var(--product-content-width)) / 2)) 32px;
}
.business-detail[data-section-page][data-section-scroll] .subpage-opening {
  min-height: 100svh;
  padding-block: 0 40px;
  justify-content: flex-start;
  gap: 40px;
}
.business-detail[data-section-page][data-section-scroll] .subpage-opening > .design-body {
  flex: 1;
  display: grid;
  align-content: center;
}
.business-detail[data-section-page][data-section-scroll] .subpage-panel:not(.subpage-opening) {
  min-height: calc(100svh - var(--site-header-height));
  margin-top: 0;
  padding-block: clamp(40px, 6svh, 64px);
}
.business-detail[data-section-page] .design-body .product-overview > .product-overview__media {
  height: clamp(220px, 32svh, 320px);
  max-height: none;
  aspect-ratio: 16 / 10;
}
.business-detail img.product-overview__media--contain { object-fit: contain; }
.business-detail .flatbed-gallery__portrait {
  display: block;
  width: min(100%, 240px);
  height: auto;
  margin: 24px 0 0;
}
.page-design .product-examples {
  min-width: 0;
}

.page-design .product-examples__heading {
  width: 100%;
  margin: 0 auto 24px;
}
.page-design .product-examples__hint { display: none; }

.page-design .product-examples__grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
  margin: 0 auto;
  flex-shrink: 0;
}

.page-design .product-examples__figure {
  width: min(100%, 240px);
  min-width: 0;
  margin: 0;
  justify-self: center;
  border-radius: var(--radius-media);
  background: var(--paper);
  box-shadow: 0 8px 24px rgba(18, 35, 50, .09);
}

.page-design .product-examples__image {
  display: block;
  width: 100%;
  max-width: 240px;
  height: auto;
  max-height: none;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  padding: clamp(4px, 2cqh, 12px);
  border-radius: inherit;
}
.product-examples__media {
  display: grid;
  place-items: center;
  flex: none;
  width: 100%;
  min-width: 0;
}

.page-design .product-examples__caption {
  margin-top: 0;
  padding: 0 10px 10px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.005em;
  text-align: center;
}

/* Product media uses the viewport budget without containing the content height. */
.business-detail[data-section-page][data-section-scroll] .product-examples {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 20px;
  height: calc(100svh - var(--site-header-height));
  min-height: 0;
  padding-block: clamp(20px, 4svh, 40px);
}
.business-detail .product-examples .product-examples__heading,
.business-detail .product-examples .product-examples__note { margin: 0; }
.business-detail .product-examples__grid {
  min-height: 0;
  align-content: center;
}
.business-detail .product-examples__image {
  max-height: clamp(40px, calc((100svh - var(--site-header-height) - 360px) / 2), 160px);
}
.business-detail .product-examples__layout { min-height: 0; }
.business-detail .product-examples__figure--featured .product-examples__image {
  max-height: clamp(80px, calc(100svh - var(--site-header-height) - 240px), 267px);
}
.business-detail .flatbed-gallery__portrait {
  max-height: min(40svh, 400px);
  object-fit: contain;
  object-position: left center;
}

.page-design .product-examples__note {
  width: 100%;
  margin: 20px auto 0;
  color: var(--design-muted);
  font-size: 16px;
  letter-spacing: -0.005em;
}

.page-design .product-examples__layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.7fr);
  align-items: center;
  gap: clamp(32px, 4vw, 56px);
}
.page-design .product-examples__layout .product-examples__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.page-design .product-examples__layout .product-examples__figure--featured,
.page-design .product-examples__layout .product-examples__figure--featured .product-examples__image {
  width: 100%;
  max-width: 400px;
}

@media (max-width: 960px) {
  .page-design .product-examples__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .business-detail[data-section-page] .design-body .product-overview > .product-overview__media { height: 220px; }
  .business-detail[data-section-page][data-section-scroll] .subpage-opening { gap: 24px; padding-bottom: 24px; }
  .business-detail[data-section-page][data-section-scroll] .product-examples {
    grid-template-rows: auto minmax(280px, 1fr) auto;
    gap: 16px;
    padding-block: 16px;
  }
  .business-detail .product-examples .product-examples__heading { gap: 8px; }
  .business-detail .product-examples .product-examples__hint {
    display: block;
    flex: none;
    margin: 0;
    line-height: 1.6;
  }
  .business-detail .product-examples .product-examples__note {
    min-width: 0;
    line-height: 1.6;
  }
}

@media (max-height: 600px) and (min-width: 681px) {
  .business-detail[data-section-page][data-section-scroll] .page-heading {
    min-height: 0;
    padding-block: calc(var(--site-header-height) + 8px) 8px;
  }
  .business-detail .page-heading__eyebrow { margin-bottom: 8px; font-size: 11px; }
  .business-detail .page-heading__title { margin-bottom: 8px; font-size: 30px; line-height: 1.15; }
  .business-detail .page-heading__description { font-size: 14px; line-height: 1.5; }
  .business-detail[data-section-page][data-section-scroll] .subpage-opening { gap: 12px; padding-bottom: 12px; }
  .business-detail .design-body .product-overview { gap: 24px; }
  .business-detail .design-body .product-overview .design-kicker { margin-bottom: 8px; }
  .business-detail .design-body .product-overview .design-title { margin-bottom: 8px; font-size: 18px; line-height: 1.35; }
  .business-detail .design-body .product-overview .design-lead { margin-bottom: 8px; font-size: 14px; line-height: 1.5; }
  .business-detail .product-overview .design-actions { margin-top: 8px; }
  .business-detail .product-overview .design-link { min-height: 36px; padding-block: 4px; }
  .business-detail[data-section-page] .design-body .product-overview > .product-overview__media { height: 120px; }
  .business-detail[data-section-page][data-section-scroll] .subpage-panel:not(.subpage-opening) { padding-block: 16px; }
  .business-detail .product-examples__heading h2 { font-size: 26px; }
  .business-detail .product-examples__note { font-size: 14px; line-height: 1.5; }
}

/* Normal product layouts fit one viewport. Short screens and enlarged text
   keep their natural content height and use the document's single reading scroll.
   Clip only entrance-animation paint outside the content-sized section. */
.business-detail[data-section-page][data-section-scroll][data-section-layout-contract] [data-section-layout]:is([data-section-layout="viewport"], [data-section-layout="contained"]) {
  height: auto;
  min-height: calc(100svh - var(--site-header-height));
  max-height: none;
  overflow: clip;
  align-content: safe center;
  justify-content: safe center;
}
.business-detail[data-section-page][data-section-scroll][data-section-layout-contract] [data-section-layout][data-section-viewport="full"] {
  height: auto;
  min-height: 100svh;
  max-height: none;
  justify-content: flex-start;
}
.business-detail[data-section-layout-contract] .subpage-opening > :is(.page-heading, .design-body) { flex-shrink: 0; }
.business-detail[data-section-layout-contract] .subpage-opening > .design-body { align-content: safe center; }
.business-detail[data-section-layout-contract] [data-section-layout]:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
/* Keep captions and notes in the flow when enlarged type leaves less media room. */
.business-detail[data-section-page][data-section-scroll][data-section-layout-contract] .product-examples {
  grid-template-rows: auto minmax(min-content, 1fr) auto;
  padding-block: clamp(20px, 4svh, 40px);
}
.business-detail[data-section-layout-contract] .product-examples__grid { align-content: safe center; }
@media (max-width: 680px) {
  .business-detail[data-section-page][data-section-scroll][data-section-layout-contract] .product-examples {
    grid-template-rows: auto minmax(min(280px, 30svh), 1fr) auto;
    padding-block: 16px;
  }
}

/* Product storytelling layouts: scoped to the three product pages. */
/* Product understanding → production evidence → application examples.
   Section heights and overflow remain owned by the shared layout contract. */
.business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening {
  gap: clamp(20px, 3svh, 32px);
  padding-bottom: clamp(20px, 3svh, 32px);
}
.product-story .story-overview {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.8fr);
  align-items: center;
  gap: 40px;
  padding-block: 0;
}
.product-story .story-intro-heading {
  min-width: 0;
  margin: 0;
}
.product-story .story-intro-heading .design-kicker { margin-bottom: 8px; }
.product-story .story-intro-heading h2 {
  max-width: 11em;
  margin: 0;
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.4;
}
.product-story .story-intro-heading .design-lead {
  max-width: 26em;
  margin: 20px 0 0;
  font-size: 18px;
  line-height: 1.7;
}
.product-story .story-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  overflow: clip;
}
.product-story .story-overview .story-gallery {
  display: flex;
  align-items: start;
  gap: 20px;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--design-line) transparent;
  padding-bottom: 12px;
}
.product-story .story-overview .story-gallery > .story-photo {
  flex: 0 0 calc((100% - 20px) / 2);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.product-story .story-photo { min-width: 0; margin: 0; }
.product-story .story-photo :is(img, video) {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-media);
}
.product-story .story-photo video { aspect-ratio: 16 / 9; background: var(--ink); }
.product-story .story-video { position: relative; overflow: hidden; border-radius: var(--radius-media); }
.product-story .story-video video { position: absolute; inset: 0; height: 100%; visibility: hidden; }
.product-story .story-video.is-video-playing video { visibility: visible; }
@media (prefers-reduced-motion: reduce) {
  .product-story .story-video.is-video-playing video { visibility: hidden; }
}
.product-story .story-photo figcaption {
  margin-top: 12px;
  color: var(--design-muted);
  font-size: 16px;
  line-height: 1.5;
  text-align: left;
}
.product-story .story-gallery-hint { display: none; }
#main.product-story .story-feature {
  display: grid;
  grid-template-columns: minmax(0, .72fr) minmax(0, 1.8fr);
  align-items: center;
  gap: 40px;
}
.product-story .story-feature__copy h2 {
  max-width: 11em;
  margin: 0;
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1.4;
}
.product-story .story-feature__copy .design-copy { max-width: 25em; }
.product-story .story-quality-photo { margin-top: 24px; }
.product-story .story-quality-photo img {
  max-height: clamp(112px, 24svh, 220px);
  object-position: left center;
}
.product-story .story-feature__copy .design-actions { margin-top: 28px; }
.product-story .story-feature__media { min-width: 0; }
#main.product-story .story-feature--process { grid-template-columns: minmax(0, .72fr) minmax(0, 1.8fr); gap: 40px; }
.product-story .story-feature--process .story-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; }
.product-story .story-applications-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
  gap: 24px 48px;
  border-top: 1px solid var(--design-line);
  padding-top: 20px;
  margin-bottom: 16px;
}
.product-story .story-applications-info h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
}
.product-story .story-applications-info p { margin: 0; font-size: 16px; line-height: 1.65; }
.product-story .story-examples-notes { min-width: 0; }
.product-story .story-quality-steps { grid-template-columns: 1fr; gap: 0; margin: 0; }
.product-story .story-quality-steps > li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 20px;
  padding-block: 20px;
  border-top: 1px solid var(--design-line);
}
.product-story .story-quality-steps > li:first-child { border-top: 0; padding-top: 0; }
.product-story .story-quality-steps > li:last-child { padding-bottom: 0; }
.product-story .story-quality-steps .resin-quality__number { display: block; margin: 4px 0 0; }
.product-story .story-quality-steps .resin-quality__number::after { display: none; }
.product-story .story-quality-steps h3 { margin-bottom: 10px; }
@media (min-width: 681px) {
  .product-story .product-examples__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: start;
    gap: 24px;
  }
  .product-story .product-examples__figure {
    flex: 0 1 calc((100% - 72px) / 4);
    max-width: 240px;
  }
  .product-story :is(.story-examples--three, .story-examples--five, .story-examples--six) .product-examples__grid {
    max-width: 840px;
  }
  .product-story :is(.story-examples--three, .story-examples--five, .story-examples--six) .product-examples__figure {
    flex-basis: calc((100% - 48px) / 3);
  }
  .product-story .story-overview:has(.story-photo:nth-child(3)) .story-gallery-hint {
    display: block;
    grid-column: 2;
    margin: -24px 0 0;
    color: var(--design-muted);
    font-size: 14px;
    line-height: 1.5;
  }
}
@media (max-width: 800px) {
  .product-story .story-overview { grid-template-columns: 1fr; gap: 24px; }
  /* A desktop hint must not create an implicit second column after stacking. */
  .product-story .story-overview:has(.story-photo:nth-child(3)) .story-gallery-hint {
    grid-column: 1 / -1;
    margin: 0;
  }
  .product-story .story-intro-heading .design-lead { font-size: 16px; }
  #main.product-story :is(.story-feature, .story-feature--process) { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px; }
  .product-story .story-feature__copy h2 { max-width: none; }
  .product-story .story-feature__copy .design-copy { max-width: 36em; }
  .product-story .story-feature__copy .design-actions { margin-top: 20px; }
}
/* The stacked tablet opening needs the same compact title spacing on both
   sides of the 600px height boundary. Keep readable type and the photo minimum. */
@media (min-width: 681px) and (max-width: 800px) {
  .business-detail.product-story[data-section-page][data-section-scroll] .page-heading {
    min-height: 0;
    padding-block: calc(var(--site-header-height) + 8px) 8px;
  }
  .business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening.subpage-panel {
    gap: 12px;
    padding-bottom: 12px;
  }
  .product-story .story-overview { gap: 12px; }
}
@media (max-width: 680px) {
  #main.product-story :is(.story-feature, .story-feature--process) { grid-template-columns: 1fr; gap: 20px; padding-block: 16px; }
  .product-story .story-feature > .story-photo img {
    width: auto;
    max-width: 100%;
    max-height: clamp(160px, calc(100svh - var(--site-header-height) - 300px), 400px);
    margin-inline: auto;
  }
  /* Reserve space for the copy, link, captions and rail hint before sizing
     the process photos. A wide mobile viewport must not enlarge the rail. */
  .product-story .story-feature--process .story-gallery > .story-photo {
    flex-basis: clamp(200px, calc((100svh - var(--site-header-height) - 430px) * 16 / 9), calc(100% - 24px));
  }
  .product-story .story-overview { gap: 20px; }
  .product-story .story-intro-heading h2 { max-width: none; }
  .product-story .story-intro-heading .design-lead { margin-top: 12px; }
  .product-story .story-overview .story-gallery { gap: 16px; }
  .product-story .story-gallery {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding-bottom: 12px;
    scrollbar-width: thin;
    scrollbar-color: var(--design-line) transparent;
  }
  .product-story .story-gallery > .story-photo {
    flex: 0 0 calc(100% - 24px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  .product-story .story-photo figcaption { margin-top: 8px; text-align: left; }
  .product-story .story-gallery-hint {
    display: block;
    margin: 4px 0 0;
    color: var(--design-muted);
    font-size: 14px;
    line-height: 1.5;
  }
  .product-story .story-applications-info { grid-template-columns: 1fr; gap: 12px; }
  .product-story .story-quality-steps > li { padding-block: 16px; }
  .product-story .story-quality-steps h3 { font-size: 22px; }
  .product-story .story-feature--quality .story-feature__copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(96px, .65fr);
    column-gap: 20px;
    align-items: center;
  }
  .product-story .story-feature--quality .story-feature__copy > :is(p, h2) { grid-column: 1; }
  .product-story .story-quality-photo {
    grid-column: 2;
    grid-row: 1 / 3;
    margin: 0;
  }
  .product-story .story-quality-photo img { max-height: 160px; }
}
@media (min-width: 681px) and (max-height: 600px) {
  .product-story .story-intro-heading .design-lead { font-size: 16px; }
  .product-story .story-feature__copy h2 { font-size: 26px; }
  .product-story .story-feature__copy .design-actions { margin-top: 16px; }
}
/* Spend less of a short mobile screen on the title band, preserving body type
   and the full photo. Still shorter screens grow in normal document flow. */
@media (max-width: 680px) {
  .business-detail.product-story { --gutter: 20px; }
  .business-detail.product-story[data-section-page][data-section-scroll] .page-heading {
    min-height: 0;
    padding-block: calc(var(--site-header-height) + 8px) 8px;
  }
  .product-story .page-heading__eyebrow { margin-bottom: 8px; }
  .business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening.subpage-panel { gap: 12px; padding-bottom: 8px; }
  .product-story .story-overview { gap: 8px; }
  .business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening .story-intro-heading .design-kicker { margin-bottom: 6px; }
  .business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening .story-intro-heading h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.4;
  }
  .business-detail.product-story[data-section-page][data-section-scroll] .subpage-opening .story-intro-heading .design-lead { margin: 8px 0 0; }
  /* The title and readable copy keep their natural height. Size the photo rail
     for the remaining screen budget, preserving the complete image ratio. */
  .product-story .story-overview .story-gallery { padding-bottom: 4px; }
  .product-story .story-overview .story-gallery > .story-photo { flex: 0 0 auto; }
  .product-story .story-overview .story-photo img {
    width: auto;
    height: auto;
    max-height: var(--story-photo-height, clamp(112px, calc(100svh - 446px), 260px));
    max-width: calc(100vw - 2 * var(--gutter) - 24px);
  }
}

/* The measured budget includes the actual wrapped title, copy and captions.
   Images shrink proportionally; text remains in normal document flow. */
.product-story .story-overview .story-photo img {
  width: auto;
  max-width: 100%;
  max-height: var(--story-photo-height, none);
}
@media (max-width: 680px) {
  .product-story .story-overview .story-photo img {
    max-width: calc(100vw - 2 * var(--gutter) - 24px);
  }
}

/* A large preprinting lead anchors the smaller application examples.
   object-fit trims only the surrounding white canvas; original assets stay intact. */
@media (min-width: 681px) {
  :is(#rotary-examples, #flatbed-examples) .product-examples__grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    max-width: 1000px;
  }
  :is(#rotary-examples, #flatbed-examples) .product-examples__figure {
    grid-column: span 3;
    width: 100%;
    max-width: none;
  }
  :is(#rotary-examples, #flatbed-examples) .product-examples__figure:nth-child(-n + 3) { grid-column: span 4; }
  :is(#rotary-examples, #flatbed-examples) .product-examples__image { max-width: none; }
}
#resin-examples .product-examples__grid {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(0, .9fr) repeat(2, minmax(0, 1fr));
  align-content: center;
  align-items: stretch;
  gap: 24px;
  /* Keep the outer card shadows inside the section's clipping boundary. */
  padding-inline: 28px;
}
#resin-examples .resin-examples__row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
}
#resin-examples .resin-examples__row--printing {
  display: contents;
}
#resin-examples .resin-examples__row--printing .product-examples__figure {
  width: 100%;
}
#resin-examples .resin-examples__featured {
  grid-row: 1 / span 2;
  align-self: center;
}
#resin-examples .resin-examples__row--packaging {
  grid-column: 3 / span 2;
  align-self: stretch;
  align-items: stretch;
}
#resin-examples .product-examples__figure {
  flex: 1 1 0px;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: auto;
  padding: 12px 12px 0;
}
#resin-examples .product-examples__crop {
  position: relative;
  display: block;
  flex: none;
  width: 100%;
  aspect-ratio: var(--example-ratio);
  overflow: hidden;
  border-radius: var(--radius-small);
}
#resin-examples .product-examples__crop > .product-examples__image {
  position: absolute;
  left: var(--example-source-left, 0%);
  top: var(--example-source-top, 0%);
  width: var(--example-source-width, 100%);
  height: var(--example-source-height, 100%);
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  object-fit: fill;
  object-view-box: none;
  padding: 0;
  border-radius: 0;
}
#resin-examples .product-examples__crop:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
#resin-examples .product-examples__caption { padding: 10px 0 14px; }
#resin-examples .resin-examples__featured .product-examples__caption { font-size: 18px; }
@media (min-width: 681px) {
  #resin-examples .resin-examples__row--printing > .product-examples__figure {
    display: flex;
    flex-direction: column;
  }
  #resin-examples .resin-examples__row--packaging .product-examples__caption,
  #resin-examples .resin-examples__row--printing > .product-examples__figure:not(.resin-examples__featured):not(.resin-examples__paper-sack) .product-examples__caption {
    margin-top: auto;
  }
  #resin-examples .resin-examples__featured {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    justify-content: center;
    padding: 28px 20px;
  }
  #resin-examples .resin-examples__paper-sack {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch;
    padding-block: 24px;
  }
}
@media (min-width: 681px) and (max-height: 740px) {
  #resin-examples .product-examples__grid { gap: 16px; }
  #resin-examples .product-examples__caption { padding: 8px 0 10px; }
  #resin-examples .resin-examples__featured { padding-block: 20px; }
}


/* Die overviews: show all three photos together, without a horizontal rail. */
:is(#rotary-overview, #flatbed-overview) .story-gallery {
  min-width: 0;
  display: grid;
  /* JS measures fitted columns synchronously; reduced-motion durations must
     not create an implicit transition on the default `all` property. */
  transition-property: none;
  grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  overflow: visible;
  padding-bottom: 0;
  scroll-snap-type: none;
}
:is(#rotary-overview, #flatbed-overview) .story-gallery > .story-photo { min-width: 0; }
:is(#rotary-overview, #flatbed-overview) .story-photo:first-child { grid-row: span 2; }
:is(#rotary-overview, #flatbed-overview) .story-photo img {
  width: auto;
  max-width: 100%;
  margin-inline: auto;
  border-radius: var(--radius-media);
}
:is(#rotary-overview, #flatbed-overview) .story-photo:not(:first-child) img {
  max-height: max(48px, calc((var(--story-photo-height, 350px) - 52px) / 2));
}
@media (min-width: 801px) {
  :is(#rotary-overview, #flatbed-overview) .story-gallery {
    grid-template-columns: var(--rotary-main-width, minmax(0, 2fr)) var(--rotary-side-width, minmax(0, 1fr));
    align-items: start;
  }
  :is(#rotary-overview, #flatbed-overview) .story-photo img,
  :is(#rotary-overview, #flatbed-overview) .story-photo:not(:first-child) img {
    width: 100%;
    max-height: none;
  }
}
@media (max-width: 800px) {
  :is(#rotary-overview, #flatbed-overview) .story-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  :is(#rotary-overview, #flatbed-overview) .story-photo:first-child { grid-row: auto; grid-column: 1 / -1; }
  :is(#rotary-overview, #flatbed-overview) .story-photo:first-child img {
    width: auto;
    margin-inline: auto;
    max-height: max(64px, calc((var(--story-photo-height, 320px) - 52px) * .65));
  }
  :is(#rotary-overview, #flatbed-overview) .story-photo:not(:first-child) img {
    max-height: max(40px, calc((var(--story-photo-height, 320px) - 52px) * .35));
  }
}

/* Fit the image element itself to its pixels, so all four media corners round. */
#rotary-product .story-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 20px;
  overflow: visible;
  padding: 0;
}
#rotary-product .story-photo img {
  width: auto;
  max-width: 100%;
  margin-inline: auto;
  border-radius: var(--radius-media);
}
@media (max-width: 680px) {
  #rotary-product .story-gallery { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #rotary-product .story-photo img {
    max-height: max(88px, calc((100svh - var(--site-header-height) - 290px) / 2));
  }
}

/* Mobile product pages are read vertically. Let real photo/card rows determine
   section height instead of hiding the remaining products in horizontal rails. */
@media (max-width: 1100px) {
  .business-detail.product-story[data-section-page][data-section-scroll][data-section-layout-contract] .product-examples {
    height: auto;
    grid-template-rows: auto auto auto;
    align-content: start;
    gap: 12px;
    padding-block: 16px;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__rail {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    align-items: stretch;
    width: 100%;
    max-width: none;
    height: auto;
    gap: 12px;
    padding: 12px 12px 16px;
    overflow: visible;
    scroll-snap-type: none;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__rail .product-examples__figure {
    display: flex;
    flex-direction: column;
    grid-column: auto;
    grid-row: auto;
    align-self: stretch;
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    height: auto;
    padding: 8px 8px 0;
  }
  :is(#rotary-examples, #flatbed-examples) .product-examples__rail .product-examples__image {
    flex: none;
    width: 100%;
    height: auto;
    min-height: 0;
    max-width: none;
    max-height: none;
    aspect-ratio: 4 / 3;
    padding: 0;
    object-fit: contain;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__caption {
    margin-top: auto;
    padding: 8px 0 12px;
    font-size: 16px;
    line-height: 1.5;
  }
  #resin-examples .resin-examples__row { display: contents; }
  #resin-examples .product-examples__rail .resin-examples__featured {
    grid-column: 1 / -1;
    order: 0;
    padding: 12px 12px 0;
  }
  #resin-examples .resin-examples__row--printing > :nth-child(3) { order: 1; }
  #resin-examples .resin-examples__row--printing > :nth-child(4) { order: 2; }
  #resin-examples .resin-examples__paper-sack { order: 3; }
  #resin-examples .resin-examples__row--packaging > :nth-child(1) { order: 4; }
  #resin-examples .resin-examples__row--packaging > :nth-child(2) { order: 5; }
  #resin-examples .resin-examples__row--packaging > :nth-child(3) { order: 6; }
  .business-detail.product-story[data-section-page][data-section-scroll][data-section-layout-contract] .product-examples[data-example-fit] {
    grid-template-rows: auto minmax(min-content, 1fr) auto;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples)[data-example-fit] .product-examples__rail {
    align-self: center;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples)[data-example-fit] .product-examples__media {
    height: var(--example-fit-height);
  }
  #resin-examples[data-example-fit] .resin-examples__featured .product-examples__media {
    height: var(--example-featured-fit-height);
  }
  :is(#rotary-examples, #flatbed-examples)[data-example-fit] .product-examples__media > .product-examples__image {
    height: var(--example-fit-height);
    aspect-ratio: auto;
  }
  #resin-examples[data-example-fit] .product-examples__crop {
    width: min(100%, calc(var(--example-fit-height) * var(--example-ratio)));
  }
  #resin-examples[data-example-fit] .resin-examples__featured .product-examples__crop {
    width: min(100%, calc(var(--example-featured-fit-height) * var(--example-ratio)));
  }
}
@media (min-width: 640px) and (max-width: 1100px) {
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__rail {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  #resin-examples .product-examples__rail .resin-examples__featured { grid-column: span 2; }
}
@media (min-width: 640px) and (max-width: 1100px) and (max-height: 600px) {
  .business-detail.product-story[data-section-page][data-section-scroll][data-section-layout-contract] .product-examples {
    padding-block: 12px;
    gap: 8px;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__rail {
    gap: 10px;
    padding-block: 6px 10px;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__rail .product-examples__figure {
    padding-top: 6px;
  }
  :is(#resin-examples, #rotary-examples, #flatbed-examples) .product-examples__caption {
    padding-block: 4px 6px;
    font-size: 14px;
    line-height: 1.4;
  }
}
@media (min-width: 1101px) {
  :is(#rotary-examples, #flatbed-examples)[data-example-fit] .product-examples__media {
    height: var(--example-fit-height);
  }
  :is(#rotary-examples, #flatbed-examples)[data-example-fit] .product-examples__media > .product-examples__image {
    height: var(--example-fit-height);
    aspect-ratio: auto;
  }
}
@media (max-width: 800px) {
  .product-story .story-overview .story-gallery,
  .product-story .story-feature--process .story-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    overflow: visible;
    padding: 0;
    scroll-snap-type: none;
  }
  /* These resin photos now form a vertical grid. Former horizontal-rail
     targets must not become stops in the document's mandatory snap scroll. */
  #resin-opening .story-gallery > .story-photo {
    scroll-snap-align: none;
    scroll-snap-stop: normal;
  }
  :is(#rotary-overview, #flatbed-overview) .story-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .product-story .story-overview .story-gallery .story-photo img,
  .product-story .story-feature--process .story-gallery .story-photo img {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
  }
}

/* Give the resin production photo the same main-column role as the die pages. */
#main.product-story #resin-performance {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  grid-template-rows: auto auto;
  align-content: safe center;
  align-items: start;
  column-gap: 40px;
  row-gap: 24px;
}
#resin-performance .story-feature__copy {
  display: block;
  grid-column: 1;
  grid-row: 1;
  align-self: end;
}
#resin-performance .story-quality-photo {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: center;
  width: min(100%, calc(min(60svh, calc(100svh - var(--site-header-height) - 112px), 520px) * 4 / 3));
  min-width: 0;
  margin: 0;
}
#resin-performance .story-quality-photo img {
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: min(60svh, calc(100svh - var(--site-header-height) - 112px), 520px);
  margin-inline: auto;
  border-radius: var(--radius-media);
}
#resin-performance .story-quality-steps {
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
}
#resin-performance .story-quality-steps > li {
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 12px;
  padding-block: 14px;
}
#resin-performance .story-quality-steps > li:first-child { padding-top: 0; }
#resin-performance .story-quality-steps > li:last-child { padding-bottom: 0; }
#resin-performance .story-quality-steps h3 {
  margin-bottom: 6px;
  font-size: 20px;
  line-height: 1.4;
}
#resin-performance .story-quality-steps .design-copy { font-size: 16px; line-height: 1.65; }
@media (max-width: 680px) {
  #main.product-story #resin-performance {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 20px;
  }
  #resin-performance .story-feature__copy { grid-column: 1; grid-row: 1; }
  #resin-performance .story-feature__copy h2 { max-width: 18em; }
  #resin-performance .story-quality-photo { grid-column: 1; grid-row: 2; width: min(100%, 600px); }
  #resin-performance .story-quality-photo img {
    width: min(100%, 600px);
    max-height: none;
  }
  #resin-performance .story-quality-steps { grid-column: 1; grid-row: 3; }
}

/* Standard headings share one opening rhythm; feature and product openings stay independent. */
.page-shell[data-page]:where(:not(.business-detail):not([data-page="company-introduction.html"])):has(.page-heading:not(.page-heading--video)) {
  padding-top: calc(var(--site-header-height) + var(--page-heading-top-space));
}
.page-shell[data-page]:where(:not(.business-detail):not([data-page="company-introduction.html"])):has(.page-heading:not(.page-heading--video)) > [data-subpage-section]:first-child {
  padding-top: 0;
  justify-content: flex-start;
  /* Native touch/Safari snapping must include the same opening inset as JS. */
  scroll-margin-top: var(--page-heading-top-space);
}
.page-shell[data-page]:where(:not(.business-detail):not([data-page="company-introduction.html"])) .page-heading:not(.page-heading--video) {
  padding-bottom: 32px;
}
.page-shell[data-page]:where(:not(.business-detail):not([data-page="company-introduction.html"])) .page-heading:not(.page-heading--video) .page-heading__description {
  margin-top: 12px;
}

/* Compact is the default for text-only headings, with room between each line. */
.page-shell[data-page] .page-heading:not(.page-heading--video) .page-heading__eyebrow { margin-bottom: 12px; }
.page-shell[data-page] .page-heading:not(.page-heading--video) .page-heading__title { font-size: 32px; }
.page-shell[data-page] .page-heading:not(.page-heading--video) .page-heading__description { margin-top: 12px; font-size: 16px; line-height: 1.65; }
@media (max-width: 680px) {
  .page-shell[data-page] .page-heading:not(.page-heading--video) { padding-bottom: 24px; }
  .page-shell[data-page] .page-heading:not(.page-heading--video) .page-heading__title { font-size: 30px; }
}

/* Hide only entrance surfaces until the module has assigned their start states.
   A failed/late module must leave the static content readable. */
@media (prefers-reduced-motion: no-preference) {
  html.is-entrance-pending :is([data-text-reveal], [data-company-reveal], [data-image-motion], [data-page-heading]:not(.page-heading--video), main[data-section-page]:not([data-section-scroll="free"]):not([data-section-scroll="center"]) [data-subpage-section]) {
    visibility: hidden;
  }
}
html.has-entrance-fallback :is([data-text-reveal], [data-company-reveal], [data-image-motion], [data-heading-motion], [data-heading-motion] > *) {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  translate: none !important;
  clip-path: none !important;
  filter: none !important;
  transition: none !important;
}

body:has([data-page="equipment.html"]) > .footer { margin-top: clamp(32px, 5svh, 56px); }
