:root{
  /* .mbp-topbar の height と同じにすること（.mbp-topbar にもコメントあり） */
  --mbp-trail-top-offset:72px;
  /* 固定バー直下〜山の頂付近までの余白（小さいほど頂点が上に） */
  --mbp-trail-apex-gap:14px;
  --mbp-stack-sticky-top:calc(var(--mbp-trail-top-offset) - 36px);
  --mbp-stack-meta-1-nudge:clamp(20px, 2.2vh, 30px);
}

body{
margin:0;
background:#fff;
color:#000;
font-family:"Zen Kaku Gothic New", sans-serif;
overflow-x:clip;
}

html{
overflow-x:clip;
}

/* マウス追従カーソル（WARC 系：内ドット＋外リングの二層・速度差） */
.mbp-cursor{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  pointer-events:none;
  z-index:10006;
  opacity:0;
  visibility:hidden;
  overflow:visible;
}

body.mbp-cursor-active .mbp-cursor{
  opacity:1;
  visibility:visible;
}

.mbp-cursor__ring,
.mbp-cursor__dot,
.mbp-cursor__more{
  position:fixed;
  left:0;
  top:0;
  display:block;
  pointer-events:none;
  will-change:transform;
  backface-visibility:hidden;
}

.mbp-cursor__ring{
  width:44px;
  height:44px;
  margin:0;
  border:1px solid rgba(14,26,54,0.45);
  border-radius:50%;
  box-sizing:border-box;
  background:transparent;
  box-shadow:0 0 0 1px rgba(255,255,255,0.5);
  transition:width 0.35s ease, height 0.35s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.mbp-cursor__dot{
  width:10px;
  height:10px;
  margin:0;
  border-radius:50%;
  background:#0e1a36;
  box-shadow:0 0 0 1px rgba(255,255,255,0.85);
}

.mbp-cursor__more{
  width:0;
  height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.05em;
  opacity:0;
  visibility:hidden;
  transform:translate3d(0,0,0) translate(-50%, -50%) scale(0.9);
  transition:opacity 0.18s ease, visibility 0.18s ease;
}

.mbp-cursor.is-hover .mbp-cursor__ring{
  width:64px;
  height:64px;
  border-color:rgba(14,26,54,0.25);
  box-shadow:0 0 0 1px rgba(255,255,255,0.65), 0 8px 32px rgba(14,26,54,0.12);
}

.mbp-cursor.is-footer-link .mbp-cursor__ring{
  width:34px;
  height:34px;
  border-color:rgba(225,130,44,0.52);
  background:rgba(225,130,44,0.18);
  box-shadow:0 0 0 1px rgba(255,255,255,0.4);
}

.mbp-cursor.is-footer-link .mbp-cursor__dot{
  width:7px;
  height:7px;
  background:rgba(225,130,44,0.9);
}

.mbp-cursor.is-header-link .mbp-cursor__ring{
  width:34px;
  height:34px;
  border-color:rgba(225,130,44,0.52);
  background:rgba(225,130,44,0.18);
  box-shadow:0 0 0 1px rgba(255,255,255,0.4);
}

.mbp-cursor.is-header-link .mbp-cursor__dot{
  width:7px;
  height:7px;
  background:rgba(225,130,44,0.9);
}

.mbp-cursor.is-more .mbp-cursor__ring{
  width:76px;
  height:76px;
  border-color:rgba(225, 130, 44, 0.95);
  background:rgba(225, 130, 44, 0.78);
  box-shadow:0 10px 28px rgba(14,26,54,0.22);
}

.mbp-cursor.is-more .mbp-cursor__dot{
  opacity:0;
}

.mbp-cursor.is-more .mbp-cursor__more{
  opacity:1;
  visibility:visible;
}

.mbp-cursor.is-more.is-more-footer .mbp-cursor__ring{
  width:52px;
  height:52px;
}

.mbp-cursor.is-more.is-more-footer .mbp-cursor__more{
  font-size:10px;
}

.mbp-cursor.is-more-navy .mbp-cursor__ring{
  width:76px;
  height:76px;
  border-color:rgba(17, 31, 64, 0.95);
  background:rgba(17, 31, 64, 0.82);
  box-shadow:0 10px 28px rgba(14,26,54,0.24);
}

.mbp-cursor.is-more-navy .mbp-cursor__dot{
  opacity:0;
}

.mbp-cursor.is-more-navy .mbp-cursor__more{
  opacity:1;
  visibility:visible;
}

.mbp-cursor.is-press .mbp-cursor__ring{
  width:36px;
  height:36px;
}

body.mbp-cursor-active,
body.mbp-cursor-active a,
body.mbp-cursor-active button,
body.mbp-cursor-active input,
body.mbp-cursor-active textarea,
body.mbp-cursor-active select,
body.mbp-cursor-active label,
body.mbp-cursor-active summary,
body.mbp-cursor-active [role="button"]{
  cursor:none !important;
}

@media (prefers-reduced-motion: reduce){
  body.mbp-cursor-active,
  body.mbp-cursor-active a,
  body.mbp-cursor-active button{
    cursor:auto !important;
  }
}

.mbp-topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:72px; /* change :root --mbp-trail-top-offset if this changes */
  padding:10px 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111F40;
  z-index:10000;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.mbp-topbar.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.mbp-topbar__logo{
  height:100%;
  max-height:52px;
  width:auto;
  max-width:min(220px, 70vw);
  display:block;
  cursor:pointer;
  object-fit:contain;
}

.mbp-hamburger{
  position:fixed;
  top:18px;
  right:18px;
  width:56px;
  height:44px;
  padding:0;
  border:0;
  background:transparent;
  z-index:10002;
  cursor:pointer;
}

.mbp-hamburger__bar{
  position:absolute;
  left:0;
  right:0;
  margin:auto;
  height:2px;
  width:56px;
  background:#c0c0c0;
  border-radius:999px;
  transition:transform 220ms ease, opacity 180ms ease, top 220ms ease, width 220ms ease;
}

.mbp-hamburger__bar--top{ top:8px; }
.mbp-hamburger__bar--mid{ top:20px; }
.mbp-hamburger__bar--bot{ top:32px; }

.mbp-hamburger.is-open .mbp-hamburger__bar--top{
  top:20px;
  transform:rotate(45deg);
}
.mbp-hamburger.is-open .mbp-hamburger__bar--mid{
  opacity:0;
  width:0;
}
.mbp-hamburger.is-open .mbp-hamburger__bar--bot{
  top:20px;
  transform:rotate(-45deg);
}

.mbp-global-menu{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:58vh;
  z-index:10001;
  background:rgba(8, 14, 30, 0.5);
  backdrop-filter:blur(4px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity 220ms ease, visibility 220ms ease;
}

.mbp-global-menu__panel{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:#eceef1;
  color:#0e1a36;
  padding:74px 28px 24px;
  box-sizing:border-box;
  transform:translateY(-100%);
  transition:transform 260ms ease;
  display:flex;
  flex-direction:column;
  gap:0;
}

.mbp-global-menu__body{
  flex:1 1 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:26px;
}

.mbp-global-menu__left{
  flex:0 0 min(32vw, 160px);
  display:flex;
  justify-content:flex-start;
  align-items:flex-start;
  margin-left:-12px;
}

.mbp-global-menu__logo{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}

.mbp-global-menu__logo img{
  width:min(154px, 28vw);
  height:auto;
  display:block;
}

.mbp-global-menu__right{
  flex:1 1 auto;
  display:flex;
  justify-content:flex-end;
  padding-right:clamp(60px, 6.2vw, 120px);
}

.mbp-global-menu__links{
  width:min(600px, 100%);
  display:grid;
  grid-template-columns:repeat(2, minmax(130px, 1fr));
  gap:7px 34px;
  align-content:start;
}

.mbp-global-menu__social{
  margin-top:22px;
  display:flex;
  justify-content:flex-start;
  transform:translate(10px, 12px);
}

.mbp-global-menu__social-link{
  width:44px;
  height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#0e1a36;
  transition:transform 180ms ease, color 180ms ease;
}

.mbp-global-menu__social-link:hover,
.mbp-global-menu__social-link:focus-visible{
  transform:translateY(-2px);
  color:#d48f34;
  outline:none;
}

.mbp-global-menu__social-link svg{
  width:32px;
  height:32px;
  fill:currentColor;
}

.mbp-global-menu__links a{
  position:relative;
  display:inline-flex;
  align-items:flex-start;
  height:1.22em;
  overflow:hidden;
  color:#0e1a36;
  text-decoration:none;
  font-weight:500;
  letter-spacing:0.02em;
  font-size:clamp(24px, 2.25vw, 40px);
  line-height:1.2;
  padding:0;
  transition:color 180ms ease, opacity 180ms ease;
}

.mbp-global-menu__link-track{
  display:inline-flex;
  flex-direction:column;
  transform:translateY(0);
  transition:transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.mbp-global-menu__links a:hover .mbp-global-menu__link-track,
.mbp-global-menu__links a:focus-visible .mbp-global-menu__link-track{
  transform:translateY(-66.666%);
}

.mbp-global-menu__links a:nth-child(5){
  grid-column:1;
}

body.menu-open{
  overflow:hidden;
}

body.menu-open .mbp-global-menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

body.menu-open .mbp-global-menu__panel{
  transform:translateY(0);
}

@media (max-width: 900px){
  .mbp-global-menu{
    height:64vh;
  }

  .mbp-global-menu__body{
    flex-direction:column;
    gap:18px;
  }
  .mbp-global-menu__left{
    flex-basis:auto;
  }
  .mbp-global-menu__logo img{
    width:min(140px, 38vw);
  }
  .mbp-global-menu__right{
    width:100%;
    justify-content:flex-start;
  }
  .mbp-global-menu__links{
    grid-template-columns:1fr 1fr;
    gap:7px 16px;
  }
  .mbp-global-menu__links a{
    font-size:clamp(20px, 6.2vw, 30px);
  }
}

@media (max-width: 640px){
  .mbp-global-menu__body{
    position:relative;
  }

  .mbp-global-menu__right{
    width:100%;
    justify-content:flex-start;
  }

  .mbp-global-menu__links{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px 10px;
  }

  .mbp-global-menu__social{
    position:absolute;
    top:20px;
    left:calc(min(140px, 38vw) + 20px);
    margin-top:0;
    transform:none;
  }

  .mbp-global-menu__links a{
    overflow-x:visible;
    overflow-y:hidden;
    height:1.34em;
    font-size:clamp(16px, 4.8vw, 20px);
    line-height:1.24;
    letter-spacing:0;
  }
}

@media (min-width: 641px) and (max-width: 1024px){
  .mbp-global-menu__social-link svg{
    width:36px;
    height:36px;
  }

  .mbp-global-menu__links a{
    font-size:clamp(28px, 3.5vw, 38px);
  }
}

@media (min-width: 1025px){
  .mbp-global-menu__social-link svg{
    width:36px;
    height:36px;
  }

  .mbp-global-menu__left{
    margin-left:-2px;
  }
}

.mbp-page-transition{
  position:fixed;
  inset:0;
  z-index:10080;
  pointer-events:none;
}

.mbp-page-transition::before,
.mbp-page-transition::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateY(100%);
  transition-property:transform;
  transition-timing-function:cubic-bezier(.22,.61,.36,1);
}

.mbp-page-transition::before{
  background:#d48f34;
  transition-duration:620ms;
  transition-delay:0ms;
}

.mbp-page-transition::after{
  background:#ffffff;
  transition-duration:620ms;
  transition-delay:700ms;
}

body.mbp-page-leaving .mbp-page-transition::before,
body.mbp-page-leaving .mbp-page-transition::after{
  transform:translateY(0);
}

/* CONCEPT page */
.concept-page{
  min-height:100svh;
  background:#fff;
  color:#0e1a36;
  padding:clamp(86px, 11vh, 122px) clamp(20px, 4vw, 64px) clamp(56px, 8vh, 92px);
  box-sizing:border-box;
}

.concept-page__hero{
  max-width:1200px;
  margin:0 auto;
}

.concept-page__crumb{
  margin:0;
  color:#7f8796;
  letter-spacing:0.08em;
  font-size:clamp(12px, 0.98vw, 14px);
  font-weight:700;
}

.concept-page__crumb a{
  color:inherit;
  text-decoration:none;
}

.concept-page__display{
  margin:clamp(10px, 2vh, 18px) 0 0;
  font-size:clamp(42px, 7.2vw, 108px);
  line-height:1;
  letter-spacing:0.02em;
  font-weight:700;
}

.concept-page__display-text,
.business-page__display-text,
.equipment-page__display-text,
.contact-page__display-text{
  position:relative;
  display:inline-block;
  min-width:7ch;
  white-space:nowrap;
}

.concept-page__display-text.is-typing,
.business-page__display-text.is-typing,
.equipment-page__display-text.is-typing,
.contact-page__display-text.is-typing{
  border-right:2px solid currentColor;
  animation:mbpConceptCaretBlink 0.7s step-end infinite;
}

.concept-page__display-text::after,
.business-page__display-text::after,
.equipment-page__display-text::after,
.contact-page__display-text::after{
  content:attr(data-text);
  position:absolute;
  inset:0;
  color:transparent;
  background:linear-gradient(95deg,
    rgba(255,90,90,0) 0%,
    rgba(255,90,90,0.98) 12%,
    rgba(255,143,61,0.98) 24%,
    rgba(252,232,87,0.98) 36%,
    rgba(120,221,126,0.98) 48%,
    rgba(98,184,255,0.98) 60%,
    rgba(170,140,255,0.98) 72%,
    rgba(255,105,180,0.98) 84%,
    rgba(255,105,180,0) 100%);
  background-size:100% 100%;
  background-position:0 0;
  -webkit-background-clip:text;
  background-clip:text;
  opacity:0;
  clip-path:inset(0 100% 0 0);
  pointer-events:none;
  filter:saturate(1.35) brightness(1.18);
}

.concept-page__display-text.is-shining::after,
.business-page__display-text.is-shining::after,
.contact-page__display-text.is-shining::after{
  background:linear-gradient(110deg,
    rgba(255,255,255,0) 28%,
    rgba(255,255,255,0.96) 50%,
    rgba(255,255,255,0) 72%);
  background-size:220% 100%;
  clip-path:inset(0 0 0 0);
  animation:mbpConceptShine 1.35s ease-out 1;
}

.concept-page__display-text.is-prism::after{
  animation:mbpConceptPrism 1.2s cubic-bezier(0.22, 1, 0.36, 1) 1;
}

.concept-page__display-text.is-prism{
  text-shadow:
    0 0 10px rgba(255, 255, 255, 0.28),
    0 0 18px rgba(255, 159, 67, 0.42),
    0 0 30px rgba(114, 183, 255, 0.34),
    0 0 46px rgba(255, 118, 205, 0.28);
}

.concept-page__display-text.is-prism-only{
  color:transparent;
  text-shadow:none;
}

.concept-page__lead{
  max-width:1200px;
  margin:clamp(28px, 4.4vh, 56px) auto 0;
  display:grid;
  grid-template-columns:minmax(280px, 0.9fr) minmax(0, 1.1fr);
  gap:clamp(30px, 4.2vw, 68px);
  align-items:start;
}

.concept-page__lead-left{
  display:flex;
  flex-direction:column;
  gap:clamp(18px, 2.4vh, 30px);
}

.concept-page__lead-title{
  margin:0;
  font-size:clamp(28px, 2.35vw, 42px);
  line-height:1.45;
  letter-spacing:0.02em;
  font-weight:700;
}

.concept-page__lead-line{
  display:block;
}

.concept-page__text p{
  margin:0 0 clamp(18px, 2.8vh, 34px);
  font-size:clamp(16px, 1.32vw, 21px);
  line-height:1.95;
  letter-spacing:0.03em;
}

.concept-page__text p:last-child{
  margin-bottom:0;
}

.concept-page__text strong{
  color:#d48f34;
  font-weight:700;
}

.concept-page__image{
  margin:0;
  border-radius:14px;
  overflow:hidden;
}

.concept-page__image-media{
  display:block;
  width:100%;
  height:auto;
}

/* COMPANY page */
.company-page__message{
  grid-template-columns:1fr;
  align-items:start;
  gap:clamp(14px, 2vh, 28px);
}

.company-page__message-title{
  margin:0;
}

.company-page__message-title .concept-page__lead-line{
  display:inline;
}

.company-page__message-title .concept-page__lead-line + .concept-page__lead-line{
  margin-left:0.35em;
}

.company-page__about-title .concept-page__lead-line{
  display:inline;
}

.company-page__about-title .concept-page__lead-line + .concept-page__lead-line{
  margin-left:0.35em;
}

.company-page__about{
  display:block;
}

.company-page__about .concept-page__lead-left{
  margin-bottom:clamp(14px, 2.4vh, 22px);
}

.company-page__about-body{
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}

.company-page__about-list{
  margin:0;
  padding:0;
}

.company-page__about-row{
  display:grid;
  grid-template-columns:minmax(96px, 0.3fr) minmax(0, 0.7fr);
  column-gap:clamp(18px, 3vw, 36px);
  row-gap:4px;
  padding-block:clamp(10px, 1.6vh, 14px);
  border-top:1px solid rgba(0,0,0,0.12);
}

.company-page__about-row:last-child{
  border-bottom:1px solid rgba(0,0,0,0.12);
}

.company-page__about-row dt{
  margin:0;
  font-size:clamp(13px, 1.08vw, 14px);
  letter-spacing:0.12em;
  text-transform:none;
  color:#0e1a36;
  font-weight:700;
}

.company-page__about-row dd{
  margin:0;
  font-size:clamp(15px, 1.18vw, 18px);
  line-height:1.9;
}

.company-page__about-row dd a{
  color:#d48f34;
  text-underline-offset:0.18em;
}

@media (max-width: 900px){
  .company-page__about-body{
    max-width:100%;
    margin-left:0;
  }

  .company-page__about-row{
    grid-template-columns:1fr;
    row-gap:4px;
  }
}

.company-page__message-body{
  display:grid;
  grid-template-columns:minmax(380px, 1.12fr) minmax(0, 0.88fr);
  align-items:start;
  gap:clamp(16px, 2.2vw, 34px);
}

.company-page__message-main{
  display:flex;
  flex-direction:column;
  gap:0;
  order:2;
}

.company-page__message-main .concept-page__text p{
  font-size:clamp(15px, 1.18vw, 19px);
  line-height:1.9;
}

.company-page__duo{
  margin-top:clamp(8px, 1.4vh, 14px);
  order:1;
}

.company-page__sequence{
  position:relative;
  width:min(100%, 560px);
  height:clamp(260px, 31vw, 360px);
  margin-inline:auto;
  cursor:pointer;
}

.company-page__mark{
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(54px, 5.6vw, 76px);
  height:clamp(54px, 5.6vw, 76px);
  transform:translate(-50%, -50%);
  z-index:3;
}

.company-page__mark-line{
  position:relative;
  display:block;
  width:100%;
  height:2px;
  background:rgba(225,130,44,0.9);
  top:50%;
  left:0;
  margin-top:-1px;
  transform-origin:center;
}

.company-page__mark-line--a{
  transform:rotate(44deg);
}

.company-page__mark-line--b{
  position:absolute;
  transform:rotate(-44deg);
}

.company-page__frame{
  position:absolute;
  left:50%;
  top:50%;
  width:2px;
  height:2px;
  border:2px solid rgba(225,130,44,0.9);
  background:#fff;
  transform:translate(-50%, -50%);
  overflow:hidden;
  opacity:0;
  z-index:1;
  border-radius:14px;
}

.company-page__sequence-images{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
}

.company-page__frame::after{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  transform:translateX(var(--company-mask-x, 0%));
  z-index:3;
  opacity:0;
  pointer-events:none;
}

.company-page__sequence-image{
  display:block;
  position:absolute;
  top:0;
  left:50%;
  width:clamp(140px, 38%, 210px);
  height:100%;
  object-fit:cover;
  opacity:0;
  transform:translateX(-50%) scale(1.02);
  will-change:transform, opacity;
  border-radius:14px;
}

.company-page__sequence-image--left{
  object-position:62% center;
}

.company-page__sequence-image--right{
  object-position:50% 32%;
}

@media (min-width: 641px){
  .company-page__sequence{
    height:clamp(260px, 31vw, 360px);
  }

  .company-page__message-main .concept-page__text{
    min-height:clamp(260px, 31vw, 360px);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
}


@media (min-width: 1025px){
  .company-page__message-main .concept-page__text p br{
    display:none;
  }

  .company-page__message-main .concept-page__text p br.company-page__pc-keep-break{
    display:inline;
  }
}

/* BUSINESS page */
.business-page{
  min-height:100svh;
  background:#fff;
  color:#0e1a36;
  padding:clamp(86px, 11vh, 122px) clamp(20px, 4vw, 64px) clamp(56px, 8vh, 92px);
  box-sizing:border-box;
}

.business-page__hero{
  max-width:1200px;
  margin:0 auto;
}

.business-page__crumb{
  margin:0;
  color:#7f8796;
  letter-spacing:0.08em;
  font-size:clamp(12px, 0.98vw, 14px);
  font-weight:700;
}

.business-page__crumb a{
  color:inherit;
  text-decoration:none;
}

.business-page__display{
  margin:clamp(10px, 2vh, 18px) 0 0;
  font-size:clamp(42px, 7.2vw, 108px);
  line-height:1;
  letter-spacing:0.02em;
  font-weight:700;
}

.business-page__stage{
  max-width:1200px;
  margin:clamp(24px, 3.6vh, 44px) auto 0;
  min-height:clamp(500px, 70vh, 820px);
  position:relative;
}

.business-page__chooser{
  min-height:clamp(500px, 70vh, 820px);
  position:relative;
  display:grid;
  grid-template-rows:1fr 1fr;
  justify-items:center;
  align-items:center;
  row-gap:clamp(56px, 8vh, 120px);
  padding:clamp(28px, 5vh, 48px) 0;
  opacity:0;
  visibility:hidden;
  z-index:1;
  overflow:hidden;
}

.business-page__chooser-x{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.business-page__chooser-x::before,
.business-page__chooser-x::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:min(80%, 620px);
  height:2px;
  background:rgba(225,130,44,0.9);
  transform-origin:center;
  transition:transform 0.4s ease, opacity 0.25s ease, width 0.4s ease;
}

.business-page__chooser-x::before{
  transform:translate(-50%, -50%) rotate(44deg);
}

.business-page__chooser-x::after{
  transform:translate(-50%, -50%) rotate(-44deg);
}

.business-page__chooser-item{
  position:relative;
  z-index:2;
  border:0;
  background:transparent;
  color:#0e1a36;
  font-family:inherit;
  font-size:clamp(40px, 4.8vw, 72px);
  line-height:1.15;
  letter-spacing:0.02em;
  font-weight:500;
  cursor:pointer;
  padding:0 clamp(12px, 1.2vw, 20px);
  transition:transform 0.2s ease, color 0.2s ease, text-shadow 0.2s ease;
  opacity:0;
  visibility:hidden;
}

.business-page__chooser-item:first-child{
  grid-row:1;
}

.business-page__chooser-item[data-business-target="machinery"]{
  grid-row:2;
  margin-top:0;
}

.business-page__chooser-item::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  z-index:-1;
}

.business-page__chooser-item:hover,
.business-page__chooser-item:focus-visible,
.business-page__chooser-item.is-active{
  color:#111F40;
  transform:scale(1.02);
  text-shadow:0 8px 24px rgba(14,26,54,0.14);
  outline:none;
}

@media (min-width: 1025px){
  .business-page__chooser-x::before,
  .business-page__chooser-x::after{
    top:56%;
    width:min(72%, 540px);
  }
  .business-page__chooser-item[data-business-target="support"]{
    top:-0.62em;
  }
  .business-page__chooser-item[data-business-target="machinery"]{
    top:1.72em;
  }
}

@media (min-width: 1025px) and (max-height: 860px){
  .business-page__chooser{
    overflow:visible;
    row-gap:clamp(34px, 5.6vh, 74px);
    padding:clamp(16px, 2.6vh, 28px) 0;
  }

  .business-page__chooser-item{
    font-size:clamp(34px, 3.9vw, 58px);
  }

  .business-page__chooser-item[data-business-target="support"]{
    top:-0.24em;
  }

  .business-page__chooser-item[data-business-target="machinery"]{
    top:0.94em;
  }
}

.business-page__panels{
  position:absolute;
  left:50%;
  top:50%;
  width:min(92%, 860px);
  min-height:clamp(300px, 44vh, 480px);
  transform:translate(-50%, -50%);
  padding:clamp(18px, 2.6vh, 28px) clamp(18px, 2.8vw, 30px);
  box-sizing:border-box;
  pointer-events:none;
  z-index:5;
}

.business-page__panels::before{
  content:"";
  position:absolute;
  inset:0;
  background:#fff;
  border:2px solid rgba(225,130,44,0.9);
  border-radius:16px;
  transform:scale(0.22, 0.04);
  transform-origin:center;
  opacity:0;
  transition:transform 0.46s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.22s ease;
}

.business-page__panel-close{
  position:absolute;
  right:clamp(10px, 1.4vw, 14px);
  top:clamp(8px, 1.2vw, 12px);
  z-index:3;
  width:34px;
  height:34px;
  border:1px solid rgba(14,26,54,0.4);
  border-radius:50%;
  background:#fff;
  color:#0e1a36;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  display:none;
}

.business-page__panel{
  display:none;
  position:relative;
  z-index:2;
  opacity:0;
}

.business-page__panel.is-active{
  display:block;
  animation:mbpBusinessPanelIn 0.32s ease-out;
  opacity:1;
}

.business-page__stage.is-opening .business-page__panel,
.business-page__stage.is-opening .business-page__panel.is-active{
  opacity:0;
  animation:none;
}

.business-page__stage:not(.is-open) .business-page__panel,
.business-page__stage:not(.is-open) .business-page__panel.is-active{
  display:none;
  opacity:0;
}

.business-page__section-title{
  margin:0;
  font-size:clamp(28px, 2.45vw, 44px);
  line-height:1.35;
  letter-spacing:0.02em;
  font-weight:700;
}

.business-page__body{
  margin-top:clamp(14px, 2.2vh, 24px);
}

.business-page__body p{
  margin:0 0 clamp(14px, 2.6vh, 28px);
  font-size:clamp(16px, 1.24vw, 20px);
  line-height:1.95;
  letter-spacing:0.03em;
}

.business-page__body p:last-child{
  margin-bottom:0;
}

.business-page__subhead{
  margin:clamp(18px, 2.4vh, 30px) 0 clamp(8px, 1.4vh, 12px);
  font-size:clamp(20px, 1.46vw, 26px);
  line-height:1.4;
  letter-spacing:0.02em;
  font-weight:700;
}

.business-page__list{
  margin:0 0 clamp(14px, 2.6vh, 26px);
  padding:0;
  list-style:none;
}

.business-page__list li{
  margin:0 0 clamp(4px, 0.8vh, 8px);
  font-size:clamp(16px, 1.2vw, 20px);
  line-height:1.8;
  letter-spacing:0.03em;
}

.business-page__more-wrap{
  margin:clamp(18px, 2.4vh, 28px) 0 0;
}

.business-page__more-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:120px;
  height:40px;
  padding:0 18px;
  border:1px solid rgba(14,26,54,0.32);
  border-radius:999px;
  color:#0e1a36;
  text-decoration:none;
  font-size:12px;
  letter-spacing:0.14em;
  font-weight:700;
}

.business-page__list li::before{
  content:"・";
}

.business-page__services{
  display:grid;
  gap:clamp(14px, 2.2vh, 24px);
}

.business-page__service{
  border-top:1px solid rgba(14,26,54,0.14);
  padding-top:clamp(10px, 1.6vh, 16px);
}

.business-page__service-title{
  margin:0 0 clamp(6px, 1vh, 10px);
  font-size:clamp(18px, 1.35vw, 24px);
  line-height:1.45;
  font-weight:700;
}

.business-page.is-chooser-ready .business-page__chooser{
  opacity:1;
  visibility:visible;
}

.business-page.is-chooser-ready .business-page__chooser-item{
  visibility:visible;
}

.business-page__stage.is-open .business-page__chooser-x::before,
.business-page__stage.is-open .business-page__chooser-x::after{
  width:min(76%, 640px);
  opacity:0.95;
}

.business-page__stage.is-open .business-page__chooser-x::before{
  transform:translate(-50%, -50%) rotate(0deg);
}

.business-page__stage.is-open .business-page__chooser-x::after{
  transform:translate(-50%, -50%) rotate(0deg);
}

.business-page__stage.is-opening .business-page__chooser-x::before{
  animation:mbpBusinessXToBarBefore 0.46s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-opening .business-page__chooser-x::after{
  animation:mbpBusinessXToBarAfter 0.46s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-open .business-page__panels{
  pointer-events:auto;
}

.business-page__stage.is-open .business-page__panels::before{
  opacity:1;
  transform:scale(1, 1);
}

.business-page__stage.is-opening .business-page__panels::before{
  animation:mbpBusinessBoxGrow 0.78s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-closing .business-page__panel,
.business-page__stage.is-closing .business-page__panel.is-active{
  opacity:0;
  animation:none;
}

.business-page__stage.is-closing .business-page__panel-close{
  display:none;
}

.business-page__stage.is-closing .business-page__panels::before{
  animation:mbpBusinessBoxClose 0.76s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-closing .business-page__chooser-x::before{
  animation:mbpBusinessBarToXBefore 0.76s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-closing .business-page__chooser-x::after{
  animation:mbpBusinessBarToXAfter 0.76s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.business-page__stage.is-open:not(.is-opening):not(.is-closing) .business-page__panel-close{
  display:block;
}

@keyframes mbpBusinessPanelIn{
  from{
    opacity:0;
    transform:translateY(10px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes mbpBusinessXToBarBefore{
  0%{
    transform:translate(-50%, -50%) rotate(44deg);
    opacity:1;
  }
  100%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:1;
  }
}

@keyframes mbpBusinessXToBarAfter{
  0%{
    transform:translate(-50%, -50%) rotate(-44deg);
    opacity:1;
  }
  100%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:0.35;
  }
}

@keyframes mbpBusinessBoxGrow{
  0%{
    opacity:0;
    transform:scale(0.22, 0.04);
  }
  60%{
    opacity:1;
    transform:scale(1, 0.04);
  }
  100%{
    opacity:1;
    transform:scale(1, 1);
  }
}

@keyframes mbpBusinessBoxClose{
  0%{
    opacity:1;
    transform:scale(1, 1);
  }
  40%{
    opacity:1;
    transform:scale(1, 1);
  }
  78%{
    opacity:1;
    transform:scale(1, 0.04);
  }
  100%{
    opacity:0;
    transform:scale(0.22, 0.04);
  }
}

@keyframes mbpBusinessBarToXBefore{
  0%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:0.85;
  }
  78%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:0.85;
  }
  100%{
    transform:translate(-50%, -50%) rotate(44deg);
    opacity:1;
  }
}

@keyframes mbpBusinessBarToXAfter{
  0%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:0.35;
  }
  78%{
    transform:translate(-50%, -50%) rotate(0deg);
    opacity:0.65;
  }
  100%{
    transform:translate(-50%, -50%) rotate(-44deg);
    opacity:1;
  }
}

.site-footer{
  background:#111F40;
  color:#fff;
  margin-top:clamp(28px, 4.5vw, 64px);
}

.site-footer__inner{
  max-width:1200px;
  margin:0 auto;
  padding:clamp(24px, 4vh, 40px) clamp(20px, 4vw, 64px) 0;
  display:grid;
  grid-template-columns:minmax(260px, 0.44fr) minmax(0, 0.56fr);
  align-items:start;
  gap:clamp(18px, 2.8vw, 40px);
}

.site-footer__left{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}

.site-footer__nav{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(8px, 1.1vh, 12px);
}

.site-footer__nav a{
  position:relative;
  display:inline-flex;
  align-items:flex-start;
  height:1.3em;
  overflow:hidden;
  color:#fff;
  text-decoration:none;
  font-size:clamp(14px, 1.08vw, 18px);
  letter-spacing:0.08em;
  font-weight:700;
  line-height:1.3;
}

.site-footer__nav a.site-footer__nav-sub{
  margin-top:-4px;
  margin-left:1.3em;
  font-size:clamp(12px, 0.94vw, 15px);
  font-weight:600;
  letter-spacing:0.07em;
  opacity:0.88;
}

.site-footer__link-track{
  display:inline-flex;
  flex-direction:column;
  transform:translateY(0);
  transition:transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-footer__nav a:hover .site-footer__link-track,
.site-footer__nav a:focus-visible .site-footer__link-track{
  transform:translateY(-66.666%);
}

.site-footer__right{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-self:end;
  gap:clamp(10px, 1.8vh, 16px);
}

.site-footer__copy{
  max-width:1200px;
  margin:clamp(10px, 1.8vh, 18px) auto 0;
  padding:0 clamp(20px, 4vw, 64px) clamp(20px, 3.4vh, 28px);
  color:rgba(255,255,255,0.72);
  font-size:clamp(11px, 0.82vw, 12px);
  letter-spacing:0.06em;
  border-top:1px solid rgba(255,255,255,0.16);
  white-space:normal;
}

.site-footer__recaptcha-note{
  max-width:1200px;
  margin:0 auto;
  padding:0 clamp(20px, 4vw, 64px) clamp(14px, 2.2vh, 20px);
  color:rgba(255,255,255,0.58);
  font-size:clamp(10px, 0.74vw, 11px);
  line-height:1.75;
  letter-spacing:0.01em;
  text-align:center;
}

.site-footer__recaptcha-note a{
  color:rgba(255,255,255,0.72);
  text-underline-offset:0.15em;
}

.site-footer__recaptcha-note a:hover,
.site-footer__recaptcha-note a:focus-visible{
  color:#fff;
}

.site-footer__company{
  margin:0;
  color:rgba(255,255,255,0.92);
  font-size:clamp(16px, 1.26vw, 22px);
  letter-spacing:0.02em;
  font-weight:700;
  line-height:1.5;
}

.site-footer__tel{
  margin:0;
  color:rgba(255,255,255,0.86);
  font-size:clamp(14px, 1.06vw, 16px);
  letter-spacing:0.03em;
}

.site-footer__privacy{
  margin:clamp(6px, 1vh, 10px) 0 0;
}

.site-footer__social{
  margin:clamp(8px, 1.1vh, 12px) 0 0;
}

.site-footer__social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,0.82);
  text-decoration:none;
  transition:color 180ms ease, transform 180ms ease;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible{
  color:#fff;
  transform:translateY(-1px);
  outline:none;
}

.site-footer__social-link svg{
  width:30px;
  height:30px;
  fill:currentColor;
}

.site-footer__privacy a{
  display:inline-flex;
  align-items:flex-start;
  height:1.3em;
  overflow:hidden;
  color:rgba(255,255,255,0.74);
  text-decoration:none;
  font-size:clamp(10px, 0.78vw, 12px);
  letter-spacing:0.08em;
  line-height:1.3;
  cursor:pointer;
}

.site-footer__link-track--small{
  font-size:inherit;
}

.site-footer__privacy a:hover,
.site-footer__privacy a:focus-visible{
  color:#fff;
}

.site-footer__privacy a:hover .site-footer__link-track,
.site-footer__privacy a:focus-visible .site-footer__link-track{
  transform:translateY(-66.666%);
}

body.mbp-cursor-active .site-footer__privacy a{
  cursor:pointer !important;
}

body.mbp-cursor-active .site-footer__nav a{
  cursor:pointer !important;
}

body.mbp-cursor-active .site-footer__social-link{
  cursor:pointer !important;
}

body.mbp-cursor-active .mbp-global-menu__links a,
body.mbp-cursor-active .mbp-global-menu__logo,
body.mbp-cursor-active .mbp-global-menu__social-link,
body.mbp-cursor-active .mbp-topbar__logo{
  cursor:pointer !important;
}

.grecaptcha-badge{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

@keyframes mbpConceptShine{
  0%{
    background-position:-180% 0;
    opacity:0;
  }
  25%{
    opacity:1;
  }
  100%{
    background-position:180% 0;
    opacity:0;
  }
}

@keyframes mbpConceptPrism{
  0%{
    opacity:0;
    clip-path:inset(0 100% 0 0);
  }
  8%{
    opacity:1;
  }
  62%{
    opacity:1;
  }
  100%{
    opacity:0;
    clip-path:inset(0 0% 0 0);
  }
}

@keyframes mbpConceptCaretBlink{
  0%, 49%{
    border-right-color:currentColor;
  }
  50%, 100%{
    border-right-color:transparent;
  }
}


@media (max-width: 640px){
  .concept-page{
    padding:96px 16px 44px;
  }
  .concept-page__display{
    font-size:clamp(34px, 12vw, 58px);
  }
  .concept-page__lead{
    grid-template-columns:1fr;
    gap:24px;
  }
  .concept-page__lead-title{
    font-size:clamp(22px, 6.2vw, 30px);
  }
  .concept-page__text p{
    font-size:clamp(14px, 4.05vw, 18px);
    line-height:1.85;
  }
  .business-page{
    padding:96px 16px 44px;
  }
  .business-page__display{
    font-size:clamp(34px, 12vw, 58px);
  }
  .business-page__section{
    margin-top:28px;
  }
  .business-page__stage{
    min-height:clamp(360px, 60vh, 520px);
    margin-top:22px;
  }
  .business-page__chooser{
    min-height:clamp(360px, 60vh, 520px);
    row-gap:clamp(36px, 6vh, 72px);
    padding:18px 0;
  }
  .business-page__chooser-item{
    font-size:clamp(28px, 8.2vw, 44px);
    padding:0 clamp(10px, 2vw, 16px);
  }
  .business-page__chooser-x::before,
  .business-page__chooser-x::after{
    top:54%;
    width:min(84%, 460px);
  }
  .business-page__section-title{
    font-size:clamp(24px, 6.4vw, 34px);
  }
  .business-page__panels{
    width:min(94%, 680px);
    min-height:clamp(230px, 36vh, 320px);
  }
  .business-page__panel-close{
    width:32px;
    height:32px;
    font-size:18px;
  }
  .business-page__body p,
  .business-page__list li{
    font-size:clamp(14px, 4.05vw, 18px);
    line-height:1.85;
  }
  .business-page__subhead{
    font-size:clamp(18px, 5.2vw, 24px);
  }
  .site-footer__inner{
    grid-template-columns:1fr;
    justify-items:start;
    gap:16px;
    padding-bottom:0;
  }
  .site-footer__right{
    justify-self:start;
  }
  .site-footer__nav{
    justify-content:flex-start;
    gap:8px;
  }
  .site-footer__nav a{
    font-size:clamp(13px, 4.2vw, 18px);
  }
  .site-footer__copy{
    white-space:normal;
    margin-top:18px;
    padding-top:12px;
  }

  .site-footer__recaptcha-note{
    margin-top:0;
    line-height:1.7;
  }
  .site-footer__company{
    white-space:normal;
  }
}

@media (min-width: 641px) and (max-width: 1024px){
  .concept-page{
    padding:84px 20px 48px;
  }
  .business-page{
    padding:84px 20px 48px;
  }
  .business-page__stage{
    min-height:clamp(420px, 62vh, 640px);
  }
  .business-page__chooser{
    min-height:clamp(420px, 62vh, 640px);
    row-gap:clamp(44px, 7vh, 90px);
    padding:22px 0;
  }
  .business-page__chooser-item{
    font-size:clamp(34px, 5.6vw, 52px);
    padding:0 clamp(12px, 1.4vw, 18px);
  }
  .business-page__chooser-x::before,
  .business-page__chooser-x::after{
    top:55%;
    width:min(74%, 480px);
  }
  .business-page__chooser-item[data-business-target="support"]{
    top:-0.34em;
  }
  .business-page__chooser-item[data-business-target="machinery"]{
    top:1.5em;
  }
}

@media (max-width: 640px){
  .business-page__chooser-x::before,
  .business-page__chooser-x::after{
    top:53%;
    width:min(72%, 300px);
  }
  .business-page__chooser-item{
    font-size:clamp(26px, 9vw, 40px);
  }
  .business-page__chooser-item[data-business-target="machinery"]{
    top:1.12em;
  }
}

/* Bottom-right scroll cue (Hero〜下段ピン終了まで) — 回転は JS で scrollY 連動 */
.mbp-scroll-hint{
  --mbp-ring-deg:0deg;
  position:fixed;
  right:max(28px, calc(10px + env(safe-area-inset-right, 0px)));
  bottom:max(20px, env(safe-area-inset-bottom, 12px));
  z-index:10001;
  pointer-events:none;
  color:rgba(255,255,255,0.96);
  opacity:0;
  visibility:hidden;
  transition:opacity 0.35s ease, visibility 0.35s ease, color 0.25s ease;
}

body.mbp-scroll-hint-on .mbp-scroll-hint:not(.is-hidden),
.mbp-scroll-hint.mbp-scroll-hint--show:not(.is-hidden){
  opacity:1;
  visibility:visible;
}

/* 白背景エリア（Heroを過ぎた＆ネイビーホールドでないとき） */
body.mbp-scroll-hint--surface-light .mbp-scroll-hint:not(.is-hidden){
  color:rgba(14,26,54,0.9);
}

body.mbp-scroll-hint--surface-light .mbp-scroll-hint__ring-wrap .mbp-scroll-hint__ring{
  filter:drop-shadow(0 0 1px rgba(255,255,255,0.9));
}

.mbp-scroll-hint.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.mbp-scroll-hint__inner{
  position:relative;
  width:clamp(32px, 9vw, 50px);
  height:clamp(32px, 9vw, 50px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.mbp-scroll-hint__ring-wrap{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  transform-origin:50% 50%;
  will-change:transform;
  transform:rotate(var(--mbp-ring-deg));
}

.mbp-scroll-hint__ring{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,0.45));
}

/* header に ring-wrap が無い古いキャッシュ向け: リング SVG へ直接回転 */
.mbp-scroll-hint:not(:has(.mbp-scroll-hint__ring-wrap)) .mbp-scroll-hint__ring{
  transform-origin:50% 50%;
  transform:rotate(var(--mbp-ring-deg));
}

.mbp-scroll-hint__label{
  position:relative;
  z-index:1;
  font-size:clamp(6px, 2vw, 9px);
  font-weight:500;
  letter-spacing:0.08em;
  text-transform:none;
  font-family:"Zen Kaku Gothic New", system-ui, sans-serif;
  text-shadow:0 1px 6px rgba(0,0,0,0.4);
}

body.mbp-scroll-hint--surface-light .mbp-scroll-hint__label{
  text-shadow:0 0 1px rgba(255,255,255,0.85);
}

@media (prefers-reduced-motion: reduce){
  .mbp-scroll-hint__ring-wrap{
    will-change:auto;
  }
}

@media (max-width: 640px){
  .mbp-scroll-hint{
    right:max(12px, calc(6px + env(safe-area-inset-right, 0px)));
    bottom:max(10px, env(safe-area-inset-bottom, 6px));
  }

  .mbp-scroll-hint__inner{
    width:clamp(26px, 11vw, 40px);
    height:clamp(26px, 11vw, 40px);
  }

  .mbp-scroll-hint__label{
    font-size:clamp(5px, 2.8vw, 8px);
  }
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

img{
  max-width:100%;
  height:auto;
}

html.opening-lock,
body.opening-lock{
overflow:hidden;
height:100%;
}

.opening{
position:fixed;
inset:0;
background:#000;
overflow:hidden;
z-index:9999;
will-change:opacity, transform;
}

.opening-skip{
position:absolute;
bottom:20px;
right:20px;
z-index:60;
border:1px solid rgba(255,255,255,0.65);
background:rgba(0,0,0,0.25);
color:#fff;
font-family:"Zen Kaku Gothic New", sans-serif;
font-size:12px;
font-weight:700;
letter-spacing:0.12em;
line-height:1;
padding:10px 14px;
border-radius:999px;
cursor:pointer;
transition:opacity 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}

.opening-skip:hover,
.opening-skip:focus-visible{
border-color:#ffffff;
background:rgba(0,0,0,0.45);
opacity:1;
}

.logo{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,-50%);
will-change:transform;
}

.line{
position:absolute;
width:20px;
height:20px;
background:#fff;
left:50%;
top:50%;
margin-left:-10px;
margin-top:-10px;
will-change:transform;
opacity:0;
visibility:hidden;
}

.diag{
position:absolute;
width:1px;
height:1px;
background:#fff;
left:50%;
top:50%;
margin-left:-0.5px;
margin-top:-0.5px;
will-change:transform;
opacity:0;
visibility:hidden;
}

.triangle-flash{
  position:absolute;
  top:50%;
  left:50%;
  width:220px;
  height:120px;
  aspect-ratio:1 / 1;
  background:#fff;
  clip-path:polygon(50% 0%, 0% 100%, 100% 100%);
  transform:translate(-50%,-50%) scale(0);
  transform-origin:center center;
  opacity:0;
  z-index:25;
  will-change:transform, opacity;
  pointer-events:none;
}

.logo-main{
position:absolute;
top:46%;
left:50%;
transform:translate(-50%,-50%) scale(0.8);
width:clamp(160px,18vw,260px);
opacity:0;
z-index:30;
will-change:transform,opacity;
}

.opening-copy{
  position:absolute;
  left:50%;
  top:58%;
  transform:translateX(-50%);
  margin:0;
  color:#fff;
  font-size:clamp(20px, 2.2vw, 36px);
  font-weight:500;
  line-height:1.6;
  letter-spacing:0.08em;
  text-align:center;
  white-space:nowrap;
  max-width:min(92vw, 60rem);
  z-index:40;
  font-family:"Zen Kaku Gothic New", sans-serif;
}

.opening-copy-sub{
  position:absolute;
  left:50%;
  top:65%;
  transform:translateX(-50%);
  margin:0;
  color:#fff;
  font-size:clamp(20px, 2.2vw, 36px);
  font-weight:500;
  line-height:1.6;
  letter-spacing:0.08em;
  text-align:center;
  white-space:nowrap;
  max-width:min(92vw, 60rem);
  z-index:40;
  font-family:"Zen Kaku Gothic New", sans-serif;
}

@media (min-width: 641px){
  .logo-main{
    top:42%;
  }

  .opening-copy{
    top:63%;
  }

  .opening-copy-sub{
    top:71%;
  }
}

.hero{
  /* 100vh alone is often taller than the visible viewport on mobile → extra navy scroll before white */
  min-height:100svh;
  min-height:100dvh;
  background:#111F40;
  color:#fff;
  opacity:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:60px 20px 90px;
  box-sizing:border-box;
}

.hero-logo{
  width:clamp(160px,18vw,260px);
  margin:0 auto;
}

.hero-logo img{
  width:100%;
  display:block;
}

.hero-copy{
  text-align:center;
  margin-top:clamp(8px, 4vh, 20px);
  font-size:clamp(20px, 2.2vw, 36px);
  font-weight:500;
  line-height:1.6;
  letter-spacing:0.08em;
}

.hero-copy p{
  margin:0;
}

.hero-copy p + p{
  margin-top:clamp(8px,1vw,14px);
}

.home-lower{
  background:#fff;
  color:#0e1a36;
  padding:clamp(72px, 10vh, 120px) 0 0 0;
  transition:background 0.35s ease,color 0.35s ease;
  overflow-anchor:none;
}

.home-lower.is-navy-hold{
  background:#111F40;
  color:#fff;
}

.home-lower.is-navy-hold .home-lower-body p{
  color:#fff;
}

.home-lower.is-navy-hold .js-stroke-fill{
  color:#fff;
}

.home-lower.is-navy-hold .home-lower-title-svg-text{
  fill:#fff;
  stroke:none;
  stroke-width:0;
}

.home-lower-intro-block{
  width:min(1100px, 100%);
  margin:0 auto;
  padding-left:clamp(16px, 4vw, 24px);
  padding-right:clamp(0px, 1vw, 8px);
  box-sizing:border-box;
  position:relative;
  z-index:2;
  overflow:visible;
  /* Match trail column height (see .home-lower-trail); JS also sets min-height with !important. */
  min-height:clamp(720px, 105vh, 1600px) !important;
}

.home-lower-intro{
  position:relative;
  z-index:2;
}

.home-lower-intro-content{
  position:relative;
  perspective:1200px;
  transform-style:preserve-3d;
}

.home-lower-title{
  margin:0;
  font-size:clamp(34px, 5vw, 64px);
  font-weight:700;
  letter-spacing:0.04em;
  line-height:1.2;
  position:relative;
  z-index:2;
}

/*
  マークアップは footer.home-lower 直下（ScrollTrigger pin の .home-lower-intro-block の外）。
  祖先に transform があると子の position:fixed がビューポート基準にならず、横ズレ・高さ制限の原因になる。
  テキストは .home-lower-intro-block（z-index:2）が手前。
*/
.home-lower-trail{
  display:block;
  position:fixed;
  left:0;
  right:0;
  top:calc(var(--mbp-trail-top-offset) + var(--mbp-trail-apex-gap) + env(safe-area-inset-top, 0px));
  /* height:auto の SVG が縮まないよう、残りビューポート高を明示（bottom:0 だけに頼らない） */
  width:100%;
  height:calc(100vh - var(--mbp-trail-top-offset) - var(--mbp-trail-apex-gap) - env(safe-area-inset-top, 0px));
  height:calc(100dvh - var(--mbp-trail-top-offset) - var(--mbp-trail-apex-gap) - env(safe-area-inset-top, 0px));
  min-height:calc(100dvh - var(--mbp-trail-top-offset) - var(--mbp-trail-apex-gap) - env(safe-area-inset-top, 0px));
  max-width:none;
  max-height:none;
  margin:0;
  box-sizing:border-box;
  transform:none !important;
  opacity:0;
  pointer-events:none;
  z-index:1;
}

.home-lower-trail-path{
  fill:none;
  stroke:#e2bb68;
  stroke-width:0.3;
  stroke-linecap:round;
  stroke-linejoin:miter;
}

/* Mobile: intro ブロックの最小高さ。body.mbp-mobile-trail はレイアウト用クラスのみ */
@media (max-width:767px){
  .home-lower-intro-block{
    min-height:min(72dvh, 620px) !important;
    padding-bottom:min(12vh, 100px);
    box-sizing:border-box;
  }
}

body.mbp-mobile-trail .home-lower-intro-block{
  min-height:min(72dvh, 620px) !important;
  padding-bottom:min(12vh, 100px);
  box-sizing:border-box;
}

.js-stroke-fill{
  position:relative;
  color:#0e1a36;
}

.home-lower-title-svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
}

.home-lower-title-svg-text{
  font-family:"Zen Kaku Gothic New", sans-serif;
  font-size:94px;
  font-weight:700;
  letter-spacing:0.04em;
  fill:#0e1a36;
  fill-opacity:0;
  stroke:#d48f34;
  stroke-width:2.2px;
  stroke-linecap:round;
  stroke-linejoin:round;
  paint-order:stroke fill;
}


.home-lower-body{
  margin-top:clamp(28px, 4.5vh, 52px);
  display:grid;
  gap:clamp(20px, 3.2vh, 34px);
}

.home-lower-body p{
  margin:0;
  font-size:clamp(20px, 2vw, 30px);
  line-height:1.9;
  letter-spacing:0.04em;
}

/* CONCEPT / PHILOSOPHY — sticky stack (参考: 事例ブロックの重ね表示) */
.home-nav-stack{
  margin-top:clamp(56px, 8vh, 110px);
  position:relative;
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  padding-left:clamp(32px, 8vw, 48px);
  padding-right:clamp(32px, 8vw, 48px);
  padding-top:clamp(18px, 3vh, 34px);
  padding-bottom:clamp(20px, 4vh, 56px);
  box-sizing:border-box;
}

.home-stack-panel{
  position:relative;
  min-height:auto;
  height:auto;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  box-sizing:border-box;
  padding:clamp(14px, 2.6vh, 28px) 0 clamp(20px, 4vh, 44px);
  background:#fff;
}

.home-stack-panel + .home-stack-panel{
  border-top:none;
  margin-top:clamp(140px, 20vh, 300px);
}

.home-stack-panel:nth-child(2){
  z-index:20;
  padding-top:0;
  margin-top:clamp(180px, 24vh, 360px);
  background:#fff;
  min-height:auto;
}

.home-stack-panel.is-pinned{
  z-index:85;
}

.home-stack-panel:nth-child(2) .home-stack-card{
  padding-top:0;
  position:relative;
  top:auto;
  z-index:auto;
  background:#fff;
}

.home-stack-panel:first-child{
  position:relative;
  top:auto;
  z-index:10;
  height:auto;
  min-height:auto;
  background:#fff;
  padding-top:0;
  overflow:visible;
}

.home-stack-panel:first-child .home-stack-card{
  position:relative;
  top:auto;
  min-height:100%;
  z-index:20;
  background:#fff;
  padding-top:0;
}

.home-stack-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:clamp(12px, 2vh, 24px);
  width:100%;
  max-width:100%;
  text-decoration:none;
  color:#0e1a36;
  border:none;
  border-radius:0;
  padding:clamp(16px, 3vw, 40px) 0;
  background:transparent;
  backdrop-filter:none;
  overflow:visible;
}

.home-stack-link-part{
  display:block;
  color:inherit;
  text-decoration:none;
}

.home-stack-meta-line{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-start;
  gap:0.35em 0.6em;
  width:100%;
  position:relative;
  top:auto;
  z-index:50;
  background:#fff;
  border-top:2px solid rgba(212, 143, 52, 0.9);
  padding-top:clamp(8px, 1.2vh, 16px);
  padding-bottom:clamp(14px, 2.1vh, 26px);
  margin:0;
  box-sizing:border-box;
}


.home-stack-panel:first-child .home-stack-meta-line{
  position:relative;
  top:auto;
  z-index:50;
  background:#fff;
  isolation:isolate;
}

.home-stack-panel:first-child .home-stack-meta-line::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:100%;
  height:clamp(18px, 2.2vh, 30px);
  background:#fff;
  pointer-events:none;
  z-index:-1;
}

.home-stack-panel:nth-child(2) .home-stack-meta-line{
  position:relative;
  top:auto;
  z-index:50;
}

.home-stack-panel:nth-child(3){
  z-index:50;
  margin-top:clamp(270px, 35vh, 540px);
  padding-top:0;
  padding-bottom:clamp(40px, 7.2vh, 88px);
  min-height:auto;
  background:#fff;
}

.home-nav-stack.is-pin3-active .home-stack-panel:nth-child(2){
  z-index:95;
}

.home-nav-stack.is-pin3-active .home-stack-panel:nth-child(3){
  z-index:80;
}

/* 03 ピン中: 「03 / EQUIPMENT SALES / 建機流通」→ 区切り線 → レーン（メタと建機ブロックの間） */
.home-stack-panel.home-stack-panel--contact.is-pinned .home-stack-layout--business{
  border-top:none;
  padding-top:0;
  margin-top:0;
}

.home-stack-panel.home-stack-panel--contact.is-pinned .home-stack-meta-line{
  background:#fff;
}

@media (max-width: 1024px){
  .home-stack-panel:nth-child(3){
    padding-bottom:clamp(180px, 26vh, 360px);
  }

  .home-stack-panel:nth-child(3) .home-stack-card{
    padding-bottom:clamp(120px, 18vh, 240px);
  }
}

.home-stack-panel:nth-child(3) .home-stack-card{
  padding-top:0;
  padding-bottom:clamp(20px, 3.6vh, 40px);
}

@media (max-width: 1024px){
  :root{
    --mbp-stack-sticky-top:calc(var(--mbp-trail-top-offset) - 8px);
    --mbp-stack-meta-1-nudge:clamp(6px, 0.9vh, 12px);
  }

  .home-stack-kenki-draw{
    min-height:clamp(430px, 62vw, 760px);
  }

  .home-stack-kenki-unit svg{
    width:66%;
    height:auto;
  }

  .home-stack-panel{
    min-height:auto;
  }

  .home-footer-hero-media img{
    object-position:72% center;
  }

  .home-footer-hero-copy{
    transform:translateY(-30%);
  }

}

@media (min-width: 641px) and (max-width: 1024px){
  .home-stack-kenki-draw{
    min-height:clamp(448px, 61vw, 740px);
  }

  .home-stack-kenki-unit svg{
    width:78%;
    height:auto;
  }
}

.home-stack-num{
  flex-shrink:0;
  font-size:clamp(20px, 2.8vw, 30px);
  font-weight:700;
  line-height:1;
  letter-spacing:0.18em;
  color:#5c6578;
  user-select:none;
}

.home-stack-head{
  display:flex;
  flex-wrap:nowrap;
  align-items:baseline;
  gap:0 0.6em;
  margin:0;
  font-weight:700;
  color:#0e1a36;
  line-height:1.05;
  flex:0 1 auto;
  min-width:0;
  white-space:nowrap;
}

.home-stack-label{
  font-size:clamp(24px, 5.6vw, 78px);
  letter-spacing:0.06em;
}

.home-stack-label-ja{
  font-size:clamp(15px, 3.2vw, 40px);
  letter-spacing:0.12em;
  font-weight:700;
  color:#7f8796;
}

.home-stack-label-sep{
  letter-spacing:0;
  font-size:clamp(16px, 3.2vw, 45px);
  opacity:0.35;
  line-height:1;
}

.home-stack-title{
  margin:0;
  font-size:clamp(18px, 2.15vw, 30px);
  line-height:1.55;
  letter-spacing:0.03em;
  font-weight:600;
}

.home-stack-concept-body{
  margin-top:clamp(12px, 2vh, 22px);
}

.home-stack-contact-body{
  margin-top:clamp(12px, 2vh, 22px);
}

.home-stack-layout{
  display:flex;
  align-items:flex-start;
  gap:clamp(18px, 3vw, 32px);
  margin-top:clamp(14px, 2.4vh, 26px);
}

.home-stack-image{
  flex:0 0 40%;
  margin:0;
  max-width:40%;
  min-width:0;
  box-sizing:border-box;
  overflow:hidden;
  border-radius:8px;
}

.home-stack-image img{
  display:block;
  width:100%;
  height:auto;
  border-radius:8px;
  object-fit:cover;
}

.home-stack-kenki-draw{
  /* パディング内子要素の 100vw をビューポート左端に揃える（50%+translateX(-50%) はズレて overflow-x:clip で右が欠ける） */
  width:100vw;
  max-width:none;
  position:relative;
  left:auto;
  right:auto;
  margin-left:calc(50% - 50vw);
  transform:none;
  overflow:hidden;
  border:none;
  border-radius:0;
  background:#111f40;
}

@media (min-width: 1025px){
  .home-stack-kenki-draw{
    min-height:clamp(330px, 42vw, 560px);
    /* 隊列の左右端がはみ出してもクリップしない（overflow:hidden はモバイルの横漏れ対策向き） */
    overflow:visible;
  }

  .home-stack-layout--business{
    overflow:visible;
  }
}

.home-stack-kenki-unit{
  position:absolute;
  top:0;
  left:0;
  width:auto;
  transform:none;
  will-change:transform, opacity;
  opacity:0;
  z-index:1;
}

.home-stack-kenki-draw svg{
  width:auto;
  max-width:none;
  height:auto;
  display:block;
}

.home-stack-kenki-draw svg path,
.home-stack-kenki-draw svg polygon,
.home-stack-kenki-draw svg polyline,
.home-stack-kenki-draw svg line,
.home-stack-kenki-draw svg circle,
.home-stack-kenki-draw svg ellipse,
.home-stack-kenki-draw svg rect{
  fill:none !important;
  stroke:#ffffff !important;
  stroke-width:2.4 !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* 03 建機: レーンのみ（詳細リンクは C.svg 内 a.home-stack-kenki-c-link） */
.home-stack-layout--business{
  display:block;
  position:relative;
}

.home-stack-image--business{
  width:100%;
  max-width:none;
  margin:0;
  overflow:visible;
  border-radius:0;
  position:relative;
  z-index:1;
}

.home-stack-kenki-c-link{
  display:block;
  width:100%;
  text-decoration:none;
  color:inherit;
  cursor:pointer;
}

.home-stack-kenki-c-link:focus-visible{
  outline:2px solid rgba(226, 187, 104, 0.95);
  outline-offset:3px;
  border-radius:4px;
}

/* c-me.svg: オレンジ台と箱内コピー（旧 .home-stack-text の白字相当）。レーン共通の fill:none / stroke 上書きを打ち消す */
.home-stack-kenki-draw .home-stack-kenki-c-link svg rect.mbp-kenki-c-panel{
  fill:#cf8d3f !important;
  stroke:none !important;
}

.home-stack-kenki-draw .home-stack-kenki-c-link svg path.mbp-kenki-c-copy--fill{
  fill:#ffffff !important;
  stroke:none !important;
  stroke-width:0 !important;
}

.home-stack-kenki-draw .home-stack-kenki-c-link svg .mbp-kenki-c-copy--lines{
  fill:none !important;
  stroke:#ffffff !important;
  stroke-width:1.85 !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.home-stack-image img.mbp-stack-reveal-ready{
  opacity:0;
  transform:translate3d(-220px, 140px, 0) scale(1.45) rotate(-12deg);
  filter:blur(12px);
  transition:opacity .9s ease, transform 1.35s cubic-bezier(.22,.61,.36,1), filter .9s ease;
  will-change:opacity, transform, filter;
}

.home-stack-image img.mbp-stack-reveal-ready.mbp-stack-reveal-in{
  opacity:1;
  transform:translate3d(0, 0, 0) scale(1);
  filter:blur(0);
}

.home-stack-text{
  flex:1 1 auto;
}

.home-stack-philosophy p{
  margin:0;
  font-size:clamp(18px, 2vw, 30px);
  line-height:1.75;
  letter-spacing:0.04em;
  color:inherit;
}

.home-stack-concept-body p{
  margin:0;
  font-size:clamp(14px, 1.6vw, 20px);
  line-height:1.75;
  letter-spacing:0.04em;
  color:inherit;
  font-weight:500;
}

.home-stack-concept-body p:first-child{
  font-size:clamp(17px, 2.15vw, 26px);
}

.home-stack-concept-body p:nth-child(2){
  font-size:clamp(16px, 2.0vw, 24px);
}

.home-stack-concept-body p:last-child{
  font-size:clamp(16px, 2.0vw, 24px);
  font-weight:600;
}

.home-stack-contact-body p{
  margin:0;
  font-size:clamp(16px, 1.9vw, 24px);
  line-height:1.75;
  letter-spacing:0.04em;
  color:inherit;
  font-weight:500;
}

.home-stack-panel--contact .home-stack-contact-body p:first-child{
  font-size:clamp(18px, 2.2vw, 28px);
  line-height:1.7;
}

.home-stack-panel--contact .home-stack-title{
  font-size:clamp(20px, 2.45vw, 34px);
}

.home-stack-philosophy p + p{
  margin-top:clamp(14px, 2vh, 22px);
}

.home-stack-concept-body p + p{
  margin-top:clamp(10px, 1.6vh, 16px);
}

.home-stack-contact-body p + p{
  margin-top:clamp(10px, 1.6vh, 16px);
}

.home-stack-philosophy strong{
  color:#0b1224;
  font-weight:700;
}

.home-stack-concept-body strong{
  color:inherit;
  font-weight:500;
}

.home-stack-contact-body strong{
  color:inherit;
  font-weight:500;
}

.home-stack-arrow{
  position:absolute;
  right:clamp(18px, 2.5vw, 28px);
  bottom:clamp(18px, 2.5vw, 28px);
  z-index:12;
  font-size:clamp(22px, 2.2vw, 36px);
  line-height:1;
  transition:transform 220ms ease;
}

.home-stack-card:hover .home-stack-arrow{
  transform:translateX(6px);
}

.home-site-footer{
  margin-top:0;
  padding:clamp(20px, 3.8vh, 42px) 0 clamp(16px, 3vh, 28px);
  border-top:1px solid rgba(14,26,54,0.16);
}

.home-footer-hero{
  margin-top:0;
  margin-bottom:0;
  position:relative;
  width:100vw;
  left:50%;
  transform:translateX(-50%);
  border-radius:0;
  overflow:hidden;
  min-height:100vh;
  min-height:100svh;
}

.home-footer-hero-media{
  margin:0;
  position:absolute;
  inset:0;
}

.home-footer-hero-nav{
  position:absolute;
  top:clamp(12px, 2.2vh, 22px);
  left:clamp(14px, 2.4vw, 24px);
  right:clamp(14px, 2.4vw, 24px);
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

/* EQUIPMENT page */
.equipment-page{
  min-height:100svh;
  background:#111F40;
  color:#f4f6fb;
  padding:clamp(86px, 11vh, 122px) clamp(20px, 4vw, 64px) clamp(56px, 8vh, 92px);
  box-sizing:border-box;
}

.equipment-page__hero{
  max-width:1200px;
  margin:0 auto;
}

.equipment-page__crumb{
  margin:0;
  color:rgba(244,246,251,0.6);
  letter-spacing:0.08em;
  font-size:clamp(12px, 0.98vw, 14px);
  font-weight:700;
}

.equipment-page__crumb a{
  color:inherit;
  text-decoration:none;
}

.concept-page__crumb a:hover,
.concept-page__crumb a:focus-visible,
.business-page__crumb a:hover,
.business-page__crumb a:focus-visible,
.equipment-page__crumb a:hover,
.equipment-page__crumb a:focus-visible,
.contact-page__crumb a:hover,
.contact-page__crumb a:focus-visible,
.privacy-page .concept-page__crumb a:hover,
.privacy-page .concept-page__crumb a:focus-visible{
  color:#d48f34;
}

.equipment-page__display{
  margin:clamp(10px, 2vh, 18px) 0 0;
}

.equipment-page__display-text{
  font-size:clamp(36px, 4.4vw, 54px);
  letter-spacing:0.16em;
  font-weight:700;
}

.equipment-page__lead{
  margin-top:clamp(28px, 4vh, 40px);
  max-width:720px;
}

.equipment-page__lead-title{
  margin:0 0 clamp(12px, 2vh, 18px);
  font-size:clamp(24px, 2.1vw, 32px);
  letter-spacing:0.04em;
}

.equipment-page__lead-text{
  margin:0 0 clamp(10px, 1.6vh, 14px);
  font-size:clamp(15px, 1.18vw, 18px);
  line-height:1.9;
}

.equipment-page__lead-text strong{
  color:#ffbb6d;
  font-weight:700;
}

.equipment-page__network{
  margin-top:clamp(22px, 3.6vh, 32px);
  width:min(100%, 860px);
  position:relative;
  aspect-ratio:1 / 1;
  margin-inline:auto;
  overflow:visible;
}

.equipment-page__flow-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  overflow:visible;
}

.equipment-page__flow-line{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.equipment-page__flow-line--main{
  stroke:rgba(212, 143, 52, 0.98);
  stroke-width:1.55;
  stroke-dasharray:10 9;
  animation:equipmentFlowDash 1.8s linear infinite;
}

.equipment-page__flow-line--sub{
  stroke:rgba(255, 255, 255, 0.38);
  stroke-width:0.95;
  stroke-dasharray:5 12;
  animation:equipmentFlowDash 2.6s linear infinite reverse;
}

.equipment-page__flow-mover-svg{
  opacity:1;
  filter:brightness(0) invert(1) drop-shadow(0 8px 16px rgba(0, 0, 0, 0.38));
}

.equipment-page__flow-mover-svg--inline{
  filter:drop-shadow(0 8px 16px rgba(0, 0, 0, 0.38));
}

.equipment-page__flow-mover-svg--inline path,
.equipment-page__flow-mover-svg--inline polygon,
.equipment-page__flow-mover-svg--inline polyline,
.equipment-page__flow-mover-svg--inline line,
.equipment-page__flow-mover-svg--inline circle,
.equipment-page__flow-mover-svg--inline ellipse,
.equipment-page__flow-mover-svg--inline rect{
  fill:none;
  stroke:#ffffff;
}

.equipment-page__orbit-content{
  position:absolute;
  left:50%;
  top:50%;
  /* 中央の円（viewBox 上 直径≒75%）より狭くし、長い行がオレンジ円をはみ出さないようにする */
  width:min(68%, 520px);
  transform:translate(-50%, -50%);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:0 clamp(6px, 1.2vw, 12px);
  box-sizing:border-box;
}

.equipment-page__orbit-line{
  margin:0;
  color:rgba(244,246,251,0.96);
  font-size:clamp(12px, 1vw, 16px);
  line-height:1.6;
  white-space:nowrap;
  width:fit-content;
  max-width:100%;
}

@media (min-width: 641px){
  .equipment-page__orbit-line{
    font-size:clamp(17px, 1.42vw, 24px);
    line-height:1.68;
  }
}

@media (min-width: 641px) and (max-width: 1024px){
  .equipment-page__display{
    max-width:100%;
  }

  .equipment-page__display-text{
    font-size:clamp(40px, 5.2vw, 56px);
    letter-spacing:0.1em;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .equipment-page__lead-title{
    font-size:clamp(26px, 2.6vw, 34px);
    overflow-wrap:break-word;
  }

  .equipment-page__lead-text{
    font-size:clamp(16px, 1.45vw, 19px);
    overflow-wrap:break-word;
  }

  .equipment-page__section-title{
    font-size:clamp(22px, 1.95vw, 26px);
    overflow-wrap:break-word;
  }

  .equipment-page__section-intro,
  .equipment-page__types li{
    font-size:clamp(16px, 1.35vw, 18px);
    overflow-wrap:break-word;
  }

  .equipment-page__service{
    min-width:0;
  }

  .equipment-page__service-title{
    font-size:clamp(17px, 1.45vw, 20px);
    overflow-wrap:break-word;
  }

  .equipment-page__service-text{
    font-size:clamp(15px, 1.2vw, 17px);
    overflow-wrap:break-word;
  }

  .equipment-page__orbit-content{
    width:min(64%, 24rem);
    max-width:min(64%, 420px);
    padding:clamp(8px, 1.5vw, 14px) clamp(8px, 2vw, 18px);
    box-sizing:border-box;
  }

  .equipment-page__orbit-line{
    font-size:clamp(17px, 2.15vw, 26px);
    line-height:1.68;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:normal;
    width:100%;
    max-width:100% !important;
    box-sizing:border-box;
  }
}

@media (min-width: 1025px){
  .equipment-page__orbit-content{
    width:min(66%, 480px);
    padding:0 clamp(8px, 1vw, 14px);
  }

  .equipment-page__orbit-line{
    white-space:normal;
    overflow-wrap:break-word;
    width:100%;
    max-width:100% !important;
  }
}

.equipment-page__orbit-line--1{ max-width:56%; }
.equipment-page__orbit-line--2{ max-width:72%; }
.equipment-page__orbit-line--3{ max-width:80%; }
.equipment-page__orbit-line--4{ max-width:98%; }
.equipment-page__orbit-line--5{ max-width:62%; }
.equipment-page__orbit-line--6{ max-width:86%; }
.equipment-page__orbit-line--7{ max-width:74%; }
.equipment-page__orbit-line--8{ max-width:58%; }
.equipment-page__orbit-line--9{ max-width:42%; }

@keyframes equipmentFlowDash{
  from{ stroke-dashoffset:0; }
  to{ stroke-dashoffset:-40; }
}

.equipment-page__section{
  max-width:1200px;
  margin:clamp(40px, 6vh, 64px) auto 0;
}

.equipment-page__section-title{
  margin:0 0 clamp(10px, 1.6vh, 16px);
  font-size:clamp(20px, 1.7vw, 24px);
  letter-spacing:0.12em;
}

#equipment-types-title{
  color:rgba(255,150,48,0.98);
}

.equipment-page__section-intro{
  margin:0 0 clamp(12px, 2vh, 18px);
  max-width:720px;
  font-size:clamp(15px, 1.1vw, 18px);
  line-height:1.8;
  color:rgba(244,246,251,0.92);
}

.equipment-page__types{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:clamp(8px, 1.2vw, 12px) clamp(20px, 2.8vw, 32px);
}

.equipment-page__types li{
  position:relative;
  padding-left:18px;
  font-size:clamp(15px, 1.1vw, 18px);
}

.equipment-page__types li::before{
  content:"";
  position:absolute;
  left:4px;
  top:0.7em;
  width:7px;
  height:1px;
  background:#f4f6fb;
}

.equipment-page__note{
  margin:clamp(10px, 1.6vh, 14px) 0 0;
  font-size:clamp(13px, 0.98vw, 15px);
  color:rgba(244,246,251,0.66);
}

.equipment-page__services{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:clamp(18px, 2vw, 26px);
  margin-top:clamp(18px, 2.6vh, 26px);
}

.equipment-page__section--services{
  border-top:2px solid rgba(244,246,251,0.34);
  padding-top:clamp(20px, 2.8vh, 30px);
}

.equipment-page__section--services .equipment-page__section-title{
  color:rgba(255,150,48,0.98);
}

.equipment-page__service{
  padding:clamp(14px, 2vh, 18px) clamp(14px, 2vw, 20px);
  border-radius:14px;
  border:1px solid rgba(255,150,48,0.92);
  background:rgba(255,255,255,0.04);
}

.equipment-page__service-title{
  margin:0 0 clamp(8px, 1.2vh, 12px);
  font-size:clamp(16px, 1.3vw, 18px);
  color:rgba(244,246,251,0.98);
}

.equipment-page__service-text{
  margin:0;
  font-size:clamp(14px, 1.02vw, 16px);
  line-height:1.9;
}

@media (max-width: 900px){
  .equipment-page{
    padding:clamp(70px, 11vh, 90px) 20px clamp(48px, 8vh, 72px);
  }

  .equipment-page__services{
    grid-template-columns:1fr;
  }

  .equipment-page__network{
    margin-top:14px;
    width:min(100%, 620px);
  }
}

/* スマホのみ: オービット文を小さく＋折り返し（max-width:900px だとタブレット641〜900まで 11px になってしまうため分離） */
@media (max-width: 640px){
  .equipment-page__display{
    max-width:100%;
  }

  .equipment-page__display-text{
    display:block;
    min-width:0;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    font-size:clamp(28px, 10.2vw, 44px);
    letter-spacing:0.06em;
    line-height:1.08;
  }

  .equipment-page__orbit-content{
    width:min(80%, 420px);
    padding:12px;
    border-radius:14px;
  }

  .equipment-page__orbit-line{
    font-size:11px;
    white-space:normal;
    line-height:1.5;
    max-width:100% !important;
  }
}

/* 狭い端末: 親の左右パディング内だけだと円が小さく中央テキストがはみ出す → ビューポート幅に近い正方形に拡大 */
@media (max-width: 520px){
  .equipment-page__hero{
    position:relative;
    overflow:visible;
  }

  .equipment-page__network{
    margin-top:clamp(10px, 2.2vh, 18px);
    width:min(100vw - 16px, 860px);
    position:relative;
    left:50%;
    transform:translateX(-50%);
    max-width:none;
  }

  .equipment-page__orbit-content{
    width:min(74%, 19.5rem);
    padding:8px 6px;
    box-sizing:border-box;
  }

  .equipment-page__orbit-line{
    font-size:clamp(9px, 2.75vmin, 12px);
    line-height:1.42;
    white-space:normal;
    max-width:100% !important;
  }
}

.home-footer-hero-nav a{
  color:rgba(255,255,255,0.94);
  text-decoration:none;
  font-size:clamp(10px, 0.95vw, 12px);
  letter-spacing:0.08em;
  font-weight:500;
  transition:opacity 160ms ease;
}

.home-footer-hero-nav a:hover{
  opacity:0.72;
}

.home-footer-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(0.96) contrast(1.04);
}

.home-footer-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    0deg,
    rgba(8, 18, 44, 0.56) 0%,
    rgba(8, 18, 44, 0.24) 52%,
    rgba(8, 18, 44, 0.1) 100%
  );
}

.home-footer-hero-copy{
  position:absolute;
  inset:0;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:100vh;
  min-height:100svh;
  padding:clamp(24px, 4.4vh, 48px) clamp(10px, 2vw, 18px) clamp(22px, 4.2vh, 40px) clamp(72px, 10vw, 170px);
  box-sizing:border-box;
  transform:translateY(-16%);
}

.home-footer-hero-copy p{
  margin:0;
  color:#fff;
  font-size:clamp(27px, 3.2vw, 38px);
  font-weight:500;
  font-family:"Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif;
  letter-spacing:0.04em;
  line-height:1.75;
  writing-mode:horizontal-tb;
  text-orientation:initial;
  text-shadow:0 4px 14px rgba(9, 16, 36, 0.28);
}

.home-footer-hero-logo{
  display:block;
  width:clamp(84px, 10.5vw, 160px);
  height:auto;
  margin-top:clamp(18px, 3.2vh, 34px);
  margin-left:clamp(114px, 12.9vw, 218px);
  filter:drop-shadow(0 6px 18px rgba(9, 16, 36, 0.28));
}

.home-footer-hero-copyright{
  position:absolute;
  right:clamp(18px, 2.8vw, 34px);
  bottom:clamp(14px, 2.2vh, 24px);
  z-index:1;
  margin:0;
  color:rgba(255,255,255,0.9);
  font-size:clamp(11px, 1vw, 12px);
  letter-spacing:0.08em;
  text-transform:none;
}

.home-kenki-reset{
  margin-top:clamp(80px, 12vh, 160px);
  background:#f3f6ff;
  border-top:1px solid rgba(14,26,54,0.08);
  border-bottom:1px solid rgba(14,26,54,0.08);
}

.home-kenki-reset-inner{
  width:min(1200px, 100%);
  margin:0 auto;
  padding:clamp(44px, 8vh, 96px) clamp(24px, 6vw, 56px);
  box-sizing:border-box;
}

.home-kenki-kicker{
  margin:0;
  font-size:clamp(12px, 1.2vw, 14px);
  letter-spacing:0.16em;
  font-weight:700;
  color:rgba(14,26,54,0.46);
}

.home-kenki-title{
  margin:clamp(12px, 1.8vh, 20px) 0 0;
  font-size:clamp(40px, 6vw, 84px);
  line-height:1.08;
  letter-spacing:0.08em;
  color:#0e1a36;
}

.mbp-kenki-char{
  display:inline-block;
  will-change:transform, opacity;
}

.home-kenki-draw-wrap{
  margin-top:clamp(18px, 2.8vh, 34px);
}

.home-kenki-draw{
  display:block;
  width:min(920px, 100%);
  height:auto;
}

.home-kenki-draw path{
  fill:none;
  stroke:#0e1a36;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.home-kenki-card{
  margin-top:clamp(22px, 3vh, 40px);
  max-width:min(900px, 100%);
  background:#fff;
  border:1px solid rgba(14,26,54,0.14);
  box-shadow:0 18px 42px rgba(9, 23, 58, 0.08);
  padding:clamp(22px, 3.2vw, 40px);
  box-sizing:border-box;
}

.home-kenki-card p{
  margin:0;
  font-size:clamp(16px, 1.7vw, 24px);
  line-height:1.8;
  letter-spacing:0.04em;
  color:#0e1a36;
}

.home-kenki-card p + p{
  margin-top:clamp(10px, 1.6vh, 18px);
}

.home-contact-band{
  margin-top:clamp(56px, 9vh, 120px);
  background:#e9ad58;
}

.home-contact-band-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(16px, 3vw, 32px);
  width:min(1280px, 100%);
  margin:0 auto;
  padding:clamp(28px, 5vh, 56px) clamp(20px, 4vw, 44px);
  color:#fff;
  text-decoration:none;
  box-sizing:border-box;
}

.home-contact-band-left{
  min-width:0;
}

.home-contact-band-title{
  margin:0;
  font-size:clamp(44px, 5.8vw, 84px);
  line-height:1;
  letter-spacing:0.04em;
  font-weight:500;
  font-family:"Zen Kaku Gothic New", sans-serif;
}

.home-contact-band-sub{
  margin:clamp(8px, 1.2vh, 14px) 0 0;
  font-size:clamp(13px, 1.15vw, 15px);
  letter-spacing:0.04em;
  opacity:0.92;
  font-family:"Zen Kaku Gothic New", sans-serif;
}

.home-contact-band-right{
  display:flex;
  align-items:center;
  gap:clamp(16px, 2.8vw, 28px);
}

.home-contact-band-mail{
  margin:0;
  font-size:clamp(14px, 1.25vw, 18px);
  letter-spacing:0.03em;
  font-weight:600;
  white-space:nowrap;
  font-family:"Zen Kaku Gothic New", sans-serif;
}

.home-contact-band-arrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:clamp(34px, 4vw, 54px);
  height:clamp(34px, 4vw, 54px);
  border:1px solid rgba(255,255,255,0.7);
  border-radius:50%;
  font-size:clamp(18px, 2.1vw, 28px);
  line-height:1;
}

.home-site-footer p{
  margin:0;
  font-size:clamp(12px, 1.4vw, 14px);
  color:rgba(14,26,54,0.72);
  letter-spacing:0.06em;
}

.home-lower.is-navy-hold .home-stack-panel{
  background:#111F40;
}

.home-lower.is-navy-hold .home-stack-meta-line{
  background:#111F40;
}

.home-lower.is-navy-hold .home-stack-card{
  color:#fff;
  background:transparent;
}

.home-lower.is-navy-hold .home-stack-num{
  color:rgba(255,255,255,0.14);
}

.home-lower.is-navy-hold .home-stack-head{
  color:#0e1a36;
}

.home-lower.is-navy-hold .home-stack-label{
  color:#0e1a36;
}

.home-lower.is-navy-hold .home-stack-label-ja{
  color:#7f8796;
}

.home-lower.is-navy-hold .home-stack-title{
  color:rgba(255,255,255,0.88);
  font-weight:600;
}

.home-lower.is-navy-hold .home-stack-philosophy p,
.home-lower.is-navy-hold .home-stack-concept-body p{
  color:rgba(255,255,255,0.88);
}

.home-lower.is-navy-hold .home-stack-contact-body p{
  color:rgba(255,255,255,0.88);
}

.home-lower.is-navy-hold .home-stack-philosophy strong{
  color:#fff;
}

.home-lower.is-navy-hold .home-stack-concept-body strong{
  color:rgba(255,255,255,0.88);
}

.home-lower.is-navy-hold .home-stack-contact-body strong{
  color:rgba(255,255,255,0.88);
}

@media (min-width: 1025px){
  .hero{
    justify-content:center;
    padding:40px 20px;
  }

  .hero-logo{
    margin:0 auto;
  }

  .hero-copy{
    margin-top:16px;
  }
}

@media (max-width: 900px){
  .logo-main{
    width:clamp(200px, 42vw, 300px) !important;
  }

  .opening-copy,
  .opening-copy-sub{
    font-size:clamp(16px, 3.6vw, 22px) !important;
    line-height:1.65;
    letter-spacing:0.04em;
  }

  .hero{
    padding:56px 18px 72px;
  }

  .hero-logo{
    width:clamp(200px, 42vw, 300px) !important;
  }

  .hero-copy{
    margin-top:clamp(12px, 3vh, 22px);
    font-size:clamp(16px, 3.6vw, 22px) !important;
    letter-spacing:0.04em;
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-layout{
    display:grid;
    grid-template-columns:minmax(120px, 28%) minmax(0, 1fr);
    align-items:start;
    gap:clamp(10px, 1.8vw, 16px);
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-image{
    flex:0 0 auto;
    width:100%;
    max-width:100%;
    margin:0;
  }

  /* 03 建機ブロック: 上記は 01/02 用。ビジネス figure を狭めると 100vw レーンの calc(50%-50vw) 基準が崩れ右が欠ける */
  .home-stack-image.home-stack-image--business{
    flex:0 0 auto;
    width:100%;
    max-width:none;
  }

  .home-footer-hero-copy{
    transform:translateY(-30%);
  }
}

@media (max-width: 640px){
  /* Keep one line per copy (SplitText + balance caused bad wraps & overlap) */
  .opening-copy,
  .opening-copy-sub{
    white-space:nowrap;
    letter-spacing:0.04em;
    padding:0 clamp(10px, 4vw, 18px);
    max-width:100%;
    box-sizing:border-box;
  }

  .logo-main{
    top:43%;
    width:clamp(160px, 58vw, 260px) !important;
  }

  .opening-copy{
    top:60%;
  }

  .opening-copy-sub{
    top:69%;
  }

  .opening-copy,
  .opening-copy-sub{
    font-size:clamp(11px, 3.5vw, 17px) !important;
    line-height:1.5;
    letter-spacing:0.04em;
  }

  .hero{
    padding:48px 16px 64px !important;
  }

  .hero-logo{
    width:clamp(160px, 58vw, 260px) !important;
  }

  .hero-copy{
    margin-top:clamp(14px, 3vh, 22px) !important;
    font-size:clamp(14px, 4.1vw, 18px) !important;
    letter-spacing:0.04em;
  }

  .hero-copy p{
    white-space:nowrap;
    padding:0 clamp(10px, 4vw, 18px);
    box-sizing:border-box;
    font-size:clamp(11px, 3.5vw, 17px) !important;
  }

  .home-lower{
    padding:56px 0 0 0;
  }

  .home-lower-title{
    letter-spacing:0.02em;
  }

  .home-lower-body p{
    font-size:clamp(17px, 5vw, 22px);
    line-height:1.85;
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-layout{
    display:grid;
    grid-template-columns:minmax(86px, 24%) minmax(0, 1fr);
    align-items:start;
    gap:10px;
    margin-top:10px;
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-image{
    flex:0 0 auto;
    width:100%;
    max-width:100%;
    align-self:start;
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-image img{
    width:100%;
    max-width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
  }

  .home-stack-image.home-stack-image--business{
    width:100%;
    max-width:none;
    align-self:stretch;
  }

  .home-stack-kenki-draw{
    min-height:clamp(320px, 72vw, 540px);
  }

  .home-stack-kenki-unit svg{
    width:38%;
    height:auto;
  }

  /* 建機レーン: 要素の non-scaling-stroke で縮小時も線が太く見えるため、スマホはスケールに追従させる */
  .home-stack-kenki-draw svg path,
  .home-stack-kenki-draw svg polygon,
  .home-stack-kenki-draw svg polyline,
  .home-stack-kenki-draw svg line,
  .home-stack-kenki-draw svg circle,
  .home-stack-kenki-draw svg ellipse,
  .home-stack-kenki-draw svg rect{
    vector-effect:none !important;
  }

  .home-stack-kenki-draw .home-stack-kenki-c-link svg .mbp-kenki-c-copy--lines{
    vector-effect:none !important;
  }

  .home-footer-hero{
    margin-top:0;
    min-height:100vh;
    min-height:100svh;
  }

  .home-footer-hero-nav{
    top:10px;
    left:12px;
    right:12px;
    gap:8px;
  }

  .home-footer-hero-nav a{
    font-size:10px;
    letter-spacing:0.05em;
  }

  .home-footer-hero-media img{
    object-position:68% center;
  }

  .home-footer-hero-copy{
    min-height:100vh;
    min-height:100svh;
    padding:clamp(16px, 3.2vh, 24px) 8px clamp(16px, 3.2vh, 26px) 44px;
    transform:translateY(-24%);
  }

  .home-footer-hero-copy p{
    font-size:clamp(16px, 4.7vw, 24px);
    font-weight:500;
  }

  .home-footer-hero-logo{
    width:clamp(60px, 18vw, 95px);
    margin-top:14px;
    margin-left:clamp(88px, 27vw, 150px);
    margin-right:auto;
  }

  .home-footer-hero-copyright{
    right:12px;
    bottom:10px;
    font-size:10px;
  }

  .home-footer-hero-media img{
    object-position:68% center;
  }

  .home-kenki-reset{
    margin-top:clamp(52px, 9vh, 92px);
  }

  .home-kenki-reset-inner{
    padding:clamp(30px, 6vh, 54px) 16px;
  }

  .home-kenki-title{
    font-size:clamp(30px, 10vw, 44px);
  }

  .home-contact-band-link{
    padding:clamp(24px, 4.8vh, 40px) 16px;
  }

  .home-contact-band-title{
    font-size:clamp(34px, 8.6vw, 56px);
  }

  .home-contact-band-sub{
    font-size:12px;
  }

  .home-kenki-draw path{
    stroke-width:3;
  }

  .home-stack-label{
    font-size:clamp(22px, 7.8vw, 50px);
  }

  .home-stack-label-ja{
    font-size:clamp(14px, 4.9vw, 28px);
  }

  :root{
    --mbp-stack-sticky-top:calc(var(--mbp-trail-top-offset) + 2px);
    --mbp-stack-meta-1-nudge:clamp(3px, 0.4vh, 8px);
  }

  .home-stack-meta-line{
    gap:0.24em 0.5em;
    min-height:44px;
    padding-top:6px;
    padding-bottom:8px;
    padding-left:clamp(4px, 1.2vw, 8px);
    align-items:center;
  }

  .home-stack-head{
    flex-wrap:wrap;
    gap:0 0.5em;
    row-gap:0.1em;
    white-space:normal;
  }

  .home-stack-label{
    display:block;
    width:100%;
    font-size:clamp(20px, 9.8vw, 38px);
  }

  .home-stack-label-ja{
    display:block;
    width:100%;
    font-size:clamp(13px, 5.8vw, 22px);
    color:#7f8796;
  }

  .home-stack-label-sep{
    display:none;
  }

  .home-stack-title{
    font-size:clamp(16px, 4.4vw, 22px);
  }

  .home-stack-philosophy p{
    font-size:clamp(14px, 3.8vw, 18px);
  }

  .home-stack-concept-body p{
    font-size:clamp(13px, 3.55vw, 16px);
  }

  .home-stack-concept-body p:first-child{
    font-size:clamp(16px, 4.45vw, 20px);
  }

  .home-stack-concept-body p:nth-child(2){
    font-size:clamp(15px, 4.2vw, 19px);
  }

  .home-stack-concept-body p:last-child{
    font-size:clamp(15px, 4.2vw, 19px);
  }

  .home-stack-contact-body p{
    font-size:clamp(14px, 3.9vw, 18px);
  }

  .home-stack-panel--contact .home-stack-contact-body p:first-child{
    font-size:clamp(16px, 4.3vw, 20px);
  }
}

/* Touch devices: do not upsize type (viewport + vw already correct); keep layout centered. */
@media (hover: none) and (pointer: coarse){
  .logo-main{
    width:clamp(160px, 58vw, 280px) !important;
  }

  .opening-copy,
  .opening-copy-sub{
    font-size:clamp(11px, 3.5vw, 17px) !important;
    line-height:1.5 !important;
    white-space:nowrap !important;
  }

  .hero-copy p{
    white-space:nowrap !important;
    font-size:clamp(11px, 3.5vw, 17px) !important;
  }

  .hero{
    justify-content:center !important;
    padding:48px 16px 64px !important;
  }

  .hero-logo{
    width:clamp(160px, 58vw, 280px) !important;
    max-width:min(92vw, 360px) !important;
  }

  .hero-copy{
    margin-top:16px !important;
    font-size:clamp(14px, 4.1vw, 18px) !important;
    line-height:1.65 !important;
  }
}

/* Keep tablet footer text position from being overridden by later base rule */
@media (min-width: 641px) and (max-width: 1024px){
  .opening-copy,
  .opening-copy-sub{
    font-size:clamp(28px, 4.7vw, 40px) !important;
    line-height:1.5 !important;
  }

  .opening-copy{
    top:62%;
  }

  .opening-copy-sub{
    top:73%;
  }

  .home-lower-body p{
    font-size:clamp(30px, 3vw, 45px);
    line-height:1.85;
  }

  .hero-copy{
    font-size:clamp(28px, 4.7vw, 40px) !important;
    line-height:1.5 !important;
  }

  .hero-copy p{
    font-size:clamp(28px, 4.7vw, 40px) !important;
  }

  .hero-copy p + p{
    margin-top:clamp(24px, 2.8vw, 34px);
  }

  .home-footer-hero-logo{
    margin-left:clamp(180px, 20vw, 300px);
  }

  .home-stack-title{
    font-size:clamp(20px, 2.35vw, 32px);
  }

  .home-stack-panel--contact .home-stack-title{
    font-size:clamp(20px, 2.45vw, 34px);
  }

  .home-stack-philosophy p{
    font-size:clamp(19px, 2.2vw, 32px);
  }

  .home-stack-concept-body p{
    font-size:clamp(15px, 1.85vw, 22px);
  }

  .home-stack-concept-body p:first-child{
    font-size:clamp(18px, 2.3vw, 28px);
  }

  .home-stack-concept-body p:nth-child(2),
  .home-stack-concept-body p:last-child{
    font-size:clamp(17px, 2.15vw, 26px);
  }

  .home-stack-contact-body p{
    font-size:clamp(17px, 2.05vw, 26px);
  }

  .home-stack-panel--contact .home-stack-contact-body p:first-child{
    font-size:clamp(19px, 2.35vw, 30px);
  }

  .home-footer-hero-nav a{
    font-size:clamp(11px, 1vw, 13px);
  }

  .home-footer-hero-copyright{
    font-size:clamp(11px, 0.95vw, 13px);
  }

  .home-footer-hero-copy{
    transform:translateY(-26%) !important;
    padding-left:clamp(84px, 11vw, 190px) !important;
  }
}

/* Phone landscape (low height): prioritize readability over dramatic sizing/nowrap. */
@media (max-width: 900px) and (orientation: landscape) and (max-height: 520px){
  .logo-main{
    top:36% !important;
    width:clamp(120px, 22vw, 180px) !important;
  }

  .opening-copy{
    top:62% !important;
  }

  .opening-copy-sub{
    top:74% !important;
  }

  .opening-copy,
  .opening-copy-sub{
    white-space:normal !important;
    font-size:clamp(12px, 1.8vw, 16px) !important;
    line-height:1.35 !important;
    letter-spacing:0.02em !important;
    max-width:min(92vw, 760px) !important;
  }

  .hero{
    padding:20px 16px 24px !important;
    justify-content:flex-start !important;
  }

  .hero-logo{
    width:clamp(120px, 22vw, 180px) !important;
    max-width:none !important;
  }

  .hero-copy{
    margin-top:8px !important;
    font-size:clamp(12px, 1.8vw, 16px) !important;
    line-height:1.35 !important;
  }

  .hero-copy p{
    white-space:normal !important;
    padding:0 !important;
    font-size:clamp(12px, 1.8vw, 16px) !important;
  }

  .hero-copy p + p{
    margin-top:8px !important;
  }

  .home-lower{
    padding-top:28px !important;
  }

  .home-lower-body p{
    font-size:clamp(13px, 1.9vw, 17px) !important;
    line-height:1.55 !important;
  }
}

/* Tablet portrait: 01/02 are clearer in vertical flow (image -> text). */
@media (min-width: 641px) and (max-width: 1024px) and (orientation: portrait){
  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-layout{
    display:grid;
    grid-template-columns:minmax(126px, 26%) minmax(0, 1fr);
    align-items:start;
    gap:clamp(10px, 1.8vw, 18px);
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-image{
    width:100%;
    max-width:100%;
    align-self:start;
  }

  .home-stack-panel:not(.home-stack-panel--contact) .home-stack-image img{
    aspect-ratio:4 / 3;
    object-fit:cover;
  }

  .home-stack-meta-line{
    min-height:52px;
    padding-top:7px;
    padding-bottom:9px;
    align-items:center;
  }
}

@media (max-width: 900px){
  .company-page__message{
    gap:clamp(10px, 2vh, 16px);
  }

  .company-page__message-title .concept-page__lead-line{
    display:inline;
  }

  .company-page__message-body{
    grid-template-columns:1fr;
    gap:clamp(12px, 2.4vh, 18px);
  }

  .company-page__message-main{
    gap:14px;
    order:2;
  }

  .company-page__duo{
    order:1;
  }

  .company-page__sequence{
    width:min(100%, 420px);
    height:clamp(220px, 56vw, 320px);
  }

  .company-page__mark{
    width:36px;
    height:36px;
  }
}

/* CONTACT page */
.contact-page{
  min-height:100svh;
  background:linear-gradient(180deg, #ffffff 0%, #f8f9fc 100%);
  color:#0e1a36;
  padding:clamp(86px, 11vh, 122px) clamp(20px, 4vw, 64px) clamp(56px, 8vh, 92px);
  box-sizing:border-box;
}

.contact-page__hero,
.contact-page__form{
  width:min(920px, 100%);
  margin:0 auto;
}

.contact-page__crumb{
  margin:0;
  color:#7f8796;
  letter-spacing:0.08em;
  font-size:clamp(12px, 0.98vw, 14px);
  font-weight:700;
}

.contact-page__crumb a{
  color:inherit;
  text-decoration:none;
}

.contact-page__display{
  margin:clamp(10px, 2vh, 18px) 0 0;
  font-size:clamp(42px, 7.2vw, 108px);
  line-height:1;
  letter-spacing:0.04em;
  font-weight:700;
}

.contact-page__lead{
  margin:clamp(16px, 2.6vh, 24px) 0 0;
  font-size:clamp(15px, 1.16vw, 18px);
  line-height:1.8;
  color:#4b556f;
}

.contact-page__form{
  position:relative;
  overflow:hidden;
  margin-top:clamp(30px, 5vh, 52px);
  padding:clamp(26px, 3.8vh, 38px) clamp(16px, 2.8vw, 34px);
  border:1px solid rgba(17, 31, 64, 0.13);
  border-radius:18px;
  background:rgba(255, 255, 255, 0.92);
  box-shadow:0 16px 42px rgba(14, 26, 54, 0.07);
}

.contact-page__form::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg, #d48f34 0%, #e9b263 45%, #d48f34 100%);
}

.contact-page__form-title{
  margin:0 0 clamp(18px, 2.4vh, 28px);
  font-size:clamp(22px, 1.85vw, 30px);
  line-height:1.4;
  letter-spacing:0.04em;
  font-weight:700;
}

.contact-page .wpcf7 form{
  display:grid;
  gap:clamp(16px, 2.2vh, 20px);
}

.contact-page .wpcf7 label{
  display:block;
  margin:0;
  font-size:clamp(13px, 0.98vw, 15px);
  line-height:1.5;
  font-weight:700;
  letter-spacing:0.04em;
  color:#1c2a4d;
}

.contact-page .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea){
  width:100%;
  margin-top:8px;
  padding:13px 14px;
  border:1px solid rgba(17, 31, 64, 0.2);
  border-radius:12px;
  background:#fff;
  color:#0e1a36;
  font:inherit;
  line-height:1.6;
  transition:border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.contact-page .wpcf7 textarea{
  min-height:190px;
  resize:vertical;
}

.contact-page .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea):focus{
  outline:none;
  border-color:rgba(212, 143, 52, 0.8);
  box-shadow:0 0 0 3px rgba(212, 143, 52, 0.14);
  background-color:#fffcf8;
}

.contact-page .wpcf7 .wpcf7-acceptance .wpcf7-list-item{
  margin:0;
}

.contact-page .wpcf7 .wpcf7-acceptance label{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-weight:500;
  letter-spacing:0.01em;
}

.contact-page .wpcf7 .wpcf7-acceptance .mbp-privacy-consent-text a{
  color:#d48f34;
  text-decoration:underline;
  text-underline-offset:0.15em;
}

.contact-page .wpcf7 input[type="checkbox"]{
  margin-top:0.28em;
}

.contact-page .wpcf7 .wpcf7-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:220px;
  height:50px;
  margin-top:8px;
  padding:0 28px;
  border:1px solid rgba(17, 31, 64, 0.15);
  border-radius:999px;
  background:linear-gradient(135deg, #15264a 0%, #111f40 70%);
  color:#f8f8fa;
  font-size:13px;
  letter-spacing:0.12em;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(14, 26, 54, 0.2);
  transition:transform 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease;
}


.contact-page .wpcf7 .wpcf7-submit:hover{
  opacity:0.96;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(14, 26, 54, 0.24);
}

.contact-page .wpcf7 .wpcf7-not-valid-tip{
  margin-top:6px;
  font-size:13px;
}

.contact-page .wpcf7 .wpcf7-response-output{
  margin:10px 0 0;
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
}

/* PRIVACY POLICY page */
.privacy-page__body{
  display:block;
  margin-top:clamp(24px, 3.6vh, 42px);
}

.privacy-page__content{
  width:min(920px, 100%);
  margin:0 auto;
  padding:clamp(24px, 3.8vh, 40px) clamp(16px, 2.4vw, 30px);
  border:1px solid rgba(17, 31, 64, 0.12);
  border-radius:14px;
  background:#fff;
}

.privacy-page__content > *:first-child{
  margin-top:0;
}

.privacy-page__content > *:last-child{
  margin-bottom:0;
}

.privacy-page__content h2,
.privacy-page__content h3{
  margin:clamp(22px, 3vh, 34px) 0 clamp(8px, 1.2vh, 12px);
  line-height:1.5;
  letter-spacing:0.02em;
  color:#111f40;
}

.privacy-page__content h2{
  font-size:clamp(22px, 1.75vw, 28px);
}

.privacy-page__content h3{
  font-size:clamp(18px, 1.35vw, 22px);
}

.privacy-page__content p,
.privacy-page__content li{
  font-size:clamp(15px, 1.12vw, 18px);
  line-height:1.95;
  letter-spacing:0.02em;
  color:#1a2746;
}

.privacy-page__content ul,
.privacy-page__content ol{
  margin:0 0 clamp(14px, 2vh, 20px);
  padding-left:1.4em;
}

.privacy-page__content a{
  color:#d48f34;
  text-underline-offset:0.16em;
}

@media (max-width: 900px){
  .privacy-page__content{
    padding:18px 14px 22px;
    border-radius:12px;
  }
}

@media (max-width: 900px){
  .contact-page{
    padding:96px 16px 44px;
  }

  .contact-page__display{
    font-size:clamp(34px, 12vw, 58px);
  }

  .contact-page__form{
    padding:20px 14px 22px;
    border-radius:14px;
  }

  .contact-page .wpcf7 .wpcf7-submit{
    width:100%;
  }
}

/* Contact submit should use native hand cursor on hover */
body.mbp-cursor-active .contact-page .wpcf7 .wpcf7-submit{
  cursor:pointer !important;
}