@charset "UTF-8";

:root {
    --mincho: YakuHanMP, 'A1 Mincho', serif;
    --hover_anime: all .2s ease-out;
}

body {
    position: relative;
    font-family: YakuHanJP, 'Gen Interface JP', sans-serif;
    color: #333;
    background: url(../img/bg-seamless.webp) repeat 0 0;
    min-height: 100vh;
    margin: 0;
    line-height: 2;
}

body::before {
    content: '';
    position: fixed;
    top: 20px;
    left: 20px;
    right: 20px;
    height: 150px;
    background-image: 
        url('../img/top-left.webp'),
        url('../img/top-right.webp');
    background-position: left top, right top;
    background-repeat: no-repeat;
    background-size: 150px auto;
    pointer-events: none;
    z-index: 100;
}

/* 下側の2隅 */
body::after {
    content: '';
    position: fixed;
    bottom: 20px;
    left: 20px;
    right: 20px;
    height: 150px;
    background-image: 
        url('../img/bottom-left.webp'),
        url('../img/bottom-right.webp');
    background-position: left bottom, right bottom;
    background-repeat: no-repeat;
    background-size: 150px auto;
    pointer-events: none;
    z-index: 100;
}

@media ( max-width: 1023px ) {
    body::before,
    body::after {
        height: 80px;
        background-size: 80px auto;
    }
}

h1, h2, h3, h4, h5, h6 {
    font-feature-settings: "palt";
    font-weight: bold;
}

strong {
    font-weight: bold;
}


.mincho {
    font-family: var(--mincho);
}

.l-header {
    background: transparent;
}



/* 画面幅 767px 以下のスマホ表示時 */
@media screen and (max-width: 767px) {
  /* ギャラリーコンテナのFlex折り返しを確実に許可 */
  .wp-block-gallery.is-layout-flex,
  .wp-block-gallery {
    flex-wrap: wrap !important;
  }

  /* ギャラリー内の各画像アイテムを1列（幅100%）に指定 */
  .wp-block-gallery .wp-block-image {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  /* 画像自体も親要素に合わせて横幅いっぱいに拡大 */
  .wp-block-gallery .wp-block-image img {
    width: 100% !important;
    height: auto !important;
  }
}


h2.belt {
    padding: 0.5em;
    background: #f2eae0;
    border-left: solid 5px #ffaf58;
    mix-blend-mode: multiply;
}







/** 参加フォーム認証 */
.mg-form-gate { 
    margin: 2em 0;
    text-align: center;
    border-top: 1px solid #bbb;
    border-bottom: 1px solid #bbb;
    padding: 2em 0;
}

.mg-form-label {
    margin-bottom: 1em;

}

.mg-form-btn {

}

.mg-form-gate__check {
    display: inline-flex;
    align-items: center;
    gap: 0.25em;
    font-size: 1.25rem;
}

.mg-form-gate__check input[type="checkbox"] {
	background: #fff;
	border: solid 1px #aaa;
	height: 30px;
	margin-right: 10px;
	outline: none;
	position: relative;
	vertical-align: -8px;
	-webkit-appearance: none;
	width: 30px;
	border-radius: 4px;
    cursor: pointer;
}

.mg-form-gate__check input[type="checkbox"]:checked {
	background-color: var(--accent-color);
	border: 1px solid #fff;
	outline: none;
}

.mg-form-gate__check input[type="checkbox"]:checked:before {
	background: #ffffff;
	content: "";
	display: block;
	height: 3px;
	position: absolute;
	left: 4px;
	top: 18px;
	-webkit-transform: rotate(45deg);
	-webkit-transform-origin: right center;
	width: 10px;
}

.mg-form-gate__check input[type="checkbox"]:checked::after {
	display: block;
	position: absolute;
	left: 13px;
	top: 18px;
	content: "";
	width: 16px;
	height: 3px;
	background: #ffffff;
	-webkit-transform: rotate(-53deg);
	-webkit-transform-origin: left center;
}

.mg-form-gate__button {
    display: inline-block;
    padding: .8em 2.5em;
    font-size: 1.5em;
    font-weight: 700;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    background: #cccccc;
    color: #fff;
    transition: var(--hover_anime);
    
}

.mg-form-gate__button:not(:disabled) {
    background: var(--accent-color);
    cursor: pointer;
}


@media (hover: hover) {
    .mg-form-gate__button:hover {
      filter: brightness(90%);
    }
}


.mg-form-gate__button:disabled {
    cursor: not-allowed;
}

.wp-block-flexible-table-block-table table th,
.wp-block-flexible-table-block-table table td {
    mix-blend-mode: multiply;
}



@media ( min-width: 1024px ) {
    .l-center-header__row:first-child {
    padding-top: calc(3 * var(--_padding-1));
    }
}

@media ( max-width: 1023px ) {
    .l-header__content {
        padding-top: calc(2 * var(--_padding-1));
    }

    .u-slim-width {
        margin-right: 5vw;
        margin-left: 5vw;
    }
}



.c-copyright--inverse {
    background-color: transparent;
    color:  inherit;
}

/* アニメーション対象の行のベース設定 */
.gsap-line-item {
  display: inline-block;
  will-change: opacity, transform;
}



/* アニメーション前の要素のちらつきを防止（初期状態で透過・変形） */
.js-fade-in,
.js-fade-up,
.js-fade-left,
.js-fade-right,
.js-stagger-group > * {
  opacity: 0;
  visibility: hidden;
}

/* 画像ワイプ用（Snow Monkeyの画像ブロックやコンテナに適用） */
.js-wipe-image {
  overflow: hidden;
  clip-path: inset(0 100% 0 0); /* 最初は右側を隠す */
  will-change: clip-path;
}

.js-wipe-image img {
  transform: scale(1.15); /* パララックス風の軽いズーム感 */
  will-change: transform;
}



:where(.p-entry-content)>h2 {
	--_margin-top: calc(2 * var(--_h2-margin-top));
	--_margin-bottom: calc( 2* var(--_h2-margin-bottom));
}

@media ( max-width: 600px ) {
	.mg-form-gate__button {
		width: 100%;
		padding: 1em .5em;
	}
}

#autozip {
	display: none !important;
}

img.inline_icon {
    height: 1rem;
    width: auto;
    margin-right: 4px;
    vertical-align: baseline;
}