@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@300;400;500;700;800&display=swap');

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after {
  content: "";
  content: none;
}

q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

* {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

a {
  text-decoration: none;
  display: inline-block;
}

ul li {
  list-style: none;
}

picture {
  display: block;
}

img {
  max-width: 100%;
}

body {
  margin: 0;
  padding: 0;
  font-family: "M PLUS Rounded 1c", sans-serif;
  font-size: 0;
  font-weight: 400;
  font-style: normal;
  color: #333333;
  letter-spacing: 0;
  line-height: 1;
  overflow-x: hidden;
  min-width: auto;
}

.container {}

section.main a {
	color: #DF0615;
}
.sp_blk {
	display: none;
}

nav {
	position: fixed;
	top: 1.7rem;
	right: 1.7rem;
	z-index: 9;
	width: 10rem;
	height: 10rem;
	background: #DF0615;
	border: solid 0.4rem white;
	border-radius: 50%;
	overflow: hidden;
	transition: 0.3s;
}
nav .btn {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	width: 9.2rem;
	aspect-ratio: 1;
	cursor: pointer;
}
nav .btn::before,
nav .btn::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 36%;
	height: 4px;
	background: white;
	border-radius: 3px;
	transform: translate(-50%, -50%);
	transition: 0.3s;
}
nav .btn::before {
	margin-top: -1.2rem;
}
nav .btn::after {
	margin-top: 1.2rem;
}
nav .btn:hover::before {
	width: 22%;
	margin-top: -0.5rem;
}
nav .btn:hover::after {
	width: 22%;
	margin-top: 0.5rem;
}
nav .menu {
	position: absolute;
	top: 8rem;
	right: 0;
	z-index: 1;
	width: 34.8rem;
}
nav .menu a {
	display: block;
	width: fit-content;
	font-size: 2.4rem;
	line-height: 1;
	letter-spacing: 0.05em;
	font-weight: 700;
	color: white;
	text-decoration: none;
	background: url(../images/common/ribon_line_white.png) no-repeat left center / auto 100%;
	padding: 1rem 0 0.1rem 6.4rem;
	margin: 0 0 3.9rem;
}
nav.open {
	width: 40.4rem;
	height: 49rem;
	border-radius: 2rem;
}
nav.open .btn::before {
	transform: translate(-50%, -50%) rotate(45deg);
	margin-top: 0;
	width: 38%;
}
nav.open .btn::after {
	transform: translate(-50%, -50%) rotate(-45deg);
	margin-top: 0;
	width: 38%;
}

section {
	text-align: center;
}

section.visual {}
section.visual div {
	width: auto;
	aspect-ratio: 1370 / 770;
	height: auto;
	max-height: 100vh;
	position: relative;
	margin: 0 auto 14rem;
}
section.visual span {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: no-repeat center / contain;
}
section.visual span.text {
	background-image: url(../images/visual/text.png);
	width: 37.6%;
	aspect-ratio: 61 / 27;
	margin: 0.1% 0 0 -19.9%;
	transition: 0.5s 1s;
}
section.visual span.chara {
	background-image: url(../images/visual/chara.png);
	width: 31.6%;
	aspect-ratio: 51 / 60;
	margin: -0.9% 0 0 19.3%;
	transition: 0.5s 1s;
}
section.visual span.c_ribon {
	width: 12%;
	aspect-ratio: 1.2 / 1;
	transition: 0.3s;
}
section.visual span.ribon {
	width: 12%;
	aspect-ratio: 1.2 / 1;
	transition: 0.3s;
}
section.visual span:nth-of-type(3) {
	background-image: url(../images/visual/c_ribon_01.png);
	margin: -22.5% 0 0 0.4%;
	transition-delay: 1.0s;
}
section.visual span:nth-of-type(4) {
	background-image: url(../images/visual/c_ribon_02.png);
	margin: 6.3% 0 0 42.4%;
	transition-delay: 1.05s;
}
section.visual span:nth-of-type(5) {
	background-image: url(../images/visual/c_ribon_03.png);
	margin: 16.2% 0 0 0.4%;
	transition-delay: 1.1s;
}
section.visual span:nth-of-type(6) {
	background-image: url(../images/visual/c_ribon_04.png);
	margin: 18.8% 0 0 -25.6%;
	transition-delay: 1.15s;
}
section.visual span:nth-of-type(7) {
	background-image: url(../images/visual/c_ribon_05.png);
	margin: 22.7% 0 0 -40.1%;
	transition-delay: 1.2s;
}
section.visual span:nth-of-type(8) {
	background-image: url(../images/visual/ribon_01.png);
	margin: -15.6% 0 0 -45.6%;
	transition-delay: 1.3s;
}
section.visual span:nth-of-type(9) {
	background-image: url(../images/visual/ribon_02.png);
	margin: -22.3% 0 0 -31.1%;
	transition-delay: 1.33s;
}
section.visual span:nth-of-type(10) {
	background-image: url(../images/visual/ribon_03.png);
	margin: -17.8% 0 0 -14.6%;
	transition-delay: 1.37s;
}
section.visual span:nth-of-type(11) {
	background-image: url(../images/visual/ribon_04.png);
	margin: -24.8% 0 0 27.8%;
	transition-delay: 1.4s;
}
section.visual span:nth-of-type(12) {
	background-image: url(../images/visual/ribon_05.png);
	margin: -10.1% 0 0 45.4%;
	transition-delay: 1.43s;
}
section.visual span:nth-of-type(13) {
	background-image: url(../images/visual/ribon_06.png);
	margin: 20.9% 0 0 39.8%;
	transition-delay: 1.47s;
}
section.visual span:nth-of-type(14) {
	background-image: url(../images/visual/ribon_07.png);
	margin: 24.6% 0 0 17.1%;
	transition-delay: 1.5s;
}
section.visual span:nth-of-type(15) {
	background-image: url(../images/visual/ribon_08.png);
	margin: 24.1% 0 0 -9.9%;
	transition-delay: 1.53s;
}
section.visual span:nth-of-type(16) {
	background-image: url(../images/visual/ribon_09.png);
	margin: 8.1% 0 0 -45.3%;
	transition-delay: 1.57s;
}
section.visual span.start {
	width: 16%;
	aspect-ratio: 1.2 / 1;
	background-image: url(../images/visual/ribon_06.png);
  animation-name: visual_start;
  animation-duration: 2s;
	opacity: 0;
}
@keyframes visual_start {
  0% {
		transform: translate(-50%, -50%) scale(1.0);
		opacity: 1;
  }
  10% {
		transform: translate(-50%, -50%) scale(1.3);
  }
  30% {
		transform: translate(-50%, -50%) scale(1.0);
  }
  40% {
		transform: translate(-50%, -50%) scale(1.0);
		opacity: 1;
  }
  90% {
		transform: translate(-50%, -50%) scale(1.0) rotate(360deg);
		opacity: 0;
  }
}
section.visual.stop span.text,
section.visual.stop span.chara {
	opacity: 0;
	transform: translate(-50%, -40%);
}
section.visual.stop span.c_ribon,
section.visual.stop span.ribon {
	opacity: 0;
	margin: 0;
}
section.visual.stop span.start {
  animation: none;
	opacity: 1;
}

section.video {
	max-width: 88rem;
	width: calc(100% - 4rem);
	height: auto;
	aspect-ratio: 16 / 9;
	margin: 0 auto 0;
	background: url(../images/common/poster.jpg) no-repeat center / contain;
	position: relative;
	z-index: 2;
}
section.video video {
	width: 100%;
}

section.lead {
	background: url(../images/top/lead_bg.png) no-repeat center / 120% auto #DF0615;
	margin: -29rem 0 0;
	padding: 38rem 0 5.8rem;
	color: white;
}
section.lead h1 {
	width: 51rem;
	max-width: 100%;
	aspect-ratio: 1.5 / 1;
	background: url(../images/top/lead_h1.png) no-repeat center / contain;
	margin: 0 auto;
}
section.lead h2 {font-size: 3.2rem;font-weight: 700;letter-spacing: 0.1em;line-height: 1.5;margin: 9rem 0 0;}
section.lead p {
	font-size: 1.8rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 2.1;
	margin: 2.9rem 0 0;
}

section.tab {
	background: #DF0615;
}
section.tab a {
	margin-right: 0.8%;
	display: inline-block;
	vertical-align: top;
	background: url(../images/common/ribon_line.png) no-repeat center top 1.7rem / 4.4rem auto white;
	width: 20%;
	border-radius: 1.5rem 1.5rem 0 0;
	padding: 6rem 0 1.8rem;
	opacity: 0.8;
	border: solid 0.5rem #DF0615;
	border-bottom: 0;
	text-decoration: none;
}
section.tab a:last-of-type {
	margin-right: unset;
}
section.tab a.active {
	width: 37.6%;
	padding-bottom: 2.2rem;
	opacity: 1;
	pointer-events: none;
}
section.tab a.active::after {
	content: '';
}
section.tab a:hover {
  animation-name: tab;
  animation-duration: 0.4s;
}
@keyframes tab {
  0% {
    background-position: center top 1.7rem;
  }
  30% {
    background-position: center top 1.0rem;
  }
  100% {
    background-position: center top 1.7rem;
  }
}
section.tab a span {
	display: inline-block;
	font-size: min(2rem, 1.8vw);
	font-weight: 600;
	letter-spacing: 0.035em;
	line-height: 1;
	color: #DF0615;
	text-decoration: none;
	margin: 0 0.3rem;
}

section.main {
	border: solid 0.5rem #DF0615;
	border-top: none;
	border-bottom: none;
}

section.pages {
	background: #DF0615;
	padding: 0.5rem 0;
}
section.pages a {
	display: inline-block;
	vertical-align: top;
	background: white;
	width: calc(100% / 3 - 0.6rem);
	padding: 4.2rem 0;
	margin: 0 0.2rem;
  text-decoration: none;
}
section.pages a::before{
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 4rem;
	aspect-ratio: 1;
	background: url(../images/common/ribon_line.png) no-repeat center / contain;
	margin-right: 1rem;
}
section.pages a::after{
	content: '';
	display: inline-block;
	vertical-align: middle;
	width: 3.3rem;
	aspect-ratio: 1;
	background: url(../images/common/arrow_circle_red.png) no-repeat center / contain;
	margin-left: 1.5rem;
}
section.pages a span {
	display: inline-block;
	vertical-align: middle;
	font-size: 2rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1;
	color: #DF0615;
	text-decoration: none;
	margin: 0 0.3rem;
}

section.voice {
	padding: 8rem 0 0;
}
section.voice picture {
	max-width: 1080px;
	width: calc(100% - 4rem);
	margin: 0 auto;
	position: relative;
}
section.voice picture a {
	position: absolute;
	top: 50%;
	width: 34%;
	height: 41.9%;
	background: white;
	border-radius: 10px;
	opacity: 0;
}
section.voice picture a:hover {
	opacity: 0.3;
}
section.voice picture a:first-of-type {
	left: 13.7%;
}
section.voice picture a:last-of-type {
	right: 13.7%;
}

section.links {
	max-width: 1140px;
	width: calc(100% - 4rem);
	margin: 0 auto;
	padding: 6rem 0 0;
}
section.links div {
	margin: 2rem auto 0;
}
section.links div:first-of-type {
	max-width: 1000px;
}
section.links div a {
	display: inline-block;
	width: 26.4rem;
	margin: 0 0.5rem 1rem;
}
section.links h2 {
	font-size: 1.9rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1;
	margin: 7.4rem 0 0;
}

footer {
	text-align: center;
	padding: 6rem 0 2rem;
}
footer span {
	display: inline-block;
	vertical-align: middle;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1;
	text-decoration: none;
	margin: 0 0.3rem;
}




section.main#top {
	background: white;
}
section.main#top .photospot {}
section.main#top .photospot h1 {
	font-size: 6.4rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	padding: 6.4rem 0 0;
	color: #DF0615;
}
section.main#top .photospot h2 {
	font-size: 2.3rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	margin: 4.6rem auto 0;
	color: #DF0615;
	width: fit-content;
	position: relative;
}
section.main#top .photospot h2::before,
section.main#top .photospot h2::after {
	content: '';
	position: absolute;
	top: 50%;
	height: 110%;
	width: 3px;
	background: #DF0615;
}
section.main#top .photospot h2::before {
	left: -2rem;
	transform: translate(0, -50%) rotate(-25deg);
}
section.main#top .photospot h2::after {
	right: -1rem;
	transform: translate(0, -50%) rotate(25deg);
}
section.main#top .photospot h2 span {}
section.main#top .photospot h2 +p {
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.5;
	margin: 1.6rem auto 0;
}
section.main#top .photospot picture {
	width: calc(100% - 8rem);
	max-width: 110rem;
	margin: 3.6rem auto 0;
}
section.main#top .photospot ul {
	width: calc(100% - 8rem);
	max-width: 110rem;
	margin: 8rem auto 3.3rem;
	text-align: left;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.6rem;
}
section.main#top .photospot ul li {
	height: auto;
	background: no-repeat center bottom 0.4rem / calc(100% - 0.8rem) auto #DF0615;
	color: white;
	text-align: center;
	position: relative;
	margin: 0 0 2.6rem;
	padding: 3.1rem 0 min(21.4rem, 18.4vw);
	border-radius: 3.4rem 3.4rem 0 0;
}
section.main#top .photospot ul li::before {
	content: '';
	position: absolute;
	top: -3.3rem;
	left: 50%;
	transform: translate(-50%, 0);
	width: 8rem;
	aspect-ratio: 1.3 / 1;
	background: no-repeat center / contain;
}
section.main#top .photospot ul li p {
	font-size: min(1.55rem, 1.3vw);
	line-height: 1.5;
	min-height: min(12.8rem, 10.8vw);
}
section.main#top .photospot ul li p span {
	font-size: min(2.3rem, 2.1vw);
	line-height: 1.5;
	font-weight: 500;
	display: block;
	position: relative;
	margin: 0 0 1.6rem;
}
section.main#top .photospot ul li p span::after {
	content: '';
	position: absolute;
	bottom: -0.7rem;
	left: 50%;
	width: 3rem;
	height: 2px;
	background: white;
	transform: translate(-50%, 0);
}
section.main#top .photospot ul li p i {
	font-style: normal;
	font-size: 0.8em;
}
section.main#top .photospot ul li.miraitower {
	background-image: url(../images/top/photospot_miraitower.png);
}
section.main#top .photospot ul li.miraitower::before {
	background-image: url(../images/common/ribon_miraitower.png);
}
section.main#top .photospot ul li.oasis {
	background-image: url(../images/top/photospot_oasis.png);
}
section.main#top .photospot ul li.oasis::before {
	background-image: url(../images/common/ribon_oasis.png);
}
section.main#top .photospot ul li.chunichibuilding {
	background-image: url(../images/top/photospot_chunichibuilding.png);
}
section.main#top .photospot ul li.chunichibuilding::before {
	background-image: url(../images/common/ribon_chunichibuilding.png);
}
section.main#top .photospot ul li.matsuzakaya {
	background-image: url(../images/top/photospot_matsuzakaya.png);
}
section.main#top .photospot ul li.matsuzakaya::before {
	background-image: url(../images/common/ribon_matsuzakaya.png);
}
section.main#top .photospot ul li.parco {
	background-image: url(../images/top/photospot_parco.png);
}
section.main#top .photospot ul li.parco::before {
	background-image: url(../images/common/ribon_parco.png);
}
section.main#top .snscampaign {
	background: url(../images/common/bg_grid_red.png) repeat center / auto;
	padding: 7rem 0 12rem;
}
section.main#top .snscampaign .wrap {
	width: calc(100% - 8rem);
	max-width: 110rem;
	margin: 0 auto;
	background: white;
	position: relative;
	padding: 3.6rem 8.8rem 6.4rem;
	border-radius: 60rem 60rem 0 0;
}
section.main#top .snscampaign .wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: min(calc(50% + 24rem), calc(50% + 21vw));
	width: 25rem;
	max-width: 23vw;
	aspect-ratio: 1.2 / 1;
	background: url(../images/top/snscampaign_h1_ribon.png) no-repeat center / contain;
}
section.main#top .snscampaign h1 {
	width: 46rem;
	max-width: 46vw;
	aspect-ratio: 2.8 / 1;
	margin: 0 auto;
	background: url(../images/top/snscampaign_h1_pc.png) no-repeat center / contain;
}
section.main#top .snscampaign p {
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 2;
	margin: 3rem auto 0;
}
section.main#top .snscampaign p span {
	display: block;
	font-size: 1.8rem;
	margin: 0;
}
section.main#top .snscampaign ul {
	counter-reset: snscampaign;
	margin: 7rem 0 0;
}
section.main#top .snscampaign ul li {
	border: solid 0.3rem #DF0615;
	border-radius: 2rem;
	position: relative;
	padding: 4.6rem 2rem 3rem;
	font-size: 1.7rem;
	font-weight: 600;
	line-height: 1.5;
	margin: 5.4rem 0 0;
}
section.main#top .snscampaign ul li::before {
	counter-increment: snscampaign;
	content: 'STEP' counter(snscampaign);
	position: absolute;
	top: -2.6rem;
	left: 50%;
	transform: translate(-50%, 0);
	background: #DF0615;
	color: white;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	padding: 1.6rem 3.8rem;
	border-radius: 4rem;
}
section.main#top .snscampaign ul li::after {
	content: '';
	position: absolute;
	bottom: -3.2rem;
	left: 50%;
	transform: translate(-50%, 0);
	width: 2.3rem;
	aspect-ratio: 1;
	background: url(../images/top/snscampaign_arrow.png) no-repeat center / contain;
}
section.main#top .snscampaign ul li:last-of-type {
	margin: 3.2rem 0 0;
	padding: 3.4rem 1rem 3.4rem;
}
section.main#top .snscampaign ul li:last-of-type::before,
section.main#top .snscampaign ul li:last-of-type::after {
	display: none;
}
section.main#top .snscampaign ul li picture {
	margin: 2.4rem auto 0;
	width: 36rem;
	max-width: 100%;
}
section.main#top .present {
	background: url(../images/common/bg_line_alpha.png) repeat center / auto;
	padding: 12rem 0 4rem;
}
section.main#top .present h1 {
	width: 63rem;
	max-width: 80vw;
	aspect-ratio: 1.9 / 1;
	margin: 0 auto;
	background: url(../images/top/present_h1_pc.png) no-repeat center / contain;
}
section.main#top .present h1 +p {
	font-size: 1.8rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.9;
	width: fit-content;
	margin: 3.6rem auto 0;
	position: relative;
}
section.main#top .present h1 +p::after {
	content: '';
	position: absolute;
	bottom: -4.5rem;
	right: -15rem;
	width: 25.4rem;
	aspect-ratio: 1.3 / 1;
	background: url(../images/top/present_shadow.png) no-repeat center / contain;
}
section.main#top .present h1 +p span:nth-of-type(1) {
	display: block;
	font-size: 1.4rem;
	margin: 1.4rem auto 0;
}
section.main#top .present h1 +p span:nth-of-type(2) {
	display: block;
	font-size: 1.6rem;
	margin: 2.4rem auto 0;
}
section.main#top .present ul {
	width: calc(100% - 8rem);
	max-width: 110rem;
	margin: 6.2rem auto 3.3rem;
	text-align: left;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 3rem;
}
section.main#top .present ul li {
	height: auto;
	background: white;
	border: solid 0.3rem #DF0615;
	text-align: center;
	position: relative;
	margin: 0 0 2rem;
	border-radius: 3.4rem 3.4rem 0 0;
}
section.main#top .present ul li::before {
	content: '';
	position: absolute;
	top: -4.5rem;
	left: 50%;
	transform: translate(-50%, 0);
	width: 8.4rem;
	aspect-ratio: 1.3 / 1;
	background: no-repeat center / contain;
}
section.main#top .present ul li h2 {
	background: #DF0615;
	color: white;
	font-size: 2.3rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	padding: 3rem 0 2.4rem;
	border-radius: 2.8rem 2.8rem 0 0;
}
section.main#top .present ul li p {
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 1.9;
	padding: 1rem 3rem 2.6rem;
	text-align: left;
}
section.main#top .present ul li p span {
	display: block;
	width: fit-content;
	border: solid 0.2rem #DF0615;
	margin: 1.5rem 0 0.4rem;
	padding: 0.4rem 1rem;
	border-radius: 3rem;
	font-size: 1.4rem;
	line-height: 1;
	color: #DF0615;
}
section.main#top .present ul li.miraitower::before {
	background-image: url(../images/common/ribon_miraitower.png);
}
section.main#top .present ul li.oasis::before {
	background-image: url(../images/common/ribon_oasis.png);
}
section.main#top .present ul li.chunichibuilding::before {
	background-image: url(../images/common/ribon_chunichibuilding.png);
}
section.main#top .present ul li.matsuzakaya::before {
	background-image: url(../images/common/ribon_matsuzakaya.png);
}
section.main#top .present ul li.parco::before {
	background-image: url(../images/common/ribon_parco.png);
}


section.main#event {}
section.main#event article {
	background: url(../images/common/bg_grid_alpha.png) repeat center / auto;
	padding: 6.4rem 0 11.6rem;
}
section.main#event article h1 {
	font-size: 6.4rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #DF0615;
}
section.main#event article h1 +p {
	font-size: 3.1rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #DF0615;
	margin: 5rem 0 0;
}
section.main#event article picture {
	margin: 6rem auto 0;
	width: calc(100% - 8rem);
	max-width: 110rem;
}


section.main#store {
	background: url(../images/common/bg_grid_alpha.png) repeat center / auto;
}
section.main#store .first {
	background: url(../images/store/first_bg_left.png) no-repeat left 1.6rem top 1.1rem / min(34rem, 30vw) auto, url(../images/store/first_bg_right.png) no-repeat right 1.6rem top 1.1rem / min(34rem, 30vw) auto white;
	padding: 5.8rem 0 9.2rem;
	position: relative;
}
section.main#store .first::after {
	content: '';
	position: absolute;
	bottom: -2.2rem;
	left: calc(50% + 27rem);
	z-index: 1;
	width: 22rem;
	aspect-ratio: 1 / 1.2;
	background: url(../images/store/first_chara.png) no-repeat center / contain;
}
section.main#store .first h1 {
	font-size: 6.4rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #DF0615;
	max-width: 40vw;
	margin: 0 auto;
}
section.main#store .first h2 {
	font-size: 3.2rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #DF0615;
	max-width: 55vw;
	margin: 5rem auto 0;
	padding: 0 0 7.7rem;
	background: url(../images/store/first_h2.png) no-repeat center bottom / auto 6.2rem;
}
section.main#store .first h2 span {
	display: inline-block;
}
section.main#store .first p {
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	line-height: 2;
	margin: 1.5rem 0 0;
}
section.main#store .first p span {
	display: block;
	font-size: 2.2rem;
	margin: 0.4rem 0 0;
}
section.main#store .first p span:first-of-type {
	margin: 2.5rem 0 0;
}
section.main#store .first p span::before {
	content: attr(data-topic);
	display: inline-block;
	vertical-align: top;
	background: #DF0615;
	color: white;
	font-size: 1.5rem;
	line-height: 1;
	padding: 0.6rem 1.2rem;
	border-radius: 4rem;
	margin: 0.9rem 1rem 0 0;
}
section.main#store .itemList {}


section.main#goods {
	background: url(../images/goods/bottom_chara.png) no-repeat center bottom / auto 30rem, url(../images/common/bg_grid_alpha.png) repeat center / auto;
	padding: 0 0 27.8rem;
}
section.main#goods .first {
	padding: 4.8rem 0 12rem;
}
section.main#goods .first h1 {
	font-size: 6.4rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	color: #DF0615;
	margin: 0 auto;
}
section.main#goods .first h1 span {
	font-size: 0;
	display: block;
	width: 59rem;
	max-width: 100%;
	height: 5.8rem;
	margin: 0.6rem auto 0;
	background: url(../images/goods/first_h1.png) no-repeat center / contain;
}
section.main#goods .first h2 {
	font-size: 2.8rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1.5;
	margin: 7.4rem auto 0;
	color: #DF0615;
	width: fit-content;
	position: relative;
}
section.main#goods .first h2::before,
section.main#goods .first h2::after {
	content: '';
	position: absolute;
	top: 50%;
	height: 110%;
	width: 3px;
	background: #DF0615;
}
section.main#goods .first h2::before {
	left: -2rem;
	transform: translate(0, -50%) rotate(-25deg);
}
section.main#goods .first h2::after {
	right: -1rem;
	transform: translate(0, -50%) rotate(25deg);
}
section.main#goods .first h2 span {
	display: inline-block;
}
section.main#goods .itemList {}


section.main .itemList {
	border-top: solid 0.5rem #DF0615;
	position: relative;
	padding: 10.5rem 0 16rem;
}
section.main .itemList h1 {
	font-size: 3.1rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1;
	color: #DF0615;
	border: solid 0.4rem #DF0615;
	position: absolute;
	top: -4.6rem;
	left: 50%;
	transform: translate(-50%, 0);
	z-index: 3;
	border-radius: 6rem;
}
section.main .itemList h1::before {
	content: '';
	position: absolute;
	top: -4.5rem;
	right: -2.6rem;
	width: 10.2rem;
	aspect-ratio: 1.3 / 1;
	background: no-repeat center / contain;
}
section.main .itemList.miraitower h1::before {
	background-image: url(../images/common/ribon_miraitower.png);
}
section.main .itemList.oasis h1::before {
	background-image: url(../images/common/ribon_oasis.png);
}
section.main .itemList.chunichibuilding h1::before {
	background-image: url(../images/common/ribon_chunichibuilding.png);
}
section.main .itemList.matsuzakaya h1::before {
	background-image: url(../images/common/ribon_matsuzakaya.png);
}
section.main .itemList.parco h1::before {
	background-image: url(../images/common/ribon_parco.png);
}
section.main .itemList h1::after {
	content: '';
	position: absolute;
	top: 0.8rem;
	left: 0.7rem;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: #DF0615;
	border-radius: 6rem;
}
section.main .itemList h1 span {
	display: block;
	width: 100%;
	height: 100%;
	padding: 2.5rem 5.4rem;
	background: white;
	border-radius: 6rem;
}
section.main .itemList ul {
	width: calc(100% - 8rem);
	max-width: 110rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 3rem 0.6rem;
}
section.main .itemList ul li {
	cursor: pointer;
	background: url(../images/common/btn_open.png) no-repeat right 0.9rem bottom / 2.7rem;
}
section.main .itemList ul li picture {
	width: 100%;
	aspect-ratio: 1;
	background: no-repeat center / 100%;
	transition: 0.3s;
}
section.main .itemList ul li p.info {
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: 600;
	text-align: left;
	padding: 1.4rem 3rem 0 1.6rem;
}
section.main .itemList ul li p span {
	display: block;
	margin: 0.4rem 0 0;
}
section.main .itemList ul li p.text {
	display: none;
}
section.main .itemList ul li:hover {}
section.main .itemList ul li:hover picture {
	background-size: 110%;
}
section.main .itemList .novelty {
	background: #FFD5D7;
	margin: 13rem auto 0;
	width: calc(100% - 8rem);
	max-width: 110rem;
	position: relative;
	text-align: left;
	padding: 6.6rem min(48rem, 44vw) 7.4rem 6rem;
}
section.main .itemList .novelty h2 {
	position: absolute;
	font-size: 4.6rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	line-height: 1;
	color: #DF0615;
	top: -2.6rem;
	left: 4rem;
	z-index: 3;
}
section.main .itemList .novelty h2 span {
	font-size: 2.2rem;
	letter-spacing: 0.1em;
	margin: 0 0 0.7rem 2.2rem;
	display: inline-block;
	vertical-align: bottom;
}
section.main .itemList .novelty p {
	font-size: 1.7rem;
	line-height: 1.9;
	font-weight: 600;
}
section.main .itemList .novelty picture {
	position: absolute;
	top: 50%;
	right: min(6rem, 3vw);
	width: min(39rem, 40vw);
	transform: translate(0, -50%);
}
section.main .itemList .modal {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	height: 100%;
	background: #00000040;
	display: none;
}
section.main .itemList .modal .wrap {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	border: solid 0.4rem #DF0615;
	background: white;
	padding: 6rem;
	border-radius: 3rem;
	overflow: hidden;
	width: calc(100% - 10rem);
	max-width: 115rem;
	height: calc(100% - 10rem);
	max-height: 64rem;
	text-align: left;
}
section.main .itemList .modal .btn {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 6.4rem;
	aspect-ratio: 1;
	background: url(../images/common/btn_close.png) no-repeat center / contain;
	cursor: pointer;
}
section.main .itemList .modal picture {
	display: inline-block;
	vertical-align: top;
	width: 50%;
	max-height: 100%;
	aspect-ratio: 1;
	background: no-repeat center / contain;
}
section.main .itemList .modal .right {
	display: inline-block;
	vertical-align: top;
	width: 50%;
	height: 100%;
	overflow: auto;
	padding-left: 4rem;
}
section.main .itemList .modal p.info {
	font-size: 2rem;
	line-height: 1.8;
	font-weight: 600;
}
section.main .itemList .modal p.info span {
	display: block;
	font-size: 1.8rem;
	line-height: 1.8;
	margin: 1rem 0 0;
}
section.main .itemList .modal p.text {
	font-size: 1.6rem;
	line-height: 1.7;
	font-weight: 500;
	margin: 3.5rem 0 0;
}


@media screen and (max-width: 768px){
body {}
.container {}
.sp_blk {
	display: block;
}
nav {
	top: 2vw;
	right: 2vw;
	width: 16vw;
	height: 16vw;
	border-width: 0.6vw;
}
nav .btn {
	width: 15.4vw;
}
nav .btn::before,
nav .btn::after {
	width: 43%;
}
nav .btn::before {
	margin-top: -2.2vw;
}
nav .btn::after {
	margin-top: 2.2vw;
}
nav .btn:hover::before {
	width: 43%;
	margin-top: -2.2vw;
}
nav .btn:hover::after {
	width: 43%;
	margin-top: 2.2vw;
}
nav .menu {
	top: 20vw;
	width: 92%;
}
nav .menu a {
	font-size: 6vw;
	padding: 1.6vw 0 0.4vw 14vw;
	margin: 0 0 8vw;
}
nav.open {
	width: 96vw;
	height: 112vw;
}
nav.open .btn::before {
	margin-top: 0;
	width: 43%;
}
nav.open .btn::after {
	margin-top: 0;
	width: 43%;
}
section {}
section.visual {
	overflow: hidden;
}
section.visual div {
	width: 100%;
	aspect-ratio: auto;
	height: 137vw;
	max-height: none;
	margin: 0 auto 0;
}
section.visual span {}
section.visual span.text {
	width: 65vw;
	margin: 48vw 0 0 0;
}
section.visual span.chara {
	width: 55vw;
	margin: 0vw 0 0 0;
}
section.visual span.c_ribon {
	width: 22vw;
}
section.visual span.ribon {
	width: 22vw;
}
section.visual span:nth-of-type(3) {
	margin: -41vw 0 0 34vw;
}
section.visual span:nth-of-type(4) {
	margin: -47vw 0 0 5vw;
}
section.visual span:nth-of-type(5) {
	margin: -24vw 0 0 -37vw;
}
section.visual span:nth-of-type(6) {
	margin: -43vw 0 0 -22vw;
}
section.visual span:nth-of-type(7) {
	margin: 2vw 0 0 38vw;
}
section.visual span:nth-of-type(8) {
	margin: 27vw 0 0 44vw;
}
section.visual span:nth-of-type(9) {
	margin: 51vw 0 0 48vw;
}
section.visual span:nth-of-type(10) {
	margin: 1vw 0 0 -36vw;
}
section.visual span:nth-of-type(11) {
	margin: -64vw 0 0 18vw;
}
section.visual span:nth-of-type(12) {
	margin: -19vw 0 0 44vw;
}
section.visual span:nth-of-type(13) {
	margin: 51vw 0 0 -45vw;
}
section.visual span:nth-of-type(14) {
	margin: -64vw 0 0 -25vw;
}
section.visual span:nth-of-type(15) {
	margin: -56vw 0 0 -49vw;
}
section.visual span:nth-of-type(16) {
	margin: 22vw 0 0 -41vw;
}
section.visual span.start {
	width: 35vw;
}
section.visual.stop span.text,
section.visual.stop span.chara {}
section.visual.stop span.c_ribon,
section.visual.stop span.ribon {}
section.visual.stop span.start {}
section.video {
	max-width: none;
	width: 90vw;
}
section.lead {
	margin: -37vw 0 0;
	padding: 47vw 0 11vw;
}
section.lead h1 {
	width: 67vw;
}
section.lead h2 {
	font-size: 7vw;
	line-height: 1.5;
	margin: 11vw 0 0;
}
section.lead h2 span {
	display: block;
	font-size: 5vw;
	line-height: 1.5;
	margin: 1vw 0 0;
}
section.lead h2 span:first-of-type {
	margin: 3vw 0 0;
}
section.lead p {
	font-size: 3.4vw;
	line-height: 2.25;
	margin: 7vw 0 0;
}
section.tab {
	padding: 0 1vw;
}
section.tab a {
	width: calc(25% - 1vw);
	margin-right: 1vw;
	border-width: 0;
	background-position: center top 3.2vw;
	background-size: 8.8vw auto;
	padding: 12.6vw 0 5.4vw;
}
section.tab a:last-of-type {}
section.tab a.active {
	width: 25%;
	padding-bottom: 6.8vw;
}
section.tab a.active::after {}
section.tab a:hover {}
section.tab a span {
	font-size: 3.2vw;
	font-weight: 800;
	margin: 0 0 1vw;
	display: block;
}
section.tab a span:not(:has(+span)) {
	margin: 2vw 0 2.4vw;
}
section.tab a span +span {
	margin: 0;
}
section.main {
	border-width: 1vw;
	margin: -1px 0 0;
}
section.pages {
	padding: 1vw 0;
}
section.pages a {
	width: calc(99vw / 3 - 1vw);
	padding: 3.4vw 0 4.5vw;
	margin: 0 0.5vw;
}
section.pages a::before{
	display: block;
	width: 100%;
	aspect-ratio: auto;
	height: 6vw;
	margin: 0 0 2.5vw;
}
section.pages a::after{
	display: block;
	width: 100%;
	aspect-ratio: auto;
	height: 5.4vw;
	margin: 2.5vw 0 0;
}
section.pages a span {
	display: block;
	font-size: 3.4vw;
	margin: 0 0 1vw;
}
section.pages a span:not(:has(+span)) {
	margin: 5.2vw 0 4.2vw;
}
section.pages a span +span {
	margin: 0;
}
section.voice {
	padding: 9vw 0 0;
}
section.voice picture {
	width: 90vw;
}
section.links {
	width: 100%;
	padding: 7vw 0 0;
}
section.links div {
	margin: 6vw 0 0;
}
section.links div a {
	width: 44vw;
	margin: 0 1vw 2.5vw;
}
section.links h2 {
	font-size: 4vw;
	margin: 8vw 0 0;
}
footer {
	padding: 11vw 0 0;
}
footer span {
	display: block;
	font-size: 2.6vw;
	margin: 0 0 3vw;
}
section.main#top {}
section.main#top .photospot {}
section.main#top .photospot h1 {
	font-size: 8vw;
	padding: 9.4vw 0 0;
}
section.main#top .photospot h2 {
	font-size: 4.6vw;
	margin: 13.3vw auto 0;
}
section.main#top .photospot h2::before,
section.main#top .photospot h2::after {}
section.main#top .photospot h2::before {}
section.main#top .photospot h2::after {}
section.main#top .photospot h2 span {
	display: block;
}
section.main#top .photospot h2 +p {
	font-size: 3.6vw;
	line-height: 2;
	margin: 5vw 7vw 0;
}
section.main#top .photospot picture {
	width: 90vw;
	max-width: none;
	margin: 4vw auto 0;
}
section.main#top .photospot ul {
	display: block;
	width: 90vw;
	max-width: none;
	margin: 13vw auto 24vw;
}
section.main#top .photospot ul li {
	margin: 0 0 10vw;
	padding: 8.4vw 0 58vw;
	border-radius: 10vw 10vw 0 0;
	background: no-repeat center bottom 1vw / calc(100% - 2vw) auto #DF0615;
}
section.main#top .photospot ul li::before {}
section.main#top .photospot ul li p {
	font-size: 3.6vw;
	line-height: 1.5;
	min-height: auto;
}
section.main#top .photospot ul li p span {
	font-size: 5.2vw;
	line-height: 1.5;
	font-weight: 500;
	display: block;
	position: relative;
	margin: 0 0 4.3vw;
}
section.main#top .photospot ul li p span::after {
	bottom: -2vw;
	width: 8vw;
}
section.main#top .photospot ul li p i {}
section.main#top .photospot ul li.miraitower {}
section.main#top .photospot ul li.miraitower::before {}
section.main#top .photospot ul li.oasis {}
section.main#top .photospot ul li.oasis::before {}
section.main#top .photospot ul li.chunichibuilding {}
section.main#top .photospot ul li.chunichibuilding::before {}
section.main#top .photospot ul li.matsuzakaya {}
section.main#top .photospot ul li.matsuzakaya::before {}
section.main#top .photospot ul li.parco {}
section.main#top .photospot ul li.parco::before {}
section.main#top .snscampaign {
	padding: 9vw 0 12vw;
}
section.main#top .snscampaign .wrap {
	width: 89vw;
	max-width: none;
	padding: 5vw 5vw 6vw;
	border-radius: 150vw 150vw 0 0;
}
section.main#top .snscampaign .wrap::before {
	top: 2vw;
	left: 64vw;
	width: 21vw;
}
section.main#top .snscampaign h1 {
	width: 70vw;
	max-width: none;
	background-image: url(../images/top/snscampaign_h1_sp.png);
}
section.main#top .snscampaign p {
	font-size: 3vw;
	margin: 3.3vw auto 0;
}
section.main#top .snscampaign p span {
	font-size: 3.4vw;
	margin: 0 3vw 2vw;
}
section.main#top .snscampaign ul {
	margin: -0.6vw 0 0;
}
section.main#top .snscampaign ul li {
	border-width: 0.6vw;
	border-radius: 2vw;
	padding: 6.2vw 5vw 2.6vw;
	font-size: 3.6vw;
	line-height: 1.9;
	margin: 13vw 0 0;
}
section.main#top .snscampaign ul li::before {
	top: -4.2vw;
	font-size: 3.6vw;
	padding: 0.5vw 6vw;
	border-radius: 4vw;
}
section.main#top .snscampaign ul li::after {
	bottom: -8.6vw;
	width: 6.3vw;
}
section.main#top .snscampaign ul li:last-of-type {
	margin: 9vw 0 6vw;
	padding: 3.2vw 6vw 3.2vw;
}
section.main#top .snscampaign ul li:last-of-type::before,
section.main#top .snscampaign ul li:last-of-type::after {}
section.main#top .snscampaign ul li picture {
	margin: 3vw auto 0;
	width: 51vw;
}
section.main#top .present {
	padding: 9vw 0 1vw;
}
section.main#top .present h1 {
	width: 90vw;
	max-width: none;
	background-image: url(../images/top/present_h1_sp.png);
}
section.main#top .present h1 +p {
	font-size: 3.6vw;
	margin: 5vw auto 0;
	padding: 0 5vw;
	overflow: hidden;
}
section.main#top .present h1 +p::after {
	opacity: 0;
}
section.main#top .present h1 +p span:nth-of-type(1) {
	font-size: 3.2vw;
	margin: 6vw auto 0;
}
section.main#top .present h1 +p span:nth-of-type(2) {
	font-size: 3.5vw;
	margin: 7vw auto 0;
}
section.main#top .present ul {
	display: block;
	width: 90vw;
	max-width: none;
	margin: 18vw auto 0vw;
}
section.main#top .present ul li {
	border-width: 1vw;
	margin: 0 0 13vw;
	border-radius: 8vw 8vw 0 0;
}
section.main#top .present ul li::before {
	top: -7.4vw;
	width: 15vw;
}
section.main#top .present ul li h2 {
	font-size: 4.6vw;
	padding: 5vw 0 4vw;
	border-radius: 6vw 6vw 0 0;
}
section.main#top .present ul li p {
	font-size: 3.6vw;
	line-height: 1.8;
	padding: 0vw 5vw 5vw;
}
section.main#top .present ul li p span {
	border-width: 0.4vw;
	margin: 3vw 0 1vw;
	padding: 1.2vw 2vw;
	border-radius: 3rem;
	font-size: 3vw;
}
section.main#top .present ul li.miraitower::before {}
section.main#top .present ul li.oasis::before {}
section.main#top .present ul li.chunichibuilding::before {}
section.main#top .present ul li.matsuzakaya::before {}
section.main#top .present ul li.parco::before {}
section.main#event {}
section.main#event article {
	padding: 9vw 0 17vw;
}
section.main#event article h1 {
	font-size: 8vw;
	line-height: 1.3;
}
section.main#event article h1 +p {
	font-size: 4.5vw;
	margin: 4vw 0 0;
	line-height: 1.8;
}
section.main#event article picture {
	margin: 11vw auto 0;
	width: 90vw;
	max-width: none;
}
section.main#store {}
section.main#store .first {
	background-size: 29vw auto, 29vw auto;
	background-position: left 2vw top 1vw, right 2vw top 1vw;
	padding: 10vw 0 14vw;
	overflow: hidden;
}
section.main#store .first::after {
	opacity: 0;
}
section.main#store .first h1 {
	font-size: 8vw;
	line-height: 1.3;
	max-width: 40vw;
}
section.main#store .first h2 {
	font-size: 4.8vw;
	line-height: 1.7;
	max-width: 95vw;
	margin: 7vw auto 0;
	padding: 0 0 16vw;
	background-size: auto 12.4vw;
}
section.main#store .first h2 span {
	display: block;
}
section.main#store .first p {
	font-size: 3.4vw;
	margin: 2vw auto 0;
}
section.main#store .first p span {
	font-size: 3.6vw;
	margin: 1.2vw 0 0;
}
section.main#store .first p span:first-of-type {
	margin: 8vw 0 0;
}
section.main#store .first p span::before {
	font-size: 2.8vw;
	line-height: 1;
	padding: 1.2vw 2vw;
	margin: 1.1vw 2vw 0 0;
}
section.main#store .itemList {}
section.main#goods {
	background-size: auto 30vw, auto;
	padding: 0 0 10rem;
}
section.main#goods .first {
	padding: 8vw 0 11vw;
}
section.main#goods .first h1 {
	font-size: 8vw;
	line-height: 1.3;
}
section.main#goods .first h1 span {
	width: 100%;
	height: 8vw;
	margin: 3vw auto 0;
}
section.main#goods .first h2 {
	font-size: 4.6vw;
	line-height: 1.6;
	margin: 13vw auto 0;
}
section.main#goods .first h2::before,
section.main#goods .first h2::after {}
section.main#goods .first h2::before {
	left: -5vw;
}
section.main#goods .first h2::after {
	right: -5vw;
}
section.main#goods .first h2 span {
	display: block;
}
section.main#goods .itemList {}
section.main .itemList {
	border-top-width: 1vw;
	padding: 12vw 0 17vw;
}
section.main .itemList h1 {
	font-size: 4vw;
	border-width: 1vw;
	top: -6vw;
}
section.main .itemList h1::before {
	top: -6vw;
	right: -5vw;
	width: 15vw;
}
section.main .itemList.miraitower h1::before {}
section.main .itemList.oasis h1::before {}
section.main .itemList.chunichibuilding h1::before {}
section.main .itemList.matsuzakaya h1::before {}
section.main .itemList.parco h1::before {}
section.main .itemList h1::after {
	top: 1vw;
	left: 1vw;
	border-radius: 10vw;
}
section.main .itemList h1 span {
	padding: 3vw 7vw;
	border-radius: 10vw;
	white-space: nowrap;
}
section.main .itemList ul {
	width: 90vw;
	max-width: none;
	grid-template-columns: repeat(2, 1fr);
	gap: 5vw 2vw;
}
section.main .itemList ul li {
	background-position: right 2vw bottom;
	background-size: 6.2vw;
}
section.main .itemList ul li picture {}
section.main .itemList ul li p.info {
	font-size: 3.3vw;
	padding: 1.6vw 0.5vw 0;
}
section.main .itemList ul li p span {
	margin: 1.2vw 11vw 0 0;
}
section.main .itemList ul li p.text {}
section.main .itemList ul li:hover {}
section.main .itemList ul li:hover picture {}
section.main .itemList .novelty {
	margin: 16vw auto 0;
	width: 90vw;
	max-width: none;
	padding: 6vw 5vw 5vw;
}
section.main .itemList .novelty h2 {
	font-size: 6.6vw;
	top: -4vw;
	left: 5vw;
}
section.main .itemList .novelty h2 span {
	font-size: 4vw;
	margin: 0 0 0.2vw 1.2vw;
}
section.main .itemList .novelty p {
	font-size: 4vw;
	line-height: 1.8;
}
section.main .itemList .novelty picture {
	position: static;
	width: 50vw;
	transform: none;
	margin: 4vw auto 0;
}
section.main .itemList .modal {}
section.main .itemList .modal .wrap {
	padding: 6vw;
	border-radius: 6vw;
	border-width: 1vw;
	overflow: auto;
	width: 90vw;
	max-width: none;
	max-height: calc(100% - 20vw);
}
section.main .itemList .modal .btn {
	width: 14vw;
}
section.main .itemList .modal picture {
	display: block;
	width: 100%;
	max-height: none;
}
section.main .itemList .modal .right {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
	padding: 5vw 0 0;
}
section.main .itemList .modal p.info {
	font-size: 4.2vw;
}
section.main .itemList .modal p.info span {
	font-size: 3.6vw;
	margin: 2vw 0 0;
}
section.main .itemList .modal p.text {
	font-size: 3.6vw;
	margin: 4vw 0 0;
}
}