/* Group
--------------------------------------------- */

/* Spring Animation Variables */
:root {
	--spring-duration: 420ms;
	--spring-easing: linear(0 0%,0.004379 1%,0.017027 2%,0.037197 3%,0.064139 4%,0.097098 5%,0.135326 6%,0.178089 7.000000000000001%,0.224667 8%,0.274366 9%,0.326515 10%,0.380476 11%,0.435642 12%,0.491445 13%,0.547353 14.000000000000002%,0.602874 15%,0.65756 16%,0.711 17%,0.76283 18%,0.812725 19%,0.860402 20%,0.90562 21%,0.948177 22%,0.98791 23%,1.024693 24%,1.058435 25%,1.089077 26%,1.116593 27%,1.140987 28.000000000000004%,1.162286 28.999999999999996%,1.180545 30%,1.19584 31%,1.208266 32%,1.217937 33%,1.22498 34%,1.229538 35%,1.231761 36%,1.231811 37%,1.229853 38%,1.226059 39%,1.220603 40%,1.213659 41%,1.205403 42%,1.196006 43%,1.185638 44%,1.174463 45%,1.162638 46%,1.150318 47%,1.137645 48%,1.124757 49%,1.111781 50%,1.098837 51%,1.086034 52%,1.073472 53%,1.061241 54%,1.04942 55.00000000000001%,1.038082 56.00000000000001%,1.027286 56.99999999999999%,1.017084 57.99999999999999%,1.007519 59%,0.998624 60%,0.990425 61%,0.982939 62%,0.976176 63%,0.970139 64%,0.964824 65%,0.960222 66%,0.956318 67%,0.953091 68%,0.950518 69%,0.94857 70%,0.947216 71%,0.946423 72%,0.946154 73%,0.946371 74%,0.947035 75%,0.948105 76%,0.949542 77%,0.951304 78%,0.953352 79%,0.955646 80%,0.958146 81%,0.960816 82%,0.963619 83%,0.966522 84%,0.96949 85%,0.972494 86%,0.975505 87%,0.978496 88%,0.981443 89%,0.984323 90%,0.987118 91%,0.989809 92%,0.992382 93%,0.994822 94%,0.99712 95%,0.999265 96%,1.001252 97%,1.003076 98%,1.004733 99%,1.006221 100%);
}

.is-style-background-blur {
	-webkit-backdrop-filter: blur(20px) saturate(180%);
	backdrop-filter: blur(20px) saturate(180%);
}

/* Improvements for row group */
@media (max-width: 781px) {
	.ollie-row-stack {
		flex-direction: column;
		align-items: flex-start !important;
	}

	.ollie-row-stack > * {
		flex-basis: 100% !important;
	}

	.ollie-flex-start {
		align-items: flex-start !important;
	}

	.ollie-justify-start {
		justify-content: flex-start !important;
	}
}

.ollie-row-stack > .wp-block-buttons,
.ollie-no-shrink {
	flex-shrink: 0;
}

.wp-block-group.ollie-sticky-top {
	top: calc(20px + var(--wp-admin--admin-bar--position-offset, 0px))
}

/* Helper class to swap order on mobile */
@media (max-width: 781px) {
	.ollie-swap-order {
		flex-direction: column-reverse;
	}
	.ollie-row-reverse {
		flex-direction: row-reverse;
	}
}


/* VIP Bento Grid Layout */
/* --- 3カラム Masonry風グリッド --- */
.vip-bento-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--wp--style--block-gap, 1rem);
    grid-auto-flow: dense; /* 空きを自動で詰める */
  }
  
  /* 各カバーを正方形に統一 */
  .vip-bento-grid > .wp-block-cover {
    aspect-ratio: 1 / 1;
    overflow: hidden;
  }
  
  /* is-feature のみ大きく（2×2） */
  .vip-bento-grid > .wp-block-cover.is-feature {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: 1 / 1;
  }
  
  /* 背景画像をフィット */
  .vip-bento-grid .wp-block-cover__image-background {
    object-fit: cover;
  }
  
  /* --- スマホ対応：すべて1列縦並び --- */
  @media (max-width: 768px) {
    .vip-bento-grid {
      grid-template-columns: 1fr; /* 1列表示 */
    }
  
    .vip-bento-grid > .wp-block-cover {
      grid-column: auto;
      grid-row: auto;
      aspect-ratio: auto; /* 画像の比率に合わせる */
    }
  
    /* is-feature もリセットして通常サイズに */
    .vip-bento-grid > .wp-block-cover.is-feature {
      grid-column: auto;
      grid-row: auto;
      aspect-ratio: auto;
    }
  }
/* カバーの中身のレイアウト */
  .vip-bento-grid .wp-block-cover__inner-container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

/* Clickable Group Block - Hover & Click Animations
--------------------------------------------- */

/* 基本スタイル */
.wp-block-group.is-linked,
.wp-block-column.is-linked {
	transition: all .3s	cubic-bezier(0, 0, .5, 1);
}

/* ホバーアニメーション - 拡大 */
.wp-block-group.is-linked:hover,
.wp-block-column.is-linked:hover {
	transform: scale(1.005);
	box-shadow: var(--wp--preset--shadow--small-dark);
}

/* アクティブ（クリック）アニメーション - 縮小 */
.wp-block-group.is-linked:active,
.wp-block-column.is-linked:active {
	transform: scale(0.995);
	box-shadow: var(--wp--preset--shadow--small-light);
	transition: all .15s cubic-bezier(.4,0,.2,1);
}

/* モバイルではエフェクトを軽減 */
@media (max-width: 768px) {
	.wp-block-group.is-linked:hover,
	.wp-block-column.is-linked:hover {
		transform: scale(1.01);
		box-shadow: var(--wp--preset--shadow--small-light);
	}

	.wp-block-group.is-linked:active,
	.wp-block-column.is-linked:active {
		transform: scale(0.99);
	}
}

/* アクセシビリティ: 動きを減らす設定の場合 */
@media (prefers-reduced-motion: reduce) {
	.wp-block-group.is-linked,
	.wp-block-column.is-linked {
		transition: box-shadow 0.3s ease;
	}

	.wp-block-group.is-linked:hover,
	.wp-block-column.is-linked:hover {
		transform: none;
		box-shadow: var(--wp--preset--shadow--small-light);
	}

	.wp-block-group.is-linked:active,
	.wp-block-column.is-linked:active {
		transform: none;
	}
}

/* フォーカス時のアクセシビリティ対応 */
.wp-block-group.is-linked:focus-within,
.wp-block-column.is-linked:focus-within {
	outline: 2px solid var(--wp--preset--color--primary, #000);
	outline-offset: 2px;
}