/* H2D Pro only. Native CSS;
   RIM H2D family colors, square imagery and controls. */
.h2dp {
  --hp-bg:#000;
  --hp-panel:#101010;
  --hp-text:#fff;
  --hp-muted:#c4c4c4;
  --hp-line:#343434;
  --hp-accent:#00ae42;
  background:var(--hp-bg);
  color:var(--hp-text);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  font-size:16px;
  line-height:1.9;
  overflow-wrap:anywhere
}

.h2dp * {
  box-sizing:border-box
}
.h2dp-wrap {
  width:min(1200px,calc(100% - 80px));
  margin-inline:auto
}
.h2dp img {
  display:block;
  max-width:100%;
  height:auto
}
.h2dp h1,.h2dp h2,.h2dp h3,.h2dp p,.h2dp figure,.h2dp dl {
  margin:0
}
.h2dp a {
  color:inherit
}
.h2dp a:focus-visible,.h2dp summary:focus-visible {
  outline:3px solid var(--hp-accent);
  outline-offset:5px
}
.h2dp section[id] {
  scroll-margin-top:110px
}

.h2dp-breadcrumb {
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  padding-block:25px;
  font-size:12px;
  color:var(--hp-muted)
}
.h2dp-breadcrumb a {
  text-decoration:none
}
.h2dp-breadcrumb a:hover {
  text-decoration:underline
}

.h2dp-hero {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:60px;
  align-items:center;
  padding-top:35px;
  padding-bottom:70px
}
.h2dp h1 {
  font-size:clamp(56px,6.7vw,88px);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.03em;
  margin:16px 0 24px
}
.h2dp-lead {
  font-size:clamp(26px,3vw,38px);
  font-weight:700;
  line-height:1.55;
  letter-spacing:.025em
}
.h2dp .h2dp-intro {
  margin-top:22px;
  color:var(--hp-muted);
  font-size:15px
}
.h2dp-actions {
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:32px
}
.h2dp .h2dp-button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:16px;
  background:var(--hp-accent);
  color:#fff;
  padding:14px 25px;
  border:2px solid var(--hp-accent);
  border-radius:6px;
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  transition:transform .2s,opacity .2s
}
.h2dp .h2dp-button:hover {
  transform:translateY(-2px);
  opacity:.88
}
.h2dp-textlink {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  text-underline-offset:6px;
  font-size:14px
}
.h2dp-product {
  display:flex;
  justify-content:center;
  align-items:center;
  padding:28px 35px;
  background:transparent;
  border-radius:0
}
.h2dp-product img {
  width:min(100%,340px);
  height:auto
}

.h2dp-metrics {
  display:grid;
  grid-template-columns:1fr 1fr 1.6fr;
  gap:35px;
  padding:30px 0;
  border-top:1px solid var(--hp-line);
  border-bottom:1px solid var(--hp-line)
}
.h2dp-metrics dt {
  font-size:12px;
  color:var(--hp-muted)
}
.h2dp-metrics dd {
  margin:6px 0 0;
  font-size:26px;
  letter-spacing:-.02em;
  font-weight:600;
  line-height:1.4;
  font-variant-numeric:tabular-nums
}
.h2dp-metrics dd span {
  font-size:16px;
  letter-spacing:0;
  margin-left:8px
}
.h2dp-metrics .h2dp-size {
  font-size:26px;
  padding-top:0
}
.h2dp-index {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:24px 0;
  font-size:14px
}
.h2dp-index a {
  display:flex;
  align-items:center;
  min-height:44px;
  text-decoration:none
}
.h2dp-index a:hover {
  color:var(--hp-accent);
  text-decoration:underline;
  text-underline-offset:5px
}

.h2dp-section {
  padding-block:90px
}
.h2dp h2 {
  font-size:clamp(28px,3.4vw,42px);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.02em
}
.h2dp h3 {
  font-size:21px;
  line-height:1.6;
  font-weight:700
}
.h2dp-section-heading {
  margin-bottom:38px;
  max-width:800px
}
.h2dp-section-heading>p:last-child {
  margin-top:20px;
  color:var(--hp-muted)
}
.h2dp-material-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:40px;
  align-items:start
}
.h2dp-feature img {
  width:100%;
  aspect-ratio:auto;
  object-fit:contain
}
.h2dp-feature:not(.h2dp-feature-large) {
  padding-top:48px
}
.h2dp-feature>div {
  padding-top:23px
}
.h2dp-feature p,.h2dp-equipment p {
  margin-top:13px;
  color:var(--hp-muted)
}
.h2dp .h2dp-note {
  font-size:13px;
  line-height:1.8;
  color:var(--hp-muted);
  margin-top:16px
}
.h2dp-precision {
  margin-top:55px;
  padding:30px 35px;
  background:var(--hp-panel)
}
.h2dp-precision>p {
  margin-top:12px;
  max-width:900px;
  color:var(--hp-muted)
}
.h2dp-tinted {
  background:var(--hp-panel)
}
.h2dp-network {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:65px;
  align-items:center
}
.h2dp-network h2 {
  margin-block:16px 24px
}
.h2dp-network p {
  color:var(--hp-muted)
}
.h2dp-network ul {
  padding-left:20px;
  margin-block:24px
}
.h2dp-network img {
  width:100%;
  aspect-ratio:auto;
  object-fit:contain
}
.h2dp-equipment {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px
}
.h2dp-equipment img {
  width:100%;
  aspect-ratio:auto;
  object-fit:contain;
  margin-bottom:24px
}
.h2dp-ams {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:50px;
  border-top:1px solid var(--hp-line);
  padding-top:35px;
  margin-top:50px
}
.h2dp-ams p {
  color:var(--hp-muted)
}

.h2dp-spec-layout {
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:70px
}
.h2dp-spec-layout h2 {
  margin-block:16px 24px
}
.h2dp details {
  border-bottom:1px solid var(--hp-line)
}
.h2dp summary {
  cursor:pointer;
  padding:22px 0;
  font-size:17px;
  font-weight:700;
  list-style:revert;
  display:list-item
}
.h2dp details>p,.h2dp details>ul {
  margin:0 0 24px;
  color:var(--hp-muted)
}
.h2dp details>ul {
  padding-left:22px
}
.h2dp details .h2dp-note {
  margin:15px 0 25px
}
.h2dp-spec-groups dl>div {
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:20px;
  padding:13px 15px;
  font-size:14px
}
.h2dp-spec-groups dl>div:nth-child(odd) {
  background:var(--hp-bg)
}
.h2dp-spec-groups dt {
  color:var(--hp-muted)
}
.h2dp-spec-groups dd {
  margin:0
}
.h2dp-faq {
  max-width:900px
}
.h2dp-faq h2 {
  margin-bottom:24px
}
.h2dp-faq details>p {
  max-width:750px
}
.h2dp-contact {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:55px 60px;
  background:var(--hp-panel);
  border-top:3px solid var(--hp-accent)
}
.h2dp-contact h2 {
  margin-top:16px
}
.h2dp-contact p {
  margin-top:20px;
  color:var(--hp-muted)
}
.h2dp {
  padding-bottom:90px
}

/* Preserve diagrams and equipment labels without cropping their edges. */
.h2dp-feature img,.h2dp-network img,.h2dp-equipment img {
  object-fit:contain;
  background:#171a18
}

@media(prefers-reduced-motion:reduce) {
  .h2dp .h2dp-button {
  transition:none
}
.h2dp .h2dp-button:hover {
  transform:none
}

}

@media(max-width:1000px) {
  .h2dp-wrap {
  width:calc(100% - 48px)
}
.h2dp-hero {
  gap:30px
}
.h2dp-product {
  padding:28px
}
.h2dp-actions {
  gap:18px
}
.h2dp-network,.h2dp-spec-layout {
  gap:35px
}
.h2dp-metrics .h2dp-size {
  font-size:24px
}
.h2dp-contact {
  padding:40px
}

}

@media(max-width:767px) {
  .h2dp {
  font-size:15px;
  padding-bottom:48px
}
.h2dp-wrap {
  width:calc(100% - 40px)
}
.h2dp-breadcrumb {
  padding-block:18px;
  font-size:11px;
  gap:10px
}
.h2dp-hero {
  grid-template-columns:1fr;
  gap:32px;
  padding-top:22px;
  padding-bottom:40px
}
.h2dp h1 {
  font-size:64px;
  margin:12px 0 18px
}
.h2dp-lead {
  font-size:28px
}
.h2dp .h2dp-intro {
  font-size:14px
}
.h2dp-actions {
  gap:18px;
  flex-wrap:wrap;
  margin-top:25px
}
.h2dp-product {
  padding:12px 30px;
  max-width:440px;
  width:100%;
  margin-inline:auto!important
}
.h2dp-product img {
  max-height:320px;
  width:auto;
  max-width:100%
}
.h2dp-metrics {
  grid-template-columns:1fr 1fr;
  gap:24px;
  padding-block:25px
}
.h2dp-metrics>div:last-child {
  grid-column:1/-1
}
.h2dp-metrics dd {
  font-size:26px
}
.h2dp-metrics .h2dp-size {
  font-size:24px;
  padding-top:0
}
.h2dp-index {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
  font-size:13px
}
.h2dp-section {
  padding-block:55px
}
.h2dp-section-heading {
  margin-bottom:28px
}
.h2dp h2 {
  font-size:29px
}
.h2dp h3 {
  font-size:20px
}
.h2dp-material-grid,.h2dp-network,.h2dp-equipment,.h2dp-ams,.h2dp-spec-layout {
  grid-template-columns:1fr;
  gap:32px
}
.h2dp-feature:not(.h2dp-feature-large) {
  padding-top:0
}
.h2dp-precision {
  margin-top:32px;
  padding:25px
}
.h2dp-network img {
  aspect-ratio:auto
}
.h2dp-ams {
  gap:15px;
  margin-top:30px
}
.h2dp-spec-groups dl>div {
  grid-template-columns:1fr;
  gap:4px;
  padding:14px;
  font-size:14px
}
.h2dp summary {
  font-size:16px
}
.h2dp-contact {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:30px 25px;
  gap:28px
}
.h2dp-desktop {
  display:none
}

}


.h2dp ::selection {
  background:var(--hp-accent);
  color:var(--hp-bg)
}

.h2dp summary::marker {
  color:var(--hp-accent);
  font-size:.8em
}

.h2dp summary:hover {
  color:var(--hp-accent)
}

.h2dp h2,.h2dp h3 {
  text-wrap:balance
}

.h2dp p {
  max-width:70ch
}

.h2dp .h2dp-button:active {
  transform:translateY(0);
  opacity:1
}
.h2dp-index { flex-wrap:wrap; }
.h2dp-applications { border-top:1px solid var(--hp-line); }
.h2dp-use-rows article { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:30px 0; border-bottom:1px solid var(--hp-line); }
.h2dp-use-rows p,.h2dp-material-guide dd,.h2dp-setup-list dd,.h2dp-ams-products p { color:var(--hp-muted); }
.h2dp-material-guide { margin-top:48px; padding:35px; background:var(--hp-panel); }
.h2dp-material-guide dl { margin-top:22px; }
.h2dp-material-guide dl>div { display:grid; grid-template-columns:1fr 2fr; gap:30px; padding-block:15px; }
.h2dp-material-guide dt,.h2dp-setup-list dt { font-weight:700; }
.h2dp-material-guide dd,.h2dp-setup-list dd { margin:0; }
.h2dp-ams-products { display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.h2dp-ams-products img { width:100%; aspect-ratio:16/9; object-fit:contain; background:var(--hp-panel); margin-bottom:24px; }
.h2dp-ams-products p { margin-top:12px; }
.h2dp-comparison { margin-top:42px; }
.h2dp-comparison table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:15px; font-variant-numeric:tabular-nums; }
.h2dp-comparison caption { text-align:left; font-weight:700; padding-bottom:16px; }
.h2dp-comparison th,.h2dp-comparison td { text-align:left; padding:17px 20px; vertical-align:top; border:0; }
.h2dp-comparison thead { background:var(--hp-panel); }
.h2dp-comparison tbody tr { border-bottom:1px solid var(--hp-line); }
.h2dp-setup { border-top:1px solid var(--hp-line); }
.h2dp-setup-list { display:grid; grid-template-columns:1fr 1fr; gap:34px 60px; }
.h2dp-setup-list dt { font-size:20px; margin-bottom:12px; }
.h2dp-setup-list a { display:inline-flex; align-items:center; min-height:44px; color:var(--hp-accent); text-underline-offset:5px; }
@media(max-width:767px) {
  .h2dp-use-rows article,.h2dp-material-guide dl>div,.h2dp-setup-list,.h2dp-ams-products { grid-template-columns:1fr; gap:14px; }
  .h2dp-use-rows article { padding-block:24px; }
  .h2dp-material-guide { padding:24px; margin-top:32px; }
  .h2dp-ams-products,.h2dp-setup-list { gap:32px; }
  .h2dp-comparison table { font-size:13px; }
  .h2dp-comparison th,.h2dp-comparison td { padding:14px 8px; }
  .h2dp-comparison th:first-child { width:32%; }
}

/* Match the existing RIM H2D product family: light hero, black body, green headings.
   This explicit brand treatment takes priority over system color-scheme. */
.h2dp { font-size:15px; line-height:1.65; }
.h2dp-breadcrumb.h2dp-wrap { width:100%; padding:12px 5vw; background:#f1f1f1; color:#333; }
.h2dp-hero.h2dp-wrap { width:100%; grid-template-columns:1fr 1fr; padding:90px max(5vw,calc((100% - 1200px)/2)); gap:60px; background:#e4e7e5; color:#101010; border-bottom:12px solid var(--hp-accent); margin-bottom:70px; }
.h2dp-brand { width:300px; max-width:80%; height:auto; margin-bottom:28px; }
.h2dp h1 { font-size:70px; line-height:1.3; letter-spacing:0; margin:15px 0; }
.h2dp-lead { font-size:22px; line-height:1.5; }
.h2dp .h2dp-intro { color:#333; margin-top:20px; }
.h2dp-product { padding:0; }
.h2dp-product img { width:min(100%,410px); }
.h2dp .h2dp-button { border-radius:0; background:#00ae42; border:3px solid #00ae42; color:#00260e; min-width:170px; padding:10px 24px; }
.h2dp .h2dp-button:hover { color:#006f2a; background:#fff; opacity:1; transform:none; }
.h2dp a:focus-visible,.h2dp summary:focus-visible { outline-color:#00ae42; }
.h2dp-section { padding-block:70px; }
.h2dp h2 { font-size:30px; line-height:1.4; color:var(--hp-accent); text-align:center; }
.h2dp h3 { font-size:22px; color:var(--hp-accent); }
.h2dp-section-heading { max-width:100%; margin:0 auto 45px; text-align:center; }
.h2dp-section-heading p { margin-inline:auto; max-width:90ch; }
.h2dp-section-heading>p:last-child { color:var(--hp-text); }
.h2dp-metrics { text-align:center; }
.h2dp-index { justify-content:center; column-gap:32px; }
.h2dp-material-grid { grid-template-columns:1fr 1fr; gap:40px; }
.h2dp-feature:not(.h2dp-feature-large) { padding-top:0; }
.h2dp-feature,.h2dp-equipment article,.h2dp-ams-products article { text-align:center; }
.h2dp-feature img { aspect-ratio:1.5; background:#000; }
.h2dp-feature p,.h2dp-equipment p,.h2dp-ams-products p { margin-inline:auto; }
.h2dp-precision { text-align:center; padding:40px 25px; background:transparent; }
.h2dp-precision p { margin-inline:auto; }
.h2dp-tinted { background:#000; border-top:8px solid var(--hp-accent); border-bottom:1px solid var(--hp-line); }
.h2dp-network { grid-template-columns:1fr; text-align:center; }
.h2dp-network p { margin-inline:auto; max-width:90ch; }
.h2dp-network ul { display:inline-block; text-align:left; }
.h2dp-network img { width:min(100%,1100px); margin-inline:auto; }
.h2dp-spec-layout { grid-template-columns:1fr; gap:35px; }
.h2dp-spec-layout>div:first-child { text-align:center; }
.h2dp-spec-layout>div:first-child p { margin-inline:auto; }
.h2dp-spec-groups { width:100%; max-width:1000px; margin-inline:auto; }
.h2dp-spec-groups dl>div:nth-child(odd) { background:#171717; }
.h2dp-comparison th,.h2dp-comparison td { color:var(--hp-text); }
.h2dp-contact { flex-direction:column; text-align:center; background:#000; border-top:8px solid var(--hp-accent); }
.h2dp-contact p { margin-inline:auto; }
.h2dp-ams-products img { background:#000; }
.h2dp ::selection { background:#00ae42; color:#00260e; }
.h2dp-gallery { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:40px; }
.h2dp-gallery figure { margin:0; min-width:0; text-align:center; }
.h2dp-gallery img { display:block; width:100%; height:auto; }
.h2dp-gallery figcaption { padding-top:24px; }
.h2dp-gallery p { color:var(--hp-muted); margin:12px auto 0; }
.h2dp-gallery-three { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.h2dp-gallery-three h3 { font-size:19px; }
.h2dp-gallery-applications { grid-template-columns:1fr; gap:36px; }
.h2dp-gallery-applications figure { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:48px; text-align:left; }
.h2dp-gallery-applications img { max-height:300px; object-fit:contain; }
.h2dp-gallery-applications figcaption { padding:0; }
.h2dp-gallery-applications p { max-width:32em; margin:16px 0 0; }
.h2dp-cooling { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; margin-top:60px; }
.h2dp-cooling img { width:100%; height:auto; }
.h2dp-cooling p { color:var(--hp-muted); margin-top:16px; }
@media(max-width:767px) {
  .h2dp-gallery,.h2dp-gallery-three,.h2dp-cooling { grid-template-columns:1fr; gap:32px; }
  .h2dp-gallery figcaption { padding-top:18px; }
  .h2dp-gallery-three img { max-width:480px; margin-inline:auto; }
  .h2dp-gallery-applications figure { grid-template-columns:1fr; gap:20px; }
  .h2dp-gallery-applications figcaption { padding:0; }
  .h2dp-gallery-applications img { max-height:280px; }
  .h2dp-gallery-applications p { margin-top:12px; }
  .h2dp-cooling { text-align:center; margin-top:40px; }
  .h2dp { font-size:14px; }
  .h2dp-hero.h2dp-wrap { grid-template-columns:1fr; text-align:center; padding:45px 20px 40px; gap:30px; margin-bottom:40px; border-bottom-width:8px; }
  .h2dp-brand { width:220px; margin:0 auto 22px; }
  .h2dp h1 { font-size:60px; }
  .h2dp-lead { font-size:20px; }
  .h2dp-actions { justify-content:center; }
  .h2dp-product img { max-height:390px; width:auto; }
  .h2dp h2 { font-size:24px; }
  .h2dp h3 { font-size:20px; }
  .h2dp-section { padding-block:50px; }
  .h2dp-material-grid { grid-template-columns:1fr; }
  .h2dp-feature img { aspect-ratio:auto; }
  .h2dp-index { gap:10px 20px; }
  .h2dp-contact { padding:35px 20px; }
}

/* Official product hero; retain the existing RIM copy. */
.h2dp-hero.h2dp-wrap { position:relative; isolation:isolate; min-height:680px; background:#10141f; color:#fff; overflow:hidden; }
.h2dp-hero-copy { position:relative; z-index:1; }
.h2dp-hero .h2dp-intro { color:#eee; }
.h2dp-hero .h2dp-brand { filter:brightness(0) invert(1); }
.h2dp-hero .h2dp-product { position:absolute; inset:0; z-index:-1; margin:0; }
.h2dp-hero .h2dp-product img { width:100%; height:100%; max-height:none; object-fit:cover; object-position:70% center; }
@media(max-width:767px) {
 .h2dp-hero.h2dp-wrap { display:flex; flex-direction:column; min-height:0; padding:40px 0 0; gap:20px; }
 .h2dp-hero-copy { padding:0 20px; }
 .h2dp-hero .h2dp-product { position:relative; inset:auto; z-index:0; width:100%; }
 .h2dp-hero .h2dp-product img { display:block; width:100%; height:auto; }
}
