@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

body {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
}
a {
  transition: all 0.3s !important;
}
a:hover {
  opacity: 0.6;
}
a[href^="tel:"] {
  pointer-events: none;
}
br {
  content: "";
  display: block;
  white-space-collapse: discard;
}
.dis_none {
  display: none !important;
}
.br_pc {
  display: block !important;
}
.br_tb_n {
  display: block !important;
}
.br_tb_b,
.br_sp {
  display: none !important;
}
li {
  list-style: none;
}
figure img {
  -o-object-fit: cover;
  object-fit: cover;
}
::selection {
  background: #00FFFF;
  color: #333;
}
/* =========================================================
//  ヘッダー
// ========================================================= */
.l-header {
  background: initial;
  top: 2.3vw;
  position: fixed;

  transition: transform 0.35s ease;

  h1 {
    height: 4.1vw;
  }
}

.-series .l-header__logo {
  padding: 7px 0;
}

.l-fixHeader {
  box-shadow: none !important;
}
.l-header__inner,
.l-fixHeader__inner {
  align-items: center !important;
  max-width: 94% !important;
  padding-right: 0.6vw;
}
.l-fixHeader {
  position: fixed;
  top: -100px;
  left: 0;
  width: 100%;
  padding: 10px;
  z-index: 1000;
  opacity: 0;
  transition:
    top 0.5s ease,
    opacity 0.5s ease;
}
.l-fixHeader.show {
  top: 0;
  opacity: 1;
}
[data-scrolled="true"] .l-fixHeader[data-ready] {
  -webkit-transform: translateY(0) !important;
  transform: translateY(-30px) !important;
  visibility: visible;
}

.c-gnavWrap {
  height: 50px;
}
.c-gnav {
  align-items: center;

  li {
    a {
      	font-weight: 900;
            padding: 0 1vw !important;

      span {
        font-size: clamp(0.875rem, 0.5898rem + 0.5935vw, 1.25rem) !important;
      }
      &:hover {
        color: #00FFFF;
        opacity:1 !important;
      }
		&::after {
  background: rgba(255,71,145,0.8);
  width: 0%;
  height: 20px;
bottom: 5px;
			
}
    }
  }
  .sub-menu {
    background:initial;
    width: 275px !important;
	  padding-top:0.5rem;

    li {
      width: 100% !important;
		margin-bottom:0.3rem;
		
      a {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex: 1;
        min-width: 0;
        width: 100% !important;
		  padding:1rem 1vw !important;
		  background: #FFFF00;

        &::before {
          display:none;
        }

        &:hover {
          opacity: 0.3 !important;
        }

        span {
          color: #000;
          font-size: clamp(0.75rem, 0.3738rem + 0.7828vw, 1rem) !important;
          font-weight: 600 !important;
          flex: 1;
          min-width: 0;
          white-space: normal;
          word-break: break-word;
        }
		  
		 &:first-child{
	border-radius:16px;
}
&:last-child{
	border-radius:16px;
}
      }
    }
  }
}

.-series-right .w-header {
        margin-left: 1.2vw;
}
.h_contact{
	a{
		color:#000;
		font-size: clamp(0.75rem, 0.3697rem + 0.7913vw, 1.25rem) !important;
		font-weight:900;
		
		background:#00FFFF;
		border-radius:100px;
		padding: 0.85vw 2vw !important;
		display:block;
		
		&:hover{
			background:#FF4791;
			opacity:1;
		}
}
}
/* -------------------------------------
 * スマホメニュー
 * ------------------------------------- */
/* ハンバーガーメニューアイコン */
.l-header__menuBtn {
  top: 20px;
  right: 0;
  position: relative;
}
.c-iconBtn {
  font-family: "Jost", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;

  justify-content: space-evenly !important;
  flex-direction: column !important;
}
.-menuBtn .c-iconBtn__icon {
  width: 35px;
  height: 4px;
  background-color: #00FFFF;
  display: grid;
  place-items: center;
  transition: transform 0.3s;
}
.-menuBtn .c-iconBtn__icon::before,
.-menuBtn .c-iconBtn__icon::after {
  grid-area: 1/1;
  content: "";
  display: block;
  inset: 0;
  width: 35px;
  height: 4px;
  background-color: #00FFFF;
  transition: transform 0.3s;
}
.-menuBtn .c-iconBtn__icon::before {
  transform: translateY(-10px);
}
.-menuBtn .c-iconBtn__icon::after {
  transform: translateY(10px);
}
/* ハンバーガーメニューメニューアイコン（オープン時） */
.p-spMenu__closeBtn {
  display: block !important;
right: 30px !important;
    top: 20px;
}
[data-spmenu="opened"] .-menuBtn .c-iconBtn__icon::before {
  background-color: #00FFFF;
  transform: rotate(45deg);
}
[data-spmenu="opened"] .-menuBtn .c-iconBtn__icon {
  background-color: transparent;
}
[data-spmenu="opened"] .-menuBtn .c-iconBtn__icon::after {
  background-color: #00FFFF;
  transform: rotate(-45deg);
}

/* ボタンラベル */
.l-header__menuBtn .c-iconBtn::after,
.p-spMenu__closeBtn .c-iconBtn::after {
  font-size: 14px;
  font-weight: 500 !important;
  color: #fff;
  display: block;
}
/* ---------------------------------
 * 開閉メニューのフルスクリーン設定
 * --------------------------------- */
.p-spMenu__inner {
  width: 40%;
}
.p-spMenu__overlay {
  background: transparent;
}
.-right .p-spMenu__inner {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  opacity: 0;
  transition: opacity 0.25s;
}
[data-spmenu="opened"] .p-spMenu__inner {
  -webkit-transform: translateX(0);
  transform: translateX(0);
  opacity: 1;
}
.p-spMenu__inner::before {
  background: initial;
  opacity: 1;
}
/* --------------------------------
 * メニュー内の設定
 * -------------------------------- */
/* 開閉メニュー内のタイトルを非表示 */
.c-widget__title.-spmenu {
  display: none;
}
/* メニューリンクの設定 */
.p-spMenu__nav {
  display: none;
}
.p-spMenu__bottom {
  width: 100%;
}
.p-spMenu__body {
  padding: 0;
	right: 20px;
	padding-right: 6px;
}

.p-spMenu__bottom{
  background-image: url("../../uploads/2026/04/grid_bg.svg");
  background-repeat: repeat;
	background-color: #fff;
  height: fit-content;
  border-radius: 16px !important;
	padding: 2rem 3vw;
	
	border: 6px solid #000;
	box-shadow: 6px 6px 0px 0px rgb(0, 0, 0);
}

	li{
		.en{
			font-size: 23px;
		}
		.jp{
			font-size:13px;
			font-weight:700;
			display:block;
		}
	}

[data-partsid="73"] {
  .sn_nav {
	  padding-left: 0;
	  
    li {
      margin: 1rem;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex: 1;

      &::before {
        content: "";
        width: 7px;
        height: 40px;
        display: block;
        background: #000;
        margin: 0 0.8rem 0 0;
        border-radius: 10px;
        flex-shrink: 0;
      }

      a {
        color: #000;
        font-weight: 700;
      }
    }
  }
}
[data-partsid="73"] {
  .sb_li {
    position: relative;
    cursor: pointer;

    color: #000;
    font-weight: 700;
    flex-wrap: wrap;
  }
  .sb_li .submenu {
	width: 100%;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease;
  }
  .sb_li.open .submenu {
    max-height: 500px;
  }
  .sb_li::after {
    content: "";
    position: absolute;
	right: auto;
    left: 160px;
    top: 12px;
    width: 10px;
    height: 11px;
    background-color: #FF4791;
    -webkit-mask: url("../../uploads/2026/04/arrow.svg");
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask: url("../../uploads/2026/04/arrow.svg");
    mask: url("../../uploads/2026/04/arrow.svg");
    mask-position: center;
    mask-size: contain;
    mask-repeat: no-repeat;
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.3s ease;
	  transform: rotate(210deg);
  }
  .sb_li.open::after {
    transform: rotate(30deg);
  }
  .submenu {
    padding-left: 0;

    li {
		  	background-image: url("../../uploads/2026/04/ink03.svg");
  			background-repeat: no-repeat;
  			background-size: contain;
		
      &::before {
        content: "";
        width: 9px;
        height: 2px;
        display: block;
        background: #fff;
        margin: 0 0.4rem 0 0;
        border-radius: 50px;
      }
      a {
       	font-size: 17px;
        font-weight: 700;

        flex-shrink: 0;
      }
    }
  }
	.se_li{
		    li {
		  	background-image: url("../../uploads/2026/04/ink04.svg");
	}
}

  .com_nav {
    padding-left: 2.5rem;

    li {
      padding: 0.5rem 0 0;

      a {
        color: #000;
        font-size: 15px;
        font-weight: 500;
      }
    }
  }
.h_contact {
  a {
    font-size: 16px !important;
    text-align: center;
  }
}
	figure{
		width: 80%;
  		margin: 0 auto;
	}
}

/* 閉じるボタンの設定 */
.c-iconBtn {
  color: #fff;
}
/* =========================================================
//  フッター
// ========================================================= */
.l-footer{
	margin-top: -22px;
}

.roller-wrap {
  position: relative;
  width: 100%;
  height: 123px;
  overflow: hidden;
	z-index:3;
}
.roller-wrap {
  --speed: 2s;
}
.ink,
.roller {
  animation: none;
}

/* 発火したときだけ動く */
.roller-wrap.is-active .ink {
  animation: ink-grow var(--speed) ease-out forwards;
}
.roller-wrap.is-active .roller {
  animation: roll-move var(--speed) ease-out forwards;
}

/* インク
  background: linear-gradient(to right,
    #000 70%,
    rgba(0,0,0,0.4) 90%,
    transparent 100%
  ); */
.ink {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 80px;
  width: 0;
  background: #000;
  filter: blur(1px);
}

/* ローラー */
.roller {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 136px;
}

/* 移動 */
@keyframes roll-move {
  from { left: 0; }
  to   { left: 80%; }
}

/* インク伸び */
@keyframes ink-grow {
  from { width: 0; }
  to   { width: 80%; }
}

/* フッター */
.l-footer__widgetArea{
	margin-bottom: 2.1vw;
}
.w-footer{
	padding-top: 2.3vw;
}
[data-partsid="82"] {
	width: 67vw;
	margin:0 auto;
	
	.swell-block-columns{
		margin-bottom: 2vw;
		
		.swell-block-columns__inner{
			justify-content: space-between;
		}
		
		.leftbox{
			width: 27%;
			
			figure{
				text-align:left;
				margin-bottom: 3.4vw;
			}
			.add{
				line-height: 2rem;
				margin-bottom: 1vw;
			}
			.notes{
				font-size:12px !important;
				line-height: 1.6rem;
			}
		}
		.rightbox{
        width: 61%;
        display: flex;
        column-gap: 3.3vw;
					
					p{
							font-size: clamp(0.875rem, 0.6848rem + 0.3956vw, 1.125rem);
							font-weight:700;
					}
					
					ul{
						padding-left: 0;
						
						li{
							font-size: clamp(0.875rem, 0.6848rem + 0.3956vw, 1.125rem);
							font-weight:700;
							margin-bottom: 1.3rem;
						}
					}
			}
	}
}
.marquee {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;

  overflow: hidden;
  white-space: nowrap;
}

.marquee p {
  font-size: clamp(5rem, 2.1476rem + 5.9347vw, 8.75rem);
  font-weight: 900;
	letter-spacing:-1rem;
  display: inline-block;
  animation: scroll-left 120s linear infinite;
	opacity:0.3;
	line-height: 8rem;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%);
  }
}

.track {
  display: flex;
  width: max-content;
  animation: loop 50s linear infinite;
}

@keyframes loop {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.l-footer__foot{
	border-top: 1px solid;
  width: 67vw;
  margin: 0 auto;
  padding: 1.8vw 0 !important;

	.l-container{
		padding: 0;
	}
	.copyright{
	text-align:right !important;
}
}

/* =========================================================
//  装飾（共通）
// ========================================================= */
.jp {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-style: normal;
}
.en {
  font-family: "Archivo Black", sans-serif;
  font-style: normal;
  font-weight: 400 !important;
}
.ylw{
	color:#FFFF00 !important;
}
.lb{
	color:#00FFFF !important;
}
.pnk{
	color:#FF4791 !important;
}



/* =========================================================
//  トップ
// ========================================================= */
.l-content {
  padding-top: 0 !important;
  margin-bottom: 0 !important;
}

/* 全画面メインビジュアル */
.mv {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  position: relative;
}

.mv__img {
  width: 100%;
  height: 100%;
}

.mv__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;

  /* 初期状態：見えない + ぼやけ */
  opacity: 0;
  filter: blur(20px);
  transform: scale(1.05);

  /* アニメーション */
  animation: mvReveal 1.6s ease-out forwards;
}

/* アニメーション定義 */
@keyframes mvReveal {
  0% {
    opacity: 0;
    filter: blur(25px);
    transform: scale(1.08);
  }
  60% {
    opacity: 1;
    filter: blur(10px);
    transform: scale(1.04);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }
}

/* =========================
   スライド
========================= */

/* =========================
   キャッチ全体
========================= */
.mv__catch {
position: absolute;
  top: 68%;
  left: 50px;
	width: 53vw;
  transform: translateY(-50%);
  z-index: 10;
}

/* 行（左寄せ横並び） */
.catch-line {
	width:100%;
  display: flex;
  justify-content: flex-start;
}

/* 初期状態 */
.catch-item {
  opacity: 0;
	width:100%;
	height:auto;
}

/* =========================
   強いバウンス（02〜04用）
========================= */
.catch-line:nth-of-type(2) .catch-item {
  animation: popBounce 0.65s cubic-bezier(.2, 1.4, .3, 1) forwards;
}

/* =========================
   弱いバウンス（01・05用）
========================= */
.catch-line:nth-of-type(1) .catch-item,
.catch-line:nth-of-type(3) .catch-item {
  animation: popBounceSoft 0.6s cubic-bezier(.2, 1.4, .3, 1) forwards;
}

/* =========================
   アニメーション（強）
========================= */
@keyframes popBounce {
  0% {
    opacity: 0;
    transform: translate(
  calc(var(--x, 0px)),
  calc(60px + var(--y, 0px))
) scale(0.6);
  }
  50% {
    opacity: 1;
    transform: translate(
  calc(var(--x, 0px)),
  calc(-18px + var(--y, 0px))
) scale(1.08);
  }
  70% {
    transform: translate(
  calc(var(--x, 0px)),
  calc(10px + var(--y, 0px))
) scale(0.98);
  }
  85% {
    transform: translate(
  calc(var(--x, 0px)),
  calc(-6px + var(--y, 0px))
) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translate(
  var(--x, 0px),
  var(--y, 0px)
) scale(1);
  }
}

/* =========================
   アニメーション（弱）
========================= */
@keyframes popBounceSoft {
  0% {
    opacity: 0;
    transform: translate(
  calc(var(--x, 0px)),
  calc(18px + var(--y, 0px))
) scale(0.92);
  }
  70% {
    opacity: 1;
    transform: translate(
  calc(var(--x, 0px)),
  calc(-4px + var(--y, 0px))
) scale(1.01);
  }
  85% {
    transform: translate(
  calc(var(--x, 0px)),
  calc(2px + var(--y, 0px))
) scale(0.995);
  }
  100% {
    opacity: 1;
    transform: translate(
  var(--x, 0px),
  var(--y, 0px)
) scale(1);
  }
}

/* =========================
   01（先行）
========================= */
.catch-line:nth-of-type(1) .catch-item {
  animation: popBounceSoft 0.7s ease-out forwards;
  animation-delay: 1.6s;
}

/* =========================
   02〜04（少し間をあけて一気）
========================= */
.catch-line:nth-of-type(2) .catch-item:nth-of-type(1) {
  animation-delay: 2.05s;
}
.catch-line:nth-of-type(2) .catch-item:nth-of-type(2) {
  animation-delay: 2.25s;
}
.catch-line:nth-of-type(2) .catch-item:nth-of-type(3) {
  animation-delay: 2.45s;
}

/* =========================
   05（さらに少し間）
========================= */
.catch-line:nth-of-type(3) .catch-item {
  animation: popBounceSoft 0.7s ease-out forwards;
  animation-delay: 2.85s;
}
/* =========================
   キャッチ微調整（位置補正）
   ※そのまま下に追加
========================= */

/* 01 */
.catch-line:nth-of-type(1) .catch-item {
--x: -1.5vw;
  --y: 2vw;
}

/* 02〜04 */
.catch-line:nth-of-type(2) .catch-item:nth-of-type(1) {
  --x: 0px;
  --y: 0px;
}

.catch-line:nth-of-type(2) .catch-item:nth-of-type(2) {
  --x: -1vw;
  --y: -4.2vw;
}

.catch-line:nth-of-type(2) .catch-item:nth-of-type(3) {
  --x: -2.4vw;
  --y: -7.3vw;
}

/* 05 */
.catch-line:nth-of-type(3) .catch-item {
  --x: 1.5vw;
  --y: -6vw;
}

/* 01 */
.catch-line:nth-of-type(1) {
	width: 52%;
}

/* 02〜04 */
.catch-line:nth-of-type(2) {
  width: 100% !important;
	  min-width: 0 !important;
}
.catch-line:nth-of-type(2) .catch-item:nth-of-type(1),
.catch-line:nth-of-type(2) .catch-item:nth-of-type(2),
.catch-line:nth-of-type(2) .catch-item:nth-of-type(3) {
  width: auto !important;
	min-width: 0 !important;
}

/* 05 */
.catch-line:nth-of-type(3){
	width: 77%;
  
}
