button:focus-visible {
  outline: solid;
}

/* common:start */
[v-cloak] {
  display: none;
}

@media screen and (max-width: 768px) {
  .pcOnly {
    display: none !important;
  }
}
@media screen and (min-width: 769px) {
  .spOnly {
    display: none !important;
  }
}

body {
  background-color: #ffffff;
	min-width: auto;
}

.p-cont {
  color: #000000;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: normal;
}
.info_bg_white {
  margin: 0;
  padding-top: 56px;
  background-color: #ffffff;
}
.cont_footer {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto 56px;
  padding: 0 20px;
  text-align: center;
}
.cont_footer__inner .cont_footer__btn {
  width: 92%;
  max-width: 480px;
  margin: auto;
  font-size: 20px;
  line-height: 1.6;
}
.cont_footer__inner .cont_footer__btn a {
  display: block;
  padding: 16px;
  color: #cc0033;
  border: 4px solid #cc0033;
  border-radius: 36px;
  text-decoration: none;
  font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", "Meiryo", "Yu Gothic", sans-serif;
  font-weight: 400;
  transition: opacity 0.3s;
}
.cont_footer__inner .cont_footer__btn a:hover {
  opacity: 0.7;
}

#copywright {
  padding: 0;
  text-align: center;
  line-height: 3.2;
  background: #f4ede5;
  font-size: 15px;
  color: #3f0000;
  font-family: "Hiragino Kaku Gothic Pro", "Hiragino Sans", "Meiryo", "Yu Gothic", sans-serif;
  font-weight: 400;
}

@media screen and (max-width: 768px) {
  /* footer */
  .info_bg_white {
    padding: 54px 0 0 0;
  }
  .cont_footer {
    padding: 0 5%;
  }
  .cont_footer__inner .cont_footer__btn {
    font-size: 16px;
  }
  .cont_footer__inner .cont_footer__btn a {
    padding: 12px 8px;
    border: 2px solid #cc0033;
    line-height: 1.4;
  }
}
/* common:end */

/* header:start */
.header {
  width: 100%;
  background: #fff;
  padding: 6px 0;
}
@media screen and (max-width: 768px) {
  .header {
    position: relative;
    z-index: 2;
    padding: 10px 0;
		border-bottom: #CC0033 2px solid;
  }
}
.header__inner {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
}
.header__inner a {
  width: 84px;
  display: inline-block;
  margin-left: 3px;
}
@media screen and (max-width: 768px) {
  .header__inner a {
    width: 70px;
    margin-left: 12px;
  }
}
/* header:end */

/* p-kv:start */
.p-kv {
  position: relative;
  overflow: hidden;
  width: 100%;
	background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_kv.png") #FFFFF5;
}
.p-kv__container {
  position: relative;
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  height: 420px;
  overflow: hidden;
}
@media screen and (max-width: 1199px) {
	.p-kv__container {
		max-width: 1200px;
		height: 360px;
	}
}
@media screen and (max-width: 768px) {
  .p-kv__container {
		width: 100%;
    height: auto;
  }
}
.p-kv__img {
  padding: 0;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1400px;
	& img {
		max-width: 100%;
		height: auto;
	}
}
@media screen and (max-width: 1199px) {
	.p-kv__img {
		position: absolute;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 1200px;
	}
}
@media screen and (max-width: 768px) {
  .p-kv__img {
    position: static;
    width: 100%;
    transform: none;
  }
}
.p-kv .btn {
	background: #FFFFF5;
	padding: 24px;
	text-align: center;
	& a {
		display: block;
		max-width: 540px;
		margin: auto;
	}
	& img {
		max-width: 100%;
		height: auto;
		display: block;
		margin: auto;
	}
}
/* p-kv:end */




.contents_wrap {
	background: #fff;
}
.contents_wrap img {
	max-width: 100%;
	height: auto;
}
.contents_wrap a {
	color: #0044CC;
}
.contents_wrap a img {
	display: block;
	margin: auto;
}

.contents_wrap h2 {
	text-align: center;
	position: relative;
	z-index: 1;
	max-width: 83%;
	margin: auto;
}

.contents_wrap #latestinfo {
	max-width: 100%;
	background: #FEEFE8;
	padding: 16px 24px 24px;
	@media (769px <= width) {
		padding: 16px 40px 32px;
	}
	& h2 {
		text-align: center;
		margin: 0 auto;
		padding: 0 4%;
	}
	& ul {
		max-width: 900px;
		margin: -24px auto 0;
		background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_tile1.png");
		padding: 36px 20px 24px;
		text-align: center;
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
		& li {
			width: 100%;
		}
		@media (769px <= width) {
			display: flex;
			flex-wrap: wrap;
			gap: 16px;
			justify-content: center;
			margin: -30px auto 0;
			padding: 42px 24px 24px;
			& li {
				width: calc((100% - 16px * 1) / 2);
			}
		}
	}
}

.contents_wrap #section1 {
	background: #FFFFF5;
	padding: 32px 5% 56px;
}
.contents_wrap #section1 .wrap {
	max-width: 900px;
	background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_tile3.png");
	border: #000000 2px solid;
	margin: -8% auto 20px;
	padding: 10% 5% 5%;
	position: relative;
	&::before,&::after {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		background: #000000;
		position: absolute;
		left: 0;
	}
	&::before {
		top: 5px;
	}
	&::after {
		bottom: 5px;
	}
	& ul {
		text-align: center;
		margin: 0 auto 8%;
		display: flex;
		flex-wrap: wrap;
		gap: 18px;
		& li {
			width: 100%;
		}
	}
	& .c-text--center {
		width: 86%;
		margin: 0 auto 12px;
	}
	@media (769px <= width) {
		margin: -45px auto 32px;
		padding: 70px 30px 56px;
		& ul {
			max-width: 789px;
			margin: 0 auto 45px;
			justify-content: space-between;
			align-items: center;
			gap: auto;
			& li:nth-child(1) {
				width: 40%;
			}
			& li:nth-child(2) {
				width: 57%;
			}
		}
	}
}
.contents_wrap #section1 .wrap_inner {
	max-width: 664px;
	margin: 0 auto 32px;
	background: #ffffff;
	border: #000000 2px solid;
	text-align: center;
	& h3 {
		margin: -23px auto 20px;
	}
	& figure {
		width: 90%;
		margin: 0 auto 5%;
	}
	@media (769px <= width) {
		& figure {
			margin: 0 auto 6px;
		}
	}
	& .note {
		margin-bottom: 1em;
	}
	& aside {
		width: 90%;
		max-width: 500px;
		padding: 15px 15px 24px;
		margin: 0 auto 18px;
		background: #FFFAF0;
		border-radius: 8px;
		text-align: center;
		& h4 {
			color: #CC0033;
			font-size: 3.5vw;
			margin-bottom: 0.5em;
			white-space: nowrap;
		}
		& a {
			font-size: 1.7rem;
		}
		@media (769px <= width) {
			padding: 15px 32px 24px;
			& h4 {
				font-size: 23px;
			}
		}
	}
	& .bottom {
		text-align: center;
		background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/btn_upgrade_back.png") top center no-repeat;
		padding: 9% 5% 6%;
		@media (769px <= width) {
			padding: 5% 5% 24px;
		}
	}
}
.contents_wrap #section1 .wrap_bottom {
	max-width: 900px;
	text-align: center;
	margin: 0 auto;
	& li {
		background: #ffffff;
		border: #000000 2px solid;
		margin-top: 26px;
		position: relative;
		& + li::before {
			content: "";
			width: 292px;
			aspect-ratio: 1/0.1232876712328767;
			background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/jalan_head.png");
			background-size: contain;
			position: absolute;
			margin: auto;
			left: 0; right: 0;
			top: -16px;
		}
	}
	@media (769px <= width) {
		display: flex;
		justify-content: space-between;
		& li {
			width: 48.88%;
			max-width: 440px;
			margin-top: 0;
		}
	}
	& h3 {
		margin-bottom: 1em;
	}
	& p {
		font-size: 1.6rem;
		line-height: 1.39;
		margin-bottom: 1em;
		& strong {
			font-size: 20px;
			line-height: 1.45;
			& em {
				color: #CC0033;
			}
		}
		@media (769px <= width) {
			font-size: 1.8rem;
		}
	}
	& figure {
		width: 93.57%;
		margin: 0 auto 1em;
	}
	& a {
		display: block;
		width: 90%;
		margin: 0 auto 1.2em;
	}
	& p.note {
		font-size: 1.5rem;
		margin-top: 0.6em;
		@media (769px <= width) {
			font-size: 1.4rem;
		}
	}
}


.contents_wrap #section2 {
	background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_tile2.png");
	padding: 56px 5% 56px;
}
.contents_wrap #section2 .c-text--center {
	margin-bottom: 20px;
	padding: 0 5%;
}
.contents_wrap #section2 .wrap {
	max-width: 900px;
	background: rgba(255,255,255,0.5);
	border: #000000 2px solid;
	margin: -6% auto 20px;
	padding: 8% 0 0;
	position: relative;
	@media (769px <= width) {
		margin: -30px auto 20px;
		padding: 40px 0 0;
	}
	&::before {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		background: #000000;
		position: absolute;
		left: 0;
		top: 5px;
	}
	& figure {
		text-align: center;
		width: 90%;
		margin: 0 auto;
		& img {
			margin-top: 1em;
		}
		@media (width < 768px) {
			& .balloon img {
				width: 95%;
				margin: 1em auto 0;
			}
		}
	}
	& div {
		text-align: center;
		width: 90%;
		margin: 0 auto 49px;
	}
	& div.bottom {
		width: 100%;
		padding: 40px 25px 32px;
		margin: 0 auto;
		background: #FFF9EC;
		position: relative;
		&::before {
			content: "";
			width: 144px;
			aspect-ratio: 1/0.2638888888888889;
			background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/sarani2.png");
			background-size: cover;
			position: absolute;
			margin: auto;
			left: 0; right: 0;
			top: -19px;
		}
		& figure {
			width: 100%;
		}
	}
}
.contents_wrap #section2 .wrap_bottom {
	max-width: 900px;
	text-align: center;
	margin: 0 auto 32px;
	& li {
		border: #000000 2px solid;
		margin-top: 20px;
	}
	@media (769px <= width) {
		display: flex;
		justify-content: space-between;
		& li {
			width: 48.88%;
			max-width: 440px;
			margin-top: 0;
		}
	}
}
.contents_wrap #section2 .cta {
	padding: 0 5%;
}


.contents_wrap #section3 {
	background: #FFF;
	padding: 32px 5% 0;
}
.contents_wrap #section3 .wrap {
	max-width: 1040px;
	margin: -8% auto 20px;
	background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_tile3.png");
	border: #000000 2px solid;
	padding: 8% 5% 5%;
	position: relative;
	&::before {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		background: #000000;
		position: absolute;
		left: 0;
		top: 5px;
	}
	@media (769px <= width) {
		padding: 38px 30px 56px;
		margin: -45px auto 56px;
	}
	& ul {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		padding-top: 16px;
		margin: 0 auto 16px;
		position: relative;
		& li {
			width: 100%;
			text-align: center;
			& .date {
				font-size: 1.8rem;
				line-height: 1.5;
				margin-bottom: 1em;
			}
			& .title {
				font-size: 2rem;
				line-height: 1.5;
			}
			& .name {
				font-size: 2rem;
				margin-top: 1em;
				line-height: 1.5;
			}
		}
		@media (769px <= width) {
			max-width: 900px;
			padding-top: 32px;
			margin-bottom: 32px;
			& li:nth-child(1) {
				width: 54%;
				max-width: 480px;
			}
			& li:nth-child(2) {
				width: 44.44%;
			}
		}
	}
	& ul::before {
		content: "";
		display: block;
		width: 50%;
		height: 1px;
		background: #000000;
		position: absolute;
		margin: auto;
		left: 0; right: 0;
		top: 0;
		@media (769px <= width) {
			width: 480px;
		}
	}
	& .visible-content ul:first-child::before {
		display: none;
	}
	
	/*button*/
	& .more-button {
		display: block;
		background-color: #FCE6B7;
		font-family: "Noto Sans JP", sans-serif;
		font-size: 2.6rem;
		font-weight: 500;
		color: #000000;
		text-align: center;
		border: #ffffff 2px solid;
		width: 337px;
		line-height: 62px;
		border-radius: 30px;
		cursor: pointer;
		transition: background-color 0.3s;
		margin: auto;
		position: relative;
	}
	@media screen and (max-width: 768px) {
		& .more-button {
			font-size: 1.8rem;
			width: 216px;
			line-height: 40px;
			border-radius: 20px;
		}
	}
	& .more-button span {
		display: block;
		position: absolute;
		margin: auto;
		top: 0; bottom: 0;
		right: 18px;
		width: 30px;
		height: 30px;
		border-radius: 100%;
		background-color: #FFBF34;
	}
	@media screen and (max-width: 768px) {
		& .more-button span {
			right: 10px;
			width: 20px;
			height: 20px;
		}
	}
	& .more-button span::before, & .more-button span::after {
		display: block;
		position: absolute;
		transition: transform 0.4s;
		content: "";
		z-index: 1;
		background-color: #ffffff;
		top: 13px;
		left: 6px;
		width: 18px;
		height: 4px;
	}
	& .more-button span::after {
		transform: rotate(90deg);
	}
	@media screen and (max-width: 768px) {
		& .more-button span::before, & .more-button span::after {
			top: 9px;
			left: 5px;
			width: 11px;
			height: 3px;
		}
	}
	& .more-button.open span::after {
		display: none;
	}
	
	.hidden-content {
		max-height: 0;
		overflow: hidden;
		transition: max-height 0.8s ease-out;
		opacity: 0;
	}
	.hidden-content.show {
		max-height: 2600px; /* コンテンツに合わせて調整 */
		opacity: 1;
		transition: max-height 0.8s ease-out, opacity 0.8s ease-out;
	}
}
.contents_wrap #section3 .cta {
	padding: 0 5%;
}

ul.note {
	max-width: 87.619%;
	margin: 5vw auto 8vw;
	& li {
		font-size: 1.5rem;
		line-height: 1.5;
		text-indent: -1.9em;
			padding-left: 1.9em;
	}
	@media (769px <= width) { 
		max-width: 660px;
		margin: 16px auto 36px;
		& li {
			font-size: 1.4rem;
			line-height: 1.6714285714;
		}
	}
}

.cta {
	text-align: center;
}


/* # モーダル # */
.dialog {
  --duration: 0.3s;
  --scale: 0.6;

  scale: var(--scale);
  transition: all var(--duration) allow-discrete;

  &[open] {
    opacity: 1;
    scale: 1;
    @starting-style {
      opacity: 0;
      scale: var(--scale);
    }
  }

  /* ------------------------------------------------- */
  /* 装飾 */
  width: 94%;
  max-width: 900px;
  padding: 0;
	margin: auto;
  opacity: 0;
  border: 0;
  inset: 0; /* （Safari 18.6）閉じるときも上下中央を維持するために指定 */
  position: fixed; /* （Safari 18.6）閉じるときも上下中央を維持するために指定 */

  .dialog__inner {
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 4%);
		background: url("//d1mts1n1u0bek1.cloudfront.net/std/campaigns/1cm/entertainment/images/back_modal.png") #fff;
    padding: 32px 20px;
    position: relative;
		@media (769px <= width) {
			padding: 40px;
		}
  }
	img {
		max-width: 100%;
		height: auto;
	}
  .dialog__close-button {
    width: 16px;
    height: 16px;
    position: absolute;
    right: 10px;
    top: 10px;
    display: block;
    transition: 0.2s;
		&::before, &::after {
			content: "";
			position: absolute;
			top: 50%;
			left: 50%;
			width: 2px;
			height: 16px;
			background: #000;
		}
		&::before {
			transform: translate(-50%,-50%) rotate(45deg);
		}
		&::after {
			transform: translate(-50%,-50%) rotate(-45deg);
		}
    &:hover {
      transform: rotate(-180deg);
    }
  }

  .dialog__title {
		text-align: center;
    margin: 0 auto 8px;
		width: 80%;
  }
  ul {
		text-align: center;
    margin: 0 auto 32px;
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
		& li {
			width: 100%;
		}
		@media (769px <= width) {
			max-width: 748px;
			gap: 16px;
			& li {
				width: calc((100% - 16px * 1) / 2);
			}
		}
  }
  .dialog__buttons {
		text-align: center;
  }
	a {
		color: #0044CC;
	}
	.notebox {
		margin: auto;
		max-width: 600px;
		padding-top: 1em;
	}
	.note {
		margin-left: 1em;
		text-indent: -1em;
		line-height: 1.5;
	}

  /* ------------------------------------------------- */
  /* 背景 */
  &::backdrop {
    background-color: rgb(0 0 0 / 70%);
    opacity: 0;
    transition: display var(--duration) allow-discrete, opacity var(--duration);
  }
  &[open]::backdrop {
    opacity: 1;
    @starting-style {
      opacity: 0;
    }
  }
}









