.mb-05 {
	margin-bottom:0.5rem !important;
}
.mb-1 {
	margin-bottom:1.0rem !important;
}
.mb-1-5 {
	margin-bottom:1.5rem !important;
}
.mb-2 {
	margin-bottom:2.0rem !important;
}
.mb-3 {
	margin-bottom:3.0rem !important;
}
.mb-5 {
	margin-bottom:5rem !important;
}
.mb-10 {
	margin-bottom:10rem !important;
}
.mb-15 {
	margin-bottom:15rem !important;
}
.mb-20 {
	margin-bottom:20rem !important;
}
.mb-25 {
	margin-bottom:25rem !important;
}
.mb-30 {
	margin-bottom:30rem !important;
}
.mb-35 {
	margin-bottom:35rem !important;
}
.mb-40 {
	margin-bottom:40rem !important;
}
.mb-45 {
	margin-bottom:45rem !important;
}
.mb-50 {
	margin-bottom:50rem !important;
}

.mt-05 {
	margin-top:0.5rem !important;
}
.mt-1 {
	margin-top:1.0rem !important;
}
.mt-1-5 {
	margin-top:1.5rem !important;
}
.mt-2 {
	margin-top:2.0rem !important;
}
.mt-3 {
	margin-top:3.0rem !important;
}
.mt-5 {
	margin-top:5rem !important;
}
.mt-10 {
	margin-top:10rem !important;
}
.mt-15 {
	margin-top:15rem !important;
}
.mt-20 {
	margin-top:20rem !important;
}
.mt-25 {
	margin-top:25rem !important;
}
.mt-30 {
	margin-top:30rem !important;
}
.mt-35 {
	margin-top:35rem !important;
}
.mt-40 {
	margin-top:40rem !important;
}
.mt-45 {
	margin-top:45rem !important;
}
.mt-50 {
	margin-top:50rem !important;
}


article .campaign_article_inner .campaign_article_inner_iner::after {
    background:none;/* url(../images/kumo_campaign.png) no-repeat*/
}

section.about {
    background: transparent;
}


ul.events li.finish {
    width: 47.5rem;
    height: auto;
    text-decoration: none;
    background: #fff;
    display: flex;
    flex-direction: column;
    color: #512D5D;
}
@media screen and (max-width: 768px) {
    ul.events li.finish {
        width: 100%;
    }
}

ul.events li.finish .ainner {
    position: relative;
    z-index: 3;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
}
@media screen and (max-width: 768px) {
    ul.events li.finish .ainner {
        padding: 5rem 4rem;
    }
}

ul.events li.finish img {
    width: 35.6rem;
    margin: 0 auto 4rem;
}
@media screen and (max-width: 768px) {
    ul.events li.finish img {
        width: calc(464/750*100vw);
        margin-bottom: calc(35/750*100vw);
    }
}
ul.events li.finish dl {
    width: 100%;
    display: flex;
    font-feature-settings: "palt";
}
ul.events li.finish dl + dl {
    margin-top: 1.4rem;
}
ul.events li.finish dl dt {
    position: relative;
    flex-shrink: 0;
    width: 12.4rem;
    font-size: 2.1rem;
    line-height: calc(30/21*1em);
    font-weight: 700;
    letter-spacing: calc(40/1000*1em);
}

@media screen and (max-width: 768px) {
    ul.events li.finish dl dt {
        font-size: calc(27/750*100vw);
        width: calc(155/750*100vw);
    }
}

ul.events li.finish dl dt::before {
    content: "";
    position: absolute;
    top: 0.5rem;
    right: 0;
    width: 0.2rem;
    height: 1em;
    background-color: #512D5D;
}

ul.events li.finish dl dd {
    padding-left: .5em;
    font-size: 2.1rem;
    line-height: calc(30/21*1em);
    font-weight: 700;
}
@media screen and (max-width: 768px) {
    ul.events li.finish dl dd {
        font-size: calc(27/750*100vw);
    }
}

ul.events li.finish .linkArea {
    margin-top: auto;
}
ul.events li.finish p.link_text {
    margin-top: 2rem;
    text-align: center;
}
ul.events li.finish p.link_text.dummy {
    visibility: hidden;
    pointer-events: none;
}

ul.events li.finish p.link_text a span {
    display: inline;
    margin: auto;
    padding-right: 1.5rem;
    font-size: 1.8rem;
    font-weight: 500;
    text-decoration: underline;
    background-image: url(../images/arrow_next.webp);
    background-repeat: no-repeat;
    background-size: 0.6666rem;
    background-position: top 0.7rem right;
}
@media screen and (max-width: 768px) {
    ul.events li.finish p.link_text a span {
        font-size: 4vw;
        background-size: 1.6665333333vw;
        background-position: top 1.4rem right;
        padding-right: 1em;
    }
}

ul.events li.finish p.link_text a:hover {
    background:none;
}

.postCont h3 {
	font-size:2.8rem;
	display: block;
	border-bottom: #583233 solid 1px;
	padding-bottom:0.5rem;
}
@media screen and (max-width: 768px) {
    .postCont h3 {
		font-size:4.8vw;
	}
}

.postCont h4 {
	font-size:2.2rem;
}
@media screen and (max-width: 768px) {
    .postCont h4 {
		font-size:4.2vw;
	}
}

.postCont ul {
	margin-left:2em;
	list-style-type: disc;
}
@media screen and (max-width: 768px) {
    .postCont ul {
		margin-left:4em;
	}
}

.postCont ul li {
	font-size: 1.6rem;
	margin-bottom: 0.5rem;
}
@media screen and (max-width: 768px) {
    .postCont ul li {
		font-size: 3.7vw;
	}
}

.postCont ul.postFig {
	list-style-type: none;
}


section.eventpost .inner h2 span {
    font-size: 45%;
	border:2px solid #512D5D;
	padding: 0 1rem;
	margin-left:2rem;
	display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
	vertical-align: middle;  /* h2テキストとの垂直方向の中央揃え */
    line-height: 1;
	height: 2em;
}

@media screen and (max-width: 768px) {
    section.eventpost .inner .postCont dl.spec dt.long {
        width: 37vw;
        height: 5.331vw;
        font-size: 2.6666666667vw;
		padding:0 1rem;
		margin-left: 0.5rem;
		background:none;
		background-color: #fff;
		clip-path: polygon(
            0.8vw 0, calc(100% - 0.8vw) 0,
            100% 0.8vw, 100% calc(100% - 0.8vw),
            calc(100% - 0.8vw) 100%, 0.8vw 100%,
            0 calc(100% - 0.8vw), 0 0.8vw
        );
    }
}
@media screen and (max-width: 768px) {
section.eventpost .inner .postCont dl.spec dt.long::before {
  content: "";
  position: absolute;
  inset: 1px; /* 白枠の太さ（1px） */
  background-color: #512d5d;
  z-index: -1;

  /* 内側の8角形カット（1px分小さく調整して 5px 面取り） */
  clip-path: polygon(
    5px 0, calc(100% - 5px) 0,
    100% 5px, 100% calc(100% - 5px),
    calc(100% - 5px) 100%, 5px 100%,
    0 calc(100% - 5px), 0 5px
  );
}
}

section.eventpost .inner h2 {
    margin-bottom: 0;
}

.postCont p {
	font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
    .postCont p {
		font-size:3.7vw;
	}
}

.postCont p a {
	color: #512d5d;
	text-decoration: underline;
}

section.eventpost .inner .postCont dl.spec dt {
    background:none;
	background-color: #fff;
	clip-path: polygon(
        0.6rem 0, calc(100% - 0.6rem) 0,
        100% 0.6rem, 100% calc(100% - 0.6rem),
        calc(100% - 0.6rem) 100%, 0.6rem 100%,
        0 calc(100% - 0.6rem), 0 0.6rem
    );
	margin-left:0.2rem;
}


section.eventpost .inner .postCont dl.spec dt::before {
  content: "";
  position: absolute;
  inset: 1px; /* 白枠の太さ（1px） */
  background-color: #512d5d;
  z-index: -1;

  /* 内側の8角形カット（1px分小さく調整して 2px 面取り） */
  clip-path: polygon(
	0.6rem 0, calc(100% - 0.6rem) 0,
	100% 0.6rem, 100% calc(100% - 0.6rem),
	calc(100% - 0.6rem) 100%, 0.6rem 100%,
	0 calc(100% - 0.6rem), 0 0.6rem
  );
}


@media screen and (max-width: 768px) {
.menupanel {
	pointer-events: none;
}
.menupanel.open {
	pointer-events: auto;
}
}

@media screen and (min-width: 769px) {
    section.eventpost .inner .postCont dl.spec dt {
	    width: 13.6rem;
	    height: auto;
	    padding:0.5em 1em;
    }
    section.eventpost .inner .postCont dl.spec dd {
        width: 73rem;
    }
    ul.events li:not(.finish) {
      background: #fff;
    }
    ul.events li:not(.finish) .ainner {
      position: relative;
      z-index: 3;
      padding: 3rem;
      display: flex;
      flex-direction: column;
    }
    ul.events li:not(.finish) img {
      width: 35.6rem;
      margin: 0 auto 4rem;
    }
    ul.events li:not(.finish) dl {
      width: 100%;
      display: flex;
      font-feature-settings: "palt";
    }
    ul.events li:not(.finish) dl + dl {
      margin-top: 1.4rem;
    }
    ul.events li:not(.finish) dl dt {
      position: relative;
      flex-shrink: 0;
      width: 12.4rem;
      font-size: 2.1rem;
      line-height: calc(30/21*1em);
      font-weight: 700;
      letter-spacing: calc(40/1000*1em);
    }
    ul.events li:not(.finish) dl dt::before {
      content: "";
      position: absolute;
      top: 0.5rem;
      right: 0;
      width: 0.2rem;
      height: 1em;
      background-color: #512D5D;
    }
    ul.events li:not(.finish) dl dd {
      padding-left: .5em;
      font-size: 2.1rem;
      line-height: calc(30/21*1em);
      font-weight: 700;
    }
}

/* ==========================================
   全ページ汎用：PC・SP最適化指定（img-half既存仕様・変更なし）
   ========================================== */
@media screen and (min-width: 769px) {
    html body section.eventpost .inner .postCont ul.postFig.img-half,
    html body section.eventpost .inner .postCont ul.postFig.img-half li,
    html body section.eventpost .inner .postCont ul.postFig.img-half li img {
        width: 18rem !important;
        max-width: 18rem !important;
        height: auto !important;
        margin-left: 0 !important;
        margin-right: auto !important;
        display: block !important;
    }
}

@media screen and (max-width: 768px) {
    html body section.eventpost .inner .postCont ul.postFig.img-half {
        width: 50% !important;
        max-width: 50% !important;
        margin-left: 0 !important;
        margin-right: auto !important;
        display: block !important;
    }
    html body section.eventpost .inner .postCont ul.postFig.img-half li,
    html body section.eventpost .inner .postCont ul.postFig.img-half li img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        display: block !important;
        margin: 0 !important;
    }
}

/* dl.spec 内のリンク指定 */
html body section.eventpost .inner .postCont dl.spec a {
    color: #512D5D !important;
    text-decoration: underline !important;
}

/* src属性で直接指定：クラスの付け忘れ・JSによるクラス操作に影響されにくい */
.postCont ul.postFig:has(img[src*="20260618_15_22.png"]),
.postCont ul.postFig:has(img[src*="20260618_15_23.png"]) {
    width: 50% !important;
    max-width: 50% !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: block !important;
}
.postCont ul.postFig:has(img[src*="20260618_15_22.png"]) li,
.postCont ul.postFig:has(img[src*="20260618_15_23.png"]) li,
.postCont ul.postFig:has(img[src*="20260618_15_22.png"]) li img,
.postCont ul.postFig:has(img[src*="20260618_15_23.png"]) li img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
}
html body section.eventpost .inner .postCont ul.postFig.img-half {
    width: 180px !important;
    max-width: 180px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: block !important;
}

html body section.eventpost .inner .postCont ul.postFig.img-half li,
html body section.eventpost .inner .postCont ul.postFig.img-half li img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
}

@media screen and (max-width: 768px) {
    html body section.eventpost .inner .postCont ul.postFig.img-half {
        width: 120px !important;
        max-width: 120px !important;
    }
}

html body section.eventpost .inner .postCont ul.postFig.img-half2 {
    width: 140px !important;
    max-width: 140px !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: block !important;
}

html body section.eventpost .inner .postCont ul.postFig.img-half2 li,
html body section.eventpost .inner .postCont ul.postFig.img-half2 li img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
}

@media screen and (max-width: 768px) {
    html body section.eventpost .inner .postCont ul.postFig.img-half2 {
        width: 120px !important;
        max-width: 120px !important;
    }
}

/* ==========================================
   独自作成：画像＋テキストブロック
   ========================================== */
.thumb-text-block {
    display: flex !important;
    align-items: flex-start !important;
    gap: 3rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* PC：左側画像枠（幅 28rem に指定） */
.thumb-text-block .thumb-media {
    width: 28rem !important;
    max-width: 28rem !important;
    min-width: 28rem !important;
    flex: 0 0 28rem !important;
    margin: 0 !important;
    padding: 0 !important;
}

.thumb-text-block .thumb-media img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 !important;
    border: none !important;
}

/* PC：右側テキスト枠 */
.thumb-text-block .thumb-content {
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

.thumb-text-block .thumb-content h4 {
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    margin: 0 0 1rem 0 !important;
    line-height: 1.4 !important;
    color: #512D5D !important;
}

.thumb-text-block .thumb-content p {
    font-size: 1.6rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    color: #512D5D !important;
}

/* ==========================================
   スマホ表示（768px以下）：縦並び（上が画像・下がテキスト）
   ========================================== */
@media screen and (max-width: 768px) {
    .thumb-text-block {
        flex-direction: column !important; /* 上下に配置 */
        gap: 1.5rem !important; /* 画像とテキスト間の余白 */
    }

    .thumb-text-block .thumb-media {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .thumb-text-block .thumb-content {
        width: 100% !important;
    }

    .thumb-text-block .thumb-content h4 {
        font-size: 4.2vw !important;
        margin-bottom: 0.8rem !important;
    }

    .thumb-text-block .thumb-content p {
        font-size: 3.7vw !important;
    }
}

/* ==========================================
   新規追加：PC横3並び / SP縦3並び画像リスト (.img-triple)
   ========================================== */
.postCont ul.postFig.img-triple {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 2rem !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    list-style-type: none !important;
}

.postCont ul.postFig.img-triple li {
    flex: 1 1 calc((100% - 4rem) / 3) !important;
    width: calc((100% - 4rem) / 3) !important;
    max-width: calc((100% - 4rem) / 3) !important;
    margin-bottom: 0 !important;
    font-size: 1.4rem !important;
}

.postCont ul.postFig.img-triple li img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 0 1rem 0 !important;
}

.postCont ul.postFig.img-triple li p {
    margin: 0 !important;
    font-size: 1.4rem !important;
    line-height: 1.5 !important;
}

@media screen and (max-width: 768px) {
    .postCont ul.postFig.img-triple {
        flex-direction: column !important; /* スマホは縦並び */
        gap: 2rem !important;
    }

    .postCont ul.postFig.img-triple li {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

    .postCont ul.postFig.img-triple li p {
        font-size: 3.7vw !important;
    }
}
/* sup タグ（上付き文字）の修復指定 */
.postCont sup {
    font-size: 0.6em !important;
    vertical-align: super !important;
    line-height: 0 !important;
}
/* ==========================================
   画像を中央揃えにするクラス (.img-center)
   ========================================== */
html body section.eventpost .inner .postCont ul.postFig.img-center {
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    text-align: center !important;
}

html body section.eventpost .inner .postCont ul.postFig.img-center li {
    margin-left: auto !important;
    margin-right: auto !important;
    display: inline-block !important;
}

html body section.eventpost .inner .postCont ul.postFig.img-center li img {
    margin-left: auto !important;
    margin-right: auto !important;
}
/* ==========================================
   .thumb-media 内のキャプションテキスト設定
   ========================================== */
.thumb-text-block .thumb-media p {
    font-size: 1.4rem !important;
    line-height: 1.5 !important;
    margin-top: 0.8rem !important;
    color: #512D5D !important;
}

@media screen and (max-width: 768px) {
    .thumb-text-block .thumb-media p {
        font-size: 3.7vw !important;
    }
}
/* イベント詳細・イベントの様子のaタグ側の背景矢印を消す */
ul.events li.finish p.link_text a {
  background-image: none !important;
  padding-right: 0 !important;
}

ul.events li.finish p.link_text a:hover {
  background-image: none !important;
}