@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p&family=RocknRoll+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic&display=swap');
        body {
            font-family: 'M PLUS 1p', sans-serif;
            font-weight: 600;
            background-color: #ffffff;
            margin: 0;
            overflow-x: hidden;
            overflow-y: auto;
            width: 100%;
            min-height: 100vh;
        }

        html { scroll-behavior: smooth; }

        :root{
            --slantCut: 68px;
        }
        @media (max-width: 640px){
            :root{ --slantCut: 42px; }
        }


        a{
            color: #FF0067;
        }

        .icon-wrap{
            position: absolute;
            transform-origin: 50% 60%;
            will-change: transform;
        }
        .icon-wrap.wobble{
            animation-name: floatWobble;
            animation-timing-function: ease-in-out;
            animation-iteration-count: infinite;
            animation-direction: alternate;
        }
        @keyframes floatWobble{
            0%{ transform: translateX(-10px) rotate(-7deg); }
            100%{ transform: translateX(10px) rotate(7deg); }
        }

        .illustration {
            opacity: 0;
            transition: opacity 0.8s ease;
            display: block;
            width: 100%;
            height: auto;
            pointer-events: none;
            user-select: none;
            transform: none;
        }
        .illustration.active {
            opacity: 1;
        }

:root{

            --hero-pad-top: 60px;
            --hero-pad-bottom: 0px;
            --hero-safe-top: 96px;
            --logo-w: clamp(180px, 22vw, 560px);
            --char-w: clamp(260px, 34vw, 860px);

            --logo-char-gap: clamp(14px, 2.8vh, 34px);
        }

        .hero-stack{
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 100%;
            min-height: 0;
        }

        #main-logo{
            opacity: 0;
            transform: translateY(65%);
            transition: opacity 1s ease, transform .9s cubic-bezier(0.34, 1.56, 0.64, 1);
            will-change: transform, opacity;
        }
        #main-logo img{
            width: min(80vw, calc((100svh - var(--hero-safe-top) - var(--hero-pad-bottom)) * 0.95));
			max-width: 640px;
            height: auto;
            max-height: calc((100svh - var(--hero-safe-top) - var(--hero-pad-bottom)) * 0.42);
            object-fit: contain;
            display: block;
            filter: drop-shadow(0 20px 20px rgba(0,0,0,0.15));
        }
        #main-logo.active{
            opacity: 1;
            transform: translateY(55%);
        }
        #main-logo.to-top{
            transform: translateY(0%);
        }

        #character-container{
            pointer-events: none;
        }
        #character{
            opacity: 0;
            transform: translateY(40px);
            transition: opacity .9s ease, transform .9s cubic-bezier(0.34, 1.56, 0.64, 1);
            will-change: transform, opacity;
        }
        #character img{
            width: 80vw;
			max-width: 640px;
            height: auto;
            max-height: calc(100svh - var(--hero-safe-top) - var(--hero-pad-bottom) - 120px);
            object-fit: contain;
            display: block;
            filter: drop-shadow(0 20px 20px rgba(0,0,0,0.10));
        }
        #character.active{
            opacity: 1;
            transform: translateY(0) scale(1);
        }
        @media (max-height: 720px){
            :root{
                --logo-w: clamp(150px, 20vw, 440px);
                --char-w: clamp(220px, 32vw, 720px);
                --hero-pad-top: 74px;
                --hero-pad-bottom: 22px;
            }
		}
		@media (min-width: 1921px){
            #character img{
			max-width: 800px;
			}
            #main-logo img{
			max-width: 800px;
			}
		}

        @media (min-height: 1081px){
            #character img{
			max-width: 800px;
			}
            #main-logo img{
			max-width: 800px;
			}
		}
        @media (min-height: 1441px){
            #character img{
			max-width: 960px;
			}
            #main-logo img{
			max-width: 960px;
			}
		}


        #site-header{
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            z-index: 9999;
            pointer-events: none;
        }
        .header-inner{
            max-width: 1080px;
            margin: 0 auto;
            padding: 14px 16px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            pointer-events: auto;
        }
        .header-logo img{
            width: 160px;
            height: auto;
            display: block;
            filter: drop-shadow(0 6px 16px rgba(0,0,0,.08));
        }

        .bubble-nav{
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px;
            border-radius: 999px;
            background: rgba(255,255,255,.86);
            border: 1px solid rgba(0,0,0,.08);
            box-shadow: 0 10px 30px rgba(0,0,0,.10);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .hamburger-btn{
            width: 56px;
            height: 56px;
            border: 0;
            background: transparent;
            box-shadow: none;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 0;
            cursor: pointer;
            user-select: none;
        }
        .hamburger-btn img{
            width: 56px;
            height: 56px;
            display: block;
        }

        .mobile-menu{
            isolation: isolate;
            position: fixed;
            inset: 0;
            min-height: 100svh;
            z-index: 10020;
            pointer-events: none;
            opacity: 0;
            transition: all .5s ease;
            overflow: hidden;

        }
		
		

        .mobile-menu.open{
            opacity: 1;
            pointer-events: auto;
        }
        .mobile-menu-bg{
            position: absolute;
            inset: 0;
            z-index: 0;
  background: linear-gradient(135deg, #93E3FF 0%, #FFBBD0 100%);
  background-size: 200% 200%;
  animation: gradientMove 8s ease-in-out infinite;
            clip-path: circle(0 at calc(100% - 44px) 44px);
            -webkit-clip-path: circle(0 at calc(100% - 44px) 44px);
            transition: clip-path .62s cubic-bezier(0.22, 1, 0.36, 1), -webkit-clip-path .62s cubic-bezier(0.22, 1, 0.36, 1);
        }
@keyframes gradientMove {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}


.mobile-menu-bg::before,
.mobile-menu-bg::after{
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;

    background-image:
        radial-gradient(circle, rgba(255,255,255,0.48) 0 12px, transparent 13px),
        radial-gradient(circle, rgba(255,255,255,0.36) 0 18px, transparent 19px),
        radial-gradient(circle, rgba(255,255,255,0.42) 0 24px, transparent 25px);

    background-size:
        220px 320px,
        300px 420px,
        380px 520px;

    background-position:
        30px 115%,
        160px 130%,
        80px 120%;

    opacity: 0.72;
}

.mobile-menu-bg::before{
    animation: bubblesFloatA 12s linear infinite;
}

.mobile-menu-bg::after{
    opacity: 0.38;
    transform: scale(1.18);
    filter: blur(1.2px);
    animation: bubblesFloatB 18s linear infinite;
}

@keyframes bubblesFloatA{
    0%{
        background-position:
            30px 115%,
            160px 130%,
            80px 120%;
        transform: translateX(0);
    }

    25%{
        transform: translateX(18px);
    }

    50%{
        transform: translateX(-14px);
    }

    75%{
        transform: translateX(16px);
    }

    100%{
        background-position:
            30px -40%,
            160px -55%,
            80px -45%;
        transform: translateX(0);
    }
}

@keyframes bubblesFloatB{
    0%{
        background-position:
            120px 125%,
            40px 140%,
            210px 118%;
        transform: translateX(0) scale(1.18);
    }

    30%{
        transform: translateX(-22px) scale(1.18);
    }

    60%{
        transform: translateX(20px) scale(1.18);
    }

    100%{
        background-position:
            120px -50%,
            40px -65%,
            210px -42%;
        transform: translateX(0) scale(1.18);
    }
}






        .mobile-menu.open .mobile-menu-bg{
            clip-path: circle(160vmax at calc(100% - 44px) 44px);
            -webkit-clip-path: circle(160vmax at calc(100% - 44px) 44px);
        }
        .mobile-menu .mobile-inner{
            position: relative;
            z-index: 1;
            width: 100%;
            min-height: 100svh;
            padding:
              max(16px, env(safe-area-inset-top))
              max(20px, calc(env(safe-area-inset-right) + 20px))
              max(28px, env(safe-area-inset-bottom))
              max(20px, calc(env(safe-area-inset-left) + 20px));
            display: flex;
            flex-direction: column;
            opacity: 0;
            transform: translateY(-16px) scale(.98);
            transition: opacity .22s ease .14s, transform .38s cubic-bezier(0.22, 1, 0.36, 1) .14s;
        }
        .mobile-menu.open .mobile-inner{
            opacity: 1;
            transform: translateY(0) scale(1);
        }
        .mobile-menu-header{
            position: relative;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            width: 100%;
            padding-top: 6px;
        }
        .mobile-logo img{
            width: 50vw;
            height: auto;
            display: block;
            filter: drop-shadow(0 8px 18px rgba(0,0,0,.10));
        }
        .mobile-close-btn{
            position: absolute;
            top: 0;
            right: 0;
            border: 0;
            background: transparent;
            padding: 0;
            cursor: pointer;
        }
        .mobile-close-btn img{
            width: 56px;
            height: 56px;
            display: block;
        }
        .mobile-menu-links{
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 18px;
        }
        .mobile-random-character{
            display: flex;
            justify-content: center;
            align-items: flex-end;
            width: 100%;
            padding-bottom: 4px;
            pointer-events: none;
        }
        .mobile-random-character img{
            width: 50vw;
            height: auto;
            display: block;
            filter: drop-shadow(0 8px 18px rgba(0,0,0,.10));
        }
        .mobile-item{
			font-family: "Zen Maru Gothic", sans-serif;
			font-weight: 900;
            font-size: 8vw;
            line-height: 1.2;
            letter-spacing: .04em;
            text-decoration: none;
            color: #444;
			text-shadow: 0 0 30px #fff;
            text-align: center;
            border: 0;
            box-shadow: none;
            min-height: 0;
            padding: 0;
			mix-blend-mode: color-burn;
        }
body.menu-open{
            overflow: hidden;
            touch-action: none;
        }

        .bubble-item{
            display: inline-flex;
			font-weight: 900;
            align-items: center;
            justify-content: center;
            height: 40px;
            padding: 0 16px;
            border-radius: 999px;
            font-weight: 900;
            letter-spacing: .02em;
            text-decoration: none;
            color: rgba(30, 41, 59, 0.95);
            background: rgba(255,255,255,.92);
            transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
            user-select: none;
        }

        /* desktop-nav：ボタン背景と文字グラデーションを別要素に分離。
           Firefoxで複数レイヤーのbackground-clipが崩れる問題を回避する。 */
        .desktop-nav .bubble-item{
            font-weight: 900;
            color: #d58bdc; /* background-clip未対応時のフォールバック */
            background: rgba(255,255,255,.92);
            text-shadow: none;
        }
        .desktop-nav .bubble-item > span{
            display: inline-block;
            color: #d58bdc;
        }
        @supports ((-webkit-background-clip: text) or (background-clip: text)){
            .desktop-nav .bubble-item > span{
                background-image: linear-gradient(90deg, #ff7bd5 0%, #74d9ff 100%);
                background-repeat: no-repeat;
                -webkit-background-clip: text;
                background-clip: text;
                color: transparent;
                -webkit-text-fill-color: transparent;
            }
        }
        .bubble-item:hover{
            transform: translateY(-1px);
        }
        .bubble-item:active{
            transform: translateY(0);
        }

        .hero-stage{
            position: relative;
            z-index: 1;
            height: 100svh;
            min-height: 100svh;
            width: 100%;
            overflow: hidden;
        }
		.hero-stage-sub{
            position: relative;
            z-index: 1;
            height: 1svh;
            width: 100%;
            overflow: hidden;
        }
        .hero-content{
            position: relative;
            height: 100%;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding-top: max(var(--hero-pad-top), var(--hero-safe-top));
            padding-bottom: var(--hero-pad-bottom);
            box-sizing: border-box;
        }

        section[id]{ scroll-margin-top: 96px; }

        .content-section{
            position: relative;
            z-index: 1;
            width: 100%;
            padding: 20px 16px 10px;
        }
        .content-section-bg{
            background: rgba(255,255,255,0.80);
        }
        .content-inner{
            max-width: 1080px;
        }
        .section-title{
            font-size: 28px;
            font-weight: 900;
            letter-spacing: .02em;
            margin: 0 0 12px 0;
			height: 100px;
        }
        .section-text{
            font-size: 16px;
            line-height: 1.9;
            margin: 0;
            color: rgba(15, 23, 42, 0.86);
        }


        .goods-carousel-shell{
            position: relative;
            width: 100vw;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
            padding: 18px 0 6px;
        }

        .goods-carousel{
            position: relative;
            touch-action: pan-y;
            overflow-x: auto;
            overflow-y: hidden;
            scroll-snap-type: x proximity;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
                        scroll-behavior: smooth;
padding: 10px 0 18px;
            padding-left: max(16px, calc((100vw - 1080px) / 2));
            padding-right: max(16px, calc((100vw - 1080px) / 2));
        }
        .goods-carousel::-webkit-scrollbar{ display:none; }

        
.goods-carousel{
    cursor: grab;
    user-select: none;
}
.goods-carousel.is-dragging{
    cursor: grabbing;
    scroll-snap-type: none;
    scroll-behavior: auto;
}
.goods-carousel.is-momentum{
    cursor: grab;
    scroll-snap-type: none;
    scroll-behavior: auto;
}
.goods-carousel.is-dragging .goods-card{
    pointer-events: auto;
}
.goods-track{
            display: flex;
            gap: 18px;
            align-items: stretch;
            width: max-content;
        }

        .goods-card{
            flex: 0 0 auto;
            width: min(276px, 74vw);
            background: rgba(255,255,255,0.92);
            border: 1px solid rgba(15,23,42,0.10);
            border-radius: 18px;
            box-shadow: 0 16px 36px rgba(0,0,0,0.08);
            padding: 14px 14px 12px;
            scroll-snap-align: start;
            cursor: pointer;
            transition: transform .18s ease, box-shadow .18s ease;
        }
        .goods-card:hover{
            transform: translateY(-2px);
            box-shadow: 0 20px 44px rgba(0,0,0,0.10);
        }

        .goods-thumb{
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 14px;
            overflow: hidden;
            background: rgba(2,6,23,0.04);
            display: grid;
            place-items: center;
        }
        .goods-thumb img{
            width: 86%;
            height: 86%;
            object-fit: contain;
            filter: drop-shadow(0 10px 16px rgba(0,0,0,0.10));
                    -webkit-user-drag: none;
            user-drag: none;
            user-select: none;
            -webkit-user-select: none;
            -ms-user-select: none;
        }

        .goods-name{
            margin: 12px 2px 4px;
            font-size: 14px;
            line-height: 1.35;
            font-weight: 800;
            letter-spacing: 0.02em;
        }
        .goods-price{
            margin: 0 2px;
            font-size: 13px;
            font-weight: 900;
            opacity: 0.85;
        }

        .goods-side{
            position: absolute;
            top: 0;
            bottom: 0;
            width: clamp(0px, calc((100vw - 1080px)/2), 9999px);
            border: 0;
            padding: 0;
            background: transparent;
            backdrop-filter: blur(2px);
            -webkit-backdrop-filter: blur(2px);
            z-index: 3;
            cursor: pointer;
        }
        .goods-side-left{
            left: 0;
            background: linear-gradient(to right, rgba(240,240,240,0.78), rgba(240,240,240,0.0));
        }
        .goods-side-right{
            right: 0;
            background: linear-gradient(to left, rgba(240,240,240,0.78), rgba(240,240,240,0.0));
        }

        .goods-arrow{
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 4;
            border: 0;
            width: 44px;
            height: 44px;
            border-radius: 999px;
            background: rgba(255,255,255,0.82);
            box-shadow: 0 16px 36px rgba(0,0,0,0.10);
            font-weight: 900;
            font-size: 20px;
            line-height: 44px;
            text-align: center;
            cursor: pointer;
            user-select: none;
        }
        .goods-arrow-left{ left: 12px; }
        .goods-arrow-right{ right: 12px; }

        @media (max-width: 640px){
            .goods-card{ width: min(252px, 82vw); }
        }

/* 親要素（これを追加） */
.title-container {
  text-align: center;
  width: 100%; /* 画面いっぱいに広げる */
}

/* ご提示いただいたコード（そのまま） */
.goods-info {
color: rgba(225,158,181,1.00);
  display: block;
  align-items: center;
  text-align: center;
  gap: 15px;
  font-weight: bold;
  font-size: 24px;
  /* margin: 0 auto; はインライン要素には効かないので消してもOKです */
}
/* 左側の円（小・中・大） */
.goods-info::before {
  content: "";
  display: inline-block;
  width: 60px;  /* 3つの円が収まる全体の横幅 */
  height: 16px; /* 一番大きい円の直径（縦幅） */
  background-image: 
    radial-gradient(circle at 10px center, currentColor 3px, transparent 3px),   /* 左: 小 */
    radial-gradient(circle at 30px center, currentColor 5px, transparent 5px),  /* 中: 中 */
    radial-gradient(circle at 50px center, currentColor 8px, transparent 8px); /* 右: 大 */
}

/* 右側の円（大・中・小） */
.goods-info::after {
  content: "";
  display: inline-block;
  width: 60px;  /* 3つの円が収まる全体の横幅 */
  height: 16px; /* 一番大きい円の直径（縦幅） */
  background-image: 
    radial-gradient(circle at 10px center, currentColor 8px, transparent 8px),   /* 左: 大 */
    radial-gradient(circle at 30px center, currentColor 5px, transparent 5px),  /* 中: 中 */
    radial-gradient(circle at 50px center, currentColor 3px, transparent 3px); /* 右: 小 */
}



.swiper-wrapper{
  margin:10px 0; 
}
.article-image-swiper-wrap{
  padding:30px 0; 
}




.swiper {
	text-align: center;
	margin: 0 auto;
}

.swiper-slide{
	margin: 0 auto;
}

.swiper-slide img {
	width: 100%;
	max-width: 500px;
	height: 100%;
	margin: 0 auto 30px;
	text-align: center;
}

.swiper-pagination {
	filter: saturate(0)brightness(0);
}

.articleText ul li img{
	width: 100%!important;
	height: auto!important;
}



.link-grid{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.link-grid a{
    display: block;
    opacity: 0;
    transform: translateY(40px);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}

.link-grid a.show{
    opacity: 1;
    transform: translateY(0);
}

.link-grid a:nth-child(even){
    transition-delay: 0.2s;
}

.link-grid img{
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #ccc;
    box-sizing: border-box;
}

@media screen and (max-width: 720px){

    .link-grid{
        grid-template-columns: 1fr;
    }

    .link-grid a:nth-child(even){
        transition-delay: 0s;
    }

}


.link-grid a{
  display: block;
}

.link-grid a .img-wrap{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
}

.link-grid a .img-wrap::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(54,220,255,0.2) 0%,
    rgba(255,103,149,0.2) 100%
  );
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
  z-index: 2;
  filter: brightness(1.4);
}

.link-grid a .img-wrap img{
  display: block;
  width: 100%;
  height: auto;
  transition: transform 0.35s ease;
}

.link-grid a:hover .img-wrap::after{
  opacity: 1;
}

.link-grid a:hover .img-wrap img{
  transform: scale(1.03);
}



.link_txt{
  text-align: center;
  color: #000;
  background: linear-gradient(135deg, #93CBFF 0%, #FFA4C0 100%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: currentColor;
  transition:
    color 0.35s ease,
    -webkit-text-fill-color 0.35s ease,
    opacity 0.35s ease;
}

.link_txt:hover{
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.link_txt:hover,
.link-grid a:hover .link_txt{
  color: transparent;
  background: linear-gradient(90deg, #93CBFF 0%, #FFA4C0 40%);
  background-size: 200% 100%;
  background-position: 0% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  animation: linkTxtGradient 1.2s linear infinite;
}




.about-inner{
    background: rgba(243, 244, 246, 0.92);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 26px;
    padding: clamp(18px, 3.2vw, 34px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.08);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    overflow: hidden;
    transform: translateY(44px) scale(0.985);
    opacity: 0;
    filter: blur(2px);
    transition:
        transform 0.9s cubic-bezier(0.34, 1.56, 0.64, 1),
        opacity 0.8s ease,
        filter 0.9s ease;
    will-change: transform, opacity, filter;
}
.about-inner.is-inview{
    transform: translateY(0) scale(1);
    opacity: 1;
    filter: blur(0);
}


.top_link_wrap{
	text-align: center;
	padding: 60px 0;
}

.top_link_btn {
  padding: 0.8em 1.5em;
  border-radius: 999px;
  background: linear-gradient(135deg, #93CBFF 0%, #FFA4C0 100%);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.2em;
}







        @media (max-width: 640px){
            .desktop-nav{ display: none; }
            .hamburger-btn{ display: inline-flex; }
            .hero-stack{ padding-top: 8px; }
            #main-logo img{
                width: min(82vw, calc((100svh - var(--hero-safe-top) - var(--hero-pad-bottom)) * 0.88));
                max-height: calc((100svh - var(--hero-safe-top) - var(--hero-pad-bottom)) * 0.36);
            }
        }

        @media (max-width: 520px){
            .header-logo img{ width: 120px; }
            .bubble-item{ height: 36px; padding: 0 12px; font-size: 13px; }
        }



        .hero-stage{
            position: relative;
            z-index: 1;
            isolation: isolate;
        }
        .dream-bg{
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            overflow: hidden;
            background:
              radial-gradient(1200px 800px at 20% 30%, rgba(173, 216, 230, 0.70), rgba(173, 216, 230, 0.00) 60%),
              radial-gradient(1100px 900px at 80% 25%, rgba(255, 182, 193, 0.65), rgba(255, 182, 193, 0.00) 62%),
              radial-gradient(1200px 900px at 55% 85%, rgba(216, 191, 255, 0.65), rgba(216, 191, 255, 0.00) 62%),
              linear-gradient(120deg, rgba(170, 230, 255, 0.30), rgba(255, 200, 235, 0.26), rgba(210, 195, 255, 0.30));
            filter: blur(10px) saturate(1.15);
            transform: translateZ(0);
            animation: dreamDrift 14s ease-in-out infinite alternate;
        }
        @keyframes dreamDrift{
            0%{
                background-position: 0% 0%, 100% 0%, 50% 100%, 0% 50%;
                transform: scale(1.02);
            }
            100%{
                background-position: 10% 6%, 92% 12%, 54% 94%, 100% 40%;
                transform: scale(1.06);
            }
        }

        .dream-bg::before,
        .dream-bg::after{
            content:"";
            position:absolute;
            inset:-15%;
            background:
              radial-gradient(closest-side at 30% 40%, rgba(255,255,255,0.45), rgba(255,255,255,0) 65%),
              radial-gradient(closest-side at 70% 30%, rgba(255,255,255,0.35), rgba(255,255,255,0) 65%),
              radial-gradient(closest-side at 55% 75%, rgba(255,255,255,0.28), rgba(255,255,255,0) 68%);
            filter: blur(22px);
            opacity: 0.75;
            mix-blend-mode: soft-light;
            transform: translateZ(0);
            animation: glowFloat 9s ease-in-out infinite alternate;
        }
        .dream-bg::after{
            opacity: 0.55;
            filter: blur(34px);
            animation-duration: 12s;
            animation-direction: alternate-reverse;
        }
        @keyframes glowFloat{
            0%{ transform: translate3d(-1.5%, -1.0%, 0) scale(1.00); }
            100%{ transform: translate3d(1.5%, 1.2%, 0) scale(1.05); }
        }

        #background-layer{ z-index: 0; }
        .hero-content{ z-index: 2; }

        
        #main-logo img{
            transform: translate3d(var(--logo-x, 0px), var(--logo-y, 0px), 0px)
                       rotateX(var(--logo-rx, 0deg)) rotateY(var(--logo-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
        }
        #character img{
            transform: translate3d(var(--char-x, 0px), var(--char-y, 0px), 0px)
                       rotateX(var(--char-rx, 0deg)) rotateY(var(--char-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
        }

        @media (prefers-reduced-motion: reduce){
            .dream-bg, .dream-bg::before, .dream-bg::after{ animation: none !important; }
        }



        #top, #top *{
            -webkit-user-select: none;
            user-select: none;
        }
        #top img{
            -webkit-user-drag: none;
            user-drag: none;
            pointer-events: none;
        }
        #top{
            touch-action: pan-y;
            perspective: 900px;
            perspective-origin: 50% 40%;
        }
        .hero-stack{
            transform-style: preserve-3d;
        }
        #background-layer{
            position: fixed;
            inset: 0;
            width: 100vw;
            height: 100vh;
            overflow: hidden;
            pointer-events: none;
            z-index: 0;

            transform: translate3d(var(--bg-x, 0px), var(--bg-y, 0px), 0px)
                       rotateX(var(--bg-rx, 0deg)) rotateY(var(--bg-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
			background: white;
        }
        @media (prefers-reduced-motion: reduce){
            #background-layer, #main-logo img, #character img{ transition: none !important; }
        }


        .icon-wrap{
            transform-style: preserve-3d;
            will-change: transform, filter, opacity;
        }
        #background-layer .icon-wrap{
            opacity: var(--d-op, 1);
            filter: blur(var(--d-blur, 0px));
            transform:
              translate3d(
                calc(var(--bg-x, 0px) * var(--d-move, 1)),
                calc(var(--bg-y, 0px) * var(--d-move, 1)),
                calc(var(--d-z, 0px))
              )
              rotateX(calc(var(--bg-rx, 0deg) * var(--d-rot, 1)))
              rotateY(calc(var(--bg-ry, 0deg) * var(--d-rot, 1)))
              rotateZ(var(--d-rz, 0deg))
              scale(var(--d-scale, 1));
            transition: none;
        }



        .hero-stage::after{
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 160px;
            pointer-events: none;
            background: linear-gradient(
                to bottom,
                rgba(255,255,255,0) 0%,
                rgba(255,255,255,0.2) 40%,
                rgba(255,255,255,0.5) 70%,
                rgba(255,255,255,8) 100%
            );
            z-index: 3;
        }

        @media (max-width: 640px){
            .hero-stage::after{
                height: 120px;
            }
        }


#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 14px;
  line-height: 1;
  z-index: 1000;
}
#page-top a {
  text-decoration: none;
  color: #fff;
  width: 100px;
  text-align: center;
  display: block;
  transition: all .3s ease;
}
#page-top a{
  will-change: transform;
  transition: all .3s ease;
}
#page-top:not(.is-launching) a:hover {
  transition: all .3s ease;
  transform: translateY(-10px);
}


@media (max-width: 640px){
#page-top {
    bottom: 10px;
    right: 10px;
    zoom: 0.8;
}
    
}

#rainbow-overlay{
  overflow: hidden;
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9990;
  opacity: 0;
  transform: translateY(40px);
  background: linear-gradient(180deg,
    #ffb3d9 0%,
    #ffd6a5 6%,
    #fdffb6 12%,
    #caffbf 18%,
    #9bf6ff 24%,
    #a0c4ff 30%,
    #bdb2ff 36%,
    #ffb3d9 50%,
    #ffd6a5 56%,
    #fdffb6 62%,
    #caffbf 68%,
    #9bf6ff 74%,
    #a0c4ff 80%,
    #bdb2ff 86%,
    #ffb3d9 100%
  );
  background-size: 100% 400%;
  background-position: 0 100%;
  will-change: opacity, transform, background-position;
  transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.9,.2,1);
  mix-blend-mode: normal;
  filter: brightness(1.15) saturate(1.1);
  box-shadow: inset 0 0 120px rgba(255,255,255,0.6);

}

#rainbow-overlay::before,
#rainbow-overlay::after{
  content:"";
  position:absolute;
  inset:-10%;
  pointer-events:none;
  opacity:0;
  mix-blend-mode: screen;
  will-change: opacity, transform, background-position;
}

#rainbow-overlay::before{
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.95) 0 1.2px, rgba(255,255,255,0) 2.6px),
    radial-gradient(circle at 28% 62%, rgba(255,255,255,.85) 0 1px, rgba(255,255,255,0) 2.4px),
    radial-gradient(circle at 44% 32%, rgba(255,255,255,.9) 0 1.4px, rgba(255,255,255,0) 2.8px),
    radial-gradient(circle at 63% 74%, rgba(255,255,255,.8) 0 1.1px, rgba(255,255,255,0) 2.5px),
    radial-gradient(circle at 78% 26%, rgba(255,255,255,.9) 0 1.3px, rgba(255,255,255,0) 2.7px),
    radial-gradient(circle at 90% 58%, rgba(255,255,255,.8) 0 1px, rgba(255,255,255,0) 2.4px),
    radial-gradient(circle at 8% 78%, rgba(255,255,255,.92) 0 1.1px, rgba(255,255,255,0) 2.5px),
    radial-gradient(circle at 36% 10%, rgba(255,255,255,.88) 0 1.2px, rgba(255,255,255,0) 2.6px),
    radial-gradient(circle at 58% 46%, rgba(255,255,255,.9) 0 1.3px, rgba(255,255,255,0) 2.7px),
    radial-gradient(circle at 82% 86%, rgba(255,255,255,.86) 0 1.15px, rgba(255,255,255,0) 2.55px);
  background-size: 340px 340px;
  animation: sparkleDrift 3.6s linear infinite, sparkleTwinkle 1.2s ease-in-out infinite;
  filter: blur(.12px) drop-shadow(0 0 10px rgba(255,255,255,.35));
}

#rainbow-overlay::after{
  background-image:
    radial-gradient(circle at 20% 40%, rgba(255,255,255,.95) 0 2.2px, rgba(255,255,255,0) 6px),
    radial-gradient(circle at 55% 20%, rgba(255,255,255,.9) 0 1.8px, rgba(255,255,255,0) 5.5px),
    radial-gradient(circle at 72% 55%, rgba(255,255,255,.85) 0 2px, rgba(255,255,255,0) 6.5px),
    radial-gradient(circle at 38% 78%, rgba(255,255,255,.9) 0 2.1px, rgba(255,255,255,0) 6.2px);
  background-size: 520px 520px;
  animation: sparkleDrift2 5.2s linear infinite, sparkleTwinkle2 1.8s ease-in-out infinite;
  filter: blur(.28px) drop-shadow(0 0 16px rgba(255,255,255,.32));
}

#rainbow-overlay.is-active::before,
#rainbow-overlay.is-active::after{
  opacity: 1;
}

@keyframes sparkleDrift{
  0%{ background-position: 0 0; transform: translate3d(0,0,0); }
  100%{ background-position: 260px -380px; transform: translate3d(0,-20px,0); }
}
@keyframes sparkleDrift2{
  0%{ background-position: 0 0; transform: translate3d(0,0,0); }
  100%{ background-position: -220px -520px; transform: translate3d(0,-35px,0); }
}
@keyframes sparkleTwinkle{
  0%,100%{ opacity:.42; }
  50%{ opacity:1; }
}
@keyframes sparkleTwinkle2{
  0%,100%{ opacity:.32; }
  50%{ opacity:1; }
}



#rainbow-overlay.is-active{
  opacity: 0.86;
  transform: translateY(0);
  animation: rainbowFlowUp 1.4s linear infinite, rainbowGlowPulse 2.4s ease-in-out infinite;
}

#rainbow-overlay.is-fading{
  opacity: 0;
  transform: translateY(0);
}


@keyframes rainbowGlowPulse{
  0%,100%{ filter: brightness(1.15) saturate(1.1); }
  50%{ filter: brightness(1.25) saturate(1.2); }
}

@keyframes rainbowFlowUp{
  0%{ background-position: 0 100%; }
  100%{ background-position: 0 0%; }
}

#page-top a{
  opacity: 1;
  transition: opacity .35s ease;
}
#page-top.is-launching a{
  animation: toTopLaunch 1.6s cubic-bezier(.2,.85,.2,1) forwards;
}
#page-top.is-launching a:hover{
  transform: none;
}
#page-top.is-vanishing a{
  opacity: 0;
}

@keyframes toTopLaunch{
  0%{ transform: translateY(0) rotate(0deg); }
  25%{ transform: translateY(18px) rotate(-30deg); }
  100%{ transform: translateY(-160px) rotate(-30deg); }
}




#menu2{
  position: relative;
  overflow: hidden;
}
#menu2::before{
  content:"";
  position:absolute;
  inset:-2px 0;
  background: #E9F7FF;
  transform: translateX(100%);
  transition: transform 1.05s cubic-bezier(.22,.61,.36,1);
  z-index:0;
  clip-path: polygon(0 var(--slantCut), 100% 0, 100% calc(100% - var(--slantCut)), 0 100%);
}
#menu2.is-inview::before{
  transform: translateX(0);
}
#menu2 .content-inner{
  position: relative;
  z-index:1;
}

#menu3{
  position: relative;
  overflow: hidden;
}
#menu3::before{
  content:"";
  position:absolute;
  inset:-2px 0;
  background: #FFE9EF;
  transform: translateX(-100%);
  transition: transform 1.05s cubic-bezier(.22,.61,.36,1);
  z-index:0;
  clip-path: polygon(0 0, 100% var(--slantCut), 100% 100%, 0 calc(100% - var(--slantCut)));
}
#menu3.is-inview::before{
  transform: translateX(0);
}
#menu3 .content-inner{
  position: relative;
  z-index:1;
}

.news-inner{
    margin-top: clamp(14px, 2.6vw, 22px);
    position: relative;
	padding: 0 50px;
}

.news-grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 2.5vw, 24px);
}

@media (max-width: 640px){
    .news-inner{
    	padding: 0 0px;
    }
    .news-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.view-all-wrap{
    display: flex;
    justify-content: center;
    margin-top: clamp(18px, 3vw, 32px);
}

.view-all-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 148px;
    padding: 12px 28px;
    border-radius: 999px;
    background: rgba(255,255,255,0.94);
    box-shadow: 0 10px 24px rgba(0,0,0,0.12);
    color: rgba(15,23,42,0.9);
    font-weight: 800;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.view-all-btn:hover{
    transform: translateY(-2px);
    background: #fff;
    box-shadow: 0 14px 30px rgba(0,0,0,0.15);
}

.view-all-btn:focus-visible{
    outline: 3px solid rgba(120,117,255,0.45);
    outline-offset: 4px;
}

.news-card{
    border-radius: 22px;
    background: rgba(248, 250, 252, 0.92);
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 0px 10px rgba(0,0,0,0.08);
    overflow: hidden;
    transform: translateY(18px);
    opacity: 0;
    transition: transform 650ms cubic-bezier(.2,.9,.2,1), opacity 650ms ease;
    will-change: transform, opacity;
}

.news-card.is-show{
    transform: translateY(0);
    opacity: 1;
}

.news-card-link{
    display: block;
    padding: 14px 14px 16px;
    color: inherit;
    text-decoration: none;
}

.news-card-link:focus-visible{
    outline: 3px solid rgba(59,130,246,0.55);
    outline-offset: 3px;
    border-radius: 18px;
}

.news-thumb{
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: rgba(0,0,0,0.04);
    margin-bottom: 12px;
}

.news-thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.news-date{
    display: inline-block;
    font-size: 12px;
    letter-spacing: .06em;
    color: rgba(15,23,42,0.62);
    margin-bottom: 6px;
}

.news-title{
    margin: 0 0 8px;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 800;
    color: rgba(15,23,42,0.92);
}

.news-excerpt{
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    color: rgba(15,23,42,0.76);
}

.news-more-wrap{
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.news-more{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.75);
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 12px 28px rgba(0,0,0,0.08);
    text-decoration: none;
    font-weight: 800;
    color: rgba(15,23,42,0.86);
    transition: transform 180ms ease, background 180ms ease;
}

.news-more::after{
    content: "→";
    font-weight: 900;
}

.news-more:hover{
    transform: translateY(-1px);
    background: rgba(255,255,255,0.9);
}

.news-modal-close{
  z-index: 9999;
}
.news-modal-date,
time.news-modal-date {
  display: inline-block;
  padding: 0.4em 1em;
  border-radius: 999px;
  background: linear-gradient(135deg, #93CBFF 0%, #FFA4C0 100%);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.news-modal-title,
h2.news-modal-title {
  background: linear-gradient(135deg, #63B4FF 0%, #FF7AA3 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  font-weight: 700;
  line-height: 1.5;
}
hr.h2 {
  height: 1px;
  background: linear-gradient(135deg, #FFA4C0 0%, #93CBFF 100%);
  border: none;
}

.tableinfo01 {
  border-collapse: collapse;
  border: 2px solid #f5a3cf;
  margin: 1.5rem auto;
  width: 640px;
}

.tableinfo01 th,
.tableinfo01 td {
  border: 1px solid #f5a3cf;
  padding: 0.9em 1em;
  text-align: left;
  vertical-align: top;
}

.tableinfo01 th {
  background: #e6f7ff;
  color: #555;
  font-weight: 700;
  white-space: nowrap;
}

.tableinfo01 td {
  background: #fff;
  color: #555;
}

@media screen and (max-width: 720px){

.tableinfo01{
		width: 100%;
}
th,
td{
        display: block;
		text-align: left;
}

}





.mdbar {
  display: inline-block;
  padding: 0.45em 1em;
  margin-bottom: 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, #93CBFF 0%, #FFA4C0 100%);
  color: #fff;
  font-weight: 700;
  line-height: 1.6;
}
.news-modal-body{
  margin-top: 30px;
}
.news-modal-body p{
  width: 100%;
  max-width: 800px;
  margin: 20px auto 0;
}
.news-modal-body p a{
   color: #FF0067;
}
.news-modal-body img{
	width:100%;
	max-width: 640px;
}

.EntryBody{
	padding: 50px 50px 20px 50px;
	border-radius: 30px;
	background: rgba(255,255,255,0.50);
	border: 1px solid #DE9CBF;
	max-width: 800px;
	margin: 0 auto;
	}




.hero-stage{ position: relative; }
.hero-fuwa{
    position: absolute;
    right: clamp(14px, 2.2vw, 34px);
    bottom: clamp(14px, 2.2vw, 34px);
    width: clamp(120px, 20vw, 150px);
    z-index: 30;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.hero-fuwa img{
    width: 100%;
    height: auto;
    display: block;
    animation: heroFuwaPulse 2.2s ease-in-out infinite;
    transform-origin: 70% 70%;
    -webkit-user-drag: none;
    user-drag: none;
}
@keyframes heroFuwaPulse{
    0%, 100%{ transform: scale(1.15); }
    50%{ transform: scale(1.2); }
}

.about-section .content-inner{
    max-width: 1100px;
    margin: 80px auto 0;
}
.about-fuwa-inner{
    position: relative;
    width: 100%;
    max-width: none;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;

    aspect-ratio: 16 / 9;
    overflow: visible;
    transform: none;
    opacity: 1;
    filter: none;
}
.about-fuwa-stack{
    position: relative;
    width: 100%;
    height: 100%;
}
.about-fuwa{
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
    transform: scale(0.35);
    pointer-events: none;
    -webkit-user-drag: none;
    user-drag: none;
    will-change: transform, opacity;
}
.about-fuwa-3{ z-index: 1; transform-origin: 92% 92%; }
.about-fuwa-2{ z-index: 2; transform-origin: 8% 92%; }
.about-fuwa-1{ z-index: 3; transform-origin: 50% 92%; }

.about-fuwa.is-show{
    animation: fuwaPop 700ms cubic-bezier(0.22, 1.4, 0.36, 1) forwards;
}

@keyframes fuwaPop{
    0%   { opacity: 0; transform: scale(0.18); }
    60%  { opacity: 1; transform: scale(1.06); }
    82%  { opacity: 1; transform: scale(0.98); }
    100% { opacity: 1; transform: scale(1.00); }
}


        main{ position: relative; z-index: 1; }

        #site-header{ z-index: 10000; }
        .header-inner{ position: relative; z-index: 10001; }
        .header-logo{ position: relative; z-index: 10002; }
        .hamburger-btn{ position: relative; z-index: 10002; }
        

    .collab-article{
      --ink:#2a2a2a;
      --muted:#666;
      --line:rgba(0,0,0,.08);
      --shadow:0 14px 40px rgba(0,0,0,.08);
      --shadow2:0 10px 26px rgba(0,0,0,.06);
      --radius:22px;
      color:var(--ink);
      line-height:1.9;
      letter-spacing:.02em;
    }

    .collab-wrap{
      max-width: 980px;
      margin: 0 auto;
      border-radius: var(--radius);
      backdrop-filter: blur(2px);
    }

    .collab-head{
      position: relative;
      padding: clamp(14px, 2.2vw, 22px) clamp(14px, 2.6vw, 26px);
      border-radius: calc(var(--radius) - 6px);
      box-shadow: var(--shadow2);
      overflow: hidden;
    }
    .collab-head > *{ position:relative; z-index:1; }

    .collab-title{
      margin: 0;
      font-weight: 800;
      font-size: clamp(18px, 2.4vw, 26px);
      line-height: 1.5;
    }
    .collab-kicker{
      margin-top: 10px;
      font-size: clamp(12px, 1.6vw, 14px);
      color: var(--muted);
    }
    .collab-divider{
      margin-top: 14px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(0,0,0,.12), transparent);
    }

    .collab-media{
      display: grid;
      gap: 14px;
	  margin: 0 auto 30px;
      width: 100%;
    }
    .collab-img{
      height: auto;
	  margin: 0 auto;
      display: block;
      filter:
        drop-shadow(0 10px 18px rgba(0,0,0,.16))
        drop-shadow(0 2px 4px rgba(0,0,0,.10));
      transform-origin: center;
      user-select: none;
      -webkit-user-drag: none;
    }
	}
    .cp{
        width: 60%;
        margin: 0 auto;
    }
    
        @media (max-width: 640px){

    .collab-media{
      width: 80%;
	  margin: 0 auto;
    }
    .cp{
        width: 100%;
    }
    }
    
    .about-img{
    padding: 0 20px;
    }

    .collab-body{
      background:rgba(255,255,255,0.50);
    margin: 0 30px;
    box-shadow: 0px 0px 10px rgba(0,0,0,0.0);
    border-radius: 20px;
    }
    .collab-body p{
      margin: 0;
      white-space: pre-wrap;
      margin: 20px 0;
    }
    
        @media (max-width: 640px){

    .collab-body{
    padding: 20px 0;
    }
        }

    span.under-grad{
    background: linear-gradient(to right, #E2FFFC 0%, #FFE2F3 100%);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 100% 50%;
    }
    
    
    .collab-body p + p{ margin-top: 14px; }

    .collab-voices{
      background:rgba(255,255,255,0.50);
      margin-top: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(12px, 2.2vw, 18px);
    }
    .voice{
      border-radius: 18px;
      padding: 16px 16px 14px;
      position: relative;
      overflow: hidden;
    }
    .voice::before{
      content:"";
      position:absolute;
      inset: -2px;
      pointer-events:none;
      z-index:0;
    }
    .voice > *{ position:relative; z-index:1; }


    .voice-title-1,
    .voice-title-2{
  display:inline-block;
  padding:10px 18px;
  margin-bottom:10px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.06);

  /* グラデーション文字 */
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;

  letter-spacing:.04em;
  font-size:16px;
  font-weight: 900;
}

    .voice-title-1{
  background-image:linear-gradient(90deg,#FFC600,#FF1414);
  }
    .voice-title-2{
  background-image:linear-gradient(90deg,#00E3FF,#1369FF);
  }
  

    .voice p{
      margin: 0;
      white-space: pre-wrap;
      color: #333;
    }

    .reveal{
      opacity: 0;
      transform: translateY(12px) scale(.985);
      filter: blur(1px);
      transition: opacity .9s ease, transform .9s ease, filter .9s ease;
      will-change: opacity, transform, filter;
    }
    .reveal.is-in{
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
    }

    .collab-footspace{
      margin-top: 10px;
    }
    .collab-info {
    margin-top: 60px;
    margin-bottom: 50px;
    background: #ffee0050;
    padding: 50px 30px;
    border-radius: 20px;
    }   
    .collab-info-title{
        background: #fff;
        padding: 10px;
        border-radius: 50px;
        color: #000;
    }

    .only-pc{ display:block; }
    .only-sp{ display:none; }





@media (max-width: 640px){
      .collab-wrap{ border-radius: 18px; }
      .collab-voices{ grid-template-columns: 1fr; }
      .only-pc{ display:none; }
      .only-sp{ display:block; }
      
      
    .about-img{
    padding: 0 0px;
    }
    .collab-body{
    margin: 0;
    }
    
    .collab-info {
    margin-top: 60px;
    background: #ffee0050;
    padding: 50px 20px;
    border-radius: 20px;
    }   
    
    .collab-info-title{
        display: block;
        padding: 10px 20px;
    }

    .collab-img{
        margin: 0px 0;
    }
    

    .voice-title-1,
    .voice-title-2{
  display:block;
  padding:10px 18px;
  margin-bottom:30px;
  text-align: center;
}

    
}



.site-footer{
  position: relative;
  margin-top: 100px;
  background: #f3f4f6;
  text-align: center;
}

.footer-wave{
  position: absolute;
  top: -100px;
  left: 0;
  width: 100%;
  height: 100px;
  overflow: hidden;
  line-height: 0;
            background: rgba(255,255,255,0.80);
}

.footer-wave svg{
  display: block;
  width: 100%;
  height: 100%;
}

.footer-wave path{
  fill: #f3f4f6;
}

.footer-inner{
  padding: 20px 20px 60px;
}

.footer-link{
    margin: 20px;
}
.footer-copy{
  font-size: 14px;
  letter-spacing: .08em;
  color: rgba(0,0,0,.65);
  font-weight: 600;
}





.news-card-link{
    cursor: pointer;
}

body.modal-open{
    overflow: hidden;
    touch-action: none;
}

body.modal-open #site-header,
body.modal-open .header-inner{
    pointer-events: none;
}

body.modal-open .news-modal,
body.modal-open .news-modal *{
    pointer-events: auto;
}

.news-modal{
    position: fixed;
    inset: 0;
    z-index: 2147483640;
    display: flex;
    align-items: stretch;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .24s ease, visibility .24s ease;
}

.news-modal.is-open{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.news-modal-overlay{
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.9);
}

.news-modal-panel{
    position: relative;
    width: min(100%, 720px);
    max-height: 100%;
    z-index: 1;
    display: flex;
    flex-direction: column;
}

.news-modal-scroll{
    position: relative;
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 68px 0 32px;
    scrollbar-width: none;
}

.news-modal-scroll::-webkit-scrollbar{
    display: none;
}

.news-modal-article{
    color: rgba(15,23,42,0.92);
}

.news-modal-date{
    display: inline-block;
    margin-bottom: 14px;
    font-size: 14px;
    letter-spacing: .08em;
    color: rgba(15,23,42,0.7);
}

.news-modal-title{
    margin: 0 0 18px;
    font-size: 24px;
    line-height: 1.2;
    font-weight: 900;
    color: rgba(15,23,42,0.96);
}

.news-modal-body{
    font-size: 16px;
    line-height: 2;
}

.news-modal-body > *:first-child{
    margin-top: 0;
}

.news-modal-body > *:last-child{
    margin-bottom: 0;
}

.news-modal-close{
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 2147483647;
    width: 56px;
    height: 56px;
    border: 0;
    padding: 0;
    background: #fff;
    color: rgba(15,23,42,0.92);
    font-size: 40px;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
    border-radius: 50px;
}

.news-modal-close:focus-visible{
    outline: 3px solid rgba(59,130,246,0.45);
    outline-offset: 3px;
    border-radius: 999px;
}

@media (max-width: 767px){
    .news-modal-close{
        top: 12px;
        right: 12px;
        width: 48px;
        height: 48px;
        font-size: 34px;
    }
}

@media (max-width: 767px){
    .news-modal{
        padding: 18px 20px;
    }

    .news-modal-panel{
        width: 100%;
    }

    .news-modal-scroll{
        padding-top: 62px;
    }

    .news-modal-title{
        font-size: 20px;
    }
}


.news-modal-footer{
    display: flex;
    justify-content: center;
    padding-top: 10px;
}

.news-modal-bottom-close{
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 14px 40px;
    background: linear-gradient(135deg, #93CBFF 0%, #FFA4C0 100%);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(147, 203, 255, 0.28);
    transition: transform 180ms ease, opacity 180ms ease, box-shadow 180ms ease;
}

.news-modal-bottom-close:hover{
    transform: translateY(-1px);
    opacity: 0.96;
}

.news-modal-bottom-close:focus-visible{
    outline: 3px solid rgba(99, 180, 255, 0.35);
    outline-offset: 3px;
}

















/* ページナビゲーション */


#page-nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 48px auto;
    flex-wrap: wrap;
    color: #333!important;
}

/* 共通デザイン */
#page-nav a,
#page-nav span{
    color: #333!important;
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    transition: all 0.25s ease;
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    border: none;
}

/* 通常ページ */
#page-nav .link_page,
#page-nav .link_before,
#page-nav .link_next{
    color: #000;
}

/* hover */
#page-nav .link_page:hover,
#page-nav .link_before:hover,
#page-nav .link_next:hover{
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}

/* 現在ページ */
#page-nav .current_page{
    background: linear-gradient(
        135deg,
        #9EDCFF 0%,
        #FFC3DA 100%
    );
    color: #fff;
    box-shadow: 0 6px 18px rgba(158, 220, 255, 0.28);
}

#page-nav .link_before,
#page-nav .link_next{
    font-size: 20px;
}

@media (max-width: 720px){

    #page-nav{
        gap: 5px;
		zoom:0.75;
    }

    #page-nav a,
    #page-nav span{
        width: 46px;
        height: 46px;
        font-size: 16px;
    }

}


.page-pagination{
	display: none;
}



/* =========================
   ARTICLE FOOTER NAV
========================= */

.articleFooter{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin: 48px auto;
    flex-wrap: wrap;
}

/* ボタン */
.articleFooter span a{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    padding: 16px 28px;
    background: #fff;
    color: #000;
    text-decoration: none;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    border-radius: 18px;
    border: none;
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
    transition: 
        transform 0.25s ease,
        box-shadow 0.25s ease,
        opacity 0.25s ease;
}

/* hover */
.articleFooter span a:hover{
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
    opacity: 0.96;
}

/* 左右の矢印 */
.articleFooter span:first-child a::before{
    content: "＞";
    margin-right: 8px;
    font-size: 14px;
}

.articleFooter span:last-child a::before{
    content: "＜";
    margin-right: 8px;
    font-size: 14px;
}

/* スマホ */
@media (max-width: 720px){

    .articleFooter{
        gap: 12px;
    }

    .articleFooter span a{
        min-width: 150px;
        padding: 14px 20px;
        font-size: 15px;
        border-radius: 16px;
    }

}
.articleFooter span:first-child a::before,
.articleFooter span:last-child a::before{
	display: none;
}



/* goods/article: 5枚画像スライドショー */
.article-image-swiper-wrap{
    width: min(100%, 720px);
    margin: 0 auto 28px;
    position: relative;
}
.article-image-swiper{
    width: 100%;
    padding: 0 0 38px;
    overflow: hidden;
}
.article-image-swiper .swiper-slide{
    display: flex;
    justify-content: center;
    align-items: center;
}
.swiper-slide img{
	border-radius: 10px;
	box-shadow: 0 0 60px #eee;
	}

.article-image-swiper .swiper-slide img{
    display: block;
    width: min(100%, 600px);
    height: auto;
    margin: 0 auto;
}
.article-image-swiper .swiper-button-prev,
.article-image-swiper .swiper-button-next{
    color: #ff85c8;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: rgba(255,255,255,0.88);
    box-shadow: 0 10px 24px rgba(0,0,0,0.12);
}
.article-image-swiper .swiper-button-prev:after,
.article-image-swiper .swiper-button-next:after{
    font-size: 22px;
    font-weight: 900;
}
.article-image-swiper .swiper-pagination-bullet{
    width: 11px;
    height: 11px;
    background: #ff85c8;
    opacity: .45;
}
.article-image-swiper .swiper-pagination-bullet-active{
    background: #ff85c8!important;
    opacity: 1;
}
@media (max-width: 640px){
    .article-image-swiper-wrap{
        width: 100%;
        margin-bottom: 24px;
    }
    .article-image-swiper .swiper-button-prev,
    .article-image-swiper .swiper-button-next{
        width: 38px;
        height: 38px;
    }
    .article-image-swiper .swiper-button-prev:after,
    .article-image-swiper .swiper-button-next:after{
        font-size: 18px;
    }
}
