
html{scroll-behavior:smooth}
[id^="sec-"]{scroll-margin-top:90px}
body{margin:0;background:#FFFFFF;font-family:'Noto Sans JP',sans-serif;color:#3B3D4E;-webkit-font-smoothing:antialiased}
a{color:#354990}a:hover{color:#BA7193}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes heroFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(6px,-16px)}}
@keyframes heroDrift{0%,100%{transform:translate(0,0)}50%{transform:translate(-10px,10px)}}
@keyframes heroSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes heroPulse{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.9;transform:scale(1.12)}}
@keyframes heroRise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes flowLine{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes stepPulse{0%,100%{transform:scale(1)}12%{transform:scale(1.08)}24%{transform:scale(1)}}
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
[data-reveal].rv{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* ===== responsive ===== */
@media (max-width:1080px){
  .r-stack-lg{grid-template-columns:1fr!important;gap:40px!important}
  .r-3col{grid-template-columns:repeat(2,1fr)!important}
}
@media (max-width:820px){
  h1{white-space:normal!important}
  h1[style*="font-size: 36px"]{font-size:27px!important}
  h1[style*="font-size: 32px"]{font-size:25px!important}
  h2[style*="font-size: 42px"]{font-size:30px!important}
  h2[style*="font-size: 23px"]{font-size:19px!important}
  h2[style*="font-size: 24px"]{font-size:20px!important}
  .r-stack{grid-template-columns:1fr!important}
  .r-3col{grid-template-columns:1fr!important}
  .r-hide{display:none!important}
  .r-pad{padding:64px 24px!important}
  .nav-links{display:none!important}
  .nav-burger{display:flex!important;margin-left:auto}
  .nav-cta{display:none!important}
  [style*="border-radius: 56px"]{border-radius:0!important}
  #sec-functions{margin:72px 0 0!important;border-radius:0!important}
  div[style*="padding: 0px 24px 120px"]{padding:0 0 80px!important}
  div[style*="padding: 0px 24px 90px"]{padding:0 16px 70px!important}
  .si-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:0!important}
  .si-scroll::before{content:"← 横にスクロールできます →";display:block;position:sticky;left:0;font-size:11px;font-weight:700;letter-spacing:.08em;color:#8A90A3;text-align:center;margin-bottom:16px}
  .sec-head{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}
  .sec-head>span{margin-left:0!important}
  .news-h2 br{display:none}
  .news-h2{font-size:30px!important}
  .si-scroll .si-outer{min-width:820px}
  #site-nav.floating>div{margin:0 12px!important;padding:0 8px 0 18px!important}
  [style*="max-width: 12"],[style*="max-width: 11"],[style*="max-width: 10"],[style*="max-width: 88"]{padding-left:20px!important;padding-right:20px!important}
  .r-stack>div[style*="padding: 64px 56px"]{padding:36px 26px!important}
  .r-stack>div[style*="padding: 56px"]{padding-top:28px!important}
  div[style*="padding: 56px 60px"]{padding:32px 26px!important}
  div[style*="padding: 0px 30px 26px 82px"]{padding:0 22px 22px 22px!important}
  div[style*="padding: 64px 56px"]{padding:32px 16px!important}
  .sol2-media{order:3!important}
}
@media (max-width:640px){
  .r-3col{grid-template-columns:1fr!important}
  .news-row{flex-wrap:wrap;row-gap:8px}
  .news-row>span:last-child{flex:1 1 100%!important}
  .hero-ctas{flex-direction:column;align-items:stretch!important}
  .hero-ctas>span{text-align:center;white-space:nowrap}
  .sol-badge{white-space:nowrap;font-size:11px!important;padding:4px 12px!important}
  span[style*="padding: 18px 60px"]{white-space:nowrap;padding:16px 28px!important;font-size:13.5px!important}
}
#site-nav.floating{background:transparent!important;border-bottom-color:transparent!important;backdrop-filter:none!important;padding-top:16px}
#site-nav.floating>div{background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border:1px solid rgba(24,32,65,.08);border-radius:999px;box-shadow:0 18px 44px rgba(24,32,65,.14);height:60px!important;margin:0 auto!important;padding:0 14px 0 28px!important;max-width:1080px!important}

/* ===== site chrome (header / footer) ===== */
#site-nav{position:sticky;top:0;z-index:40;height:76px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #ECEEF3;transition:background .35s,border-color .35s}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;height:76px;display:flex;align-items:center;gap:18px;transition:all .45s cubic-bezier(.22,.61,.36,1)}
.nav-logo{flex:0 0 auto;display:flex}
.nav-logo img{height:34px;display:block}
.nav-link{font-size:13px;font-weight:500;color:#473657;text-decoration:none;white-space:nowrap}
.nav-link:hover{color:#BA7193}
.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:10px;flex:0 0 auto;background:none;border:none}
.burger-bar{width:22px;height:2px;background:#182041;display:block;border-radius:2px}
.nav-cta{display:inline-block;font-size:13.5px;font-weight:700;color:#fff;background:#182041;border-radius:999px;padding:11px 28px;letter-spacing:.04em;white-space:nowrap;flex:0 0 auto;text-decoration:none}
.nav-cta:hover{background:#473657}
.menu-link{font-size:14px;font-weight:700;color:#182041;padding:15px 4px;border-bottom:1px solid #F0F1F5;text-decoration:none;display:block}
.menu-link:hover{color:#BA7193}
.menu-cta{font-size:14px;font-weight:700;color:#fff;background:#182041;border-radius:999px;padding:13px 0;text-align:center;margin-top:16px;text-decoration:none;display:block}
.site-footer{background:#131A35}
.foot-inner{max-width:1200px;margin:0 auto;padding:64px 32px 48px}
.foot-links{display:flex;gap:28px;flex-wrap:wrap;font-size:12.5px;align-items:center}
.foot-link{color:#B7BED6;text-decoration:none}
.foot-link:hover{color:#fff}
.foot-legal{border-top:1px solid rgba(255,255,255,.1);margin-top:36px;padding-top:24px}
.foot-legal p{margin:0 0 16px;font-size:11px;color:#7A84A8;line-height:1.9}
.foot-copy{font-size:11px;color:#7A84A8}
