.event-note-link { display:block; margin-top:14px; padding:8px 0; color:#863529; font-size:13px; line-height:1.8; text-decoration:underline; text-underline-offset:4px; }
.event-note-link:hover { color:#201916; }
.event-note-link:focus-visible, .events-page a:focus-visible { outline:3px solid #a73526; outline-offset:5px; }
.events-page { margin:0; color:#29231f; background:#fbfaf6; font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif; line-height:1.95; }
.events-page * { box-sizing:border-box; }
.events-page a { color:inherit; }
.events-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px max(6vw,20px); border-bottom:1px solid #ddd6ca; }
.events-header>a:last-child { font-size:13px; text-underline-offset:5px; }
.events-brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-size:20px; }
.events-brand img { border-radius:50%; object-fit:cover; }
.events-brand small { display:block; font-size:10px; letter-spacing:.2em; }
.events-hero { max-width:1120px; margin:auto; padding:28px 36px 66px; background:linear-gradient(115deg,transparent 65%,#f1e9dd 100%); }
.events-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; font-size:12px; color:#6b625d; margin-bottom:58px; }
.events-eyebrow { color:#8b3d2e; font-size:14px; letter-spacing:.18em; }
.events-hero h1 { margin:20px 0 25px; font-size:clamp(38px,6vw,66px); line-height:1.55; font-weight:500; letter-spacing:.12em; }
.events-intro { font-size:16px; line-height:2.2; }
.events-index { display:grid; grid-template-columns:repeat(4,1fr); gap:0 28px; max-width:1048px; margin:0 auto 65px; padding:24px 0; border-block:1px solid #d9d0c3; }
.events-index a { display:flex; align-items:center; min-height:52px; padding:10px 0; font-size:14px; text-underline-offset:5px; }
.events-stories { max-width:1048px; margin:auto; }
.event-story { display:grid; grid-template-columns:290px minmax(0,1fr); gap:55px; padding:65px 0; border-top:1px solid #d9d0c3; scroll-margin-top:24px; }
.event-story:first-child { border-top:0; }
.event-date { color:#8b3d2e; font-size:13px; letter-spacing:.08em; margin:0 0 12px; }
.event-story h2 { margin:0 0 18px; font-size:29px; font-weight:500; line-height:1.6; }
.event-catch { color:#6b625d; font-size:15px; }
.event-story-body p { margin:0 0 24px; }
.event-story figure { margin:0 0 28px; }
.event-story img { display:block; width:100%; height:300px; object-fit:cover; }
.event-traditions { background:#f1ede5; padding:28px; margin:30px 0; }
.event-traditions h3 { font-size:19px; margin:0 0 20px; font-weight:500; }
.event-traditions dt { color:#843c2d; margin:22px 0 8px; font-weight:600; }
.event-traditions dd { margin:0; font-size:15px; }
.event-return { display:inline-block; padding:10px 0; font-size:13px; text-underline-offset:5px; }
.events-source { max-width:1048px; margin:35px auto 80px; padding:32px 40px; border:1px solid #d9d0c3; background:#f3efe7; font-size:14px; }
.events-source h2 { font-size:19px; font-weight:500; }
.events-phone { font-size:24px; text-underline-offset:5px; }
.events-footer { display:flex; justify-content:space-between; gap:20px; padding:30px max(6vw,20px); border-top:1px solid #ddd6ca; font-size:13px; }
@media(max-width:1150px) { .events-index,.events-stories,.events-source { margin-left:36px; margin-right:36px; } }
@media(max-width:700px) { .events-header { padding:15px 20px; align-items:flex-start; } .events-brand { font-size:15px; gap:8px; } .events-brand img { width:36px; height:36px; } .events-header>a:last-child { max-width:88px; font-size:11px; text-align:right; } .events-hero { padding:22px 24px 40px; } .events-breadcrumb { margin-bottom:35px; font-size:11px; } .events-intro { font-size:14px; } .events-index,.events-stories,.events-source { margin-left:24px; margin-right:24px; } .events-index { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; margin-bottom:20px; } .events-index a { font-size:12px; } .event-story { grid-template-columns:1fr; gap:18px; padding:40px 0; } .event-story h2 { font-size:27px; } .event-catch { margin-bottom:0; } .event-story-body { font-size:15px; } .event-story img { height:220px; } .event-traditions { padding:22px; } .events-source { padding:24px; margin-top:20px; margin-bottom:40px; } .events-footer { flex-direction:column; gap:8px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* 行事案内のモバイル導線。既存ページへの影響を行事欄に限定する。 */
.events-page { --event-red:#863529; --event-line:#d9d0c3; -webkit-text-size-adjust:100%; }
.events-skip { position:absolute; left:16px; top:-100px; z-index:100; padding:12px 20px; background:white; }
.events-skip:focus { top:10px; }
.events-hero { padding-bottom:34px; }
.events-hero h1 { font-size:clamp(30px,3.8vw,49px); line-height:1.6; letter-spacing:.05em; }
.events-hero h1 span { font-size:.76em; }
.events-breadcrumb { margin-bottom:30px; }
.events-updated { font-family:"Hiragino Sans",sans-serif; color:#6b625d; font-size:12px; margin:20px 0 0; }
.events-index { display:block; padding:24px 0 30px; margin-bottom:25px; }
.events-index h2 { font-size:16px; font-weight:500; margin:0 0 16px; }
.events-index-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.events-index a { display:grid; grid-template-columns:1fr 16px; align-content:center; gap:2px 6px; padding:14px 16px; min-height:84px; border:1px solid var(--event-line); background:#fff; text-decoration:none; font-size:16px; line-height:1.6; border-radius:6px; }
.events-index a:hover { border-color:var(--event-red); background:#fbf3ec; }
.events-index .index-date { grid-column:1 / -1; color:var(--event-red); font-family:"Hiragino Sans",sans-serif; font-size:12px; }
.index-arrow { color:var(--event-red); }
.events-reader-nav { position:sticky; top:0; z-index:20; max-width:1048px; margin:0 auto; background:#fbfaf6; box-shadow:0 4px 12px #29231f0a; border-block:1px solid var(--event-line); }
.events-reader-nav summary { display:flex; justify-content:space-between; gap:16px; align-items:center; cursor:pointer; min-height:54px; padding:12px 20px; font-family:"Hiragino Sans",sans-serif; font-size:14px; list-style:none; }
.events-reader-nav summary::-webkit-details-marker { display:none; }
.events-reader-nav summary>span:first-child::after { content:' ＋'; color:var(--event-red); }
.events-reader-nav details[open] summary>span:first-child::after { content:' −'; }
#reader-current { color:#6b625d; font-size:12px; text-align:right; }
.events-reader-nav nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:0 12px 12px; gap:8px; max-height:60dvh; overflow:auto; }
.events-reader-nav nav a { padding:12px; min-height:48px; background:#f0eae0; border-radius:4px; font-size:14px; text-decoration:none; }
.event-story { scroll-margin-top:78px; }
.event-story h2:focus { outline:none; }
.event-return { min-height:46px; padding:10px 14px; border:1px solid var(--event-line); border-radius:4px; text-decoration:none; }
.events-faq { max-width:1048px; margin:35px auto 55px; scroll-margin-top:78px; }
.events-faq>h2 { font-size:26px; font-weight:500; }
.events-faq details { border-top:1px solid var(--event-line); }
.events-faq details:last-child { border-bottom:1px solid var(--event-line); }
.events-faq summary { cursor:pointer; padding:20px 8px; font-size:16px; line-height:1.8; }
.events-faq details p { margin:0; padding:0 8px 24px; font-size:16px; line-height:2; }
.events-faq a,.events-source a { text-underline-offset:4px; }
.events-faq details[open] summary { color:var(--event-red); }
.events-mobile-actions { display:none; }
.events-header>a:last-child,.events-breadcrumb a,.events-footer a { display:inline-flex; align-items:center; min-height:44px; }
.event-note-link { min-height:44px; display:flex; align-items:center; gap:4px; padding:10px 12px; background:#f8f2ec; border:1px solid #e4d4c7; border-radius:4px; text-decoration:none; font-size:14px; }
.event-note-link span { margin-left:auto; flex-shrink:0; }
@media(max-width:1150px) { .events-reader-nav,.events-faq { margin-left:36px; margin-right:36px; } }
@media(max-width:700px) {
  .events-page { padding-bottom:calc(70px + env(safe-area-inset-bottom)); }
  .events-header { align-items:center; padding:10px 20px; gap:12px; }
  .events-header>a:last-child { max-width:92px; font-size:12px; }
  .events-hero { padding:10px 24px 24px; }
  .events-breadcrumb { margin-bottom:12px; }
  .events-eyebrow { font-size:12px; letter-spacing:.1em; }
  .events-hero h1 { font-size:29px; margin:12px 0 14px; }
  .events-hero h1 span { font-size:23px; }
  .events-intro { font-size:16px; line-height:1.9; margin:0; }
  .events-updated { margin-top:14px; }
  .events-index { padding:20px 0; margin-bottom:18px; }
  .events-index-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .events-index a { min-height:80px; font-size:16px; padding:12px; }
  .events-reader-nav { margin:0; padding-inline:12px; }
  .events-reader-nav summary { padding:12px; }
  .events-reader-nav nav { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 12px 12px; }
  .event-story { gap:16px; padding:32px 0; scroll-margin-top:72px; }
  .event-story h2 { font-size:26px; }
  .event-catch { font-size:16px; line-height:1.9; }
  .event-story-body,.event-traditions dd { font-size:16px; line-height:2; }
  .event-story-body p { margin-bottom:22px; }
  .event-story img { height:auto; aspect-ratio:3 / 2; }
  .event-traditions { padding:22px 20px; }
  .event-traditions h3 { font-size:18px; }
  .event-traditions dt { font-size:17px; }
  .event-return { font-size:14px; }
  .events-faq { margin:24px 24px 35px; }
  .events-source { font-size:16px; padding:24px; }
  .events-source h2 { font-size:20px; }
  .events-mobile-actions { display:grid; grid-template-columns:1fr 1fr 1.15fr; position:fixed; z-index:30; bottom:0; inset-inline:0; gap:8px; padding:9px 12px calc(9px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--event-line); box-shadow:0 -3px 16px #29231f0d; font-family:"Hiragino Sans",sans-serif; }
  .events-mobile-actions a { min-height:46px; display:flex; align-items:center; justify-content:center; font-size:13px; text-decoration:none; border:1px solid var(--event-line); border-radius:5px; }
  .events-mobile-actions .mobile-phone { background:var(--event-red); color:#fff; border-color:var(--event-red); }
  #event-index { scroll-margin-top:70px; }
  #events .annual-event { display:grid; grid-template-columns:82px minmax(0,1fr); column-gap:14px; min-height:0; padding:20px 16px; }
  #events .annual-event time { grid-row:1 / span 3; font-size:14px; line-height:1.7; margin:0; }
  #events .annual-event strong { font-size:21px; margin:0 0 8px; }
  #events .annual-event p { font-size:14px; margin:0; line-height:1.8; }
  #events .event-note-link { grid-column:2; font-size:13px; margin-top:12px; padding:10px; }
  #events .annual-event.monthly { grid-column:auto; }
}
@media(max-width:359px) { .events-hero h1 { font-size:26px; } .events-hero h1 span { font-size:20px; } .events-hero,.events-index,.events-stories,.events-source,.events-faq { margin-left:18px; margin-right:18px; } .events-hero { padding-inline:0; } .events-mobile-actions { gap:5px; padding-inline:8px; } .events-mobile-actions a { font-size:12px; } }
@media(prefers-reduced-motion:no-preference) { .events-page { scroll-behavior:smooth; } }
.events-breadcrumb { align-items:center; }
@media(max-width:700px) { #events .annual-event { grid-template-columns:94px minmax(0,1fr); } #events .annual-event time { font-size:13px; } }
/* 巫女と釜が同じ画面に収まる位置へ寄せ、上下を切りすぎない。 */
#kenyu .event-story-body picture { display:block; overflow:hidden; aspect-ratio:3 / 2; }
#kenyu .event-story-body img { width:100%; height:100%; aspect-ratio:auto; object-fit:cover; transform:scale(2.2); transform-origin:12% 42%; }
