/* Top-only FV motion and footer-adjacent company profile. */
.hero-experience { position:absolute; inset:0; z-index:3; pointer-events:none; overflow:hidden; }
.hero-experience-glow { position:absolute; inset:-18%; opacity:.62; background:radial-gradient(circle at var(--hero-focus-x,79%) var(--hero-focus-y,26%),rgba(114,193,246,.22),transparent 22%),linear-gradient(112deg,transparent 18%,rgba(255,255,255,.10) 45%,transparent 67%); mix-blend-mode:screen; }
.hero-experience-label { position:absolute; top:8.5%; left:max(42px,calc((100% - 1360px)/2 + 42px)); display:flex; align-items:center; gap:12px; margin:0; color:rgba(229,243,255,.92); font:700 11px/1 Roboto,Arial,sans-serif; letter-spacing:.18em; text-shadow:0 1px 10px rgba(3,23,43,.7); }
.hero-experience-label span { display:block; width:38px; height:2px; background:#86c8f5; }
.hero-scroll-cue { position:absolute; right:max(34px,calc((100% - 1360px)/2 + 24px)); bottom:42px; display:flex; align-items:center; gap:10px; color:#fff; font:700 10px/1 Roboto,Arial,sans-serif; letter-spacing:.15em; text-decoration:none; pointer-events:auto; text-shadow:0 1px 8px rgba(3,23,43,.8); }
.hero-scroll-cue i { display:block; width:46px; height:1px; background:rgba(255,255,255,.75); transform-origin:left center; }
.hero-scroll-cue b { font:600 12px/1.4 "Noto Sans JP",sans-serif; letter-spacing:.04em; }
.hero-scroll-cue:focus-visible { outline:2px solid #fff; outline-offset:6px; }
.hero .hero-ctas .btn-gold { box-shadow:0 10px 28px rgba(209,83,11,.24); }
.hero .hero-ctas .btn-gold:hover { transform:translateY(-2px); box-shadow:0 14px 32px rgba(209,83,11,.35); }
@media (prefers-reduced-motion:no-preference) {
  .hero-experience-glow { animation:hero-experience-glow 12s ease-in-out infinite alternate; }
  html.js .hero.go .hero-experience-label { animation:hero-experience-enter .72s .18s both; }
  html.js .hero.go .hero-scroll-cue { animation:hero-experience-enter .72s .48s both; }
  html.js .hero.go .hero-scroll-cue i { animation:hero-experience-line 2.4s 1s ease-in-out infinite; }
  html.js .hero.go .hero-ctas .btn-gold { animation:hero-experience-pulse 3.2s 2.4s ease-in-out infinite; }
}
@keyframes hero-experience-glow { from { transform:translate3d(-3%,-2%,0) rotate(-2deg); } to { transform:translate3d(4%,3%,0) rotate(2deg); } }
@keyframes hero-experience-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes hero-experience-line { 0%,100% { transform:scaleX(.55); opacity:.55; } 50% { transform:scaleX(1); opacity:1; } }
@keyframes hero-experience-pulse { 0%,100% { box-shadow:0 10px 28px rgba(209,83,11,.24); } 50% { box-shadow:0 12px 34px rgba(237,113,27,.48); } }

.home-service-entry { padding:30px 0 34px; background:linear-gradient(90deg,#f5f9fc 0%,#fff 50%,#f5f9fc 100%); border-bottom:1px solid #e1eaf2; }
.home-service-entry .service-picker { margin:0; }
.home-service-entry .service-picker h2::before { content:"SERVICE SELECT"; display:block; margin-bottom:7px; color:#0b5aa6; font:700 11px/1 Roboto,Arial,sans-serif; letter-spacing:.17em; }
.home-service-entry .service-picker > p { margin:0 0 15px; color:#53697d; font-size:14px; line-height:1.75; }
.home-service-entry .service-picker a { box-shadow:0 4px 13px rgba(22,62,94,.05); transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.home-service-entry .service-picker a:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(22,62,94,.11); }

.home-company-section { position:relative; overflow:hidden; padding:104px 0 94px; background:#eef6fc; }
.home-company-section::before { content:""; position:absolute; top:0; left:0; width:min(42%,620px); height:5px; background:#0b5aa6; }
.home-company-section::after { content:"SAMURAI"; position:absolute; right:-.08em; bottom:-.18em; color:rgba(11,90,166,.045); font:900 clamp(72px,13vw,202px)/1 Roboto,Arial,sans-serif; letter-spacing:-.08em; pointer-events:none; }
.home-company-wrap { position:relative; z-index:1; }
.home-company-heading { max-width:740px; padding-left:26px; border-left:5px solid #0b5aa6; margin-bottom:44px; }
.company-profile-label { margin:0 0 13px; color:#0b5aa6; font:700 14px/1 Roboto,Arial,sans-serif; letter-spacing:.25em; }
.home-company-heading h2 { margin:0; color:#142d46; font-size:clamp(28px,3.1vw,46px); line-height:1.38; letter-spacing:.025em; }
.home-company-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); gap:clamp(34px,5.5vw,82px); align-items:start; }
.home-company-story { padding:10px 0; }
.home-company-story p { margin:0 0 22px; color:#314b62; font-size:17px; line-height:2; }
.home-company-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.home-company-actions a { display:flex; flex:1 1 220px; flex-direction:column; justify-content:center; min-height:72px; padding:14px 19px; border-radius:4px; text-decoration:none; transition:transform .2s ease,box-shadow .2s ease; }
.home-company-actions a:hover { transform:translateY(-2px); box-shadow:0 10px 22px rgba(20,45,70,.16); }
.home-company-phone { color:#fff; background:#183b60; }
.home-company-mail { color:#fff; background:#ed620d; }
.home-company-actions a { font-size:16px; font-weight:800; line-height:1.45; }
.home-company-actions span { margin-top:2px; font-size:12px; font-weight:500; opacity:.88; }
.home-company-facts { margin:0; border:1px solid #c8d9e8; background:#fff; box-shadow:0 13px 30px rgba(42,73,102,.06); }
.home-company-facts > div { display:grid; grid-template-columns:minmax(125px,.75fr) minmax(0,1.25fr); border-bottom:1px solid #c8d9e8; }
.home-company-facts > div:last-child { border-bottom:0; }
.home-company-facts dt { display:flex; align-items:center; padding:18px 21px; color:#0b4f91; background:#dbeaf7; font-size:15px; font-weight:800; line-height:1.6; }
.home-company-facts dd { padding:18px 23px; margin:0; color:#233b51; font-size:15px; line-height:1.8; overflow-wrap:anywhere; }
.home-company-facts dd a { color:#233b51; text-decoration:underline; text-decoration-color:#93b9d8; text-underline-offset:4px; }
.home-company-facts small { display:block; margin-top:3px; color:#557087; font-size:12px; line-height:1.55; }
.home-company-more { margin:31px 0 0; text-align:right; }
.home-company-more a { color:#0b5aa6; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.home-company-section a:focus-visible { outline:2px solid #0b5aa6; outline-offset:4px; }
@media (prefers-reduced-motion:no-preference) { html.js .home-company-section.motion-pending { opacity:0; transform:translateY(28px); } html.js .home-company-section.motion-pending.is-inview { opacity:1; transform:none; transition:opacity .65s ease,transform .65s cubic-bezier(.22,.8,.28,1); } }
@media (max-width:760px) {
  .hero-experience-label { top:26px; left:24px; font-size:9px; letter-spacing:.12em; }
  .hero-experience-label span { width:25px; }
  .hero-scroll-cue { right:18px; bottom:21px; gap:7px; font-size:9px; }
  .hero-scroll-cue i { width:26px; }
  .hero-scroll-cue b { display:none; }
  .home-service-entry { padding:25px 0 28px; }
  .home-company-section { padding:72px 0 66px; }
  .home-company-heading { padding-left:18px; border-left-width:4px; margin-bottom:29px; }
  .company-profile-label { font-size:12px; }
  .home-company-heading h2 { font-size:28px; }
  .home-company-grid { grid-template-columns:1fr; gap:28px; }
  .home-company-story { padding:0; }
  .home-company-story p { font-size:15px; line-height:1.9; margin-bottom:17px; }
  .home-company-actions { margin-top:24px; }
  .home-company-facts > div { grid-template-columns:105px minmax(0,1fr); }
  .home-company-facts dt { padding:14px 12px; font-size:13px; }
  .home-company-facts dd { padding:14px 15px; font-size:13px; }
  .home-company-more { text-align:left; margin-top:24px; }
}
@media (max-width:380px) { .hero-experience-label { display:none; } .home-company-actions a { flex-basis:100%; } }
@media (prefers-reduced-motion:reduce) { .hero-experience-glow,.hero .hero-ctas .btn-gold { animation:none!important; } .home-company-section { opacity:1!important; transform:none!important; } }
