@charset "UTF-8";
/* =========================================
GOOD FOUR
Base Style Sheet
First Update 2022-06-16
Last  Update 2021-06-16
Created by Basic Plus Design Inc.
========================================= */
/* =========================================
## Font Setting
========================================= */
@import url("https://fonts.googleapis.com/css?family=Noto+Sans+JP:100,300,500,700|Prompt:600&display=swap");

/* =========================================
#  Foundation
========================================= */
/* ---------------------------------------------
  Reset
  normalize | MIT License
--------------------------------------------- */
*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	font-family: sans-serif;
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

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

body {
	margin: 0;
	font-family: "Noto Sans JP", san-serif;
	font-size: 12px;
	font-size: 1.7rem;
	font-weight: 400;
	line-height: 2;
	color: #000;
	text-align: center;
	background-color: #fff;
	letter-spacing: 2pt;
}

[tabindex="-1"]:focus:not(:focus-visible) {
	outline: 0 !important;
}

hr {
	-webkit-box-sizing: content-box;
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 100;
	margin-top: 0;
	margin-bottom: 100px;
}

p {
	margin-top: 0;
	margin-bottom: 1em;
}

abbr[title],
abbr[data-original-title] {
	text-decoration: underline;
	-webkit-text-decoration: underline dotted;
	text-decoration: underline dotted;
	cursor: help;
	border-bottom: 0;
	-webkit-text-decoration-skip-ink: none;
	text-decoration-skip-ink: none;
}

address {
	margin-bottom: 1rem;
	font-style: normal;
	line-height: inherit;
}

ol,
ul,
dl {
	margin-top: 0;
	margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
	margin-bottom: 0;
}

dt {
	font-weight: normal;
}

dd {
	margin-bottom: 0.5rem;
	margin-left: 0;
}

blockquote {
	margin: 0 0 1rem;
}

b,
strong {
	font-weight: 700;
}

small {
	font-size: 80%;
}

sub,
sup {
	position: relative;
	font-size: 75%;
	line-height: 0;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

a {
	color: #000;
	text-decoration: none;
	background-color: transparent;
}

a:hover {
	color: #006699;
	text-decoration: underline;
}

a:focus {
	color: #9cca54;
	text-decoration: underline;
}

a:not([href]):not([tabindex]) {
	color: inherit;
	text-decoration: none;
}

a:not([href]):not([tabindex]):focus {
	color: inherit;
	text-decoration: none;
}

.touch a:not([href]):not([tabindex]):focus {
	color: inherit;
	text-decoration: none;
}

a:not([href]):not([tabindex]):focus {
	outline: 0;
}

pre,
code,
kbd,
samp {
	font-family: 0;
	font-size: 100%;
	font-size: 100%;
}

pre {
	margin-top: 0;
	margin-bottom: 1rem;
	overflow: auto;
}

figure {
	margin: 0 0 1rem;
}

img {
	vertical-align: middle;
	border-style: none;
}

svg {
	overflow: hidden;
	vertical-align: middle;
}

table {
	border-collapse: collapse;
}

caption {
	padding-top: 1em;
	padding-bottom: 1em;
	color: #000;
	text-align: left;
	caption-side: bottom;
}

th {
	text-align: inherit;
}

label {
	display: inline-block;
	margin-bottom: 0;
}

button {
	border-radius: 0;
}

button:focus {
	outline: 1px dotted;
	outline: 5px auto -webkit-focus-ring-color;
}

input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: 14px;
	font-size: 1.4rem;
	line-height: inherit;
}

button,
input {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

select {
	word-wrap: normal;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
	cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	padding: 0;
	border-style: none;
}

input[type="radio"],
input[type="checkbox"] {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	padding: 0;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
	-webkit-appearance: listbox;
}

textarea {
	overflow: auto;
	resize: vertical;
}

fieldset {
	min-width: 0;
	padding: 0;
	margin: 0;
	border: 0;
}

legend {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin-bottom: 0.5rem;
	font-size: 150%;
	font-size: 150%;
	line-height: inherit;
	color: inherit;
	white-space: normal;
}

progress {
	vertical-align: baseline;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

[type="search"] {
	outline-offset: -2px;
	-webkit-appearance: none;
}

[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-file-upload-button {
	font: inherit;
	-webkit-appearance: button;
}

output {
	display: inline-block;
}

summary {
	display: list-item;
}

template {
	display: none;
}

[hidden] {
	display: none !important;
}

::-moz-selection {
	background-color: rgba(102, 153, 153, 0.4);
}

::selection {
	background-color: rgba(102, 153, 153, 0.4);
}

/* =========================================
  Layout
========================================= */
/* -----------------------------------------
  Base
----------------------------------------- */
html {
	font-size: 62.5%;
}

.l-container {
	width: calc(100% - 40px);
	max-width: 800px;
	margin: 0 auto;
	position: relative;
}

.l-content {
	width: calc(100% - 20px);
	max-width: 800px;
	margin: 60px auto;
	position: relative;
}

@media screen and (min-width: 820px) {
	.l-content {
		width: 100%;
	}
}

/* -----------------------------------------
  Header
----------------------------------------- */
.l-header {
	position: absolute;
	width: 100%;
	height: 300px;
	margin: 0 auto;
	z-index: 1;
}

.l-header__inner {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: normal;
	-ms-flex-flow: row wrap;
	flex-flow: row wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.l-header__logo {
	display: block;
	margin: 0px auto;
	text-indent: 100%;
	overflow: hidden;
	white-space: nowrap;
	-webkit-transition: background 0.5s;
	transition: background 0.5s;
}

.l-header__logo {
	width: 200px;
	height: 200px;
	background: url(../images/logo.svg) no-repeat 0 0 / contain;
}

@media all and (max-width: 767px) and (orientation: portrait) {
	.l-header__inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-flow: column wrap;
		flex-flow: column wrap;
		-webkit-box-pack: start;
		-ms-flex-pack: start;
		justify-content: flex-start;
	}

	.l-header__logo {
		margin: 0px auto;
	}
}

@media all and (min-width: 768px) {
	.l-header {
		height: 200px;
	}

	.l-header__logo {
		width: 200px;
		height: 180px;
	}
}

/* -----------------------------------------
  Footer
----------------------------------------- */
footer {
	width: 100%;
	height: 4em;
	background: #000;
	color: #fff;
	font-size: 1.3rem;
	padding-top: 1.2rem;
	text-align: center;
}

footer span {
	display: inline-block;
}

@media all and (max-width: 479px) {
	footer {
		height: 6em;
	}
}

/* -----------------------------------------
  Main
----------------------------------------- */
main p,
main ul,
main ol,
main dl {
	font-size: 1.5rem;
	line-height: 1.5;
	letter-spacing: 0.1em;
}

main p span {
	display: inline-block;
}

section {
	background-color: #fff;
	padding: 90px 0;
}

/* =========================================
  Object
========================================= */
/* -----------------------------------------
  Flexbox
----------------------------------------- */
.c-flwrap {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-flow: column wrap;
	flex-flow: column wrap;
}

.c-cell {
	width: 100%;
	padding: 0 10px;
}

@media all and (min-width: 768px) {
	.c-flwrap {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-flow: row wrap;
		flex-flow: row wrap;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}

	.c-cell {
		padding: 0;
	}

	.c-flwrap.c-row--2 .c-cell {
		width: 48%;
	}
}

/* -----------------------------------------
  Hero
----------------------------------------- */
.c-hero {
	width: 100%;
	height: 100vh;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	position: relative;
}

.c-hero__inner {
	color: #fff;
	text-align: center;
	position: absolute;
	width: 100%;
	top: 50%;
	left: 0;
	padding: 0 40px;
	margin: auto;
}

.c-hero__title {
	max-height: 60px;
	margin-bottom: 3rem;
}

.c-hero__title__cs {
	max-height: 47px;
	margin-bottom: 3rem;
}

h1.c-hero__title {
	font-size: 1.2rem;
	font-weight: 200;
	letter-spacing: 0.05em;
}

h1.c-hero__title span {
	display: inline-block;
}

@media all and (min-width: 768px) {
	h1.c-hero__title {
		font-size: 1.4rem;
	}
}

@media all and (min-width: 768px) and (orientation: landscape) {
	.c-hero {
		width: 100%;
		height: 0;
		padding-top: 30%;
	}

	.c-hero__title {
		max-height: 100px;
		margin-bottom: 3rem;
	}

	.c-hero__title__cs {
		max-height: 47px;
		margin-bottom: 3rem;
	}

	h1.c-hero__title {
		font-size: 2rem;
		font-weight: 300;
		letter-spacing: 2pt;
	}
}

/* -----------------------------------------
  Title
----------------------------------------- */
.c-ttl--sc {
	font-family: "Prompt", sans-serif;
	font-size: 3.5rem;
	font-weight: 150;
	letter-spacing: 0.15em;
	text-align: center;
	margin-bottom: 0;
}

.c-ttl--sc + p {
	text-align: center;
}

/* -----------------------------------------
  Hero
----------------------------------------- */
.p-hero--top {
	background-image: url(../images/top/hero_top.jpg);
	height: 700px;
}

@media all and (max-width: 767px) and (orientation: portrait) {
	.p-hero--top {
		background-image: url(../images/top/hero_top_s.jpg);
	}
}

/* =========================================
  Utility
========================================= */
/* -----------------------------------------
  Break
----------------------------------------- */
.u-sp {
	display: block;
}

.u-tb {
	display: block;
}

@media all and (min-width: 600px) {
	.u-sp {
		display: none;
	}
}

@media all and (min-width: 1024px) {
	.u-tb {
		display: none;
	}
}

/* =========================================
  Cause
========================================= */
/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc {
	display: block !important;
}
.mb {
	display: none !important;
}

/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media only screen and (max-width: 750px) {
	.pc {
		display: none !important;
	}
	.mb {
		display: block !important;
	}
}

#top-cause {
	background-color: #f8b62d;
}

#top-cause img ~ p {
	font-size: 100%;
	font-weight: bold;
	line-height: inherit;
	letter-spacing: inherit;
	margin-bottom: 2em;
	text-align: center;
}

#top-cause img {
	margin: 30px auto;
}

@media all and (max-width: 767px) {
	#top-cause .l-container {
		width: 100%;
	}
}

@media screen and (min-width: 767px) {
	#top-cause img {
		margin-bottom: 40px;
	}

	#top-cause img ~ p {
		font-size: 110%;
	}
}

/* =========================================
  About
========================================= */
#top-about img ~ p {
	font-size: 100%;
	font-weight: bold;
	line-height: inherit;
	letter-spacing: inherit;
	margin-bottom: 2em;
	text-align: center;
}

#top-about img {
	margin: 30px auto;
}

@media all and (max-width: 767px) {
	#top-about .l-container {
		width: 100%;
	}
}

@media screen and (min-width: 767px) {
	#top-about img {
		margin-bottom: 40px;
	}

	#top-about img ~ p {
		font-size: 110%;
	}
}

/* =========================================
  Contact
========================================= */
#top-contact {
	background: #9cca54;
	color: #fff;
}

/* =========================================
  FORM -- for mfp
========================================= */
div#mfp_hidden {
	overflow: hidden;
	width: 1px;
	height: 1px;
	padding: 0px;
	margin: 0px;
}

table#mfp_confirm_table {
	border-spacing: 0px;
	border-collapse: collapse;
	width: 100%;
	margin: 20px 0 20px;
}

table#mfp_confirm_table tr.mfp_colored {
	background-color: #cff0f5;
}

table#mfp_confirm_table tr.mfp_achroma {
	background-color: #fff;
}

table#mfp_confirm_table tr th,
table#mfp_confirm_table tr td {
	text-align: left;
	font-size: 12px;
	border-top: solid 1px #ccc;
	padding: 10px;
}

table#mfp_confirm_table tr th {
	white-space: nowrap;
	width: 200px;
}

table#mfp_confirm_table tr td {
	line-height: 1.5em;
	word-break: break-all;
}

div#mfp_phase_confirm {
	clear: both;
}

div#mfp_phase_confirm h4 {
	font-size: 150%;
	padding: 0;
	text-align: center;
	background: #fff;
}

div#mfp_phase_confirm h4::before {
	width: 100%;
	height: 50px;
	content: "";
	display: block;
	background: #fff;
	clear: both;
	margin-top: -40px;
	position: relative;
	z-index: 100;
}

div#mfp_overlay {
	position: absolute;
	display: none;
	height: 100%;
	z-index: 10001;
}

div#mfp_overlay_inner {
	width: 640px;
	max-width: 90%;
	padding: 15px;
	background-color: #fff;
	border-radius: 5px;
	-webkit-box-shadow: 0px 0px 10px #000;
	box-shadow: 0px 0px 10px #000;
	position: absolute;
	top: 100px;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}

div#mfp_overlay_background {
	background-color: #000;
	position: absolute;
	display: none;
	z-index: 10000;
}

div#mfp_loading_screen {
	z-index: 20000;
	opacity: 0.8;
	display: none;
	background-color: #000;
	position: absolute;
}

div#mfp_loading {
	z-index: 20001;
	position: absolute;
	display: none;
	width: 40px;
	height: 40px;
	background-image: url(../cgi/mfp.statics/_images/mfp_loading.gif);
}

.mfp_colored {
	background-color: #f6f7f9;
}

.mfp_achroma {
	background-color: #fff;
}

div.mfp_err {
	clear: both;
	display: none;
	text-align: left;
	margin: 5px 0px 0px 0px;
	padding: 3px 0px 5px 22px;
	color: #ef528b;
	font-size: 12px;
	font-weight: 700;
	line-height: normal;
	background: url(../cgi/mfp.statics/_images/mfp_error.gif) no-repeat 0 center/16px 15px;
}

.mfp_parent_error {
	border: solid 2px #ef528b;
}

.problem {
	background-color: rgba(237, 213, 222, 0.5);
}

div#mfp_error {
	background-color: #edd5de;
	border: solid 1px #ef528b;
	padding: 10px;
	display: none;
}

div#mfp_error p {
	padding: 0px;
	margin: 0px;
	font-size: 14px;
	text-align: center;
}

div#mfp_error p strong {
	font-size: 18px;
	color: #ef528b;
}

div#mfp_warning {
	background-color: #edd5de;
	border: solid 1px #ef528b;
	padding: 10px;
	display: none;
	border-radius: 5px;
}

div#mfp_warning p {
	padding: 0px;
	margin: 0px;
	font-size: 14px;
	text-align: center;
}

div#mfp_warning p strong {
	font-size: 18px;
	color: #f00;
}

button.mfp_next,
button.mfp_prev {
	font-size: 18px;
	margin: 10px;
	padding: 5px 10px;
}

button.mfp_next {
	float: right;
}

button.mfp_prev {
	float: left;
}

div.mfp_buttons {
	position: center;
	clear: both;
	padding: 10px;
	text-align: center;
}

div.mfp_buttons button#mfp_button_send {
	background: #000;
	color: #fff;
}

div.mfp_buttons button#mfp_button_cancel {
	background: #fff;
	border: 1px solid #000;
	color: #000 !important;
}

.imagebutton {
	margin: 0px;
	padding: 0px;
	border: none;
	outline: none;
	background: none;
}

.mfp_element_file {
	font-size: 12px;
	display: inline-block;
	padding: 10px 10px;
	vertical-align: middle;
	border: solid 1px #ccc;
	border-radius: 3px;
	-webkit-box-shadow: 0px 0px 5px #ccc inset;
	box-shadow: 0px 0px 5px #ccc inset;
	background: #eee;
}

button.mfp_next,
button.mfp_prev {
	font-size: 14px;
}

div.mfp_ok {
	border-radius: 5px;
	background-color: #35cade;
	border: solid 1px #35cade;
	line-height: 1.5em;
	padding: 0px 5px;
	margin: 0px 2px;
	color: #fff;
	font-size: 10px;
	background-image: url(../cgi/mfp.statics/_images/mfp_header.png);
	background-size: 100% 100%;
	display: none;
}

div.prefcodeWrapper {
	position: relative;
}

div.prefcodeResult {
	position: absolute;
	top: 0px;
	left: 0px;
	padding: 5px;
	border: solid 1px #ccc;
	background-color: #fff;
	-webkit-box-shadow: 0px 0px 5px #ccc;
	box-shadow: 0px 0px 5px #ccc;
	display: none;
}

div.prefcodeResult div {
	cursor: pointer;
}

div.prefcodeResult div:hover {
	background-color: #c9ebfb;
}

div.prefcodeResult div.prefcodeNext {
	background-color: #eee;
	text-align: center;
}

div.prefLoading {
	padding: 60px 100px;
	background: url(../cgi/mfp.statics/_images/mfp_zip_loading.gif) no-repeat center center;
}

.hidefield {
	height: 0px;
	overflow: hidden;
}

.showfield {
	height: auto;
	overflow: visible;
}

div#mfp_OperationCheck {
	display: inline-block;
}

div#mfp_OperationCheck div#mfp_OperationCheck_inner {
	display: none;
}

div#mfp_OperationCheck strong {
	background: #ef528b;
	display: block;
	color: #222;
	text-align: center;
	border-radius: 3px;
}

div#mfp_OperationCheck * {
	padding: 0px;
	margin: 0px;
	font-size: 12px;
}

div#mfp_OperationCheck p {
	padding: 0px 5px;
	margin: 0px;
	font-size: 12px;
}

div#mfp_OperationCheck p a {
	color: #0c0;
	text-decoration: none;
}

div#mfp_OperationCheck p a:hover,
div#mfp_OperationCheck p button:hover {
	text-decoration: underline;
}

div#mfp_OperationCheck p button {
	border: none;
	background: none;
	color: #0c0;
	cursor: pointer;
}

div#mfp_OperationCheck ul li,
div#mfp_OperationCheck ul li label,
div#mfp_OperationCheck ul li label input {
	line-height: 12px;
	font-size: 12px;
	list-style: none;
	vertical-align: middle;
}

div#mfp_OperationCheck ul li {
	padding: 5px 10px;
}

div#mfp_OperationCheck ul li label {
	text-decoration: underline;
}

@media all and (max-width: 768px) {
	table#mfp_confirm_table tr th {
		white-space: nowrap;
		width: 100px;
	}
}

/* -----------------------------------------
  FORM -- thanks page
----------------------------------------- */
.thanks {
	width: 90%;
	max-width: 900px;
	height: 100vh;
	padding: 0;
	background: url(../images/top/hero_top.jpg) no-repeat center top/cover;
	color: #000;
	line-height: 1;
	border-radius: 10px;
	margin: 10px auto 0;
	position: relative;
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: subpixel-antialiased;
}

.thanks,
.thanks p,
.thankshead p {
	text-align: center;
}

.thanks .thankshead {
	height: auto;
	width: 100%;
	padding: 80px 0;
	margin: 0 auto;
	background: #9cca54;
	-moz-border-top-left-radius: 10px;
	border-top-left-radius: 10px;
	-moz-border-top-right-radius: 10px;
	border-top-right-radius: 10px;
}

.thankshead h3 {
	width: calc(100% - 100px);
	color: #fff;
	font-size: 2rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.5;
	position: absolute;
	top: 44px;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
}

.thanks p span {
	display: inline-block;
}

.thanks .clsBT a {
	display: block;
	position: absolute;
	right: 4rem;
	top: 10px;
	width: 21px;
	color: #fff;
	font-size: 4rem;
}

.thanks .clsBT a:hover {
	text-decoration: none;
}

.thanks .thanksmsg {
	width: 100%;
	background: #fff;
	height: auto;
	line-height: 1.8em;
	margin: 0 auto;
	padding: 2em 0;
}

.thanks .thanksfoot {
	width: 100%;
	background: #9cca54;
	color: #fff;
	font-size: 1.2rem;
	line-height: 2em;
	padding: 1em;
	-moz-border-bottom-left-radius: 10px;
	border-bottom-left-radius: 10px;
	-moz-border-bottom-right-radius: 10px;
	border-bottom-right-radius: 10px;
	margin: 0 auto;
}

.thanks .thanksfoot span {
	display: inline-block;
}

.thanks span.ssmbr:before {
	content: "\A";
	white-space: pre;
}

@media only screen and (min-width: 480px) {
	.thanks .thanksfoot {
		padding-top: 1.8em;
	}
}

@media only screen and (min-width: 640px) {
	.thanks .thankshead {
		background-position: 60px 60px;
		padding: 120px 0 20px;
	}

	.thankshead h3 {
		font-size: 2.4rem;
		top: 70px;
	}

	.thanks .thanksmsg {
		padding: 60px 0;
	}
}

@media all and (max-width: 768px) {
	.thanks {
		background: url(../images/top/hero_top.jpg) no-repeat center top/100% 100%;
	}
}

/* -----------------------------------------
  Form -- custom
----------------------------------------- */
form {
	margin-top: 40px;
	margin-bottom: -40px;
}

input,
textarea {
	width: 100% !important;
	height: 2.7em;
	border: #fff 1px solid;
	padding: 1em;
	margin-top: 1.5em;
}

textarea {
	min-height: 11em !important;
}

button {
	width: 200px;
	height: 2.8em;
	padding-top: 0.2em;
	background: #000;
	color: #fff;
	font-size: 1.6rem;
	margin-top: 50px;
	border: solid 2px #fff;
}

button:hover {
	opacity: 0.7;
}

.mfp_buttons button {
	margin-left: 20px;
}

::-webkit-input-placeholder {
	color: #f2f2f2;
}

:-ms-input-placeholder {
	color: #f2f2f2;
}

::placeholder {
	color: #aaa;
}

@media all and (min-width: 768px) {
	.c-form__list div {
		width: 46%;
	}
}
