
*{box-sizing:border-box}
html,body{width:100%;max-width:100%;overflow-x:clip}
body{margin:0;background:#fff;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#111318;text-decoration:none}a:hover{color:#6B3DE8}
@keyframes textRise{from{opacity:0;transform:translateY(38px);filter:blur(14px)}60%{opacity:1}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes drift{0%{transform:scale(1.06) translate3d(0,0,0)}25%{transform:scale(1.12) translate3d(-2.5%,-1.5%,0)}50%{transform:scale(1.14) translate3d(-1%,-3%,0)}75%{transform:scale(1.09) translate3d(1.5%,-1%,0)}100%{transform:scale(1.06) translate3d(0,0,0)}}
@keyframes clipRight{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes clipUp{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes railGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lineGrowX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes revUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes revLeft{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
@keyframes revRight{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes revMask{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes revScale{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes revClipDown{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes revLine{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes revEmph{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes revFaded{from{opacity:0;transform:translateY(18px)}to{opacity:.16;transform:none}}
[data-reveal].is-in{animation:revUp 1s cubic-bezier(.22,1,.36,1) both}
[data-reveal="left"].is-in{animation:revLeft 1.25s cubic-bezier(.22,1,.36,1) both}
[data-reveal="right"].is-in{animation:revRight 1.25s cubic-bezier(.22,1,.36,1) both}
[data-reveal="mask"].is-in{animation:revMask 1.35s cubic-bezier(.22,1,.36,1) both}
[data-reveal="scale"].is-in{animation:revScale 1.05s cubic-bezier(.22,1,.36,1) both}
[data-reveal="clip"].is-in{animation:revClipDown 1.1s cubic-bezier(.22,1,.36,1) both}
[data-reveal="line"].is-in{animation:revLine 1.2s cubic-bezier(.22,1,.36,1) both;transform-origin:left}
[data-reveal="emph"].is-in{animation:revEmph 1.15s cubic-bezier(.22,1,.36,1) both}
[data-reveal="faded"].is-in{animation:revFaded 1.05s cubic-bezier(.22,1,.36,1) both}
#siteHeader a,#siteHeader span{white-space:nowrap}
[data-nav-toggle]{display:none}
@media (max-width:1180px){[data-nav-desktop]{display:none!important}[data-nav-toggle]{display:inline-flex!important}}
@media (max-width:1024px){
#fvB{height:auto!important;min-height:0!important;padding-top:84px}
#fvBPhoto{position:relative!important;inset:auto!important;width:100%!important;height:clamp(300px,44vw,440px)!important;order:-1}
#fvBCopy{width:100%!important;max-width:100%!important;padding:clamp(48px,7vw,72px) clamp(20px,3.5vw,56px) clamp(56px,8vw,88px)!important}
#fvBWrap,#fvBStack,#fvBCopy{height:auto!important}
#fvBWrap{grid-template-columns:minmax(0,1fr)!important}
#fvBStack{display:flex!important;flex-direction:column!important}
#fvBRail,#fvBWedge{display:none!important}
#fvBImg{object-position:78% 40%!important}
}
@media (max-width:640px){
@keyframes revUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes revLeft{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
@keyframes revRight{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@keyframes revMask{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
[data-reveal].is-in{animation-duration:.9s}
[data-reveal="left"].is-in,[data-reveal="right"].is-in{animation-duration:1.05s}
[data-reveal="mask"].is-in{animation-duration:1.15s}
[data-reveal="scale"].is-in,[data-reveal="clip"].is-in,[data-reveal="emph"].is-in,[data-reveal="faded"].is-in{animation-duration:.95s}
[data-reveal="line"].is-in{animation-duration:1s}
#siteHeader{height:76px!important}
#fvB{padding-top:76px}
#issueGrid{grid-template-columns:minmax(0,1fr)!important}
#programGrid{grid-template-columns:minmax(0,1fr)!important}
#formatGrid{grid-template-columns:minmax(0,1fr)!important}
#diffGrid{grid-template-columns:minmax(0,1fr)!important}
#baGrid{grid-template-columns:minmax(0,1fr)!important}
#baArrow{transform:rotate(90deg)!important}
#insGrid,#flowHead{grid-template-columns:minmax(0,1fr)!important}
#flowList > div{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
#faqAi > div{grid-template-columns:minmax(0,1fr)!important}
#faqAi > div > div:last-child{grid-column:span 1!important}
#contact a[data-cta="contact"]{width:84%;max-width:360px}
#contact h2{font-size:clamp(28px,7.6vw,38px)!important}
}
@media (min-width:641px) and (max-width:1099px){
#programGrid,#formatGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#faqAi > div{grid-template-columns:minmax(0,1fr)!important}
#faqAi > div > div:last-child{grid-column:span 1!important}
}
@media (min-width:1100px){
#programGrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:clamp(24px,2vw,32px)!important}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* インラインstyleの hover / focus 状態（元デザインの style-hover を CSS 化） */
.ha1:hover{border-bottom-color:#6B3DE8!important;color:#111318!important}
.ha2:hover{filter:brightness(1.08)!important;color:#fff!important}
.ha3:hover{transform:translateY(-3px)!important;color:#fff!important}
.ha4:hover{transform:translateY(-3px)!important;color:#6B3DE8!important}
.ha5:hover{color:#fff!important}

/* ===== Section reveal: horizontal slide-in (FV excluded) ===== */
@keyframes rvSlide{from{opacity:0;translate:var(--rv-dx) 0}to{opacity:1;translate:0 0}}
@keyframes rvSlideF{from{opacity:0;translate:var(--rv-dx) 0}to{opacity:.16;translate:0 0}}
html.rvx [data-rv="wait"]{opacity:0}
html.rvx [data-rv="l"]{--rv-dx:-32px}
html.rvx [data-rv="r"]{--rv-dx:32px}
html.rvx [data-rv="l"][data-rv-m]{--rv-dx:-56px}
html.rvx [data-rv="r"][data-rv-m]{--rv-dx:56px}
html.rvx [data-rv].is-in:not(#_):not(#_){animation:rvSlide 1.1s cubic-bezier(.22,1,.36,1) var(--rv-delay,0s) both!important}
html.rvx [data-rv][data-rv-m].is-in:not(#_):not(#_){animation-duration:1.4s!important}
html.rvx [data-reveal="faded"][data-rv].is-in:not(#_):not(#_){animation-name:rvSlideF!important}
@media (max-width:640px){
html.rvx [data-rv="l"]{--rv-dx:-20px}
html.rvx [data-rv="r"]{--rv-dx:20px}
html.rvx [data-rv="l"][data-rv-m]{--rv-dx:-32px}
html.rvx [data-rv="r"][data-rv-m]{--rv-dx:32px}
html.rvx [data-rv].is-in:not(#_):not(#_){animation-duration:.95s!important}
html.rvx [data-rv][data-rv-m].is-in:not(#_):not(#_){animation-duration:1.2s!important}
}
