

:root {
  --r29-ink: #0F1B2D;        
  --r29-plate: #EEF1F4;      
  --r29-rule: #D5DAE1;
  --r29-wrap: 1280px;
  --r29-pad: clamp(20px, 4vw, 56px);
  --r29-sec: clamp(88px, 10vw, 148px);
  --r29-on-ink: #C9D3E0;     
  --r29-on-ink-sub: #8E9AAB; 
  --r29-on-ink-acc: #8FB4DC; 
  --surface-tint: var(--r29-plate);
}

.kd-header { background: var(--r29-ink); border-bottom: 1px solid rgba(255,255,255,.08); }
.kd-brand__mark { color: #fff; }
.kd-brand__sub { color: var(--r29-on-ink-sub); }
.kd-nav > .kd-nav__item > a, .kd-nav > a { color: var(--r29-on-ink); }
.kd-nav > .kd-nav__item > a:hover, .kd-nav > .kd-nav__item > a[aria-current="page"] { color: #fff; }
.kd-nav__item > a::after { background: var(--r29-on-ink-acc); }
.kd-dropdown { border-top-color: var(--r29-ink); }
@media (max-width: 768px) {
  .kd-menubtn span { background: #fff; }
  
  .kd-menu-open .kd-nav > .kd-nav__item > a { color: var(--kd-navy); }
}

.kd-pagehead { background: var(--r29-ink); color: #fff; border-bottom: 0; }
.kd-pagehead__inner { max-width: var(--r29-wrap); padding: clamp(56px, 6vw, 96px) var(--r29-pad) clamp(44px, 5vw, 72px); }
.kd-pagehead h1 {
  color: #fff; font-size: clamp(2.4rem, 4.6vw, 4rem); font-weight: 800; line-height: 1.12; letter-spacing: -.035em;
}
.kd-pagehead p { color: var(--r29-on-ink); font-size: var(--fs-lead); line-height: 1.7; max-width: 760px; }
.kd-pagehead .kd-crumb, .kd-pagehead .kd-crumb a { color: var(--r29-on-ink-sub); }
.kd-pagehead .kd-crumb a:hover, .kd-pagehead .kd-crumb [aria-current] { color: #fff; }

.kd-section { padding-top: clamp(72px, 8vw, 120px); padding-bottom: clamp(72px, 8vw, 120px); }
.kd-sectiontitle { margin-bottom: 48px; }
.kd-sectiontitle h2 { font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.18; letter-spacing: -.03em; color: var(--text-title); }
.kd-sectiontitle p { font-size: var(--fs-lead); }
.kd-subhead { font-size: clamp(1.375rem, 2vw, 1.75rem); letter-spacing: -.02em; color: var(--text-title); border-top-color: var(--text-title); }

.kd-photo, .kd-card__thumb, .kd-figure { background: var(--r29-plate); }

.kd-cta { background: var(--r29-ink); border-top: 0; }
.kd-cta .kd-eyebrow--on-navy { color: var(--r29-on-ink-acc); }
.kd-cta h2 { color: #fff; font-size: clamp(2rem, 3.4vw, 3rem); }
.kd-cta p { color: var(--r29-on-ink); }
.kd-cta__tel { color: var(--r29-on-ink); }
.kd-cta__tel svg { stroke: var(--r29-on-ink-acc); }

.kd-footer { background: var(--r29-ink); border-top: 1px solid rgba(255,255,255,.1); }

.r29-wrap { max-width: var(--r29-wrap); margin: 0 auto; padding: 0 var(--r29-pad); }
.r29-eyebrow {
  font-size: var(--fs-micro); font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--kd-blue); margin: 0 0 18px;
}
.r29-sec { padding: var(--r29-sec) 0; }
.r29-sec--plate { background: var(--r29-plate); }
.r29-head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; margin-bottom: 56px; }
.r29-head h2 {
  font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; line-height: 1.18; letter-spacing: -.025em;
  color: var(--text-title); margin: 0;
}
.r29-head p { margin: 14px 0 0; color: var(--text-sub); font-size: var(--fs-lead); }
.r29-more {
  font-size: var(--fs-cell); font-weight: 600; color: var(--text-title); text-decoration: none;
  border-bottom: 1px solid currentColor; padding-bottom: 3px; white-space: nowrap;
}
.r29-more::after { content: " →"; }
.r29-more:hover { color: var(--kd-blue); }

.r29-hero { background: var(--r29-ink); color: #fff; }
.r29-hero__top {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: end;
  padding-top: clamp(72px, 9vw, 128px); padding-bottom: clamp(48px, 5vw, 72px);
}
.r29-hero .r29-eyebrow { color: #8FB4DC; }
.r29-hero h1 {
  font-size: clamp(2.6rem, 6vw, 5.25rem); font-weight: 800; line-height: 1.08; letter-spacing: -.035em;
  margin: 0; color: #fff;
}
.r29-hero h1 em { font-style: normal; color: #8FB4DC; }
.r29-hero__lead { font-size: var(--fs-lead); line-height: 1.7; color: #C9D3E0; margin: 0 0 28px; }
.r29-hero__acts { display: flex; gap: 12px; flex-wrap: wrap; }
.r29-btn {
  display: inline-flex; align-items: center; gap: 8px; height: 52px; padding: 0 26px;
  font-weight: 700; font-size: var(--fs-body); text-decoration: none; border: 1px solid transparent;
}
.r29-btn--solid { background: var(--kd-blue); color: #fff; }
.r29-btn--solid:hover { background: var(--kd-blue-dk); }
.r29-btn--line { border-color: rgba(255,255,255,.35); color: #fff; }
.r29-btn--line:hover { border-color: #fff; }
.r29-hero__media { margin: 0; }
.r29-hero__media img {
  display: block; width: 100%; height: clamp(360px, 46vw, 720px); object-fit: cover; object-position: 50% 60%;
}
.r29-facts {
  display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 40px 0 72px;
}
.r29-facts > div { border-left: 1px solid rgba(255,255,255,.14); padding: 4px 24px 0; }
.r29-facts > div:first-child { border-left: 0; padding-left: 0; }
.r29-facts dt { font-size: var(--fs-caption); color: #8E9AAB; margin-bottom: 10px; }
.r29-facts dd { margin: 0; font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; }
.r29-facts small { font-size: .42em; font-weight: 600; margin-left: 4px; color: #C9D3E0; letter-spacing: 0; }

.r29 .kd-pindex { max-width: var(--r29-wrap); padding: var(--r29-sec) var(--r29-pad); }
.r29 .kd-pindex .kd-sectiontitle { margin-bottom: 56px; text-align: left; }
.r29 .kd-pindex .kd-sectiontitle h2 {
  font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.18;
}
.r29 .kd-pindex .kd-sectiontitle h2::before {
  content: "Products"; display: block; font-size: var(--fs-micro); font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: var(--kd-blue); margin-bottom: 18px;
}
.r29 .kd-pindex .kd-sectiontitle p { font-size: var(--fs-lead); }
.r29 .kd-pindex__row { grid-template-columns: 1fr; gap: 20px; border-top: 1px solid var(--r29-rule); padding: 28px 0 44px; }  
.r29 .kd-pindex__label a { font-size: var(--fs-h4); font-weight: 800; color: var(--text-title); letter-spacing: -.01em; }
.r29 .kd-pindex__items { gap: 16px; }
.r29 .kd-pindex__plate {
  background: var(--r29-plate); aspect-ratio: 4 / 3; overflow: hidden; border: 0; border-radius: 0;
}
.r29 .kd-pindex__plate img {
  width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1);
  filter: saturate(.78) contrast(1.04);
}

.r29 .kd-pindex__item--cut .kd-pindex__plate img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; filter: none; }
.r29 .kd-pindex__item:hover .kd-pindex__plate img { transform: scale(1.04); }
.r29 .kd-pindex__item span { font-size: var(--fs-body); font-weight: 600; color: var(--text-title); margin-top: 12px; display: block; }

.r29-glance { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 64px; align-items: center; }
.r29-glance__fig { margin: 0; display: grid; grid-template-columns: 3fr 1fr; gap: 16px; align-items: end; }
.r29-glance__fig img { display: block; width: 100%; mix-blend-mode: multiply; }
.r29-glance__fig figcaption { grid-column: 1 / -1; font-size: var(--fs-caption); color: var(--text-sub); margin-top: 4px; }
.r29-nums { display: grid; grid-template-columns: 1fr 1fr; margin: 0; }
.r29-nums > div { border-top: 1px solid var(--text-title); padding: 22px 24px 36px 0; }
.r29-nums dt { font-size: var(--fs-caption); font-weight: 600; color: var(--text-sub); }
.r29-nums dd { margin: 0; }
.r29-nums .r29-nums__v {
  font-size: clamp(2.75rem, 5vw, 4.25rem); font-weight: 800; letter-spacing: -.04em; line-height: 1.05;
  color: var(--text-title); margin: 10px 0 12px;
}
.r29-nums .r29-nums__v small { font-size: .36em; font-weight: 700; margin-left: 4px; letter-spacing: 0; }
.r29-nums .r29-nums__why { font-size: var(--fs-caption); color: var(--text-sub); line-height: 1.6; }
.r29-nums .r29-nums__why a { display: block; margin-top: 6px; font-weight: 600; color: var(--kd-blue); text-decoration: none; }

.r29-ind { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.r29-ind article { margin: 0; }
.r29-ind figure { margin: 0 0 22px; aspect-ratio: 4 / 5; overflow: hidden; background: var(--r29-plate); }
.r29-ind figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.r29-ind article:hover figure img { transform: scale(1.04); }
.r29-ind .r29-no { font-size: var(--fs-micro); font-weight: 700; letter-spacing: .12em; color: var(--kd-blue); margin: 0 0 8px; }
.r29-ind h3 { font-size: var(--fs-h3); font-weight: 800; color: var(--text-title); margin: 0 0 10px; letter-spacing: -.02em; }
.r29-ind p { margin: 0; color: var(--text-body); line-height: 1.7; }
.r29-ind p a { font-weight: 600; color: var(--kd-blue); }

.r29-make { background: var(--r29-ink); color: #fff; padding-top: var(--r29-sec); }
.r29-make .r29-eyebrow { color: #8FB4DC; }
.r29-make__top { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 48px; align-items: end; padding-bottom: 56px; }
.r29-make h2 { font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 800; line-height: 1.18; letter-spacing: -.025em; margin: 0 0 16px; color: #fff; }
.r29-make__copy p { color: #C9D3E0; font-size: var(--fs-lead); line-height: 1.7; margin: 0 0 22px; }
.r29-make .r29-more { color: #fff; }
.r29-make__nums { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; }
.r29-make__nums > div { border-top: 1px solid rgba(255,255,255,.22); padding-top: 18px; }
.r29-make__nums dt { font-size: var(--fs-caption); color: #8E9AAB; }
.r29-make__nums dd { margin: 8px 0 0; font-size: clamp(1.75rem, 2.8vw, 2.5rem); font-weight: 800; letter-spacing: -.03em; }
.r29-make__nums small { font-size: .45em; font-weight: 600; color: #C9D3E0; margin: 0 2px; letter-spacing: 0; }
.r29-make__wide { margin: 0; }
.r29-make__wide img { display: block; width: 100%; height: clamp(320px, 40vw, 640px); object-fit: cover; object-position: 50% 55%; }
.r29-steps { list-style: none; margin: 0; padding: 24px 0 var(--r29-sec); display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.r29-steps figure { margin: 0 0 14px; aspect-ratio: 5 / 4; overflow: hidden; }
.r29-steps img { width: 100%; height: 100%; object-fit: cover; }
.r29-steps li { font-size: var(--fs-lead); font-weight: 700; }
.r29-steps li span { display: inline-block; width: 36px; font-size: var(--fs-caption); font-weight: 600; color: #8FB4DC; }

.r29-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid var(--r29-rule); border-left: 1px solid var(--r29-rule); }
.r29-logos li { display: flex; align-items: center; justify-content: center; height: 120px; border-right: 1px solid var(--r29-rule); border-bottom: 1px solid var(--r29-rule); }
.r29-logos img { max-width: 62%; max-height: 44px; filter: grayscale(1) contrast(.9); opacity: .72; transition: filter .3s, opacity .3s; }
.r29-logos li:hover img { filter: none; opacity: 1; }

.r29-guides { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.r29-guides a { text-decoration: none; color: inherit; }
.r29-guides figure { margin: 0 0 18px; aspect-ratio: 3 / 2; overflow: hidden; background: #fff; }
.r29-guides img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: transform .6s; }
.r29-guides a:hover img { transform: scale(1.04); }
.r29-guides strong { display: block; font-size: var(--fs-h4); font-weight: 800; color: var(--text-title); margin-bottom: 6px; }
.r29-guides span { color: var(--text-sub); font-size: var(--fs-cell); }

@media (max-width: 900px) {
  .r29-hero__top, .r29-glance, .r29-make__top { grid-template-columns: 1fr; gap: 28px; }
  .r29-facts { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .r29-facts > div { border-left: 0; padding-left: 0; }
  .r29-ind, .r29-guides { grid-template-columns: 1fr; gap: 40px; }
  .r29-ind figure { aspect-ratio: 4 / 3; }
  .r29-steps { grid-template-columns: repeat(2, 1fr); }
  .r29-logos { grid-template-columns: repeat(3, 1fr); }
  .r29-head { grid-template-columns: 1fr; }
  .r29-make__nums { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
}
