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

:root {
	--bg: #00124e;
	--gold-rgb: 208, 164, 56;

	--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;
	/* #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-size: 1.6rem;
	font-variant-alternates: proportional-width;
	justify-content: space-between;
	line-height: 1.6;
	margin: 0;
	min-height: 100vh;
	padding: 0;
}

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

* {
	-webkit-margin-before: 0;
	-webkit-margin-end: 0;
	margin-block-end: 0;
	margin-block-start: 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;
	margin: 0;
	padding: 1rem;
}

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(--bg-1);
}

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

body.profile input.button,
body.profile a button,
body.profile a.button,
body.profile button,
body.profile input[type="submit"],
body.profile input[type="reset"],
body.profile input[type="button"] {
	background-color: var(--bg-2);
	border: solid 3px var(--bg-2);
	color: var(--tx-1);
	font-weight: bold;
}

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

/* サーベイの削除ボタン - ボックスの幅いっぱいでセンタリング */
.post-type-archive-survey_answer .postinfo.button_delete .button {
	text-align: center;
	width: 100%;
}

.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-1);
	border-color: var(--bg-1);
	color: var(--tx-2);
	font-size: 1.6rem !important;
	font-weight: normal;
	max-width: 300px;
	width: 100%;
	-webkit-appearance: none;
	appearance: none;
	-webkit-text-size-adjust: 100%;
}

.button.button_gift {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
	border: none !important;
	color: #fff !important;
}

.button.button_screening,
.button.button_pc,
.button.button_oogiri,
.button.button_survey {
	border-style: none;
	font-weight: bold;
	max-width: 300px;
	width: 100%;
}

.button.button_screening {
	background-color: #007cba;
	color: var(--tx-2);
}

.button.button_pc {
	background-color: var(--bg-3);
	color: var(--tx-2);
}

.button.button_oogiri {
	background-color: var(--bg-6);
	color: var(--tx-2);
}

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

.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: 0 auto;
	padding: 5rem 0;
	text-align: center;
}

body.screening .button-wrapper {
	padding: 1rem 0;
}

.button-wrapper2 {
	margin: 0 auto;
	padding: 2rem 0;
	text-align: center;
}

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

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;
	padding: 0 0 2rem 0;
}

.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 {
	padding: .5rem;
	text-align: left;
}

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: 95%;
}

body.profile #wpmem_login fieldset,
body.profile #wpmem_reg fieldset {
	background-color: rgba(0, 18, 78, 0.6);
	padding: 2rem;
	width: 100%;
}

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;
	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(30, 30, 30, 0.6);
	border-radius: 6px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	height: 30px;
	justify-content: space-evenly;
	left: 15px;
	padding: 0 6px;
	position: fixed;
	top: 15px;
	width: 36px;
	z-index: 1001;
}

.hamburger span {
	background: #fff;
	border-radius: 0;
	display: block;
	height: 2px;
	transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s ease;
}

.hamburger.open {
	background-color: rgba(30, 30, 30, 0.6);
}

.hamburger.open span {
	background: #fff;
}

.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 {
	align-items: flex-start;
	background-color: var(--bg-1);
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: flex-start;
	left: 0;
	opacity: 0;
	overflow-y: auto;
	padding: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: opacity 0.3s ease;
	width: 100%;
	z-index: 1000;
}

.mobile-menu-header {
	background-color: #fff;
	border-bottom: 1px solid #ddd;
	margin-top: 60px;
	padding: 0 2rem;
	width: 100%;
}

.mobile-menu-title {
	color: #333;
	font-size: 1.6rem;
	font-weight: 600;
	margin-bottom: 0.5rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mobile-menu-url {
	color: #666;
	font-size: 1.2rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

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

.menu ul {
	align-items: stretch;
	display: flex;
	flex-direction: column;
	gap: 0;
	justify-content: flex-start;
	margin: 0;
	padding: 0;
}

.menu ul li a {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin: 0;
	padding: 0;
	position: relative;
	transition: background-color 0.2s ease;
	width: 100%;
}

.menu.mobile-menu ul {
	margin: 0;
	width: 100%;
}

.menu.mobile-menu ul li {
	border-bottom: 1px solid #ddd;
	width: 100%;
}

.menu.mobile-menu ul li a {
	background-color: #f5f5f5;
	color: #333;
	font-size: 1.8rem;
	font-weight: 500;
	min-height: 70px;
	padding: 2rem 2rem 2rem 2.5rem;
	position: relative;
	text-decoration: none;
	width: 100%;
}

.menu.mobile-menu ul li a:hover,
.menu.mobile-menu ul li a:active {
	background-color: #e8e8e8;
}

/* 右矢印アイコン - ダークグレーの丸い背景に白い矢印 */
.menu.mobile-menu ul li a::after {
	background-color: rgba(30, 30, 30, 0.6);
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round"><polyline points="9 18 15 12 9 6"/></svg>');
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 15px 15px;
	border-radius: 50%;
	content: '';
	flex-shrink: 0;
	height: 31px;
	margin-right: 1rem;
	position: absolute;
	right: 0;
	width: 31px;

	/* SVGで白い右矢印を表示 */
}

.menu ul li a.menu-photo-contest {
	background-color: #f5f5f5;
}

.menu ul li a.menu-oogiri-contest {
	background-color: #f5f5f5;
}

.menu ul li a.menu-survey {
	background-color: #f5f5f5;
}

.menu ul li a.menu-top {
	background-color: #f5f5f5;
	border-radius: 6px;
	box-sizing: border-box;
	display: block;
	margin: 0 0 1rem 0;
	padding: 1.2rem 1.5rem;
	width: 290px;
}

.menu ul li a.menu-top span {
	color: #333;
}

.menu ul li a.menu-screening {
	background-color: #f5f5f5;
	border-radius: 6px;
	box-sizing: border-box;
	color: #333;
	display: block;
	margin: 0 0 0.5rem 0;
	padding: 1.2rem 1.5rem;
	width: 290px;
}

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

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

.menu.mobile-menu ul li a:hover {
	background-color: #e8e8e8;
}

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

.menu.mobile-menu ul li a.menu-top {
	background-color: #f5f5f5;
	border-radius: 0%;
	color: #333;
	font-size: 1.8rem;
	font-weight: 500;
	margin: 0;
	min-height: 70px;
	padding: 2rem 2rem 2rem 2.5rem;
	text-decoration: none;
	width: 100%;
}

.menu.mobile-menu ul li a.menu-screening {
	background-color: #f5f5f5;
	border-radius: 0%;
	color: #333;
	font-size: 1.8rem;
	font-weight: 500;
	margin: 0;
	min-height: 70px;
	padding: 2rem 2rem 2rem 2.5rem;
	text-decoration: none;
	width: 100%;
}

.menu ul li a img.en {
	display: none;
}

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

html:lang(en) .menu ul li a img.en {
	display: inline-block;
}

.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);
}

.menu ul li a.menu-screening span {
	color: var(--tx-1);
}

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: 290px;
		z-index: 10;
	}

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

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

	.menu.pc-menu.front-page ul li a {
		width: 290px;
	}

	.menu.pc-menu ul li a.menu-screening {
		width: 290px;
	}

	.menu.pc-menu ul li a.menu-top {
		width: 290px;
	}
}

/*-------------------------
ヘッダー
-------------------------*/
header {
	color: var(--tx-2);
	margin: 0 auto;
	margin: 0 auto -96px auto;
	max-width: 500px;
	padding: 0;
	position: relative;
	top: 40px;
	z-index: 1;
}

@media screen and (max-width: 500px) {
	header {
		margin: 0 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;
	position: relative;
	top: -40px;
	width: 90%;
}

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

.site-title {
	background-color: transparent;
	line-height: 1;
	margin: 0 auto;
	max-width: 98%;
	padding: 0;
	position: relative;
	top: -40px;
	width: 98%;
}

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

.site-title a {
	aspect-ratio: 980 / 360;
	background-image: url('/cp/wp-content/uploads/page/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('/cp/wp-content/uploads/page/lpc2025_title_en.png');
}

.campaign-date-wrapper {
	margin: 0;
	padding: 0;
	position: relative;
	top: -40px;
	width: 100%;
}

.campaign-date-jp,
.campaign-date-en {
	align-items: baseline;
	display: flex;
	font-size: 1.4rem;
	font-weight: 300;
	justify-content: center;
	margin: 0 auto;
	padding: 46px 0 10px 0;
	text-align: 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);
}

.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.6rem !important;
}

/*-------------------------
コンテンツ
-------------------------*/
main {
	display: grid;
}

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

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

/*
.content:before {
    background-image: url('/cp/wp-content/uploads/page/lpc2025_bg2.jpg');
    background-position: 50% 0%;
    background-repeat: repeat-y;
    background-size: 120% auto;
    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;
}

.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.8);
	color: var(--tx-1);
	padding: 2.5%;
}

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

section p.wpmem_msg {
	margin: auto;
}

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

section.section-sub p.gift-type-label {
	color: var(--tx-2);
}

.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;
	flex-direction: column;
	justify-content: stretch;
	margin: 0 0 2rem 0;
}

.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"] {
	align-items: center;
	color: var(--tx-2);
	cursor: pointer;
	display: flex;
	height: 100%;
	justify-content: center;
	left: 0;
	margin: 0;
	opacity: 0;
	padding: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.file_input_wrapper {
	align-items: center;
	background: var(--bg-2);
	border: var(--bg-1) solid 1px;
	border-radius: 6px;
	color: var(--bg-1);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin: 0 auto;
	max-width: 300px;
	padding: 2rem 0;
	position: relative;
}

.file_input_wrapper label {
	align-items: center;
	bottom: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.filename {
	align-items: center;
	bottom: 0;
	color: var(--bg-1);
	cursor: pointer;
	display: flex;
	justify-content: center;
	left: 0;
	padding: 0;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
}

.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 {
	margin: 5rem auto;
}

.oogiri {
	padding: 0;
}

.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-family: 'Kanteiryu', 'FOT-大江戸勘亭流 Std E';
	font-size: 2rem;
}

#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;
	bottom: auto;
	height: 2rem;
	left: 0;
	margin: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.joushikimaku.bottom {
	bottom: 0;
	left: 0;
	position: absolute;
	right: 0;
	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 {
	margin: 0 auto 5rem auto;
	text-align: center;
}

.archive-title h2 img {
	margin: -3% -5% 0 -5%;
	width: 110%;
}

.archive-title h2 img.jp {
	display: inherit;
}

.archive-title h2 img.en {
	display: none;
}

html:lang(en) .archive-title h2 img.jp {
	display: none;
}

html:lang(en) .archive-title h2 img.en {
	display: inherit;
}

.archive-title h2 span {
	color: var(--tx-1);
	display: inline-block;
	font-size: 4.1rem;
	font-weight: 900;
	line-height: 1.2;
	padding: 0.5em 0;
	position: relative;
	text-align: center;
	text-indent: 0;
	width: auto;
}

body.photo-contest h2 span,
body.pc1_form .archive-title h2 span {
	color: var(--lk-1);
}

body.oogiri-contest h2 span,
body.og_form .archive-title h2 span {
	color: var(--bg-6);
}

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

.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;
	background-color: var(--bg-2);
	border: var(--bg-4) solid 1px;
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
}

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

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

body.photo-contest .photo-contest-postinfo-bottom .button_delete {
	align-self: center;
}

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

.oogiri-postinfo-wrapper {
	align-items: stretch;
	color: var(--tx-1);
	display: flex;
	flex-direction: column;
	height: auto;
	justify-content: space-between;
	margin: 3.5rem 0 0 0;
	min-height: 16rem;
	padding: 0 1rem;
	position: relative;
}

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

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

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

.grid {
	display: grid;
	gap: 3rem 3rem;
	grid-auto-rows: auto;
	grid-template-columns: repeat(auto-fit, minmax(230px, 300px));
	justify-content: center;
	margin: 0 auto 4rem auto;
}

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

.grid-wrapper {
	margin: auto;
	position: relative;
	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;
	cursor: pointer;
	height: 100%;
	left: 0;
	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;
}

.pagination {
	margin: 2rem auto;
	max-width: 100%;
	overflow-x: auto;
	text-align: center;
}

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

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

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

.page-numbers li span.current {
	background: transparent;
	border: none;
	color: var(--bg-1);
	font-weight: normal;
	padding: .5rem .8rem;
}

.page-numbers li .dots {
	background: transparent;
	border: none;
	color: var(--bg-1);
	padding: .5rem .4rem;
}

/*-------------------------
投票アンケート用モーダル
-------------------------*/
.modal {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	left: 0;
	opacity: 0;
	padding: 0;
	position: fixed;
	top: 0;
	transition: 0.3s opacity ease, 0s visibility 0.3s linear;
	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 {
	-webkit-overflow-scrolling: touch;
	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%;
	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;
	width: 100%;
	z-index: 1;
}

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

.dialog {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	left: 0;
	opacity: 0;
	padding: 0;
	position: fixed;
	top: 0;
	transition: 0.3s opacity ease, 0s visibility 0.3s linear;
	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;
	line-height: 1;
	padding: 1.5rem 2rem 1.8rem 2.4rem;
}

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

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

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

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

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

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

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

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

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

.survey-form-container {
	margin: 0 auto 10px auto;
	padding: 0;
}

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

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

.question-item h4 .answered-badge {
	background: #4CAF50;
	border-radius: 3px;
	color: white;
	font-size: 12px;
	font-weight: normal;
	margin-left: 8px;
	padding: 2px 8px;
}

.question-text {
	font-size: 1.6rem;
	line-height: 1.6;
	margin-bottom: 1em;
}

.answer-field label {
	color: #333;
	display: block;
	font-weight: bold;
	margin: 15px 0 2px 0;
}

.answer-field label small {
	color: #666;
	font-size: 12px;
	font-weight: normal;
	margin-left: 5px;
}

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

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

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

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

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

.survey-login-required,
.survey-no-questions,
.no-answerable-questions {
	background: #f8f9fa;
	border-radius: 8px;
	margin: 0 auto;
	padding: 40px;
	padding: 0 4%;
	text-align: center;
	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: #aaa;
	border: solid 1px #666;
	color: #666;
	cursor: not-allowed;
	font-weight: bold;
	max-width: 300px;
	opacity: 1;
	outline: solid 1px #666;
	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);
	margin: 1rem;
	text-align: center;
}

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

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

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

.question-text {
	color: var(--bg-6);
	display: inline;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.6;
}

.answer-content {
	background: var(--bg-2);
	border: 3px solid var(--bg-4);
	border-radius: 6px;
	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-facility {
	align-items: flex-start;
	display: flex;
	justify-content: flex-start;
	line-height: 1.1;
	margin: 5px 0 0 0;
}

p.answer-user {
	align-items: flex-start;
	display: flex;
	justify-content: flex-start;
	line-height: 1;
	margin: 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;
}

.answer-footer.admin-controls {
	align-items: stretch;
}

.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;
	width: 100%;
}

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

.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;
}

.pre_check img {
	display: inline-block;
}

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

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

.tos_label img {
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: 300px;
}

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

.tos dt {
	font-weight: bold;
}

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

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

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

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

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

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

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

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

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

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

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: calc(100% - 20px);
}

.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;
	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.6rem;
	font-weight: 900;
	line-height: 1.2;
	margin: 0 0 10px 0;
	text-align: center;
}

.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('/cp/wp-content/uploads/page/lpc2025_photo_contest_icon.png');
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: contain;
	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;
	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-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('/cp/wp-content/uploads/page/lpc2025_oogiri_contest_icon.png');
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-size: contain;
	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;
	line-height: 1.2;
	margin: 10px auto 0 auto;
	padding: 0;
	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;
	border-radius: 6px;
	color: var(--tx-2);
	display: block;
	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;
	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-menu {
	background-color: #fff;
	border-radius: 10px;
	margin: 20px 0 0 0;
	padding: 1.5rem;
	position: relative;
}

.fp-menu::before {
	background-color: #fff;
	border-radius: 10px 10px 0 0;
	color: #fc0000;
	content: "参加はコチラから▼";
	display: inline-block;
	font-size: 1.6rem;
	font-weight: 900;
	left: 0;
	padding: 0.5rem 2rem;
	position: absolute;
	top: 8px;
	transform: translateY(-100%);
	white-space: nowrap;
}

html:lang(en) .fp-menu::before {
	content: "Click here to join ▼";
}

body.home .fp-menu {
	background-color: var(--bg-2);
	margin: 3rem 5px;
}

body.home .fp-menu::before {
	background-color: var(--bg-2);
}

@media (max-width: 510px) {
	.fp-menu {
		margin: 20px 0 0 0;
	}

	.fp-menu::before {
		left: 0;
		padding: 0.5rem 1rem;
	}

	body.home .fp-menu {
		margin: 3rem 5px;
	}
}

.fp-menu ul {
	align-items: center;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 10px;
	justify-content: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.fp-menu ul li {
	line-height: 1;
	margin: 0;
	padding: 0;
}

.fp-menu ul li a {
	display: inline-block;
	height: auto;
	line-height: 1;
	margin: 0;
	padding: 0;
	width: auto;
}

.fp-menu img {
	display: inline-block;
	height: auto;
	line-height: 1;
	margin: 0;
	padding: 0;
	width: 100%;
}

html:lang(en) .fp-menu img {
	margin: 0 0 -10px 0;
}

.fp-menu img.en {
	display: none;
}

html:lang(en) .fp-menu img.jp {
	display: none;
}

html:lang(en) .fp-menu img.en {
	display: inline-block;
}

.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;
	justify-content: space-evenly;
	line-height: 1.2;
	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('/cp/wp-content/uploads/page/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('/cp/wp-content/uploads/page/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-right: var(--tx-2) solid 2px;
	border-top: 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: 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;
}

.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('/cp/wp-content/uploads/page/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('/cp/wp-content/uploads/page/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('/cp/wp-content/uploads/page/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;
}

html:lang(en) .fp-survey-text-3 span:nth-of-type(2) {
	background-image: none;
}

.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;
	line-height: 1.4;
	margin: 0 10px 15px 10px;
	text-align: left;
}

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

.fp-event-overview dl dd p {
	color: var(--tx-1);
	display: block;
	font-size: 1.4rem;
	line-height: 1.4;
	margin: 0;
	margin-inline-start: 0;
	text-align: left;
	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: "・";
	flex-shrink: 0;
	font-size: 1.4rem;
	line-height: 1.4;
}

.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;
	}
}

body.gift-terms .fp-remarks-wrapper {
	padding: 10px 0 5px 0;
}

.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;
	line-height: 1.4;
	margin: 0 10px 15px 10px;
	margin-inline-start: 0;
	text-align: left;
}

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

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

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

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

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

.fp-remarks 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;
}

body.gift-terms .fp-remarks dl dd ul li {
	display: list-item;
}

body.gift-terms .fp-remarks dl dd ul li a {
	padding: 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 {
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	top: 22%;
	z-index: -1;

	/*
    border:solid 1px #f00;
    */
}

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

/* 共通 */
.bg-float i {
	-webkit-mask: var(--mask) center/contain no-repeat;
	background-color: #fff;
	filter: var(--blur, none);
	height: var(--size);
	left: var(--x);
	mask: var(--mask) center/contain no-repeat;
	opacity: var(--alpha);
	position: absolute;
	top: var(--y);
	transform-origin: center;
	width: var(--size);
	will-change: transform, opacity;

	animation:
		move var(--speed) ease-in-out var(--delay) infinite alternate,
		sway calc(var(--speed)*.9) ease-in-out var(--delay) infinite;
}

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

/* 円（白 or 金） */
.is-circle {
	-webkit-mask: none !important;
	background-color: transparent !important;
	border-radius: 50%;
	mask: none !important;
	opacity: var(--circle-alpha, .7) !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("/cp/wp-content/themes/landport/assets/images/back-texture_bg01.svg");
}

.texture-2 {
	--mask: url("/cp/wp-content/themes/landport/assets/images/back-texture_bg02.svg");
}

.texture-3 {
	--mask: url("/cp/wp-content/themes/landport/assets/images/back-texture_bg03.svg");
}

.texture-4 {
	--mask: url("/cp/wp-content/themes/landport/assets/images/back-texture_bg04.svg");
	background-color: rgb(var(--gold-rgb));
}

.texture-5 {
	--mask: url("/cp/wp-content/themes/landport/assets/images/back-texture_bg05.svg");
}

.texture-6 {
	--mask: url("/cp/wp-content/themes/landport/assets/images/back-texture_bg06.svg");
}

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

        display: none
    }
}
*/

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

.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 {
		-webkit-text-size-adjust: 100%;
		font-size: 1.4rem;
	}

	.header-inner {
		margin-top: 3.5rem;
	}

	.pc {
		display: none;
	}

	.sp {
		display: inherit;
	}

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

	article,
	.article {
		margin: 0;
	}

	.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;
	}

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

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

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

	.submit {
		margin-top: 3rem;
	}

	.cond_photocon {
		width: 100%;
	}

	.cond_oogiri {
		width: 100%;
	}

	.oogiri {
		padding: 0;
	}

	.oogiri_wrapper {
		margin: 3rem auto;
	}

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

	.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;
	}

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

/*------------------
デジタルギフトボタン
------------------*/
.gift-section {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border-radius: 10px;
	margin: 30px 0;
	padding: 20px;
	text-align: center;
}

.gift-content {
	color: white;
	margin-bottom: 15px;
}

.gift-title {
	color: white;
	font-size: 18px;
	margin: 0 0 10px 0;
}

section.section-sub p.gift-message {
	color: white;
	font-size: 14px;
	margin: 0;
	opacity: 0.9;
}

.gift-button {
	background: #fff;
	border-radius: 25px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
	color: #667eea;
	display: inline-block;
	font-weight: bold;
	padding: 12px 24px;
	text-decoration: none;
	transition: all 0.3s ease;
}

.gift-button:hover {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
	color: #667eea;
	text-decoration: none;
	transform: translateY(-2px);
}

/* コメント更新ボタンのスタイル */
.update-comment-btn {
	background-color: #6b1686 !important;
	border: none;
	border-radius: 4px;
	color: white !important;
	cursor: pointer;
	font-size: 1.15rem;
	padding: 5px;
	transition: background-color 0.3s ease;
}

.update-comment-btn:hover {
	background-color: #5a1471 !important;
	color: white !important;
}

/* アーカイブページの管理者用ステータス表示 */
.poststatus {
	align-items: flex-start;
	display: flex;
	font-size: 1.4rem;
	justify-content: center;
}

.status-text.unpublished {
	color: red;
	font-weight: 900;
}

.status-text.published {
	color: green;
	font-weight: 900;
}

.button.publish {
	background-color: #4a86e8;
	border: 1px solid #4a86e8;
	border-radius: 4px;
	color: white;
	display: inline-block;
	font-size: 1.4rem;
	line-height: 1.2;
	margin: 5px 0 0 0;
	padding: 1rem;
	width: 100%;
}

.button.unpublish {
	background-color: red;
	border: 1px solid red;
	border-radius: 4px;
	color: white;
	display: inline-block;
	font-size: 1.4rem;
	line-height: 1.2;
	margin: 5px 0 0 0;
	padding: 1rem;
	width: 100%;
}

.postinfo.button_delete.button-inline {
	display: inline-block;
	margin-left: 10px;
	width: fit-content;
}

/* アーカイブページのコメント編集フォーム */
.admin-comment-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 15px;
	width: 100%;
}

.admin-comment-textarea {
	border: 1px solid #ccc;
	border-radius: 6px;
	box-sizing: border-box;
	font-size: 1.3rem;
	line-height: 1.3;
	padding: 5px;
	resize: vertical;
	width: 100%;
}

.update-comment-button {
	align-self: flex-end;
	background-color: #6b1686;
	border-radius: 4px;
	border-style: none;
	color: #fff;
	font-size: 1.2rem;
	padding: 5px 10px;
}

/* survey-answer-cardのスタイル統一 */
.survey-answer-card {
	background: #fff;
	border: var(--bg-4) solid 1px;
	border-radius: 6px;
	height: 100%;
}

.survey-answer-postinfo-wrapper {
	align-items: stretch;
	background-color: var(--bg-2);
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: space-between;
	padding: 1rem;
}

.survey-answer-postinfo-top {
	flex-grow: 1;
}

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

.survey-answer-postinfo-top .question-text {
	color: #333;
	font-weight: bold;
}

.survey-answer-postinfo-top .answer-text {
	background: #f8f9fa;
	border-left: 4px solid #007cba;
	border-radius: 0 4px 4px 0;
	margin: 10px 0;
	padding: 10px 15px;
}

.admin-comment-section {
	background: #f5f5f5;
	border-radius: 6px;
	margin-top: 15px;
	padding: 15px;
}

.admin-comment-title {
	color: #666;
	font-size: 0.9rem;
	font-weight: bold;
	margin-bottom: 5px;
}

.survey-answer-postinfo-bottom {
	align-items: flex-end;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
}

/* ユーザー削除ボタンを一時的に非表示 */
/* 復活させる場合は下記の2行をコメントアウトまたは削除してください */
.user-delete-form-hidden,
.user-delete-button-hidden {
	display: none !important;
}

/* デジタルギフト規約ページ - ボタンとエラー表示 */
.gift-button-wrapper {
	margin: 0 auto 10px auto;
	padding: 6rem .5rem 0 .5rem;
	text-align: center;
}

@media (min-width: 500px) {
	.gift-button-wrapper {
		max-width: 500px;
	}
}

.agreement-text {
	color: var(--tx-1);
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.4;
	margin-bottom: 1.5rem;
}

/* ギフトアイテムのコンテナ */
.gift-item {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-bottom: 3rem;
}

.gift-claim-button {
	border-radius: 8px;
	display: inline-block;
	padding: 1rem;
	text-decoration: none;
	transition: all 0.3s ease;
}

.gift-claim-button.gift-claim-link {
	background-color: var(--bg-1);
	padding: 3rem 0 2rem 0;
	position: relative;
	transition: transform 0.3s ease;
}

.gift-claim-button.gift-claim-link:hover {
	transform: translateY(2px);
}

/* 各部門の色分け（左側のアクセントカラー） */
.gift-claim-button.gift-type-photo {
	background-color: var(--bg-3);
}

.gift-claim-button.gift-type-oogiri {
	background-color: var(--bg-6);
}

.gift-claim-button.gift-type-survey {
	background-color: var(--bg-9);
}

/* クリック済みボタンのスタイル */
.gift-claim-button.gift-claim-link.claimed {
	pointer-events: auto;

	/*
    filter: opacity(0.5) saturate(0.3);
    */
}

.gift-claim-button img {
	display: block;
	height: auto;
	margin: 0 auto;
	max-width: calc(70% - 40px);
}

/* ギフト種別ラベル */
.gift-type-label {
	font-size: 1.4rem;
	font-weight: bold;
	margin: 1rem 0 0 0;
	text-align: center;
}

.gift-claim-button.gift-type-survey .gift-type-label {
	color: var(--tx-1);
}

.back-link {
	font-size: 1.4rem;
	margin-top: 1.5rem;
}

.back-link a {
	color: var(--tx-3);
	text-decoration: none;
}

.back-link a:hover {
	text-decoration: underline;
}

.gift-error {
	background-color: var(--bg-2);
	margin: 0;
	padding: 2rem;
	text-align: center;
	width: 100%;
}

@media (min-width: 500px) {
	.gift-error {
		max-width: 500px;
	}
}

.gift-error p {
	color: var(--tx-1);
	font-size: 1.4rem;
	line-height: 1.4;
	margin-bottom: 1rem;
}

/* デジタルギフトトースト表示 */
.gift-toast {
	backdrop-filter: blur(10px);
	background: rgba(255, 255, 255, 0.9);
	border-top: 1px solid #ddd;
	bottom: 0;
	box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
	left: 0;
	opacity: 0;
	padding: 1.5rem;
	position: fixed;
	right: 0;
	transition: opacity 0.5s ease-in-out;
	width: 100%;
	z-index: 100001;
}

.gift-toast-content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	position: relative;
	text-align: center;
}

.gift-toast-close {
	align-items: center;
	background: #999;
	border: none;
	border-radius: 50%;
	color: #fff;
	cursor: pointer;
	display: flex;
	font-size: 2rem;
	font-weight: bold;
	height: 32px;
	justify-content: center;
	line-height: 1;
	padding: 0;
	position: absolute;
	right: 10px;
	top: 0;
	transition: background 0.2s ease;
	width: 32px;
}

.gift-toast-close:hover {
	background: #666;
}

.gift-toast-title {
	color: #333;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.4;
	margin: 0;
}

.gift-toast-message {
	color: #666;
	font-size: 1.4rem;
	line-height: 1.4;
	margin: 0;
}

.gift-toast-button {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border: none;
	border-radius: 6px;
	box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
	color: #fff;
	display: inline-block;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.4;
	margin-top: 0.5rem;
	padding: 1.2rem 2.5rem;
	text-decoration: none;
	transition: all 0.3s ease;
}

.gift-toast-button:hover {
	box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
	transform: translateY(-2px);
}

.gift-toast-button small {
	display: block;
	font-size: 1.1rem;
	margin-top: 0.3rem;
	opacity: 0.9;
}

@media (max-width: 480px) {
	.gift-toast {
		padding: 1rem;
	}

	.gift-toast-title {
		font-size: 1.6rem;
	}

	.gift-toast-message {
		font-size: 1.2rem;
	}

	.gift-toast-button {
		font-size: 1.4rem;
		padding: 1rem 2rem;
	}
}

/* iOS LINE In-Appブラウザ対策 */
* {
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
}

input[type="file"] + label,
label[for="photo-input"] {
    font-size: 16px !important; /* iOSでズーム防止のため16px以上 */
    -webkit-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    line-height: 1.5;
    display: inline-block;
    min-height: 24px; /* 高さを固定 */
}

/* iOS Safariのデフォルトスタイルリセット */
input[type="file"] {
    -webkit-appearance: none;
    appearance: none;
    font-size: 16px !important;
}

