/*
Theme Name: landport
Text Domain: landport
*/

:root {
	--tx-1: #222222;
	--tx-2: #ffffff;
	--tx-3: #666666;
	--tx-4: #990000;
	--bg-1: #00124e;
	--bg-2: #ffffff;
	--bg-3: #f18101;
	--bg-4: #e3d5b5;
	--bg-5: #ff6600;
	--bg-6: #6b1686;
	--bg-7: #efefef;
	--bg-8: #06c755;
	--bg-9: #d8dd00;
	--lk-1: #ff6600;
	--lk-2: #ff9900;
	--bg: #00124e;
	--gold-rgb: 208, 164, 56;
	/* #D0A438 */
}

html {
	font-size: 62.5%;
	height: 100%;
}

body {
	background-color: var(--bg-2);
	color: var(--tx-1);
	display: flex;
	flex-direction: column;
	font-family: 'Noto Sans JP', sans-serif;
	font-feature-settings: "palt" on;
	font-variant-alternates: proportional-width;
	font-size: 1.6rem;
	justify-content: space-between;
	line-height: 1.6;
	margin: 0;
	min-height: 100vh;
	padding: 0;
	position: relative;
	z-index: 0;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

* {
	margin-block-start: 0;
	margin-block-end: 0;
	-webkit-margin-before: 0;
	-webkit-margin-end: 0;
}

.serif {
	font-family: 'Noto Serif JP', serif;
}

.oblique {
	font-style: oblique;
}

figure {
	margin-inline-start: 0;
}

img {
	display: block;
	height: auto;
	margin: 0;
	padding: 0;
	width: 100%;
}

ul {
	list-style: none;
	padding: 1rem;
	margin: 0;
}

ul li a {
	display: block;
	padding: 1rem;
	text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.4;
	margin: 0.2em 0;
}

h1 {
	font-size: 2.8rem;
}

h2 {
	font-size: 2rem;
}

h3 {
	font-size: 1.9rem;
}

h4 {
	font-size: 1.8rem;
}

h5 {
	font-size: 1.7rem;
}

h6 {
	font-size: 1.6rem;
}

p {
	margin: 0 0 1em 0;
}

a {
	color: var(--lk-1);
}

.button,
a button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
	align-items: center;
	background-color: var(--lk-1);
	border: solid 3px var(--lk-1);
	border-radius: 6px;
	box-sizing: border-box;
	cursor: pointer;
	color: var(--tx-2);
	display: block;
	font-size: 1.6rem;
	font-weight: 900;
	justify-content: center;
	margin: 0 auto;
	line-height: 1.6;
	padding: 1rem 2rem;
	text-align: center;
	text-decoration: none;
	width: fit-content;
}

.button_delete .button,
.button_edit .button {
	display: block;
	font-size: 1.4rem;
	margin: .5rem auto;
	padding: .5rem 2rem;
	width: fit-content;
}

.button.button_regist {
	background-color: var(--bg-8);
	border-style: none
}

.button[disabled],
a button[disabled],
button[disabled],
input[type="submit"][disabled],
input[type="reset"][disabled],
input[type="button"][disabled] {
	opacity: .5;
	pointer-events: none;
}

.button:focus,
.button:hover,
button:focus,
button:hover,
input[type="submit"]:focus,
input[type="submit"]:hover,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="button"]:focus,
input[type="button"]:hover {
	filter: opacity(90%);
}

.button.button_sbsc {
	background-color: var(--bg-5);
	border-color: var(--bg-5);
	color: var(--tx-2);
	font-weight: normal;
	max-width: 300px;
	width: 100%;
}

.button.button_back_to_top {
	max-width: 300px;
	width: 100%;
}

.button.button-survey {
	background-color: var(--bg-9);
	border-color: var(--bg-9);
	color: var(--bg-6);
}

.button-wrapper {
	margin: 5rem auto;
	text-align: center;
}

.grid+.button-wrapper {
	padding-top: 3rem;
}

body.page-template-page-og_vote .grid+.button-wrapper {
	padding-top: 5rem;
}

textarea,
select,
input {
	background-color: var(--bg-2);
	border: var(--tx-3) solid 1px;
	border-radius: .4rem;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--tx-1);
	font-size: 1.6rem;
	margin: 0 0 .5rem 0;
	padding: .8rem 1.2rem;
}

input[type="text"],
input[type="email"],
input[type="password"] {
	min-width: 100%;
}

.form-contents {
	color: var(--tx-1);
	margin: auto;
}

.submit {
	color: var(--tx-1);
	margin-top: 5rem;
	text-align: center;
}

.logout {
	text-align: center;
}

.logout a {
	background-color: var(--bg-2);
	border: 2px solid var(--lk-1);
	border-radius: 6px;
	display: inline-block;
	font-size: 1.4rem;
	font-weight: bold;
	margin: 3rem auto;
	padding: 1rem 3rem;
	text-align: center;
	text-decoration: none;
}

hr {
	border: 0;
	border-bottom: 1px solid var(--bg-3);
	margin: 1rem auto;
}

table {
	border-collapse: collapse;
	width: 100%
}

td,
th {
	text-align: left;
	padding: .5rem;
}

table caption {
	font-weight: bold;
	margin-bottom: .5rem;
}

textarea {
	max-width: 100vw;
}

a:hover img {
	filter: opacity(90%);
}

article h2 a,
.article h2 a {
	color: var(--tx-3);
	text-decoration: none;
}

nav a {
	padding-right: 0.5em;
}

img {
	display: block;
	height: auto;
}

fieldset {
	background-color: transparent;
	border-color: transparent;
	border-radius: 6px;
	border-width: 0;
	margin: auto;
	padding: 2rem 3rem;
	width: fit-content;
}

legend {
	font-size: 2.2rem;
	font-weight: bold;
	margin: 0 0 -.5em 0;
	padding: 0 .5rem;
	text-align: center;
}

.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.error {
	color: var(--tx-1);
	font-weight: bold;
	margin: 5rem auto;
	max-width: 100vw;
}

@media screen and (min-width: 50rem) {
	.error {
		max-width: 50rem;
	}
}

.bold {
	font-weight: bold;
}

.align-center {
	text-align: center;
}

.box-center {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: calc(100vh - 36rem);
	justify-content: center;
	width: 100%;
}

.mb-3rem {
	margin-bottom: 3rem !important;
}

.mb-5rem {
	margin-bottom: 5rem !important;
}

.mt-3rem {
	margin-top: 3rem !important;
}

.mt-5rem {
	margin-top: 5rem !important;
}

.pb-3rem {
	padding-bottom: 3rem !important;
}

.pb-5rem {
	padding-bottom: 5rem !important;
}

.pt-3rem {
	padding-top: 3rem !important;
}

.pt-5rem {
	padding-top: 5rem !important;
}

.gtranslate_wrapper {
	max-width: 100vw;
}

.gt_switcher_wrapper {
	display: flex;
	gap: 5px;
	pointer-events: auto;
	position: fixed;
	right: 8px !important;
	top: 8px !important;
	z-index: 999999;
}

.gt_switcher_wrapper img {
	border: solid 1px #ccc;
	filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.5));
	max-width: 28px;
}

.pc {
	display: inherit;
}

.sp {
	display: none;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #eee;
	clip: auto !important;
	clip-path: none;
	color: #444;
	display: block;
	font-size: 1em;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/*-------------------------
メニュー
-------------------------*/
.hamburger {
	background-color: rgba(98, 16, 122, 0.8);
	border-radius: 6px;
	cursor: pointer;
	height: 30px;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	left: 5px;
	padding: 0 6px;
	position: fixed;
	top: 5px;
	width: 36px;
	z-index: 1001;
}

.hamburger span {
	display: block;
	height: 2px;
	background: var(--bg-2);
	border-radius: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease;
}

.hamburger.open span:nth-child(1) {
	transform: rotate(45deg) translate3d(5px, 5px, 0);
}

.hamburger.open span:nth-child(2) {
	opacity: 0;
}

.hamburger.open span:nth-child(3) {
	transform: rotate(-45deg) translate3d(6px, -6px, 0);
}

.menu.mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--bg-1);
	padding: 5rem 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 1000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}

.menu.mobile-menu.open {
	opacity: 1;
	pointer-events: all;
}

.menu ul {
	align-items: center;
	display: flex;
	gap: 20px;
	flex-direction: column;
	justify-content: center;
}

.menu ul li a {
	align-items: center;
	border-radius: 6px;
	color: var(--tx-1);
	display: flex;
	justify-content: center;
	margin: 0;
	min-width: 230px;
	padding: 1.5rem;
	position: relative;
	transition: transform 0.2s ease;
	width: 100%;
}

.menu ul li a.menu-photo-cotest {
	background-color: var(--lk-1);
}

.menu ul li a.menu-oogiri-cotest {
	background-color: var(--bg-6);
}

.menu ul li a.menu-survey {
	background-color: var(--bg-9);
}

.menu.pc-menu {
	display: none;
}

.menu.pc-menu.front-page {
	display: flex;
}

.menu ul li a:hover {
	transform: translate3d(0, 3px, 0);
}

.menu ul li a span {
	color: var(--bg-2);
	display: inline-block;
	font-size: 1.7rem;
	font-weight: 900;
	line-height: 1.4;
	position: relative;
	text-align: center;
	width: 100%;
}

.menu ul li a.menu-survey span {
	color: var(--bg-6);
}

html:lang(en) .menu ul li a span br {
	display: none;
}

@media (min-width: 1024px) {

	.hamburger,
	.menu.mobile-menu {
		display: none;
	}

	.menu.pc-menu {
		align-items: center;
		background-color: transparent;
		display: flex;
		flex-direction: column;
		justify-content: center;
		position: relative;
		width: 230px;
		z-index: 1;
	}

	.menu.pc-menu.fixed {
		position: fixed;
		top: 50%;
		left: calc(50% - 390px);
		transform: translate3d(calc(50% - 230px), -50%, 0);
	}

	.menu.pc-menu.front-page {
		display: none;
	}

	.menu.pc-menu.front-page ul li a {
		width: 100%;
	}

}

/*-------------------------
ヘッダー
-------------------------*/
header {
	margin: 35px 0 -96px 0;
	max-width: 100vw;
	padding: 0;
	position: relative;
	z-index: 100;
}

@media screen and (max-width: 500px) {
	header {
		margin: 35px 0 -21.5% 0;
	}
}

.header-inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0 auto;
	padding: 0;
}

.logo {
	background-color: var(--bg-2);
	margin: 0 auto;
	width: 90%;
}

@media screen and (min-width: 480px) {
	.logo {
		max-width: 480px;
	}
}

.site-title {
	line-height: 1;
	margin: 0 auto;
	padding: 0;
	max-width: 98%;
	width: 98%;
}

@media screen and (min-width: 480px) {
	.site-title {
		max-width: 480px;
	}
}

.site-title a {
	aspect-ratio: 980 / 360;
	background-image: url('../img/lpc2025_title.png');
	background-position: 50% 0%;
	background-repeat: no-repeat;
	background-size: contain;
	display: block;
	line-height: 1;
	margin: 0 auto -46px auto;
	max-width: 100vw;
	overflow: hidden;
	padding: 0;
	position: relative;
	text-indent: 100%;
	white-space: nowrap;
	width: 100%;
	z-index: 1;
}

.site-title a:hover a {
	filter: brightness(90%) contrast(100%) saturate(130%);
}

html:lang(en) .site-title a {
	background-image: url('../img/lpc2025_title_en.png');
}

.campaign-date-wrapper {
	margin: 0;
	padding: 0;
	width: 100%;
	z-index: auto;
}

.campaign-date-jp,
.campaign-date-en {
	align-items: baseline;
	color: var(--tx-2);
	display: flex;
	font-size: 1.4rem;
	font-weight: 300;
	margin: 0 auto;
	padding: 46px 0 10px 0;
	text-align: center;
	justify-content: center;
	text-shadow: 0 0 0 var(--bg-1), 1px 1px 2px var(--bg-1), -1px -1px 2px var(--bg-1), 0 2px 2px var(--bg-1), 0 -2px 2px var(--bg-1);
	width: 100%;
}

@media screen and (min-width: 500px) {

	.campaign-date-jp,
	.campaign-date-en {
		max-width: 500px;
	}
}

.campaign-date-en {
	display: none;
}

html:lang(en) .campaign-date-jp {
	display: none;
}

html:lang(en) .campaign-date-en {
	display: flex;
	font-weight: 900;
	margin: 0 auto;
	max-width: calc(100vw - 20px);
	width: calc(100vw - 20px);
}

.campaign-date-jp span {
	font-size: 2.2rem;
	font-weight: 700;
}

.campaign-date-jp span.campaign-date-wd {
	align-items: center;
	background-color: var(--bg-2);
	border-radius: 50%;
	color: #01114d;
	display: flex;
	font-size: xx-small;
	font-weight: 800;
	height: 1.9em;
	justify-content: center;
	line-height: 1;
	margin: -5px 0 0 0;
	text-shadow: none;
	width: 1.9em;
}

#gtranslate_selector,
#gtranslate_selector option {
	font-size: 1.2rem !important;
}

/*-------------------------
コンテンツ
-------------------------*/
main {
	display: grid;
	position: relative;
	z-index: 0;
}

.content {
	background-color: var(--bg-1);
	margin: 0;
	min-height: calc(100vh - 14rem);
	padding: 20% 0 1rem 0;
	position: relative;
	z-index: 10;
}

@media screen and (min-width: 500px) {
	.content {
		padding: 100px 0 1rem 0;
	}
}

/*
.content:before {
	background-image: url('../img/lpc2025_bg2.jpg');
	background-size: 120% auto;
	background-position: 50% 0%;
	background-repeat: repeat-y;
	content: '';
	inset: 0;
	opacity: 0.8;
	position: absolute;
	z-index: -1;
}

@media (min-width: 601px) {
	.content:before {
		background-size: 600px auto;
	}
}
*/

.content-inner {
	color: var(--tx-1);
	margin: 0 auto;
	min-height: 370px;
	padding: 0 0 2rem 0;
	position: relative;
	z-index: 1;
}

.wp-block-heading {
	color: var(--tx-2);
	margin: 5rem 0;
}

.req {
	color: var(--tx-4);
}

.div_text {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
}

section {
	border-radius: 6px;
	color: var(--tx-2);
	display: block;
	margin: 0 auto;
	padding: 0;
	width: calc(100% - 6%);
}

@media screen and (min-width: 500px) {

	section {
		max-width: 500px;
	}
}

.section-sub {
	background-color: rgba(255, 255, 255, 0.9);
	color: var(--tx-1);
	padding: 20px;
}

section p {
	color: var(--tx-2);
}

section p.wpmem_msg {
	margin: auto;
}

section.section-sub p {
	color: var(--tx-1);
}

.notice {
	background-color: var(--bg-2);
	border-radius: 6px;
	color: var(--tx-1);
	font-size: 1.3rem;
	line-height: 1.3;
	padding: 2rem;
}

body.profile .disclaimer {
	display: none;
}

.login-notice h2 {
	color: var(--tx-1);
	margin-bottom: 6rem;
}

.req-text {
	text-align: center;
}

section #wpmem_login input[type=password],
section #wpmem_login input[type=text],
section #wpmem_reg input[type=date],
section #wpmem_reg input[type=email],
section #wpmem_reg input[type=number],
section #wpmem_reg input[type=password],
section #wpmem_reg input[type=text],
section #wpmem_reg input[type=url],
section #wpmem_reg textarea,
section #wpmem_reg select {
	border: var(--tx-3) solid 1px;
}

section .login_status,
section .wpmem_msg {
	display: block;
	margin: 5rem auto;
	max-width: 30em;
	text-align: left;
}

@media screen and (min-width: 30em) {

	section .login_status,
	section .wpmem_msg {
		max-width: 30em;
	}
}

section #wpmem_msg,
section .wpmem_msg {
	background: transparent;
	border-style: none;
	margin: 5rem auto;
	text-align: center;
}

section #wpmem_login,
section #wpmem_reg {
	color: var(--tx-2);
}

section #wpmem_login fieldset,
section #wpmem_reg fieldset {
	color: var(--tx-2);
	margin: 5rem auto;
}

section #wpmem_login .button_div,
section #wpmem_reg .button_div {
	display: flex;
	justify-content: center;
	text-align: center;
}

.input-wrapper {
	align-items: stretch;
	display: flex;
	margin: 0 0 2rem 0;
	flex-direction: column;
	justify-content: stretch;
}

.input-wrapper h3 {
	font-size: 1.6rem;
	font-weight: normal;
}

.button_wrapper {
	margin: 1rem 0 0 0;
}

.inactive img {
	filter: opacity(30%) grayscale(100%);
}

.file_drag_drop_area {
	background-color: var(--bg-2);
	border: var(--tx-3) dashed 1px;
	border-radius: .4rem;
	color: var(--tx-1);
	margin: 0 0 .5rem 0;
	padding: 3rem 0;
	text-align: center;
	width: -webkit-fill-available;
}

input[type="file"] {
	color: var(--tx-2);
	display: block;
	left: 0;
	margin: 0;
	min-width: fit-content;
	opacity: 0;
	position: absolute;
	padding: 0;
	top: 0;
	width: calc(100% - 6rem);
}

.file_input_wrapper {
	background: var(--bg2);
	border: var(--lk-1) solid 1px;
	color: var(--lk-1);
	cursor: pointer;
	display: inline-block;
	font-weight: normal;
	margin: 0 auto;
	padding: 1rem 0;
	position: relative;
}

.filename {
	color: var(--lk-1);
	display: inline-block;
	padding: 0 2rem;
	width: fit-content;
}

.poted_message {
	margin: 5rem 0;
}

.register {
	margin: auto;
	width: fit-content;
}

#rememberme {
	text-align: right;
	width: fit-content !important;
}

section #wpmem_login,
section #wpmem_msg,
section #wpmem_reg,
section .wpmem_msg {
	width: 90%;
}

section #wpmem_login,
section #wpmem_reg {
	margin: auto;
}

section #wpmem_login .link-text {
	text-align: center !important;
}

section #wpmem_login_form fieldset,
section #wpmem_register_form fieldset {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 0;
	justify-content: center;
}

section #wpmem_login_form fieldset legend,
section #wpmem_register_form fieldset legend {
	margin: 5rem 0;
	width: 100%;
}

section #wpmem_login legend,
section #wpmem_reg legend {
	font-size: 3rem;
	margin: 5rem 0;
}

section #wpmem_login_form fieldset label,
section #wpmem_login_form fieldset input,
section #wpmem_register_form fieldset label,
section #wpmem_register_form fieldset input {
	width: 45%;
}

section #wpmem_login_form fieldset .div_text,
section #wpmem_login_form fieldset .div_select,
section #wpmem_register_form fieldset .div_text,
section #wpmem_register_form fieldset .div_select {
	width: 55%;
}

section #wpmem_login_form fieldset .button_div,
section #wpmem_register_form fieldset .button_div {
	align-items: center;
	display: flex;
	justify-content: center;
	width: 100%;
}

section #wpmem_login_form fieldset .button_div label,
section #wpmem_register_form fieldset .button_div label {
	width: 14em;
}

section #wpmem_login legend,
section #wpmem_reg legend {
	margin: 5rem 0;
}

section .wpmem_message_wrapper {
	margin: 5rem 0;
}

section .has-text-align-center.has-medium-font-size {
	display: block;
	font-weight: normal;
	margin: 5rem auto;
	max-width: 30em;
}

@media screen and (min-width: 30em) {
	section .has-text-align-center.has-medium-font-size {
		max-width: 30em;
	}
}

section .has-text-align-center.has-medium-font-size strong {
	font-weight: normal;
}

.link-text {
	text-align: center;
	width: 100%;
}

.theme {
	text-align: center;
}

@media screen and (min-width: 600px) {
	.theme img {
		max-width: 600px;
	}
}

.notice dt {
	clear: left;
	float: left;
	white-space: nowrap;
	width: 2em;
}

html:lang(en) .notice dt {
	width: 3.5em;
}

.notice dd {
	margin-left: 2.1em;
}

html:lang(en) .notice dd {
	margin-left: 3.5em;
}

section ul {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: auto;
	width: fit-content;
}

.posted_message {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 5rem auto;
}

.posted_message2 {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 5rem auto;
}

.posted_photo {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: auto;
}

@media screen and (min-width: 480px) {
	.posted_photo {
		max-width: 480px;
	}
}

.posted_photo img {
	display: block;
	height: auto;
}

@media screen and (min-width: 480px) {
	.posted_photo img {
		max-width: 480px;
	}
}

.cp_columns_with_gap {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 5rem;
	justify-content: center;
	margin: 5rem 0 0 0;
}

.cp_cond {
	background-color: var(--bg-2);
	border-radius: 6px;
	color: var(--tx-1);
	margin: 0 auto;
	padding: 0;
	width: 100%;
}

.cp_cond img {
	display: inline-block;
	height: auto;
	margin: 0 auto;
}

@media screen and (min-width: 640px) {
	.posted_photo img {
		max-width: 640px;
	}
}

.cp_cond ul {
	display: list-item;
	list-style: none;
	padding: 0 0 2rem 0;
	width: auto;
}

.cp_cond ul::marker {
	display: none;
}

.cp_cond ul li:before {
	content: '●';
	display: inline-block;
	font-size: 1.4rem;
	margin: 0 .2rem 0 0;
}

.cp_cond ul li {
	list-style: none;
	margin: 0 0 0 0.8rem;
	padding: 0 2.5rem;
	text-indent: -0.8rem;
}

.cp_cond p {
	color: var(--tx-1);
	display: block;
	padding: 1rem;
}

.cp_cond_sbsc h4 {
	background-color: #ed6d01;
	border-radius: 6px 6px 0 0;
	color: #fff;
	font-weight: bold;
	line-height: 1;
	margin: 0 0 1rem 0;
	padding: 1rem 2rem;
}

.cp_cond_sbsc ul li:before {
	color: #ed6d01;
}

.cp_cond_vote h4 {
	background-color: #6b1686;
	color: #fff;
	font-weight: bold;
	line-height: 1;
	margin: 0 0 1rem 0;
	padding: 1rem 2rem;
}

.cp_cond_vote ul li:before {
	color: #6b1686;
}

#title-count,
#content-count {
	text-align: right;
}

#oogiri_1,
#oogiri_2,
#oogiri_3 {
	width: 100%;
}

.oogiri_wrapper {
	background-color: var(--bg-2);
	border-radius: 1.2rem;
	margin: 5rem auto;
}

.oogiri {
	padding: 3rem;
}

.oogiri h3 {
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
}

.oogiri .odai {
	font-size: 2rem;
	font-weight: 900;
	margin-bottom: 3rem;
}

.oogiri_exp {
	margin: 2rem 0;
}

.oogiri_exp p {
	display: block;
	font-size: 1.6rem;
	margin: 2rem 0;
}

.oogiri_exp p.oogiri_exp_small {
	font-size: 1.3rem;
	margin: 2rem 0;
}

.div_text,
.div_select {
	margin-bottom: 1em;
}

.button_div {
	text-align: center;
}

.oogiri-odai {
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
}

.odai1,
.odai2,
.odai3 {
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
}

.kaitou {
	margin: 0 0 5rem 0;
}

.kaitou .bold {
	font-size: 2rem;
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
}

#kaitou_1,
#kaitou_2,
#kaitou_3 {
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
	width: 100%;
}

.joushikimaku {
	background-image: linear-gradient(90deg, #f05401 16.67%, #000000 16.67%, #000000 33.33%, #017824 33.33%, #017824 50%, #f05401 50%, #f05401 66.67%, #000000 66.67%, #000000 83.33%, #017824 83.33%, #017824 100%);
	background-size: 120.00px 120.00px;
	height: 2rem;
	margin: 0 -1rem;
}

.joushikimaku.bottom {
	bottom: 0;
	left: 1rem;
	position: absolute;
	right: 1rem;
	top: 100%;
}

.oogiri-kaitou p {
	color: var(--tx-1);
	font-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
	font-size: 2rem;
	text-align: center;
}

.oogiri-box {
	margin: 0 0 6rem 0;
}

.odai-box {
	background-color: rgba(255, 255, 255, .3);
	border: solid 1px #ccc;
	cursor: pointer;
	margin: 0 0 1rem 0;
	position: relative;
}

.odai-box:before {
	color: rgb(0, 167, 60);
	content: "▶";
	font-size: 3rem;
	position: absolute;
	right: 2.5rem;
	top: calc(50% - 2.5rem);
	transition: all 0.3s;
}

.odai-box.active:before {
	transform: rotate(90deg);
	transform-origin: 50% 50% 0;
}

.kaitou-box {
	display: none;
}

.archive-title {
	text-align: center;
	margin: 5rem auto;
}

/*
.archive-title h2 span::before {
	background-image: url('../img/lpc2025_bell.png');
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	content: '';
	display: inline-block;
	height: 37px;
	left: -20px;
	position: absolute;
	top: -10px;
	width: 55px;
}
*/
.archive-title h1 span,
.archive-title h2 span {
	background-color: var(--bg-1);
	border-radius: 6px;
	color: var(--bg-2);
	display: inline-block;
	font-size: 2.4rem;
	font-weight: 900;
	line-height: 1.2;
	padding: 0.5em 1em;
	position: relative;
	text-align: center;
	text-indent: 0;
	width: auto;
}

.archive-title.survey_results h1 span,
.archive-title.survey_results h2 span {
	background-color: var(--bg-9);
	color: var(--bg-6);
}

.postinfo {
	color: var(--tx-1);
	font-size: 1.4rem;
	font-weight: normal;
}

.postinfo p {
	color: var(--tx-1);
}

.postinfo small {
	font-size: 1.3rem;
	font-weight: normal;
}

.postinfo.postinfo-facility {
	font-size: 1.3rem;
	font-weight: normal;
}

.postinfo.postinfo-facility small {
	font-size: 1.3rem;
	font-weight: normal;
}

.postinfo.photo-contest-title {
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: .5rem;
}

.postinfo.photo-contest-content {
	font-size: 1.4rem;
	font-weight: normal;
}

.photo-contest-card {
	height: 100%;
}

.photo-contest-card hr {
	border: 0;
	border-bottom: 1px solid var(--bg-4);
	margin: 1rem auto 1.5rem auto;
}

.photo-contest-postinfo-wrapper {
	align-items: stretch;
	border-radius: 6px;
	background-color: var(--bg-2);
	border: var(--bg-4) solid 1px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: 100%;
}

.photo-contest-postinfo-top {
	margin: 1rem 1rem 0 1rem;
}

.photo-contest-postinfo-bottom {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	margin: .5rem 1rem;
}

body.post-type-archive-photo_contest_1 .photo-contest-postinfo-bottom .button_delete,
body.post-type-archive-photo_contest_2 .photo-contest-postinfo-bottom .button_delete {
	align-self: center;
}

.oogiri-card {
	background: #fffef9;
	border: var(--bg-4) solid 1px;
	height: 100%;
	padding: 0 1rem;
	position: relative;
}

.oogiri-postinfo-wrapper {
	align-items: stretch;
	color: var(--tx-1);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	height: calc(100% - 40px);
	margin: 1.5rem 0;
	min-height: 25rem;
}

.oogiri-card hr {
	border: 0;
	border-bottom: 1px solid var(--bg-4);
	margin: 1rem auto 1.5rem auto;
}

.oogiri-postinfo-bottom {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	margin: .5rem 1rem;
}

.oogiri-postinfo-bottom .button_delete {
	align-self: center;
}

.grid {
	display: grid;
	gap: 5rem 3rem;
	grid-auto-rows: auto;
	grid-template-columns: repeat(auto-fit, minmax(28rem, 28rem));
	justify-content: center;
	margin: auto;
}

@media screen and (min-width: 90rem) {
	.grid {
		max-width: 90rem;
	}
}

.grid-wrapper {
	position: relative;
	margin: auto;
	z-index: 0;
}

@media screen and (min-width: 640px) {
	.grid-wrapper {
		max-width: 640px;
	}
}

.cover {
	background: rgb(255, 255, 255);
	background: linear-gradient(0deg, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0) 100%);
	content: '';
	display: block;
	height: 101%;
	position: absolute;
	width: 100%;
	z-index: 2;
}

.vote-button {
	align-items: center;
	display: flex;
	justify-content: flex-end;
}

.vote-alert {
	position: relative;
	z-index: 1;
}

.vote-alert-cover {
	bottom: 0;
	height: 100%;
	left: 0;
	cursor: pointer;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	z-index: 2;
}

.grid article img,
.grid .article img {
	aspect-ratio: 4 / 3;
	display: block;
	object-fit: cover;
}

.page-numbers-wrapper {
	text-align: center;
}

.page-numbers {
	align-items: center;
	display: flex;
	flex-direction: row;
	list-style-type: none;
	margin: 2rem auto;
	padding: 0;
	justify-content: center;
	text-align: center;
}

.page-numbers li {
	display: inline-block;
	font-weight: bold;
	line-height: 1;
	margin: 0;
	margin: 1px;
	text-align: center;
	width: 5.5rem;
}

.page-numbers li a {
	background: #fff;
	border: 2px solid var(--lk-1);
	border-radius: 6px;
	display: inline-block;
	text-decoration: none;
	line-height: 1;
	padding: .5rem 1.5rem;
}

/*-------------------------
投票アンケート用モーダル
-------------------------*/
.modal {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	opacity: 0;
	padding: 0;
	position: fixed;
	top: 0;
	transition: 0.3s opacity ease, 0s visibility 0.3s linear;
	left: 0;
	visibility: hidden;
	width: 100%;
	z-index: 99;
}

.modal.is-open {
	opacity: 1;
	transition: 0.3s opacity ease, 0s visibility 0s linear;
	visibility: visible;
}

.modal__content {
	background-color: rgb(202, 218, 41);
	border: solid 8px #fff;
	border-radius: 3rem;
	flex: 0 1 640px;
	max-height: 100%;
	padding: 0;
	position: relative;
	width: 100%;
	-webkit-overflow-scrolling: touch;
	z-index: 2;
}

@media screen and (min-width: 640px) {
	.modal__content {
		max-width: 640px;
	}
}

.modal__content img {
	border-radius: 3rem 3rem 0% 0%;
	margin: 0 0 1rem 0;
}

.modal__content a {
	color: rgb(34, 23, 20);
	display: block;
	font-size: 2rem;
	font-weight: bold;
	margin: 0 auto 1rem auto;
}

.modal__content a:last-of-type {
	margin: 0 auto 2rem auto;
}

.modal__content a:after {
	color: rgb(34, 23, 20);
	content: '\025b6';
	display: inline-block;
	margin: 0 0 0 .5rem;
}

.modal__bg {
	background-color: rgba(0, 0, 0, 0.8);
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	z-index: 1;
	width: 100%;
}

.modal__open,
.modal__close {
	display: inline-block;
	margin: 0 auto 3rem auto;
}

.dialog {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	opacity: 0;
	padding: 0;
	position: fixed;
	top: 0;
	transition: 0.3s opacity ease, 0s visibility 0.3s linear;
	left: 0;
	visibility: hidden;
	width: 100%;
	z-index: 99;
}

.dialog.is-open {
	opacity: 1;
	transition: 0.3s opacity ease, 0s visibility 0s linear;
	visibility: visible;
}

.dialog__content {
	background-color: rgb(202, 218, 41);
	border: solid 8px #fff;
	border-radius: 3rem;
	filter: drop-shadow(0px 3px 10px rgba(0, 0, 0, 0.6)) drop-shadow(0px 0px 30px rgba(0, 0, 0, 0.6));
	padding: 2rem 2rem 0.5rem 2rem;
	position: relative;
	width: fit-content;
	z-index: 99;
}

.dialog__content a {
	color: rgb(34, 23, 20);
	display: block;
	font-size: 2rem;
	font-weight: bold;
	margin: 0 auto 1rem auto;
}

.dialog__content a:after {
	color: rgb(34, 23, 20);
	content: '\025b6';
	display: inline-block;
	margin: 0 0 0 .5rem;
}

.enquete-link {
	background-color: var(--bg-3);
	border-radius: 0.6rem;
	bottom: 2rem;
	display: inline-block;
	display: none;
	filter: drop-shadow(0px 6px 6px rgba(0, 0, 0, .6));
	left: 2rem;
	opacity: 0;
	position: fixed;
	visibility: hidden;
	z-index: 99;
}

.enquete-link.is-open {
	opacity: .8;
	transition: 0.3s opacity ease, 0s visibility 0s linear;
	visibility: visible;
}

.enquete-link.is-open:hover {
	opacity: 1;
}

.enquete-link a {
	color: var(--tx-2);
	display: block;
	padding: 1.5rem 2rem 1.8rem 2.4rem;
	line-height: 1;
}

.enquete-link a:after {
	color: var(--tx-2);
	content: '\025b6';
	display: inline-block;
	margin: 0 0 0 .5rem;
}

/*-------------------------
アンケート
-------------------------*/

.survey-progress {
	background: #f0f0f0;
	padding: 15px;
	border-radius: 8px;
	margin-bottom: 30px;
}

.progress-bar {
	width: 100%;
	height: 20px;
	background: #e0e0e0;
	border-radius: 10px;
	overflow: hidden;
	margin: 10px 0;
}

.progress-fill {
	height: 100%;
	background: linear-gradient(90deg, #FF6699, #ff77aa);
	transition: width 0.3s ease;
}

.complete-badge {
	color: #FF6699;
	font-weight: bold;
	text-align: center;
}

.already-answered {
	margin-bottom: 30px;
}

.answered-question {
	background: #f1dbd3;
	padding: 15px;
	border-radius: 5px;
	margin-bottom: 10px;
	border-left: 4px solid #FF6699;
}

.answered-question h4 {
	margin: 0 0 10px 0;
	color: #FF6699;
}

.survey-form-container {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 30px;
}

.question-item {
	margin-bottom: 30px;
	padding: 20px;
	background: #fafafa;
	border-radius: 5px;
	border: 1px solid #eee;
}

.question-item h4 {
	color: #333;
	margin: 0 0 10px 0;
	font-size: 18px;
}

.question-text {
	font-size: 16px;
	line-height: 1.6;
	margin-bottom: 15px;
	color: #555;
}

.answer-field label {
	display: block;
	margin-bottom: 8px;
	font-weight: bold;
	color: #333;
}

.answer-field textarea {
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.5;
	resize: vertical;
}

.answer-field textarea:focus {
	outline: none;
	border-color: #FF6699;
	box-shadow: 0 0 5px rgba(76, 175, 80, 0.3);
}

.submit-section {
	text-align: center;
	margin-top: 30px;
	padding-top: 20px;
	border-top: 1px solid #eee;
}

.note {
	font-size: 12px;
	color: #666;
	margin-top: 10px;
}

.survey-success {
	background: #d4edda;
	border: 1px solid #c3e6cb;
	color: #155724;
	padding: 15px;
	border-radius: 5px;
	margin-bottom: 20px;
}

.survey-login-required,
.survey-no-questions,
.no-answerable-questions {
	text-align: center;
	padding: 40px;
	background: #f8f9fa;
	border-radius: 8px;
	margin: 0 auto;
	padding: 0 4%;
	width: calc(100% - 8%);
}

@media screen and (min-width: 500px) {

	.survey-login-required,
	.survey-no-questions,
	.no-answerable-questions {
		max-width: 500px;
	}
}

.button.disabled {
	background: #ccc;
	border: solid 1px #ccc;
	color: #666;
	cursor: not-allowed;
	outline: solid 1px #ccc;
	transform: none;
}

.button.disabled:hover {
	background: #ccc;
	transform: none;
}

@media (max-width: 768px) {
	.question-item {
		padding: 15px;
	}

	.answer-field textarea {
		min-height: 100px;
	}
}

/*-------------------------
アンケート結果
-------------------------*/

.results-stats {
	color: var(--tx-2);
	text-align: center;
	margin: 1rem;
}

.answers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 10px;
}

.answer-card {
	align-items: stretch;
	background: var(--bg-2);
	border-radius: 10px;
	border: 1px solid #e9ecef;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 20px;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	max-width: 220px;
}

@media (max-width: 499px) {
	.answers-grid {
		justify-items: center;
		grid-template-columns: 1fr;
	}
}

.question-label {
	background: var(--bg-6);
	color: var(--tx-2);
	border-radius: 6px;
	display: inline-block;
	font-size: 1.2rem;
	font-weight: 300;
	margin-bottom: 10px;
	padding: 6px 12px;
}

.question-text {
	color: var(--tx-2);
	display: inline;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.3;
}

.answer-content {
	background: var(--bg-2);
	border-radius: 6px;
	border: 3px solid var(--bg-4);
	margin: 0 0 10px 0;
	padding: 10px;
}

p.answer-text {
	color: var(--tx-1);
	font-size: 1.4rem;
	font-weight: 900;
	line-height: 1.4;
	margin: 0;
}

p.answer-info {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
	margin: 5px 0 0 0;
}

.user-name {
	color: var(--tx-3);
	font-size: 13px;
	font-weight: 500;
}

.answer-date {
	color: var(--tx-3);
	font-size: 12px;
}

.answer-footer {
	align-items: flex-start;
	border-top: 1px solid var(--bg-4);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 10px 0 0 0;
}

.admin-comment-title {
	color: var(--bg-6);
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
}

.admin-comment {
	color: var(--tx-1);
	font-size: 1.3rem;
	font-weight: 900;
	line-height: 1.3;
	margin: 0;
}

.no-results {
	text-align: center;
	padding: 60px 20px;
	background: var(--bg-2);
	border-radius: 10px;
	color: var(--tx-3);
}

.caption {
	align-items: flex-start;
	display: flex;
	justify-content: space-between;
}

.pre_check {
	align-items: center;
	display: flex;
	justify-content: center;
	margin: 5rem auto 0 auto;
}

body.page-template-page-sbsc_vote.page-vote .pre_check {
	margin: 0 auto 3rem auto;
}

.pre_check img {
	display: inline-block;
}

@media (max-width: 670px) {
	.pre_check img {
		max-width: 670px;
	}
}

/*------------------
会員登録規約
------------------*/
.tos_label {
	margin: -1rem 0 -0.8rem 0;
}

.tos_label img {
	display: block;
	height: auto;
	margin: 0 auto;
}

@media (max-width: 390px) {
	.tos_label img {
		max-width: 390px;
	}
}

.tos {
	color: var(--tx-1);
	font-size: 1.3rem;
	line-height: 1.3;
}

.tos dt {
	font-weight: bold;
}

.tos dd {
	margin-inline-start: 1em;
	margin-inline-end: 1em;
	margin-block-end: 1em;
}

.tos dd dd {
	font-size: 1.2rem;
	line-height: 1.2;
}

.tos_content-inner {
	background-color: #fff;
	border-radius: 6px;
	height: auto;
	margin: 0 auto 20px auto;
	overflow: auto;
	position: relative;
	padding: 20px;
	-webkit-overflow-scrolling: touch;
	width: auto;
}

.tos_link_button {
	background-color: #bf000a;
	background-image: url('../img/tos_bg.png');
	border: 6px double #7c0006;
	border-radius: 8px;
	color: #fff;
	cursor: pointer;
	display: inline-block;
	font-weight: bold;
	font-size: 3rem;
	position: relative;
	padding: 3rem 10rem;
	margin: 5rem auto;
	overflow: hidden;
	text-align: center;
	text-decoration: none;
	transition: 200ms;
	z-index: 10000;
}

.tos_link_button:before {
	position: absolute;
	content: '';
	display: inline-block;
	top: -180px;
	left: 0;
	width: 30px;
	height: 100%;
	background-color: #b5e7ff;
	transition: 300ms;
	animation: shinyshiny 3s ease-in-out infinite;
}

.tos_link_button:hover {
	text-decoration: none;
	box-shadow: none;
	transform: translate3d(0, 3px, 0);
}

@keyframes shinyshiny {
	0% {
		transform: scale(0) rotate(45deg);
		opacity: 0;
	}

	80% {
		transform: scale(0) rotate(45deg);
		opacity: 0.5;
	}

	81% {
		transform: scale(4) rotate(45deg);
		opacity: 0.7;
	}

	100% {
		transform: scale(50) rotate(45deg);
		opacity: 0;
	}
}

body.profile label[for="user_email"] {
	display: none !important;
}

body.profile label[for="user_email"]+div.div_text {
	display: none;
}

body.profile label[for="assigned_giftee_url"] {
	display: none !important;
}

body.profile label[for="assigned_giftee_url"]+div.div_text {
	display: none;
}

/*-------------------------
LINEログイン
-------------------------*/
.line-login-link {
	background-color: #06c755;
	border-radius: 6px;
	color: var(--tx-2);
	display: block;
	font-weight: bold;
	margin: 3rem auto;
	padding: 1rem 2rem;
	text-decoration: none;
	width: fit-content;
}

.line-login-label.linked {
	color: var(--tx-2);
	display: block;
	text-align: center;
}

.line-login-message {
	color: var(--tx-2);
	text-align: center;
}

.line-login-nexturl {
	color: var(--tx-2);
	text-align: center;

}


/*-------------------------
フロントページ
-------------------------*/
body.home .content {
	margin: 0;
}

body.home .content-inner {
	max-width: 100vw;
}

body.home section {
	border-radius: 0;
	width: 100%;
}

.fp-header-wrapper {
	padding: 0 0 10px 0;
}

.fp-header {
	margin: 0 auto;
	width: calc(100% - 20px);
}

@media (min-width: 500px) {
	.fp-header {
		max-width: 500px;
	}
}

.fp-header font {
	line-height: 1.2;
}

.fp-catch {
	color: #dae000;
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0 0 10px 0;
	text-align: center;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
}

.fp-catch span {
	font-size: 3.4rem;
}

.fp-contest {
	align-items: flex-start;
	display: flex;
	gap: 10px;
	justify-content: center;
}

.fp-contest-inner {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fp-photo-contest-title {
	align-items: center;
	background-color: var(--bg-2);
	border: #f18101 solid 2px;
	border-radius: 3rem;
	color: #f18101;
	display: flex;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	flex-direction: column;
	font-weight: 900;
	justify-content: center;
	padding: 3px 0 4px 0;
	position: relative;
	text-align: center;
}

.fp-photo-contest-title span:nth-of-type(1) {
	font-size: 2.8rem;
	line-height: 1;
}

.fp-photo-contest-title span:nth-of-type(2) {
	font-size: 2rem;
	line-height: 1.2;
}

.fp-photo-contest-odai {
	align-items: center;
	aspect-ratio: 1 / 1;
	background-color: #f18101;
	border-radius: 50%;
	color: var(--tx-2);
	display: flex;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-size: 2.2rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1.3;
	margin: 5px 0 0 0;
	padding: 15px 15px 0 15px;
	position: relative;
	text-align: center;
	width: 170px;
}

html:lang(en) .fp-photo-contest-odai {
	font-size: 2.2rem;
}

.fp-photo-contest-odai span:nth-of-type(1) {
	align-items: center;
	aspect-ratio: 1 / 1;
	background-color: #b40004;
	border-radius: 50%;
	color: var(--tx-2);
	display: flex;
	font-size: 1.8rem;
	font-weight: 700;
	justify-content: center;
	left: 0;
	line-height: 1;
	padding: 9px;
	position: absolute;
	top: -6px;
}

.fp-photo-contest-odai:after {
	background-image: url('../img/lpc2025_photo_contest_icon.png');
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	content: '';
	display: inline-block;
	height: 64px;
	position: absolute;
	right: 0;
	top: -10px;
	width: 110px;
}

html:lang(en) .fp-photo-contest-odai br {
	display: none;
}

.fp-oogiri-contest-title {
	align-items: center;
	background-color: var(--bg-2);
	border: #77308e solid 2px;
	border-radius: 3rem;
	color: #77308e;
	display: flex;
	flex-direction: column;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-weight: 900;
	justify-content: center;
	padding: 3px 0 4px 0;
	position: relative;
	text-align: center;
}

.fp-oogiri-contest-title span:nth-of-type(1) {
	font-size: 2.8rem;
	line-height: 1;
}

.fp-oogiri-contest-title span:nth-of-type(2) {
	font-size: 2rem;
	line-height: 1.2;
}

.fp-oogiri-contest-odai {
	align-items: center;
	aspect-ratio: 1 / 1;
	background-color: #77308e;
	border-radius: 50%;
	color: var(--tx-2);
	display: flex;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-size: 1.8rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1.3;
	margin: 5px 0 0 0;
	padding: 10px 15px 0 15px;
	position: relative;
	text-align: center;
	width: 170px;
}

html:lang(en) .fp-oogiri-contest-odai span {
	font-size: 1.6rem;
	line-height: 1.2;
}

.fp-oogiri-contest-odai span:nth-of-type(1) {
	align-items: center;
	aspect-ratio: 1 / 1;
	background-color: #b40004;
	border-radius: 50%;
	color: var(--tx-2);
	display: flex;
	font-size: 1.8rem;
	font-weight: 700;
	justify-content: center;
	left: 0;
	line-height: 1;
	padding: 9px;
	position: absolute;
	top: -6px;
}

.fp-oogiri-contest-odai:after {
	background-image: url('../img/lpc2025_oogiri_contest_icon.png');
	background-size: contain;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	content: '';
	display: inline-block;
	height: 64px;
	position: absolute;
	right: 0;
	top: -10px;
	width: 110px;
}

html:lang(en) .fp-oogiri-contest-odai span br {
	display: none;
}

.fp-line-title {
	color: #dbb544;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-family: 'Jun 501';
	font-size: 2.4rem;
	font-weight: 900;
	padding: 0;
	line-height: 1.2;
	margin: 10px auto 0 auto;
	text-align: center;
}

.fp-line-title span {
	color: #1eaa39;
	font-size: 3.2rem;
}

html:lang(en) .fp-line-text br {
	display: none;
}

.fp-line-button-wrapper {
	margin: 5px auto;
}

.fp-line-button {
	background-color: #1eaa39;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-family: 'Jun 501';
	font-size: 2.5rem;
	font-weight: 900;
	border-radius: 6px;
	color: var(--tx-2);
	display: block;
	margin: 0 auto 20px auto;
	max-width: 360px;
	padding: 15px;
	text-align: center;
	text-decoration: none;
	width: 98%;
}

.fp-line-button:hover {
	opacity: 0.9;
}

.fp-present {
	background: linear-gradient(to right, #B8860B 0%, #FFD700 20%, #DAA520 45%, #FFD700 60%, #B8860B 100%);
	margin: 10px auto;
	padding: 6px;
	width: 80%;
}

@media (min-width: 500px) {
	.fp-present {
		max-width: 500px;
	}
}

.fp-present-wrapper {
	background-color: #d1dd3b;
	padding: 10px 0;
}

.fp-present-copy {
	align-items: center;
	color: #b50003;
	display: flex;
	font-size: 2.4rem;
	font-weight: 900;
	gap: 10px;
	line-height: 1.2;
	justify-content: space-evenly;
	margin: 10px auto 0 auto;
	max-width: fit-content;
	width: calc(100% - 20px);
}

/*
@media (min-width: 500px) {
	.fp-present-copy {
		max-width: 500px;
	}
}
*/

.fp-present-copy-label {
	aspect-ratio: 533 / 560;
	background-image: url('../img/lpc2025_grandprix.png');
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: cover;
	flex: 0 0 200px;
	margin: 0 auto;
	max-width: 100px;
	overflow: hidden;
	text-indent: 200%;
	white-space: nowrap;
	width: 100%;
}

html:lang(en) .fp-present-copy-label {
	background-image: url('../img/lpc2025_grandprix_en.png');
}

.fp-present-copy-text {
	flex: 1 1 0;
}

html:lang(en) .fp-present-copy-text br {
	display: none;
}

.fp-present-copy span {
	font-size: 3.2rem;
	letter-spacing: -0.03em;
}

html:lang(en) .fp-present-copy span {
	letter-spacing: 0;
}

.fp-present-copy span.small {
	font-size: 2.4rem;
	letter-spacing: -0.15em;
}

html:lang(en) .fp-present-copy span.small {
	letter-spacing: 0;
}

.fp-present-copy span.middle {
	font-size: 2.4rem;
}

html:lang(en) .fp-present-copy span.middle {
	letter-spacing: 0;
}

.fp-present-copy span.narrow {
	letter-spacing: -0.15em;
}

html:lang(en) .fp-present-copy span.narrow {
	letter-spacing: 0;
}

.fp-present-copy span.narrower {
	letter-spacing: -0.3em;
}

html:lang(en) .fp-present-copy span.narrower {
	letter-spacing: 0;
}

@media (min-width: 500px) {
	.fp-present {
		max-width: 500px;
	}
}

.fp-present a {
	color: var(--tx-2);
	text-decoration: none;
}

.fp-present-img {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: center;
	line-height: 1;
	margin: 0;
	padding: 0;
	position: relative;
}

.fp-present-img small {
	bottom: 5px;
	display: inline-block;
	font-size: xx-small;
	font-style: normal !important;
	font-weight: 400;
	position: absolute;
	right: 3px;
	text-align: right;
	text-shadow: 0px 0px 2px #000, 0px 0px 2px #000, 0px 0px 2px #000;
}

.fp-present-text {
	align-items: center;
	background: linear-gradient(to bottom, #651477, #ef8200);
	display: flex;
	flex-direction: column;
	font-size: 2.7rem;
	font-weight: 600;
	justify-content: center;
	letter-spacing: 0;
	line-height: 1.2;
	padding: 10px 35px 10px 5px;
	position: relative;
	text-align: left;
	text-shadow: 0px 0px 3px #000, 0px 0px 3px #000, 0px 0px 3px #000;
}

html:lang(en) .fp-present-text {
	line-height: 1.2;
}

html:lang(en) .fp-present-text font {
	display: contents;
}

html:lang(en) .fp-present-text br {
	display: none;
}

.fp-present-text:after {
	border-top: var(--tx-2) solid 2px;
	border-right: var(--tx-2) solid 2px;
	content: '';
	display: inline-block;
	filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 1));
	height: 16px;
	position: absolute;
	right: 10px;
	top: calc(50% - 8px);
	transform: rotateZ(45deg);
	width: 16px;
}

.fp-application-wrapper {
	background-color: var(--bg-2);
	padding: 5px 0;
}

.fp-application {
	border: #b50005 solid 3px;
	color: var(--tx-1);
	font-weight: 500;
	margin: 10px auto 30px auto;
	padding: 0;
	width: calc(100% - 20px);
}

@media (min-width: 500px) {
	.fp-application {
		max-width: 500px;
	}
}

.fp-application-sample-wrapper {
	align-items: flex-start;
	display: flex;
	gap: 10px;
	justify-content: flex-start;
	margin: 5px 0 10px 5px;
}

.fp-application-sample {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.fp-application-sample span {
	display: inline-block;
	font-size: xx-small;
	line-height: 1.2;
	margin: 0;
	padding: 0;
}

.fp-application-sample span img {
	display: inline-block;
	filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.5));
	height: auto;
	width: 100px;
}

.fp-application h3 {
	background-color: #b50005;
	color: var(--tx-2);
	display: block;
	font-size: 2rem;
	line-height: 1.2;
	margin: 10px;
	padding: 5px;
	text-align: center;
}

.fp-application h3:nth-of-type(2) {
	margin-top: 15px;
}

.fp-application h4 {
	border-bottom: #b50005 solid 1px;
	color: #b50005;
	display: block;
	font-size: 1.8rem;
	line-height: 1.2;
	margin: 10px;
	padding: 5px;
	text-align: center;
}

.fp-application dl {
	align-items: flex-start;
	display: flex;
	gap: 3px;
	justify-content: flex-start;
	margin: 0 10px;
}

.fp-application dt {
	color: var(--tx-1);
	display: inline-block;
	line-height: 1.6;
	white-space: nowrap;
}

.fp-application dd {
	color: var(--tx-1);
	display: inline-block;
	line-height: 1.6;
	margin-inline-start: 0;
}

.fp-application p {
	color: var(--tx-1);
	display: block;
	line-height: 1.6;
	margin-inline-start: 0;
	margin: 0 10px;
}

.fp-application-note {
	font-size: xx-small;
	font-weight: 500;
	line-height: 1.2;
	margin: 0 10px 5px 10px;
	padding: 0;
}

.fp-application-bonus {
	background-color: #fefbc4;
	border: #b50005 solid 5px;
	color: var(--tx-1);
	margin: 15px 10px 10px 10px;
	padding: 0;
}

.fp-application-bonus h3 {
	align-items: center;
	background-color: #b50005;
	display: flex;
	font-size: 2rem;
	gap: 10px;
	justify-content: center;
	margin: -1px 0 10px 0;
	padding: 0 5px 6px 5px;
	text-align: center;
}

.fp-application-bonus h3 span {
	color: #fdf000;
	display: inline-block;
	line-height: 1.2;
}

.fp-application-bonus h3 span img {
	display: inline-block;
	height: auto;
	max-width: 67px;
	width: 100%;
}

.fp-application-bonus p {
	color: var(--tx-1);
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 10px 5px 10px;
	padding: 0;
	text-align: center;
}

.fp-application-marker1 {
	color: #b50005;
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1;
}

html:lang(en) .fp-application-marker1 {
	letter-spacing: -0.05em;
}

.fp-application-marker2 {
	color: #b50005;
	font-size: 2.3rem;
	font-weight: 700;
	line-height: 1.2;
}

html:lang(en) .fp-application-marker2 {
	letter-spacing: -0.08em;
	margin-left: -0.1em;
}

.fp-application-marker3 {
	color: #b50005;
	font-size: 2.2rem;
	font-weight: 900;
	line-height: 1.2;
}

html:lang(en) .fp-application-marker3 {
	letter-spacing: -0.05em;
}

.fp-application-bonus .fp-application-note {
	font-size: 1.4rem;
	font-weight: 500;
	text-align: left;
}

.fp-survey-wrapper {
	border-top: #dae000 solid 5px;
	border-bottom: #dae000 solid 5px;
}

.fp-survey {
	color: var(--tx-1);
	font-size: 1.8rem;
	font-weight: 700;
	margin: 0 auto;
	position: relative;
}

@media (min-width: 500px) {
	.fp-survey {
		max-width: 500px;
	}
}

.fp-survey-catch {
	background-image: url('../img/lpc2025_survey_catch.png');
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: contain;
	height: 36px;
	margin: 0 auto 0 105px;
	overflow: hidden;
	text-indent: 200%;
	white-space: nowrap;
	width: 140px;
}

html:lang(en) .fp-survey-catch {
	background-image: url('../img/lpc2025_survey_catch_en.png');
}

.fp-survey-title-1 {
	background-color: #dae000;
	border-radius: 2rem;
	color: #6a1586;
	font-size: 2.4rem;
	font-weight: 900;
	line-height: 1.2;
	margin: -1.8rem auto 10px auto;
	padding: 3px 15px;
	text-align: center;
	width: fit-content;
}

.fp-survey-title-2 {
	color: #dae000;
	font-size: 2.4rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 3px auto;
	padding: 0;
	position: relative;
	text-align: center;
}

html:lang(en) .fp-survey-title-2 {
	text-indent: 3.3em;
}

.fp-survey-topic-title {
	color: #f7ac00;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-size: 2.8rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 3px auto 10px auto;
	padding: 0;
	position: relative;
	text-align: center;
	width: fit-content;
}

.fp-survey-box-wrapper {
	align-items: center;
	display: flex;
	gap: 3px;
	justify-content: center;
	padding: 0;
}

.fp-survey-box-wrapper+.fp-line .fp-line-title {
	margin: 0 auto;
}

.fp-survey-label-wrapper {
	background: linear-gradient(105deg, #ff8c00 0%, #ffd700 25%, #ffa500 50%, #ffd700 75%, #ff8c00 100%);
	border-radius: 50%;
	flex: 0 0 110px;
	height: 110px;
	position: relative;
	width: 110px;
	z-index: 1;
}

.fp-survey-label {
	align-items: center;
	background-color: #62107a;
	border-radius: 50%;
	color: #c4d700;
	display: flex;
	flex-direction: column;
	font-size: 1.4rem;
	font-weight: 900;
	height: 100px;
	justify-content: center;
	left: 5px;
	line-height: 1;
	position: absolute;
	text-align: center;
	top: 5px;
	transform: rotate(351deg);
	width: 100px;
}

html:lang(en) .fp-survey-label {
	font-size: xx-small;
	font-weight: 700;
	letter-spacing: -0.1em;
	max-width: 100px;
	text-shadow: -2px -2px 0 #62107a, 2px -2px 0 #62107a, -2px 2px 0 #62107a, 2px 2px 0 #62107a, -2px 0 0 #62107a, 2px 0 0 #62107a, 0 -2px 0 #62107a, 0 2px 0 #62107a, 0 0 5px #62107a, 0 0 5px #62107a, 0 0 5px #62107a, 0 0 5px #62107a, 0 0 5px #62107a, 0 0 5px #62107a;
}

.fp-survey-label span:nth-of-type(2) {
	font-size: 3.8rem;
}

.fp-survey-text-wrapper {
	align-items: flex-start;
	display: flex;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	flex-direction: column;
	justify-content: center;
}

.fp-survey-text-1 {
	color: var(--tx-2);
	font-size: 2.2rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0;
	padding: 0;
	position: relative;
	width: fit-content;
}

.fp-survey-text-2 {
	align-items: flex-end;
	color: var(--tx-2);
	display: flex;
	filter: drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1)) drop-shadow(0px 0px 2px var(--bg-1));
	font-size: 1.6rem;
	font-weight: 900;
	gap: 3px;
	justify-content: space-evenly;
	line-height: 1.2;
	margin: 0;
	padding: 0;
	position: relative;
	width: fit-content;
}

.fp-survey-text-2 span:nth-of-type(1) {
	font-size: 1.3rem;
	margin-left: 3px;
}

.fp-survey-text-2 span:nth-of-type(2) {
	font-size: 3.8rem;
}

.fp-survey-text-3 {
	align-items: center;
	color: var(--tx-2);
	display: flex;
	font-size: 1.8rem;
	font-weight: 900;
	gap: 3px;
	justify-content: space-evenly;
	line-height: 1.2;
	margin: 0;
	padding: 0;
	position: relative;
	width: fit-content;
}

.fp-survey-text-3 span:nth-of-type(1) {
	font-size: 3.8rem;
}

.fp-survey-text-3 span:nth-of-type(2) {
	background-image: url('../img/lpc2025_bubble.png');
	background-position: 50% 0%;
	background-repeat: no-repeat;
	background-size: contain;
	color: #dae000;
	display: block;
	font-size: 1.4rem;
	padding: 13px 10px 0 13px;
}

.fp-survey-details-wrapper {
	background-color: var(--bg-2);
	padding: 5px 0;
}

.fp-survey-details {
	border: #b50005 solid 3px;
	color: var(--tx-1);
	font-weight: 500;
	margin: 10px auto;
	padding: 0;
	width: calc(100% - 20px);
}

@media (min-width: 500px) {
	.fp-survey-details {
		max-width: 500px;
	}
}

.fp-survey-details h3 {
	background-color: #b50005;
	color: var(--tx-2);
	display: block;
	font-size: 2rem;
	line-height: 1.2;
	margin: 10px;
	padding: 5px;
	text-align: center;
}

.fp-survey-topic-wrapper {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
	gap: 5px;
	justify-content: flex-start;
	margin: 0 10px 5px 20px;
}

.fp-survey-topic {
	align-items: flex-start;
	display: flex;
	font-size: 1.65rem;
	font-weight: 700;
	gap: 3px;
	justify-content: flex-start;
	line-height: 1.2;
}

.fp-survey-topic span {
	align-items: baseline;
	background-color: #b50206;
	border-radius: 50%;
	color: var(--tx-2);
	display: flex;
	flex: 0 0 2rem;
	font-size: 1.6rem;
	font-weight: 700;
	height: 2rem;
	justify-content: center;
	line-height: 1.2;
	margin: 0;
	padding: 0;
	width: 2.2rem;
}

.fp-survey-answer {
	border: #ccc solid 1px;
	border-radius: 0;
	color: var(--tx-1);
	margin: 0 auto;
	padding: 5px;
	width: calc(100% - 30px);
}

.fp-survey-answer legend {
	color: var(--tx-1);
	font-size: 1.6rem;
	font-weight: 900;
	margin: 0;
	padding: 0 5px;
	width: fit-content;
}

.fp-survey-answer p {
	border-bottom: #ccc solid 1px;
	color: var(--tx-1);
	display: block;
	font-size: 1.6rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0 10px 10px 10px;
	padding: 0 5px 10px 5px;
}

.fp-survey-answer p:last-of-type {
	border-bottom: none;
	margin: 0 10px;
	padding: 0 5px;
}

.fp-survey-notice {
	color: var(--tx-1);
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.2;
	padding: 10px 20px;
}

.fp-event-overview-wrapper {
	background-color: var(--bg-2);
	padding: 5px 0;
}

.fp-event-overview {
	background-color: var(--bg-2);
	border: #ccc solid 1px;
	color: var(--tx-1);
	margin: 10px auto;
	padding: 0;
	width: calc(100% - 20px);
}

@media (min-width: 500px) {
	.fp-event-overview {
		max-width: 500px;
	}
}

.fp-event-overview h3 {
	background-color: #898989;
	color: var(--tx-2);
	display: block;
	font-size: 2rem;
	line-height: 1.2;
	margin: 10px;
	padding: 5px;
	text-align: center;
}

.fp-event-overview dl dt {
	display: block;
	font-size: 1.5rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0 10px 10px 10px;
	padding: 0;
	position: relative;
	text-align: left;
	text-shadow: 3px 3px 0 var(--bg-2), -3px -3px 0 var(--bg-2), 3px -3px 0 var(--bg-2), -3px 3px 0 var(--bg-2), 2px 2px 0 var(--bg-2), -2px -2px 0 var(--bg-2), 2px -2px 0 var(--bg-2), -2px 2px 0 var(--bg-2), 1px 1px 0 var(--bg-2), -1px -1px 0 var(--bg-2), 1px -1px 0 var(--bg-2), -1px 1px 0 var(--bg-2);
	z-index: 2;
}

.fp-event-overview dl dt::after {
	background-color: #ccc;
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	top: 50%;
	width: 100%;
	z-index: -1;
}

.fp-event-overview dl dd {
	display: block;
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin-inline-start: 0;
	margin: 0 10px 15px 10px;
}

.fp-event-overview dl dd h4 {
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin: 0;
}

.fp-event-overview dl dd p {
	color: var(--tx-1);
	display: block;
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin: 0;
	margin-inline-start: 0;
	text-align: left;
}

.fp-event-overview dl dd p.last {
	margin: 0 0 1.4rem 0;
}

.fp-event-overview dl dd ul {
	display: block;
	list-style: none;
	margin: 0 0 0.2rem 1.2rem;
	padding: 0;
}

.fp-event-overview dl dd ul li::before {
	color: var(--tx-1);
	content: "・";
	font-size: 1.4rem;
	line-height: 1.4;
	flex-shrink: 0;
}

.fp-event-overview dl dd ul li {
	align-items: flex-start;
	color: var(--tx-1);
	display: flex;
	font-size: 1.4rem;
	gap: 0.1em;
	line-height: 1.4;
	margin-inline-start: 0;
	text-align: left;
}

.fp-remarks-wrapper {
	background-color: var(--bg-2);
	margin: -3px 0 0 0;
	padding: 0 0 5px 0;
}

.fp-remarks {
	background-color: var(--bg-2);
	border: #ccc solid 1px;
	color: var(--tx-1);
	margin: 0 auto 10px auto;
	padding: 15px 0 0 0;
	width: calc(100% - 20px);
}

@media (min-width: 500px) {
	.fp-remarks {
		max-width: 500px;
	}
}

.fp-remarks dl dt {
	display: block;
	font-size: 1.4rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0 10px 5px 10px;
	padding: 0;
	position: relative;
	text-align: left;
	text-shadow: 3px 3px 0 var(--bg-2), -3px -3px 0 var(--bg-2), 3px -3px 0 var(--bg-2), -3px 3px 0 var(--bg-2), 2px 2px 0 var(--bg-2), -2px -2px 0 var(--bg-2), 2px -2px 0 var(--bg-2), -2px 2px 0 var(--bg-2), 1px 1px 0 var(--bg-2), -1px -1px 0 var(--bg-2), 1px -1px 0 var(--bg-2), -1px 1px 0 var(--bg-2);
	z-index: 2;
}

.fp-remarks dl dt::after {
	background-color: #ccc;
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	top: 50%;
	width: 100%;
	z-index: -1;
}

.fp-remarks dl dd {
	display: block;
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin-inline-start: 0;
	margin: 0 10px 15px 10px;
}

.fp-remarks dl dd h4 {
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin: 0;
}

.fp-remarks dl dd p {
	color: var(--tx-1);
	display: block;
	font-size: 1.4rem;
	text-align: left;
	line-height: 1.4;
	margin: 0;
	margin-inline-start: 0;
	text-align: left;
}

.fp-remarks dl dd p.last {
	margin: 0 0 1.4rem 0;
}

.fade-up {
	opacity: 0;
	transform: translate3d(0, 20px, 0);
	transition: opacity 1s ease, transform 1s ease;
}

.fade-up.inview {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

/*-------------------------
フロントページ背景アニメーション
-------------------------*/
.bg-float {
	/*
	border:solid 1px #f00;
	*/
	inset: 0;
	overflow: hidden;
	position: fixed;
	pointer-events: none;
	top: 22%;
	z-index: -1;
}

@media only screen and (max-width:768px) {
	.bg-float {
		top: 25%;
	}
}

/* 共通 */
.bg-float i {
	position: absolute;
	width: var(--size);
	height: var(--size);
	left: var(--x);
	top: var(--y);
	opacity: var(--alpha);
	-webkit-mask: var(--mask) center/contain no-repeat;
	mask: var(--mask) center/contain no-repeat;
	background-color: #fff;
	transform-origin: center;
	animation:
		move var(--speed) ease-in-out var(--delay) infinite alternate,
		sway calc(var(--speed)*.9) ease-in-out var(--delay) infinite;
	filter: var(--blur, none);
	will-change: transform, opacity;
}

@media only screen and (max-width:768px) {
	.bg-float i {
		max-width: 100px;
		max-height: 100px;
	}
}

/* 円（白 or 金） */
.is-circle {
	-webkit-mask: none !important;
	mask: none !important;
	border-radius: 50%;
	opacity: var(--circle-alpha, .7) !important;
	/* ← 円の薄さを全体にアップ */
	background-color: transparent !important;
}

/* 白い円はグラデあり（より淡く見えるよう全体のalphaを下げ済） */
.is-circle.white {
	--circle-rgb: 255, 255, 255;
	background-image: radial-gradient(circle at var(--gx, 50%) var(--gy, 50%),
			rgba(var(--circle-rgb), 0) 0%,
			rgba(var(--circle-rgb), 0) var(--core, 40%),
			rgba(var(--circle-rgb), 0.45) var(--mid1, 62%),
			rgba(var(--circle-rgb), 0.75) var(--mid2, 72%),
			rgba(var(--circle-rgb), 1) var(--edge, 96%),
			rgba(var(--circle-rgb), 1) 100%) !important;
}

/* 小さい金の円はベタ */
.is-circle.gold {
	background-color: rgb(var(--gold-rgb)) !important;
}

/* 回転（方向別） */
.spin-cw {
	animation: spinCW var(--spin, 60s) linear var(--delay) infinite;
}

.spin-ccw {
	animation: spinCCW var(--spin, 60s) linear var(--delay) infinite;
}

/* 非・円（チルト＆鼓動。稀に回転） */
.is-shape {
	animation:
		move var(--speed) ease-in-out var(--delay) infinite alternate,
		sway calc(var(--speed)*.9) ease-in-out var(--delay) infinite,
		tilt var(--tilt-speed, 30s) ease-in-out var(--delay) infinite alternate,
		throb var(--pulse-speed, 38s) ease-in-out var(--delay) infinite;
}

/* keyframes */
@keyframes move {
	from {
		transform: translate3d(0, 0, 0)
	}

	to {
		transform: translate3d(var(--mx), var(--my), 0)
	}
}

@keyframes sway {

	0%,
	100% {
		margin-left: 0
	}

	50% {
		margin-left: var(--drift)
	}
}

@keyframes spinCW {
	from {
		rotate: 0deg
	}

	to {
		rotate: 360deg
	}
}

@keyframes spinCCW {
	from {
		rotate: 0deg
	}

	to {
		rotate: -360deg
	}
}

@keyframes tilt {
	from {
		rotate: -3deg
	}

	to {
		rotate: 3deg
	}
}

@keyframes throb {

	0%,
	100% {
		scale: 1
	}

	50% {
		scale: 1.03
	}
}

/* マスク */
.texture-1 {
	--mask: url("../img/back-texture_bg01.svg");
}

.texture-2 {
	--mask: url("../img/back-texture_bg02.svg");
}

.texture-3 {
	--mask: url("../img/back-texture_bg03.svg");
}

.texture-4 {
	--mask: url("../img/back-texture_bg04.svg");
	background-color: rgb(var(--gold-rgb));
}

.texture-5 {
	--mask: url("../img/back-texture_bg05.svg");
}

.texture-6 {
	--mask: url("../img/back-texture_bg06.svg");
}

/*
@media (prefers-reduced-motion: reduce) {
	.bg-float {
		display: none
	}
}
*/


/*-------------------------
フッター
-------------------------*/
footer {
	margin: 0;
	padding: 0;
	z-index: 0;
}

.footer-wrapper {
	align-items: stretch;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
	padding: 0;
	position: sticky;
}

.footer {
	background-color: var(--bg-1);
	color: var(--tx-2);
	margin: 0;
	min-height: 3rem;
	padding: 0;
	position: relative;
	z-index: 0;
}

.copy {
	color: var(--tx-2);
	display: block;
	font-size: 1.2rem;
	line-height: 1;
	margin: 3rem 0;
	position: relative;
	text-align: center;
}


/*-------------------------
スマートフォン用
-------------------------*/

@media only screen and (max-width:768px) {
	body {
		font-size: 1.4rem;
		-webkit-text-size-adjust: 100%;
	}

	header {
		margin-top: 35px;
	}

	.pc {
		display: none;
	}

	.sp {
		display: inherit;
	}

	img {
		display: inline-block;
		height: auto;
		width: 100%;
	}

	article,
	.article {
		margin: 1rem;
	}

	.button,
	a button,
	button,
	input[type="submit"],
	input[type="reset"],
	input[type="button"] {
		padding: 1rem 3rem;
	}

	textarea,
	select,
	input {
		font-size: 1.4rem;
		margin-bottom: .5rem;
		padding: .6rem .8rem;
	}

	textarea {
		width: 98%;
	}

	.wp-block-heading {
		margin: 3rem 0;
	}

	section #wpmem_login,
	section #wpmem_msg,
	section #wpmem_reg,
	section .wpmem_msg {
		width: 98%;
	}

	section #wpmem_login_form fieldset,
	section #wpmem_register_form fieldset {
		flex-direction: column;
		margin-top: 3rem;
	}

	section #wpmem_login_form fieldset legend,
	section #wpmem_register_form fieldset legend {
		width: 98%;
	}

	section #wpmem_login_form fieldset label,
	section #wpmem_login_form fieldset input,
	section #wpmem_register_form fieldset label,
	section #wpmem_register_form fieldset input {
		width: 98%;
	}

	section #wpmem_login_form fieldset .div_text,
	section #wpmem_login_form fieldset .div_select,
	section #wpmem_register_form fieldset .div_text,
	section #wpmem_register_form fieldset .div_select {
		width: 98%;
	}

	section #wpmem_login_form fieldset .button_div,
	section #wpmem_register_form fieldset .button_div {
		flex-wrap: wrap;
		gap: 0;
	}

	section #wpmem_login_form fieldset .button_div label,
	section #wpmem_register_form fieldset .button_div label {
		width: fit-content;
	}

	.cp_columns_with_gap {
		gap: 3rem;
		margin: 3rem 0 0 0;
	}

	.pre_check {
		margin: 3rem auto;
	}

	body.page-template-page-sbsc_vote.page-vote .pre_check {
		margin: 3rem auto 0 auto;
	}

	.button-theme {
		align-items: center;
		display: flex;
		justify-content: center;
	}

	.button-theme1 figure,
	.button-theme2 figure,
	.button-theme3 figure {
		margin: 0;
	}

	.archive-title {
		margin: 2rem auto;
	}

	.submit {
		margin-top: 3rem;
	}

	.cond_photocon {
		width: 100%;
	}

	.cond_oogiri {
		width: 100%;
	}

	.oogiri {
		padding: 1rem;
	}

	.oogiri_wrapper {
		margin: 3rem auto;
	}

	.button-wrapper {
		margin: 3rem auto;
	}

	.logout a {
		margin: 0 auto 3rem auto;
	}

	.period {
		font-size: 1.2rem;
		letter-spacing: 0;
	}

	.period .period-header {
		border-radius: 1rem;
		font-size: 1.4rem;
		padding: .3rem 1rem;
	}

	.period .period-large {
		font-size: 1.5rem;
	}

	.period .period-small {
		font-size: x-small;
	}

	.period .dow {
		font-size: x-small;
		padding: .1rem .2rem .2rem .2rem;
	}

	.select-tab-wrapper {
		flex-direction: column;
		gap: 0;
		padding: 4rem 2rem 2rem 2rem;
		width: calc(98% - 4rem);
	}

	.select-tab {
		width: 100%;
	}

	.select-tab-arrow {
		transform: scale(1, 0.5) rotate(90deg);
	}

	.grid {
		gap: 3rem 2rem;
	}

	.button.button_vote {
		padding: 1rem;
		white-space: normal;
	}

	.block-login {
		margin-top: 3rem;
	}

	section #wpmem_login_form fieldset legend,
	section #wpmem_register_form fieldset legend {
		margin: 3rem 0;
	}

	section p.wpmem_msg {
		margin: 0 auto;
		padding: 0;
	}

	/*------------------
	スマホ会員登録規約
	------------------*/

	.tos_modal {
		margin: 0;
		padding: 0;
	}

	.tos_modal__content {
		aspect-ratio: auto;
		margin: auto;
		padding: 1rem;
		width: calc(100% - 6rem);
	}

	.tos_modal__content-inner {
		height: 70vh;
		margin: auto;
		padding: 1rem;
		width: calc(98% - 2rem);
	}

	.tos_label {
		margin: 0 auto;
	}

	.tos_label img {
		margin: 0 auto;
		width: 60%;
	}

	.tos {
		margin: 0;
	}

	.tos_link_button {
		background-color: #e30015;
		border-radius: 6px;
		color: #fff;
		display: inline-block;
		font-size: 2rem;
		font-weight: bold;
		text-align: center;
		margin: 3rem auto;
		padding: 1rem 3rem;
		cursor: pointer;
		text-decoration: none;
		width: 70%;
	}

	.footer-wrapper:before {
		height: 2rem;
	}
}