/*
Theme Name:ships child
Theme URI:
Description:WordPressテーマ「SHIPS」の自作子テーマです。
Template:ships_tcd098
Author:Design Plus
Author URI:https://tcd-theme.com/tcd-w/
Version:1.16
*/

/* LLAR */
.llar_notification_login_page {
	font-size: 100% !important;
	width: 300px !important;
	padding: 10px !important;
	background: #000 !important;
	color: #fff !important;
}
.llar_notification_login_page .close-button {
	color: #fff;
}

/* CF7 */
.wpcf7 {
    margin: 0 !important;
}
.wpcf7 textarea {
	height: 200px !important;
}
.wpcf7 .wpcf7-submit {
	background-color: #8f8667;
}
.wpcf7 .wpcf7-submit:hover {
	background-color: #bfa545;
}

.post_content p {
	margin: 0 0 1em 0;
}

/* サイト全体：画像の長押し保存・ドラッグ保存を抑止 */
img {
	-webkit-touch-callout: none;   /* iOSの長押しメニュー */
	-webkit-user-select: none;
	user-select: none;
	-webkit-user-drag: none;       /* PCのドラッグ保存 */
}

/* ===== ヘッダーCSS ===== */
@media only screen and (max-width: 1221px) {
#header {
	position: sticky;
}
	}

@media screen and (min-width: 1025px) {
#header_logo {
	min-height: 170px;
}
}

@media only screen and (max-width: 1221px) {
#header_logo, #drawer_logo {
	left: 0;
}
}

@media only screen and (max-width: 1221px) {
#mobile_menu a {
	background: #a19772;
}
}

#header_logout_button a {
	height: 50px;
	line-height: 50px;
}
@media only screen and (max-width: 1000px) {
#side_button {
	position: sticky;
	width: 100%;
	bottom: 0;
	z-index: 1;
}
	}
@media screen and (min-width: 1024px) {
#header_logout_button {
	display: flex;
	flex-wrap: wrap;
}
	}
@media screen and (min-width: 1024px) {
#side_button.footer_login_button {
	display: block;
}
	}

#site_desc {
	padding: 20px 20px;
	color: #bfa545;
}

.widget_content {
	padding: 0;
	margin: 20px;
	opacity: 1;
	overflow: hidden;
	position: relative;
	cursor: pointer;
	display: inline-block;
}
.widget_content::before {
	background-color: #fff;
	content: "";
	position: absolute;
	top: -100px;
	left: 0;
	width: 30px;
	height: 100%;
	opacity: 0;
	pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  .widget_content:hover::before {
	animation: kiran 0.5s linear;
  }
}
@media (hover: none) {
  .widget_content:active::before {
	animation: kiran 0.5s linear;
  }
}
@keyframes kiran {
	0%   { transform: scale(2)  rotate(45deg);  opacity: 0; }
	20%  { transform: scale(20) rotate(45deg);  opacity: 0.6; }
	40%  { transform: scale(30) rotate(45deg);  opacity: 0.4; }
	80%  { transform: scale(45) rotate(45deg);  opacity: 0.2; }
	100% { transform: scale(50) rotate(45deg);  opacity: 0; }
}

.site_desc_mobile {
	position: absolute;
	top: 50%;
	right: 60px;
	transform: translateY(-50%);
	font-size: 12px;
	color: #bfa545;
}
.membership-mypage .site_desc_mobile {
	right: 75px;
}
@media screen and (min-width: 1220px) {
.site_desc_mobile {
	display: none;
}
	}
/*
.site_desc_mobile2 {
	padding-top: 20px;
	font-size: 18px;
	color: #bfa545;
	text-align: center;
}
*/
body.home #main_content_header {
	border-bottom: none;
	background-color: rgba(0, 0, 0, 0.5);
}
body.home #main_content_header.login {
	position: absolute;
	background: rgba(0, 0, 0, 0.5);
}

.widget_content:last-of-type {
	margin-bottom: -25px;
}

@media only screen and (max-width: 1221px) {
#main_content {
	overflow: clip;
}
	}

.single-news #page_header.small, .post-type-archive-voice #page_header, .post-type-archive-faq #page_header {
	display: none;
}

.trademark {
	display: block;
	font-size: 12px;
	color: #888;
	padding: 0 20px;
	text-align: left;
}
@media only screen and (max-width: 1221px) {
.trademark {
	font-size: 10px;
	padding: 0;
   	padding-top: 5px;
}
	}

/* ファーストビュー */
:root {
	--offset: 0px;
	--vh: 1vh;
}
#header_slider_wrap,
#header_slider .item,
#header_slider.image_slider .item.p-effect-slidein {
	height: calc(100svh - var(--offset));
}
@supports not (height: 100svh) {
	#header_slider_wrap,
	#header_slider .item,
	#header_slider.image_slider .item.p-effect-slidein {
	height: calc(var(--vh) * 100 - var(--offset));
  }
}
#header_slider { height: 100%; }
@media (max-width: 1025px) {
	:root { --offset: 60px; }
}
@media (max-width: 1000px) {
	:root { --offset: 110px; }
}
#header_slider .item {
	background-attachment: scroll;
	transition: none;
}
#header_slider .item img,
#header_slider .item .bg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

#header_slider .catch {
	text-shadow: 1px 1px 5px #8f8667, -1px 1px 5px #8f8667, 1px -1px 5px #8f8667, -1px -1px 5px #8f8667;
	font-size: 40px !important;
	opacity: 0;
	transform: translateY(10px);
	animation: catchFade .8s ease-out .15s forwards;
}
@keyframes catchFade {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: translateY(0); }
}
@media only screen and (max-width: 800px) {
#header_slider .catch {
	font-size: 20px !important;
}
}

.catch_desc {
	font-size: 1.2em;
	font-weight: 600;
	text-align: center;
	color: #003040;
	margin-top: 10px;
}
.cd02 {
	margin: 0 15px;
}
.cd01, .cd02, .cd03 {
	background-color: rgba(255,255,255,0.8);
	padding: .1em .1em;
	border-radius: .1em;
	opacity: 0;
	transition: opacity 500ms ease-out;
}
.cd01::before,
.cd02::before,
.cd03::before {
	content: "\EA10";
	font-family: 'design_plus';
	padding-right: 2px;
	font-size: 1.5em;
	vertical-align: sub;
}
.cd01.is-in,
.cd02.is-in,
.cd03.is-in {
	opacity: 1;
}
@media (prefers-reduced-motion: reduce){
.cd01, .cd02, .cd03 { opacity: 1; transition: none; }
}

#header_slider .link_button {
	opacity: 0;
	transform: translateY(10px);
	animation: catchFadeIn .8s ease-out .15s forwards;
}
@keyframes catchFadeIn {
	from { opacity: 0; transform: translateY(0); }
	to   { opacity: 1; transform: translateY(0); }
}

@media only screen and (max-width: 360px) {
.catch_desc {
	font-size: 1.1em;
}
	}

/* ===== ヘッダースライダー：ズームのみ===== */
#header_slider .item.slick-current {
	animation: zoomUp 10s linear forwards;
}
@keyframes zoomUp {
	0%   { transform: scale(1); }
	100% { transform: scale(1.15); }
}

/* スクロールボタン */
#main_contents_link {
	display:block; height:70px; width:100%; text-decoration:none; position:absolute; bottom:0px; right:0; left:0; margin:auto; z-index:1000;
	opacity: 0;
	transform: translateY(10px);
	animation: catchDown .8s ease-out .15s forwards;
}
@keyframes catchDown {
	from { opacity: 0; transform: translateY(-10px); }
	to   { opacity: 1; transform: translateY(0); }
}
#main_contents_link .scroll_line {
	width:3px; height:50px; background:rgba(255,255,255,0.7); display:block; overflow:hidden;
	position:absolute; bottom:0px; left:0px; right:0px; margin:auto;
}
#main_contents_link .scroll_line:after {
	width:1px; height:30px; background:#8f8667; display:block; content:'';
	position:absolute; top:0px; left:0px; right:0px; margin:auto;
	animation: line_animation 1.8s ease infinite 0s;
}
#main_contents_link .scroll_label {
	display:block; color:#8f8667; font-weight:600; width:100%; text-align:center; text-shadow: 1px 1px #fff;
	position:absolute; top:0px;
	-webkit-transition: all 0.3s ease; transition: all 0.3s ease;
}
#main_contents_link:hover .scroll_label { opacity:0.5; }
@-webkit-keyframes line_animation {
	0% { top:-30px; }
	100% { top:50px; }
}
@keyframes line_animation {
	0% { top:-30px; }
	100% { top:50px; }
}

/* ===== ボディCSS ===== */
.header_desc {
	text-align: center;
}

.siq-txt {
	color: #bfa545;
	font-size: 1.3em;
	letter-spacing: 0.1em;
}

#cb_content_1 p {
	margin-bottom: 1em;
}
.tcd_chart {
	margin-bottom: 10px;
}
.research {
	text-align: center;
	margin-bottom: 50px;
	font-size: 0.8em;
}
@media only screen and (max-width: 600px) {
.tcd_chart .chart_labels .item {
	font-size: 13px;
}
.research {
	margin-bottom: 30px;
	line-height: 1.2;
}
}

a.design_button.open_register_modal.no_move_page {
	box-shadow: 0 0 10px rgba(205,185,111,1);
}
a.design_button.open_register_modal.no_move_page:hover {
	box-shadow: 0 0 10px rgba(0 0 0 / 0);
}
.link_button_cb {
	margin-top: 60px;
	text-align: center;
}
@media only screen and (max-width: 600px) {
.link_button_cb {
	margin-top: 40px;
}
}
@media only screen and (max-width: 850px) {
.link_button_cb {
	margin-top: 50px;
}
}

@media only screen and (max-width: 600px) {
.index_tab_post {
	padding: 15px;
}
}

.voice_list .item {
	position: relative;
}
.voice_list .item:before {
	content: "";
 	position: absolute;
	right: 0;
	top: 0;
	border-width: 0 23px 23px 0;
	border-style: solid;
	-webkit-transform: rotate(0deg);
	transform: rotate(0deg);
	border-color: #fff #efede8 #d2cfc2;
}

@media only screen and (max-width: 600px) {
.faq_list .title span {
	padding: 24px 40px 20px 50px;
}
.faq_list .title span:before {
	left: 15px;
}
.faq_list .title span:after {
	left: 21.5px;
}
.faq_list .title:after {
	right: 15px;
}
}
ul.duration {
	display: grid;
	grid-template-columns: max-content;
	list-style: none;
	margin-left: 0;
	margin-top: -1em;
	margin-bottom: 1em;
}
.duration li {
	text-align: end;
}
ol.digitization, ul.prohibited {
	margin-top: -1em;
}

/* ===== フッターCSS ===== */
#footer_site_desc {
	background-color: #000;
}
#footer_free {
	padding: 40px 0;
	background:linear-gradient(90deg, #fff6d9,#ffefef);
	border-bottom: none;
	background-size: 200% 200%;
	animation: gradient 10s ease infinite;
}
@keyframes gradient{
0% {
	background-position: 0% 50%;
}
50% {
	background-position: 100% 50%;
}
100% {
	background-position: 0% 50%;
}
}

/* フッターリンク */
@media only screen and (max-width: 850px) {
#footer_free .post_content {
	width: 80%;
}
}
.gallery{
	display: grid;
	grid-template-columns: 1fr;
	grid-template-areas:
	"left"
	"right";
}
.item--left   { grid-area: left; }
.item--right  { grid-area: right; }

.gallery img{
	width: 100%;
	height: auto;
	display: block;
	-webkit-transition: opacity 0.3s ease-in-out;
	transition: opacity 0.3s ease-in-out;
}
.gallery img:hover { opacity:0.5; }
@media (min-width: 768px){
.gallery{
	gap: 25px;
	grid-template-columns: 250px 250px;
	grid-template-areas: "left right";
	justify-content: center;
}
}

/* ===== 追加CSS ===== */
/* PC改行 */
@media screen and (min-width: 768px) {
.pc-br {
	display: block;
}
}
@media screen and (max-width: 767px) {
.pc-br {
	display: none;
}
}
/* SP改行 */
@media screen and (min-width: 768px) {
.m-br {
	display: none;
}
}

/* 強調ドット */
.emphasis-dots {
	padding-top: .45em;
	background-position: top left -1px;
	background-repeat: repeat-x;
	background-size: 1em .3em;
	background-image: radial-gradient(.10em .10em at center center, #bfa545, #bfa545 100%, transparent);
}

/* ダブルアンダーライン */
.double-underline {
	border-bottom: 3px double #bfa545;
	padding-bottom: 1px;
}

/* ストライプマーカー
.stripe-marker {
background-image: repeating-linear-gradient(-45deg,
	#fcf69f 0, #fcf69f 2px,
	transparent 2px, transparent 4px);
}
 */

/* ===== フォームCSS ===== */
#modal_overlay #register_modal_wrap .desc a {
	color: #000;
}
#modal_overlay #register_modal_wrap .register_form_area p {
	line-height: 2;
}
.terms-link {
	font-size: 12px;
}
@media only screen and (max-width: 850px) {
#modal_overlay #register_modal_wrap .register_form_area {
	padding-top: 10px;
}
.terms-link {
	font-size: 10px;
}
}
#register_modal_wrap label.design_checkbox {
	justify-content: center;
}
.form-message, .form-error {
	padding: 10px;
	text-align: center;
}

/* ===== カードCSS ===== */
.benefit-cards {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	margin-left: 0 !important;
	list-style: none !important;
}
.card {
	background: #efede8;
	color: #003040;
	padding: 1rem 1.25rem;
	border-radius: 12px;
}
.card dt {
	font-size: 1.125rem;
	letter-spacing: 0.1rem;
	margin-bottom: .25rem;
	text-align: center;
}
.card dd {
	line-height: 1.7;
}

.register_form_area div:has(input[required]):after, .register_form_area div:has(select[required]):after, .register_form_area div:has(textarea[required]):after {
	display: none;
}

/* ===== フローCSS ===== */
.siq-flow {
	--muted: #d1c9ae;
	--line: #d1c9ae;
	--accent: #bfa545;
	--icon-size: clamp(80px, 12vw, 110px);
	--num-size: clamp(24px, 5vw, 48px);
	--gapX: 24px;
	--gapY: 24px;
	--left-col: calc(var(--icon-size) + 40px);
	width: 100%;
	max-width: 700px;             /* ★常に700px以内 */
	margin: 0 auto;
	color:#333;
	line-height:1.65;
	font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP", "Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;
	position: relative;
}
.siq-flow *, .payme-flow *::before, .payme-flow *::after { box-sizing: border-box; }

/* 回り込みの無効化 */
.siq-flow img { max-width:100%; height:auto; display:block !important; float:none !important; }

/* 共通：各STEPは内容を縦積み */
.siq-flow .cf-step {
	margin: 0 !important; padding:0 !important;
}
.siq-flow .cf-num {
	font-size: var(--num-size);
	font-weight: 800; line-height: 1; letter-spacing: .06em; color: var(--muted);
	user-select: none;
}
.siq-flow .cf-icon {
  width: var(--icon-size); height: var(--icon-size);
  border-radius: 50%; border: 2px solid var(--line);
  display: grid !important; place-items: center; background: #f8f8f8;
  position: relative; z-index: 1;
}
.siq-flow .cf-icon img { width:70%; height:70%; object-fit:contain; }
.siq-flow .cf-title { margin: 6px 0 0; font-size: clamp(18px, 2.6vw, 20px); font-weight: 600; }
.siq-flow .cf-desc { margin: 2px 0 0; font-size: clamp(14px, 2.2vw, 16px); color: var(--accent); font-weight: 600; }
.cf-desc2 { text-align: center; font-weight: 600; padding-top: 10px; }

/* PC：3カラム横並び */
@media (min-width: 768px){
.siq-flow {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: var(--gapX);
	row-gap: 0;
	justify-items: center;
	align-items: start;
}
.siq-flow .cf-step {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
}
.siq-flow::before {
	content: "";
	position: absolute;
	left: calc((100% - (2 * var(--gapX))) / 6);
	right: calc((100% - (2 * var(--gapX))) / 6);
	top: calc(var(--num-size) + 14px + var(--icon-size)/2);
	height:2px; background: var(--line); z-index:0;
  }
.siq-flow .cf-step { z-index:1; }
}

/* SP：縦並び＋縦ライン */
@media (max-width: 767px) {
.siq-flow{
	display: grid;
	grid-template-columns: 1fr;
	row-gap: var(--gapY);
	--connector-gap: 6px;
}
.siq-flow .cf-step {
	display: grid !important;
	grid-template-columns: var(--left-col) 1fr;
	grid-template-areas:
	"num  text"
	"icon text";
	column-gap: 20px;
	align-items: center;
}
.siq-flow .cf-num { grid-area: num;  justify-self: center; align-self: end; }
.siq-flow .cf-icon { grid-area: icon; justify-self: center; }
.siq-flow .cf-text { grid-area: text; text-align: left; margin-top: 20px; }
.siq-flow .cf-icon::after {
	content: "";
	position: absolute;
	left:50%; transform:translateX(-50%);
	bottom: calc(-1 * var(--gapY));
	width:2px; height: var(--gapY);
	background: var(--line);
	height: calc(var(--gapY) - var(--connector-gap));
}
.siq-flow .cf-step:last-child .cf-icon::after{ display:none; }
}

/* ===== 会員ページCSS ===== */

#account_content_wrap .account_headline {
	margin: 0 0 20px 0;
}

/* 会員番号表示 */
.member-number-display {
    text-align: center;
    margin: 8px 0 20px;
    font-size: 14px;
    color: #666;
}
.member-number-value {
    font-family: 'Courier New', monospace;
    font-weight: bold;
    letter-spacing: 1px;
    color: #d9534f;
}

/* ランクバッジ表示 */
.member-rank-display {
    text-align: center;
    margin: 8px 0 12px;
}
.member-rank-display .rank-badge {
    display: inline-block;
    padding: 3px 14px;
    border-radius: 14px;
    font-size: 13px;
    font-weight: bold;
    color: #fff;
    letter-spacing: 1px;
}
.member-rank-display .rank-expires {
    display: inline-block;
    margin-left: 6px;
    font-size: 12px;
    color: #999;
}

/* クレジット残高表示 */
.credit-balance-display {
    text-align: center;
    margin: 12px 0 24px;
    padding: 16px;
    background: #f8f8f8;
    border-radius: 8px;
}
.credit-balance-label {
    font-size: 13px;
    color: #888;
    margin: 0 0 4px;
}
.credit-balance-value {
    font-size: 32px;
    font-weight: bold;
    color: #333;
    margin: 0;
    font-family: 'Courier New', monospace;
}
.credit-balance-unit {
    font-size: 14px;
    font-weight: normal;
    color: #888;
    margin-left: 2px;
}

/* タブ上部のキャンペーンバナー */
.campaign-banner-global {
    text-align: center;
	margin-top: 50px;
    padding: 16px 8px;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 8px;
	margin-bottom: -50px;
}
.campaign-banner-global .campaign-text a {
    font-weight: bold;
    font-size: 15px;
    color: #e65100;
    text-decoration: none;
}
.campaign-banner-global .campaign-text a:hover {
    text-decoration: underline;
}
.campaign-banner-global .campaign-expires {
    font-size: 11px;
    margin: 8px 0 0;
}
@media only screen and (max-width: 1000px) {
.campaign-banner-global {
	margin-bottom: 50px;
}
	}

.campaign-text {
	animation: poyon 2s ease-out infinite;
	line-height: 1.5;
}
@keyframes poyon {
  0%, 40%, 60%, 80% {
	transform: scale(1.0);
}
  50%, 70% {
	transform: scale(0.97);
}
	}

/* ============================================
   チケット購入フォーム
   ============================================ */
.ticket-purchase-form {
    max-width: 480px;
    padding: 24px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
}
.ticket-form-title {
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    margin: 0 0 20px;
    padding: 0 0 12px;
    border-bottom: 1px solid #eee;
}

/* ランク会員の価格表示 */
.ticket-rank-price {
    text-align: center;
    margin: 0 0 20px;
    padding: 12px;
    background: #f9f9f9;
    border-radius: 8px;
}
.ticket-rank-price .rank-badge {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: bold;
    color: #fff;
    margin-right: 8px;
}
.ticket-rank-price .rank-discount {
    font-size: 14px;
    font-weight: bold;
    color: #e65100;
    margin-right: 8px;
}
.ticket-rank-price .rank-unit-price {
    font-size: 16px;
    font-weight: bold;
}
/* アップグレード時の単価表示（プラチナ価格にハイライト） */
.rank-unit-price-upgrade {
    color: #a048c0;
    font-weight: bold;
}

/* アップグレード購入チェックボックス */
.ticket-upgrade-wrap {
    margin: 16px 0 12px;
    padding: 12px 16px;
    background: #fff9e6;
    border: 1px solid #f5c842;
    border-radius: 6px;
}
.ticket-upgrade-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    margin: 0;
}
.ticket-upgrade-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
}
.ticket-upgrade-label span {
    line-height: 1.4;
}

/* 価格表 ラジオボタン付き（デフォルト会員用） */
.ticket-price-table {
    margin: 0 0 20px;
}
.ticket-price-table table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
    cursor: pointer;
}
.ticket-price-table th {
    background: #f5f5f5;
    padding: 5px;
    text-align: center;
    font-weight: bold;
    border: 1px solid #e0e0e0;
}
.ticket-price-table td {
    padding: 5px;
    text-align: center;
    border: 1px solid #e0e0e0;
}
.tier-row {
    transition: background 0.2s;
    cursor: pointer;
}
.tier-row:hover {
    background: #f9f9f9;
}
.tier-row.tier-active {
    background: #fff8e1;
}
.tier-radio-cell {
    width: 36px;
}
.tier-radio-cell input[type="radio"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
}
.tier-discount {
    font-weight: bold;
    color: #e65100;
}

/* 数量入力 */
.ticket-quantity-wrap {
    margin: 0 0 20px;
    text-align: center;
}
.ticket-quantity-wrap label {
    display: block;
    font-size: 14px;
    font-weight: bold;
    margin: 0 0 8px;
}
.ticket-quantity-input {
    display: inline-flex;
    align-items: center;
    gap: 0;
    border: 1px solid #ccc;
    border-radius: 8px;
    overflow: hidden;
}
.qty-btn {
    width: 44px;
    height: 44px;
    border: none;
    background: #f5f5f5;
    font-size: 20px;
    cursor: pointer;
    color: #333;
    transition: background 0.2s;
}
.qty-btn:hover {
    background: #e0e0e0;
}
.ticket-quantity-input input[type="number"] {
    width: 60px;
    height: 44px;
    border: none;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    -moz-appearance: textfield;
}
.ticket-quantity-input input[type="number"]::-webkit-inner-spin-button,
.ticket-quantity-input input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* 割引誘導メッセージ */
.tps-upsell-message {
    text-align: center;
    padding: 10px;
    margin: 12px 0;
    background: #e3f2fd;
    border: 1px solid #90caf9;
    border-radius: 8px;
    font-size: 12px;
    color: #1565c0;
}
/* 最高帯の割引適用中メッセージ（黄緑背景） */
.tps-upsell-max {
    background: #e2ffb4 !important;
    border-color: #a5d66f !important;
    color: #3a6b0a !important;
}

/* 合計表示 */
.ticket-total-wrap {
    text-align: center;
    margin: 0 0 20px;
    padding: 16px;
    background: #f8f8f8;
    border-radius: 8px;
}
.ticket-unit-price {
    font-size: 14px;
    color: #666;
    margin: 0 0 4px;
}
.ticket-total {
    font-size: 24px;
    font-weight: bold;
    color: #333;
}

/* 購入ボタン */
.ticket-buy-btn {
    display: block;
    width: 100%;
    padding: 14px;
    border: none;
    border-radius: 8px;
    background: #333;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: background 0.2s;
}
.ticket-buy-btn:hover {
    background: #555;
}
.ticket-buy-btn:disabled {
    background: #aaa;
    cursor: not-allowed;
}
/* ボタン グレーアウト状態 */
.ticket-buy-btn-disabled {
    background: #ccc !important;
    cursor: not-allowed !important;
    color: #888 !important;
}
.ticket-buy-btn-disabled:hover {
    background: #ccc !important;
}
.ticket-note {
    text-align: center;
    font-size: 12px;
    color: #999;
    margin: 8px 0 0;
}

/* 購入完了・キャンセルメッセージ */
.ticket-purchase-message {
    text-align: center;
    padding: 12px 16px;
    border-radius: 8px;
    margin: 0 0 20px;
    font-size: 14px;
    transition: opacity 0.5s;
}
.ticket-purchase-success {
    background: #e8f5e9;
    border: 1px solid #a5d6a7;
    color: #2e7d32;
}
.ticket-purchase-cancel {
    background: #fff3e0;
    border: 1px solid #ffcc80;
    color: #e65100;
}


/* ============================================
   アップローダー
   ============================================ */

/* チケット残高バー */
.uh-balance-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 16px;
    background: #efede8;
    border-radius: 8px;
    margin: 10px 0 16px;
    font-size: 14px;
}
.uh-cost-info {
    color: #888;
    font-size: 12px;
}

/* ドロップゾーン */
.uh-dropzone {
    border: 2px dashed #ccc;
    border-radius: 12px;
    padding: 30px 5px;
    text-align: center;
    transition: border-color 0.2s, background 0.2s;
    margin: 0 0 16px;
}
.uh-dropzone.uh-dragover {
    border-color: #333;
    background: #f9f9f9;
}
.uh-dropzone-text {
    color: #888;
    font-size: 14px;
    margin: 0 0 12px;
    line-height: 1.6;
}
.uh-file-label {
    display: inline-block;
    padding: 8px 24px;
    background: #333;
    color: #fff;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    transition: background 0.2s;
}
.uh-file-label:hover {
    background: #555;
}
.uh-dropzone-note {
    color: #aaa;
    font-size: 12px;
    margin: 12px 0 0;
}

/* ファイルリスト */
.uh-file-list {
    margin: 0 0 16px;
}
.uh-file-item {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    background: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 6px;
    margin: 0 0 4px;
    font-size: 13px;
}
.uh-file-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.uh-file-size {
    color: #888;
    margin: 0 12px;
    font-size: 12px;
    white-space: nowrap;
}
.uh-file-remove {
    border: none;
    background: none;
    color: #d9534f;
    font-size: 18px;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}
.uh-file-remove:hover {
    color: #c9302c;
}

/* アップロードアクション */
.uh-upload-actions {
    text-align: center;
    margin: 0 0 16px;
}
.uh-consume-info {
    font-size: 14px;
    margin: 0 0 12px;
    color: #555;
}
.uh-submit-btn {
    display: inline-block;
    padding: 12px 48px;
    border: none;
    border-radius: 8px;
    background: #333;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: background 0.2s;
}
.uh-submit-btn:hover {
    background: #555;
}
.uh-submit-btn:disabled {
    background: #aaa;
    cursor: not-allowed;
}

/* 結果メッセージ */
.uh-upload-result {
    text-align: center;
    padding: 12px;
    border-radius: 8px;
    font-size: 14px;
    margin: 0 0 16px;
}
.uh-upload-success {
    background: #e8f5e9;
    border: 1px solid #a5d6a7;
    color: #2e7d32;
}

/* チケット不足 */
.uh-no-tickets {
    text-align: center;
    padding: 20px;
    color: #888;
}
.uh-balance-info {
    font-size: 16px;
    margin: 12px 0;
}
.uh-buy-link {
    display: inline-block;
    padding: 8px 24px;
    background: #8f8667;
    color: #fff !important;
    border-radius: 6px;
    text-decoration: none;
    font-size: 14px;
}
.uh-buy-link:hover {
    background: #bfa545;
}

/* 入稿履歴 */
.uh-upload-history {
    margin: 30px 0 0;
}
.uh-history-title {
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 12px;
    padding: 0 0 8px;
    border-bottom: 1px solid #eee;
}

/* ジョブテーブル（入稿・納品共通） */
.uh-jobs-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.uh-jobs-table th {
    background: #f5f5f5;
    padding: 8px 12px;
    text-align: left;
    font-weight: bold;
    border: 1px solid #e0e0e0;
}
.uh-jobs-table td {
    padding: 8px 12px;
    border: 1px solid #e0e0e0;
}

/* ステータスバッジ */
.uh-status {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: bold;
}
.uh-status-uploaded {
    background: #e3f2fd;
    color: #1565c0;
}
.uh-status-processing {
    background: #fff3e0;
    color: #e65100;
}
.uh-status-delivered {
    background: #e8f5e9;
    color: #2e7d32;
}

/* ダウンロードボタン */
.uh-download-btn {
    display: inline-block;
    padding: 4px 12px;
    background: #333;
    color: #fff !important;
    border-radius: 4px;
    text-decoration: none;
    font-size: 12px;
}
.uh-download-btn:hover {
    background: #555;
}

/* その他 */
.uh-no-items {
    text-align: center;
    color: #888;
    padding: 40px 20px;
}
.uh-loading {
    text-align: center;
    color: #888;
    padding: 20px;
}
.uh-error {
    text-align: center;
    color: #d9534f;
    padding: 20px;
}

/* 履歴・入稿履歴のスクロール制限 */
.uh-history-scroll {
    max-height: 400px;
    overflow-y: auto;
    border-radius: 3px;
}
.uh-history-scroll table {
    border: none;
}
.uh-history-scroll thead th {
    position: sticky;
    top: -1px;
    z-index: 1;
    background: #f5f5f5;
}

/* ファイル名セルの省略表示 */
.uh-filename-cell {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* サムネイル */
.uh-thumb-col {
    width: 50px;
    text-align: center;
    padding: 4px !important;
}
.uh-thumb {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 4px;
    cursor: pointer;
    transition: opacity 0.2s;
}
.uh-thumb:hover {
    opacity: 0.8;
}
.uh-thumb-icon {
    cursor: default;
}
.uh-thumb-icon:hover {
    opacity: 1;
}

@media (max-width: 768px) {
    #account_content_tab { display: flex; flex-wrap: wrap; ... }
    /* 中略 */
}
	
.uh-support-header {
	text-align: center;
	margin-bottom: 8px;
}
.uh-support-subtitle {
	font-size: 12px;
	color: #888;
}

#account_content_tab li.icon_type_icon a:before {
	top: 0;
}

/* ===== マイページ初期表示チラつき防止 ===== */
.mypage-tab-initializing #account_content_tab {
	visibility: hidden;
}
/* コンテンツ:会員情報を初期表示するチラつきを初期化中だけ抑える */
.mypage-content-initializing #account_edit {
	display: none !important;
}
.mypage-content-initializing #account_upload {
	display: block !important;
}

/* ===== タブのサブタイトル ===== */
#account_content_tab li a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1.3;
}
/* サブタイトル本体(小さめ・控えめな色) */
#account_content_tab li a .mypage-tab-sub {
	display: block;
	margin-top: 3px;
	font-size: 10px;
	color: #888;
	font-weight: normal;
}
@media only screen and (max-width: 850px) {
#account_content_tab a {
	padding: 0 3px;
}
	}

/* PC(スマホ幅以外)ではボタンとオーバーレイを出さない */
#mypage_ticket_button,
#mypage_sidebar_overlay {
	display: none;
}

@media screen and (max-width: 1221px) {

	/* チケット購入ボタン:画面右上に固定、60px × 60px */
	#mypage_ticket_button {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		position: fixed;
		top: 0;
		right: 0;
		width: 75px;
		height: 60px;
		z-index: 1000;
		background: #8f8667;
		color: #fff;
		text-decoration: none;
		line-height: 1.1;
	}
	#mypage_ticket_button .mypage_ticket_icon {
		font-size: 18px;
		line-height: 1;
		display: flex;
		margin-bottom: -10px;
		margin-top: -5px;
	}
	#mypage_ticket_button .mypage_ticket_label {
		font-size: 9px;
		text-align: center;
	}

	/* 背景オーバーレイ(暗い部分):普段は非表示、開いた時にフェード表示 */
	#mypage_sidebar_overlay {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.6);
		z-index: 1001;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0.3s ease;
	}

	/* 親ウィジェット枠:開いた時だけ表示を許可(中身フォームを見せるため)。
	   ただし枠自体は当たり判定を持たせず、フォームだけが操作対象になるようにする */
	.mypage-ticket-open #side_widget {
		display: block !important;
		position: fixed;
		top: 0;
		right: 0;
		height: 100%;
		z-index: 1002;
		background: transparent;
		pointer-events: none; /* 枠の余白部分はクリックを透過させ、背後のオーバーレイで閉じられる */
	}

/* チケット購入フォーム:画面中央に配置、普段は非表示。開いた時にフワッと表示 */
	#ticket-purchase-form {
		position: fixed;
		top: 50%;
		left: 50%;
		width: 85%;
		max-width: 360px;
		max-height: 85%;
		background: #fff;
		border-radius: 12px;
		z-index: 1002;
		overflow-y: auto;
		padding: 30px 20px;
		box-sizing: border-box;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
		opacity: 0;
		visibility: hidden;
		transform: translate(-50%, -50%) scale(0.96);
		transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
		pointer-events: auto;
	}

	/* 開いた状態:オーバーレイ表示 + フォームをフワッと中央表示 */
	.mypage-ticket-open #mypage_sidebar_overlay {
		opacity: 1;
		visibility: visible;
	}
	.mypage-ticket-open #ticket-purchase-form {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, -50%) scale(1);
	}
	
/* WPバージョン 7.0によるレイアウト崩れ一時防止 
@media only screen and (max-width: 1221px) {
#main_content {
	margin-top: 60px;
}
	}
*/
/*
.widget_headline::after {
	content: '';
	position: absolute;
	right: 0;
	top: 0;
	border-width: 0 20px 20px 0;
	border-style: solid;
	border-color: #77715c #fff #77715c;
	box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.15);
}
.drawer_headline::after {
	border-color: #77715c #f8f8f8 #77715c;
}
*/