/* まちのスケジュール（schedule.php） */
.sc { max-width: 1280px; }
.sc-head { position: relative; min-height: 150px; margin: 6px 0 22px; padding-right: 200px; }
.sc-sign { display: inline-flex; align-items: center; gap: 12px; margin: 0; padding: 14px 30px 16px 16px; border-radius: 16px; transform: rotate(-2deg); color: #fff; font-size: clamp(28px, 3.2vw, 44px); font-weight: 900; letter-spacing: .04em;
  background: repeating-linear-gradient(178deg, rgba(90, 40, 5, .12) 0 2px, transparent 2px 9px), linear-gradient(180deg, #b8753a, #8a5222); text-shadow: 0 3px 0 #3d1f06; box-shadow: inset 0 0 0 3px #5c3212, 0 8px 0 #5c3212, 0 14px 24px rgba(0, 0, 0, .25); }
.sc-sign img { width: 1.4em; height: 1.4em; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .3)); }
.sc-lead { margin: 18px 0 0; display: inline-block; padding: 10px 18px; border-radius: 16px; background: rgba(255, 250, 238, .95); font-weight: 800; color: #3b2a14; box-shadow: 0 4px 12px rgba(0, 0, 0, .1); }
.sc-chara { position: absolute; right: 10px; top: -10px; width: 170px; filter: drop-shadow(0 10px 12px rgba(0, 0, 0, .25)); animation: tk-fly 4.5s ease-in-out infinite; }
@keyframes tk-fly { 0%, 100% { transform: translate(0, 0) rotate(-4deg); } 50% { transform: translate(-10px, -12px) rotate(4deg); } }
.sc-say { position: absolute; right: 170px; top: 14px; margin: 0; padding: 8px 14px; border-radius: 16px; background: #fff; color: #1b4f8a; font-weight: 900; font-size: 14px; box-shadow: 0 4px 10px rgba(0, 0, 0, .15); white-space: nowrap; }
.sc-body { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 22px; align-items: start; }
.sc-next, .sc-cal { padding: 18px; border-radius: 24px; background: repeating-linear-gradient(178deg, rgba(90, 40, 5, .08) 0 2px, transparent 2px 10px), linear-gradient(180deg, #c98a4b, #9a5d27); box-shadow: inset 0 0 0 3px #6b3a14, 0 12px 26px rgba(0, 0, 0, .2); }
.sc-next h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #fff; font-size: 22px; font-weight: 900; text-shadow: 0 2px 0 #3d1f06; }
.sc-next h2 img { width: 32px; height: 32px; }
.sc-none { margin: 0; padding: 14px; border-radius: 14px; background: #fffaf0; font-weight: 800; }
.sc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sc-card { display: grid; grid-template-columns: 66px 44px 1fr auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 16px; background: linear-gradient(180deg, #fffaf0, #fbefd6); box-shadow: inset 5px 0 0 var(--k), inset 0 0 0 2px #f1d9a8, 0 4px 0 #6b3a14; transition: transform .3s cubic-bezier(.3, 1.8, .5, 1); }
.sc-card:hover { transform: translateY(-4px) rotate(-.5deg); }
.sc-card.is-first { background: linear-gradient(180deg, #fff6d6, #ffe7a8); box-shadow: inset 6px 0 0 var(--k), inset 0 0 0 3px #ffc94a, 0 4px 0 #b8860b, 0 0 20px rgba(255, 200, 60, .5); animation: sc-glow 2.4s ease-in-out infinite; }
@keyframes sc-glow { 50% { transform: translateY(-3px); } }
.sc-date { display: grid; justify-items: center; line-height: 1.05; padding: 6px 0; border-radius: 12px; background: var(--k); color: #fff; }
.sc-date b { font-size: 18px; letter-spacing: -.03em; font-weight: 900; } .sc-date small { font-size: 11px; font-weight: 800; }
.sc-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--k) 40%, #fff); }
.sc-ic img { width: 34px; height: 34px; }
.sc-main { display: grid; gap: 2px; min-width: 0; }
.sc-main b { font-size: 16px; font-weight: 900; color: #1b2440; line-height: 1.3; }
.sc-main small { font-size: 12px; font-weight: 700; color: #6b5a3e; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-count { font-size: 12px; font-weight: 800; color: #6b5a3e; white-space: nowrap; }
.sc-count b { font-size: 22px; color: var(--k); margin: 0 2px; }
.sc-count em { display: inline-block; padding: 4px 10px; border-radius: 999px; background: #ff3b5c; color: #fff; font-style: normal; font-weight: 900; font-size: 13px; animation: sc-beat 1s ease-in-out infinite; }
@keyframes sc-beat { 50% { transform: scale(1.1); } }
.sc-month { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 12px; }
.sc-month h2 { margin: 0; color: #fff; font-size: 24px; font-weight: 900; text-shadow: 0 2px 0 #3d1f06; }
.sc-month h2 b { font-size: 40px; color: #ffe27a; }
.sc-nav { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #fffaf0; color: #8a5222; font-size: 28px; font-weight: 900; text-decoration: none; box-shadow: 0 4px 0 #5c3212; transition: transform .2s; }
.sc-nav:hover { transform: scale(1.1); }
.sc-today-btn { padding: 6px 14px; border-radius: 999px; background: #ff8a1f; color: #fff; font-weight: 900; text-decoration: none; box-shadow: 0 3px 0 #c45f00; }
.sc-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.sc-wd { padding: 6px 0; border-radius: 10px; background: rgba(255, 250, 238, .9); text-align: center; font-weight: 900; color: #3b2a14; }
.sc-wd.is-sun { color: #e8412d; } .sc-wd.is-sat { color: #2f66e0; }
.sc-day { position: relative; min-height: 96px; padding: 6px; border-radius: 14px; background: #fffaf0; box-shadow: inset 0 0 0 1.5px #f1e2c2; display: flex; flex-direction: column; gap: 3px; overflow: hidden; transition: transform .25s cubic-bezier(.3, 1.8, .5, 1); }
.sc-day.is-empty { background: rgba(255, 250, 238, .35); box-shadow: none; }
.sc-day.has-ev:hover { transform: scale(1.06); z-index: 2; box-shadow: inset 0 0 0 2px #ffcf8a, 0 8px 16px rgba(0, 0, 0, .2); }
.sc-num { font-weight: 900; font-size: 16px; color: #3b2a14; }
.sc-day.is-sun .sc-num { color: #e8412d; } .sc-day.is-sat .sc-num { color: #2f66e0; }
.sc-day.is-today { background: linear-gradient(180deg, #fff3c4, #ffe08a); box-shadow: inset 0 0 0 3px #ff8a1f, 0 0 16px rgba(255, 170, 40, .6); }
.sc-day.is-today .sc-num::after { content: "きょう"; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: #ff8a1f; color: #fff; font-size: 10px; vertical-align: 2px; }
.sc-chip { display: flex; align-items: center; gap: 3px; padding: 2px 6px 2px 2px; border-radius: 8px; background: color-mix(in srgb, var(--k) 18%, #fff); box-shadow: inset 3px 0 0 var(--k); font-size: 11px; font-weight: 800; color: #1b2440; min-width: 0; }
.sc-chip img { width: 18px; height: 18px; flex: none; }
.sc-chip i { font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sc-more { font-size: 11px; font-weight: 900; color: #8a5222; }
.sc-legend { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.sc-legend li { display: flex; align-items: center; gap: 4px; padding: 4px 12px 4px 4px; border-radius: 999px; background: #fffaf0; font-size: 13px; font-weight: 800; box-shadow: inset 3px 0 0 var(--k); }
.sc-legend img { width: 22px; height: 22px; }
@media (max-width: 1100px) { .sc-body { grid-template-columns: 1fr; } }
@media (max-width: 720px) {
  .sc-head { padding-right: 0; min-height: 0; }
  .sc-chara { width: 90px; top: -4px; right: 0; } .sc-say { display: none; }
  .sc-sign { font-size: 24px; padding: 10px 20px 12px 12px; }
  .sc-lead { font-size: 13px; margin-right: 80px; }
  .sc-next, .sc-cal { padding: 12px; }
  .sc-card { grid-template-columns: 52px 38px 1fr; } .sc-count { grid-column: 3; justify-self: start; } .sc-ic { width: 38px; height: 38px; } .sc-ic img { width: 28px; height: 28px; }
  .sc-grid { gap: 3px; } .sc-day { min-height: 58px; padding: 3px; border-radius: 10px; }
  .sc-chip { padding: 1px; justify-content: center; } .sc-chip i { display: none; } .sc-chip img { width: 16px; height: 16px; }
  .sc-num { font-size: 13px; } .sc-day.is-today .sc-num::after { display: none; }
}
@media (prefers-reduced-motion: reduce) { .sc-chara, .sc-card.is-first, .sc-count em { animation: none; } }
/* 2026-09-27：つぎの予定は1行で（題名が折れない・日付バッジがはみ出さない）。説明文はスマホでは出さない */
.sc-card { grid-template-columns: 60px 40px minmax(0, 1fr) auto; }
.sc-main b { word-break: keep-all; overflow-wrap: anywhere; }
.sc-date b { font-size: 17px; }
@media (min-width: 1101px) { .sc-card { grid-template-columns: 64px minmax(0, 1fr) auto; } .sc-card .sc-ic { display: none; } }
@media (max-width: 720px) {
  .sc-lead { display: none; }
  .sc-head { margin-bottom: 4px; }
  .sc-card { grid-template-columns: 56px 34px minmax(0, 1fr) auto; gap: 8px; padding: 8px 10px; }
  .sc-count { grid-column: auto; justify-self: end; }
  .sc-count b { font-size: 19px; }
  .sc-ic { width: 34px; height: 34px; } .sc-ic img { width: 26px; height: 26px; }
  .sc-date b { font-size: 15px; } .sc-date small { font-size: 10px; }
  .sc-main b { font-size: 15px; }
  .sc-next h2 { font-size: 19px; margin-bottom: 8px; }
}
.sc-lead { display: none; }

/* ===== 目玉イベント（つぎの予定の上）2026-09-27 ===== */
.sc-left { display: grid; gap: 16px; align-content: start; min-width: 0; }
.sc-feat { position: relative; overflow: hidden; min-height: 210px; padding: 18px 18px 16px; border-radius: 24px; color: #fff; isolation: isolate;
  background: linear-gradient(135deg, #b35cf6, #ff5a8a 60%, #ffb13d); box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .55), 0 0 0 4px #ffd23d, 0 14px 30px rgba(120, 40, 120, .35); }
.sc-feat-img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; opacity: .55; mix-blend-mode: luminosity; transform: scale(1.05); animation: sc-feat-pan 14s ease-in-out infinite alternate; }
.sc-feat::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(90, 20, 110, .15), rgba(90, 20, 110, .75)); }
@keyframes sc-feat-pan { to { transform: scale(1.14) translate(-3%, 2%); } }
.sc-feat-tag { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 4px 12px 4px 6px; border-radius: 99px; background: #ffd23d; color: #6b1a5a; font-weight: 900; font-size: 13px; box-shadow: 0 3px 0 #b8860b; animation: sc-beat 1.6s ease-in-out infinite; }
.sc-feat-tag img { width: 22px; height: 22px; }
.sc-feat-title { margin: 10px 0 4px; font-size: clamp(34px, 3.4vw, 50px); font-weight: 900; line-height: 1.05; letter-spacing: .04em; color: #fff; text-shadow: 0 3px 0 #8a1f6a, 0 6px 16px rgba(0, 0, 0, .35); }
.sc-feat-lead { margin: 0 0 10px; font-weight: 800; font-size: 14px; line-height: 1.5; text-shadow: 0 2px 4px rgba(0, 0, 0, .4); }
.sc-feat-when { display: inline-block; margin: 0; padding: 6px 14px; border-radius: 14px; background: rgba(255, 255, 255, .95); color: #6b1a5a; font-weight: 900; font-size: 14px; }
.sc-feat-when b { font-size: 18px; margin-right: 6px; color: #e8412d; }
.sc-feat-count { position: absolute; right: 14px; bottom: 12px; margin: 0; font-weight: 900; font-size: 14px; text-shadow: 0 2px 4px rgba(0, 0, 0, .4); }
.sc-feat-count b { font-size: 40px; color: #ffe27a; margin: 0 2px; }
.sc-feat-count em { font-style: normal; font-size: 26px; color: #ffe27a; }
@media (max-width: 720px) { .sc-feat { min-height: 170px; padding: 14px; } .sc-feat-count b { font-size: 32px; } }
@media (prefers-reduced-motion: reduce) { .sc-feat-img, .sc-feat-tag { animation: none; } }

/* 目玉イベント：お祭りの絵（ちょうちん・紅白幕・花火）の 赤い幕の上に 文字（2026-09-27） */
.sc-feat { aspect-ratio: 16 / 10; min-height: 0; padding: 0; background: #7a1a10; box-shadow: 0 0 0 4px #ffd23d, 0 0 0 8px #c0392b, 0 14px 30px rgba(120, 20, 10, .4); }
.sc-feat::after { display: none; }
.sc-feat-img { opacity: 1; mix-blend-mode: normal; transform: none; animation: sc-feat-glow 3s ease-in-out infinite alternate; }
@keyframes sc-feat-glow { to { filter: brightness(1.08) saturate(1.1); } }
.sc-feat-tag { position: absolute; left: 6%; top: 21%; z-index: 2; }
.sc-feat-title { position: absolute; left: 6%; top: 30%; margin: 0; display: flex; }
.sc-feat-title i { font-style: normal; display: inline-block; font-size: clamp(34px, 3.6vw, 54px); -webkit-text-stroke: 7px #fff; paint-order: stroke fill; text-shadow: none;
  filter: drop-shadow(0 4px 0 #6b0f06) drop-shadow(0 8px 12px rgba(0, 0, 0, .4)); animation: tt-hop .7s var(--d) cubic-bezier(.3, 1.8, .5, 1) both, tt-bob 2.6s calc(var(--d) + .8s) ease-in-out infinite; }
.sc-feat-title i:nth-child(1) { color: #ff4f7a; transform: rotate(-6deg); } .sc-feat-title i:nth-child(2) { color: #ffb000; transform: translateY(4px) rotate(4deg); }
.sc-feat-title i:nth-child(3) { color: #2dbd6e; transform: rotate(-3deg); } .sc-feat-title i:nth-child(4) { color: #2f8bff; transform: translateY(3px) rotate(5deg); } .sc-feat-title i:nth-child(5) { color: #b35cf6; transform: rotate(-4deg); }
@keyframes tt-hop { from { transform: translateY(-30px) scale(.4); opacity: 0; } }
@keyframes tt-bob { 50% { translate: 0 -5px; } }
.sc-feat-lead { position: absolute; left: 6%; top: 55%; width: 56%; margin: 0; font-size: clamp(11px, 1vw, 13px); color: #fff3d6; text-shadow: 0 2px 3px rgba(0, 0, 0, .5); }
.sc-feat-when { position: absolute; left: 6%; bottom: 20%; margin: 0; padding: 5px 14px; box-shadow: 0 3px 0 #b8860b; }
.sc-feat-count { right: 5%; bottom: 7%; padding: 4px 12px; border-radius: 14px; background: rgba(40, 10, 60, .55); }
@media (max-width: 720px) { .sc-feat-title i { font-size: 36px; -webkit-text-stroke: 6px #fff; } .sc-feat-lead { font-size: 11px; top: 56%; } .sc-feat-when { font-size: 12px; } .sc-feat-when b { font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .sc-feat-title i, .sc-feat-img { animation: none; } }
.sc-feat-tag { top: 22%; left: 5%; }
.sc-feat-title { top: 33%; left: 5%; }
.sc-feat-lead { display: none; }
.sc-feat-when { bottom: 22%; left: 5%; }
.sc-feat-count { bottom: 6%; }
@media (max-width: 720px) { .sc-feat-tag { top: 16%; font-size: 11px; } .sc-feat-tag img { width: 18px; height: 18px; } .sc-feat-title { top: 32%; } .sc-feat-title i { font-size: 32px; } .sc-feat-when { bottom: 18%; } }

/* 目玉イベント → イベントページへ */
.sc-feat-more { position: absolute; left: 6%; bottom: 8%; z-index: 3; padding: 8px 18px; border-radius: 999px; background: linear-gradient(180deg, #ffa53c, #f07a12); color: #fff; font-weight: 900; font-size: 14px; text-decoration: none; white-space: nowrap; text-shadow: 0 1px 0 #9a3a00; box-shadow: inset 0 0 0 2px #ffd23d, 0 4px 0 #9a3a00; }
.sc-feat-more:hover { transform: translateY(-2px); }
.sc-feat-when { bottom: 27%; }
@media (max-width: 720px) { .sc-feat-when { bottom: 30%; } .sc-feat-more { bottom: 7%; padding: 6px 14px; font-size: 13px; } }
