@charset "UTF-8";

@font-face {
    font-family: "ZenKakuGothicAntique";
    src: url("../../assets/fonts/ZenKakuGothicAntique-Medium.woff2") format("woff2");
    font-display: swap;
    font-weight: 500;
}

@font-face {
    font-family: "ZenKakuGothicAntique";
    src: url("../../assets/fonts/ZenKakuGothicAntique-Bold.woff2") format("woff2");
    font-display: swap;
    font-weight: 700;
}

:root {
    --font-zen-medium: "ZenKakuGothicAntique", sans-serif;
    --font-zen-bold: "ZenKakuGothicAntique", sans-serif;
}

/*------------------------------------------------------------
    Reset
------------------------------------------------------------*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
dialog,
figure,
footer,
header,
nav,
section,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
main {
  display: block;
}
html {
  font-size: 62.5%;
}
body,
table,
input,
textarea,
select,
option,
h1,
h2,
h3,
h4,
h5,
h6 {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: bold;
}
table,
input,
textarea,
select,
option {
  line-height: 1.1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
:focus {
  outline: 0;
}
ins {
  text-decoration: none;
}
del {
  text-decoration: line-through;
}
img {
  vertical-align: top;
}
a,
a img {
  -webkit-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover,
a:hover img {
  opacity: 0.7;
  filter: alpha(opacity=80);
}

.img-fluid {
	width: 100%;
    height: auto;
}
@media only screen and (min-width: 768px) {
	.sp-only {
		display: none;
	}
}
@media only screen and (max-width: 767px) {
	.pc-only {
		display: none;
	}
}

/* 
------------------------------------------------------------*/
body {
	font-family: var(--font-zen-medium);
	font-weight: 500;
	font-size: 1.6rem;
	line-height: 1.7;
	color: #3e3a39;
}


/*header*/
.c-header {
	background: url("../../assets/img/bg-blue.jpg") left bottom no-repeat;
	background-size: 100% auto;
}
.c-header .bg-mv  {
	background: url("../../assets/img/bg-mv.jpg") center top no-repeat;
	background-size: 100% auto;
}
@media screen and (max-width: 1200px) {
    .c-header .bg-mv {
        background-size: 1200px auto;
    }
}
@media screen and (max-width: 767px) {
	.c-header {
		background: none;
	}
	.c-header .bg-mv  {
		background: url("../../assets/img/bg-mv-sp.jpg") center top no-repeat;
		background-size: 100% auto;
	}
}


.c-header__logo {
	width: 675px;
    text-align: center;
	padding: 52px 0 220px;	
	margin: auto;
}
@media screen and (min-width: 1201px) {
	.c-header__logo {
		width: 55%;
		padding: 4% 0 19.5%;
	}
}

.top-link {
	max-width: 810px;
	margin: auto;
	padding-bottom: 124px;
}
.top-link__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px;
    text-align: center;
    justify-content: center;
}
.top-link__item a {
	font-family: var(--font-zen-bold);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.4;
	letter-spacing: -0.03em;
	color: #76bfc1;
	border: 3px solid #76bfc1;
	background: #fff;
    -webkit-box-shadow: 5px 5px #76bfc1;
    box-shadow: 5px 5px #76bfc1;
	padding: 4px 10px;
	display: flex;
    align-items: center;
    justify-content: center;
	border-radius: 50px;
	height: 100%;
}
.top-link__item a:hover {
	-webkit-transform: translate(5px, 5px);
    transform: translate(5px, 5px);
    -webkit-box-shadow: none;
    box-shadow: none;
    opacity: 1;
}
.intro__wrap {
    padding-bottom: 124px;
    display: flex;
    justify-content: space-between;
}
.intro__left {
    width: 324px;
}
.intro__right {
	font-family: var(--font-zen-bold);
	font-weight: 700;
	font-size: 2rem;
	color: #466777;
    width: calc(100% - 350px);
	background: url("../../assets/img/bg-intro.png") left top no-repeat;
	background-size: 100% 100%;
	text-align: center;
	padding: 30px;
	display: flex;
    align-items: center;
    justify-content: center;
}

.c-header .c-header__nav {
	max-width: 400px;
	position: fixed;
	top: 0;
	z-index: 999;
	right: 0;
	width: 100%;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	padding: 60px 25px;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: 0.4s;
	transition: 0.4s;
	background: #76bfc1;
	background-size: cover;
}
.c-header .c-header__nav a {
	border-bottom: 1px solid #fff;
	letter-spacing: 0.13em;
	padding: 10px 0;
	color: #fff;
}
.c-header .c-header__nav p {
	padding: 10px 0;
	border-bottom: 0;
	color: #fff;
}
.c-header .c-header__nav.open {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

/*menu*/
.menu {
	position: fixed;
	width: 50px;
	height: 50px;
	top: 10px;
	right: 10px;
	z-index: 9999;
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	background: #fff;
	border-radius: 4px;
}
.menu:hover {
	cursor: pointer;
}
.menu .icon {
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	position: absolute;
	height: 4px;
	width: 25px;
	top: 50%;
	background-color: #466777;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.menu .icon::before {
	content: "";
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	position: absolute;
	width: 25px;
	height: 4px;
	background-color: #466777;
	top: -10px;
}
.menu .icon::after {
	content: "";
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	position: absolute;
	width: 25px;
	height: 4px;
	background-color: #466777;
	top: 10px;
}
.menu.open {
	background: none;
}
.menu.open .icon {
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	background: transparent;
}
.menu.open .icon::before {
	-webkit-transform: rotateZ(45deg) scaleX(1.25) translate(6.5px, 6.5px);
	transform: rotateZ(45deg) scaleX(1.25) translate(6.5px, 6.5px);
    background-color: #fff;
}
.menu.open .icon::after {
	-webkit-transform: rotateZ(-45deg) scaleX(1.25) translate(6px, -6px);
	transform: rotateZ(-45deg) scaleX(1.25) translate(6px, -6px);
    background-color: #fff;
}

/*footer*/
.c-footer {
	background: url("../../assets/img/bg-footer.png") left top repeat-x;
	color: #fff;
	padding: 20px 0 75px;
	text-align: center;;
}
.c-top {
	position: fixed;
	bottom: 30px;
	right: 30px;
	z-index: 999;
	cursor: pointer;
	display: none;
	max-width: 122px;
}

/*common*/
.overflow-hidden {
	overflow: hidden;
}
.overflowx-hidden {
	overflow-x: hidden;	
}
.u-rel {
	position: relative;
}
.u-abs {
	position: absolute;
}
.u-z-index1 {
	z-index: 1;
}

.c-title {
	font-family: var(--font-zen-bold);
	font-weight: 700;
	text-align: center;
    font-size: 4rem;
    color: #466777;
	display: flex;
    justify-content: center;
	margin-bottom: 15px;
	transform: translate(-34.5px);
}
.c-title span {
	display: flex;
    justify-content: center;
	margin-right: 25px;	
}
.c-title2 {
    font-size: 2rem;
	font-weight: 500;
	color: #466777;
    margin-bottom: 25px;
}
.c-bg-white {
    background-color: #fff;
}
.c-important {
    color: #fff;
    background: #e86969;
}
.c-link {
    color: #76bfc1;
	overflow-wrap: anywhere;
}
.l-container--1045 {
	max-width: 1045px;
	width: auto;
	margin: auto;	
}
@media only screen and (max-width: 1045px) {
	.l-container--1045 {
		padding: 0 20px;
	}
}
.l-container--1000 {
	max-width: 1000px;
	width: auto;
	margin: auto;
}
@media only screen and (max-width: 1000px) {
	.l-container--1000 {
		padding: 0 20px;
	}
}
.l-container--900 {
	max-width: 900px;
	width: auto;
	margin: auto;
}
@media only screen and (max-width: 900px) {
	.l-container--900 {
		padding: 0 20px;
	}
}

/*main*/
.p-top {
	background: url("../../assets/img/bg-green.jpg") left top no-repeat;
	background-size: cover;
	overflow: hidden;
}

/*参加方法*/
.sec-sanka {
    padding: 120px 0 100px;
}
.sanka-wrap {
    padding: 48px 100px;
}
.sanka-wrap .sanka-list:not(:last-child) {
	border-bottom: 1px solid #466777;
	padding-bottom: 12px;
	margin-bottom: 36px;
}
.sanka-item dt {
    font-size: 2rem;
    color: #466777;
    margin-bottom: 15px;
    display: flex;
    align-items: baseline;
}
.c-circle {
    width: 27px;
    height: 27px;
    color: #fff;
    background: #466777;
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
	margin-right: 10px;
	line-height: 0.2;
}
.sanka-item__title {
    width: calc(100% - 37px);
}
.sanka-item dd {
	letter-spacing: -0.01em;
	margin-bottom: 36px;
}
.sanka-item__wrap {
    display: flex;
    justify-content: space-between;
	align-items: flex-end;
}
.sanka-item__left {
	width: 470px;
}
.sanka-item__left dd {
	margin-bottom: 0;
}
.sanka-item__right {
    max-width: 290px;
	width: calc(100% - 505px);
}
.sanka-item-link__wrap {
    margin-top: 36px;
    display: flex;
    align-items: center;
    gap: 36px;
}
.deco-sanka-item01 {
    width: 646px;
    left: -85px;
    top: -108px;
}
.deco-sanka-item02 {
    width: 591px;
    right: -80px;
    bottom: -180px;
}

/*開催期間*/
.sec-event {
	padding-bottom: 100px;
}
.event-wrap {
    color: #466777;
    font-size: 2rem;
    text-align: center;
    letter-spacing: 0.05em;
    padding: 43px 20px;
}

/*スタンプスポット*/
.sec-spot {
    padding-bottom: 120px;
}
.spot-wrap {
    padding: 64px 45px;
}
.spot-item {
    display: flex;
    justify-content: space-between;
}
.spot-item:not(:last-child) {
    padding-bottom: 64px;
    margin-bottom: 64px;
    border-bottom: 1px solid #466777;
}
.spot-image {
    width: 315px;
}
.spot-content {
    width: calc(100% - 360px);
}
.spot-title {
    font-size: 2rem;
    color: #466777;
    margin-bottom: 25px;
}
.spot-info dl {
    display: flex;
    justify-content: space-between;
}
.spot-info dt {
    width: 95px;
}
.spot-info dd {
    width: calc(100% - 105px);
}
.c-list-disc {
    list-style: disc;
    padding-left: 1.6em;
}
.spot-info__txt {
    margin-top: 36px;
}
.deco-spot-item01 {
    width: 659px;
    top: -20px;
    left: -140px;
}
.deco-spot-item02 {
    width: 360px;
    top: -152px;
    right: -30px;
}
.deco-spot-item03 {
    width: 123px;
    top: 38%;
    left: -25px;
}
.deco-spot-item04 {
    width: 387px;
    top: 29%;
    right: -200px;
}
.deco-spot-item05 {
    width: 387px;
    left: -30px;
    top: 68%;
}
.deco-spot-item06 {
    width: 103px;
    right: -20px;
    bottom: 45px;
}

/*SNS魅力発信*/
.sec-sns {
    padding: 156px 0 90px;
	background: url("../../assets/img/bg-sns.png") center top no-repeat;
	background-size: cover;
}
.sns-title-wrap {
	max-width: 850px;
	margin: 0 auto 45px;
	position: relative;
}
.deco-sns-title {
	position: absolute;
}
.deco-sns-title.deco-1 {
	max-width: 242px;
	top: -85px;
	left: 0;
}
.deco-sns-title.deco-2 {
	max-width: 253px;
	top: -90px;
	right: 0;
}
.sns-title {
	font-family: var(--font-zen-bold);
	font-weight: 700;
	text-align: center;
    font-size: 4rem;	
	color: #466777;
    text-shadow: 3px 4px 1px rgba(255, 255, 255, 1);
	position: relative;
}
.sns-lead {
	text-align: center;
	margin-bottom: 48px;
}
.sns-tag__list {
	margin-bottom: 120px;
}
.sns-tag__list {
    display: flex;
    justify-content: center;
    gap: 30px;
}
.sns-tag__item {
	font-family: var(--font-zen-bold);
	font-weight: 700;
	text-align: center;
    font-size: 1.9rem;	
	color: #fff;	
	background: #76bfc1;
	border-radius: 30px;
	padding: 2px 30px;
}
.sns-wrap {
    padding: 48px 20px;
	position: relative;
}
.deco-sns-wrap {
    position: absolute;
    max-width: 178px;
    top: -80px;
    left: -54px;
}
.sns-content {
	max-width: 580px;
	margin: auto;
}
.sns-content-txt:not(:last-child) {
	margin-bottom: 25px;
}
.sns-content-txt dl {
    display: flex;
}
.sns-content-txt dt {
    width: 125px;
}
.sns-content-txt dd {
    width: calc(100% - 135px);
}
.sns-content-txt dl:first-child dd {
	letter-spacing: 0.1em;
}

/*お問い合わせ*/
.sec-contact {
    padding: 120px 0;
}
.contact-wrap {
    margin-top: 15px;
    padding: 36px 40px;
}
.contact-wrap dl {
    display: flex;
    gap: 36px;
}

@media only screen and (max-width: 1000px) {
	.top-link {
		padding: 0 20px 100px;
	}
	.top-link__item a {
		font-size: 1.8rem;
	}
	.sanka-wrap {
	    padding: 48px 45px;
	}
	.sanka-item__left {
		width: 57%;
	}
	.sanka-item__right {
		width: 41%;
	}
	.deco-sns-wrap {
	    left: -20px;
	    min-width: 98px;
	    width: 18%;
	}
}

@media only screen and (max-width: 767px) {
	body {
		line-height: 1.9;
	}
	.c-top {
		width: 96px;
	    bottom: 20px;
	    right: 20px;
	}
	.c-footer {
		padding: 20px 0 42px;
	}
	.c-header__logo {
	    width: 86%;
	    padding: 20.5% 0 46%;
	}
    .top-link {
        padding: 0 20px 55px;
    }
	.top-link__list {
	    gap: 5px;
	}
	.top-link__item a {
		border-radius: 10px;
	    box-shadow: 2px 2px #76bfc1;
	}
	.l-container--1045 {
        padding: 0;
    }
	.intro__wrap {
		padding-bottom: 125px;
		position: relative;
	}
	.intro__left {
	    width: 168px;
	    position: absolute;
	    bottom: 40px;
	    right: 35px;
	}
	.intro__right {
		line-height: 2.2;
		width: 100%;
		background: url("../../assets/img/bg-intro-sp.png") left top no-repeat;
		background-size: 100% 100%;
		padding: 50px 20px 80px;
	}
	.sec-sanka {
	    padding: 75px 0;
	}
	.c-title {
		font-size: 3.2rem;
		transform: none;
	}
	.c-title span {
		width: 38px;
		margin-right: 10px;
	}
	.c-title span img {
	    width: 100%;
	}
	.sanka-wrap {
        padding: 55px 20px;
    }
	.sanka-item__wrap {
	    flex-wrap: wrap;
	}
	.sanka-item dd {
		margin-bottom: 28px;
	}
	.sanka-item__left, 
	.sanka-item__right {
		width: 100%;
	}
	.sanka-item__right {
		margin: -60px auto 0;
	}
	.sanka-item-link__wrap {
		margin-top: 20px;
	    display: block;
	}
	.sanka-item-link__right {
		margin: 20px 0 0 30%;
	}
	.sanka-item-link__right img {
	    transform: rotate(90deg);
	}
	.deco-sanka-item01 {
	    width: 523px;
	    left: -145px;
	    top: -20px;
	}
	.deco-sanka-item02 {
	    width: 538px;
	    right: -164px;
	    bottom: -30px;
	}
	.sec-event {
	    padding-bottom: 75px;
	}
	.event-wrap {
		padding: 40px 10px;
	}
	.sec-spot {
	    padding-bottom: 100px;
	}
	.spot-wrap {
	    padding: 45px 20px;
	}
	.spot-item, 
	.spot-info dl {
	    flex-wrap: wrap;
	}
	.spot-image, 
	.spot-content, 
	.spot-info dd {
	    width: 100%;
	}
	.spot-image {
		margin-bottom: 40px;
	}
	.spot-item:not(:last-child) {
	    padding-bottom: 40px;
	    margin-bottom: 40px;
	}
	.spot-info dt {
		width: 100%;
	}
	.spot-info dt::before, 
	.sns-content-txt dt::before, 
	.contact-wrap dt::before {
		content: '';
		display: inline-block;
		width: 10px;
		height: 10px;
		background: #76bfc1;
		border-radius: 20px;
		margin-right: 15px;
	}
	.deco-spot-item01 {
	    top: 290px;
	    left: -290px;
	}
	.deco-spot-item02 {
	    width: 280px;
	    top: -190px;
	    right: -35px;
	}
	.deco-spot-item03 {
	    width: 84px;
	    top: 34%;
	    left: -45px;
	}
	.deco-spot-item04 {
		top: 27%;
	    right: -265px;
	}
	.deco-spot-item05 {
		width: 595px;
	    left: -210px;
	    top: 72%;
	}
	.deco-spot-item06 {
	    width: 277px;
	    right: -25px;
	    bottom: 15px;
	}
	.deco-spot-item07 {
	    width: 26px;
	    right: -10px;
	    top: 54%;
	}
	.deco-spot-item08 {
	    width: 19px;
	    left: 0;
	    top: 87%;
	}
	.sec-sns {
	    padding: 132px 0 70px;
	}
	.sns-title-wrap {
	    margin: 0 auto 40px;
	}
	.deco-sns-title.deco-1 {
	    width: 170px;
	    left: -50px;
	}
	.deco-sns-title.deco-2 {
	    width: 146px;
	    right: -30px;
	}
	.sns-title {
		font-size: 2.4rem;
	}
	.sns-lead {
	    margin-bottom: 40px;
	    line-height: 2.2;
	}
	.sns-tag__list {
	    gap: 3px;
        flex-wrap: wrap;
		margin-bottom: 70px;
	}
	.sns-tag__item {
		font-size: 1.5rem;
	}
	.sns-wrap {
	    padding: 90px 20px 70px;
	}
	.deco-sns-wrap {
		width: 98px;
		top: -30px;
	}
	.sns-content-txt dl {
        flex-wrap: wrap;
	}
	.sns-content-txt dt {
	    width: 100%;
	}
	.sns-content-txt dd {
		width: 100%;
	}
	.sns-content-txt dl:first-child dd {
	    letter-spacing: normal;
	}
	.sec-contact {
	    padding: 90px 0;
	}
	.contact-wrap {
	    margin-top: 32px;
	    padding: 32px 20px;
	}
	.contact-wrap dl {
	    display: initial;
	}
}