
:root{ --max:1100px; --pad:18px; --border:#e5e7eb; --muted:#6b7280; }
*{ box-sizing:border-box; }
body{ margin:0; font-family: system-ui,-apple-system,"Segoe UI","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif; line-height:1.65; color:#111827; background:#fff; }
a{ color:inherit; }
.container{ max-width:var(--max); margin:0 auto; padding:0 var(--pad); }
.site-header{ border-bottom:1px solid var(--border); background:#fff; position:sticky; top:0; z-index:10; }
.header-inner{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; }
.brand{ font-weight:700; letter-spacing:.02em; text-decoration:none; }
.nav ul{ display:flex; list-style:none; padding:0; margin:0; gap:12px; flex-wrap:wrap; }
.nav a{ text-decoration:none; }
.badge{ display:inline-block; padding:2px 8px; border:1px solid var(--border); border-radius:999px; font-size:12px; color:var(--muted); }
.hero{ padding:22px 0; }
.grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:20px; }
@media (max-width:900px){ .grid{ grid-template-columns:1fr; } }
.card{ border:1px solid var(--border); border-radius:14px; padding:16px; background:#fff; }
.section-title{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
.small{ font-size:13px; color:var(--muted); }
.film-row{ display:flex; gap:14px; padding:12px 0; border-top:1px dashed var(--border); }
.film-row:first-of-type{ border-top:none; }
.poster{ width:78px; flex:0 0 78px; border-radius:10px; overflow:hidden; border:1px solid var(--border); background:#f3f4f6; }
.poster img{ width:100%; height:auto; display:block; }
.film-meta{ flex:1; min-width:0; }
.film-title{ font-weight:700; margin:0 0 6px; text-decoration:none; display:inline-block; }
.time-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.time-chip{ display:inline-flex; align-items:center; padding:4px 10px; border:1px solid var(--border); border-radius:999px; font-size:13px; background:#fff; }
.note{ margin-top:6px; font-size:13px; color:var(--muted); }
.btn{ display:inline-block; padding:10px 14px; border:1px solid var(--border); border-radius:12px; text-decoration:none; background:#fff; }
.btn:hover{ background:#f9fafb; }
hr.sep{ border:none; border-top:1px solid var(--border); margin:14px 0; }
details.accordion{ border:1px solid var(--border); border-radius:14px; padding:12px 14px; background:#fff; margin:10px 0; }
details.accordion summary{ cursor:pointer; font-weight:700; list-style:none; }
details.accordion summary::-webkit-details-marker{ display:none; }
.week-days{ display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap:10px; margin-top:10px; }
@media (max-width:900px){ .week-days{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
.day-box{ border:1px solid var(--border); border-radius:12px; padding:10px; }
.day-date{ font-size:12px; color:var(--muted); margin-bottom:6px; }
.day-times{ display:flex; flex-wrap:wrap; gap:6px; }
.site-footer{ border-top:1px solid var(--border); margin-top:30px; padding:18px 0; color:var(--muted); font-size:13px; }
.article h1{ margin:18px 0 10px; }
.article .meta{ color:var(--muted); font-size:13px; margin-bottom:12px; }
.kv{ display:grid; grid-template-columns: 180px 1fr; gap:10px; border-top:1px dashed var(--border); padding:10px 0; }
.kv:first-of-type{ border-top:none; }
.kv dt{ color:var(--muted); }
.kv dd{ margin:0; }

.badge-icons{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.badge-icon{ width:24px; height:24px; border-radius:6px; border:1px solid var(--border); background:#fff; }

/* =============================
   PRICE GUIDE
   ============================= */
.cd-price{ margin: 0; }
.cd-price-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom: 12px; }
.cd-price-title{ font-size: 20px; font-weight: 800; margin: 0; }
.cd-price-link{ font-size: 13px; color: var(--muted); }
.cd-price-grid{ display:grid; grid-template-columns: 1fr; gap:12px; }
@media (min-width: 920px){ .cd-price-grid{ grid-template-columns: 1fr 1fr; } }
.cd-price-card{ border:1px solid var(--border); background: #fff; border-radius: 14px; padding: 12px; }
.cd-price-sub{ font-weight: 800; font-size: 13px; color: #222; margin-bottom: 10px; }
.cd-price-sub.off{ color: #b42318; }
.cd-price-table{ display:flex; flex-direction:column; gap:8px; }
.cd-price-row{ display:flex; justify-content:space-between; gap:10px; padding: 10px 12px; border-radius: 12px; border:1px solid var(--border); background: #fafafa; }
.cd-price-cell{ color: #222; }
.cd-price-cell.val{ font-weight: 800; }
.cd-price-list{ margin: 0; padding-left: 18px; color: #222; line-height: 1.7; }
.cd-price-list li{ margin: 0 0 6px; }
.cd-price-note{ margin-top: 10px; font-size: 13px; color: var(--muted); }

/* =============================
   INFORMATION
   ============================= */
.cd-info{ margin:0; }
.cd-info-title{ font-size: 22px; font-weight: 900; margin: 0 0 12px; }
.cd-info-grid{ display:grid; grid-template-columns: 1fr; gap:12px; }
@media (min-width: 920px){ .cd-info-grid{ grid-template-columns: 1fr 1fr; } }
.cd-info-card{ border:1px solid var(--border); background:#fff; border-radius: 14px; padding: 12px; }
.cd-info-sub{ font-weight: 900; font-size: 14px; margin-bottom: 10px; }
.cd-info-list{ margin:0; padding-left: 18px; line-height: 1.7; }
.cd-info-list li{ margin:0 0 6px; }
.cd-info-kv{ margin-top: 12px; display:grid; gap:8px; }
.cd-info-row{ display:grid; grid-template-columns: 64px 1fr; gap:10px; padding: 10px 12px; border:1px solid var(--border); border-radius: 12px; background:#fafafa; }
.cd-info-row .k{ color: var(--muted); font-size: 13px; }
.cd-info-row .v{ color: #111827; }
.cd-info-map{ margin-top: 12px; border:1px solid var(--border); border-radius: 12px; overflow:hidden; background:#f3f4f6; }
.cd-info-map iframe{ width:100%; height: 320px; display:block; }
.cd-info-text p{ margin: 0 0 10px; }
.cd-info-note{ color: var(--muted); font-size: 13px; margin: 0; }
