@charset "UTF-8";

/* =========================================================
  News
========================================================= */

.nakasen-news {
	padding: 7vw 0 5vw;
	background: #fff7f3;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.nakasen-news__inner {
	width: min(780px, 86vw);
	margin: 0 auto;
}

.nakasen-news__box {
	overflow: hidden;
	background: #fff;
	border: 2px solid #273041;
	border-radius: 7px;
	color: #273041;
}

.nakasen-news__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 56px;
	padding: 0 20px 0 48px;
	background: #fff;
	border-bottom: 2px solid #273041;
}

.nakasen-news__title {
	display: block;
	margin: 0 !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: #273041 !important;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 19px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.16em;
}

.nakasen-news__title::before,
.nakasen-news__title::after {
	display: none !important;
	content: none !important;
}

.nakasen-news__more {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	color: #273041;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.nakasen-news__more:hover {
	opacity: 0.65;
}

.nakasen-news__more span {
	display: block;
	width: 11px;
	height: 11px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
}

.nakasen-news__body {
	background: #fff;
}

.nakasen-news__list {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.nakasen-news__item {
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid rgba(39, 48, 65, 0.45);
}

.nakasen-news__item:last-child {
	border-bottom: none;
}

.nakasen-news__link {
	display: flex;
	align-items: center;
	min-height: 64px;
	color: #273041;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.nakasen-news__link:hover {
	opacity: 0.65;
}

.nakasen-news__date {
	flex: 0 0 110px;
	color: #273041;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.08em;
	padding: 4%;
}

.nakasen-news__text {
	flex: 1;
	color: #273041;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.12em;
}

.nakasen-news__empty {
	margin: 0 !important;
	padding: 24px 48px;
	background: #fff;
	color: #273041;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

/* SP：日付とタイトルを縦積みにし、長いタイトルは2行で省略 */
@media screen and (max-width: 600px) {

	.nakasen-news__item {
		padding: 18px 28px !important;
	}

	.nakasen-news__link,
	.nakasen-news__item > a {
		display: block !important;
		width: 100% !important;
		min-height: 0 !important;
	}

	.nakasen-news__date {
		display: block !important;
		width: 100% !important;
		margin: 0 0 10px !important;
		font-size: 14px !important;
		line-height: 1.4 !important;
		text-align: left !important;
		padding: 0;
	}

	.nakasen-news__text,
	.nakasen-news__item > a > span:last-child {
		display: -webkit-box !important;
		width: 100% !important;
		max-width: 100% !important;
		max-height: calc(1.55em * 2) !important;
		margin: 0 !important;
		overflow: hidden !important;
		color: inherit !important;
		font-size: 16px !important;
		line-height: 1.55 !important;
		-webkit-line-clamp: 2 !important;
		line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
		text-align: left !important;
		text-decoration: none !important;
	}
}


/* =========================================================
  About
========================================================= */

.nakasen-about {
	background: #fff7f3;
	color: #111;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.nakasen-about__inner {
	width: min(1060px, 86vw);
	margin: 0 auto;
}

/* About Us */
.nakasen-about__en {
	margin: 0 0 58px;
	color: transparent !important;
	-webkit-text-stroke: 1.2px #e6574b;
	font-family: "Dela Gothic One", "Zen Kaku Gothic New", sans-serif;
	font-size: clamp(70px, 8vw, 104px);
	font-weight: 400;
	line-height: 0.8;
	letter-spacing: 0.03em;
}

.nakasen-about__lead {
	position: relative;
	display: grid;
	grid-template-columns: 390px 1fr;
	align-items: start;
	gap: 46px;
}

.nakasen-about__main-image {
	margin: 0;
}

.nakasen-about__main-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.nakasen-about__body {
	position: relative;
	padding-top: 0 !important;
}

/* 見出し */
.nakasen-about__heading,
body:has(.nakasen-mv) .post_content h2.nakasen-about__heading {
	display: block;
	margin: -5px 0 22px !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: none !important;
	border-left: none !important;
	box-shadow: none !important;
	color: #111 !important;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 26px !important;
	line-height: 1.75 !important;
	letter-spacing: 0.16em !important;
}

.nakasen-about__heading::before,
.nakasen-about__heading::after,
body:has(.nakasen-mv) .post_content h2.nakasen-about__heading::before,
body:has(.nakasen-mv) .post_content h2.nakasen-about__heading::after {
	display: none !important;
	content: none !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

.nakasen-about__text {
	margin: 0 0 32px !important;
	color: #111 !important;
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
	letter-spacing: 0.12em;
}

.nakasen-about__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 210px;
	height: 54px;
	padding: 0 32px;
	background: #273041;
	border-radius: 999px;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.nakasen-about__button:hover {
	opacity: 0.75;
}

/* まどかちゃん */
.nakasen-about__character {
	position: absolute;
	right: 5vw !important;
	top: -100px !important;
	width: 158px !important;
	height: 158px !important;
	pointer-events: none;
}

.nakasen-about__character-bg {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 120px !important;
	height: auto;
	z-index: 1;
}

.nakasen-about__character-img {
	position: absolute;
	right: 46px !important;
	top: 0 !important;
	width: 90px !important;
	height: auto;
	z-index: 2;
}


/* =========================================================
  About Food
========================================================= */

.nakasen-about-food {
	margin-top: 92px;
}

.nakasen-about-food__title,
body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title {
	position: relative;
	display: block;
	width: fit-content;
	margin: 0 auto 42px !important;
	padding: 0 0 16px !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: none !important;
	border-left: none !important;
	box-shadow: none !important;
	color: #e6574b !important;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 30px !important;
	line-height: 1 !important;
	letter-spacing: 0.16em !important;
	text-align: center !important;
}

.nakasen-about-food__title::before,
body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title::before {
	display: none !important;
	content: none !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

.nakasen-about-food__title::after,
body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title::after {
	content: "" !important;
	position: absolute !important;
	left: 50% !important;
	bottom: 0 !important;
	display: block !important;
	width: 112px !important;
	height: 1px !important;
	background: #e6574b !important;
	border: none !important;
	box-shadow: none !important;
	transform: translateX(-50%) !important;
}

.nakasen-about-food__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 290px));
	justify-content: center;
	gap: 48px 42px;
}

.nakasen-about-food__card {
	margin: 0;
	text-align: center;
}

.nakasen-about-food__image {
	margin: 0 0 16px !important;
	background: #fff;
}

.nakasen-about-food__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* 店舗名 */
.nakasen-about-food__name,
body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 48px !important;
	margin: 2em 0 1em !important;
	padding: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	border: none !important;
	border-left: none !important;
	box-shadow: none !important;
	color: #111 !important;
	font-family: "Zen Kaku Gothic New", sans-serif !important;
	font-size: 20px !important;
	line-height: 1.45 !important;
	letter-spacing: 0.12em !important;
	text-align: center !important;
}

.nakasen-about-food__name::before,
.nakasen-about-food__name::after,
body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name::before,
body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name::after {
	display: none !important;
	content: none !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
}

/* 店舗情報 */
.nakasen-about-food__info {
	width: fit-content;
	margin: 0 auto !important;
	color: #111 !important;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: 0.08em;
	text-align: left;
}

.nakasen-about-food__info p {
	margin: 0 0 0.3em;
}

.nakasen-about-food__info p:last-child {
	margin-bottom: 0;
}

/* =========================================================
  Calendar
========================================================= */

.nakasen-calendar {
	padding: 3vw 0 8vw;
	background: #fff7f3;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.nakasen-calendar__inner {
	width: min(1040px, 86vw);
	margin: 0 auto;
}

.nakasen-calendar__frame {
	width: 100%;
	background: #fff;
}

.nakasen-calendar__frame iframe {
	display: block;
	width: 100%;
	height: 640px;
	border: none;
}

/* =========================================================
  Calendar dummy
========================================================= */

.nakasen-calendar__dummy {
	height: 640px;
	padding: 22px 26px 18px;
	background: #fff;
	color: #273041;
	font-family: "Zen Kaku Gothic New", sans-serif;
	box-sizing: border-box;
}

.nakasen-calendar__dummy-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.nakasen-calendar__dummy-title {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.nakasen-calendar__dummy-month {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.nakasen-calendar__dummy-week {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	background: #eef2ff;
	border-top: 1px solid #d7deef;
	border-right: 1px solid #d7deef;
	border-left: 1px solid #d7deef;
}

.nakasen-calendar__dummy-week span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 28px;
	font-size: 13px;
	font-weight: 700;
	color: #4e63c7;
}

.nakasen-calendar__dummy-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	height: 500px;
	border-top: 1px solid #d7deef;
	border-left: 1px solid #d7deef;
}

.nakasen-calendar__dummy-grid span {
	display: block;
	border-right: 1px solid #d7deef;
	border-bottom: 1px solid #d7deef;
	background: #fff;
}

.nakasen-calendar__dummy-note {
	margin: 12px 0 0;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: #6b7280;
}


/* =========================================================
  Calendar spacing before Store
========================================================= */

.nakasen-calendar {
	padding-bottom: 5vw;
}


/* =========================================================
  Store
========================================================= */

body:has(.nakasen-store) .wp-block-shortcode:has(.nakasen-store) {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	overflow: visible !important;
}

.nakasen-store {
	position: relative !important;
	left: 50% !important;
	width: 100vw !important;
	max-width: 100vw !important;
	height: clamp(620px, 82vw, 1120px) !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	overflow: hidden !important;
	background: #fff7f3 !important;
	color: #111;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.nakasen-store::before {
	content: "" !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	background-image: url("../img/store_bg.svg") !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: auto 100% !important;
	transform: none !important;
	z-index: 0 !important;
	pointer-events: none !important;
}

.nakasen-store__inner {
	position: relative !important;
	z-index: 1 !important;
	width: min(1060px, 86vw) !important;
	margin: 0 auto !important;
	padding: 0 !important;
}

.nakasen-store__title {
	margin: 0 0 42px !important;
	padding: 0 0 22px !important;
	background: none !important;
	border: none !important;
	border-bottom: 1px solid #e6574b !important;
	box-shadow: none !important;
	color: #e6574b !important;
	font-size: 31px;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0.12em;
}

.nakasen-store__title::before,
.nakasen-store__title::after {
	display: none !important;
	content: none !important;
}

.nakasen-store__lead {
	display: grid;
	grid-template-columns: 1fr 1.22fr;
	align-items: center;
	gap: 62px;
}

.nakasen-store__body {
	padding-left: 2px;
}

.nakasen-store__heading {
	margin: 0 0 24px;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: #111 !important;
	font-size: 26px;
	font-weight: 800;
	line-height: 1.75;
	letter-spacing: 0.16em;
}

.nakasen-store__heading::before,
.nakasen-store__heading::after {
	display: none !important;
	content: none !important;
}

.nakasen-store__text {
	margin: 0 0 40px;
	color: #111;
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
	letter-spacing: 0.12em;
}

.nakasen-store__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	height: 58px;
	padding: 0 34px;
	background: #273041;
	border-radius: 999px;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.nakasen-store__button:hover {
	opacity: 0.75;
}

.nakasen-store__visual {
	position: relative;
	display: flex;
	justify-content: flex-end;
	transform: none !important;
}

.nakasen-store__image {
	width: min(420px, 100%) !important;
	margin: 0;
	padding: 8px !important;
	background: #fff;
	box-sizing: border-box;
}

.nakasen-store__image img {
	display: block;
	width: 100%;
	height: auto;
}

.nakasen-store__character {
	position: absolute;
	right: -18px !important;
	top: -78px !important;
	width: 190px !important;
	height: auto;
	z-index: 2;
	pointer-events: none;
}

.nakasen-store__links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 42px;
	margin-top: 68px !important;
}

.nakasen-store__shop-link {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 0 24px;
	background: #fff;
	border: 2px solid #111;
	border-radius: 999px;
	color: #273041;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.14em;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.nakasen-store__shop-link:hover {
	background: #273041;
	color: #fff;
}
/* =========================================================
  PC inner width adjustment
========================================================= */

/* MV以外の主要セクションを900px基準に調整 */
.nakasen-about__inner,
.nakasen-calendar__inner,
.nakasen-store__inner {
	width: min(900px, 86vw) !important;
}
/* =========================================================
  About food grid adjustment
========================================================= */

.nakasen-about-food__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	justify-content: stretch !important;
	gap: 36px !important;
}

.nakasen-about-food__card {
	width: 100%;
}

.nakasen-about-food__image {
	width: 100%;
}

.nakasen-about-food__image img {
	width: 100%;
}


/* =========================================================
  Madoka Letter
========================================================= */

.nakasen-madoka {
	padding: 5.5vw 0 7vw !important;
	background: #fff7f3 !important;
	overflow: hidden !important;
}

.nakasen-madoka__inner {
	width: min(900px, 86vw) !important;
	margin: 0 auto !important;
}

.nakasen-madoka__stage {
	position: relative !important;
	min-height: 620px !important;
}

/* 背景の花 */
.nakasen-madoka__bg {
	position: absolute !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: contain !important;
	border-radius: 0 !important;
	pointer-events: none !important;
}

/* 左下の赤い花 */
.nakasen-madoka__bg--red {
	left: calc(50% - 710px) !important;
	bottom: -100px !important;
	width: 400px !important;
	height: 400px !important;
	background-image: url("../img/deco_flower_red.svg") !important;
	background-color: transparent !important;
	opacity: 1 !important;
	z-index: 0 !important;
}

/* 左上の淡い花 */
.nakasen-madoka__bg--pale-left {
	left: calc(50% - 600px) !important;
	top: -20px !important;
	width: 180px !important;
	height: 180px !important;
	background-image: url("../img/deco_flower_red.svg") !important;
	background-color: transparent !important;
	opacity: 0.16 !important;
	z-index: 0 !important;
}

/* 右上の淡い花 */
.nakasen-madoka__bg--pale-right {
	right: calc(50% - 750px) !important;
	top: -30px !important;
	width: 450px !important;
	height: 450px !important;
	background-image: url("../img/deco_flower_red.svg") !important;
	background-color: transparent !important;
	opacity: 0.16 !important;
	z-index: 0 !important;
}

/* 左上の線花 */
.nakasen-madoka__stage::before {
	content: "" !important;
	position: absolute !important;
	left: calc(50% - 640px) !important;
	top: -30px !important;
	width: 118px !important;
	height: 118px !important;
	background: url("../img/deco_flower_outline.svg") center center / contain no-repeat !important;
	z-index: 1 !important;
	pointer-events: none !important;
}

/* 右上の線花 */
.nakasen-madoka__stage::after {
	content: "" !important;
	position: absolute !important;
	right: calc(50% - 400px) !important;
	top: -50px !important;
	width: 150px !important;
	height: 150px !important;
	background: url("../img/deco_flower_outline.svg") center center / contain no-repeat !important;
	z-index: 1 !important;
	pointer-events: none !important;
}

/* 吹き出し */
.nakasen-madoka__speech {
	position: absolute !important;
	left: calc(50% - 285px) !important;
	top: -8px !important;
	width: 170px !important;
	height: auto !important;
	z-index: 5 !important;
}

/* まどかちゃん */
.nakasen-madoka__character {
	position: absolute !important;
	left: 50% !important;
	top: -58px !important;
	width: 228px !important;
	height: auto !important;
	transform: translateX(-50%) !important;
	z-index: 2 !important;
}

/* 本 */
.nakasen-madoka__book-wrap {
	position: absolute !important;
	left: 50% !important;
	top: 150px !important;
	width: min(1080px, 112vw) !important;
	max-width: none !important;
	transform: translateX(-50%) !important;
	z-index: 3 !important;
}

.nakasen-madoka__book {
	display: block !important;
	width: 100% !important;
	height: auto !important;
}

/* 本の中身 */
.nakasen-madoka__content {
	position: absolute !important;
	inset: 0 !important;
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	column-gap: 100px !important;
	padding: 70px 50px 150px !important;
	box-sizing: border-box !important;
	z-index: 4 !important;
}

/* 左ページ */
.nakasen-madoka__left {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: flex-start !important;
	text-align: center !important;
	padding-top: 2px !important;
}

.nakasen-madoka__title {
	margin: 0 0 22px !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: #2f3448 !important;
	font-size: 46px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.08em !important;
}

.nakasen-madoka__title::before,
.nakasen-madoka__title::after {
	display: none !important;
	content: none !important;
}

.nakasen-madoka__lead {
	margin: 0 0 28px !important;
	color: #2f3448 !important;
	font-size: 21px !important;
	font-weight: 700 !important;
	line-height: 1.8 !important;
	letter-spacing: 0.08em !important;
}

.nakasen-madoka__button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 210px !important;
	height: 54px !important;
	padding: 0 28px !important;
	background: #2f3448 !important;
	border-radius: 999px !important;
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.08em !important;
	text-decoration: none !important;
	transition: opacity 0.2s ease !important;
}

.nakasen-madoka__button:hover {
	opacity: 0.8;
}

/* 右ページ */
.nakasen-madoka__right {
	padding-top: 2px !important;
}

.nakasen-madoka__list {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.nakasen-madoka__item + .nakasen-madoka__item {
	margin-top: 28px !important;
}

.nakasen-madoka__item-link {
	display: grid !important;
	grid-template-columns: 145px 1fr !important;
	column-gap: 24px !important;
	align-items: center !important;
	color: inherit !important;
	text-decoration: none !important;
}

.nakasen-madoka__thumb {
	width: 145px !important;
	height: 88px !important;
	overflow: hidden !important;
	border-radius: 6px !important;
	background: #f2f2f2 !important;
}

.nakasen-madoka__thumb img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

.nakasen-madoka__thumb-placeholder {
	width: 100%;
	height: 100%;
	background: #e8e8e8;
}

.nakasen-madoka__date {
	margin: 0 0 8px !important;
	color: #111 !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.04em !important;
}

.nakasen-madoka__post-title {
	color: #111 !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.55 !important;
	letter-spacing: 0.04em !important;
}

.nakasen-madoka__empty {
	padding-top: 34px;
	text-align: center;
	color: #2f3448;
	font-size: 18px;
	font-weight: 700;
}
/* =========================================================
  Access
========================================================= */

.nakasen-access {
	padding: 5vw 0 0;
	background: #fff7f3;
	font-family: "Zen Kaku Gothic New", sans-serif;
	overflow: hidden;
}

.nakasen-access__inner {
	width: min(900px, 86vw);
	margin: 0 auto;
}

/* Access 見出し */
.nakasen-access__title,
body:has(.nakasen-mv) .post_content h2.nakasen-access__title {
	margin: 0 0 64px !important;
	padding: 0 !important;
	background: none !important;
	border: none !important;
	box-shadow: none !important;
	color: transparent !important;
	-webkit-text-stroke: 1.2px #e6574b;
	font-family: "Dela Gothic One", "Zen Kaku Gothic New", sans-serif !important;
	font-size: clamp(82px, 9vw, 132px) !important;
	font-weight: 400 !important;
	line-height: 0.8 !important;
	letter-spacing: 0.04em !important;
	text-align: center !important;
}

.nakasen-access__title::before,
.nakasen-access__title::after,
body:has(.nakasen-mv) .post_content h2.nakasen-access__title::before,
body:has(.nakasen-mv) .post_content h2.nakasen-access__title::after {
	display: none !important;
	content: none !important;
}

/* 地図 */
.nakasen-access__map-wrap {
	width: 100vw;
	height: clamp(420px, 42vw, 620px);
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	background: #fff;
	overflow: hidden;
}

.nakasen-access__map {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	filter: saturate(0.75) brightness(1.04);
}

.nakasen-access__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: #f2f2f2;
	color: #273041;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

/* Google Mapで開くボタン */
.nakasen-access__button-wrap {
	display: flex;
	justify-content: center;
	padding: 28px 0 0;
}

.nakasen-access__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 240px;
	height: 56px;
	padding: 0 34px;
	background: #273041;
	border-radius: 999px;
	color: #fff !important;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.12em;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.nakasen-access__button:hover {
	opacity: 0.75;
}
/* Accessの下余白を少し整える */
.nakasen-access__button-wrap {
	padding: 22px 0 0 !important;
}
/* =========================================================
  About / Food responsive
========================================================= */

/* ------------------------------
  1024px以下
------------------------------ */
@media screen and (max-width: 1024px) {

	.nakasen-about__inner {
		width: min(900px, 86vw) !important;
	}

	.nakasen-about__en {
		margin-bottom: 48px;
		font-size: clamp(66px, 8vw, 92px);
	}

	.nakasen-about__lead {
		grid-template-columns: 360px 1fr;
		gap: 40px;
	}

	.nakasen-about__heading,
	body:has(.nakasen-mv) .post_content h2.nakasen-about__heading {
		font-size: 24px !important;
		line-height: 1.7 !important;
	}

	.nakasen-about__text {
		font-size: 15px;
		line-height: 1.95;
	}

	.nakasen-about__character {
		left: 30vw !important;
        top: -155px !important;
		width: 138px !important;
		height: 138px !important;
	}

	.nakasen-about__character-bg {
		width: 20vw !important;
        right: -2vw;
        bottom: -2vw;
	}

	.nakasen-about__character-img {
		right: 40px !important;
		width: 14vw!important;
	}

	.nakasen-about-food {
		margin-top: 82px;
	}

	.nakasen-about-food__grid {
		gap: 32px !important;
	}

	.nakasen-about-food__name,
	body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name {
		font-size: 18px !important;
	}
}


/* ------------------------------
  768px以下
------------------------------ */
@media screen and (max-width: 768px) {

	.nakasen-about {
		padding-top: 4vw;
	}

	.nakasen-about__en {
		margin-bottom: 38px;
		font-size: clamp(54px, 10vw, 76px);
		line-height: 0.88;
	}

	.nakasen-about__lead {
		grid-template-columns: 42% 1fr;
		gap: 32px;
		align-items: center;
	}

	.nakasen-about__heading,
	body:has(.nakasen-mv) .post_content h2.nakasen-about__heading {
		margin: 0 0 18px !important;
		font-size: 22px !important;
		line-height: 1.65 !important;
		letter-spacing: 0.13em !important;
	}

	.nakasen-about__text {
		margin-bottom: 26px !important;
		font-size: 14px;
		line-height: 1.9;
		letter-spacing: 0.09em;
	}

	.nakasen-about__button {
		min-width: 180px;
		height: 48px;
		padding: 0 26px;
		font-size: 13px;
	}

	.nakasen-about__character {
		right: -10px !important;
		top: -120px !important;
		width: 120px !important;
		height: 120px !important;
	}

	.nakasen-about__character-bg {
		width: 96px !important;
	}

	.nakasen-about__character-img {
        left: 0vw !important;
		width: 14vw !important;
	}

	.nakasen-about-food {
		margin-top: 72px;
	}

	.nakasen-about-food__title,
	body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title {
		margin-bottom: 34px !important;
		font-size: 26px !important;
	}

	.nakasen-about-food__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}

	.nakasen-about-food__image {
		margin-bottom: 14px !important;
	}

	.nakasen-about-food__name,
	body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name {
		min-height: 44px !important;
		margin: 1.4em 0 0.8em !important;
		font-size: 16px !important;
		line-height: 1.45 !important;
		letter-spacing: 0.08em !important;
	}

	.nakasen-about-food__info {
		font-size: 12px;
		line-height: 1.75;
		letter-spacing: 0.04em;
	}
}


/* ------------------------------
  600px以下
------------------------------ */
@media screen and (max-width: 600px) {

	.nakasen-about {
		padding-top: 34px;
	}

	.nakasen-about__inner {
		width: 86vw !important;
	}

	.nakasen-about__en {
		margin: 0 0 26px;
		font-size: clamp(58px, 18vw, 76px);
		line-height: 1;
		letter-spacing: 0.02em;
	}

	.nakasen-about__lead {
		display: block;
	}

	.nakasen-about__main-image {
		width: 100%;
		margin: 0 0 28px !important;
	}

	.nakasen-about__body {
		padding-top: 0 !important;
	}

	.nakasen-about__heading,
	body:has(.nakasen-mv) .post_content h2.nakasen-about__heading {
		margin: 0 0 18px !important;
		font-size: 21px !important;
		line-height: 1.65 !important;
		letter-spacing: 0.12em !important;
	}

	.nakasen-about__text {
		margin: 0 0 26px !important;
		font-size: 14px;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}

	.nakasen-about__button {
		min-width: 170px;
		height: 46px;
		padding: 0 24px;
		font-size: 13px;
		letter-spacing: 0.14em;
	}

	/* SPではAboutまわりのまどかちゃんを控えめに */
	.nakasen-about__character {
		top: -16vw !important;
		width: 108px !important;
		height: 108px !important;
		left: 55vw !important;
	}

	.nakasen-about__character-bg {
		width: 86px !important;
	}

	.nakasen-about__character-img {
		right: 30px !important;
		width: 20vw !important;
	}

	/* お食事 */
	.nakasen-about-food {
		margin-top: 64px;
	}

	.nakasen-about-food__title,
	body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title {
		margin-bottom: 30px !important;
		padding-bottom: 14px !important;
		font-size: 22px !important;
		letter-spacing: 0.14em !important;
	}

	.nakasen-about-food__title::after,
	body:has(.nakasen-mv) .post_content h2.nakasen-about-food__title::after {
		width: 86px !important;
	}

	.nakasen-about-food__grid {
		grid-template-columns: 1fr !important;
		gap: 34px !important;
		margin: 0 auto;
	}

	.nakasen-about-food__card {
		text-align: center;
	}

	.nakasen-about-food__image {
		margin: 0 0 14px !important;
	}

	.nakasen-about-food__name,
	body:has(.nakasen-mv) .post_content h3.nakasen-about-food__name {
		min-height: 0 !important;
		margin: 0 0 10px !important;
		font-size: 18px !important;
		line-height: 1.45 !important;
		letter-spacing: 0.1em !important;
	}

	.nakasen-about-food__info {
		font-size: 13px;
		line-height: 1.8;
		letter-spacing: 0.05em;
		text-align: left;
	}
}
/* =========================================================
  Store / responsive adjustment
========================================================= */

/* ------------------------------
  iPad Mini 以下
  ※ iPad Air / iPad Pro は触らない
------------------------------ */
@media screen and (max-width: 768px) {

	.nakasen-store {
		height: auto !important;
		min-height: 860px !important;
		padding: 72px 0 86px !important;
		align-items: center !important;
		overflow: hidden !important;
		padding-bottom: 0 !important;
	}

	.nakasen-store__inner {
		width: 86vw !important;
	}

	.nakasen-store__title {
		margin-bottom: 36px !important;
		font-size: 27px !important;
		line-height: 1.55 !important;
	}

	.nakasen-store__lead {
		grid-template-columns: 1fr 1.05fr !important;
		gap: 42px !important;
	}

	.nakasen-store__heading {
		font-size: 23px !important;
		line-height: 1.7 !important;
	}

	.nakasen-store__text {
		margin-bottom: 30px !important;
		font-size: 15px !important;
		line-height: 1.9 !important;
	}

	.nakasen-store__image {
		width: min(340px, 100%) !important;
	}

	.nakasen-store__character {
		right: -14px !important;
		top: -64px !important;
		width: 150px !important;
	}

	/* 下の楽天/Yahooボタンが切れないように */
	.nakasen-store__links {
		margin-top: 52px !important;
		padding-bottom: 4px !important;
	}
}


/* ------------------------------
  iPhone 系
------------------------------ */
@media screen and (max-width: 600px) {

	.nakasen-store {
		height: auto !important;
		min-height: 0 !important;
		padding: 70px 0 78px !important;
		display: block !important;
		overflow: hidden !important;
		padding-bottom: 0 !important;
	}

	.nakasen-store::before {
		background-position: center center !important;
		background-size: auto 100% !important;
	}

	.nakasen-store__inner {
		width: 86vw !important;
	}

	.nakasen-store__title {
		margin: 0 0 30px !important;
		padding-bottom: 18px !important;
		font-size: 22px !important;
		line-height: 1.55 !important;
		letter-spacing: 0.1em !important;
	}

	/* SPでは画像とテキストを縦積み */
	.nakasen-store__lead {
		display: flex !important;
		flex-direction: column-reverse !important;
		gap: 28px !important;
	}

	.nakasen-store__body {
		padding-left: 0 !important;
	}

	.nakasen-store__heading {
		margin-bottom: 18px !important;
		font-size: 21px !important;
		line-height: 1.65 !important;
		letter-spacing: 0.12em !important;
	}

	.nakasen-store__text {
		margin-bottom: 26px !important;
		font-size: 14px !important;
		line-height: 1.9 !important;
		letter-spacing: 0.08em !important;
	}

	.nakasen-store__button {
		min-width: 170px !important;
		height: 46px !important;
		padding: 0 24px !important;
		font-size: 13px !important;
		letter-spacing: 0.14em !important;
	}

	.nakasen-store__visual {
		margin: 0 auto !important;
		justify-content: center !important;
	}

	.nakasen-store__image {
		width: 100% !important;
		padding: 7px !important;
	}

	.nakasen-store__character {
		right: -28px !important;
		top: -58px !important;
		width: 128px !important;
	}

	.nakasen-store__links {
		grid-template-columns: 1fr !important;
		gap: 14px !important;
		margin-top: 40px !important;
		padding-bottom: 0 !important;
	}

	.nakasen-store__shop-link {
		min-height: 48px !important;
		padding: 0 20px !important;
		font-size: 14px !important;
		letter-spacing: 0.1em !important;
	}
}
/* =========================================================
  Madoka / responsive
========================================================= */

/* ------------------------------
  iPad Air / iPad Pro：769px〜1024px
------------------------------ */
@media screen and (max-width: 1024px) and (min-width: 769px) {

	.nakasen-madoka {
		padding-top: 7vw !important;
		padding-bottom: 20px !important;
		overflow: hidden !important;
	}

	.nakasen-madoka__stage {
		min-height: 585px !important;
	}

	.nakasen-madoka__character {
		top: -34px !important;
		width: 210px !important;
	}

	.nakasen-madoka__speech {
		top: 8px !important;
	}

	.nakasen-madoka__book-wrap {
		width: min(840px, 84vw) !important;
	}

	.nakasen-madoka__content {
		column-gap: 66px !important;
		padding: 58px 46px 132px !important;
	}

	.nakasen-madoka__title {
		font-size: 34px !important;
		line-height: 1.2 !important;
	}

	.nakasen-madoka__lead {
		margin-bottom: 0 !important;
		font-size: 15px !important;
		line-height: 1.7 !important;
	}

	.nakasen-madoka__button {
		position: absolute !important;
		left: 50% !important;
		bottom: -62px !important;
		transform: translateX(-50%) !important;
		z-index: 8 !important;
	}

	.nakasen-madoka__right {
		transform: translateY(-18px) !important;
	}

	.nakasen-madoka__item-link {
		grid-template-columns: 104px 1fr !important;
		column-gap: 14px !important;
	}

	.nakasen-madoka__thumb {
		width: 104px !important;
		height: 64px !important;
	}

	.nakasen-madoka__date {
		font-size: 13px !important;
		line-height: 1.35 !important;
	}

	.nakasen-madoka__post-title {
		font-size: 14px !important;
		line-height: 1.45 !important;
	}

	/* 背景花 */
	.nakasen-madoka__bg--red {
		left: calc(50% - 500px) !important;
		bottom: 12px !important;
		width: 250px !important;
		height: 250px !important;
	}

	.nakasen-madoka__bg--pale-left {
		left: calc(50% - 430px) !important;
		top: 70px !important;
		width: 140px !important;
		height: 140px !important;
	}

	.nakasen-madoka__bg--pale-right {
		right: calc(50% - 455px) !important;
		top: 120px !important;
		width: 230px !important;
		height: 230px !important;
	}

	.nakasen-madoka__stage::before {
		left: calc(50% - 440px) !important;
		top: 44px !important;
		width: 94px !important;
		height: 94px !important;
	}

	.nakasen-madoka__stage::after {
		right: calc(50% - 390px) !important;
		top: 36px !important;
		width: 108px !important;
		height: 108px !important;
	}

	/* Accessとの間隔 */
	.nakasen-access {
		padding-top: 28px !important;
	}
}


/* ------------------------------
  iPad Mini：601px〜768px
------------------------------ */
@media screen and (max-width: 768px) and (min-width: 601px) {

	.nakasen-madoka {
		padding-top: 86px !important;
		padding-bottom: 10px !important;
		overflow: hidden !important;
	}

	.nakasen-madoka__inner {
		width: 86vw !important;
	}

	.nakasen-madoka__stage {
		min-height: 570px !important;
	}

	.nakasen-madoka__character {
		top: -42px !important;
		width: 190px !important;
	}

	.nakasen-madoka__speech {
		left: calc(50% - 240px) !important;
		top: -2px !important;
		width: 140px !important;
	}

	.nakasen-madoka__book-wrap {
		top: 132px !important;
		width: min(700px, 88vw) !important;
	}

	.nakasen-madoka__content {
		column-gap: 58px !important;
		padding: 54px 42px 118px !important;
	}

	.nakasen-madoka__title {
		font-size: 36px !important;
	}

	.nakasen-madoka__lead {
		margin-bottom: 0 !important;
		font-size: 16px !important;
		line-height: 1.7 !important;
	}

	.nakasen-madoka__button {
		position: absolute !important;
		left: 50% !important;
		bottom: -50px !important;
		transform: translateX(-50%) !important;
		z-index: 8 !important;
	}

	.nakasen-madoka__right {
		transform: translateY(-16px) !important;
	}

	.nakasen-madoka__item-link {
		grid-template-columns: 108px 1fr !important;
		column-gap: 16px !important;
	}

	.nakasen-madoka__thumb {
		width: 108px !important;
		height: 66px !important;
	}

	.nakasen-madoka__date {
		font-size: 13px !important;
	}

	.nakasen-madoka__post-title {
		font-size: 14px !important;
	}

	/* 背景花 */
	.nakasen-madoka__bg--red {
		left: -84px !important;
		bottom: 10px !important;
		width: 220px !important;
		height: 220px !important;
	}

	.nakasen-madoka__bg--pale-left {
		left: -42px !important;
		top: 72px !important;
		width: 120px !important;
		height: 120px !important;
	}

	.nakasen-madoka__bg--pale-right {
		right: -78px !important;
		top: 130px !important;
		width: 210px !important;
		height: 210px !important;
	}

	.nakasen-madoka__stage::before {
		left: auto !important;
		right: 22px !important;
		top: 50px !important;
		width: 82px !important;
		height: 82px !important;
	}

	.nakasen-madoka__stage::after {
		right: -10px !important;
		top: 190px !important;
		width: 92px !important;
		height: 92px !important;
	}

	/* Accessとの間隔 */
	.nakasen-access {
		padding-top: 18px !important;
	}
}


/* ------------------------------
  iPhone系：600px以下
------------------------------ */
@media screen and (max-width: 600px) {

	.nakasen-madoka {
		padding: 72px 0 82px !important;
		overflow: hidden !important;
	}

	.nakasen-madoka__inner {
		width: 86vw !important;
	}

	.nakasen-madoka__stage {
		position: relative !important;
		min-height: 0 !important;
		padding-top: 94px !important;
	}

	/* 背景花 */
	.nakasen-madoka__bg--red {
		left: -120px !important;
		bottom: -90px !important;
		width: 230px !important;
		height: 230px !important;
	}

	.nakasen-madoka__bg--pale-left {
		left: -64px !important;
		top: 40px !important;
		width: 150px !important;
		height: 150px !important;
	}

	.nakasen-madoka__bg--pale-right {
		right: -120px !important;
		top: 120px !important;
		width: 240px !important;
		height: 240px !important;
	}

	.nakasen-madoka__stage::before {
		left: auto !important;
		right: -18px !important;
		top: 34px !important;
		width: 92px !important;
		height: 92px !important;
	}

	.nakasen-madoka__stage::after {
		display: none !important;
	}

	/* まどかちゃんを白ボックスの背面へ */
	.nakasen-madoka__character {
		left: 50% !important;
		top: -12vw !important;
		width: 150px !important;
		transform: translateX(-50%) !important;
		z-index: 2 !important;
	}

	.nakasen-madoka__speech {
		left: 0 !important;
		top: 22px !important;
		width: 112px !important;
		z-index: 5 !important;
	}

	/* SPでは本SVGを非表示にしてカード化 */
	.nakasen-madoka__book-wrap {
		position: relative !important;
		left: auto !important;
		top: auto !important;
		width: 100% !important;
		max-width: none !important;
		transform: none !important;
		z-index: 4 !important;
	}

	.nakasen-madoka__book {
		display: none !important;
	}

	.nakasen-madoka__content {
		position: relative !important;
		inset: auto !important;
		display: block !important;
		padding: 58px 24px 30px !important;
		background: #fff !important;
		border: 2px solid #273041 !important;
		border-radius: 12px !important;
		box-sizing: border-box !important;
		z-index: 4 !important;
	}

	.nakasen-madoka__content::before {
		content: "";
		position: absolute;
		left: 50%;
		top: -38px;
		width: 128px;
		height: 64px;
		transform: translateX(-50%);
		pointer-events: none;
	}

	.nakasen-madoka__left {
		display: block !important;
		padding-top: 0 !important;
		text-align: center !important;
	}

	.nakasen-madoka__title {
		margin: 0 0 18px !important;
		font-size: 30px !important;
		line-height: 1.25 !important;
		letter-spacing: 0.08em !important;
	}

	.nakasen-madoka__lead {
		margin: 0 0 22px !important;
		font-size: 15px !important;
		line-height: 1.8 !important;
		letter-spacing: 0.06em !important;
	}

	.nakasen-madoka__button {
		min-width: 170px !important;
		height: 46px !important;
		padding: 0 24px !important;
		font-size: 13px !important;
	}

	.nakasen-madoka__right {
		margin-top: 32px !important;
		padding-top: 28px !important;
		border-top: 1px solid rgba(39, 48, 65, 0.25) !important;
	}

	.nakasen-madoka__item + .nakasen-madoka__item {
		margin-top: 18px !important;
	}

	.nakasen-madoka__item-link {
		display: grid !important;
		grid-template-columns: 96px 1fr !important;
		column-gap: 14px !important;
		align-items: center !important;
	}

	.nakasen-madoka__thumb {
		width: 96px !important;
		height: 62px !important;
		border-radius: 4px !important;
	}

	.nakasen-madoka__date {
		margin: 0 0 4px !important;
		font-size: 12px !important;
		line-height: 1.35 !important;
	}

	.nakasen-madoka__post-title {
		display: -webkit-box !important;
		overflow: hidden !important;
		font-size: 14px !important;
		line-height: 1.5 !important;
		-webkit-line-clamp: 2 !important;
		-webkit-box-orient: vertical !important;
	}
}
/* =========================================================
  Access / responsive adjustment
========================================================= */

/* ------------------------------
  Tablet + SP
------------------------------ */
@media screen and (max-width: 1024px) {

	/* 地図とボタンの間を少し広げる */
	.nakasen-access__button-wrap {
		padding-top: 36px !important;
	}
}


/* ------------------------------
  SP
------------------------------ */
@media screen and (max-width: 600px) {

	.nakasen-access {
		padding-top: 48px !important;
	}

	/* Accessが改行されないように */
	.nakasen-access__title,
	body:has(.nakasen-mv) .post_content h2.nakasen-access__title {
		margin-bottom: 42px !important;
		font-size: clamp(58px, 18vw, 72px) !important;
		line-height: 0.9 !important;
		letter-spacing: 0.02em !important;
		white-space: nowrap !important;
		word-break: keep-all !important;
	}

	/* SPでは地図とボタンの間を少しだけ広げる */
	.nakasen-access__button-wrap {
		padding-top: 32px !important;
	}
}
