/* ------------------------------------------------------------------
 * FAFF Theme 独自CSS
 * (site.css / reset.css だけではカバーしきれない、個別ページ・
 *  個別機能ごとの追加スタイルをまとめたファイル)
 *
 * 目次(上から並んでいる順)
 *  1. 共通の小さなユーティリティ(ロゴ代替テキスト・非表示用など)
 *  2. 予約フォーム(Contact Form 7)デザイン
 *  3. 予約フォーム内 上映スケジュール選択
 *  4. 作品スライダー(作品詳細ページのギャラリー)
 *  5. 作品カード追加分(ポップアップ廃止に伴う調整)・パンくずリスト
 *  6. 上映スケジュール(SCHEDULEセクション)
 *  7. 上映作品カードの「監督のトーク」バッジ
 *  8. お知らせ詳細・一覧ページ(single-news.php / archive-news.php)
 * ------------------------------------------------------------------ */

.site-logo-fallback {
	color: #fff;
	font-size: 1.1em;
	font-weight: bold;
	text-decoration: none;
}

/* ACF編集画面が無効な項目はフロントに出さないための保険 */
.faff-hidden {
	display: none !important;
}

/* お知らせ一覧ページ(archive-news.php)用の簡易調整 */
.news-list .item a {
	cursor: default;
}
.news-list .item a[href]:not([href="#"]) {
	cursor: pointer;
}

/* ==========================================================
   予約フォーム(Contact Form 7)デザイン
   ========================================================== */
.wpcf7-form {
	max-width: 800px;
	margin: 0 auto;
	background: #fff;
	color-scheme: light;
}

/* 1項目ずつの行(点線区切り) */
.form_row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 20px;
	padding: 20px 10px;
	border-bottom: dashed 1px #ccc;
}
.form_row:last-of-type {
	border-bottom: none;
}
.form_label {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: bold;
}
.form_required {
	display: inline-block;
	flex-shrink: 0;
	margin-right: 5px;
	padding: 3px 8px;
	font-size: 0.75rem;
	line-height: 1;
	color: #fff;
	background: #dc143c;
	border-radius: 3px;
}
.form_field {
	width: 100%;
}
@media screen and (min-width: 600px) {
	.form_row {
		flex-wrap: nowrap;
	}
	.form_label {
		width: 200px;
		flex-shrink: 0;
	}
	.form_field {
		width: auto;
		flex: 1;
	}
}

/* 入力欄そのもの(白背景+グレー枠線に統一) */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-tel,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-number,
.wpcf7-form-control.wpcf7-select,
.wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	max-width: 400px;
	padding: 10px 12px;
	font-size: 16px;
	line-height: 1.4;
	color: #222;
	background: #fff;
	border: solid 1px #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
.wpcf7-form-control.wpcf7-textarea {
	max-width: 100%;
	min-height: 120px;
}

/* 券種・枚数(一般前売/学生・障がい者/フリーパス) */
.ticket_type_row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.ticket_type_row:last-of-type {
	margin-bottom: 0;
}
.ticket_type_label {
	width: 190px;
	flex-shrink: 0;
}
.ticket_type_row .wpcf7-form-control.wpcf7-number {
	width: 80px;
	max-width: 80px;
	text-align: center;
}
.wpcf7-form-control:focus {
	outline: none;
	border-color: #b3881b;
	box-shadow: 0 0 0 2px rgba(179, 136, 27, 0.2);
}

/* プルダウン(年代・性別・希望日・希望作品) */
.wpcf7-form-control.wpcf7-select {
	max-width: 260px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M0 0l6 8 6-8z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 10px;
	-webkit-appearance: none;
	appearance: none;
	padding-right: 32px;
}

/* ラジオボタン(性別など) */
.wpcf7-form-control.wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
}
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
	margin: 0;
}
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label {
	margin-left: 6px;
}
.wpcf7-form-control.wpcf7-radio input[type="radio"] {
	width: 16px;
	height: 16px;
	vertical-align: middle;
	background: #fff;
	accent-color: #666;
}

/* 送信ボタン */
.wpcf7-form input[type="submit"] {
	display: block;
	margin: 30px auto 0;
	padding: 14px 60px;
	font-size: 1rem;
	font-weight: bold;
	color: #fff;
	background: #b3881b;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: 0.3s;
}
.wpcf7-form input[type="submit"]:hover {
	opacity: 0.8;
}

/* 入力エラー時の表示 */
.wpcf7-not-valid {
	border-color: #dc143c !important;
}
.wpcf7-not-valid-tip {
	display: block;
	margin-top: 5px;
	font-size: 0.8rem;
	color: #dc143c;
}

/* ==========================================================
   予約フォーム内 上映スケジュール選択
   ========================================================== */

/* 「ご予約になる上映回」の行だけフォーム幅いっぱいに広げる */
.form_row_schedule {
	flex-direction: column;
	align-items: flex-start;
}
.form_row_schedule .form_field {
	width: 100%;
}
@media screen and (min-width: 600px) {
	.form_row_schedule {
		flex-wrap: wrap;
	}
	.form_row_schedule .form_label {
		width: 100%;
	}
	.form_row_schedule .form_field {
		width: 100%;
		flex: 1 1 100%;
	}
}

.reservation-schedule-field {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.reservation-schedule-field.wpcf7-not-valid {
	outline: solid 2px #dc143c;
	outline-offset: 6px;
	border-radius: 8px;
}

.reservation_schedule_days {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
}
.reservation_schedule_day {
	border: solid 1px #ddd;
	border-radius: 6px;
	overflow: hidden;
}
.reservation_schedule_day_header {
	background: #000;
	color: #fff;
	font-weight: bold;
	text-align: center;
	padding: 5px 10px;
}

.reservation_round {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px 16px;
	width: 100%;
	padding: 14px 16px;
	border-bottom: dashed 1px #ddd;
	box-sizing: border-box;
}
.reservation_round:last-child {
	border-bottom: none;
}
.reservation_round_closed {
	color: #999;
}
.reservation_round_time {
	font-size: 0.9rem;
	color: #555;
}
.reservation_round_title {
	font-weight: bold;
}

.reservation_round_btn {
	padding: 8px 20px;
	font-size: 0.9rem;
	font-weight: bold;
	color: #fff;
	background: #999;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: 0.2s;
}
.reservation_round_btn:hover {
	opacity: 0.85;
}
.reservation_round.is-selected .reservation_round_btn {
	background: #dc143c;
}

.reservation_round_qty {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9rem;
}
.reservation_round_qty_input {
	width: 70px;
	padding: 6px 8px;
	font-size: 1rem;
	text-align: center;
	color: #222;
	background: #fff;
	border: solid 1px #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	color-scheme: light;
}
@media screen and (min-width: 600px) {
	.reservation_round {
		flex-wrap: nowrap;
		flex-direction: row;
		justify-content: flex-start;		
	}
	.reservation_round_time {
		min-width: 100px;
	}
	.reservation_round_btn {
		margin-left: auto;
	}
}

.reservation_selected_summary {
	margin-top: 16px;
	padding: 14px 16px;
	background: #fdf6e9;
	border: solid 1px #e8d4a0;
	border-radius: 6px;
	font-size: 0.9rem;
	line-height: 1.8;
}
.reservation_selected_summary:empty {
	display: none;
	margin-top: 0;
	padding: 0;
	border: none;
}
/* ------------------------------------------------------------------
 * 作品スライダー
 * ---------------------------------------------------------------- */
.slider {
	margin: 0 auto;
}
.slider > div {
	aspect-ratio: 4 / 3;
	height: auto;
}
.slider > div > ul {
	height: 100%;
	white-space: normal;
	overflow: visible;
}
.slider > div > ul > li {
	width: 100%;
	height: 100%;
}
/* JSが読み込まれていない場合でも最初の1枚は必ず表示する(保険) */
.slider > div > ul > li:not(:first-child) {
	display: none;
}
.slider > div > ul > li:first-child {
	display: block;
}
/* JSが正常に動いたら、このクラスが付き .is-active のみ表示に切り替わる */
.slider > div > ul.js-gallery-ready > li {
	display: none;
}
.slider > div > ul.js-gallery-ready > li.is-active {
	display: block;
}
.slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
@media screen and (min-width: 780px) {
	.slider {
		width: 50%;
		max-width: 500px;
	}	
}
/* gallery_verticalがONの作品用: ギャラリーの箱を縦長にする */
.slider.slider--vertical > div {
	aspect-ratio: 3 / 4;
}
.slider.slider--vertical img {
	object-position: center;
}
/* ==========================================================
   追加分: 作品カードをポップアップ(モーダル)ではなく
   実際の詳細ページへのリンクに変更したことに伴うCSS
   ========================================================== */

/* movie_btn が <button> から <a> に変わったための調整
   (レイアウト自体は既存の .movie_btn ルールがそのまま使えます) */
.movie_btn {
	display: block;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}



/* ==========================================================
   追加分:
   ========================================================== */
.other_movie_section {   
	width: 100%;
    margin: 60px auto;
    padding: 20px 20px 50px;
	background: #f5f5f5;
	text-align: center;
}
.movie_detail_page .movie_area {
	height: auto;
	overflow: visible;
	max-width: 1100px;
	margin: 0 auto;
	padding: 20px 10px 60px;
}
@media screen and (min-width: 751px) {
	.movie_detail_page .movie_caption > .slider {
		width: 50%;
	}
}

/* パンくずリスト */
.breadcrumb {
	max-width: 1100px;
	margin: 90px auto 0;
	padding: 0 10px;
	font-size: 1rem;
	color: #666;
}
.breadcrumb a {
	color: #666;
	text-decoration: none;
}
.breadcrumb a:hover {
	text-decoration: underline;
}
/* ==========================================================
   上映スケジュール
   ========================================================== */
#schedule > .kome {
	margin: 30px 0;
	text-align: center;
	font-size: 0.8rem;
}
.schedule_days {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	gap: 10px;
	justify-content: center;
}
.schedule_day {
    width: calc((100% - 10px) / 2);
	border: 1px solid #000;
	background: #fff;
}
.schedule_day_header {
	background: #000;
	color: #fff;
	text-align: center;
	font-weight: bold;
	padding: 10px 4px;
}
.schedule_block_time {
	background: #e9e2d2;
	text-align: center;
	font-size: 0.85em;
	padding: 6px 4px;
	border-top: 1px solid #ccc2a8;
	border-bottom: 1px solid #ccc2a8;
}
.schedule_item {
	text-align: center;
	padding: 10px 8px;
}
.schedule_item_title {
	font-weight: bold;
}
.schedule_item_title a {
	color: inherit;
	text-decoration: none;
}
.schedule_item_title a:hover {
	text-decoration: underline;
}
.schedule_item_duration {
	font-size: 0.85em;
	margin-top: 2px;
}
.schedule_item_none {
	background: #fff;
}
.schedule_item_yellow {
	background: #fdf6c9;
}
.schedule_item_gold {
	background: #ffccd5;
	color: #fff;
}
@media screen and (min-width: 780px) {
	.schedule_day {
		width: calc((100% - 20px) / 3);
		border: 1px solid #000;
		background: #fff;
	}		
}
@media screen and (min-width: 1080px) {
	.schedule_day {
		width: auto;
		width: calc((100% - 40px) / 5)
	}		
}	
/* スマホ表示: 横スクロールで1行表示にする */
@media screen and (max-width: 779px) {
	.schedule_days {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		justify-content: flex-start;
		padding-bottom: 10px;
	}
	.schedule_day {
		flex: 0 0 auto;
		width: 82%;
		max-width: 300px;
	}
}

/* 横スクロールの案内文(スマホのみ表示) */
.schedule_scroll_hint {
	display: block;
	text-align: center;
	font-size: 0.85em;
	color: #666;
	margin: 0 0 10px;
}
@media screen and (min-width: 780px) {
	.schedule_scroll_hint {
		display: none;
	}
}
.movie_talk_badge {
	display: flex;
	align-items: center;
	justify-content: center;	
	gap: 6px;
	margin: 8px 0 0;
	padding: 6px 12px;
	background: #fff4d6;
	border-radius: 999px;
	color: #7a5b0a;
	font-size: 0.8rem;
	font-weight: bold;
	line-height: 1.4;
}
.movie_talk_badge img {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
 
/* ==========================================================
   お知らせ詳細ページ (single-news.php)
   ========================================================== */
.news_detail_breadcrumb {
	max-width: 1160px;
	margin: 30px auto 0;
	padding: 0 20px;
	box-sizing: border-box;
	font-size: 0.85rem;
	color: #666;
}
.news_detail_breadcrumb a {
	color: #666;
	text-decoration: none;
}
.news_detail_breadcrumb a:hover {
	text-decoration: underline;
}
.news_detail_breadcrumb_sep {
	margin: 0 8px;
}

.news_detail_wrap {
	max-width: 1160px;
	margin: 30px auto 0;
	padding: 0 20px 60px;
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	gap: 60px;
}

.news_detail_main {
	flex: 1 1 auto;
	min-width: 0;
}

.news_detail_date {
	font-size: 0.9rem;
	color: #888;
	margin: 0 0 10px;
}

.news_detail_category {
	margin: 0 0 20px;
}
.news_detail_category span {
	display: inline-block;
	background: #eee;
	color: #333;
	font-size: 0.8rem;
	padding: 4px 16px;
	border-radius: 999px;
}

.news_detail_title {
	font-size: 1.6rem;
	line-height: 1.5;
	margin: 0 0 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #ddd;
}
.news_detail_new {
	display: inline-block;
	background: #dc143c;
	color: #fff;
	font-size: 0.65rem;
	font-weight: bold;
	padding: 2px 8px;
	border-radius: 3px;
	vertical-align: middle;
	margin-left: 8px;
}

.news_detail_content {
	font-size: 0.95rem;
	line-height: 1.9;
	color: #333;
}
.news_detail_content img {
	max-width: 100%;
	height: auto;
}

/* お知らせ一覧ページ(archive-news.php)用の微調整 */
.news_detail_main .section_title {
	text-align: left;
	margin: 0 0 30px;
}
.news_detail_main .news-list {
	margin: 0 0 30px;
}
.news_detail_main .pagination,
.news_detail_main .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.news_detail_sidebar {
	flex: 0 0 260px;
	width: 260px;
}
.news_detail_sidebar_title {
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	margin: 0 0 16px;
}
.news_detail_category_list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}
.news_detail_category_list li {
	border-top: 1px solid #ddd;
}
.news_detail_category_list li:last-child {
	border-bottom: 1px solid #ddd;
}
.news_detail_category_list a {
	display: block;
	padding: 12px 4px;
	color: #333;
	text-decoration: none;
	font-size: 0.9rem;
}
.news_detail_category_list a:hover {
	color: #dc143c;
}
.news_detail_category_list a.is-active {
	color: #dc143c;
	font-weight: bold;
}

.news_detail_all_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 14px 10px;
	box-sizing: border-box;
	border: 1px solid #999;
	color: #333;
	text-decoration: none;
	font-size: 0.85rem;
	transition: 0.2s;
}
.news_detail_all_btn:hover {
	background: #333;
	color: #fff;
	border-color: #333;
}
.news_detail_all_btn_arrow {
	font-size: 1rem;
}

.news_detail_nav {
	max-width: 1160px;
	margin: 0 auto;
	padding: 24px 20px 60px;
	box-sizing: border-box;
	border-top: 1px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-size: 0.9rem;
}
.news_detail_nav a {
	color: #333;
	text-decoration: none;
}
.news_detail_nav a:hover {
	text-decoration: underline;
}
.news_detail_nav_prev {
	margin-left: auto;
	text-align: right;
}
.news_detail_nav_arrow {
	margin-left: 4px;
}

@media screen and (max-width: 780px) {
	.news_detail_wrap {
		flex-direction: column;
		gap: 40px;
	}
	.news_detail_sidebar {
		width: 100%;
		flex: 1 1 auto;
	}
	.news_detail_title {
		font-size: 1.3rem;
	}
}
	gap: 10px 20px;
	padding: 20px 10px;
	border-bottom: dashed 1px #ccc;
}
.form_row:last-of-type {
	border-bottom: none;
}
.form_label {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: bold;
}
.form_required {
	display: inline-block;
	flex-shrink: 0;
	margin-right: 5px;
	padding: 3px 8px;
	font-size: 0.75rem;
	line-height: 1;
	color: #fff;
	background: #dc143c;
	border-radius: 3px;
}
.form_field {
	width: 100%;
}
@media screen and (min-width: 600px) {
	.form_row {
		flex-wrap: nowrap;
	}
	.form_label {
		width: 200px;
		flex-shrink: 0;
	}
	.form_field {
		width: auto;
		flex: 1;
	}
}

/* 入力欄そのもの(白背景+グレー枠線に統一) */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-tel,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-number,
.wpcf7-form-control.wpcf7-select,
.wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	max-width: 400px;
	padding: 10px 12px;
	font-size: 16px;
	line-height: 1.4;
	color: #222;
	background: #fff;
	border: solid 1px #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
.wpcf7-form-control.wpcf7-textarea {
	max-width: 100%;
	min-height: 120px;
}

/* 券種・枚数(一般前売/学生・障がい者/フリーパス) */
.ticket_type_row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}
.ticket_type_row:last-of-type {
	margin-bottom: 0;
}
.ticket_type_label {
	width: 190px;
	flex-shrink: 0;
}
.ticket_type_row .wpcf7-form-control.wpcf7-number {
	width: 80px;
	max-width: 80px;
	text-align: center;
}
.wpcf7-form-control:focus {
	outline: none;
	border-color: #b3881b;
	box-shadow: 0 0 0 2px rgba(179, 136, 27, 0.2);
}

/* プルダウン(年代・性別・希望日・希望作品) */
.wpcf7-form-control.wpcf7-select {
	max-width: 260px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23666' d='M0 0l6 8 6-8z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 10px;
	-webkit-appearance: none;
	appearance: none;
	padding-right: 32px;
}

/* ラジオボタン(性別など) */
.wpcf7-form-control.wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
}
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item {
	margin: 0;
}
.wpcf7-form-control.wpcf7-radio .wpcf7-list-item-label {
	margin-left: 6px;
}
.wpcf7-form-control.wpcf7-radio input[type="radio"] {
	width: 16px;
	height: 16px;
	vertical-align: middle;
	background: #fff;
	accent-color: #666;
}

/* 送信ボタン */
.wpcf7-form input[type="submit"] {
	display: block;
	margin: 30px auto 0;
	padding: 14px 60px;
	font-size: 1rem;
	font-weight: bold;
	color: #fff;
	background: #b3881b;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: 0.3s;
}
.wpcf7-form input[type="submit"]:hover {
	opacity: 0.8;
}

/* 入力エラー時の表示 */
.wpcf7-not-valid {
	border-color: #dc143c !important;
}
.wpcf7-not-valid-tip {
	display: block;
	margin-top: 5px;
	font-size: 0.8rem;
	color: #dc143c;
}

/* ==========================================================
   予約フォーム内 上映スケジュール選択
   ========================================================== */

/* 「ご予約になる上映回」の行だけフォーム幅いっぱいに広げる */
.form_row_schedule {
	flex-direction: column;
	align-items: flex-start;
}
.form_row_schedule .form_field {
	width: 100%;
}
@media screen and (min-width: 600px) {
	.form_row_schedule {
		flex-wrap: wrap;
	}
	.form_row_schedule .form_label {
		width: 100%;
	}
	.form_row_schedule .form_field {
		width: 100%;
		flex: 1 1 100%;
	}
}

.reservation-schedule-field {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.reservation-schedule-field.wpcf7-not-valid {
	outline: solid 2px #dc143c;
	outline-offset: 6px;
	border-radius: 8px;
}

.reservation_schedule_days {
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: 100%;
}
.reservation_schedule_day {
	border: solid 1px #ddd;
	border-radius: 6px;
	overflow: hidden;
}
.reservation_schedule_day_header {
	background: #000;
	color: #fff;
	font-weight: bold;
	text-align: center;
	padding: 5px 10px;
}

.reservation_round {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px 16px;
	width: 100%;
	padding: 14px 16px;
	border-bottom: dashed 1px #ddd;
	box-sizing: border-box;
}
.reservation_round:last-child {
	border-bottom: none;
}
.reservation_round_closed {
	color: #999;
}
.reservation_round_time {
	font-size: 0.9rem;
	color: #555;
}
.reservation_round_title {
	font-weight: bold;
}

.reservation_round_btn {
	padding: 8px 20px;
	font-size: 0.9rem;
	font-weight: bold;
	color: #fff;
	background: #999;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: 0.2s;
}
.reservation_round_btn:hover {
	opacity: 0.85;
}
.reservation_round.is-selected .reservation_round_btn {
	background: #dc143c;
}

.reservation_round_qty {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9rem;
}
.reservation_round_qty_input {
	width: 70px;
	padding: 6px 8px;
	font-size: 1rem;
	text-align: center;
	color: #222;
	background: #fff;
	border: solid 1px #ccc;
	border-radius: 4px;
	box-sizing: border-box;
	color-scheme: light;
}
@media screen and (min-width: 600px) {
	.reservation_round {
		flex-wrap: nowrap;
		flex-direction: row;
		justify-content: flex-start;		
	}
	.reservation_round_time {
		min-width: 100px;
	}
	.reservation_round_btn {
		margin-left: auto;
	}
}

.reservation_selected_summary {
	margin-top: 16px;
	padding: 14px 16px;
	background: #fdf6e9;
	border: solid 1px #e8d4a0;
	border-radius: 6px;
	font-size: 0.9rem;
	line-height: 1.8;
}
.reservation_selected_summary:empty {
	display: none;
	margin-top: 0;
	padding: 0;
	border: none;
}
/* ------------------------------------------------------------------
 * 作品スライダー
 * ---------------------------------------------------------------- */
.slider {
	margin: 0 auto;
}
.slider > div {
	aspect-ratio: 4 / 3;
	height: auto;
}
.slider > div > ul {
	height: 100%;
	white-space: normal;
	overflow: visible;
}
.slider > div > ul > li {
	width: 100%;
	height: 100%;
}
/* JSが読み込まれていない場合でも最初の1枚は必ず表示する(保険) */
.slider > div > ul > li:not(:first-child) {
	display: none;
}
.slider > div > ul > li:first-child {
	display: block;
}
/* JSが正常に動いたら、このクラスが付き .is-active のみ表示に切り替わる */
.slider > div > ul.js-gallery-ready > li {
	display: none;
}
.slider > div > ul.js-gallery-ready > li.is-active {
	display: block;
}
.slider img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}
@media screen and (min-width: 780px) {
	.slider {
		width: 50%;
		max-width: 500px;
	}	
}
/* gallery_verticalがONの作品用: ギャラリーの箱を縦長にする */
.slider.slider--vertical > div {
	aspect-ratio: 3 / 4;
}
.slider.slider--vertical img {
	object-position: center;
}
/* ------------------------------------------------------------------
 * 作品モーダル
 * ---------------------------------------------------------------- */
.modal__slider {
	position: relative;
	overflow: hidden;
}
.modal__slider .swiper-wrapper {
	display: block;
	width: 100%;
}
.modal__slider .modal__slide {
	width: 100%;
}
/* JSが読み込まれていない場合でも最初の作品は表示する(保険) */
.modal__slider .swiper-wrapper > .modal__slide:not(:first-child) {
	display: none;
}
.modal__slider .swiper-wrapper > .modal__slide:first-child {
	display: block;
}
/* JSが正常に動いたら、このクラスが付き .is-active のみ表示に切り替わる */
.modal__slider .swiper-wrapper.js-modal-ready > .modal__slide {
	display: none;
}
.modal__slider .swiper-wrapper.js-modal-ready > .modal__slide.is-active {
	display: block;
}
/* ==========================================================
   追加分: 作品カードをポップアップ(モーダル)ではなく
   実際の詳細ページへのリンクに変更したことに伴うCSS
   ========================================================== */

/* movie_btn が <button> から <a> に変わったための調整
   (レイアウト自体は既存の .movie_btn ルールがそのまま使えます) */
.movie_btn {
	display: block;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}



/* ==========================================================
   追加分:
   ========================================================== */
.other_movie_section {   
	width: 100%;
    margin: 60px auto;
    padding: 20px 20px 50px;
	background: #f5f5f5;
	text-align: center;
}
.movie_detail_page .movie_area {
	height: auto;
	overflow: visible;
	max-width: 1100px;
	margin: 0 auto;
	padding: 20px 10px 60px;
}
@media screen and (min-width: 751px) {
	.movie_detail_page .movie_caption > .slider {
		width: 50%;
	}
}

/* パンくずリスト */
.breadcrumb {
	max-width: 1100px;
	margin: 90px auto 0;
	padding: 0 10px;
	font-size: 1rem;
	color: #666;
}
.breadcrumb a {
	color: #666;
	text-decoration: none;
}
.breadcrumb a:hover {
	text-decoration: underline;
}
/* ==========================================================
   上映スケジュール
   ========================================================== */

.schedule_days {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	gap: 10px;
	justify-content: center;
}
.schedule_day {
    width: calc((100% - 10px) / 2);
	border: 1px solid #000;
	background: #fff;
}
.schedule_day_header {
	background: #000;
	color: #fff;
	text-align: center;
	font-weight: bold;
	padding: 10px 4px;
}
.schedule_block_time {
	background: #e9e2d2;
	text-align: center;
	font-size: 0.85em;
	padding: 6px 4px;
	border-top: 1px solid #ccc2a8;
	border-bottom: 1px solid #ccc2a8;
}
.schedule_item {
	text-align: center;
	padding: 10px 8px;
}
.schedule_item_title {
	font-weight: bold;
}
.schedule_item_title a {
	color: inherit;
	text-decoration: none;
}
.schedule_item_title a:hover {
	text-decoration: underline;
}
.schedule_item_duration {
	font-size: 0.85em;
	margin-top: 2px;
}
.schedule_item_none {
	background: #fff;
}
.schedule_item_yellow {
	background: #fdf6c9;
}
.schedule_item_gold {
	background: #ffccd5;
	color: #fff;
}
@media screen and (min-width: 780px) {
	.schedule_day {
		width: calc((100% - 20px) / 3);
		border: 1px solid #000;
		background: #fff;
	}		
}
@media screen and (min-width: 1080px) {
	.schedule_day {
		width: auto;
		width: calc((100% - 40px) / 5)
	}		
}	
/* スマホ表示: 横スクロールで1行表示にする */
@media screen and (max-width: 779px) {
	.schedule_days {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		justify-content: flex-start;
		padding-bottom: 10px;
	}
	.schedule_day {
		flex: 0 0 auto;
		width: 82%;
		max-width: 300px;
	}
}

/* 横スクロールの案内文(スマホのみ表示) */
.schedule_scroll_hint {
	display: block;
	text-align: center;
	font-size: 0.85em;
	color: #666;
	margin: 0 0 10px;
}
@media screen and (min-width: 780px) {
	.schedule_scroll_hint {
		display: none;
	}
}
.movie_talk_badge {
	display: flex;
	align-items: center;
	justify-content: center;	
	gap: 6px;
	margin: 8px 0 0;
	padding: 6px 12px;
	background: #fff4d6;
	border-radius: 999px;
	color: #7a5b0a;
	font-size: 0.8rem;
	font-weight: bold;
	line-height: 1.4;
}
.movie_talk_badge img {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
 
/* ==========================================================
   お知らせ詳細ページ (single-news.php)
   ========================================================== */
.news_detail_breadcrumb {
	max-width: 1160px;
	margin: 30px auto 0;
	padding: 0 20px;
	box-sizing: border-box;
	font-size: 0.85rem;
	color: #666;
}
.news_detail_breadcrumb a {
	color: #666;
	text-decoration: none;
}
.news_detail_breadcrumb a:hover {
	text-decoration: underline;
}
.news_detail_breadcrumb_sep {
	margin: 0 8px;
}

.news_detail_wrap {
	max-width: 1160px;
	margin: 30px auto 0;
	padding: 0 20px 60px;
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	gap: 60px;
}

.news_detail_main {
	flex: 1 1 auto;
	min-width: 0;
}

.news_detail_date {
	font-size: 0.9rem;
	color: #888;
	margin: 0 0 10px;
}

.news_detail_category {
	margin: 0 0 20px;
}
.news_detail_category span {
	display: inline-block;
	background: #eee;
	color: #333;
	font-size: 0.8rem;
	padding: 4px 16px;
	border-radius: 999px;
}

.news_detail_title {
	font-size: 1.6rem;
	line-height: 1.5;
	margin: 0 0 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid #ddd;
}
.news_detail_new {
	display: inline-block;
	background: #dc143c;
	color: #fff;
	font-size: 0.65rem;
	font-weight: bold;
	padding: 2px 8px;
	border-radius: 3px;
	vertical-align: middle;
	margin-left: 8px;
}

.news_detail_content {
	font-size: 0.95rem;
	line-height: 1.9;
	color: #333;
}
.news_detail_content img {
	max-width: 100%;
	height: auto;
}

/* お知らせ一覧ページ(archive-news.php)用の微調整 */
.news_detail_main .section_title {
	text-align: left;
	margin: 0 0 30px;
}
.news_detail_main .news-list {
	margin: 0 0 30px;
}
.news_detail_main .pagination,
.news_detail_main .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.news_detail_sidebar {
	flex: 0 0 260px;
	width: 260px;
}
.news_detail_sidebar_title {
	font-size: 1.3rem;
	letter-spacing: 0.05em;
	margin: 0 0 16px;
}
.news_detail_category_list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}
.news_detail_category_list li {
	border-top: 1px solid #ddd;
}
.news_detail_category_list li:last-child {
	border-bottom: 1px solid #ddd;
}
.news_detail_category_list a {
	display: block;
	padding: 12px 4px;
	color: #333;
	text-decoration: none;
	font-size: 0.9rem;
}
.news_detail_category_list a:hover {
	color: #dc143c;
}
.news_detail_category_list a.is-active {
	color: #dc143c;
	font-weight: bold;
}

.news_detail_all_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 14px 10px;
	box-sizing: border-box;
	border: 1px solid #999;
	color: #333;
	text-decoration: none;
	font-size: 0.85rem;
	transition: 0.2s;
}
.news_detail_all_btn:hover {
	background: #333;
	color: #fff;
	border-color: #333;
}
.news_detail_all_btn_arrow {
	font-size: 1rem;
}

.news_detail_nav {
	max-width: 1160px;
	margin: 0 auto;
	padding: 24px 20px 60px;
	box-sizing: border-box;
	border-top: 1px solid #ddd;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-size: 0.9rem;
}
.news_detail_nav a {
	color: #333;
	text-decoration: none;
}
.news_detail_nav a:hover {
	text-decoration: underline;
}
.news_detail_nav_prev {
	margin-left: auto;
	text-align: right;
}
.news_detail_nav_arrow {
	margin-left: 4px;
}

@media screen and (max-width: 780px) {
	.news_detail_wrap {
		flex-direction: column;
		gap: 40px;
	}
	.news_detail_sidebar {
		width: 100%;
		flex: 1 1 auto;
	}
	.news_detail_title {
		font-size: 1.3rem;
	}
}