/* ==================================================
   publications.css「カレンダー」セクションへの追加分
   ① モバイル部分：「カレンダー応募リスト」の後に追加
   ② PC部分：カレンダーの @container( min-width:1000px ) 内の末尾に追加
   ================================================== */

/* ---------- ① モバイル ---------- */

/* 終了表記付き見出し */
.bosyu-title.is-end { flex-direction:column; height:auto; line-height:1.4; min-height:70px; padding:8px 16px; text-align:center; }
.bosyu-end { font-size:14px; }

/* 2027年版メイン画像 */
.calendar-main { margin:0 0 16px; }
.calendar-main a { display:block; }
.calendar-main a:focus-visible { outline:3px solid var(--gr-2); outline-offset:2px; }
.calendar-main a:hover img { opacity:.85; }
.calendar-main img { aspect-ratio:364/257; background-color:var(--gr-1); cursor:zoom-in; height:auto; object-fit:contain; transition:opacity .3s; width:100%; }
.calendar-main figcaption { font-size:12px; margin-top:4px; text-align:right; }

/* 月別写真ギャラリー */
.month-gallery { gap:6px; grid-template-columns:repeat(5, 1fr); margin-bottom:40px; }
.month-gallery a { display:block; position:relative; }
.month-gallery a[aria-current="true"] { outline:3px solid var(--gr-2); outline-offset:-3px; }
.month-gallery a:hover img { opacity:.7; }
.month-gallery img { aspect-ratio:364/257; height:auto; object-fit:cover; transition:opacity .3s; width:100%; }
.month-gallery span { background-color:var(--gr-2); bottom:0; color:var(--wh); font-size:10px; left:0; line-height:1.6; padding:0 4px; position:absolute; }

/* 拡大表示 */
body:has(.lightbox[open]) { overflow:hidden; }
.lightbox { background-color:transparent; border:none; overflow:visible; padding:0; }
.lightbox::backdrop { background-color:rgba(0, 0, 0, .8); }
.lightbox figure { margin:0; }
.lightbox img { display:block; height:auto; max-height:80vh; max-width:90vw; width:auto; }
.lightbox figcaption { color:var(--wh); font-weight:700; margin-top:8px; text-align:center; }
.lightbox button { align-items:center; background-color:rgba(0, 0, 0, .5); border:none; border-radius:50%; color:var(--wh); cursor:pointer; display:flex; font-size:24px; height:40px; justify-content:center; line-height:1; position:absolute; width:40px; }
.lightbox button:focus-visible { outline:2px solid var(--wh); }
.lightbox-close { right:0; top:-48px; }
.lightbox-next { right:8px; top:calc( 50% - 20px ); }
.lightbox-prev { left:8px; top:calc( 50% - 20px ); }

/* 申し込み案内 */
.order-title { font-size:18px; font-weight:700; margin-bottom:8px; }
.order-title.order-title-strong { border-bottom:2px solid var(--gr-2); color:var(--gr-2); font-size:20px; padding-bottom:4px; }
.order-link { color:var(--gr-2); text-decoration:underline; }
.order-link:hover { text-decoration:none; }
.order-qr { display:block; height:auto; margin:8px 0; width:120px; }
.num-list { padding-left:24px; }
.num-list li { list-style-type:decimal; }


/* ---------- ② PC（@container( min-width:1000px ) 内） ---------- */

/* 終了表記付き見出し */
.bosyu-title.is-end { flex-direction:row; gap:24px; min-height:54px; width:650px; }
.bosyu-end { font-size:18px; }

/* 月別写真ギャラリー */
.calendar-main figcaption { font-size:14px; }
.month-gallery { gap:12px; grid-template-columns:repeat(7, 1fr); }
.month-gallery span { font-size:13px; padding:2px 8px; }

/* 申し込み案内 */
.order-title { font-size:22px; }
.order-title.order-title-strong { font-size:26px; }
.order-qr { width:150px; }