*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,Arial,sans-serif;color:#16232d;line-height:1.75}a{color:inherit}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);border-bottom:1px solid #e2e7ea}.header-row{height:78px;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{display:flex;align-items:center;gap:12px;text-decoration:none}.logo-mark-image{width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important;object-fit:contain;flex:none}.logo b{display:block;font-size:15px}.logo small{display:block;font-size:10px;color:#68757d;letter-spacing:.08em}.header nav{display:flex;align-items:center;gap:22px;font-size:14px;font-weight:700}.header nav a{text-decoration:none}.contact-nav{background:#e56e22;color:#fff;padding:11px 15px}.menu{display:none;background:none;border:0;font-size:25px}.hero{background:#0b2333;color:white;overflow:hidden;position:relative}
.hero-grid{position:relative;display:block;min-height:620px}
.hero-copy{position:relative;z-index:3;width:54%;padding:92px 0 72px}
.eyebrow{font-size:12px;letter-spacing:.21em;font-weight:900;color:#ff7b28;margin:0 0 15px}
.eyebrow.dark{color:#c55c1f}
.hero h1{font-size:clamp(46px,5vw,68px);line-height:1.12;margin:0 0 28px;letter-spacing:-.045em}
.hero h1 span{display:block;white-space:nowrap}
.lead{max-width:650px;font-size:18px;color:#d2dde3}
.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}
.btn{padding:14px 22px;text-decoration:none;font-weight:800}
.orange{background:#e56e22}.outline{border:1px solid #72838e}
.hero-tags{display:flex;gap:9px;flex-wrap:wrap}.hero-tags span{border:1px solid #425a67;padding:7px 11px;font-size:12px}
.hero-art{position:absolute;z-index:1;right:0;top:0;width:64%;height:100%;min-height:620px;overflow:hidden;background:#102735;border-radius:0;isolation:isolate}
.hero-art::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,#0b2333 0%,rgba(11,35,51,.96) 3%,rgba(11,35,51,.78) 12%,rgba(11,35,51,.38) 25%,rgba(11,35,51,.08) 40%,rgba(11,35,51,0) 55%,rgba(11,35,51,.04) 100%);pointer-events:none}
.hero-main-image{width:100%;height:100%;display:block;object-fit:cover;object-position:center;animation:none!important}
.hero-image-overlay{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,rgba(11,35,51,.08),rgba(11,35,51,0) 25%,rgba(11,35,51,.05) 100%);pointer-events:none}
.hero-word{position:absolute;right:-20px;bottom:22px;font-size:84px;line-height:.84;font-weight:900;color:rgba(255,255,255,.12);letter-spacing:-.08em}
@media(prefers-reduced-motion:reduce){.hero-main-image{animation:none}}
.section{padding:88px 0}.light{background:#f4f6f7}.section h2,.cta h2,.contact h2{font-size:clamp(30px,4vw,46px);line-height:1.25;margin:0 0 30px}.intro{color:#64727b;max-width:760px;margin-bottom:38px}.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cards4 article:nth-child(5){grid-column:2 / span 2}.cards4 article{background:#fff;padding:25px;border-top:3px solid #e56e22}.cards4 b{font-size:12px;color:#aab5bb}.cards4 h3{font-size:18px;line-height:1.4}.cards4 p{font-size:14px;color:#64717a}.strength-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.strength-grid article{background:#132935;color:#fff;padding:27px}.strength-grid span,.num{font-size:12px;font-weight:900;letter-spacing:.15em;color:#e56e22}.strength-grid h3{font-size:21px;margin:8px 0}.strength-grid p{font-size:14px;color:#c7d2d7}.machine{display:grid;grid-template-columns:.72fr 1.28fr;gap:34px;align-items:center;padding:48px 0;border-top:1px solid #dfe5e8}.machine-copy h3,.text-machine h3{font-size:31px;margin:8px 0 13px}.machine-copy>p:not(.count),.text-machine>p:not(.count){color:#617078}.count{display:flex;align-items:baseline;gap:10px;font-size:13px;font-weight:700;margin-top:20px}.count b{font-size:32px;color:#e56e22}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-grid.three{grid-template-columns:repeat(3,1fr)}.photo-grid figure{margin:0}.photo-grid img{width:100%;height:245px;object-fit:cover}.photo-grid figcaption{font-size:12px;color:#69767d;margin-top:5px}.motion-photo{overflow:hidden;background:#10232d;display:flex;align-items:center;justify-content:center}.motion-photo img{width:100%;height:auto;display:block;object-fit:contain;transform:none!important;animation:none!important}.text-machine{max-width:720px;padding:40px 0;border-top:1px solid #dfe5e8}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.service-grid article{background:#f4f6f7;padding:32px}.service-grid h3{margin-top:0;font-size:24px}.chips{display:flex;flex-wrap:wrap;gap:9px}.chips span{background:#fff;border:1px solid #e1e5e7;padding:8px 11px;font-size:13px;font-weight:700}.media-list{border-top:2px solid #182832}.media-list div{display:grid;grid-template-columns:1fr 1.3fr;gap:28px;padding:18px 7px;border-bottom:1px solid #dce2e5}.media-list span{color:#64717a}.cta{background:#e56e22;color:#fff;padding:68px 0}.cta .eyebrow{color:#fff}.cta-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}.cta-grid>div:last-child{display:flex;flex-direction:column;gap:11px}.cta-grid a{text-align:center;text-decoration:none;border:1px solid rgba(255,255,255,.7);padding:14px;font-weight:800}.cta-grid a:first-child{background:#fff;color:#be5518}.company-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:50px}.company-grid dl{margin:0}.company-grid dl div{display:grid;grid-template-columns:145px 1fr;padding:14px 0;border-bottom:1px solid #e0e5e7}.company-grid dt{font-size:13px;font-weight:800;color:#66727a}.company-grid dd{margin:0}.company-grid aside{background:#f4f6f7;padding:33px}.company-grid aside h3{font-size:28px;margin:5px 0 13px}.company-grid aside p:last-child{color:#64717a}.contact{background:#0b2333;color:white;padding:84px 0;text-align:center}.contact>div>p{color:#cad5da}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}.contact-grid a{border:1px solid #4d6572;padding:22px;text-decoration:none}.contact-grid small,.contact-grid b,.contact-grid span{display:block}.contact-grid small,.contact-grid span{color:#aebdc5}.contact-grid b{font-size:23px;margin:5px 0}footer{background:#071720;color:#b8c4ca;padding:30px 0}.footer-row{display:flex;justify-content:space-between;align-items:end;gap:20px}.footer-row b{color:white}.footer-row p{font-size:12px;margin:4px 0}.footer-row small{font-size:11px}@media(max-width:900px){.logo-mark-image{width:46px!important;height:46px!important;max-width:46px!important;max-height:46px!important}.header nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;border-bottom:1px solid #ddd}.header nav.open{display:flex}.menu{display:block}.hero-grid,.machine,.service-grid,.cta-grid,.company-grid{display:grid;grid-template-columns:1fr}.hero-copy{width:100%;padding:66px 0 32px}.hero-art{position:relative;right:auto;top:auto;width:100%;height:360px;min-height:360px;margin:0 0 38px}.hero-art::after{background:linear-gradient(180deg,rgba(11,35,51,0) 0%,rgba(11,35,51,.02) 100%)}.hero h1 span{white-space:normal}.cards4,.strength-grid{grid-template-columns:1fr 1fr}.photo-grid.three{grid-template-columns:1fr}.photo-grid img{height:250px}.motion-photo{height:auto}.contact-grid{grid-template-columns:1fr}}@media(max-width:560px){.wrap{width:min(100% - 28px,1180px)}.logo-mark-image{width:38px;height:38px}.logo b{font-size:12px}.logo small{display:none}.hero h1{font-size:39px;line-height:1.18}.hero-word{font-size:62px}.cards4,.strength-grid,.photo-grid{grid-template-columns:1fr}.cards4 article:nth-child(5){grid-column:auto}.section{padding:68px 0}.photo-grid img{height:220px}.motion-photo{height:auto}.media-list div{grid-template-columns:1fr;gap:3px}.company-grid dl div{grid-template-columns:1fr;gap:4px}.footer-row{display:block}.footer-row small{display:block;margin-top:15px}.contact-grid b{font-size:18px}}
/* Contact form v4 */
.contact{text-align:left}
.contact .wrap>h2,.contact .wrap>.eyebrow,.contact .wrap>p{text-align:center}
.contact-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:28px;margin-top:34px;align-items:start}
.contact-form{background:#fff;color:#17232c;padding:30px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label{display:block}
.contact-form label>span{display:block;font-size:13px;font-weight:800;margin-bottom:7px}
.contact-form em{font-style:normal;font-size:11px;color:#fff;background:#e56e22;padding:2px 6px;margin-left:5px}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;font:inherit;border:1px solid #cbd4d9;background:#fff;padding:12px 13px;border-radius:0;outline:none}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#e56e22;box-shadow:0 0 0 2px rgba(229,110,34,.12)}
.contact-form textarea{resize:vertical;min-height:180px}
.contact-form .full{grid-column:1/-1}
.submit-btn{width:100%;border:0;background:#e56e22;color:#fff;font:inherit;font-weight:900;padding:15px 18px;cursor:pointer}
.submit-btn:hover{filter:brightness(.95)}
.form-note{font-size:12px;color:#66727a;margin:15px 0}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-side{display:grid;gap:14px}
.contact-card{border:1px solid #4d6572;padding:24px;text-align:left}
.contact-card small,.contact-card span{display:block;color:#aebdc5}
.contact-card a{display:block;text-decoration:none;color:#fff;font-weight:900;font-size:25px;margin:7px 0;word-break:break-word}
.contact-card .mail-link{font-size:18px}
.form-message{display:none;margin:22px auto 0;max-width:900px;padding:14px 16px;text-align:center;font-weight:800}
.form-message.success{display:block;background:#e7f6ea;color:#185c2d}
.form-message.error{display:block;background:#fff0ec;color:#8b2c14}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr}}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}.contact-form{padding:20px}.contact-card a{font-size:20px}.contact-card .mail-link{font-size:16px}}

/* Phone behavior v5 */
.phone-number{display:block;color:#fff;font-size:25px;margin:7px 0;letter-spacing:.02em}
.mobile-call{display:none!important;margin-top:14px!important;background:#e56e22;color:#fff!important;padding:10px 12px;text-align:center;font-size:14px!important}
@media(max-width:700px){
  .mobile-call{display:block!important}
  .phone-number{font-size:22px}
}

/* v13: homepage hero balance */
@media(min-width:901px){
  .hero-copy{min-width:0}
  .hero-copy h1{font-size:clamp(42px,4.2vw,68px);line-height:1.18;letter-spacing:-.025em;white-space:normal}
  .hero-art{width:100%;max-width:none;aspect-ratio:16/9;height:auto!important;min-height:0!important}
}

/* v15 final display fixes */
.header .logo {
  min-width: 0;
  overflow: visible;
}
.header .logo-mark-image {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  max-width: 46px !important;
  max-height: 46px !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  overflow: visible !important;
}
.hero-art {
  width: 100% !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.hero-main-image {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  animation: none !important;
}
@media (max-width: 900px) {
  .hero-art {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* v16: final header logo and hero image fixes */
.header .logo { overflow: visible !important; }
.header .logo-mark-image {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  max-width: 46px !important;
  max-height: 46px !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}
.hero-art {
  overflow: hidden !important;
  aspect-ratio: 16 / 9 !important;
  height: auto !important;
  min-height: 0 !important;
}
.hero-main-image {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  animation: none !important;
}

/* v17: homepage hero layout */
@media (min-width: 901px){
  .hero > .wrap{width:min(1360px,calc(100% - 80px));}
  .hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:42px;min-height:680px;}
  .hero-copy{padding:82px 0 72px;}
  .hero h1{font-size:clamp(50px,4.2vw,66px);line-height:1.16;letter-spacing:-.045em;max-width:560px;}
  .hero-art{width:100%;aspect-ratio:16/9;height:auto!important;min-height:0!important;}
  .hero-main-image{width:100%;height:100%;object-fit:contain!important;}
}

/* v18: stronger homepage hero sizing */
@media (min-width: 901px) {
  .hero > .wrap{
    width:min(1460px,calc(100% - 56px));
  }
  .hero-grid{
    grid-template-columns:minmax(470px,.72fr) minmax(0,1.58fr);
    gap:28px;
    min-height:700px;
    align-items:center;
  }
  .hero-copy{
    padding:76px 0 64px;
  }
  .hero-copy h1{
    max-width:500px !important;
    font-size:clamp(50px,4.15vw,66px) !important;
    line-height:1.16 !important;
    letter-spacing:-.045em !important;
  }
  .hero-art{
    width:100% !important;
    max-width:none !important;
    aspect-ratio:16/9 !important;
    height:auto !important;
    min-height:0 !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
  }
}


/* v19: final desktop hero proportions and safe header logo */
@media (min-width: 901px) {
  .hero > .wrap {
    width: min(1480px, calc(100% - 48px));
  }
  .hero-grid {
    grid-template-columns: minmax(430px, 0.68fr) minmax(0, 1.72fr) !important;
    gap: 24px !important;
    min-height: 700px !important;
  }
  .hero-copy {
    padding: 70px 0 60px !important;
  }
  .hero-copy h1 {
    max-width: 530px !important;
    font-size: clamp(50px, 4vw, 64px) !important;
    line-height: 1.16 !important;
    letter-spacing: -0.045em !important;
  }
  .hero-art {
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .hero-main-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
  }
}

/* Keep the complete circular mark visible in the header at every size. */
.header .logo {
  display: flex !important;
  align-items: center !important;
  overflow: visible !important;
  flex-shrink: 0 !important;
}
.header .logo-mark-image {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  max-width: 52px !important;
  max-height: 52px !important;
  flex: 0 0 52px !important;
  display: block !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* v20: homepage hero composition and mobile header */
@media (min-width: 901px) {
  .hero > .wrap {
    width: min(1480px, calc(100% - 48px));
  }
  .hero-grid {
    grid-template-columns: minmax(480px, 0.82fr) minmax(0, 1.18fr) !important;
    gap: 18px !important;
    min-height: 700px !important;
    align-items: stretch !important;
  }
  .hero-copy {
    padding: 82px 0 70px !important;
    align-self: center !important;
    position: relative;
    z-index: 2;
  }
  .hero-copy h1 {
    max-width: 610px !important;
    font-size: clamp(48px, 4.25vw, 66px) !important;
    line-height: 1.14 !important;
    letter-spacing: -0.045em !important;
    margin-bottom: 28px !important;
  }
  .hero-copy h1 span {
    display: block;
    white-space: nowrap;
  }
  .hero-art {
    width: 100% !important;
    height: 700px !important;
    min-height: 700px !important;
    aspect-ratio: auto !important;
    align-self: stretch !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  .hero-main-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

@media (max-width: 900px) {
  .hero-grid {
    gap: 0 !important;
  }
  .hero-copy h1 span {
    display: block;
  }
  .hero-art {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
  }
  .hero-main-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

@media (max-width: 560px) {
  .header-row {
    height: 70px !important;
    gap: 8px !important;
  }
  .logo {
    gap: 7px !important;
    min-width: 0 !important;
    max-width: calc(100% - 48px) !important;
  }
  .header .logo-mark-image {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    flex: 0 0 42px !important;
  }
  .logo span {
    min-width: 0 !important;
  }
  .logo b {
    font-size: 11px !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
  }
  .logo small {
    display: block !important;
    font-size: 8px !important;
    line-height: 1.25 !important;
    letter-spacing: .035em !important;
    white-space: nowrap !important;
  }
  .hero-copy {
    padding: 48px 0 30px !important;
  }
  .hero-copy h1 {
    font-size: clamp(36px, 10.5vw, 46px) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.04em !important;
    max-width: 100% !important;
  }
  .hero-copy h1 span {
    white-space: nowrap;
  }
  .hero-art {
    aspect-ratio: 16 / 9 !important;
  }
}

/* v21: final hero image fit + mobile header logo */
@media (min-width: 901px) {
  .hero-grid {
    grid-template-columns: minmax(460px, .82fr) minmax(0, 1.18fr) !important;
    gap: 18px !important;
    min-height: 700px !important;
    align-items: center !important;
  }
  .hero-copy {
    align-self: center !important;
    padding: 72px 0 64px !important;
  }
  .hero-copy h1 {
    font-size: clamp(46px, 3.9vw, 62px) !important;
    line-height: 1.14 !important;
    max-width: 610px !important;
  }
  .hero-art {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    align-self: center !important;
    overflow: hidden !important;
    background: #0b2333 !important;
  }
  .hero-main-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
  }
}

@media (max-width: 900px) {
  .header-row {
    min-width: 0 !important;
  }
  .logo {
    max-width: calc(100% - 42px) !important;
    overflow: visible !important;
  }
  .logo span {
    overflow: visible !important;
  }
  .logo b,
  .logo small {
    overflow: visible !important;
    text-overflow: clip !important;
  }
  .hero-art {
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .hero-main-image {
    object-fit: contain !important;
    object-position: center !important;
  }
}

@media (max-width: 560px) {
  .header-row {
    height: 68px !important;
    gap: 5px !important;
  }
  .header .logo-mark-image {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    flex-basis: 38px !important;
  }
  .logo {
    gap: 6px !important;
    max-width: calc(100% - 38px) !important;
  }
  .logo b {
    font-size: 10px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }
  .logo small {
    display: block !important;
    font-size: 7.5px !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }
  .menu {
    flex: 0 0 32px !important;
    width: 32px !important;
    padding: 0 !important;
  }
}


/* v22: reference-layout hero */
@media (min-width: 901px){
  .hero > .wrap{
    width:min(1480px,calc(100% - 48px)) !important;
  }
  .hero-grid{
    grid-template-columns:minmax(500px, .82fr) minmax(0, 1.18fr) !important;
    gap:0 !important;
    min-height:700px !important;
    align-items:center !important;
  }
  .hero-copy{
    padding:78px 34px 62px 0 !important;
    align-self:center !important;
    z-index:2 !important;
  }
  .hero-copy h1{
    max-width:none !important;
    font-size:clamp(48px,4.05vw,64px) !important;
    line-height:1.16 !important;
    letter-spacing:-.045em !important;
    margin-bottom:28px !important;
  }
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
  }
  .hero-art{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:16 / 9 !important;
    align-self:center !important;
    overflow:hidden !important;
    background:#0b2333 !important;
    border-radius:0 !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
    display:block !important;
  }
}

@media (max-width: 900px){
  .header .logo{
    max-width:calc(100% - 44px) !important;
  }
  .header .logo-mark-image{
    flex:0 0 42px !important;
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    max-width:42px !important;
    max-height:42px !important;
  }
  .logo span{
    min-width:0 !important;
  }
  .logo b,.logo small{
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
  .logo b{font-size:11px !important;}
  .logo small{
    display:block !important;
    font-size:8px !important;
    letter-spacing:.01em !important;
  }
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
  }
  .hero-art{
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:16 / 9 !important;
    overflow:hidden !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
  }
}

@media (max-width:560px){
  .header-row{height:70px !important;}
  .header .logo{
    gap:6px !important;
    max-width:calc(100% - 38px) !important;
  }
  .header .logo-mark-image{
    flex-basis:36px !important;
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    min-height:36px !important;
    max-width:36px !important;
    max-height:36px !important;
  }
  .logo b{font-size:10px !important;}
  .logo small{font-size:7px !important;}
  .hero-copy{
    padding:48px 0 30px !important;
  }
  .hero-copy h1{
    font-size:clamp(35px,10vw,44px) !important;
    line-height:1.12 !important;
    letter-spacing:-.04em !important;
  }
  .hero-copy h1 span{white-space:nowrap !important;}
  .hero-art{
    aspect-ratio:16 / 9 !important;
  }
}

/* v23: hero text / engraved image separation */
@media (min-width: 901px){
  .hero-grid{
    grid-template-columns:minmax(620px, 45%) minmax(0, 55%) !important;
    gap:0 !important;
    min-height:700px !important;
  }
  .hero-copy{
    padding:78px 22px 62px 0 !important;
    position:relative !important;
    z-index:3 !important;
    min-width:0 !important;
  }
  .hero-copy h1{
    font-size:clamp(46px,3.6vw,56px) !important;
    line-height:1.16 !important;
    letter-spacing:-.035em !important;
    max-width:100% !important;
    margin-bottom:28px !important;
  }
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
  }
  .hero-art{
    position:relative !important;
    z-index:1 !important;
    width:100% !important;
    aspect-ratio:16 / 9 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center !important;
  }
}

@media (max-width: 900px){
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
  }
}

@media (max-width: 560px){
  .header .logo-mark-image{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
    max-width:34px !important;
    max-height:34px !important;
    flex:0 0 34px !important;
  }
  .logo{gap:5px !important;max-width:calc(100% - 36px) !important;}
  .logo b{font-size:9.5px !important;}
  .logo small{font-size:7px !important;letter-spacing:-.01em !important;}
  .hero-copy h1{font-size:clamp(34px,9.8vw,43px) !important;}
  .hero-copy h1 span{white-space:nowrap !important;}
}


/* ===== v24 hero layout correction ===== */
@media (min-width: 901px){
  .hero-grid{
    grid-template-columns:minmax(590px,0.94fr) minmax(0,1.06fr) !important;
    gap:28px !important;
    min-height:680px !important;
    align-items:center !important;
  }
  .hero-copy{
    min-width:0 !important;
    padding:72px 0 64px !important;
    position:relative;
    z-index:3;
  }
  .hero-copy h1{
    font-size:clamp(48px,4.0vw,62px) !important;
    line-height:1.18 !important;
    letter-spacing:-.035em !important;
    margin:0 0 26px !important;
  }
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
    width:max-content !important;
    max-width:none !important;
  }
  .hero-art{
    position:relative !important;
    z-index:1 !important;
    width:100% !important;
    aspect-ratio:16/9 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    margin:0 !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
  }
}

@media (max-width: 900px){
  .hero-grid{gap:0 !important;}
  .hero-copy{padding:54px 0 28px !important;}
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
    width:max-content !important;
    max-width:none !important;
  }
  .hero-copy h1{font-size:clamp(30px,8.2vw,48px) !important;line-height:1.18 !important;}
  .hero-art{width:100% !important;aspect-ratio:16/9 !important;height:auto !important;min-height:0 !important;}
  .hero-main-image{object-fit:cover !important;}
}

@media (max-width: 560px){
  .logo{gap:8px !important;}
  .header .logo-mark-image{width:42px !important;height:42px !important;max-width:42px !important;max-height:42px !important;}
  .logo b{font-size:11px !important;white-space:nowrap !important;}
  .logo small{display:block !important;font-size:8px !important;letter-spacing:.04em !important;white-space:nowrap !important;}
  .hero-copy{padding:44px 0 24px !important;}
  .hero-copy h1{font-size:clamp(27px,8.4vw,34px) !important;line-height:1.2 !important;letter-spacing:-.035em !important;}
  .hero-copy h1 span{white-space:nowrap !important;}
  .lead{font-size:14px !important;}
}


/* ================================
   v25 FINAL HEADER / HERO LAYOUT
   ================================ */
.header { position: sticky; top: 0; z-index: 1000; }
.header .wrap { max-width: 1420px; width: calc(100% - 48px); margin: 0 auto; }
.header-row { min-height: 82px !important; height: auto !important; display:flex !important; align-items:center !important; justify-content:space-between !important; gap:24px !important; }
.logo { display:flex !important; align-items:center !important; gap:12px !important; min-width:0 !important; overflow:visible !important; }
.logo-mark-image { width:54px !important; height:54px !important; max-width:54px !important; max-height:54px !important; min-width:54px !important; min-height:54px !important; object-fit:contain !important; object-position:center !important; display:block !important; flex:0 0 54px !important; }
.logo span { display:block !important; min-width:0 !important; white-space:nowrap !important; }
.logo b { display:block !important; white-space:nowrap !important; }
.logo small { display:block !important; white-space:nowrap !important; }
.header nav { display:flex !important; align-items:center !important; gap:24px !important; flex-wrap:nowrap !important; }
.header nav a { white-space:nowrap !important; }

.hero { overflow:hidden !important; }
.hero-grid { max-width:1420px !important; width:calc(100% - 48px) !important; margin:0 auto !important; display:grid !important; grid-template-columns:minmax(570px, 0.88fr) minmax(620px, 1.12fr) !important; column-gap:34px !important; align-items:center !important; min-height:680px !important; }
.hero-copy { position:relative !important; z-index:3 !important; min-width:0 !important; }
.hero-copy .eyebrow { white-space:nowrap !important; }
.hero-copy h1 { margin:18px 0 28px !important; font-size:clamp(46px,4vw,64px) !important; line-height:1.18 !important; letter-spacing:-0.035em !important; font-weight:800 !important; }
.hero-copy h1 span { display:block !important; white-space:nowrap !important; width:max-content !important; max-width:none !important; }
.hero-copy .lead { max-width:600px !important; }
.hero-art { position:relative !important; z-index:1 !important; width:100% !important; height:auto !important; aspect-ratio:16 / 9 !important; overflow:hidden !important; align-self:center !important; background:#102735 !important; }
.hero-main-image { width:100% !important; height:100% !important; display:block !important; object-fit:cover !important; object-position:center !important; animation:none !important; }

@media (max-width:1200px) {
  .header nav { gap:15px !important; }
  .hero-grid { grid-template-columns:minmax(500px, .92fr) minmax(560px,1.08fr) !important; column-gap:24px !important; }
  .hero-copy h1 { font-size:50px !important; }
}

@media (max-width:900px) {
  .header .wrap, .hero-grid { width:calc(100% - 32px) !important; }
  .header-row { min-height:72px !important; }
  .logo-mark-image { width:48px !important; height:48px !important; min-width:48px !important; min-height:48px !important; flex-basis:48px !important; }
  .logo b { font-size:14px !important; }
  .logo small { font-size:10px !important; letter-spacing:.04em !important; }
  .header nav { display:none !important; }
  .menu { display:block !important; }
  .hero-grid { display:grid !important; grid-template-columns:1fr !important; gap:30px !important; min-height:0 !important; padding:56px 0 60px !important; }
  .hero-copy { width:100% !important; }
  .hero-copy h1 { font-size:clamp(34px,8vw,52px) !important; line-height:1.15 !important; margin:14px 0 22px !important; }
  .hero-copy h1 span { white-space:nowrap !important; width:max-content !important; }
  .hero-copy .lead { max-width:100% !important; }
  .hero-art { width:100% !important; aspect-ratio:16/9 !important; height:auto !important; }
}

@media (max-width:560px) {
  .header .wrap { width:calc(100% - 24px) !important; }
  .header-row { min-height:66px !important; gap:8px !important; }
  .logo { gap:8px !important; }
  .logo-mark-image { width:42px !important; height:42px !important; min-width:42px !important; min-height:42px !important; flex-basis:42px !important; }
  .logo b { font-size:12px !important; letter-spacing:-.03em !important; }
  .logo small { font-size:8px !important; letter-spacing:0 !important; }
  .hero-grid { width:calc(100% - 24px) !important; padding:42px 0 48px !important; gap:24px !important; }
  .hero-copy h1 { font-size:clamp(25px,7.6vw,34px) !important; letter-spacing:-.045em !important; line-height:1.16 !important; }
  .hero-copy h1 span { white-space:nowrap !important; }
  .hero-copy .lead { font-size:14px !important; line-height:1.9 !important; }
  .hero-buttons { flex-wrap:wrap !important; }
  .hero-art { aspect-ratio:16/9 !important; }
}


/* v26 HERO LAYOUT - authoritative final override */
@media (min-width:901px){
  .hero-grid{
    grid-template-columns:minmax(560px, .92fr) minmax(700px, 1.08fr) !important;
    gap:0 !important;
    width:min(1480px, calc(100% - 80px)) !important;
    max-width:none !important;
    min-height:670px !important;
  }
  .hero-copy{
    position:relative !important;
    z-index:3 !important;
    padding:76px 0 70px !important;
  }
  .hero-copy h1{
    font-size:clamp(54px,4.35vw,70px) !important;
    line-height:1.18 !important;
    letter-spacing:-.035em !important;
    white-space:normal !important;
    margin-right:-90px !important;
  }
  .hero-copy h1 span{
    display:block !important;
    white-space:nowrap !important;
  }
  .hero-art{
    position:relative !important;
    z-index:1 !important;
    width:calc(100% + 120px) !important;
    max-width:none !important;
    margin-left:-35px !important;
    aspect-ratio:16 / 9 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
  }
}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr !important;gap:0 !important;width:min(100% - 28px,1180px) !important}
  .hero-copy{padding:58px 0 28px !important}
  .hero-copy h1{margin-right:0 !important}
  .hero-copy h1 span{display:block !important;white-space:nowrap !important}
  .hero-art{width:100% !important;margin:0 0 34px !important;aspect-ratio:16/9 !important;height:auto !important}
}
@media (max-width:560px){
  .header-row{height:auto !important;min-height:70px !important;padding:10px 0 !important}
  .logo{gap:8px !important;min-width:0 !important}
  .logo-mark-image{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important}
  .logo span{min-width:0 !important}
  .logo b{font-size:11px !important;white-space:nowrap !important}
  .logo small{display:block !important;font-size:8px !important;white-space:nowrap !important;letter-spacing:.03em !important}
  .hero-copy{padding:48px 0 22px !important}
  .hero-copy h1{font-size:31px !important;line-height:1.22 !important;letter-spacing:-.035em !important}
  .hero-copy h1 span{white-space:nowrap !important}
  .hero-art{margin-bottom:28px !important}
}
\n\n/* v27 FINAL HERO FIX */\n@media (min-width:901px){\n  .hero-grid{\n    grid-template-columns:minmax(600px, 600px) minmax(0, 1fr) !important;\n    width:min(1480px, calc(100% - 80px)) !important;\n    max-width:none !important;\n    gap:0 !important;\n    min-height:670px !important;\n  }\n  .hero-copy{\n    padding:76px 0 70px !important;\n    z-index:5 !important;\n  }\n  .hero-copy h1{\n    font-size:clamp(50px, 3.9vw, 58px) !important;\n    line-height:1.18 !important;\n    letter-spacing:-.06em !important;\n    margin:18px 0 28px !important;\n    white-space:nowrap !important;\n  }\n  .hero-copy h1 span{\n    display:block !important;\n    width:max-content !important;\n    max-width:none !important;\n    white-space:nowrap !important;\n  }\n  .hero-art{\n    width:calc(100% + 80px) !important;\n    margin-left:-20px !important;\n    z-index:1 !important;\n    aspect-ratio:16/9 !important;\n    height:auto !important;\n    min-height:0 !important;\n    overflow:hidden !important;\n  }\n}\n@media (max-width:900px){\n  .hero-copy h1 span{\n    display:block !important;\n    width:max-content !important;\n    max-width:none !important;\n    white-space:nowrap !important;\n  }\n}\n@media (max-width:560px){\n  .logo small{\n    display:block !important;\n    font-size:8px !important;\n    letter-spacing:0 !important;\n    white-space:nowrap !important;\n  }\n  .logo b{font-size:11px !important;white-space:nowrap !important;}\n  .hero-copy h1{\n    font-size:clamp(25px, 7.7vw, 31px) !important;\n    letter-spacing:-.055em !important;\n    line-height:1.2 !important;\n  }\n}\n

/* v28 FINAL: natural hero blend + clean one-line headings */
@media (min-width:901px){
  .hero-grid{
    grid-template-columns:minmax(630px, 630px) minmax(0,1fr) !important;
    width:min(1480px,calc(100% - 80px)) !important;
    max-width:none !important;
    gap:0 !important;
    min-height:670px !important;
    align-items:center !important;
  }
  .hero-copy{
    position:relative !important;
    z-index:10 !important;
    padding:76px 0 70px !important;
    min-width:0 !important;
  }
  .hero-copy h1{
    font-size:clamp(50px,3.8vw,58px) !important;
    line-height:1.18 !important;
    letter-spacing:-.055em !important;
    margin:18px 0 28px !important;
    white-space:nowrap !important;
    max-width:none !important;
  }
  .hero-copy h1 span{
    display:block !important;
    width:max-content !important;
    max-width:none !important;
    white-space:nowrap !important;
  }
  .hero-art{
    position:relative !important;
    z-index:1 !important;
    width:calc(100% + 150px) !important;
    margin-left:-70px !important;
    aspect-ratio:16/9 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    background:transparent !important;
    border-radius:0 !important;
    -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.10) 7%,rgba(0,0,0,.45) 15%,#000 27%,#000 100%) !important;
    mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.10) 7%,rgba(0,0,0,.45) 15%,#000 27%,#000 100%) !important;
  }
  .hero-main-image{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center !important;
    display:block !important;
    animation:none !important;
  }
}

@media (max-width:900px){
  .hero-copy h1 span{
    display:block !important;
    width:max-content !important;
    max-width:none !important;
    white-space:nowrap !important;
  }
  .hero-art{
    width:100% !important;
    margin:0 0 34px !important;
    aspect-ratio:16/9 !important;
    height:auto !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }
}

@media (max-width:560px){
  .logo small{
    display:block !important;
    font-size:8px !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }
  .logo b{
    font-size:11px !important;
    white-space:nowrap !important;
  }
  .hero-copy h1{
    font-size:clamp(25px,7.7vw,31px) !important;
    letter-spacing:-.055em !important;
    line-height:1.2 !important;
  }
  .hero-copy h1 span{white-space:nowrap !important;}
}
