/*
Theme Name: GeneratePress Child
Template: generatepress
*/

/* 投稿者情報を消す */
.home .byline { 
     display:none !important; 
}
.archive .byline {
     display:none !important;
}
.single .byline {
    display: none !important;
}
.blog .byline {
    display: none !important;
}

/* コンタクトフォーム送信ボタン */
.wpcf7-form input[type="submit"] {
	width:100%;
	border-radius:5px;
}

/* reCAPTCHAロゴを消す */
.grecaptcha-badge { visibility: hidden; }

/* Wooショートコード2列 */
@media (max-width: 768px) {
    .woocommerce ul.products li.product, .woocommerce-page ul.products li.product, .woocommerce-page[class*="columns-"] ul.products li.product, .woocommerce[class*="columns-"] ul.products li.product {
        width: 48%;
        float: right;
    }
}

/* 必須マーク */
.must {
	background: #FF1A00;
}

/* 任意マーク */
.free {
	background: #999;
}
.must,
.free {
	color: #FFF;
	border-radius: 3px;
	font-size: 12px;
	margin-right: 10px;
	padding: 5px 10px;
	letter-spacing: 0.2em;
}

/* テーブルの1列目をセル内改行をしないようにする */
.col1-nowrap td:nth-of-type(1) { white-space: nowrap;}

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

/*買取リストmetaタグ調整 */
.sku_wrapper {
	display: block;
}
.posted_in{
	display: block;
}
/*一時的に非表示 */
.hidden-block {
  display: none;
}
/*買取個数を非表示*/
.single-product .quantity {
    display: none;
}

/* 商品ページ「カートに追加」ボタンを大きくする */
.single_add_to_cart_button {
    font-size: 20px !important; 
    padding: 15px 30px !important; 
    width: 100% !important;
}
/* 「カートに追加」ボタンカスタマイズ*/
.woocommerce ul.products li.product .button {
	display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* 商品名を4行分で固定 */
.woocommerce ul.products li.product h2 {
    display: -webkit-box;
    -webkit-line-clamp: 4;   /* 表示行数 */
    -webkit-box-orient: vertical;
    overflow: hidden;

    line-height: 1.4;
    height: calc(1.4em * 4);   /* 4行分の高さ固定 */
    margin-bottom: 10px;
}

/*買取価格改行しない*/
.price {
    white-space: nowrap;
}

/*買取価格を大きく表示*/
.woocommerce-Price-amount {
    font-weight: 700;
	font-size: 1.3em;
}

/*個別ページ商品名を小さく表示*/
.single-product h1.product_title {
    font-size: 22px !important;
    line-height: 1.4;
	font-weight: 700;
}

/*注文メモ調整*/
.woocommerce-checkout .woocommerce-additional-fields textarea#order_comments {
    height: 300px !important; 
}

/* 完了画面 上部サマリーの支払い方法 */
.woocommerce-order-overview__payment-method {
    display: none;
}

/* ラップ内のみ横スクロール */
.horizontal-products ul.products {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 16px;
    padding-bottom: 10px;
}

/* 商品カード幅固定 */
.horizontal-products ul.products li.product {
    flex: 0 0 220px;
    max-width: 220px;
}
@media (max-width: 767px) {
    .horizontal-products ul.products li.product {
        flex: 0 0 70%;
        max-width: 70%;
    }
}

/*無限ループカルーセル */
@keyframes infinity-scroll-right {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0%);
  }
}

.scroll-infinity__list--right {
  animation: infinity-scroll-right 80s infinite linear!important;
}

.scroll-infinity__wrap {
  display: flex;
  overflow: hidden;
	width: 100%;
}

.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0!important;
  margin: 0!important;
}

.scroll-infinity__item {
  width: calc(100vw / 6);
  margin-bottom: 40px;
}

.scroll-infinity__item > img {
  width: 100%;
	height: 200px;
}

@media screen and (max-width: 640px) {
/* SP直下に置く！１番下はNG */
  .scroll-infinity__list--right {
    animation: infinity-scroll-right 80s infinite linear;
    will-change: transform;
  }
  .scroll-infinity__item {
    width: 80vw;   /* ←ここ変更（拡大） */
    margin-right: 16px;  /* 少し見せる余白 */
    margin-bottom: 20px;
  }
  .scroll-infinity__item > img {
    width: 100%;
    height: 140px;
    object-fit: cover;   /* ←画像崩れ防止（重要） */
  }
}

/* スライダーと固定コンテンツ全体 */
.hero-slider-wrap {
	position: relative;
	overflow: hidden;
}

/* 背景として流れるスライダー */
.hero-slider-bg {
	position: relative;
	z-index: 1;
	margin: 0;
}

/* スライダー上に固定する画像・文字 */
.hero-slider-overlay {
	position: absolute;
	inset: 0;
	z-index: 5;

	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	padding: 30px;
	text-align: center;

	/* 下のスライダー矢印などを操作可能にする */
	pointer-events: none;
}

/* 固定部分のリンクやボタンは操作可能にする */
.hero-slider-overlay a,
.hero-slider-overlay button {
	pointer-events: auto;
}

/* 固定画像が大きくなりすぎないようにする */
.hero-slider-overlay img {
	width: auto;
	max-width: min(500px, 80vw);
	height: auto;
}

/* 文字の横幅 */
.hero-slider-overlay p,
.hero-slider-overlay h1,
.hero-slider-overlay h2 {
	max-width: 800px;
}

@media (max-width: 767px) {
	.hero-slider-overlay {
		padding: 20px;
	}

	.hero-slider-overlay img {
		max-width: 70%;
	}

	.hero-slider-overlay h1,
	.hero-slider-overlay h2 {
		font-size: 24px;
	}
}

/* ========================================
   イベント一覧
======================================== */
.torejaras-event-list {
	display: grid;
	gap: 18px;
	width: 100%;
}

.torejaras-event-card {
	display: grid;
	grid-template-columns:
		minmax(180px, 0.8fr)
		minmax(260px, 1.35fr)
		minmax(240px, 1fr);
	width: 100%;
	background: #fff;
	border: 1px solid #d9d9d9;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* 3カラム共通 */

.torejaras-event-card__left,
.torejaras-event-card__center,
.torejaras-event-card__right {
	min-width: 0;
	padding: 22px;
}

.torejaras-event-card__center,
.torejaras-event-card__right {
	border-left: 1px solid #e3e3e3;
}

/* 左列 */

.torejaras-event-card__left {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.torejaras-event-card__date {
	width: 100%;
	margin-bottom: 12px;
}

.torejaras-event-card__year-month {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
}

.torejaras-event-card__day-row {
	display: flex;
	align-items: baseline;
	justify-content: center;
	margin-top: 2px;
}

.torejaras-event-card__day {
	font-size: 42px;
	font-weight: 800;
	line-height: 1;
}

.torejaras-event-card__weekday {
	margin-left: 3px;
	font-size: 14px;
	font-weight: 700;
}

.torejaras-event-card__thumbnail-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 150px;
	height: 80px;
	margin: 5px auto 12px;
}

.torejaras-event-card__thumbnail {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.torejaras-event-card__left-footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin-top: auto;
}

.torejaras-event-card__card-name {
	font-size: 13px;
	font-weight: 700;
	line-height: 1.4;
}

/* 公認・非公認 */

.torejaras-event-card__type {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	padding: 4px 9px;
	color: #fff;
	background: #777;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, 0.25),
		0 1px 2px rgba(0, 0, 0, 0.15);
}

.torejaras-event-card__type.is-official {
	background: #c62828;
}

.torejaras-event-card__type.is-unofficial {
	background: #278044;
}

/* 中央列 */

.torejaras-event-card__center {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.torejaras-event-card__title {
	margin: 0 0 20px;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.45;
}

.torejaras-event-card__details {
	display: grid;
	gap: 10px;
	margin: 0;
}

.torejaras-event-card__detail {
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 12px;
	align-items: baseline;
}

.torejaras-event-card__detail dt {
	font-size: 14px;
	font-weight: 700;
}

.torejaras-event-card__detail dd {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
}

/* 右列・備考 */

.torejaras-event-card__right {
	font-size: 14px;
	line-height: 1.7;
}

.torejaras-event-card__notes-title {
	margin: 0 0 12px;
	font-size: 16px;
	font-weight: 800;
}

.torejaras-event-card__notes > :first-child {
	margin-top: 0;
}

.torejaras-event-card__notes > :last-child {
	margin-bottom: 0;
}

.torejaras-event-card__notes img {
	max-width: 100%;
	height: auto;
}

.torejaras-event-card__no-notes {
	color: #777;
}

/* イベントなし */

.torejaras-no-events {
	padding: 30px 20px;
	background: #f5f5f5;
	border-radius: 8px;
	text-align: center;
}

/* モバイル */

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

	.torejaras-event-card {
		grid-template-columns: 1fr;
	}

	.torejaras-event-card__left,
	.torejaras-event-card__center,
	.torejaras-event-card__right {
		padding: 18px;
	}

	.torejaras-event-card__center,
	.torejaras-event-card__right {
		border-left: 0;
		border-top: 1px solid #e3e3e3;
	}

	.torejaras-event-card__left {
		display: grid;
		grid-template-columns: 90px minmax(0, 1fr);
		gap: 15px;
		text-align: left;
	}

	.torejaras-event-card__date {
		grid-row: 1 / 3;
		margin: 0;
		text-align: center;
	}

	.torejaras-event-card__day {
		font-size: 38px;
	}

	.torejaras-event-card__thumbnail-wrap {
		width: 100%;
		max-width: none;
		height: 70px;
		margin: 0;
		justify-content: flex-start;
	}

	.torejaras-event-card__thumbnail {
		width: auto;
		max-width: 100%;
	}

	.torejaras-event-card__left-footer {
		justify-content: flex-start;
		margin-top: 0;
	}

	.torejaras-event-card__title {
		margin-bottom: 15px;
		font-size: 20px;
	}

	.torejaras-event-card__detail {
		grid-template-columns: 80px minmax(0, 1fr);
	}

}
/* ========================================
   イベント絞り込み検索フォーム
======================================== */

.torejaras-event-filter {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin-bottom: 18px;
	padding: 24px;
	background: #f7f7f7;
	border: 1px solid #ddd;
	border-radius: 10px;
}

/* 開催月・カードタイトル */

.torejaras-event-filter__item {
	display: grid;
	grid-template-columns: 140px minmax(0, 1fr);
	gap: 18px;
	align-items: center;
}

.torejaras-event-filter__item label {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
}

.torejaras-event-filter__item select {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 40px 0 14px;
	background-color: #fff;
	border: 1px solid #bbb;
	border-radius: 5px;
	font-size: 15px;
	line-height: 1;
}

/* 開催種別 */

.torejaras-event-filter__type {
	display: grid;
	grid-template-columns: 140px repeat(3, auto);
	gap: 18px;
	align-items: center;
	margin: 0;
	padding: 0;
	border: 0;
}

.torejaras-event-filter__type {
	display: grid;
	grid-template-columns: 140px auto auto auto;
	gap: 18px;
	align-items: center;
}

.torejaras-event-filter__type-title{
	font-size:14px;
	font-weight:700;
}

.torejaras-event-filter__type label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 14px;
	cursor: pointer;
}

.torejaras-event-filter__type input[type="radio"] {
	width: 17px;
	height: 17px;
	margin: 0;
	cursor: pointer;
}

/* 検索ボタン */

.torejaras-event-filter__button-wrap {
	display: flex;
	justify-content: center;
	margin-top: 6px;
}

.torejaras-event-filter__button {
	width: min(100%, 420px);
	min-height: 48px;
	margin: 0;
	padding: 10px 30px;
	border: 0;
	border-radius: 5px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	transition:
		opacity 0.2s ease,
		transform 0.2s ease;
}

.torejaras-event-filter__button:hover {
	opacity: 0.82;
}

.torejaras-event-filter__button:active {
	transform: translateY(1px);
}

/* 検索結果件数 */

.torejaras-event-result-count {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	text-align: right;
}

/* ========================================
   モバイル
======================================== */

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

	.torejaras-event-filter {
		gap: 16px;
		padding: 18px;
	}

	.torejaras-event-filter__item {
		grid-template-columns: 1fr;
		gap: 7px;
	}

	.torejaras-event-filter__item select {
		height: 46px;
	}

	.torejaras-event-filter__type {
		grid-template-columns: repeat(3, 1fr);
		gap: 10px;
	}

	.torejaras-event-filter__type legend {
		grid-column: 1 / -1;
		margin-bottom: -2px;
	}

	.torejaras-event-filter__type label {
		justify-content: center;
		min-height: 42px;
		padding: 8px 5px;
		background: #fff;
		border: 1px solid #ccc;
		border-radius: 5px;
	}

	.torejaras-event-filter__button-wrap {
		margin-top: 2px;
	}

	.torejaras-event-filter__button {
		width: 100%;
		min-height: 50px;
	}

	.torejaras-event-result-count {
		text-align: left;
	}

}

/* ==============================
   抽選販売・応募フォーム一覧
============================== */

.torejaras-lottery-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	width: 100%;
	margin: 0;
	padding: 0;
}

/* カード */
.torejaras-lottery-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid #e3e3e3;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* サムネイル領域 */
.torejaras-lottery-card__thumbnail {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f3f3f3;
}

/* 画像リンク */
.torejaras-lottery-card__image-link {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	text-decoration: none !important;
}

/* 本文内の最初の画像 */
.torejaras-lottery-card__image {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	transition: transform 0.25s ease;
}

/* 画像ホバー */
.torejaras-lottery-card__image-link:hover
.torejaras-lottery-card__image {
	transform: scale(1.03);
}

/* 画像がない場合 */
.torejaras-lottery-card__no-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: #f3f3f3;
	color: #999;
	font-size: 13px;
	letter-spacing: 0.08em;
}

/* コンテンツ */
.torejaras-lottery-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 18px;
}

/* 投稿タイトル */
.torejaras-lottery-card__title {
	margin: 0 0 18px;
	padding: 0;
	color: #222;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.5;
}

/* タイトルリンク */
.torejaras-lottery-card__title-link,
.torejaras-lottery-card__title-link:visited {
	color: #222 !important;
	text-decoration: none !important;
}

.torejaras-lottery-card__title-link:hover,
.torejaras-lottery-card__title-link:focus {
	color: #575760 !important;
	text-decoration: none !important;
}

/* ボタン配置 */
.torejaras-lottery-card__button-wrap {
	margin-top: auto;
}

/* ボタン */
.torejaras-lottery-card__button,
.torejaras-lottery-card__button:visited {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 46px;
	padding: 10px 16px;
	background: #575760;
	border: 1px solid #575760;
	border-radius: 4px;
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease;
}

.torejaras-lottery-card__button:hover,
.torejaras-lottery-card__button:focus {
	background: #B2B2BE;
	border-color: #B2B2BE;
	color: #fff !important;
	text-decoration: none !important;
}

/* 投稿がない場合 */
.torejaras-no-lottery {
	margin: 30px 0;
	padding: 20px;
	background: #f7f7f7;
	border: 1px solid #ddd;
	border-radius: 6px;
	color: #666;
	font-size: 16px;
	text-align: center;
}

/* タブレット */
@media screen and (max-width: 900px) {

	.torejaras-lottery-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px;
	}

}

/* スマートフォン */
@media screen and (max-width: 600px) {

	.torejaras-lottery-list {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.torejaras-lottery-card__content {
		padding: 16px;
	}

	.torejaras-lottery-card__title {
		margin-bottom: 14px;
		font-size: 17px;
	}

}
/* ==============================
   抽選販売の応募受付状態
============================== */

.torejaras-lottery-card__status-wrap {
	margin: 0 0 18px;
}

/* 公認・非公認バッジと同じような形 */
.torejaras-lottery-card__status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 4px 12px;
	border-radius: 999px;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.3;
	white-space: nowrap;
}

/* 応募受付中：公認と同じ赤 */
.torejaras-lottery-card__status.is-accepting {
	background: #d63b3b;
	color: #fff;
}

/* 応募期間外：非公認と同じ緑 */
.torejaras-lottery-card__status.is-closed {
	background: #398c5a;
	color: #fff;
}