@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/* ==============================================
   1. 共通設定（ベース・ヘッダー・メニューなど）
   ============================================== */
body { background-color: #faf8f5; }
.main { padding: 0; }
.content { margin-top: 10px; }
#go-to-top { display: none !important; }

/* ヘッダー＆メニューを「オレンジの1つの帯」に統一 */
#header-container, .header { background-color: #E4820B !important; }
.logo-header { background-color: transparent !important; text-align: left !important; padding: 0 !important; }
.navi { background-color: transparent !important; }
.navi-in > ul li { width: auto; padding: 0 15px 0 5px; position: relative !important; }
.navi-in a { color: #ffffff !important; font-size: 15px; font-weight: bold !important; padding: 15px 15px !important; }
.navi-in a:hover { background-color: rgba(255,255,255,0.2) !important; }
.navi-in > ul .caption-wrap > div { color: #383839; }
.navi-in > ul > li:not(:last-child)::after { content: "｜" !important; color: rgba(255, 255, 255, 1) !important; position: absolute; right: -2px; top: 50%; transform: translateY(-50%); font-weight: bold !important; pointer-events: none; }

/* メインタイトル一括管理エリア */
.common-page-title, .page-title, .archive .archive-title, .single-post .entry-title { background: #E4820B !important; color: #fff !important; text-align: center !important; padding: 15px 0 !important; font-size: 1.5rem !important; font-weight: bold !important; margin-top: 0 !important; margin-bottom: 25px !important; border: none !important; }

/* ネイビーの共通見出し帯 */
.navy-heading { background: #1c2b4d; color: #fff; padding: 12px 20px; font-size: 1.15rem; font-weight: bold; margin: 0; display: flex; justify-content: space-between; align-items: center; border-radius: 8px 8px 0 0; }

/* ページトップボタン */
.page-top-wrapper { position: fixed; bottom: 40px; right: 40px; z-index: 9999 !important; }
.page-top-wrapper img { width: 80px; height: auto; transition: 0.3s; }
.page-top-wrapper:hover img { transform: translateY(-5px); }

/* ==============================================
   2. トップページ専用（余白リセット・アラート・FV）
   ============================================== */
.home .main, .home .article { padding: 0 !important; background: transparent !important; border: none !important; }
.home .entry-content { margin: 0 !important; }

/* 緊急アラートバー */
.emergency-alert-wrapper { max-width: 1340px; margin: 20px auto 30px; padding: 0 15px; }
.emergency-alert-inner { display: flex; align-items: flex-start; gap: 15px; }
.alert-chara-left { width: 60px; height: auto; flex-shrink: 0; margin-top: 5px; }
.alert-box { flex-grow: 1; background: #fff; border: 2px solid #414141; padding: 0 20px; display: flex; flex-direction: row; align-items: stretch; width: 100%; }
body .alert-box { margin-bottom: 0 !important; }
.alert-box::before, .alert-box::after { display: none !important; content: none !important; }
.alert-mark-wrap { padding: 12px 15px 12px 0; display: flex; align-items: flex-start; }
.alert-mark-icon { width: 28px; height: auto; flex-shrink: 0; margin-top: 2px; }
.alert-text-wrap { flex-grow: 1; display: flex; flex-direction: column; }
.alert-item { display: block; padding: 12px 0; border-bottom: 1px solid #ccc; text-decoration: none; color: #383839; font-weight: bold; font-size: 1.05rem; transition: 0.3s; }
.alert-item:last-child { border-bottom: none; }
.alert-item:hover { color: #E4820B; }

/* ファーストビュー */
.fv-section { max-width: 1340px; margin: 0 auto 40px; padding: 0 15px; display: flex; gap: 30px; align-items: stretch; background: transparent; }
.fv-main { width: 32%; background: #fff; border-radius: 4px; border: 1px solid #ddd; display: flex; flex-direction: column; }
.fv-main .navy-heading { background-color: #1c2b4d !important; border-radius: 8px 8px 0 0 !important; padding: 15px 20px !important; }
.btn-news-more { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 1rem; text-decoration: none; border: 1px solid #fff !important; background: transparent !important; padding: 4px 15px !important; border-radius: 4px !important; transition: 0.3s; }
.btn-news-more:hover { background: #fff !important; color: #1c2b4d !important; }
.btn-news-more img { height: 10px; width: auto; }
.fv-topics-list { list-style: none; padding: 15px 20px; margin: 0; }
.fv-topics-list li { padding-bottom: 15px; margin-bottom: 15px; border-bottom: 1px solid #eee; }
.fv-topics-list li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.fv-topics-list a { text-decoration: none; color: #383839; }
.fv-topics-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 5px; }
.cat { color: #fff; font-size: 0.65rem; padding: 3px 0; width: 65px; text-align: center; border-radius: 2px; font-weight: bold; background: #888; }
.cat.cat-event { background: #E4820B; }
.date { font-size: 0.8rem; color: #666; }
.ttl { font-size: 0.9rem; line-height: 1.4; display: block; }
.fv-side { width: 68%; display: flex; flex-direction: column; justify-content: space-between; }
/* ファーストビュー右側：コンテンツボタン群 */
.side-links-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 20px; }
.side-link-btn { height: 85px; position: relative; background: #f6f5ef; border-radius: 8px; padding: 10px 15px; text-align: center; color: #383839; font-weight: bold; font-size: 0.95rem; text-decoration: none; display: flex; align-items: stretch; transition: 0.3s; box-shadow: 0 3px 6px rgba(0,0,0,0.1); border: none; }
.side-link-btn span { background: #ffffff; border-radius: 4px; width: 100%; display: flex; align-items: center; justify-content: center; padding: 10px 10px; z-index: 1; line-height: 1.4; }
.side-link-btn:hover { transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.15); color: #E4820B; }
.btn-chara-icon { position: absolute; bottom: 0; left: -5px; width: 45px; height: auto; z-index: 2; border-radius: 8px; }

/* サブスライダー */
.subSwiper { width: 100%; }
.subSwiper .swiper-wrapper { display: flex !important; flex-wrap: nowrap !important; }
.subSwiper .swiper-slide { width: 21% !important; flex-shrink: 0 !important; }
.fv-sub .swiper-slide { background: #000; border-radius: 4px; overflow: hidden; }
.fv-sub img { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; }
.swiper-nav-container { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; font-size: 0.9rem; color: #666; }
.swiper-controls { display: flex; align-items: center; gap: 10px; }
.swiper-progress-bar { background: #e0e0e0 !important; height: 4px !important; flex-grow: 1; margin-right: 15px; position: relative; border-radius: 2px; overflow: hidden; }
.swiper-progress-fill { background: #1c2b4d !important; position: absolute; left: 0; top: 0; width: 100%; height: 100%; transform: scaleX(0); transform-origin: left top; transition: transform 0.3s ease; }

/* ==============================================
   3. トップページ 各セクション（インフォ・料金・FAQ）
   ============================================== */
.info-section { max-width: 1340px; margin: 0 auto 40px; padding: 0 15px; display: flex; gap: 30px; }
/* 上映スケジュール (PDF) エリア */
.schedule-col { width: 50%; background: #fff; border: none; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.06); }
.schedule-col .navy-heading { justify-content: flex-start; gap: 8px; border-radius: 0; margin-bottom: 0; padding: 12px 20px; }
.schedule-box { padding: 30px 25px; display: flex; flex-direction: column; gap: 20px; }
.pdf-icon { width: 20px; height: auto; }
.links-col { width: 50%; }
.top-links { display: flex; gap: 15px; margin-bottom: 20px; }
.btn-schedule-dl, .btn-main-link { position: relative; display: flex; align-items: center; background: #f6f5ef !important; color: #383839 !important; font-weight: bold; text-decoration: none; border: none !important; border-radius: 8px; box-shadow: 0 3px 6px rgba(0,0,0,0.1); z-index: 1; transition: 0.3s; }
.btn-schedule-dl::before { content: ""; position: absolute; top: 8px; left: 8px; right: 8px; bottom: 8px; border-radius: 4px; z-index: -1; }
.btn-main-link::before { content: ""; position: absolute; top: 12px; left: 12px; right: 12px; bottom: 12px; background: #fff; border-radius: 4px; z-index: -1; }
.btn-schedule-dl:hover, .btn-main-link:hover { transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.15); }
.btn-schedule-dl { padding: 12px 20px !important; gap: 15px; }
.btn-main-link { flex: 1; justify-content: center; padding: 22px 15px !important; gap: 10px; font-size:0.95rem; }
.btn-main-link img { width: 24px; height: auto; }
.sns-links { display: flex; gap: 40px; justify-content: center; margin-top: 40px; }
.sns-links a img { width: 65px; height: auto; transition: 0.3s; }
.sns-links a:hover img { transform: scale(1.05); opacity: 0.9; }

.price-section { max-width: 1340px; margin: 0 auto 40px; padding: 0 15px; display: flex; gap: 30px; }
.price-left { width: 50%; display: flex; flex-direction: column; gap: 30px; }
.price-right { width: 50%; }
.price-card { background: #fff; border: 1px solid #ddd; border-radius: 4px; }
.price-list { list-style: none; padding: 0 20px; margin: 0; }
.price-list li { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #eee; color: #383839; font-weight: bold; }
.price-list li:last-child { border-bottom: none; }
.p-price { color: #E4820B; font-size: 1.1rem; }
.price-note { padding: 15px 20px; font-size: 0.85rem; color: #666; line-height: 1.6; }
.discount-list { padding: 0 20px; margin: 0; list-style: none; }
.discount-list li { padding: 15px 0; border-bottom: 1px solid #eee; }
.d-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }
.d-name { font-weight: bold; font-size: 1.05rem; }
.d-price { color: #E4820B; font-weight: bold; font-size: 1.1rem; }
.d-note { font-size: 0.85rem; color: #666; text-align: right; }
.point-content { padding: 20px; }
.point-text { font-size: 0.9rem; line-height: 1.6; margin-bottom: 20px; }
.point-text strong { color: #383839; }
.point-text .highlight { color: #E4820B; font-weight: bold; }
.point-card-img { text-align: right; margin-top: 15px; }
.point-card-img img { max-width: 165px; height: auto; }

/* ==============================================
   FAQエリア
   ============================================== */
.faq-section { max-width: 1340px; margin: 0 auto 60px; padding: 0 15px; }
.faq-card { background: #fff; border: 1px solid #ddd; border-radius: 4px; }
.faq-list { padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.faq-item { display: block !important; border: 1px solid #eaeaea; margin: 0; border-radius: 6px; background: #f9f9f9; overflow: hidden; }
.faq-hidden { display: none !important; }
.faq-q { display: block !important; padding: 12px 45px; font-weight: bold; cursor: pointer; position: relative; list-style: none; color: #333; margin: 0; }
.faq-q::-webkit-details-marker { display: none; }
.faq-q::before { content: "Q."; position: absolute; left: 15px; top: 10px; color: #E4820B; font-size: 1.2rem; font-weight: bold; }
.faq-q::after { content: "\f107"; font-family: "FontAwesome"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); color: #888; font-size: 0.9rem; transition: 0.3s; font-weight: normal; }
.faq-item[open] .faq-q::after { transform: translateY(-50%) rotate(180deg); }
.faq-a { display: block !important; padding: 18px 20px 18px 45px; font-size: 1rem; line-height: 1.6; color: #444; position: relative; background: #ffffff; margin: 0; }
.faq-a::before { content: "A."; position: absolute; left: 15px; top: 15px; color: #1c2b4d; font-size: 1.2rem; font-weight: bold; }
.btn-more-wrapper { text-align: center; padding-bottom: 20px; }
.btn-more-navy { background: #1c2b4d; color: #fff; padding: 12px 40px; border-radius: 4px; text-decoration: none; font-weight: bold; display: inline-block; transition: 0.3s; border: none; cursor: pointer; font-size: 1rem; }
.btn-more-navy:hover { background: #131d36; }
.btn-more-navy img { height: 12px; width: auto; margin-left: 8px; }

/* ==============================================
   4. 下層ページ専用（個別ページ・アクセス等）
   ============================================== */
.page .article-header .date-tags, .single-movie .article-header, .single-post .breadcrumb, .page .breadcrumb, .single-movie .breadcrumb, .single-post .pager-post-navi, .single-post .post-navi, .single-post .sns-share, .page .sns-share, .single-movie .sns-share, .single-post .author-info, .page .author-info, .single-movie .author-info { display: none !important; }

.custom-single-header { margin-bottom: 20px; }
.custom-cat-badge { display: inline-block; background: #E4820B; color: #fff; padding: 6px 15px; font-weight: bold; font-size: 0.9rem; margin-bottom: 10px; }
.custom-title-bar { background: #E4820B; color: #fff; display: flex; align-items: center; padding: 15px 20px; gap: 20px; }
.custom-date { font-weight: bold; font-size: 1rem; white-space: nowrap; }
.custom-title { font-size: 1.2rem; font-weight: bold; margin: 0 !important; padding: 0 !important; color: #fff !important; line-height: 1.4; border: none !important; }
.single-post .entry-content { border: 2px solid #f3a670 !important; border-radius: 6px !important; padding: 35px !important; background: #fff !important; }
.custom-post-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 40px; gap: 20px; }
.nav-btn { display: flex; justify-content: center; align-items: center; padding: 15px 20px; border-radius: 4px; font-weight: bold; text-decoration: none !important; color: #fff !important; transition: 0.3s; flex: 1; text-align: center; }
.nav-prev, .nav-next { background: #777; }
.nav-prev:hover, .nav-next:hover { background: #555; }
.nav-list { background: #E4820B; }
.nav-list:hover { background: #cc5000; }
.nav-empty { background: transparent; visibility: hidden; }

/* サイドバー：最新のお知らせ */
.sidebar-news-title { color: #E4820B; font-size: 1.1rem; border-bottom: 2px solid #E4820B; padding-bottom: 5px; margin-bottom: 15px; }
.sidebar-news-list { list-style: none; padding: 0; margin: 0; }
.sidebar-news-list li { border-bottom: 1px dashed #ccc; padding: 15px 0; }
.sidebar-news-list a { text-decoration: none; color: #383839; display: block; transition: 0.3s; }
.sidebar-news-list a:hover { opacity: 0.7; }
.sidebar-date { display: block; font-size: 0.8rem; color: #383839; margin-bottom: 5px; }
.sidebar-bottom { display: flex; align-items: flex-start; gap: 10px; }
.sidebar-badge { background: #E4820B; color: #fff; font-size: 0.7rem; padding: 3px 8px; border-radius: 2px; font-weight: bold; white-space: nowrap; }
.sidebar-badge.cat-event { background: #0022cc; }
.sidebar-badge.cat-campaign { background: #00b020; }
.sidebar-post-title { font-size: 0.9rem; line-height: 1.4; font-weight: bold; }

/* アクセスページ */
.access-info-row { margin-bottom: 25px !important; }
.access-info-card { background: #fff; padding: 30px; border: 2px solid #005A9C; box-shadow: 0 4px 10px rgba(0,0,0,0.05); }
.access-info-card h3 { margin-top: 0; margin-bottom: 15px; font-size: 1.15rem; color: #383839; }
.access-info-card p { margin: 0; font-size: 0.95rem; color: #444; line-height: 1.8; }
.access-info-row .wp-block-image img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 16 / 9; display: block; }
.access-google-map iframe { width: 100%; display: block; background: #eee; }
.transport-grid { border: 1px solid #ddd; background: #fff; margin-top: 0 !important; }
.transport-grid > .wp-block-column { padding: 30px 25px !important; border-right: 1px solid #ddd; margin: 0 !important; }
.transport-grid > .wp-block-column:last-child { border-right: none; }
.transport-grid h4 { margin-top: 0; margin-bottom: 15px; font-size: 1rem; color: #383839; }
.transport-grid p { margin: 0; font-size: 0.85rem; color: #666; line-height: 1.6; }
.parking-section-area { background-color: #f2e9dc !important; padding: 50px 20px !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; width: 100vw !important; max-width: 100vw !important; box-sizing: border-box; }
.parking-section-area > * { max-width: 1000px; margin-left: auto !important; margin-right: auto !important; }
.parking-map-img img { width: 100%; height: auto; display: block; }
.parking-detail-container { background: #fff; border: 1px solid #ddd; margin-top: 20px; }
.parking-row { margin: 0 !important; border-bottom: 1px solid #ddd; }
.parking-row:last-child { border-bottom: none; }
.parking-col-img, .parking-col-text { margin: 0 !important; padding: 40px !important; }
.parking-col-img { border-right: 1px solid #ddd; display: flex; align-items: center; justify-content: center; background: #f4f6f8; }
.parking-col-img:last-child { border-right: none; border-left: 1px solid #ddd; }
.parking-col-img img { width: 100%; height: auto; object-fit: contain; }
.parking-col-text h3 { margin-top: 0; margin-bottom: 20px; font-size: 1.1rem; color: #383839; }
.parking-col-text p { font-size: 0.85rem; color: #444; line-height: 1.6; margin-bottom: 15px; }
.parking-caution { color: #888 !important; font-size: 0.8rem !important; }

/* ==============================================
   5. 上映作品（一覧・詳細）専用
   ============================================== */
.single-movie #sidebar, .post-type-archive-movie #sidebar, .tax-movie_category #sidebar { display: none !important; }
.single-movie #main, .post-type-archive-movie #main, .tax-movie_category #main { width: 100% !important; float: none !important; margin-right: 0 !important; border-right: none !important; }
.single-movie .content, .post-type-archive-movie .content { max-width: 100% !important; }

/* 上映作品一覧 */
.movie-archive-section { max-width: 1100px; margin: 0 auto; padding: 0; }
.tab-list { display: flex; list-style: none; padding: 0; margin: 0 0 30px 0; gap: 0; border-bottom: 3px solid #005A9C; }
.tab-item { flex: 1; text-align: center; padding: 12px 0; background: #e0e0e0; color: #666; font-size: 1.1rem; font-weight: bold; cursor: pointer; transition: 0.3s; border-radius: 8px 8px 0 0; border: 1px solid #ccc; border-bottom: none; margin-right: 5px; }
.tab-item:last-child { margin-right: 0; }
.tab-item.active { background: #005A9C; color: #fff; border-color: #005A9C; }
.tab-content { display: none; animation: fadeIn 0.5s; }
.tab-content.active { display: block; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.movie-list-item { display: flex; margin-bottom: 30px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.1); border: 1px solid #ccc; }
.movie-left-block { flex: 0 0 45%; background: #000; display: flex; padding: 20px; box-sizing: border-box; gap: 20px; border-right: 2px solid #ccc; }
.movie-poster { width: 45%; flex-shrink: 0; background: #fff; }
.movie-poster img { width: 100%; height: 100%; object-fit: cover; display: block; }
.movie-left-info { flex-grow: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; }
.movie-badges-top { width: 100%; display: flex; justify-content: space-between; align-items: flex-start; }
.badge-rating { display: inline-block; padding: 2px 8px; border-radius: 20px; font-size: 0.8rem; font-weight: bold; border: 2px solid #fff; background: #fff; text-align: center; line-height: 1.2; }
.rating-g { color: #00b020; border-color: #00b020; }
.rating-pg12 { color: #00a0e9; border-color: #00a0e9; }
.rating-r15\+ { color: #e60082; border-color: #e60082; }
.rating-r18\+ { color: #d3381c; border-color: #d3381c; }
.badge-status-group { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.badge-status { color: #fff; font-size: 1rem; font-weight: bold; padding: 6px 15px; border-radius: 4px; text-align: center; }
.status-advance, .status-limited { background: #e60012; }
.status-roadshow { background: #00a0e9; }
.movie-price-box { background: #fff; border-radius: 4px; padding: 10px 15px; display: flex; align-items: center; justify-content: center; gap: 15px; width: 35%; box-sizing: border-box; margin: 15px 0; }
.price-label { font-size: 1.2rem; color: #888; text-align: center; line-height: 1.2; }
.price-amount { font-size: 1.6rem; font-weight: bold; color: #e60012; }
.btn-detail { display: block; width: 100%; background: #E4820B; color: #fff; text-align: center; padding: 12px; text-decoration: none; font-weight: bold; border-radius: 4px; transition: 0.3s; box-sizing: border-box; font-size: 0.95rem; }
.btn-detail:hover { background: #cc5000; opacity: 0.9; }

.movie-right-block { flex: 0 0 55%; padding: 25px 30px; box-sizing: border-box; display: flex; flex-direction: column; }
.movie-right-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; border-bottom: 1px solid #eee; padding-bottom: 10px; }
.movie-date-red { color: #e60012; font-weight: bold; font-size: 1rem; }
.movie-memo { background: #f0f0f0; color: #666; font-size: 0.75rem; padding: 5px 10px; border-radius: 2px; }
.movie-title { font-size: 1.4rem; font-weight: bold; margin: 0 0 15px 0; color: #333; line-height: 1.4; }
.movie-excerpt { font-size: 0.9rem; color: #555; line-height: 1.6; flex-grow: 1; }
.movie-action-right { margin-top: 20px; text-align: right; }
.btn-ticket { display: inline-block; background: #E4820B; color: #fff; text-align: center; padding: 12px 25px; text-decoration: none; font-weight: bold; border-radius: 4px; transition: 0.3s; font-size: 1rem; }
.btn-ticket:hover { background: #cc5000; opacity: 0.9; }

/* 上映作品詳細 */
.movie-single-section { background-color: #f9f9f9; padding: 40px 20px; color: #333; font-family: sans-serif; }
.movie-single-inner { max-width: 1100px; margin: 0 auto; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.movie-single-maintitle { background: #E4820B; color: #fff; font-size: 1.5rem; font-weight: bold; margin: 0; padding: 15px 25px; line-height: 1.4; }
.movie-single-flex { display: flex; gap: 40px; padding: 30px 25px; align-items: flex-start; }
.movie-single-left { width: 35%; flex-shrink: 0; display: flex; flex-direction: column; gap: 20px; }
.movie-single-poster img { width: 100%; height: auto; display: block; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.movie-video-box { background: #f4f4f4; padding: 10px; border-radius: 4px; }
.movie-video-box h4 { margin: 0 0 10px 0; font-size: 0.95rem; color: #333; border-left: 3px solid #E4820B; padding-left: 8px; }
.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; border-radius: 4px; }
.embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.movie-single-right { width: 65%; }
.movie-date-boxes { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 25px; }
.date-box-release { background: #005A9C; color: #fff; padding: 8px 20px; font-size: 1.1rem; font-weight: bold; border-radius: 2px; }
.date-box-end { background: #000; color: #fff; padding: 8px 20px; font-size: 1.1rem; font-weight: bold; border-radius: 2px; }
.movie-single-content { line-height: 1.8; font-size: 1rem; margin-bottom: 20px; color: #444; }
.movie-single-notes { font-size: 0.85rem; color: #666; line-height: 1.6; margin-bottom: 30px; }
.movie-info-heading { font-size: 1.1rem; font-weight: bold; margin-bottom: 10px; color: #333; }
.movie-info-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; border: 1px solid #ddd; }
.movie-info-table th, .movie-info-table td { padding: 15px; border: 1px solid #ddd; line-height: 1.5; }
.movie-info-table th { background: #999; color: #fff; width: 25%; text-align: center; font-weight: bold; }
.movie-info-table td { background: #fff; color: #333; }
.th-special-price { background: #e60012 !important; }
.th-normal-price { background: #005A9C !important; }
.td-special-price { color: #e60012; font-weight: bold; }
.td-normal-price { color: #005A9C; font-weight: bold; }
.movie-single-buttons { display: flex; gap: 15px; align-items: center; margin-top: 20px; }
.btn-orange { flex: 1; display: inline-block; background: #E4820B; color: #fff; text-align: center; padding: 15px 20px; text-decoration: none; font-weight: bold; border-radius: 4px; transition: 0.3s; font-size: 1.05rem; }
.btn-orange:hover { background: #cc5000; color: #fff; opacity: 0.9; }

/* ==============================================
   6. 提携店舗一覧・お知らせリスト（ショートコード専用）
   ============================================== */
/* 提携店舗一覧 [partner_list] */
.partner-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 30px 0 !important; }
.partner-card { background: #fff !important; border: 2px solid #E4820B !important; border-radius: 6px !important; overflow: hidden !important; display: flex !important; flex-direction: column !important; box-shadow: 0 3px 6px rgba(0,0,0,0.05) !important; margin: 0 !important; padding: 0 !important; }
.partner-header { background: #E4820B !important; color: #fff !important; display: flex !important; align-items: center !important; padding: 10px 15px !important; position: relative !important; border: none !important; }
.partner-num { font-size: 1.8rem !important; font-weight: bold !important; margin-right: 12px !important; line-height: 1 !important; font-family: Arial, sans-serif !important; }
.partner-title-area { display: flex !important; flex-direction: column !important; justify-content: center !important; width: 100% !important; }
.partner-cat { font-size: 0.75rem !important; opacity: 0.9 !important; margin-bottom: 2px !important; line-height: 1.2 !important; }
.partner-name { font-size: 1.1rem !important; font-weight: bold !important; margin: 0 !important; padding: 0 !important; color: #fff !important; line-height: 1.3 !important; border: none !important; background: transparent !important; }
.partner-takeout { position: absolute !important; top: 5px !important; right: 5px !important; background: #005A9C !important; color: #fff !important; font-size: 0.65rem !important; font-weight: bold !important; text-align: center !important; padding: 4px !important; line-height: 1.1 !important; border-radius: 3px !important; border: none !important; }
.partner-benefit { font-size: 1.1rem !important; font-weight: bold !important; color: #d3381c !important; padding: 10px 15px !important; text-align: center !important; background: #fff5f0 !important; border: none !important; border-bottom: 1px dashed #ccc !important; margin: 0 !important; }
.partner-body { display: flex !important; padding: 15px !important; gap: 12px !important; flex-grow: 1 !important; border: none !important; background: #fff !important; }
.partner-info { flex: 1 !important; font-size: 0.8rem !important; line-height: 1.6 !important; color: #333 !important; }
.partner-info dl { margin: 0 !important; padding: 0 !important; display: flex !important; flex-wrap: wrap !important; border: none !important; }
.partner-info dt { font-weight: bold !important; width: 4.5em !important; margin: 0 !important; padding: 0 !important; border: none !important; background: transparent !important; color: #333 !important; }
.partner-info dd { margin: 0 0 4px 0 !important; padding: 0 !important; width: calc(100% - 4.5em) !important; border: none !important; background: transparent !important; }
.partner-notice { margin-top: 8px !important; font-size: 0.75rem !important; color: #666 !important; }
.partner-img-area { width: 100px !important; flex-shrink: 0 !important; display: flex !important; flex-direction: column !important; justify-content: space-between !important; }
.partner-img-area img { width: 100% !important; height: auto !important; border-radius: 4px !important; box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important; margin: 0 !important; }
.partner-req { text-align: right !important; color: #d3381c !important; font-size: 0.75rem !important; font-weight: bold !important; margin-top: 8px !important; padding: 0 !important; }

/* お知らせ一覧 [news_grid_list] */
.news-list-wrap { margin: 40px 0 !important; font-family: Arial, sans-serif !important; }
.news-tabs { display: flex !important; justify-content: center !important; list-style: none !important; padding: 0 !important; margin: 0 0 35px 0 !important; border-bottom: none !important; gap: 10px !important; flex-wrap: wrap !important; }
.news-tab-item { padding: 8px 20px !important; cursor: pointer !important; font-size: 0.95rem !important; color: #666 !important; font-weight: bold !important; background: #f7f7f7 !important; border: 1px solid #ddd !important; border-radius: 20px !important; transition: Arial 0.3s !important; }
.news-tab-item:hover { color: #E4820B !important; border-color: #E4820B !important; background: #fff9f5 !important; }
.news-tab-item.active { background: #E4820B !important; border-color: #E4820B !important; color: #fff !important; }
.news-list-container { border-top: 2px solid #E4820B; display: flex; flex-direction: column; }
.news-list-row { display: flex; justify-content: space-between; align-items: center; padding: 15px 10px; border-bottom: 1px dashed #ccc; text-decoration: none !important; color: #333 !important; transition: background 0.3s; }
.news-list-row:hover { background: #fff9f5; }
.news-list-row.is-visible { display: flex !important; animation: newsFadeIn 0.4s ease forwards; }
.news-list-row.is-hidden { display: none !important; }
@keyframes newsFadeIn { 0% { opacity: 0; transform: translateY(10px); } 100% { opacity: 1; transform: translateY(0); } }
.news-list-content { display: flex; align-items: center; gap: 20px; flex-grow: 1; }
.news-list-meta { display: flex; align-items: center; gap: 15px; flex-shrink: 0; width: 180px; }
.news-list-date { font-size: 0.95rem; color: #666; }
.news-list-cat { color: #fff !important; font-size: 0.75rem !important; padding: 5px 0 !important; width: 95px; text-align: center; border-radius: 2px !important; font-weight: bold !important; background: #888 !important; }
.news-list-cat.cat-news { background: #005A9C !important; }
.news-list-cat.cat-event { background: #E4820B !important; }
.news-list-cat.cat-campaign { background: #E60012 !important; }
.news-list-cat.cat-special { background: #8e44ad !important; }
.news-list-title { font-size: 1.05rem !important; font-weight: bold !important; margin: 0 !important; line-height: 1.5; }
.news-list-thumb { width: 120px; flex-shrink: 0; margin-left: 20px; border-radius: 4px; overflow: hidden; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
.news-list-thumb img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; display: block; }

/* ==============================================
   フッターエリアのカスタマイズ（オレンジ背景）
   ============================================== */
.footer { background-color: #E4820B !important; color: #383839 !important; border-top: none !important; }
.footer .wrap { width:100%; }
.navi-footer { margin-bottom: 10px !important; }
.navi-footer a { color: #383839 !important; font-weight: bold; font-size: 0.85rem; border: none !important; background: transparent !important; display: inline-block; }
.navi-footer a:hover { color: #fff !important; }
.navi-footer li { position: relative !important; padding: 0 12px !important; border: none !important; background: transparent !important; }
.navi-footer li:not(:last-child)::after { content: "｜" !important; color: rgba(255, 255, 255, 1) !important; position: absolute; right: -2px; top: 50%; transform: translateY(-50%); font-weight: bold !important; pointer-events: none; }
.copyright { text-align: right !important; padding-right: 20px !important; font-size: 0.9rem !important; color: #333 !important; border: none !important; }
.footer-bottom { background-color: transparent !important; border: none !important; }
.footer-bottom.fdt-up-and-down .footer-bottom-content .navi-footer-in > ul { align-items: center; }

/* ==============================================
   7. レスポンシブ対応（スマホ・タブレット用）
   ============================================== */
@media screen and (max-width: 1024px) {
    /* 提携店舗一覧 */
    .partner-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media screen and (max-width: 834px) {
    /* トップページ */
    .fv-section, .info-section, .price-section { flex-direction: column; }
    .fv-main, .fv-side, .schedule-col, .links-col, .price-left, .price-right { width: 100%; }

    /* お知らせ詳細 */
    .custom-title-bar { flex-direction: column; align-items: flex-start; gap: 5px; }
    .custom-post-nav { flex-direction: column; }
    .nav-btn { width: 100%; box-sizing: border-box; }
    .single-post .entry-content { padding: 20px !important; }

    /* アクセスページ */
    .access-info-row { display: flex !important; flex-direction: column-reverse; gap: 15px; }
    .access-info-card { padding: 20px; width: 100% !important; }
    .access-google-map iframe { height: 300px; }
    .access-map-row { display: flex !important; flex-direction: column-reverse; }
    .transport-grid > .wp-block-column { border-right: none; border-bottom: 1px solid #ddd; }
    .transport-grid > .wp-block-column:last-child { border-bottom: none; }
    .parking-row { display: flex !important; flex-direction: column; }
    .parking-row:nth-child(2) { flex-direction: column-reverse; }
    .parking-col-img, .parking-col-text { border-right: none; border-left: none !important; border-bottom: 1px solid #ddd; padding: 25px !important; }
    .parking-col-text:last-child { border-bottom: none; }
    .parking-row:last-child .parking-col-img { border-bottom: none; }

    /* 上映作品一覧 */
    .movie-list-item { flex-direction: column; }
    .movie-left-block, .movie-right-block { flex: none; width: 100%; border-right: none; }
    .movie-left-block { border-bottom: 2px solid #ccc; }
    .movie-right-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .movie-action-right { text-align: center; }
    .btn-ticket { width: 100%; box-sizing: border-box; }

    /* 上映作品詳細 */
    .movie-single-flex { flex-direction: column; gap: 30px; padding: 20px 15px; }
    .movie-single-left, .movie-single-right { width: 100%; }
    .movie-info-table th { width: 35%; padding: 10px; font-size: 0.9rem; }
    .movie-info-table td { padding: 10px; font-size: 0.95rem; }
    .movie-single-buttons { flex-direction: column; }
    .btn-orange { width: 100%; box-sizing: border-box; }

    /* お知らせ一覧ショートコード */
    .news-list-row { align-items: flex-start; }
    .news-list-content { flex-direction: column; align-items: flex-start; gap: 8px; }
    .news-list-meta { width: 100%; }
    .news-list-thumb { width: 90px; margin-left: 10px; }
}

@media screen and (max-width: 600px) {
    /* 提携店舗一覧 */
    .partner-grid { grid-template-columns: 1fr !important; } 
    .partner-body { flex-direction: column !important; } 
    .partner-img-area { width: 100% !important; flex-direction: row !important; align-items: flex-end !important; gap: 15px !important; } 
    .partner-img-area img { width: 120px !important; }

    /* 上映作品一覧（黒いブロックの縦積み） */
    .movie-left-block { flex-direction: column; align-items: center; padding: 20px 15px; }
    .movie-poster { width: 100%; max-width: 320px; margin-bottom: 20px; }
    .movie-left-info { width: 100%; align-items: stretch; gap: 15px; }
    .movie-badges-top { align-items: center; }
    .badge-status-group { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
    .movie-price-box { margin: 0; padding: 15px; }
    .price-amount { font-size: 1.8rem; }
    .price-label br { display: none; }
}