@charset "utf-8";

/* ==========================================================
 body
========================================================== */

html {
	scroll-behavior: smooth;
}

body {
	font-family: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
	text-align: justify;
	background-color: #fff3c8;
	font-size: 15px;
	font-weight: 400;
	color: #212121;
}

p,
dd {
	word-wrap: break-word;
	overflow-wrap: break-word;
}

svg,
img[src$=".svg"] {
	display: block;
	width: 100%;
	height: 100%;
}

img {
	overflow: hidden;
	max-width: 100%;
	vertical-align: bottom;
}

svg {
	fill: currentColor;
}

@media screen and (max-width: 799px) {
	.only-pc, .no-sp
	{ display: none !important; }
	.only-sp, .no-pc
	{ display: block !important; }
	img.only-sp, img.no-pc
	{ display: inline-block !important; }
}

/* ==========================================================
 common
========================================================== */
section {
	background-color: #fff;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 40px;
}
.wrap {
	display: flex;
	flex-wrap: wrap;
}
/* ttl
----------------------------------------------------*/
h2, h3, h4, h5 {
	font-weight: 700;
}
h2, h3 {
	text-align: center;
}
h3 {
	font-size: 32px;
	margin-bottom: 20px;
}
h4 {
	font-size: 24px;
}
/* txt
----------------------------------------------------*/
.bold {
	font-weight: 700;
}
/* ==========================================================
 header / footer
========================================================== */
/* header
----------------------------------------------------*/
	header {
		max-width: 1200px;
		margin: 0 auto;
		background-color: #000;
	}
/* footer
----------------------------------------------------*/
	footer {
		font-size: 12px;
		text-align: center;
		padding: 30px 0;
	}
/* ==========================================================
 contents
========================================================== */
/* id
----------------------------------------------------*/
#okayama .aco-ttl {
	background-color: #fffef2;
}
#okayama .tag {
	background-color: #fbb03b;
}
#hiroshima .aco-ttl {
	background-color: #f3f8fb;
}
#hiroshima .tag {
	background-color: #58aad6;
}
#hyogo .aco-ttl {
	background-color: #fff8f7;
}
#hyogo .tag {
	background-color: #d57098;
}
#kagawa .aco-ttl {
	background-color: #fbfbed;
}
#kagawa .tag {
	background-color: #54a28d;
}
#tokushima .aco-ttl {
	background-color: #f2f7fd;
}
#tokushima .tag {
	background-color: #5489c5;
}
#ehime .aco-ttl {
	background-color: #f2f1fd;
}
#ehime .tag {
	background-color: #9072c5;
}


.sec-01 {
	padding: 80px 40px 140px;
}
.sec-01 h2 {
	font-size: 32px;
	margin-bottom: 60px;
}
.sec-01 h3 {
	margin-top: 80px;
}
.sec-01 h2::before {
	content: "";
	display: block;
	background: url(../img/ico_shop.svg) no-repeat center center;
	background-color: #f08503;
	border-radius: 50%;
	width: 80px;
	height: 80px;
	margin: 0 auto 20px;
}
.link {
	font-size: 18px;
	font-weight: 700;
	gap: 20px;
	justify-content: center;
	margin-bottom: 110px;
}
.link li {
	border-bottom: 1px solid #212121;
}
.link li a {
	display: flex;
	width: 140px;
	height: 35px;
	align-items: center;
	justify-content: center;
	transition: 0.2s;
}
@media (hover: hover) {
  .link li a:hover {
	opacity: 0.5;
}
}
.link li a::after {
	content: "▼";
  	margin-left: 10px;
	font-size: 6px;
}
.item {
	margin: 0 auto;
	border: 0.5px solid #ccc;
}
.aco-ttl {
	padding: 20px 40px;
	align-items: center;
	gap: 20px;
	position: relative;
	cursor: pointer;
	transition: 0.2s;
}
@media (hover: hover) {
  .aco-ttl:hover {
	opacity: 0.5;
}
}
.aco-ttl .arrow {
	display: block;
	background: url(../img/ico_arrow.svg) no-repeat center center;
	color: #212121;
	width: 24px;
	height: 24px;
	rotate: 90deg;
	position: absolute;
	right: 30px;
}
.aco-ttl.is-open {
	border-bottom: 0.5px solid #ccc;
}
.aco-ttl.is-open .arrow {
	rotate: -90deg;
}
.tag {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 60px;
	height: 30px;
	border-radius: 5px;
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	padding-bottom: 1px;
}
.aco-box {
	max-height: 0;
	overflow: hidden;
	transition: 0.2s ease;
}
.aco-box.is-open {
	max-height: 800px;
	transition: 0.4s ease;
}
.aco-inner {
	display: grid;
	grid-template-columns: 33fr 19fr;
	padding: 40px;
}
.menu {
	min-width: 300px;
	border-right: 0.5px solid #ccc;
	padding-right: 40px;
}
.shop {
	padding-left: 40px;
}
.aco-box .bold {
	margin-bottom: 20px;
}
.menu img {
	width: 360px;
	margin-bottom: 15px;
}
.shop img {
	width: 240px;
	margin-bottom: 15px;
}
.name {
	margin-bottom: 10px;
	font-size: 18px;
}

.sec-02 {
	font-size: 16px;
}
.sec-02 h2 {
	font-size: 28px;
	margin-bottom: 30px;
}
dl {
	max-width: 1040px;
	margin: 0 auto 110px;
	border-top: 0.5px solid #ccc;
}
dt, dd {
	padding: 20px 0;
	border-bottom: 0.5px solid #ccc;
}
dt {
	width: 300px;
}
dd {
	width: calc(100% - 300px);
}
.sponsor {
	max-width: 700px;
	margin: 0 auto;
	padding-bottom: 100px;
}
.sponsor .ttl {
	font-size: 24px;
	font-weight: 700;
	color: #fff;
	width: 160px;
	height: 40px;
	border-radius: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 1px;
	margin: 0 auto 30px;
}
.sponsor-item {
	margin: 0 auto;
	text-align: center;
}
.sponsor-item.top .ttl {
	background-color: #74c1d5;
}
.sponsor-item.middle .ttl {
	background-color: #a1864a;
	margin-bottom: 0;
}
.sponsor-item.bottom .ttl {
	background-color: #212121;
}
.sponsor-item.top img {
	height: 120px;
	transition: 0.2s;
}
.sponsor-item.middle img {
	height: 160px;
	transition: 0.2s;
}
.sponsor .group {
	display: grid;
	grid-template-columns: 1fr 1fr;
	margin-top: 70px;
}
.sponsor-item.bottom img {
	height: 170px;
}
@media (hover: hover) {
  .sponsor-item.top img:hover,
.sponsor-item.middle img:hover {
	opacity: 0.5;
}
}



/* ==========================================================
 max-width: 780px
========================================================== */
@media screen and (max-width: 780px) {
	body {
		font-size: 14px;
	}
	section {
		padding: 0 20px;
	}
	header {
		padding-bottom: 40px;
	}
	header .kv-02 ,
	header .kv-03 {
		display: block;
		margin: 0 auto;
	}
	header .kv-02 {
		width: 95%;
		margin-top: 10px;
		border-radius: 20px;
	}
	header .kv-03 {
		width: 55%;
		margin-top: 20px;
	}
	.sec-01 {
		padding: 60px 20px 80px;
	}
	.link {
		font-size: 16px;
		gap: 20px 40px;
		margin-bottom: 80px;
	}
	.link li a {
		width: 120px;
	}
	.sec-01 h2 {
		font-size: 20px;
		margin-bottom: 40px;
	}
	.sec-01 h3 {
		margin-top: 40px;
	}
	.sec-01 h2::before {
		width: 60px;
		height: 60px;
		background-size: 60%;
	}
	
	h3 {
		font-size: 18px;
		margin-bottom: 20px;
	}
	h4 {
		font-size: 15px;
	}
	.aco-box .bold {
		margin-bottom: 10px;
	}
	.aco-ttl {
		padding: 20px 10px;
		gap: 10px;
	}
	.aco-ttl .arrow {
		right: 10px;
	}
	.aco-box.is-open {
		max-height: 1500px;
	}	
	.tag {
		width: 50px;
		height: 25px;
		font-size: 14px;
	}
	.aco-inner {
		grid-template-columns: 1fr;
		padding: 20px;
	}
	.menu {
		border-right: none;
		border-bottom: 0.5px solid #ccc;
		padding-right: 0;
		padding-bottom: 20px;
	}
	.shop {
		padding-left: 0;
		padding-top: 20px;
	}
	.shop img {
		width: 180px;
	}
	.menu img {
		margin-bottom: 10px;
	}
	.name {
		font-size: 15px;
		margin-bottom: 0;
	}

	.sec-02 {
		font-size: 14px;
	}
	.sec-02 h2 {
		font-size: 20px;
	}
	dl {
		margin-bottom: 60px;
	}
	dt, dd {
		width: 100%;
		padding: 20px;
		border: 0.5px solid #ccc;;
	}
	dt {
		background-color: #fafafa;
	}
	.sponsor {
		padding-bottom: 80px;
	}
	.sponsor .group {
		grid-template-columns: 1fr;
		gap: 20px;
		margin-top: 50px;
	}
	.sponsor .ttl {
		font-size: 18px;
		width: 150px;
		height: 35px;
	}
	.sponsor-item.top img {
	height: 110px;
	}
	.sponsor-item.middle img {
		height: 140px;
	}
}