/* KV(ヒーロー)セクション — hayashishin-calendar-d_mv から移植 */
/* d_mv P202512_style.css から抽出した KV(kv-top)関連スタイル */
:root{--swiper-theme-color:#007aff}
.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}
.swiper-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}
.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}
.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}
.swiper-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}
.swiper-vertical{-ms-touch-action:pan-x;touch-action:pan-x}
.swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;display:block}
.swiper-slide-invisible-blank{visibility:hidden}
.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}
.swiper-autoheight .swiper-wrapper{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-transition-property:height,-webkit-transform;transition-property:height,-webkit-transform;transition-property:transform,height;transition-property:transform,height,-webkit-transform}
.swiper-backface-hidden .swiper-slide{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.swiper-3d.swiper-css-mode .swiper-wrapper{-webkit-perspective:1200px;perspective:1200px}
.swiper-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}
.swiper-3d{-webkit-perspective:1200px;perspective:1200px}
.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}
.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}
.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}
.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}
.swiper-css-mode.swiper-horizontal>.swiper-wrapper{-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}
.swiper-css-mode.swiper-vertical>.swiper-wrapper{-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}
.swiper-css-mode.swiper-free-mode>.swiper-wrapper{-webkit-scroll-snap-type:none;-ms-scroll-snap-type:none;scroll-snap-type:none}
.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}
.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-box-ordinal-group:10000;-webkit-order:9999;-ms-flex-order:9999;order:9999}
.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}
.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-start:var(--swiper-centered-offset-before);margin-inline-start:var(--swiper-centered-offset-before)}
.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}
.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{-webkit-margin-before:var(--swiper-centered-offset-before);margin-block-start:var(--swiper-centered-offset-before)}
.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}
.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}
.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}
.swiper-3d .swiper-slide-shadow-left{background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to left,rgba(0,0,0,.5),transparent)}
.swiper-3d .swiper-slide-shadow-right{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to right,rgba(0,0,0,.5),transparent)}
.swiper-3d .swiper-slide-shadow-top{background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to top,rgba(0,0,0,.5),transparent)}
.swiper-3d .swiper-slide-shadow-bottom{background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),transparent);background-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent)}
.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}
.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{-webkit-animation:swiper-preloader-spin 1s infinite linear;animation:swiper-preloader-spin 1s infinite linear}
.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}
.swiper-lazy-preloader-black{--swiper-preloader-color:#000}
.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}
.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}
.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}
.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}
:root{--swiper-navigation-size:44px}
.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}
.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}
.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}
.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}
.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center}
.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}
.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}
.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}
.swiper-button-lock{display:none}
.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}
.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}
.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}
.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}
.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s opacity;transition:.3s opacity;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}
.swiper-pagination.swiper-pagination-hidden{opacity:0}
.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}
.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}
.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33);position:relative}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{-webkit-transform:scale(.66);-ms-transform:scale(.66);transform:scale(.66)}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33)}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{-webkit-transform:scale(.66);-ms-transform:scale(.66);transform:scale(.66)}
.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{-webkit-transform:scale(.33);-ms-transform:scale(.33);transform:scale(.33)}
.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity,.2)}
.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}
.swiper-pagination-bullet:only-child{display:none!important}
.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity,1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}
.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}
.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:8px}
.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;-webkit-transition:.2s transform,.2s top;transition:.2s transform,.2s top}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}
.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);white-space:nowrap}
.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:.2s transform,.2s left;transition:.2s transform,.2s left}
.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:.2s transform,.2s right;transition:.2s transform,.2s right}
.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}
.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}
.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}
.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}
.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}
.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}
.swiper-pagination-lock{display:none}
.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}
.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}
.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}
.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}
.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}
.swiper-scrollbar-cursor-drag{cursor:move}
.swiper-scrollbar-lock{display:none}
.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;text-align:center}
.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}
.swiper-slide-zoomed{cursor:move;-ms-touch-action:none;touch-action:none}
.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}
.swiper-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}
.swiper-grid>.swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}
.swiper-grid-column>.swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}
.swiper-fade.swiper-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}
.swiper-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;transition-property:opacity}
.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}
.swiper-fade .swiper-slide-active{pointer-events:auto}
.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}
.swiper-cube{overflow:visible}
.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}
.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}
.swiper-cube.swiper-rtl .swiper-slide{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}
.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}
.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}
.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}
.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;-webkit-filter:blur(50px);filter:blur(50px)}
.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.swiper-flip{overflow:visible}
.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}
.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}
.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;-webkit-transition-property:opacity,height,-webkit-transform;transition-property:opacity,height,-webkit-transform;transition-property:transform,opacity,height;transition-property:transform,opacity,height,-webkit-transform}
.swiper-cards{overflow:visible}
.swiper-cards .swiper-slide{-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}
:root{--f-serif:serif;--f-sans:dnp-shuei-gothic-gin-std,sans-serif;--f-en:"Manrope",sans-serif;--c-blk:#000;--c-wh:#fff;--c-gray1:#999999;--c-gray2:#ccc;--c-key1:#286d2c}
:root{scroll-behavior:smooth;scroll-padding-top:160px}
@media all and (max-width:1000px){
:root{scroll-padding-top:120px}
}
@media all and (max-width:770px){
:root{scroll-padding-top:100px}
}
@media all and (max-width:500px){
:root{scroll-padding-top:96px}
}
.kv-top{position:relative;z-index:11;background:#fff;margin-top:-160px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;height:100svh}
@media all and (max-width:1000px){
.kv-top{margin-top:-120px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:auto;z-index:0}
}
@media all and (max-width:770px){
.kv-top{margin-top:-100px}
}
@media all and (max-width:500px){
.kv-top{margin-top:-96px}
}
.kv-top__swiper{width:100%;height:100%;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;max-height:100svh}
@media all and (max-width:1000px){
.kv-top__swiper{aspect-ratio:376/578;max-height:calc(100svh - 100px)}
}
.kv-top__swiper .simpleParallax{height:100%}
.kv-top__swiper img{width:100%;height:100%;object-fit:cover}
.kv-top__information{width:380px;padding:24px 50px 50px 50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}
@media all and (max-width:1000px){
.kv-top__information{width:auto;padding:8px 20px 24px 20px}
}
.kv-top__header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}
@media all and (max-width:1000px){
.kv-top__header{display:none}
}
.kv-top__navigation{font-size:14px;line-height:1;letter-spacing:.1em}
@media all and (max-width:1000px){
.kv-top__navigation{display:none}
}
.kv-top__navigation li{margin:20px 0}
.kv-top__navigation li a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:4px 0;width:-webkit-fit-content;width:fit-content;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;gap:8px}
.kv-top__navigation li a::before{content:"";display:block;width:12px;height:12px;border:1px solid #000;border-radius:999px;transition:border-color 0.3s ease}
.kv-top__navigation li a:hover{text-decoration:underline}
.kv-top__navigation li a:hover::before{border-color:var(--color-primary)}
.kv-top__topics{container-type:inline-size;max-width:214px}
@media all and (max-width:1000px){
.kv-top__topics{max-width:none}
}
.topics-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:20px}
.topics-item+.topics-item{margin-top:32px}
.topics-item__thumbnail{width:100%;aspect-ratio:1/1;border-radius:999px;overflow:hidden;border:1px solid #ccc}
.topics-item__thumbnail img{width:100%;height:100%;object-fit:cover;-webkit-transition:scale .4s ease-out;transition:scale .4s ease-out}
a:hover .topics-item__thumbnail img{scale:1.1}
.topics-item__text{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:15px}
.topics-item__text--info{font-size:10px;line-height:1;letter-spacing:.01em;color:#999;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}
.topics-item__text--date{font-family:Manrope,sans-serif}
.topics-item__text--title{width:100%;font-size:14px;line-height:1.8;text-align:justify;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2}
a:hover .topics-item__text--title{text-decoration:underline}
.topics-item__arrow{display:none;width:var(--arrow);height:5px;position:relative;overflow:hidden}
.topics-item__arrow:before{content:"";display:block;width:100%;height:1px;background-color:var(--c-blk);position:absolute;top:50%;left:0;translate:0 -50%}
.topics-item__arrow:after{content:"";display:block;width:0;height:0;border-style:solid;border-width:2.5px 0 2.5px 5px;border-color:transparent transparent transparent var(--c-blk);position:absolute;top:50%;right:0;translate:0 -50%}
a:hover .topics-item__arrow:after,a:hover .topics-item__arrow:before{-webkit-animation:arrow .5s ease;animation:arrow .5s ease}
.topics-item:hover .topics-item__arrow::after{
    border-color: var(--color-primary) !important;
}
@-webkit-keyframes swiper-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@keyframes swiper-preloader-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@-webkit-keyframes arrow{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{opacity:1;-webkit-transform:translateX(var(--arrow));transform:translateX(var(--arrow))}50.1%{opacity:0}50.2%{-webkit-transform:translateX(calc(var(--arrow) * -1));transform:translateX(calc(var(--arrow) * -1))}50.3%{opacity:1}100%{-webkit-transform:translateX(0);transform:translateX(0)}}
@keyframes arrow{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{opacity:1;-webkit-transform:translateX(var(--arrow));transform:translateX(var(--arrow))}50.1%{opacity:0}50.2%{-webkit-transform:translateX(calc(var(--arrow) * -1));transform:translateX(calc(var(--arrow) * -1))}50.3%{opacity:1}100%{-webkit-transform:translateX(0);transform:translateX(0)}}


/* =========================================================
   d_mv style.css からの KV 上書き（動画スライド対応）
========================================================= */
.kv-top__logo {
    width: 100% !important;
    max-width: 600px !important;
}
.kv-top__logo img {
    width: 100%;
    height: auto;
    /* ロゴの視認性を保つ白影。広げすぎるとノートPCでスライド1枚目の文字に
       白がかぶるため、ロゴ周辺だけを覆う最小限の範囲に留める */
    filter: drop-shadow(0 0 2px #ffffff)
            drop-shadow(0 0 4px #ffffff)
            drop-shadow(0 -3px 5px #ffffff)
            drop-shadow(2px 2px 5px #ffffff)
            drop-shadow(4px 4px 8px #ffffff);
}
@media (min-width: 1001px) {
    .kv-top {
        height: 100vh !important;
        min-height: 100vh !important;
        /* スライダーを absolute で全幅に敷くため、残った左パネルを左端へ配置
           （row-reverse では flex-end が左端になる） */
        justify-content: flex-end;
    }
    /* 全画面(100vh)フルブリード・中央基準。モニター比率の差によるクロップは
       スライド中央を基準に左右均等へ逃がす（上下に白帯は出さない）。
       各スライドは左右とも十分な余白（文字は約8〜16%）を持たせてあるため、
       一般的なモニター(16:9/16:10)のクロップ量（片側3〜7%）では文字・製品は
       欠けない。※スライドを作る際は左右8%以上の余白を確保すること。 */
    .kv-top__swiper {
        position: absolute;
        top: 0;
        left: 300px;
        width: calc(100% - 300px);
        height: 100vh;
    }
    .kv-top__swiper .swiper-slide {
        height: 100% !important;
    }
    .kv-top__swiper img,
    .kv-top__swiper video {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
    /* 左パネル: 動画の上に重ね、右端へ向けて白→透明のグラデーションでなじませる
       （白ベタはスライダー開始位置 300px より広い 65% ≒ 312px まで確保） */
    .kv-top__information {
        position: relative;
        z-index: 2;
        width: 480px;
        /* フェードはスライダー開始位置(300px=62.5%)の少し先で終わらせ、
           スライド左端の文字に白ベタが被らないようにする */
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1)    0%,
            rgba(255, 255, 255, 1)   62%,
            rgba(255, 255, 255, 0.55) 69%,
            rgba(255, 255, 255, 0)   76%
        );
    }
}
.kv-top__swiper .swiper-slide {
    position: relative;
    overflow: hidden;
}
.kv-top__swiper .kv-top__video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: cover !important;
    object-position: center center !important;
    background: transparent;
}

/* KVテキストオーバーレイ:
   動画・静止画と同寸(1586×992)のテキストSVGを、下のメディアと全く同じ
   トリミング指定(cover/right center)で重ねる。同じ計算で切り抜かれるため
   どの画面サイズでも文字位置が下のメディアと一致する */
.kv-top__swiper .kv-top__text-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    display: block;
    object-fit: cover !important;
    object-position: center center !important;
    z-index: 2;
    pointer-events: none;
}

/* 静止画スライドもオーバーレイと同じ基準点（中央）で切り抜く */
.kv-top__swiper img {
    object-position: center center;
}

/* =========================================================
   スマホ/タブレット用 KV（1000px以下）
   - スライダー: 横幅いっぱい・縦は素材の比率なり（1280:720 = 16:9）
   - 文字SVGオーバーレイ: PCと同様に表示（ベクターなので縮小しても輪郭は鮮明）
   - 日めくりカード: スライダー上の白帯の右端に配置（PCでは左パネル内）
   - 最新ニュース: 大きな円形サムネイルをやめ、小さな横並びリストに
========================================================= */

/* PC ではモバイル用の白帯は出さない */
.kv-top__mobile-copy {
    display: none;
}

@media all and (max-width: 1000px) {
    /* 日めくりカードの寸法。白帯の高さもこの値から算出して常に一致させる */
    .kv-top {
        --kv-card-top: 7px;
        --kv-card-height: 78px;
    }

    /* スライダーは素材の比率（16:9）で全幅表示（トリミングなし） */
    .kv-top__swiper {
        aspect-ratio: 16 / 9;
        max-height: none;
    }

    /* 日めくりカードの背景になる白帯。カードの高さぶんだけ確保して動画を上へ詰める */
    .kv-top__mobile-copy {
        display: block;
        height: calc(var(--kv-card-top) * 2 + var(--kv-card-height));
        background: #fff;
    }

    /* ロゴとナビは非表示なので、余白だけが動画の下に白帯として残らないようにする
       （日めくりカードは .kv-top 基準の絶対配置のため影響を受けない） */
    .kv-top__information {
        padding: 0;
    }

    /* 最新ニュース: 小さな丸サムネイル＋テキストの横並びに */
    .kv-top__topics .topics-item {
        flex-direction: row;
        align-items: center;
        gap: 14px;
    }
    .kv-top__topics .topics-item__thumbnail {
        width: 72px;
        flex-shrink: 0;
    }
    .kv-top__topics .topics-item__text {
        flex: 1;
        gap: 8px;
    }
}

/* =========================================================
   テーマA統合用の適応レイヤー
========================================================= */
/* d_mv では固定ヘッダー分 KV を上に引き上げていたが、A では不要 */
.kv-top {
    margin-top: 0 !important;
}

/* KV 内は d_mv のフォント指定（Typekit: 秀英ゴシック銀）を踏襲 */
.kv-top {
    font-family: var(--font-family-base);
}

/* KV 内のリンクホバー（d_mv ではサイト全体だったものを KV 内に限定） */
.kv-top a:hover,
.topics-item:hover .topics-item__text--title {
    color: var(--color-primary);
    transition: color 0.3s ease;
}

/* PC: KV 表示中はテーマAのヘッダーを隠し、スクロールで KV を通過したら表示 */
@media (min-width: 1001px) {
    body.front-kv .site-header {
        position: fixed;
        left: 0;
        right: 0;
        transform: translateY(-100%);
        transition: transform 0.4s ease;
    }
    body.front-kv.kv-passed .site-header {
        transform: translateY(0);
    }
}
/* スマホ/タブレット: KV に ロゴ・ナビが無いため、Aのヘッダーを通常表示のまま使う */

/* 左下メニューを少し上へ（パネル下端から余白を取る） */
@media (min-width: 1001px) {
    .kv-top__navigation {
        margin-bottom: 40px;
    }
}

/* カレンダーを上へ寄せる。position:relative の視覚移動のみのため、
   下に続くナビゲーションの位置は変わらない（キャラはカードに追従する） */
@media (min-width: 1001px) {
    .kv-top__datetime {
        top: -91px;
    }
}

/* ロゴ上の余白が動画に重なって見えないよう、パネル上部を白で覆う。
   白は疑似要素に描き、右方向だけでなく下方向にもぼかして境目の直線を出さない
   （背景そのものに指定すると要素の下辺で白が切れてしまうため） */
@media (min-width: 1001px) {
    .kv-top__header {
        position: relative;
        margin: -24px -50px 0;
        padding: 24px 50px 8px;
    }
    .kv-top__header::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        /* 要素より下まで伸ばし、その余剰分を使って下端を徐々に消す */
        height: calc(100% + 56px);
        pointer-events: none;
        /* 右方向のぼかし（ロゴ右端付近まで白を確保） */
        background: linear-gradient(
            to right,
            rgba(255, 255, 255, 1)   0%,
            rgba(255, 255, 255, 1)  82%,
            rgba(255, 255, 255, 0) 100%
        );
        /* 下方向のぼかし */
        -webkit-mask-image: linear-gradient(
            to bottom,
            rgba(0, 0, 0, 1)  0%,
            rgba(0, 0, 0, 1) 45%,
            rgba(0, 0, 0, 0) 100%
        );
        mask-image: linear-gradient(
            to bottom,
            rgba(0, 0, 0, 1)  0%,
            rgba(0, 0, 0, 1) 45%,
            rgba(0, 0, 0, 0) 100%
        );
    }
    /* ロゴは白レイヤーより前面に置く */
    .kv-top__logo {
        position: relative;
        z-index: 1;
    }
}

/* =========================================================
   現在日時（壁掛けカレンダー風・上辺のリング綴じ＝玉を表現）
   kv.js が日付を更新する
========================================================= */
.kv-top__datetime {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: -webkit-fit-content;
    width: fit-content;
    min-width: 130px;
    margin-top: 56px;
    padding: 26px 26px 20px;
    line-height: 1.1;
    color: #222;
    text-align: center;
    background: #fffdf7;
    border: 1px solid #ececec;
    border-radius: 4px;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.09);
    font-family: var(--f-en, "Manrope", sans-serif);
    letter-spacing: 0.12em;
    /* めくれる紙の3D回転に奥行きを与える（小さいほど手前に来る紙の拡大が強調される） */
    perspective: 650px;
}
/* 壁掛けカレンダーのリング（玉）: 紙面上辺に金属リングが並ぶ意匠 */
.kv-top__datetime--rings {
    position: absolute;
    top: -11px;
    left: 12px;
    right: 12px;
    height: 20px;
    /* めくれる紙より前面に置き、綴じ具は残って紙だけがめくれるように見せる */
    z-index: 4;
    pointer-events: none;
    background-image: radial-gradient(
        circle at 11px 10px,
        transparent 0 3px,
        #d6d6d6 3px 4px,
        #9a9a9a 4px 6px,
        transparent 6px 22px
    );
    background-size: 22px 20px;
    background-repeat: repeat-x;
}
.kv-top__datetime--year {
    font-size: 13px;
    color: #999;
    letter-spacing: 0.18em;
}
.kv-top__datetime--month {
    font-size: 15px;
    letter-spacing: 0.2em;
    margin-top: 6px;
    color: #333;
}
.kv-top__datetime--day {
    font-size: 52px;
    font-weight: 300;
    letter-spacing: 0.04em;
    margin-top: 2px;
}
.kv-top__datetime--wday {
    font-size: 12px;
    color: #999;
    letter-spacing: 0.22em;
    margin-top: 8px;
}

/* --- めくれる紙（昨日の日付）: 読み込み時に一度だけ上へめくれ上がる --- */
.kv-top__datetime--sheet {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 26px 26px 20px;
    background: #fffdf7;
    border: 1px solid #ececec;
    border-radius: 4px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
    transform-origin: top center;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    pointer-events: none;
    /* キャラのめくりジェスチャー(約1.584s)に合わせて、“昨日”を見せてから約1.1秒かけてめくれ上がり、下の“今日”が現れる（1回のみ）
       回転は正方向＝紙の底辺が手前（カメラ側）へ持ち上がり、遠近で底辺が標準より広く見える */
    -webkit-animation: kv-datetime-peel 1.1s ease-in 1.58s forwards;
    animation: kv-datetime-peel 1.1s ease-in 1.58s forwards;
}
@-webkit-keyframes kv-datetime-peel {
    0%   { -webkit-transform: rotateX(0deg);   opacity: 1; }
    50%  { opacity: 1; }
    95%  { opacity: 0; }
    100% { -webkit-transform: rotateX(100deg); opacity: 0; }
}
@keyframes kv-datetime-peel {
    0%   { transform: rotateX(0deg);   opacity: 1; }
    50%  { opacity: 1; }
    95%  { opacity: 0; }
    100% { transform: rotateX(100deg); opacity: 0; }
}
/* 動きを控えたい設定のユーザーにはめくり演出を出さない */
@media (prefers-reduced-motion: reduce) {
    .kv-top__datetime--sheet {
        -webkit-animation: none;
        animation: none;
        display: none;
    }
    .kv-top__datetime--char {
        -webkit-animation: none;
        animation: none;
    }
}

/* --- カレンダーをめくるキャラ（静止画・カード右・カードの約2/3サイズの1.6倍） --- */
.kv-top__datetime--char {
    position: absolute;
    left: calc(100% + 4px);
    bottom: -8px;
    height: 106%;              /* 従来66%の約1.6倍 */
    width: auto;
    z-index: 5;
    pointer-events: none;
    -webkit-user-select: none;
    user-select: none;
    transform-origin: bottom center;
    /* 3.7s に延長: 既存の登場〜めくりジェスチャーの絶対時刻は維持（ジェスチャー=約1.584s、めくり開始1.58sと同期）
       ジェスチャー後は「喜びのジャンプ×2（別の動き）」→来た方（右）へ駆け戻りながらフェードアウト */
    -webkit-animation: kv-char-act 3.7s both;
    animation: kv-char-act 3.7s both;
}
@-webkit-keyframes kv-char-act {
    0%    { opacity: 0; -webkit-transform: translate(46px, 4px) rotate(0deg); }
    6.5%  { opacity: 1; -webkit-transform: translate(0, 0) rotate(0deg); -webkit-animation-timing-function: ease-out; }
    11.7% { -webkit-transform: translateY(-30px) rotate(0deg); -webkit-animation-timing-function: ease-in; }
    16.9% { -webkit-transform: translateY(0) rotate(0deg); -webkit-animation-timing-function: ease-out; }
    22.1% { -webkit-transform: translateY(-24px) rotate(0deg); -webkit-animation-timing-function: ease-in; }
    27.2% { -webkit-transform: translateY(0) rotate(0deg); -webkit-animation-timing-function: ease-out; }
    32.4% { -webkit-transform: translateY(-28px) rotate(0deg); -webkit-animation-timing-function: ease-in; }
    37.6% { -webkit-transform: translateY(0) rotate(0deg); }
    42.8% { -webkit-transform: translateY(-4px) rotate(13deg); -webkit-animation-timing-function: ease-out; }
    48%   { -webkit-transform: translateY(0) rotate(4deg); }
    54%   { -webkit-transform: translateY(0) rotate(0deg); -webkit-animation-timing-function: ease-out; }
    59.5% { -webkit-transform: translateY(-18px) rotate(-5deg); -webkit-animation-timing-function: ease-in; }
    65%   { -webkit-transform: translateY(0) rotate(0deg); -webkit-animation-timing-function: ease-out; }
    70%   { -webkit-transform: translateY(-10px) rotate(0deg); -webkit-animation-timing-function: ease-in; }
    75%   { opacity: 1; -webkit-transform: translateY(0) rotate(0deg); -webkit-animation-timing-function: ease-in; }
    100%  { opacity: 0; -webkit-transform: translate(46px, 4px) rotate(5deg); }
}
@keyframes kv-char-act {
    0%    { opacity: 0; transform: translate(46px, 4px) rotate(0deg); }                                   /* 右から登場 */
    6.5%  { opacity: 1; transform: translate(0, 0) rotate(0deg); animation-timing-function: ease-out; }
    11.7% { transform: translateY(-30px) rotate(0deg); animation-timing-function: ease-in; }
    16.9% { transform: translateY(0) rotate(0deg); animation-timing-function: ease-out; }
    22.1% { transform: translateY(-24px) rotate(0deg); animation-timing-function: ease-in; }
    27.2% { transform: translateY(0) rotate(0deg); animation-timing-function: ease-out; }
    32.4% { transform: translateY(-28px) rotate(0deg); animation-timing-function: ease-in; }
    37.6% { transform: translateY(0) rotate(0deg); }
    42.8% { transform: translateY(-4px) rotate(13deg); animation-timing-function: ease-out; }             /* めくりジェスチャー(1.584s) */
    48%   { transform: translateY(0) rotate(4deg); }
    54%   { transform: translateY(0) rotate(0deg); animation-timing-function: ease-out; }
    59.5% { transform: translateY(-18px) rotate(-5deg); animation-timing-function: ease-in; }             /* 喜びのジャンプ1 */
    65%   { transform: translateY(0) rotate(0deg); animation-timing-function: ease-out; }
    70%   { transform: translateY(-10px) rotate(0deg); animation-timing-function: ease-in; }              /* 喜びのジャンプ2 */
    75%   { opacity: 1; transform: translateY(0) rotate(0deg); animation-timing-function: ease-in; }
    100%  { opacity: 0; transform: translate(46px, 4px) rotate(5deg); }                                   /* 来た方（右）へ駆け戻って消える */
}

/* スマホ/タブレット: 左パネルは簡略表示になるため、日めくりカードだけを
   スライダー上の白帯の右端へ絶対配置する（基準は position:relative の .kv-top）。
   カードを小さくするぶん、めくれる紙(--sheet)の余白も同じ値に揃えて文字位置を一致させる。
   高さは --kv-card-height と揃える（白帯の高さがこの値から決まるため）。 */
@media (max-width: 1000px) {
    .kv-top__datetime {
        display: flex;
        position: absolute;
        top: var(--kv-card-top);
        right: 16px;
        z-index: 3;
        margin-top: 0;
        min-width: 70px;
        height: var(--kv-card-height);
        padding: 9px 8px 7px;
    }
    .kv-top__datetime--sheet {
        padding: 9px 8px 7px;
    }
    .kv-top__datetime--rings {
        top: -6px;
        left: 7px;
        right: 7px;
    }
    .kv-top__datetime--year {
        font-size: 9px;
    }
    .kv-top__datetime--month {
        font-size: 10px;
        margin-top: 2px;
    }
    .kv-top__datetime--day {
        font-size: 24px;
    }
    .kv-top__datetime--wday {
        font-size: 8px;
        margin-top: 3px;
    }
    /* キャラはカードの右外に立つため画面からはみ出す。狭い画面では出さない */
    .kv-top__datetime--char {
        display: none;
    }
}

/* 小型スマホ: 画面が狭いぶんカードと白帯をもう一段小さくする */
@media (max-width: 360px) {
    .kv-top {
        --kv-card-height: 72px;
    }
    .kv-top__datetime {
        right: 12px;
        min-width: 64px;
        padding: 8px 7px 6px;
    }
    .kv-top__datetime--sheet {
        padding: 8px 7px 6px;
    }
    .kv-top__datetime--day {
        font-size: 21px;
    }
}
