@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}._fl{float:left}._fr{float:right}@media screen and (min-width: 744px),print{._pc_fl{float:left}._pc_fr{float:right}}@media screen and (max-width: 743px){._sp_fl{float:left}._sp_fr{float:right}}._tal{text-align:left!important}._tac{text-align:center!important}._tar{text-align:right!important}@media screen and (min-width: 744px),print{._pc_tal{text-align:left!important}._pc_tac{text-align:center!important}._pc_tar{text-align:right!important}}@media screen and (max-width: 743px){._sp_tal{text-align:left!important}._sp_tac{text-align:center!important}._sp_tar{text-align:right!important}}


/* 変数
====================================================================== */
:root {
	--color-base: #000000;
	--color-base-op0: rgba(0,0,0,0);
	--color-base-op1: rgba(0,0,0,1);
	--color-theme: #1f408c;
	--color-dark: #203971;
	--color-yellow: #B0D224;
	--color-yellow-dark: #82b800;
	--color-navy: #183981;
	--color-blue: #00a3e9;
	--color-green: #aace16;
	--color-red: #e60012;
	--color-expo-blue: #0068b7;
	--bg-light: #ededf1;
	--bg-gray: #d9d9de;
	--bg-white: #ffffff;
	--border-base: #e3e9f6;

	--base-width: 124rem;
	--pc-base-padding: 6rem;
	--sp-base-padding: calc(20 / 375 * 100vw);
	--font-family-jp: 'Noto Sans JP', sans-serif;
	--font-family-en: 'Barlow', var(--font-family-jp);
	--font-weight: 400;
	--font-weight-bold: 700;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--skew-x: skewX(-30deg);
}


/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	scroll-padding-top: 7rem;
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
@media screen and (min-width: 744px), print {
	html {
		font-size: min(calc(10px - (1300px - 100vw) * (10 / 1300)), 10px);
	}
}
@media screen and (max-width: 743px) {
	html {
		scroll-padding-top: 5rem;
	}
}
body {
	background-color: var(--bg-light);
	font-size: 1.8rem;
	line-height: calc(28 / 18);
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	letter-spacing: .1em;

	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-feature-settings: "palt";
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
}
@media screen and (max-width: 743px) {
	body {
		font-size: 1.6rem;
		line-height: calc(28 / 16);
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}
:where(address,caption,cite,code,dfn,em,th,var) {
	font-style: normal;
	font-weight: var(--font-weight);
}
:where(h1,h2,h3,h4,h5,h6) {
	font-weight: var(--font-weight-bold);
}
:where(img) {
	max-width: 100%;
	height: auto;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a[href]) {
	color: var(--color-theme);
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(.-page-expo [href]) {
	color: #BE1919;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration: none;
}
:where(a[href]._a_reverse_alpha,._a_reverse_alpha a[href],a[href] ._a_reverse_alpha) {
	text-decoration-color: var(--color-base-op0);
}
:where(a[href]._a_reverse_alpha_white,._a_reverse_alpha_white a[href]) {
	text-decoration-color: rgba(255,255,255,0);
}
@media (hover) {
	:where(a[href]:hover, a[data-modal]:hover) {
		text-decoration: none;
	}
	:where(a[href]._a_reverse,._a_reverse a[href]):hover {
		text-decoration: underline;
	}
	:where(a[href]:hover ._a_reverse) {
		text-decoration: underline;
	}
	:where(a[href]:hover ._hl) {
		text-decoration: underline;
	}
	:where(a[href]._a_reverse_alpha,._a_reverse_alpha a[href],a[href] ._a_reverse_alpha) {
		transition: text-decoration var(--transition);
	}
	:where(a[href]._a_reverse_alpha:hover,._a_reverse_alpha a[href]:hover,a[href]:hover ._a_reverse_alpha) {
		text-decoration: underline;
		text-decoration-color: var(--color-base-op1);
	}
	:where(a[href]._a_reverse_alpha_white,._a_reverse_alpha_white a[href]):hover {
		text-decoration: underline;
		text-decoration-color: rgba(255,255,255,1);
	}
}


:where(label) {
	cursor: pointer;
}
:where(input, select, textarea, button) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	font-weight: inherit;
	font-feature-settings: inherit;
	outline: none;
	font-size: 100%;
}
::placeholder {
	color: #ccc;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	display: block;
}

/* slick
====================================================================== */
.slick-list,.slick-slider,.slick-track{position:relative;display:block}.slick-slider{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{top:0;left:0;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-initialized .slick-slide,.slick-slide img{display:block}.slick-arrow.slick-hidden,.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}

/* pc / sp
====================================================================== */
@media screen and (min-width: 744px), print {
	._sp {
		display: none !important;
	}
	._pc_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
	._pc_hidden {
		position: relative;
		overflow: hidden;
		display: block;
		height: 0;
	}
}
@media screen and (max-width: 743px) {
	._pc {
		display: none !important;
	}
	._sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* transition
====================================================================== */
@media (hover) {
	:where(a,button,._basic_trs,._hl),
	:where(a,button,._basic_trs,._hl)::before,
	:where(a,button,._basic_trs,._hl)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(a svg) {
		transition: fill var(--transition);
	}
}

/* color
====================================================================== */
._c_base {
	color: var(--color-base) !important;
}
._c_theme {
	color: var(--color-theme) !important;
}
._c_yellow {
	color: var(--color-yellow) !important;
}
._c_white {
	color: #fff !important;
}
._c_green {
	color: var(--color-green) !important;
}
._bg_white {
	background-color: #fff !important;
}
._bg_light {
	background-color: var(--bg-light) !important;
}
._c_expoblue {
	color: var(--color-expo-blue) !important;
}

/* font
====================================================================== */
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 700;
}
._fwn {
	font-weight: var(--font-weight);
}
._fwb {
	font-weight: var(--font-weight);
}
._fw4 {
	font-weight: 400;
}
._fw5 {
	font-weight: 500;
}
._fw7 {
	font-weight: 700;
}
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 744px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 743px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}
@media screen and (min-width: 744px), print {
	._fz_l {
		font-size: 2rem;
		line-height: calc(34 / 20);
	}
}

/* display
====================================================================== */
._db {
	display: block;
}
._dib {
	display: inline-block;
}
._dfcc {
	display: flex !important;
	justify-content: center;
	align-items: center;
}
@media screen and (min-width: 744px), print {
	._pc_dib {
		display: inline-block;
	}
	._pc_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}
@media screen and (max-width: 743px) {
	._sp_dib {
		display: inline-block;
	}
	._sp_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}

/* object-fit
====================================================================== */
img._of {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
img._of.-abs {
	position: absolute;
	top: 0;
	left: 0;
}
img._of.-bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
img._of.-top {
	object-position: 50% 0;
}
img._of.-bottom {
	object-position: 50% 100%;
}
@media screen and (min-width: 744px), print {
	img._of.-pc_none {
		object-fit: none;
	}
	img._of.-pc_top {
		object-position: 50% 0 ;
	}
	img._of.-pc_bottom {
		object-position: 50% 100%;
	}
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._pc_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._pc_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._pc_of.-top {
		object-position: 50% 0 ;
	}
	img._pc_of.-none {
		object-fit: none;
	}
}
@media screen and (max-width: 743px) {
	img._of.-sp_top {
		object-position: 50% 0 ;
	}
	img._of.-sp_bottom {
		object-position: 50% 100%;
	}
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._sp_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._sp_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._sp_of.-top {
		object-position: 50% 0 ;
	}
}

/* hover
====================================================================== */
@media (hover) {
	body.init a[href] ._hv_op {
		transition: opacity var(--transition);
	}
	a:is([href], [data-modal])._hv_op:hover,
	a[href]:hover ._hv_op,
	button._hv_op:hover,
	._hv_op a[href]:hover {
		opacity: 0.7;
	}
	a[href]._hv_op.-a20:hover,
	a[href]:hover ._hv_op.-a20,
	._hv_op.-a20 a[href]:hover {
		opacity: 0.8;
	}
	a[href]._hv_op.-a10:hover,
	a[href]:hover ._hv_op.-a10,
	._hv_op.-a10 a[href]:hover {
		opacity: 0.9;
	}
	a[href]._hv_op.-a50:hover,
	a[href]:hover ._hv_op.-a50,
	._hv_op.-a50 a[href]:hover {
		opacity: 0.5;
	}
}

._hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
}
._hv_zoom > * {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}
._hv_zoom.-static > * {
	position: relative;
}
@media (hover) {
	body.init a[href]._hv_zoom > *,
	body.init a[href] ._hv_zoom > * {
		transition: transform 0.5s, opacity .3s;
	}
	a[href]:hover ._hv_zoom.-s > * {
		transform: scale(1.03);
	}
	a[href]:hover ._hv_zoom.-l > * {
		transform: scale(1.1);
	}
	a[href]:hover._hv_zoom > *,
	a[href]:hover ._hv_zoom > * {
		transform: scale(1.05);
	}
}

/* target
====================================================================== */
a._target {
	display: block;
	position: relative;
	width: 1px;
	top: -7rem;
}
a._target.-pt {
	top: -11rem;
}
a._target.-abs {
	position: absolute;
}
a._target.-b {
	top: 0;
}
@media screen and (max-width: 743px) {
	a._target {
		top: -5rem;
	}
	a._target.-pt {
		top: -8rem;
	}
}


/* w
====================================================================== */
._w {
	position: relative;
}
@media screen and (min-width: 744px), print {
	._w {
		width: var(--base-width);
		max-width: calc(100% - var(--pc-base-padding));
		margin-inline: auto;
	}
}
@media screen and (max-width: 743px) {
}


/* spパディング
====================================================================== */
@media screen and (max-width: 743px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
}

/* header
====================================================================== */
#header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background-color: #fff;
	z-index: 1000;
}
#header .logo a {
	display: block;
	width: 19.5rem;
}
@media screen and (min-width: 744px), print {
	#header {
		display: flex;
		height: 10rem;
		padding-inline: calc((100% - var(--base-width)) / 2);
	}
	#header .logo {
		display: flex;
		align-items: center;
	}
	#header nav {
		margin-left: auto;
	}
	#header nav,
	#header nav .gnav {
		display: flex;
	}
	#header nav .gnav {
		height: 100%;
	}
	#header nav a {
		display: flex;
		align-items: center;
	}
	#header .gnav > li {
		position: relative;
	}
	#header .gnav > li > a {
		overflow: hidden;
		height: 100%;
		padding: 0 3rem;
		font-weight: 700;
		text-decoration: none;
		font-size: 2rem;
		line-height: 1.6;
		letter-spacing: 0.05em;
		color: var(--color-theme);
	}
	#header .gnav > li > a::after {
		content: "";
		position: absolute;
		right: 0;
		left: 0;
		bottom: 0;
		border-bottom: .4rem solid;
		transform: translateY(.5rem);
		opacity: 0;
		transition: 0.3s;
	}
	#header .gnav > li > a.-active {
		color: var(--color-yellow);
	}
	#header .gnav > li > a.-active::after {
		transform: translateY(0);
		opacity: 1;
	}
	@media (hover) {
		#header .gnav > li > a:hover::after,
		#header .gnav > li.hover > a::after {
			transform: translateY(0);
			opacity: 1;
		}
	}
}
@media print {
	#header {
		position: absolute;
	}
}
@media screen and (min-width: 744px) {
	/* header show/hide */
	#header {
		transition: transform .3s ease-out, height .3s ease-out, background .3s ease-out;
	}
	.-head-min #header {
		height: 7rem;
	}
}
@media screen and (max-width: 743px) {
	#header {
		height: 5rem;
	}
	#header::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		background-color: #fff;
		z-index: 990;
	}
	#header .logo {
		position: relative;
		display: flex;
		z-index: 1000;
	}
	#header .logo a {
		padding-inline: var(--sp-base-padding);
	}
	#header .logo a img {
		width: auto;
		height: 5rem;
	}

	/* nav_btn */
	#header .nav_btn {
		position: absolute;
		right: 0;
		top: 0;
		width: 6rem;
		height: 5rem;
		z-index: 1100;
	}
	#header .nav_btn a {
		overflow: hidden;
		position: relative;
		display: block;
		height: 100%;
		text-indent: -999em;
		font-size: 1rem;
		text-decoration: none;
	}
	#header .nav_btn::before,
	#header .nav_btn a::before,
	#header .nav_btn a::after {
		content: "";
		position: absolute;
		width: 2.4rem;
		left: calc(50% - 1.2rem);
		top: calc(50% - .1rem);
		border-top: .2rem solid var(--color-theme);
		pointer-events: none;
		transition: transform var(--transition), opacity var(--transition), border var(--transition);
		z-index: 2;
	}
	#header .nav_btn a::before {
		transform: translateY(-.7rem);
	}
	#header .nav_btn a::after {
		transform: translateY(.7rem);
	}

	/* nav_btn open */
	#header.-open .nav_btn::before {
		opacity: 0;
	}
	#header.-open .nav_btn a::before {
		transform: translate(0) rotate(-45deg);
	}
	#header.-open .nav_btn a::after {
		transform: translate(0) rotate(45deg);
	}

	/* nav */
	#header nav {
		position: fixed;
		top: 5rem;
		left: 0;
		width: 100%;
		padding: 3rem 4rem;
		background-color: var(--color-theme);
		transform: translateY(-110%);
		box-shadow: 0 0 2rem rgba(0,0,0,.5);
		z-index: 900;
	}
	#header.-open nav {
		transform: translateY(0%);
	}
	#header.-trs nav {
		transition: transform var(--transition);
	}
	#header .gnav li + li {
		border-top: 1px solid #fff;
	}
	#header .gnav a {
		position: relative;
		display: block;
		padding: 2rem 0;
		font-size: 1.6rem;
		font-weight: 700;
		color: #fff;
		text-decoration: none;
	}
	#header .gnav a::after {
		content: "";
		position: absolute;
		right: 0;
		top: calc(50% - 2.5rem / 2);
		width: 2.5rem;
		height: 2.5rem;
		background: url(../img/ico-arrow.svg) no-repeat 50%;
		background-size: 100%;
	}

	/* entry_btn */
	#header .entry_btn {
		position: absolute;
		right: 6.5rem;
		top: 1.5rem;
		z-index: 1100;
	}
	#header .entry_btn a {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		background: var(--base-gradient);
		border-radius: 10rem;
		width: 10rem;
		height: 3rem;
		text-decoration: none;
		font-size: 1.2rem;
		font-weight: 700;
		z-index: 2;
	}
	#header .entry_btn a::before {
		content: "";
		position: absolute;
		top: 2px;
		right: 2px;
		bottom: 2px;
		left: 2px;
		background-color: #fff;
		border-radius: 10rem;
		z-index: -1;
	}

	.-page-expo #header nav {
		background-color: var(--color-expo-blue);
	}
}

/* footer
====================================================================== */
#footer {
	position: relative;
	margin-top: 10rem;
	padding: 6rem 0 5rem;
	background-color: var(--color-theme);
	color: #fff;
	text-align: center;
}
#footer::before,
#footer::after {
	content: "";
	position: absolute;
	bottom: 100%;
	height: 50rem;
	background-repeat: no-repeat;
	z-index: -1;
}
#footer::before {
	left: 0;
	background-position: 100% 100%;
	background-image: url(../img/foot-bg-l.svg);
	background-size: 75rem;
}
#footer::after {
	right: 0;
	background-position: 0 100%;
	background-image: url(../img/foot-bg-r.svg);
	background-size: 32rem;
}
#footer .logo img {
	width: 20.2rem;
}
#footer small {
	display: block;
	margin-top: 3rem;
	font-size: 1.2rem;
	letter-spacing: 0.05em;
	line-height: 1.5;
	font-weight: 500;
}
@media screen and (min-width: 744px), print {
	#footer::before {
		right: max(calc(50% + 23.4rem), calc(100% - 75rem));
	}
	#footer::after {
		left: max(calc(50% + 45rem), calc(100% - 32rem));
	}
}
@media screen and (max-width: 743px) {
	#footer {
		margin-top: 7rem;
		padding: 4rem 0;
	}
	#footer::before,
	#footer::after {
		background-size: 140%;
	}
	#footer::before {
		width: calc(75rem * .2);
	}
	#footer::after {
		width: calc(35rem * .2);
	}
}

.-page-expo #footer {
	background-color: var(--color-expo-blue);
}
.-page-expo #footer::before {
	background-image: url(../img/expo-foot-bg-l.svg);
}
.-page-expo #footer::after {
	background-image: url(../img/expo-foot-bg-r.svg);
}

/* .foot_contact */
.foot_contact {
	margin-top: 8rem;
	text-align: center;
}
.foot_contact h2,
.foot_contact dt {
	margin-bottom: 3rem;
	font-size: 3.2rem;
	line-height: 1.5;
	color: var(--color-theme);
	font-weight: var(--font-weight-bold);
}
#header .foot_contact dt {
	color: #fff;
}
@media screen and (min-width: 744px), print {
	.foot_contact ul {
		display: flex;
		justify-content: center;
		gap: 2rem;
	}
}
@media screen and (max-width: 743px) {
	.foot_contact {
		margin-top: 4rem;
	}
	.foot_contact h2,
	.foot_contact dt {
		margin-bottom: 2rem;
		font-size: 1.8rem;
	}
	.foot_contact ul {
		width: calc(295 / 375 * 100vw);
		margin-inline: auto;
	}
	.foot_contact li + li {
		margin-top: 1rem;
	}
}

.-page-expo .foot_contact h2,
.-page-expo .foot_contact dt {
	color: var(--color-expo-blue);
}


/* container
====================================================================== */
#container {
	padding-top: 10rem;
}
@media screen and (max-width: 743px) {
	#container {
		padding-top: 5rem;
	}
}

/* ===================================================================================================================

	パーツ

============================================================================= */

/* _base_mt
====================================================================== */
._base_mt {
	margin-top: 7rem;
}
._base_first_mt {
	margin-top: 1.5rem;
}
@media screen and (max-width: 743px) {
	._base_mt {
		margin-top: 4.5rem;
	}
}

/* breadcrumbs
====================================================================== */
.breadcrumbs {
	position: relative;
	margin-top: 4rem;
	letter-spacing: 0.05em;
	font-size: 1.4rem;
	line-height: 1.4;
	font-weight: 500;
	color: #fff;
	text-align: left;
	z-index: 3;
}
.breadcrumbs a {
	color: #fff;
}
.breadcrumbs li {
	display: inline;
	margin-right: 0.7rem;
}
.breadcrumbs li::after {
	content: "";
	position: relative;
	top: 0.3rem;
	display: inline-block;
	vertical-align: middle;
	width: .8rem;
	height: .8rem;
	margin-left: 0.5rem;
	border-top: .2rem solid;
	border-right: .2rem solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
}
.breadcrumbs li:last-child {
	margin-right: 0;
	padding-right: 0;
}
.breadcrumbs li:last-child::after {
	content: none;
}
@media screen and (min-width: 744px), print {
	.breadcrumbs ol {
		display: flex;
	}
}
@media screen and (max-width: 743px) {
	.breadcrumbs {
		padding: 0 var(--sp-base-padding);
		line-height: 1.6;
	}
}

/* page_title
====================================================================== */
.page_title {
	position: relative;
	padding: 11rem 0 3rem;
	color: #fff;
	text-align: center;
	font-size: 4.6rem;
	line-height: 1.5;
	letter-spacing: 0.08em;
	z-index: 1;
}
.page_title h1,
.page_title .title {
	position: relative;
	width: fit-content;
	margin-inline: auto;
	font-weight: 700;
}
.page_title h1::before,
.page_title .title::before {
	content: "";
	position: absolute;
	left: -.4em;
	top: -10%;
	height: 1em;
	border-left: .4rem solid var(--color-yellow);
	transform-origin: 100% 0;
	transform: var(--skew-x);
}
.page_title::before {
	content: "";
	position: absolute;
	top: -20rem;
	left: 0;
	right: 0;
	height: 67rem;
	background: linear-gradient(to bottom, #203971 0%, var(--color-navy) 100%);
	transform-origin: 50% 100%;
	transform: skewY(9.2deg);
	z-index: -1;
}
.page_title::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: -1;
}
:where(.page_title ~ *) {
	position: relative;
	z-index: 2;
}
@media screen and (min-width: 744px), print {
	.page_title h1,
	.page_title .title {
		min-height: 9rem;
	}
	.page_title::after {
		height: 58rem;
		background: url(../img/page_title_bg.png) no-repeat 50% 0;
		background-size: auto 100%;
	}
}
@media screen and (max-width: 743px) {
	.page_title {
		padding: 5rem 0 3rem;
		font-size: 2.2rem;
		line-height: 1.5;
	}
	.page_title h1::before,
	.page_title .title::before {
		left: -.2em;
		top: -20%;
		height: 3rem;
		border-left-width: .3rem;
	}
	.page_title::before {
		height: calc(69rem + 20rem);
		max-height: var(--contents-height, none);
	}
	.page_title::after {
		height: 58rem;
		background: url(../img/page_title_bg_sp.svg) no-repeat 50% 0;
		background-size: 100%;
	}
}

.-page-expo .page_title h1::before,
.-page-expo .page_title .title::before {
	border-left-color: var(--color-red);
}
.-page-expo .page_title::before {
	background-image: linear-gradient(to bottom, var(--color-expo-blue) 0%, #005698 100%);
}
@media screen and (min-width: 744px), print {
	.-page-expo .page_title::after {
		background-image: url(../img/expo-page_title_bg.png);
	}
}
@media screen and (max-width: 743px) {
	.-page-expo .page_title::after {
		background-image: url(../img/expo-page_title_bg_sp.svg);
	}
}


/* title
====================================================================== */
/* sq_title */
.sq_title {
	position: relative;
	max-width: 60rem;
	margin: 0 auto 6rem;
	padding: 0.6rem 0 1rem;
	text-align: center;
	font-size: 3.6rem;
	line-height: 1.5;
	color: var(--color-theme);
	z-index: 2;
}
.sq_title.-white {
	color: #fff;
}
.sq_title.-wide {
	max-width: 76rem;
}
.sq_title.-wide2 {
	max-width: 86rem;
}
.sq_title::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	border: .2rem solid;
	transform: var(--skew-x);
	z-index: -1;
}
.sq_title::after {
	content: "";
	position: absolute;
	left: 2.4rem;
	top: -1.2rem;
	height: 4.5rem;
	border-left: .4rem solid var(--color-yellow);
	transform-origin: 0 100%;
	transform: var(--skew-x);
}
@media screen and (max-width: 743px) {
	.sq_title {
		max-width: none;
		margin: 0 1.4rem 3rem;
		padding: 0.8rem 0 1rem;
		font-size: 2.2rem;
		line-height: calc(28 / 22);
	}
	.sq_title::after {
		left: 1.4rem;
		top: -.7rem;
		height: 3rem;
		border-left-width: 0.3rem;
	}
	.sq_title.-sp-tall {
		--skew-x: skewX(-18deg);
	}
	.sq_title.-sp-white {
		color: #fff;
	}
}

.-page-expo .sq_title::after {
	border-color: var(--color-red);
}

/* sl_title */
.sl_title {
	position: relative;
	font-size: 2.4rem;
	line-height: 1.5;
	color: var(--color-theme);
}
.sl_title::after {
	content: "";
	position: absolute;
	left: -1rem;
	top: -1.2rem;
	height: 3.2rem;
	border-left: .3rem solid var(--color-yellow);
	transform-origin: 100% 0;
	transform: var(--skew-x);
}
@media screen and (max-width: 743px) {
	.sl_title {
		padding-top: 1.2rem;
		font-size: 2.2rem;
		line-height: 1.3;
		text-align: center;
	}
	.sl_title::after {
		left: 0;
		top: 0;
		height: 3.2rem;
		transform-origin: 0 100%;
	}
}

/* bdl_title */
.bdl_title {
	position: relative;
	margin-bottom: 2rem;
	padding: .3em 3rem;
	font-size: 2.4rem;
	line-height: 1.5;
	color: var(--color-theme);
	font-weight: 500;
	border-left: .2rem solid;
}
@media screen and (max-width: 743px) {
	.bdl_title {
		margin-bottom: 1.6rem;
		padding: .5em 2rem;
		font-size: 1.7rem;
	}
}

/* s_title */
.s_title {
	margin-bottom: 2rem;
	font-size: 2rem;
	font-weight: 500;
}
@media screen and (max-width: 743px) {
	.s_title {
		margin-bottom: 1.6rem;
		font-size: 1.6rem;
		line-height: calc(26 / 16);
	}
}


/* box_contents
====================================================================== */
.box_contents {
	position: relative;
	padding: 6rem;
	background-color: #fff;
	border-radius: 2.5rem;
}
.box_contents.-bg-gray {
	background-color: var(--bg-gray);
}
.box_contents.-bg-white {
	background-color: var(--bg-white);
}
@media screen and (max-width: 743px) {
	.box_contents {
		padding: calc(25 / 375 * 100vw) var(--sp-base-padding);
	}
}


/* img_side_block
====================================================================== */
.img_side_block .img {
	position: relative;
}
.img_side_block .img img {
	object-fit: cover;
	width: 100%;
	border-radius: 3rem;
}
.img_side_block .img.-border::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-radius: 3rem;
}
.img_side_block .content > p:not(:last-child):not([class]) {
	margin-bottom: 1.5em;
}
@media screen and (min-width: 744px), print {
	.img_side_block {
		display: flex;
		justify-content: space-between;
		gap: 3rem;
	}
	.img_side_block.-img_right {
		flex-direction: row-reverse;
	}
	.img_side_block .img {
		width: 50rem;
		flex-shrink: 0;
	}
	.img_side_block .img img {
		aspect-ratio: 500 / 300;
	}
}
@media screen and (max-width: 743px) {
	.img_side_block .img {
		margin-bottom: 2rem;
	}
	.img_side_block .img img {
		aspect-ratio: 295 / 180;
	}
}


/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	align-items: center;
	max-width: 100%;
	width: 28rem;
	min-height: 5.8rem;
	padding: 1.2rem 3rem 1.2rem 3rem;
	background: linear-gradient(to right, var(--color-yellow) 0%, #7BD224 100%);
	border-radius: 100px;
	text-decoration: none;
	color: #fff;
	font-weight: 500;
	font-size: 1.8rem;
	line-height: 1.3;
	z-index: 2;
}
.box_btn .btn-arrow {
	position: absolute;
	right: 2.5rem;
	top: calc(50% - 2.5rem / 2);
	width: 2.5rem;
	line-height: 1;
}
.box_btn .btn-arrow.-hover {
	opacity: 0;
}
.box_btn .-ico {
	margin-left: 0.8rem;
	padding: .3rem 1rem;
	background-color: var(--color-theme);
	color: #fff;
	font-size: calc(1.4 / 1.8 * 100%);
	font-weight: 700;
}
.box_btn svg {
	width: 100%;
	fill: #fff;
}
.box_btn.-center {
	margin-inline: auto;
}
.box_btn.-full {
	width: 100%;
}
.box_btn.-s {
	width: 15rem;
	height: 4rem;
	justify-content: center;
	padding: 0 0 .1rem;
	font-size: 1.6rem;
	letter-spacing: 0;
}
.box_btn.-navy {
	background: var(--color-navy);
}
.box_btn.-navy .-ico {
	background-color: var(--color-green);
}
.box_btn.-back {
	padding-left: 6rem;
}
.box_btn.-back .btn-arrow {
	right: auto;
	left: 2rem;
	transform: scaleX(-1);
}
.box_btn.-blue {
	background: linear-gradient(to right, #265CD1 0%, var(--color-navy) 100%);
}
.box_btn.-outline {
	background: #fff;
}
.box_btn.-blue.-outline {
	color: var(--color-navy);
	border: 1px solid var(--color-navy);
}
.box_btn.-blue.-outline svg {
	fill: var(--color-navy);
}
@media (hover) {
	.box_btn[href]::after {
		content: "";
		position: absolute;
		top: 0.2rem;
		right: 0.2rem;
		bottom: 0.2rem;
		left: 0.2rem;
		background-color: #fff;
		border-radius: 100px;
		opacity: 0;
		z-index: -1;
	}
	.box_btn[href]:hover {
		color: var(--color-yellow-dark);
	}
	.box_btn[href]:hover::after {
		opacity: 1;
	}
	.box_btn[href]:hover svg {
		fill: var(--color-yellow-dark);
	}
	.box_btn .btn-arrow.-hover {
		transition: opacity var(--transition);
	}
	.box_btn[href]:hover .btn-arrow.-hover {
		opacity: 1;
	}
	.box_btn .-ico {
		transition: background var(--transition);
	}
	.box_btn[href]:hover .-ico {
		background-color: var(--color-yellow-dark);
	}
	.box_btn.-navy[href]:hover {
		color: var(--color-navy);
	}
	.box_btn.-navy[href]:hover .-ico {
		background-color: var(--color-navy);
	}
	.box_btn.-navy[href]:hover svg {
		fill: var(--color-navy);
	}
	.box_btn.-blue[href]:hover {
		color: var(--color-navy);
	}
	.box_btn.-blue[href]:hover svg {
		fill: var(--color-navy);
	}
	.box_btn.-blue.-outline::after {
		top: -1px;
		left: -1px;
		right: -1px;
		bottom: -1px;
		background: none;
		border: 2px solid var(--color-navy);
	}
	.box_btn.-blue.-outline .btn-arrow.-hover svg {
		fill: var(--color-navy);
	}
}
@media screen and (min-width: 744px), print {
}
@media screen and (max-width: 743px) {
	.box_btn {
		width: 100%;
		min-height: 6.4rem;
		padding: 1rem 2rem;
		border-radius: 3.2rem;
		font-size: 1.6rem;
	}
	.box_btn.-s {
		width: 14rem;
		height: 3rem;
		font-size: 1.4rem;
	}
	.box_btn .btn-arrow {
		right: 2rem;
	}
}

.-page-expo .box_btn {
	background: linear-gradient(to right, #E66400 0%, var(--color-red) 100%);
}
@media (hover) {
	.-page-expo .box_btn[href]:hover {
		color: var(--color-red);
	}
	.-page-expo .box_btn[href]:hover svg {
		fill: var(--color-red);
	}
}

.box_btn.-coming {
	filter: grayscale(1);
	opacity: 0.3;
}
.box_btn.-coming .hide {
	visibility: hidden;
}
.box_btn.-coming .coming {
	position: absolute;
	left: 3rem;
	top: 50%;
	transform: translateY(-50%);
}


/* 自動運転バスGUIDE BOOK
====================================================================== */
.guidebook_block {
	padding-top: 8rem;
}
.guidebook_block .box {
	position: relative;
	overflow: hidden;
	border: .3rem solid var(--color-theme);
	border-radius: 1.5rem;
	z-index: 2;
}
.guidebook_block .box::before {
	content: "";
	position: absolute;
	background-color: var(--color-theme);
	z-index: -1;
}
.guidebook_block h2 {
	margin-bottom: 3rem;
	font-size: 3.2rem;
	line-height: 1.3;
}
.guidebook_block h2 ._ff_en {
	display: block;
	font-size: 5.6rem;
	letter-spacing: 0.1em;
}
.guidebook_block .btn {
	margin-top: 2rem;
}
.guidebook_block:not(.-ad) .img {
	box-shadow: 0 .3rem .6rem rgba(0,0,0,.16);
}
.guidebook_block.-ad .img img {
	border-radius: 2rem;
}
@media screen and (min-width: 744px), print {
	.guidebook_block .box {
		width: 100rem;
		margin-inline: auto;
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
		padding: 5.7rem 6.7rem;
	}
	.guidebook_block .box::before {
		top: 0;
		bottom: 0;
		right: 0;
		width: 41rem;
		transform-origin: 0 100%;
		transform: skewX(-18deg);
	}
	.guidebook_block .img {
		width: 35rem;
		margin-right: 5rem;
	}
	.guidebook_block .contents {
		margin-right: auto;
	}
}
@media screen and (max-width: 743px) {
	.guidebook_block {
		padding-top: 4rem;
	}
	.guidebook_block .box {
		padding: 2.5rem var(--sp-base-padding) 3rem;
	}
	.guidebook_block .box::before {
		top: 0;
		left: 0;
		right: 0;
		height: 21rem;
		transform-origin: 100% 100%;
		transform: skewY(18deg);
	}
	.guidebook_block .img {
		margin: 0 1.5rem 2.5rem;
	}
	.guidebook_block h2 {
		margin-bottom: 2rem;
		font-size: 1.8rem;
	}
	.guidebook_block h2 ._ff_en {
		font-size: 3.8rem;
	}
	.guidebook_block .btn {
		margin-top: 1rem;
	}
}

/* ポスター */
@media screen and (min-width: 744px), print {
	.guidebook_block.-poster .box {
		padding: 4.2rem 7.6rem 4.2rem 6.7rem;
	}
	.guidebook_block.-poster .box::before {
		width: 50rem;
	}
	.guidebook_block.-poster h2 {
		margin-bottom: 6rem;
		font-size: 3.6rem;
		line-height: calc(46 / 36);
	}
	.guidebook_block.-poster .img {
		width: 22.8rem;
	}
}
@media screen and (max-width: 743px) {
	.guidebook_block.-poster h2 {
		font-size: 2.4rem;
		line-height: calc(32 / 24);
	}
	.guidebook_block.-poster .img {
		width: 16.4rem;
		margin-inline: auto;
	}
}

.-page-expo .guidebook_block .box {
	border-color: var(--color-expo-blue);
}
.-page-expo .guidebook_block .box::before {
	background-color: var(--color-expo-blue);
}


/* news_list
====================================================================== */
.news_list li + li {
	border-top: 1px solid var(--border-base);
}
.news_list a {
	position: relative;
	display: block;
	padding-block: 2rem;
	padding-right: 4rem;
	text-decoration: none;
	font-size: 1.6rem;
	font-weight: 500;
}
.news_list a .date {
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--color-yellow);
	letter-spacing: 0;
}
.news_list a .btn-arrow {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
}
.news_list a:not([href]) .btn-arrow {
	display: none;
}
@media (hover) {
	.news_list a[href]:hover .title {
		text-decoration: underline;
	}
}
@media screen and (min-width: 744px), print {
	.news_list a {
		display: flex;
	}
	.news_list a .date {
		flex-shrink: 0;
		width: 12rem;
		padding-block: .2rem;
	}
	.index_news .more {
		position: absolute;
		left: 1rem;
		top: calc(7rem + 10rem);
	}
}
@media screen and (max-width: 743px) {
	.news_list a .date {
		display: block;
	}
	.index_news .more {
		margin-top: 3rem;
	}
}

/* ul / ol
====================================================================== */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.circle_li > li {
	position: relative;
	padding-left: 1em;
}
.circle_li > li::before {
	content: "";
	position: absolute;
	top: .6em;
	left: 0;
	width: 8px;
	height: 8px;
	background-color: #005f8b;
	border-radius: 100%;
}

.parentheses_li > li {
	position: relative;
	padding-left: 2.8em;
}
.parentheses_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.parentheses_li_h > li {
	position: relative;
	padding-left: 1.6em;
}
.parentheses_li_h > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}
.parentheses_li_hh > li {
	position: relative;
	padding-left: 2.2em;
}
.parentheses_li_hh > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.point_li > li {
	position: relative;
	padding-left: 1.2em;
}
.point_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
	font-feature-settings: normal;
}

.square_li > li {
	position: relative;
	padding-left: 0.8em;
}
.square_li > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
	width: 5px;
	height: 5px;
	background-color: #14143c;
}
@media screen and (max-width: 743px) {
	.square_li > li::before {
		top: 0.6em;
	}
}

.num_li {
	margin-left: 1.8em;
	list-style: decimal;
}
.alphabet_li {
	margin-left: 1.8em;
	list-style: lower-latin;
}

.mt_li > li + li {
	margin-top: 0.8em;
}
@media screen and (max-width: 743px) {
	.sp_mt_li > li + li {
		margin-top: 0.8em;
	}
}

.inline_li > li {
	display: inline-block;
	margin-right: 0.3em;
}

@media screen and (min-width: 744px), print {
	.column_li {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.column_li > li {
		width: 48%;
	}
	.column_li > li:nth-child(n + 3) {
		margin-top: 0.25em;
	}
}
@media screen and (max-width: 743px) {
	.column_li > li + li {
		margin-top: 0.25em;
	}
}

.dl_table {
	display: table;
}
.dl_table > * {
	display: table-row;
}
.dl_table > * > * {
	display: table-cell;
}
.dl_table dt {
	white-space: nowrap;
}
.dl_table.-dt_pr dt {
	padding-right: 1em;
}


/* ==============================================================================

	トップ

============================================================================== */
.index_main {
	position: relative;
	background: linear-gradient(to bottom, #F3F3F3 0%, #E6E6E6 50%, #D6D6D6 100%);
	z-index: 1;
}
.index_main::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	pointer-events: none;
	z-index: -1;
}
.index_main h1 svg {
	width: 54.2rem;
	height: auto;
	aspect-ratio: 542 / 322;
}
.index_main .bus {
	position: relative;
	pointer-events: none;
	user-select: none;
}
.index_main .bus .txt {
	position: absolute;
	left: 0;
	bottom: 0;
}
.index_main .fukidashi,
.index_main .txt_1,
.index_main .txt_2 {
	position: absolute;
}
:where(.index_main ~ *) {
	position: relative;
	z-index: 2;
}
@media screen and (min-width: 744px), print {
	.index_main {
		height: 70rem;
	}
	.index_main::before {
		height: 200rem;
		background: url(../img/index/main-bg.svg) no-repeat 50% 0;
		background-size: 200rem;
	}
	.index_main h1 {
		position: absolute;
		top: 3.5rem;
		left: calc(50% + 1.5rem);
	}
	.index_main .bus {
		position: absolute;
		top: 16.5rem;
		right: calc(50% - 5.6rem);
		width: 73.8rem;
	}
	.index_main .bus .txt {
		width: 79rem;
	}
	.index_main .fukidashi {
		top: 25.6rem;
		width: 23rem;
		left: calc(50% + 7rem);
	}
	.index_main .txt_1 {
		top: 47.1rem;
		width: 29rem;
		left: calc(50% + 8.6rem);
	}
	.index_main .txt_2 {
		top: 54.3rem;
		width: 31.4rem;
		left: calc(50% + .5rem);
	}
}
@media screen and (max-width: 743px) {
	.index_main {
		--rate: calc(1 / 375 * 100vw);
		height: calc(570 * var(--rate));
		padding: 1.5rem var(--sp-base-padding);
	}
	.index_main::before {
		height: calc(1300 * var(--rate));
		background: url(../img/index/main-bg_sp.svg) no-repeat 50% 0;
		background-size: 100%;
	}
	.index_main h1 svg {
		width: 100%;
	}
	.index_main .bus {
		margin-top: calc(58 * var(--rate));
		margin-left: calc(-2 * var(--rate));
	}
	.index_main .bus .img {
		width: calc(320 * var(--rate));
	}
	.index_main .bus .txt {
		width: calc(345 * var(--rate));
		left: calc(-5 * var(--rate));
	}
	.index_main .fukidashi {
		width: calc(200 * var(--rate));
		left: calc(0 * var(--rate));
		top: calc(146 * var(--rate));
	}
	.index_main .txt_1 {
		width: calc(150 * var(--rate));
		left: calc(205 * var(--rate));
		bottom: calc(46 * var(--rate));
	}
	.index_main .txt_2  {
		width: calc(130 * var(--rate));
		left: calc(140 * var(--rate));
		bottom: calc(0 * var(--rate));
	}
}

.index_news {
	position: relative;
	padding-top: 7rem;
}
.index_news h2 {
	font-size: 5.6rem;
	line-height: 1.2;
	color: #fff;
	letter-spacing: 0.1em;
}
.index_news .news_list {
	padding: 1rem 4.5rem;
	background-color: #fff;
	border-radius: 2rem;
}
@media screen and (min-width: 744px), print {
	.index_news {
		display: flex;
		justify-content: space-between;
		max-width: 96rem;
		margin-inline: auto;
	}
	.index_news h2 {
		padding-top: 2rem;
	}
	.index_news .news_list {
		width: 74rem;
	}
}
@media screen and (max-width: 743px) {
	.index_news {
		padding-top: 3rem;
	}
	.index_news h2 {
		margin-bottom: 2rem;
		font-size: 5rem;
		text-align: center;
	}
	.index_news .news_list {
		padding: 1rem var(--sp-base-padding);
	}
}

.index_area {
	padding-top: 8rem;
}
.index_area .area {
	position: relative;
}
.index_area .area + .area {
	margin-top: 6rem;
}
.index_area .ph img {
	border-radius: 3rem;
}
@media screen and (min-width: 744px), print {
	.index_area header {
		position: absolute;
		top: 25.4rem;
		bottom: 0;
		left: 5rem;
		padding-left: 4rem;
		border-left: .2rem solid var(--color-theme);
	}
	.index_area header .en {
		margin-bottom: 5rem;
		color: #fff;
		font-size: 2.8rem;
		line-height: 1;
	}
	.index_area header h3 {
		font-size: 3.2rem;
		line-height: 1.5;
		color: var(--color-theme);
	}
	.index_area .btns {
		width: 46rem;
		margin-top: 3rem;
		margin-left: auto;
		margin-right: 4rem;
	}
	.index_area .btns li + li {
		margin-top: 1.2rem;
	}
	.index_area .box_btn {
		width: 100%;
	}
}
@media screen and (max-width: 743px) {
	.index_area {
		padding-top: 4rem;
	}
	.index_area .box_contents {
		padding-block: 2.5rem 3rem;
	}
	.index_area .area + .area {
		margin-top: 3rem;
	}
	.index_area .ph img {
		border-radius: 2rem;
	}
	.index_area header {
		position: absolute;
		top: 2.5rem;
		left: 2rem;
		padding-bottom: 2rem;
		padding-left: 1.5rem;
		border-left: .2rem solid;
		font-size: 1.8rem;
		line-height: 1.4;
		color: #fff;
	}
	.index_area header .en {
		margin-bottom: 1rem;
	}
	.index_area .btns {
		margin-top: 2rem;
	}
	.index_area .btns li + li {
		margin-top: 1rem;
	}
}

/* mov show
============================================================================================================ */
@media screen {
	.-page-index ._mov_show.-fadeup {
		opacity: 0;
		transform: translateY(10rem);
	}
	.-page-index ._mov_show.-fadeup.showed {
		transition: transform .6s cubic-bezier(0.5, 1, 0.89, 1), opacity .6s linear;
		opacity: 1;
		transform: translateY(0);
	}

	.index_main {
		--delay1: 50ms;
		--delay2: 80ms;
		--delay3: 200ms;
	}
	.index_main h1 path {
		opacity: 0;
	}
	.index_main h1 .-tt {
		transform: translateY(2rem);
	}
	.index_main h1 .-tb {
		transform: scale(1.1);
		transform: translateY(2rem);
	}
	.index_main.-start h1 .-tt {
		transition: transform .4s cubic-bezier(0.175, 0.885, 0.25, 1.45), opacity .4s linear;
		opacity: 1;
		transform: translateY(0);
	}
	.index_main.-start h1 .-tb {
		transition: transform .4s cubic-bezier(0.33, 1, 0.68, 1), opacity .4s linear;
		transition: transform .4s cubic-bezier(0.175, 0.885, 0.25, 1.45), opacity .4s linear;
		opacity: 1;
		transform: scale(1);
	}
	.index_main.-start h1 .-t01 {
		transition-delay: calc(var(--delay1) * 1);
	}
	.index_main.-start h1 .-t02 {
		transition-delay: calc(var(--delay1) * 2);
	}
	.index_main.-start h1 .-t03 {
		transition-delay: calc(var(--delay1) * 3);
	}
	.index_main.-start h1 .-t04 {
		transition-delay: calc(var(--delay1) * 4);
	}
	.index_main.-start h1 .-t05 {
		transition-delay: calc(var(--delay1) * 5);
	}
	.index_main.-start h1 .-t06 {
		transition-delay: calc(var(--delay1) * 6);
	}
	.index_main.-start h1 .-t07 {
		transition-delay: calc(var(--delay2) * 7 + var(--delay3));
	}
	.index_main.-start h1 .-t08 {
		transition-delay: calc(var(--delay2) * 8 + var(--delay3));
	}
	.index_main.-start h1 .-t09 {
		transition-delay: calc(var(--delay2) * 9 + var(--delay3));
	}
	.index_main.-start h1 .-t10 {
		transition-delay: calc(var(--delay2) * 10 + var(--delay3));
	}
	.index_main.-start h1 .-t11 {
		transition-delay: calc(var(--delay2) * 11 + var(--delay3));
	}
	.index_main.-start h1 .-t12 {
		transition-delay: calc(var(--delay2) * 12 + var(--delay3));
	}

	.index_main .bus {
		opacity: 0;
		transform: translate(-8rem, -4rem);
	}
	.index_main.-start .bus {
		transition: transform .8s cubic-bezier(0.33, 1, 0.68, 1), opacity .3s linear;
		transition-delay: 0.8s;
		opacity: 1;
		transform: translate(0, 0);
	}
	.index_main .bus .txt {
		opacity: 0;
	}
	.index_main.-start .bus .txt {
		transition: opacity .4s 1.6s linear;
		opacity: 1;
	}

	.index_main .fukidashi,
	.index_main .txt_1,
	.index_main .txt_2 {
		opacity: 0;
	}
	.index_main .fukidashi {
		transform: scale(.8);
	}
	.index_main.-start .fukidashi {
		transition: transform .4s 1.2s cubic-bezier(0.34, 1.56, 0.64, 1), opacity .4s 1.2s linear;
		opacity: 1;
		transform: scale(1);
	}
	.index_main .txt_1 {
		transform: translate(-1rem, -.4rem);
	}
	.index_main.-start .txt_1 {
		transition: transform .4s 1.4s cubic-bezier(0.33, 1, 0.68, 1), opacity .4s 1.4s linear;
		opacity: 1;
		transform: scale(1);
	}
	.index_main .txt_2 {
		transform: translate(-1rem, -.4rem);
	}
	.index_main.-start .txt_2 {
		transition: transform .4s 1.6s cubic-bezier(0.33, 1, 0.68, 1), opacity .4s 1.6s linear;
		opacity: 1;
		transform: scale(1);
	}
}


/* ==============================================================================

	運行エリア

============================================================================== */
.area_main_block .img {
	position: relative;
}
.area_main_block .img.-border::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--color-expo-blue);
	border-radius: 3rem;
	pointer-events: none;
}
.area_main_block .img img {
	border-radius: 3rem;
}
.area_main_block .content {
	margin: 4rem 8rem 0 4.5rem;
}
.area_main_block .content .lead {
	margin-bottom: 0.6em;
	font-size: 2.4rem;
	line-height: 1.6;
}
@media screen and (min-width: 744px), print {
	.area_main_block .content {
		margin: 4rem 8rem 0 4.5rem;
		padding-left: 3rem;
		border-left: .2rem solid var(--color-theme);
	}
}
@media screen and (max-width: 743px) {
	.area_main_block .img.-border::after {
		border-radius: 2rem;
	}
	.area_main_block .img img {
		border-radius: 2rem;
	}
	.area_main_block .content {
		margin: 2.5rem 0 0;
	}
	.area_main_block .content .lead {
		margin-bottom: 1em;
		padding-left: 2rem;
		border-left: .2rem solid var(--color-theme);
		font-size: 100%;
		line-height: inherit;
	}
}

.about_table {
	position: relative;
	overflow: hidden;
	background-color: var(--bg-light);
	border-radius: 3rem;
}
.about_table .otoku {
	padding: 1rem 2.6rem;
	background-color: #fff;
	border: .2rem solid var(--color-yellow);
	border-radius: 1rem;
	text-align: center;
	font-weight: var(--font-weight-bold);
	font-size: 1.8rem;
	line-height: 1.3;
}
.about_table .otoku strong {
	display: block;
	color: var(--color-yellow-dark);
	font-size: 2.6rem;
}
.about_table .app {
	margin-top: 2rem;
}
.about_table .app h3 {
	display: flex;
	align-items: center;
	margin-bottom: 1rem;
	padding-bottom: 1rem;
	border-bottom: .4rem solid;
	color: var(--color-theme);
	font-size: 1.4rem;
	line-height: 1.4;
}
.about_table .app h3 img {
	margin-left: 1rem;
}
.about_table .app .lead {
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.5;
}
.about_table .app .dl {
	margin-top: 1rem;
	text-align: center;
}
.about_table .app dt {
	margin-bottom: 0.5rem;
	font-weight: 700;
	font-size: 2.2rem;
	letter-spacing: 0.05em;
}
.about_table .app .notes {
	margin-top: 1.5rem;
	font-size: 1.2rem;
	line-height: 1.5;
}
@media screen and (min-width: 744px), print {
	.about_table::before,
	.about_table::after {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		width: 6rem;
	}
	.about_table::before {
		left: 0;
		background-color: #8594b7;
	}
	.about_table::after {
		right: 0;
		background-color: var(--bg-light);
	}
	.about_table > table {
		width: 100%;
		font-size: 1.6rem;
		line-height: 1.5;
	}
	.about_table > table th:not(table table *) {
		width: 26rem;
		padding: 3rem 0 3rem 6rem;
		background-color: #8594b7;
		font-weight: 500;
		font-size: 2rem;
		line-height: 1.4;
		color: #fff;
		text-align: center;
		vertical-align: top;
	}
	.about_table > table tr ~ tr th:not(table table *) {
		border-top: 1px solid #fff;
	}
	.about_table > table td:not(table table *) {
		padding: 3rem 10rem 3rem 4rem;
		vertical-align: middle;
	}
	.about_table > table tr ~ tr td:not(table table *) {
		border-top: 1px solid #8594b7;
	}
	.about_table > table tr:first-child :is(th, td):not(table table *) {
		padding-top: 6rem;
	}
	.about_table > table tr:last-child :is(th, td):not(table table *) {
		padding-bottom: 6rem;
	}
	.about_table > table.-single tr:first-child :is(th, td):not(table table *) {
		padding-top: 3rem;
	}
	.about_table > table.-single tr:last-child :is(th, td):not(table table *) {
		padding-bottom: 3rem;
	}
	.about_table .ticket {
		display: flex;
		align-items: end;
		padding-left: 2em;
	}
	.about_table .ticket .table {
		display: table;
		margin-right: 3rem;
		padding-bottom: 1lh;
	}
	.about_table .ticket .table > * {
		display: table-row;
	}
	.about_table .ticket .table > * > * {
		display: table-cell;
	}
	.about_table .ticket .table dt {
		position: relative;
		padding-right: 1em;
	}
	.about_table .ticket .table dt .coupon {
		display: block;
		margin-left: -0.3em;
	}
	.about_table .app {
		width: fit-content;
	}
	.about_table .app .dl {
		display: flex;
	}
	.about_table .app .dl > li {
		display: flex;
		align-items: end;
	}
	.about_table .app .dl > li + li {
		margin-left: 2rem;
		padding-left: 2rem;
		border-left: 1px solid #95a2c0;
	}
	.about_table .app .qr {
		width: 9rem;
		margin-left: 2rem;
	}
	.about_table .app dd a img {
		width: auto;
		height: 5.5rem;
	}
}
@media screen and (max-width: 743px) {
	.about_table {
		border-radius: 2rem;
	}
	.about_table > table,
	.about_table > table tbody:not(table table *),
	.about_table > table tr:not(table table *),
	.about_table > table th:not(table table *),
	.about_table > table td:not(table table *) {
		display: block;
	}
	.about_table > table th:not(table table *) {
		padding: 2rem 0;
		background-color: #8594b7;
		font-weight: 500;
		font-size: 1.8rem;
		line-height: 1.4;
		color: #fff;
		text-align: center;
	}
	.about_table > table td:not(table table *) {
		padding: 2.5rem var(--sp-base-padding) 3rem;
	}
	.about_table .ticket .table dl {
		display: flex;
	}
	.about_table .ticket .table dt {
		padding-right: 1em;
		white-space: nowrap;
	}
	.about_table .otoku {
		width: fit-content;
		margin: 1.5rem auto 0;
		line-height: 1.3;
	}
	.about_table .app {
		margin-top: 2.5rem;
	}
	.about_table .app h3 {
		display: block;
	}
	.about_table .app h3 img {
		margin: 0.5rem 0 0;
	}
	.about_table .app .dl {
		display: flex;
		gap: 1rem;
	}
	.about_table .app dt {
		font-size: 1.6rem;
	}
}

.about_table .timetable {
	width: 100%;
	table-layout: fixed;
	margin-top: 1.5rem;
	margin-bottom: 1rem;
	font-size: 1.6rem;
}
.about_table .timetable :is(th,td) {
	border: 1px solid #8594B7;
	text-align: center;
}
.about_table .timetable thead th {
	padding: 1.5rem;
	background-color: #8594b7;
	color: #fff;
	font-weight: 500;
	line-height: 1.4;
}
.about_table .timetable thead th:first-child {
	width: 14%;
}
.about_table .timetable thead th:not(:first-child) {
	border-left-color: #fff;
}
.about_table .timetable thead th:not(:last-child) {
	border-right-color: #fff;
}
.about_table .timetable thead th .s {
	display: block;
	margin-top: 0.8rem;
	font-size: 1.2rem;
}
.about_table .timetable tbody :is(th,td) {
	padding: 0.8rem;
	background-color: #ededf1;
	letter-spacing: 0;
}
.about_table .timetable tbody tr:nth-child(odd) :is(th,td) {
	background-color: #ced3e0;
}
.about_table .timetable tbody td span {
	display: inline-block;
	margin: 0 0.8em;
}
@media screen and (max-width: 743px) {
	.about_table .timetable {
		font-size: 1.4rem;
	}
	.about_table .timetable thead th {
		padding: 1rem 0;
		font-size: 1.5rem;
		letter-spacing: 0;
	}
	.about_table .timetable thead th:first-child {
		width: 20%;
	}
	.about_table .timetable thead th .s {
		margin-top: 0.5rem;
		font-size: 1.1rem;
	}
	.about_table .timetable tbody :is(th,td) {
		padding: 0.8rem 0;
	}
	.about_table .timetable tbody td span {
		margin: 0 0.4em;
	}
}


.about_table .timetable2 {
	width: 100%;
	table-layout: fixed;
	margin-top: 1.5rem;
	margin-bottom: 1rem;
	font-size: 1.6rem;
}
.about_table .timetable2 :is(th,td) {
	border: 1px solid #8594B7;
	text-align: center;
}
.about_table .timetable2 thead th {
	padding: 1.5rem;
	background-color: #8594b7;
	color: #fff;
	font-weight: 500;
	line-height: 1.4;
}
.about_table .timetable2 thead th:first-child {
	width: 20%;
}
.about_table .timetable2 thead th:not(:first-child) {
	border-left-color: #fff;
}
.about_table .timetable2 thead th:not(:last-child) {
	border-right-color: #fff;
}


.about_table .timetable2 thead th .s {
	display: block;
	margin-top: 0.8rem;
	font-size: 1.2rem;
}
.about_table .timetable2 tbody :is(th,td) {
	padding: 0.8rem;
	background-color: #ffffff;
	letter-spacing: 0;
}
.about_table .timetable2 tbody tr:nth-child(odd) :is(th,td) {
	background-color: #ffffff;
}
.about_table .timetable2 tbody td span {
	display: inline-block;
	margin: 0 0.8em;
}
@media screen and (max-width: 743px) {
	.about_table .timetable2 {
		font-size: 1.4rem;
	}
	.about_table .timetable2 thead th {
		padding: 1rem 0;
		font-size: 1.5rem;
		letter-spacing: 0;
	}
	.about_table .timetable2 thead th:first-child {
		width: 20%;
	}
	.about_table .timetable2 thead th .s {
		margin-top: 0.5rem;
		font-size: 1.1rem;
	}
	.about_table .timetable2 tbody :is(th,td) {
		padding: 0.8rem 0;
	}
	.about_table .timetable2 tbody td span {
		margin: 0 0.4em;
	}
}



.about_table .in_btn {
	max-width: 46rem;
	margin: 2rem 0;
}


.area_route {
	background-color: var(--color-yellow);
	border-radius: 1.5rem;
}
@media screen and (min-width: 744px), print {
	.area_route {
		display: flex;
		align-items: center;
		gap: 2rem;
		padding: 6rem 12rem;
	}
	.area_route .img {
		width: 51.5rem;
	}
	.area_route .list {
		width: 33.4rem;
	}
}
@media screen and (max-width: 743px) {
	.area_route {
		padding: 2.5rem var(--sp-base-padding) 3rem;
		border-radius: 2rem;
	}
	.area_route .img {
		margin: 0 -1rem 2rem;
	}
}

.area_timetable_section {
	font-size: 2rem;
	line-height: 1.4;
}
.area_timetable_section .timetable li + li {
	margin-top: 2rem;
}
.area_timetable_section .timetable a {
	text-decoration: none;
}
.area_timetable_section .timetable a .txt {
	text-decoration: underline 1px;
}
.area_timetable_section .timetable a .ico {
	margin-left: 0.5rem;
	padding: .3rem 1rem;
	background-color: var(--color-theme);
	color: #fff;
	font-size: calc(1.4 / 2 * 100%);
	font-weight: 700;
}
@media (hover) {
	.area_timetable_section .timetable a:hover .txt {
		text-decoration: none;
	}
}
@media screen and (min-width: 744px), print {
	.area_timetable_section {
		display: flex;
		padding: 0 8rem 2rem 14rem;
	}
	.area_timetable_section h2 {
		margin-right: 5rem;
		flex-shrink: 0;
	}
}
@media screen and (max-width: 743px) {
	.area_timetable_section {
		font-size: 1.8rem;
		line-height: 1.4;
	}
	.area_timetable_section .timetable {
		margin-top: 3rem;
	}
}




.infrastructure_contents {
	margin-bottom: 6rem;
}
.infrastructure_contents section {
	padding: 3rem;
	background-color: var(--bg-light);
	border-radius: 1.5rem;
}
.infrastructure_contents h3 {
	display: flex;
	margin-bottom: 2.5rem;
	padding-top: 0.5rem;
	color: var(--color-theme);
	font-size: 3.2rem;
	line-height: 1.3;
}
.infrastructure_contents h3 .num {
	font-size: 4.5rem;
	margin-top: -0.25em;
	margin-right: 0.2em;
	flex-shrink: 0;
}
.infrastructure_contents .notes {
	margin-top: 1lh;
	font-size: 1.6rem;
}
@media screen and (min-width: 744px), print {
	.infrastructure_contents {
		display: flex;
		gap: 3rem;
	}
	.infrastructure_contents section {
		width: 100%;
	}
	.infrastructure_contents.-column2 {
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 4rem 0;
	}
	.infrastructure_contents.-column2 section {
		width: 54rem;
	}
}
@media screen and (max-width: 743px) {
	.infrastructure_contents {
		margin-bottom: 2rem;
	}
	.infrastructure_contents section {
		margin-bottom: 2rem;
		padding: 2rem;
	}
	.infrastructure_contents h3 {
		margin-bottom: 0.8rem;
		font-size: 2.2rem;
	}
	.infrastructure_contents h3 .num {
		font-size: 3.6rem;
		margin-top: -0.3em;
	}
	.infrastructure_contents .notes {
		font-size: 1.4rem;
	}
}


.faq_contents section + section {
	margin-top: 2rem;
}
.faq_contents h3 {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 6rem;
	margin-bottom: 1rem;
	padding: 1rem 2rem 1rem 7rem;
	background-color: #8594B7;
	border-radius: 1.5rem;
	color: #fff;
	font-size: 2rem;
	line-height: 1.5;
	font-weight: 500;
}
.faq_contents .a {
	position: relative;
	position: relative;
	padding: 2rem 4rem 2rem 7rem;
	background-color: var(--bg-light);
	border-radius: 1.5rem;
	font-size: 1.6rem;
	line-height: 1.5;
}
.faq_contents h3::before,
.faq_contents .a::before {
	content: "";
	position: absolute;
	width: 2.4rem;
	height: 2.8rem;
	left: 3rem;
	top: calc((6 - 2.8) / 2 * 1rem);
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: 100%;
}
.faq_contents h3::before {
	background-image: url(../img/area/ico-q.svg);
}
.faq_contents .a::before {
	background-image: url(../img/area/ico-a.svg);
}
@media screen and (max-width: 743px) {
	.faq_contents h3 {
		min-height: 7rem;
		padding: 1.5rem 2rem 1.5rem 6rem;
		background-color: #8594B7;
		border-radius: 1.5rem;
		font-size: 1.8rem;
	}
	.faq_contents .a {
		padding: 3rem 2rem 3rem 6rem;
		font-size: 1.6rem;
		line-height: calc(28 / 16);
	}
	.faq_contents h3::before,
	.faq_contents .a::before {
		left: 2rem;
		top: calc((7 - 2.8) / 2 * 1rem);
	}
	.faq_contents .a::before {
		top: calc((7 - 2.8) / 2 * 1.5rem);
	}
}

.area_notes {
	margin-block: -2rem;
	padding-left: 3rem;
	font-size: 1.6rem;
	line-height: 1.5;
}
@media screen and (max-width: 743px) {
	.area_notes {
		margin-block: 0;
		padding-left: 0;
	}
}


/* ==============================================================================

	夢洲

============================================================================== */
.yumeshima_index_content {
	margin-top: 4rem;
}
.yumeshima_index_content .box {
	border: 1px solid var(--color-expo-blue);
	border-radius: 3rem;
}
.yumeshima_index_content h2 {
	position: relative;
	display: flex;
	align-items: center;
	height: 7.4rem;
	padding-left: 5rem;
	background-color: var(--color-expo-blue);
	border-radius: 2.7rem 2.7rem 0 0;
	color: #fff;
	font-size: 2.4rem;
}
.yumeshima_index_content h2::after {
	content: "";
	position: absolute;
	left: 2.4rem;
	top: -1.2rem;
	height: 4.5rem;
	border-left: .4rem solid var(--color-red);
	transform-origin: 0 100%;
	transform: var(--skew-x);
}
.yumeshima_index_content .contents {
	padding: 3.5rem 4rem;
}
.yumeshima_index_content .notes {
	font-size: 1.6rem;
	line-height: 1.5;
}
@media screen and (min-width: 744px), print {
	.yumeshima_index_content {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem 4rem;
	}
	.yumeshima_index_content > section {
		display: contents;
	}
	.yumeshima_index_content > section > * {
		width: 54rem;
	}
	.yumeshima_index_content > section:nth-child(odd) .box {
		grid-column: 1;
	}
	.yumeshima_index_content > section:nth-child(even) .box {
		grid-column: 2;
	}
	.yumeshima_index_content > section:nth-child(odd) .notes {
		grid-column: 1;
	}
	.yumeshima_index_content > section:nth-child(even) .notes {
		grid-column: 2;
	}
	.yumeshima_index_content > section:nth-child(1) .box,
	.yumeshima_index_content > section:nth-child(2) .box {
		grid-row: 1;
	}
	.yumeshima_index_content > section:nth-child(1) .notes,
	.yumeshima_index_content > section:nth-child(2) .notes {
		grid-row: 2;
	}
	.yumeshima_index_content h2 .s {
		font-size: 2rem;
	}
	.yumeshima_index_content .box {
		display: flex;
		flex-direction: column;
	}
	.yumeshima_index_content .box .contents {
		flex-grow: 1;
		display: flex;
		flex-direction: column;
	}
	.yumeshima_index_content .box .more {
		margin-top: auto;
		padding-top: 3rem;
	}
}
@media screen and (max-width: 743px) {
	.yumeshima_index_content {
		margin-top: 2rem;
	}
	.yumeshima_index_content > section + section {
		margin-top: 2rem;
	}
	.yumeshima_index_content .box {
		border-radius: 2rem;
	}
	.yumeshima_index_content h2 {
		height: 7.4rem;
		padding: 0 2rem 0 4rem;
		border-radius: 1.8rem 1.8rem 0 0;
		font-size: 2.2rem;
		line-height: calc(28 / 22);
	}
	.yumeshima_index_content h2::after {
		left: 1.4rem;
		top: -.7rem;
		height: 3rem;
		border-left-width: 0.3rem;
	}
	.yumeshima_index_content .contents {
		padding: 2.2rem 2rem;
	}
	.yumeshima_index_content .box .more {
		padding-top: 1.5rem;
	}
	.yumeshima_index_content .notes {
		margin-top: 1rem;
		font-size: 1.4rem;
		line-height: calc(22 / 14);
	}
}

.yumeshima_route > * {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
}

.yumeshima_route_dl {
	margin-top: 4rem;
	padding: 3rem;
	background-color: var(--bg-light);
	border-radius: 1.5rem;
}

.yumeshima_route_img li {
	margin-top: 4rem;
}
.yumeshima_route_img .img {
	position: relative;
	overflow: hidden;
	border-radius: 1.5rem;
}
.yumeshima_route_img .-border::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--color-expo-blue);
	border-radius: 1.5rem;
	pointer-events: none;
}
.yumeshima_route_img .caption {
	display: block;
	margin-top: 1.5rem;
}

@media screen and (max-width: 743px) {
	.sp_scroll {
		position: relative;
	}
	.sp_scroll > * {
		overflow-x: auto;
		overscroll-behavior-x: contain;
	}
	.sp_scroll_ico {
		height: 6rem;
		background: url(../img/sp_scroll.svg) no-repeat 50%;
		background-size: 18.4rem;
		pointer-events: none;
		z-index: 2;
	}
	.sp_scroll > * > * {
		width: 100rem;
		max-width: none;
	}
	.yumeshima_route_img .sp_scroll > * > * {
		width: 80rem;
	}

	.yumeshima_route_img li {
		margin-top: 2rem;
		font-size: 1.6rem;
		line-height: 1.75;
		text-align: center;
	}
	.yumeshima_route_img .caption {
		margin-top: .5rem;
	}
	.yumeshima_route_dl {
		margin-top: 2rem;
		padding: 2rem;
	}
}

.yumeshima_intro_lead {
	margin-top: 4rem;
}
.yumeshima_intro {
	margin-top: 4rem;
}
.yumeshima_intro .img {
	display: block;
	position: relative;
	border-radius: 3rem;
	overflow: hidden;
}
.yumeshima_intro .img::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-radius: 3rem;
	pointer-events: none;
}
.yumeshima_intro .caption {
	display: block;
	text-align: center;
	margin-top: 3rem;
}
@media screen and (min-width: 744px), print {
	.yumeshima_intro {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 4rem 0;
	}
	.yumeshima_intro > li {
		width: 54rem;
	}
}
@media screen and (max-width: 743px) {
	.yumeshima_intro_lead {
		margin-top: 2rem;
	}
	.yumeshima_intro {
		margin-top: 2rem;
	}
	.yumeshima_intro > li + li {
		margin-top: 2rem;
	}
	.yumeshima_intro .img {
		border-radius: 2rem;
	}
	.yumeshima_intro .img::before {
		border-radius: 2rem;
	}
	.yumeshima_intro .caption {
		margin-top: 1.5rem;
	}
}


/* ==============================================================================

	自動運転バスとは

============================================================================== */
.ad02_main_block {
	font-size: 2rem;
	line-height: 1.7;
}
.ad02_main_block .img {
	overflow: hidden;
	display: flex;
	margin-bottom: 3rem;
	border-radius: 3rem;
}
.ad02_main_block .img > * {
	width: 100%;
}
@media screen and (max-width: 743px) {
	.ad02_main_block {
		font-size: 1.6rem;
		line-height: calc(28 / 16);
	}
	.ad02_main_block .img {
		margin-bottom: 2rem;
	}
}

.ad02_contents .main {
	padding: 5rem;
	background-color: var(--color-blue);
	border-radius: 2.5rem;
	color: #fff;
}
.ad02_contents .main .img img {
	border-radius: 3rem;
}
.ad02_contents .main .lead {
	margin-bottom: 1rem;
	font-size: 2.4rem;
	line-height: 1.4;
}
@media screen and (min-width: 744px), print {
	.ad02_contents .main {
		display: flex;
		justify-content: space-between;
		flex-direction: row-reverse;
	}
	.ad02_contents .main .img {
		width: 50rem;
	}
	.ad02_contents .main .content {
		width: 49rem;
	}
}
@media screen and (max-width: 743px) {
	.ad02_contents .main {
		padding: 2.5rem 2rem;
		border-radius: 2.5rem;
		color: #fff;
	}
	.ad02_contents .main .img {
		margin-bottom: 2rem;
	}
	.ad02_contents .main .lead {
		margin-bottom: 1rem;
		font-size: 1.6rem;
		line-height: calc(26 / 16);
	}
}
.contents_img {
	margin: 3rem 0 6rem;
	text-align: center;
}
@media screen and (max-width: 743px) {
	.contents_img {
		margin: 2rem 0;
	}
}

.ad02_contents .column section {
	padding: 2.7rem 2.7rem 6rem;
	border: .3rem solid var(--color-green);
	border-radius: 2.5rem;
}
.ad02_contents .column .img {
	position: relative;
	margin-bottom: 2rem;
}
.ad02_contents .column .img::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-radius: 3rem;
}
.ad02_contents .column .img img {
	border-radius: 3rem;
}
@media screen and (min-width: 744px), print {
	.ad02_contents .column {
		display: flex;
		gap: 4rem;
	}
	.ad02_contents .column > * {
		width: 100%;
	}
	.ad02_contents .main .content {
		width: 49rem;
	}
}
@media screen and (max-width: 743px) {
	.ad02_contents .column > * + * {
		margin-top: 2rem;
	}
	.ad02_contents .column section {
		padding: 2.5rem 2rem;
	}
}

.ad02_other .img {
	position: relative;
}
.ad02_other .img.-border::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-radius: 3rem;
}
.ad02_other .img img {
	border-radius: 3rem;
}
.ad02_other section .img {
	margin-bottom: 2rem;
}
.ad02_other section .notes {
	font-size: 80%;
	margin-top: 1rem;
}
@media screen and (min-width: 744px), print {
	.ad02_other {
		display: flex;
		flex-wrap: wrap;
		gap: 4rem;
	}
	.ad02_other .main {
		width: 100%;
	}
	.ad02_other section {
		width: calc((100% - 4rem) / 2);
	}
}
@media screen and (max-width: 743px) {
	.ad02_other section {
		margin-top: 2rem;
	}
	.ad02_other section + section {
		margin-top: 3rem;
	}
}

.ad03_main_block {
	font-size: 2rem;
	line-height: 1.7;
}
.ad03_main_block .img {
	margin-bottom: 3rem;
}
.ad03_main_block .img img {
	border-radius: 3rem;
}
.ad03_main_block .check {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1.8rem 2.4rem;
	margin-top: 4rem;
}
.ad03_main_block .check li {
	display: flex;
	justify-content: center;
	align-items: center;
	background: var(--bg-light) url(../img/ad03/ico-cehck.svg) no-repeat 50% calc(40 / 312 * 100%);
	background-size: 6.2rem;
	border-radius: 100%;
	text-align: center;
	font-weight: 700;
	font-size: 3rem;
	line-height: calc(46 / 30);
	color: var(--color-theme);
	aspect-ratio: 1;
}
@media screen and (min-width: 744px), print {
	.ad03_main_block .check li {
		width: 31.2rem;
		padding-top: 4rem;
	}
}
@media screen and (max-width: 743px) {
	.ad03_main_block {
		font-size: 1.6rem;
		line-height: calc(28 / 16);
	}
	.ad03_main_block .img {
		margin-bottom: 2.5rem;
	}
	.ad03_main_block .check {
		gap: 1rem;
		margin-top: 2rem;
	}
	.ad03_main_block .check li {
		width: calc((100% - 1rem) / 2);
		padding-top: 2rem;
		background-size: 3rem;
		font-size: 1.3rem;
		line-height: calc(20 / 13);
	}
}

.ad03_contents .content .img {
	margin-top: 4rem;
}
@media screen and (min-width: 744px), print {
	.ad03_contents {
		display: flex;
		justify-content: space-between;
	}
	.ad03_contents .content {
		width: 35rem;
	}
	.ad03_contents .graph {
		width: 74rem;
	}
}
@media screen and (max-width: 743px) {
	.ad03_contents .content .img {
		margin-top: 2rem;
	}
	.ad03_contents .graph {
		margin-top: 2rem;
	}
}


/* ==============================================================================

	NEWS

============================================================================== */
.news_list_page .news_list li:last-child {
	border-bottom: 1px solid var(--border-base);
}
@media screen and (min-width: 744px), print {
	.news_list_page {
		padding: 9rem 12rem 10rem;
	}
}
@media screen and (max-width: 743px) {
	.news_list_page {
		padding-top: 1rem;
		padding-bottom: 3rem;
	}
}

.wp-pagenavi {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin-top: 6rem;
	text-align: center;
}
.wp-pagenavi > * {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4rem;
	height: 4rem;
	padding: 0 0 .1% .1%;
	background: linear-gradient(to right, var(--color-yellow) 0%, #7BD224 100%);
	border-radius: 100%;
	font-size: 1.6rem;
	line-height: 1.2;
	font-family: var(--font-family-en);
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	z-index: 1;
}
.wp-pagenavi > *::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: var(--color-theme);
	border-radius: 100%;
	opacity: 0;
	z-index: -1;
}
.wp-pagenavi .current::before {
	opacity: 1;
}
.wp-pagenavi .extend {
	width: auto;
	background: none;
	color: var(--color-theme);
}
@media (hover) {
	.wp-pagenavi a:hover::before {
		opacity: 1;
	}
}
@media screen and (max-width: 767px) {
	.wp-pagenavi {
		margin-top: 4rem;
	}
}

.news_detaile_title {
	margin-bottom: 4rem;
	padding-bottom: 4rem;
	border-bottom: 2px solid var(--border-base);
}
.news_detaile_title time {
	display: block;
	font-size: 1.4rem;
	margin-bottom: 1rem;
	color: var(--color-green);
	font-weight: 700;
}
.news_detaile_title h1 {
	font-size: 3.2rem;
	line-height: 1.5;
	color: var(--color-theme);
}
@media screen and (min-width: 744px), print {
	.news_detail {
		padding: 7rem 12rem 8rem;
	}
}
@media screen and (max-width: 743px) {
	.news_detaile_title {
		margin-bottom: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.news_detaile_title h1 {
		font-size: 2rem;
	}
}

.back_btn {
	margin-top: 6rem;
}
@media screen and (max-width: 743px) {
	.back_btn {
		margin-top: 4rem;
		width: calc(295 / 375 * 100vw);
		margin-inline: auto;
	}
}



/* ==============================================================================

	404

============================================================================== */
.page_404 {
	text-align: center;
	font-size: 2rem;
	line-height: 1.7;
}
@media screen and (min-width: 744px), print {
	.page_404 {
		padding: 7rem 0 8rem;
	}
}
@media screen and (max-width: 743px) {
	.page_404 {
		padding-top: 4rem;
		padding-bottom: 5rem;
		font-size: 1.6rem;
		line-height: calc(28 / 16);
	}
}
