
.hanx-oem{
--oem-black:#171717;--oem-dark:#222;--oem-text:#333;--oem-muted:#767676;--oem-line:#e5e5e5;--oem-soft:#f6f6f3;--oem-white:#fff;
color:var(--oem-text);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,sans-serif;font-size:16px;line-height:1.9;letter-spacing:.02em}
.hanx-oem *,.hanx-oem *:before,.hanx-oem *:after{box-sizing:border-box}
.hanx-oem img{display:block;width:100%;height:auto}.hanx-oem a{text-decoration:none}
.hanx-oem__container{width:min(1180px,calc(100% - 48px));margin-inline:auto}.hanx-oem__container--narrow{width:min(900px,calc(100% - 48px));margin-inline:auto}
.hanx-oem h1,.hanx-oem h2,.hanx-oem h3,.hanx-oem p{margin-top:0}
.hanx-oem h1{margin-bottom:28px;color:var(--oem-black);font-size:clamp(39px,5vw,68px);line-height:1.24;letter-spacing:-.04em;font-weight:700}
.hanx-oem h1 span{font-weight:500}.hanx-oem h2{margin-bottom:22px;color:var(--oem-black);font-size:clamp(30px,3.7vw,48px);line-height:1.35;letter-spacing:-.025em;font-weight:650}
.hanx-oem h3{margin-bottom:14px;color:var(--oem-black);font-size:clamp(19px,2vw,24px);line-height:1.5;font-weight:650}
.hanx-oem__eyebrow{margin-bottom:20px;color:var(--oem-muted);font-size:12px;line-height:1.5;letter-spacing:.2em;font-weight:700}
.hanx-oem__lead{max-width:720px;margin-bottom:12px;color:#555;font-size:18px;line-height:2}.hanx-oem__sublead{margin-bottom:36px;color:#666;font-size:15px}
.hanx-oem__section{padding:120px 0}.hanx-oem__section--soft{background:var(--oem-soft)}.hanx-oem__section--dark{color:rgba(255,255,255,.76);background:var(--oem-dark)}
.hanx-oem__heading{max-width:820px;margin-bottom:62px}.hanx-oem__heading>p:last-child{margin-bottom:0;color:#666;font-size:17px}
.hanx-oem__heading--light h2{color:#fff}.hanx-oem__heading--light .hanx-oem__eyebrow{color:rgba(255,255,255,.47)}.hanx-oem__heading--light>p:last-child{color:rgba(255,255,255,.72)}
.hanx-oem__center{margin-top:54px;text-align:center}
.hanx-oem__button{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:16px 30px;border:1px solid var(--oem-black);font-size:15px;line-height:1.4;font-weight:600;transition:.2s ease}
.hanx-oem__button--primary{color:#fff;background:var(--oem-black)}.hanx-oem__button--primary:hover{color:#fff;background:#363636;border-color:#363636}
.hanx-oem__button--outline{color:var(--oem-black);background:transparent}.hanx-oem__button--outline:hover{color:#fff;background:var(--oem-black)}
.hanx-oem__text-link,.hanx-oem__category-link{display:inline-block;color:var(--oem-text);border-bottom:1px solid #999;font-size:14px;line-height:2}
.hanx-oem__category-link{margin-top:28px;font-size:13px;font-weight:600}
.hanx-oem__hero{padding:100px 0 0;background:#fff}.hanx-oem__hero-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(520px,1.18fr);align-items:center;gap:56px;min-height:590px}
.hanx-oem__hero-image{width:100%;border-radius:0}.hanx-oem__hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:26px}.hanx-oem__microcopy{margin:17px 0 0;color:#8b8b8b;font-size:12px}
.hanx-oem__numbers{display:grid;grid-template-columns:repeat(3,1fr);margin-top:78px;border-top:1px solid var(--oem-line);border-bottom:1px solid var(--oem-line)}
.hanx-oem__number{padding:32px 36px}.hanx-oem__number+.hanx-oem__number{border-left:1px solid var(--oem-line)}.hanx-oem__number strong{display:block;margin-bottom:5px;color:var(--oem-black);font-size:34px;line-height:1.2;letter-spacing:-.04em}.hanx-oem__number strong span{margin-left:4px;font-size:13px;letter-spacing:0}.hanx-oem__number p{margin:0;color:#777;font-size:13px}
.hanx-oem__consult-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.hanx-oem__consult-card{min-height:265px;padding:34px;background:#fff;border:1px solid #eaeae7}.hanx-oem__consult-card>span{display:block;margin-bottom:30px;color:#aaa;font-size:12px}.hanx-oem__consult-card p{margin:0;color:#6c6c6c;font-size:14px}
.hanx-oem__type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.hanx-oem__type-card{padding:42px 36px;border:1px solid var(--oem-line)}.hanx-oem__type-no{color:#999;font-size:11px;letter-spacing:.16em}.hanx-oem__type-card>p:not(.hanx-oem__type-no){color:#666}.hanx-oem__type-card ul{margin:28px 0 0;padding:24px 0 0;list-style:none;border-top:1px solid var(--oem-line)}.hanx-oem__type-card li{padding:7px 0;color:#555;font-size:14px}
.hanx-oem__visual-break{padding:0 0 110px;background:#fff}.hanx-oem__visual-break--dark{padding:0 0 110px;background:var(--oem-dark)}.hanx-oem__wide-photo{aspect-ratio:16/9;object-fit:cover}
.hanx-oem__strength-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.13)}.hanx-oem__strength-grid article{padding:52px;background:var(--oem-dark)}.hanx-oem__strength-wide{grid-column:1/-1}.hanx-oem__strength-grid span{display:block;margin-bottom:27px;color:rgba(255,255,255,.35);font-size:13px}.hanx-oem__strength-grid h3{color:#fff}.hanx-oem__strength-grid p{margin-bottom:0;color:rgba(255,255,255,.68);font-size:14px}
.hanx-oem__product-block{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr);align-items:center;gap:72px;padding:72px 0;border-top:1px solid var(--oem-line)}.hanx-oem__product-block--reverse .hanx-oem__product-visual{order:2}.hanx-oem__product-visual img{aspect-ratio:3/2;object-fit:cover}.hanx-oem__product-no{margin-bottom:16px;color:#aaa;font-size:12px}.hanx-oem__product-copy>p:not(.hanx-oem__product-no){color:#666}
.hanx-oem__product-list{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none}.hanx-oem__product-list li{padding:7px 12px;color:#555;background:#f4f4f1;font-size:12px;line-height:1.5}
.hanx-oem__product-note{margin-top:40px;padding:36px 40px;background:var(--oem-soft)}.hanx-oem__product-note strong{display:block;margin-bottom:8px;color:var(--oem-black);font-size:18px}.hanx-oem__product-note p{margin:0;color:#666;font-size:14px}
.hanx-oem__process{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;border-top:1px solid #d2d2d2;border-left:1px solid #d2d2d2}.hanx-oem__process li{min-height:270px;padding:34px;border-right:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2}.hanx-oem__process span{display:block;margin-bottom:27px;color:#aaa;font-size:11px;letter-spacing:.1em}.hanx-oem__process h3{font-size:19px}.hanx-oem__process p{margin:0;color:#666;font-size:13px}
.hanx-oem__info-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--oem-line);border-left:1px solid var(--oem-line)}.hanx-oem__info-grid article{padding:42px;border-right:1px solid var(--oem-line);border-bottom:1px solid var(--oem-line)}.hanx-oem__info-wide{grid-column:1/-1}.hanx-oem__info-grid p{margin:0;color:#666;font-size:14px}
.hanx-oem__case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.hanx-oem__case-card{background:#fff;border:1px solid #ececea}.hanx-oem__case-image{height:330px;object-fit:contain;padding:28px;background:#fafafa}.hanx-oem__case-copy{padding:32px}.hanx-oem__case-category{margin-bottom:10px;color:#999;font-size:11px;letter-spacing:.08em}.hanx-oem__case-copy>p:last-of-type{color:#666;font-size:14px}.hanx-oem__scope{display:flex;flex-wrap:wrap;gap:6px;margin-top:24px}.hanx-oem__scope span{padding:6px 9px;background:var(--oem-soft);color:#5f5f5f;font-size:10px}
.hanx-oem__faq{border-top:1px solid var(--oem-line)}.hanx-oem__faq details{border-bottom:1px solid var(--oem-line)}.hanx-oem__faq summary{position:relative;padding:25px 52px 25px 0;cursor:pointer;color:var(--oem-black);font-weight:600;list-style:none}.hanx-oem__faq summary::-webkit-details-marker{display:none}.hanx-oem__faq summary:after{content:"+";position:absolute;top:50%;right:6px;transform:translateY(-50%);color:#999;font-size:24px;font-weight:300}.hanx-oem__faq details[open] summary:after{content:"−"}.hanx-oem__faq details>div{padding:0 52px 28px 0;color:#666;font-size:14px}
.hanx-oem__contact{padding:120px 0;color:#fff;background:var(--oem-black)}.hanx-oem__contact-lead strong{color:#fff;font-size:18px}.hanx-oem__form-shell{padding:44px;color:var(--oem-text);background:#fff}.hanx-oem__admin-note{padding:15px;margin-bottom:20px;background:#fff6d6;color:#5a4910}.hanx-oem__fallback{text-align:center;padding:20px}
.hanx-oem .wpcf7 label{display:block;margin-bottom:8px;color:#333;font-size:13px;font-weight:600}.hanx-oem .wpcf7 input[type=text],.hanx-oem .wpcf7 input[type=email],.hanx-oem .wpcf7 input[type=url],.hanx-oem .wpcf7 input[type=tel],.hanx-oem .wpcf7 input[type=date],.hanx-oem .wpcf7 select,.hanx-oem .wpcf7 textarea{width:100%;min-height:52px;padding:13px 15px;border:1px solid #d7d7d7;border-radius:0;color:#333;background:#fff;font:inherit}.hanx-oem .wpcf7 textarea{min-height:180px;resize:vertical}.hanx-oem .wpcf7 input[type=file]{max-width:100%}.hanx-oem .wpcf7 input[type=submit]{width:100%;min-height:62px;padding:16px 24px;border:0;border-radius:0;color:#fff;background:var(--oem-black);cursor:pointer;font:inherit;font-weight:600}
@media(max-width:980px){.hanx-oem__section,.hanx-oem__contact{padding:90px 0}.hanx-oem__hero-grid{grid-template-columns:1fr 1fr;gap:40px}.hanx-oem__consult-grid{grid-template-columns:repeat(2,1fr)}.hanx-oem__type-grid{grid-template-columns:1fr}.hanx-oem__product-block{gap:44px}.hanx-oem__process{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.hanx-oem{font-size:15px}.hanx-oem__container,.hanx-oem__container--narrow{width:calc(100% - 36px)}.hanx-oem__section,.hanx-oem__contact{padding:72px 0}.hanx-oem__hero{padding-top:55px}.hanx-oem__hero-grid{display:flex;flex-direction:column;gap:44px;min-height:auto}.hanx-oem__hero-copy{order:1}.hanx-oem__hero-visual{order:2}.hanx-oem h1{font-size:clamp(36px,11vw,48px)}.hanx-oem h2{font-size:31px}.hanx-oem__lead{font-size:16px}.hanx-oem__hero-actions{flex-direction:column;align-items:stretch;gap:18px}.hanx-oem__button{width:100%}.hanx-oem__text-link{align-self:center}.hanx-oem__numbers{grid-template-columns:1fr;margin-top:55px}.hanx-oem__number{padding:26px 0}.hanx-oem__number+.hanx-oem__number{border-left:0;border-top:1px solid var(--oem-line)}.hanx-oem__heading{margin-bottom:42px}.hanx-oem__consult-grid{grid-template-columns:1fr}.hanx-oem__consult-card{min-height:auto;padding:28px}.hanx-oem__strength-grid{grid-template-columns:1fr}.hanx-oem__strength-wide{grid-column:auto}.hanx-oem__strength-grid article{padding:38px 28px}.hanx-oem__product-block,.hanx-oem__product-block--reverse{display:flex;flex-direction:column;gap:30px;padding:50px 0}.hanx-oem__product-block--reverse .hanx-oem__product-visual{order:0}.hanx-oem__product-list{gap:7px}.hanx-oem__product-list li{font-size:11px}.hanx-oem__process{grid-template-columns:1fr}.hanx-oem__process li{min-height:auto;padding:30px 26px}.hanx-oem__info-grid{grid-template-columns:1fr}.hanx-oem__info-wide{grid-column:auto}.hanx-oem__info-grid article{padding:32px 26px}.hanx-oem__case-grid{grid-template-columns:1fr}.hanx-oem__case-image{height:260px}.hanx-oem__case-copy{padding:26px}.hanx-oem__form-shell{padding:28px 22px}.hanx-oem__visual-break,.hanx-oem__visual-break--dark{padding-bottom:70px}}


/* =========================================================
   Hanx OEM v1.0.2
   Production typography / HERO hotfix
   - Scoped only inside .hanx-oem
   - Neutralizes Lightning heading decoration
   - Prevents awkward Japanese phrase splitting
   ========================================================= */

/* Lightning / theme heading reset */
.hanx-oem h1,
.hanx-oem h2,
.hanx-oem h3 {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.hanx-oem h1::before,
.hanx-oem h1::after,
.hanx-oem h2::before,
.hanx-oem h2::after,
.hanx-oem h3::before,
.hanx-oem h3::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Japanese heading wrapping */
.hanx-oem h1,
.hanx-oem h2 {
  line-break: strict;
  overflow-wrap: normal;
  word-break: normal;
  hanging-punctuation: allow-end;
}

.hanx-oem__phrase {
  white-space: nowrap;
}

/* HERO desktop balance */
@media (min-width: 1100px) {
  .hanx-oem__hero {
    padding-top: 78px;
  }

  .hanx-oem__hero-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
    gap: 48px;
    min-height: 560px;
    align-items: center;
  }

  .hanx-oem__hero-copy {
    min-width: 0;
  }

  .hanx-oem__hero h1 {
    font-size: clamp(48px, 4.15vw, 60px);
    line-height: 1.24;
    letter-spacing: -.04em;
  }

  .hanx-oem__hero-line {
    white-space: nowrap;
  }

  .hanx-oem__hero-line--primary {
    font-weight: 700;
  }

  .hanx-oem__hero-line--secondary {
    font-weight: 500;
  }

  .hanx-oem__hero-visual {
    align-self: center;
  }

  .hanx-oem__hero-image {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .hanx-oem__heading {
    max-width: 980px;
  }

  .hanx-oem h2 {
    max-width: 100%;
  }
}

/* Tablet: keep phrases intact but allow HERO lines to wrap if necessary */
@media (min-width: 681px) and (max-width: 1099px) {
  .hanx-oem__hero {
    padding-top: 78px;
  }

  .hanx-oem__hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px;
  }

  .hanx-oem__hero h1 {
    font-size: clamp(40px, 5.1vw, 52px);
  }

  .hanx-oem__hero-line {
    white-space: normal;
  }
}

/* Mobile safety: never create horizontal scrolling */
@media (max-width: 680px) {
  .hanx-oem__hero {
    padding-top: 64px;
  }

  .hanx-oem__hero-line,
  .hanx-oem__phrase {
    white-space: normal;
  }

  .hanx-oem h1,
  .hanx-oem h2 {
    overflow-wrap: anywhere;
    word-break: normal;
  }
}


/* =========================================================
   Hanx OEM v1.0.3
   HERO final desktop balance hotfix
   ========================================================= */
@media (min-width: 1100px) {
  .hanx-oem__hero-grid {
    grid-template-columns: minmax(0, 1.20fr) minmax(0, .80fr);
    gap: 38px;
  }

  .hanx-oem__hero-copy {
    position: relative;
    z-index: 2;
  }

  .hanx-oem__hero-visual {
    position: relative;
    z-index: 1;
    align-self: center;
  }

  .hanx-oem__hero h1 {
    font-size: 56px;
    line-height: 1.22;
    margin-bottom: 28px;
  }

  .hanx-oem__hero-line {
    display: inline-block;
    white-space: nowrap;
  }

  .hanx-oem__hero-line--primary {
    font-size: 1em;
  }

  .hanx-oem__hero-line--secondary {
    font-size: .82em;
    letter-spacing: -.045em;
  }

  .hanx-oem__hero-image {
    width: 100%;
    max-width: 100%;
    object-fit: contain;
  }
}

/* Slightly narrower desktop / laptop */
@media (min-width: 981px) and (max-width: 1199px) {
  .hanx-oem__hero-grid {
    grid-template-columns: minmax(0, 1.16fr) minmax(0, .84fr);
    gap: 30px;
  }

  .hanx-oem__hero h1 {
    font-size: 48px;
  }

  .hanx-oem__hero-line--secondary {
    font-size: .80em;
  }
}


/* =========================================================
   Hanx OEM v1.0.4
   HERO layout: full-width image first, copy below
   ========================================================= */

.hanx-oem__hero {
  padding-top: 42px;
}

.hanx-oem__hero-visual--wide {
  display: block;
  width: min(1180px, calc(100% - 48px));
  margin: 0 auto;
}

.hanx-oem__hero-visual--wide .hanx-oem__hero-image {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  object-fit: cover;
}

.hanx-oem__hero-copy--below {
  display: block;
  max-width: none;
  padding-top: 62px;
}

.hanx-oem__hero-copy--below .hanx-oem__eyebrow {
  margin-bottom: 22px;
}

.hanx-oem__hero-copy--below h1 {
  max-width: 980px;
  margin-bottom: 30px;
  font-size: clamp(46px, 4.2vw, 62px);
  line-height: 1.22;
}

.hanx-oem__hero-copy--below .hanx-oem__hero-line {
  display: inline;
  white-space: nowrap;
}

.hanx-oem__hero-copy--below .hanx-oem__hero-line--primary,
.hanx-oem__hero-copy--below .hanx-oem__hero-line--secondary {
  font-size: 1em;
  letter-spacing: -.04em;
}

.hanx-oem__hero-copy--below .hanx-oem__lead {
  max-width: 860px;
}

.hanx-oem__hero-copy--below .hanx-oem__sublead {
  max-width: 860px;
}

/* Cancel legacy 2-column HERO rules from older versions */
@media (min-width: 981px) {
  .hanx-oem__hero .hanx-oem__hero-grid {
    display: block;
    min-height: 0;
  }
}

@media (max-width: 680px) {
  .hanx-oem__hero {
    padding-top: 22px;
  }

  .hanx-oem__hero-visual--wide {
    width: calc(100% - 36px);
  }

  .hanx-oem__hero-copy--below {
    padding-top: 38px;
  }

  .hanx-oem__hero-copy--below h1 {
    font-size: clamp(34px, 10.2vw, 45px);
    line-height: 1.3;
  }

  .hanx-oem__hero-copy--below .hanx-oem__hero-line {
    white-space: normal;
  }
}
