.kawin-mfg {
  --km-navy: #0b2347;
  --km-deep: #071a32;
  --km-blue: #124f91;
  --km-green: #2b8a57;
  --km-ink: #172033;
  --km-muted: #5c687a;
  --km-line: #dce3ea;
  --km-soft: #f3f6f9;
  background: #fff;
  color: var(--km-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 17px;
  line-height: 1.68;
  overflow-x: clip;
}

.kawin-mfg--full {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: none;
}

.kawin-mfg,
.kawin-mfg * { box-sizing: border-box; }
.kawin-mfg a { color: inherit; text-decoration: none; }
.kawin-mfg img { display: block; height: auto; max-width: 100%; }
.kawin-mfg h1,
.kawin-mfg h2,
.kawin-mfg h3 { color: inherit; font-family: inherit; font-weight: 750; letter-spacing: -.027em; margin: 0; text-transform: none; }
.kawin-mfg h1 { font-size: clamp(2.5rem, 5.2vw, 4.85rem); line-height: 1.03; max-width: 1020px; }
.kawin-mfg h1 > span { display: block; }
.kawin-mfg h2 { font-size: clamp(2rem, 3.4vw, 3.15rem); line-height: 1.14; }
.kawin-mfg h3 { font-size: 1.2rem; line-height: 1.3; }
.kawin-mfg p { margin: 0 0 1.1em; }
.kawin-mfg ul { margin: 0; }
.kawin-mfg [id] { scroll-margin-top: 96px; }

.km-shell { margin-inline: auto; max-width: 1240px; padding-inline: 28px; width: 100%; }
.km-section { padding-block: clamp(72px, 8vw, 116px); }
.km-section--soft { background: var(--km-soft); }
.km-section--dark { background: var(--km-deep); color: #fff; }
.km-section--compact { padding-block: 78px; }
.km-split { align-items: start; display: grid; gap: clamp(42px, 7vw, 92px); grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.km-split h2 { max-width: 530px; }

.km-hero { align-items: center; background: var(--km-deep); color: #fff; display: flex; min-height: 720px; position: relative; }
.km-hero__image { height: 100% !important; inset: 0; object-fit: cover; object-position: center; position: absolute; width: 100%; }
.km-hero__overlay { background: linear-gradient(90deg, rgba(5,17,36,.98) 0%, rgba(5,17,36,.92) 44%, rgba(5,17,36,.46) 73%, rgba(5,17,36,.18) 100%); inset: 0; position: absolute; }
.km-hero__content { padding-block: 92px; position: relative; z-index: 1; }
.km-hero__lead { color: #dae4ef; font-size: 1.13rem; margin: 26px 0 34px !important; max-width: 820px; }
.km-entity-location { align-items: center; color: #c4d0dd; display: flex; flex-wrap: wrap; font-size: .82rem; gap: 10px; margin: -12px 0 30px !important; }
.km-entity-location span { border: 1px solid rgba(143,208,170,.7); border-radius: 30px; color: #9ed9b6; font-size: .67rem; font-weight: 780; letter-spacing: .09em; padding: 5px 10px; text-transform: uppercase; }

.km-eyebrow { color: var(--km-blue); font-size: .75rem; font-weight: 820; letter-spacing: .15em; margin-bottom: 16px !important; text-transform: uppercase; }
.km-eyebrow--light { color: #8fd0aa; }
.km-button-row { display: flex; flex-wrap: wrap; gap: 14px; }
.km-button { align-items: center; border: 1px solid transparent; border-radius: 3px; display: inline-flex; font-size: .89rem; font-weight: 760; justify-content: center; line-height: 1.25; min-height: 52px; padding: 14px 22px; transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.km-button:hover { transform: translateY(-2px); }
.km-button--primary { background: var(--km-green); color: #fff !important; }
.km-button--primary:hover { background: #247449; }
.km-button--ghost { border-color: rgba(255,255,255,.55); color: #fff !important; }
.km-button--ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.km-button--outline { border-color: var(--km-blue); color: var(--km-blue) !important; flex: 0 0 auto; }
.km-button--outline:hover { background: var(--km-blue); color: #fff !important; }
.km-button--white { background: #fff; color: var(--km-navy) !important; flex: 0 0 auto; }
.km-button--white:hover { background: #dce8f4; }

.km-overview__copy { margin-bottom: 50px; }
.km-prose p { color: var(--km-muted); }
.km-prose .km-answer { color: var(--km-ink); font-size: 1.14rem; font-weight: 620; }
.km-facts { background: var(--km-navy); color: #fff; display: grid; grid-template-columns: repeat(4, 1fr); }
.km-facts > div { border-bottom: 1px solid rgba(255,255,255,.13); border-right: 1px solid rgba(255,255,255,.13); min-height: 146px; padding: 27px; }
.km-facts > div:nth-child(4n) { border-right: 0; }
.km-facts > div:nth-child(n+5) { border-bottom: 0; }
.km-facts span { color: #aebccd; display: block; font-size: .72rem; font-weight: 680; letter-spacing: .06em; margin-bottom: 13px; text-transform: uppercase; }
.km-facts strong { color: #fff; display: block; font-size: clamp(1.5rem, 2.5vw, 2.25rem); line-height: 1.1; }

.km-heading { margin: 0 auto 48px; max-width: 840px; text-align: center; }
.km-heading h2 { margin-bottom: 18px; }
.km-heading > p:last-child { color: var(--km-muted); margin: 0; }
.km-heading--wide { max-width: 960px; }
.km-heading--light > p:last-child { color: #bdcad8; }

.km-process { background: #fff; }
.km-process-grid { display: grid; gap: 18px; grid-template-columns: repeat(2, 1fr); margin-bottom: 42px; }
.km-process-card { background: var(--km-soft); border-top: 3px solid var(--km-blue); display: grid; gap: 18px; grid-template-columns: 48px 1fr; margin: 0; padding: 25px; }
.km-process-card > span { color: var(--km-blue); font-size: .78rem; font-weight: 820; letter-spacing: .1em; padding-top: 3px; }
.km-process-card h3 { color: var(--km-navy); margin-bottom: 8px; }
.km-process-card p { color: var(--km-muted); font-size: .88rem; margin: 0; }
.km-process-route { background: var(--km-navy); color: #fff; margin-top: 12px; padding: 28px; }
.km-process-route > p { color: #8fd0aa; font-size: .7rem; font-weight: 820; letter-spacing: .12em; margin: 0 0 22px; text-transform: uppercase; }
.km-process-route > div { display: grid; grid-template-columns: repeat(6, 1fr); }
.km-process-route > div span { align-items: center; border: 1px solid rgba(255,255,255,.18); display: flex; font-size: .78rem; font-weight: 690; justify-content: center; min-height: 76px; padding: 12px; position: relative; text-align: center; }
.km-process-route > div span:not(:last-child)::after { align-items: center; background: var(--km-navy); border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #8fd0aa; content: "→"; display: flex; font-size: .72rem; height: 25px; justify-content: center; position: absolute; right: -13px; top: calc(50% - 13px); width: 25px; z-index: 2; }
.km-process-route small { color: #aebdcd; display: block; font-size: .7rem; line-height: 1.55; margin-top: 18px; }

.km-capability-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); }
.km-capability-card { background: #fff; border: 1px solid #e2e8ee; box-shadow: 0 10px 30px rgba(12,34,65,.05); margin: 0; overflow: hidden; }
.km-capability-card > img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.km-capability-card > div { padding: 26px; }
.km-capability-card h3 { color: var(--km-navy); margin: 5px 0 10px; }
.km-capability-card p { color: var(--km-muted); font-size: .9rem; margin: 0; }

.km-engineering { background: #fff; }
.km-engineering__split { grid-template-columns: minmax(0, .76fr) minmax(0, 1.24fr); }
.km-engineering__split h2 { margin-bottom: 24px; }
.km-engineering__lead { color: var(--km-ink); font-size: 1.12rem; font-weight: 620; }
.km-engineering__split > div:first-child > p:last-child { color: var(--km-muted); }
.km-engineering-list { border-top: 1px solid var(--km-line); display: grid; grid-template-columns: repeat(2, 1fr); }
.km-engineering-list > div { border-bottom: 1px solid var(--km-line); min-height: 178px; padding: 24px 22px 24px 0; }
.km-engineering-list > div:nth-child(odd) { border-right: 1px solid var(--km-line); padding-right: 28px; }
.km-engineering-list > div:nth-child(even) { padding-left: 28px; }
.km-engineering-list span { color: var(--km-green); display: block; font-size: .7rem; font-weight: 820; letter-spacing: .1em; margin-bottom: 6px; }
.km-engineering-list strong { color: var(--km-navy); display: block; font-size: 1rem; }
.km-engineering-list p { color: var(--km-muted); font-size: .81rem; line-height: 1.55; margin: 7px 0 0; }

.km-quality-gates { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); margin-bottom: 34px; }
.km-quality-gates article { border: 1px solid rgba(255,255,255,.17); margin: 0; padding: 25px; }
.km-quality-gates span { color: #86cfa5; display: block; font-size: .69rem; font-weight: 800; letter-spacing: .1em; margin-bottom: 7px; text-transform: uppercase; }
.km-quality-gates h3 { color: #fff; margin-bottom: 8px; }
.km-quality-gates p { color: #b9c6d5; font-size: .84rem; margin: 0; }
.km-lab-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.km-lab-card { align-items: center; background: #fff; color: var(--km-ink); display: grid; gap: 18px; grid-template-columns: 112px 1fr; margin: 0; min-height: 160px; padding: 18px; }
.km-lab-card img { background: #f5f7f9; height: 124px; object-fit: contain; padding: 5px; width: 112px; }
.km-lab-card h3 { color: var(--km-navy); font-size: 1rem; margin-bottom: 6px; }
.km-lab-card p { color: var(--km-muted); font-size: .81rem; line-height: 1.55; margin: 0; }
.km-standards-note { align-items: flex-start; background: rgba(255,255,255,.08); border-left: 3px solid #86cfa5; display: grid; gap: 22px; grid-template-columns: 150px 1fr; margin-top: 28px; padding: 23px 25px; }
.km-standards-note span { color: #9ad6b3; font-size: .7rem; font-weight: 820; letter-spacing: .09em; padding-top: 2px; text-transform: uppercase; }
.km-standards-note p { color: #c7d2df; font-size: .82rem; margin: 0; }

.km-application-grid { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); }
.km-application-card { background: #fff; border: 1px solid var(--km-line); color: var(--km-ink); margin: 0; min-height: 330px; padding: 30px; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a.km-application-card:hover { border-color: var(--km-blue); box-shadow: 0 14px 35px rgba(12,34,65,.09); transform: translateY(-3px); }
.km-application-code { color: var(--km-green); display: block; font-size: .7rem; font-weight: 840; letter-spacing: .14em; margin-bottom: 26px; }
.km-application-card h3 { color: var(--km-navy); font-size: 1.35rem; margin-bottom: 18px; }
.km-application-card ul { list-style: none; padding: 0; }
.km-application-card li { border-top: 1px solid var(--km-line); color: var(--km-muted); font-size: .82rem; padding: 9px 0; }
.km-text-link { color: var(--km-blue); display: block; font-size: .76rem; font-weight: 740; margin-top: 20px; }
.km-text-link b { margin-left: 5px; }

.km-callout { align-items: center; background: #fff; border-left: 5px solid var(--km-green); box-shadow: 0 14px 38px rgba(12,34,65,.07); display: flex; gap: 50px; justify-content: space-between; padding-block: 44px; }
.km-callout > div { max-width: 800px; }
.km-callout h2 { margin-bottom: 16px; }
.km-callout p:last-child { color: var(--km-muted); margin: 0; }

.km-categories { background: #fff; }
.km-category-grid { border-left: 1px solid var(--km-line); border-top: 1px solid var(--km-line); display: grid; grid-template-columns: repeat(3, 1fr); }
.km-category-grid a { border-bottom: 1px solid var(--km-line); border-right: 1px solid var(--km-line); min-height: 145px; padding: 26px; position: relative; transition: background-color .2s ease, color .2s ease; }
.km-category-grid a:hover { background: var(--km-navy); color: #fff; }
.km-category-grid span { color: var(--km-muted); display: block; font-size: .68rem; letter-spacing: .05em; margin-bottom: 13px; text-transform: uppercase; }
.km-category-grid a:hover span { color: #a9bbce; }
.km-category-grid strong { color: var(--km-navy); display: block; font-size: 1.05rem; }
.km-category-grid a:hover strong { color: #fff; }
.km-category-grid b { color: var(--km-blue); font-size: 1.15rem; font-weight: 500; position: absolute; right: 22px; top: 22px; }
.km-category-grid a:hover b { color: #8fd0aa; }

.km-faq__split { grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); }
.km-faq-list { border-top: 1px solid var(--km-line); }
.km-faq-list details { border-bottom: 1px solid var(--km-line); }
.km-faq-list summary { color: var(--km-navy); cursor: pointer; font-weight: 740; list-style: none; padding: 22px 46px 22px 0; position: relative; }
.km-faq-list summary::-webkit-details-marker { display: none; }
.km-faq-list summary::after { content: "+"; font-size: 1.5rem; font-weight: 400; position: absolute; right: 6px; top: 15px; }
.km-faq-list details[open] summary::after { content: "−"; }
.km-faq-list p { color: var(--km-muted); font-size: .92rem; padding: 0 46px 20px 0; }

.km-cta { background: linear-gradient(120deg, #0a2348, #124f91); color: #fff; padding-block: 76px; }
.km-cta__inner { align-items: center; display: flex; gap: 60px; justify-content: space-between; }
.km-cta__inner > div { max-width: 790px; }
.km-cta h2 { color: #fff; margin-bottom: 15px; }
.km-cta p:last-child { color: #d4e0ed; margin: 0; }

@media (max-width: 1024px) {
  .km-hero { min-height: 650px; }
  .km-capability-grid,
  .km-lab-grid { grid-template-columns: repeat(2, 1fr); }
  .km-facts { grid-template-columns: repeat(3, 1fr); }
  .km-facts > div:nth-child(4n) { border-right: 1px solid rgba(255,255,255,.13); }
  .km-facts > div:nth-child(3n) { border-right: 0; }
  .km-facts > div:nth-child(n+5) { border-bottom: 1px solid rgba(255,255,255,.13); }
  .km-facts > div:nth-child(n+7) { border-bottom: 0; }
  .km-application-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .kawin-mfg { font-size: 16px; }
  .kawin-mfg h1 { font-size: clamp(2.15rem, 10vw, 2.7rem); line-height: 1.06; }
  .km-shell { padding-inline: 20px; }
  .km-hero { min-height: 680px; }
  .km-hero__overlay { background: linear-gradient(180deg, rgba(5,17,36,.65), rgba(5,17,36,.96) 62%, rgba(5,17,36,.99)); }
  .km-hero__image { object-position: 58% center; }
  .km-hero__content { align-self: end; padding-bottom: 62px; padding-top: 110px; }
  .km-hero__lead { font-size: 1rem; }
  .km-entity-location { align-items: flex-start; flex-direction: column; }
  .km-button-row { align-items: stretch; flex-direction: column; }
  .km-button { width: 100%; }
  .km-section { padding-block: 68px; }
  .km-section--compact { padding-block: 56px; }
  .km-split,
  .km-faq__split { gap: 28px; grid-template-columns: 1fr; }
  .km-heading { margin-bottom: 34px; text-align: left; }
  .km-capability-grid,
  .km-lab-grid { grid-template-columns: 1fr; }
  .km-facts { grid-template-columns: repeat(2, 1fr); }
  .km-facts > div,
  .km-facts > div:nth-child(3n),
  .km-facts > div:nth-child(4n) { border-bottom: 1px solid rgba(255,255,255,.13); border-right: 1px solid rgba(255,255,255,.13); min-height: 128px; padding: 22px; }
  .km-facts > div:nth-child(even) { border-right: 0; }
  .km-facts > div:last-child { border-bottom: 0; }
  .km-process-grid { grid-template-columns: 1fr; }
  .km-process-card { grid-template-columns: 38px 1fr; padding: 22px 19px; }
  .km-process-route { padding: 22px 19px; }
  .km-process-route > div { gap: 18px; grid-template-columns: 1fr; }
  .km-process-route > div span { min-height: 52px; }
  .km-process-route > div span:not(:last-child)::after { bottom: -17px; content: "↓"; left: calc(50% - 13px); right: auto; top: auto; }
  .km-lab-card { grid-template-columns: 96px 1fr; min-height: 140px; }
  .km-lab-card img { height: 108px; width: 96px; }
  .km-engineering-list { grid-template-columns: 1fr; }
  .km-engineering-list > div,
  .km-engineering-list > div:nth-child(odd),
  .km-engineering-list > div:nth-child(even) { border-right: 0; min-height: auto; padding: 22px 0; }
  .km-quality-gates { grid-template-columns: 1fr; }
  .km-standards-note { gap: 8px; grid-template-columns: 1fr; }
  .km-application-grid { grid-template-columns: 1fr; }
  .km-application-card { min-height: auto; }
  .km-callout { align-items: stretch; flex-direction: column; gap: 28px; margin-inline: 20px; padding: 32px 26px; width: auto; }
  .km-category-grid { grid-template-columns: 1fr; }
  .km-category-grid a { min-height: 125px; }
  .km-cta__inner { align-items: stretch; flex-direction: column; gap: 30px; }
}

@media (max-width: 420px) {
  .km-facts { grid-template-columns: 1fr; }
  .km-facts > div,
  .km-facts > div:nth-child(even) { border-bottom: 1px solid rgba(255,255,255,.13); border-right: 0; }
  .km-facts > div:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .km-button,
  .km-application-card,
  .km-category-grid a { transition: none; }
}

