.poster-calendar-page{--pc-ink:#18212f;--pc-muted:#697586;--pc-line:#e8edf2;--pc-brand:#177f78;--pc-brand-dark:#0f615b;--pc-soft:#eff8f6;max-width:1120px;margin:0 auto 3rem;color:var(--pc-ink)}
.poster-calendar-page a{color:inherit}
.poster-calendar-page a:focus-visible{outline:3px solid #79c8be;outline-offset:3px}
.poster-calendar-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;padding:clamp(1.5rem,4vw,3rem);border-radius:24px;background:radial-gradient(circle at 90% 8%,rgba(255,255,255,.7),transparent 28%),linear-gradient(135deg,#edf8f5 0%,#f5f7fb 58%,#f1f3fb 100%);border:1px solid #e7efef}
.poster-calendar-kicker,.poster-calendar-section-label{display:block;color:var(--pc-brand-dark);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.poster-calendar-hero h1{max-width:720px;margin:.7rem 0 .65rem;font-size:clamp(2rem,4.4vw,3.35rem);line-height:1.04;letter-spacing:-.045em;font-weight:750}
.poster-calendar-title-break{display:none}
.poster-calendar-hero p{max-width:620px;margin:0;color:#536170;font-size:1.05rem;line-height:1.65}
.poster-calendar-period-count{flex:0 0 auto;display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;border:1px solid rgba(23,127,120,.14);border-radius:16px;background:rgba(255,255,255,.72);box-shadow:0 8px 28px rgba(31,62,71,.06)}
.poster-calendar-period-count strong{font-size:2rem;line-height:1;color:var(--pc-brand-dark);letter-spacing:-.04em}
.poster-calendar-period-count span{color:var(--pc-muted);font-size:.78rem;line-height:1.35}
.poster-calendar-period-nav{display:flex;justify-content:space-between;gap:1rem;margin:1.25rem 0}
.poster-calendar-period-nav a{display:inline-flex;align-items:center;gap:.55rem;padding:.68rem .9rem;border:1px solid var(--pc-line);border-radius:999px;background:#fff;text-decoration:none;font-size:.9rem;font-weight:650;transition:border-color .18s ease,transform .18s ease,background .18s ease}
.poster-calendar-period-nav a:hover{border-color:#a9d5cf;background:#f7fbfa;transform:translateY(-1px)}
.poster-calendar-date-panel,.poster-calendar-agenda{padding:clamp(1.1rem,2.5vw,1.7rem);border:1px solid var(--pc-line);border-radius:20px;background:#fff;box-shadow:0 10px 36px rgba(24,43,59,.045)}
.poster-calendar-date-heading,.poster-calendar-agenda-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}
.poster-calendar-date-heading h2,.poster-calendar-agenda-heading h2{margin:.25rem 0 0;font-size:1.35rem;line-height:1.25;letter-spacing:-.025em}
.poster-calendar-date-hint{color:var(--pc-muted);font-size:.82rem}
.poster-calendar-date-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}
.poster-calendar-date{min-width:0;display:flex;flex-direction:column;align-items:center;gap:.18rem;padding:.7rem .35rem .65rem;border:1px solid var(--pc-line);border-radius:14px;background:#fff;text-decoration:none;text-align:center;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
a.poster-calendar-date:hover{transform:translateY(-2px);border-color:#9fcfc8;box-shadow:0 7px 18px rgba(20,92,85,.08)}
.poster-calendar-date-weekday{color:var(--pc-muted);font-size:.73rem;text-transform:capitalize}
.poster-calendar-date strong{font-size:1.35rem;line-height:1.2;letter-spacing:-.04em}
.poster-calendar-date-month{color:var(--pc-muted);font-size:.74rem}
.poster-calendar-date-count{margin-top:.3rem;color:var(--pc-brand-dark);font-size:.68rem;font-weight:700;white-space:nowrap}
.poster-calendar-date.is-empty{color:#9099a5;background:#f7f8fa;border-color:#f0f2f4}
.poster-calendar-date.is-empty .poster-calendar-date-count{color:#929aa5;font-weight:500}
.poster-calendar-date.is-selected{border-color:var(--pc-brand);background:var(--pc-brand);color:#fff;box-shadow:0 8px 20px rgba(23,127,120,.19)}
.poster-calendar-date.is-selected .poster-calendar-date-weekday,.poster-calendar-date.is-selected .poster-calendar-date-month,.poster-calendar-date.is-selected .poster-calendar-date-count{color:rgba(255,255,255,.82)}
.poster-calendar-date.is-empty.is-selected{border-color:#8faaa5;background:#718f8a;color:#fff}
.poster-calendar-agenda{margin-top:1.25rem}
.poster-calendar-agenda-heading{align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--pc-line)}
.poster-calendar-agenda-heading h2{text-transform:capitalize}
.poster-calendar-agenda-count{flex:0 0 auto;padding:.4rem .7rem;border-radius:999px;background:var(--pc-soft);color:var(--pc-brand-dark);font-size:.82rem;font-weight:700}
.poster-calendar-event-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.poster-calendar-event{display:grid;grid-template-columns:92px minmax(0,1fr);gap:1rem;align-items:stretch}
.poster-calendar-event-time{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding-top:1.1rem;color:var(--pc-brand-dark);font-size:.9rem;font-weight:750;font-variant-numeric:tabular-nums}
.poster-calendar-event-time span{flex:1;width:1px;min-height:1.5rem;background:linear-gradient(var(--pc-brand),#dcebe8)}
.poster-calendar-event:last-child .poster-calendar-event-time span{background:linear-gradient(var(--pc-brand),transparent)}
.poster-calendar-event-card{min-width:0;padding:1.1rem 1.2rem;border:1px solid var(--pc-line);border-radius:16px;background:linear-gradient(110deg,#fff 0%,#fbfcfd 100%);transition:border-color .18s ease,box-shadow .18s ease}
.poster-calendar-event-card:hover{border-color:#c9dedb;box-shadow:0 8px 24px rgba(24,43,59,.06)}
.poster-calendar-event-type{color:var(--pc-brand);font-size:.66rem;font-weight:800;letter-spacing:.12em}
.poster-calendar-event-card h3{margin:.35rem 0 .45rem;font-size:1.08rem;line-height:1.4;letter-spacing:-.015em}
.poster-calendar-event-card h3 a{text-decoration:none}
.poster-calendar-event-card h3 a:hover{color:var(--pc-brand-dark);text-decoration:underline;text-underline-offset:3px}
.poster-calendar-event-place{display:flex;align-items:center;gap:.4rem;margin:0;color:var(--pc-muted);font-size:.88rem}
.poster-calendar-event-place span{color:var(--pc-brand);font-size:1.05rem}
.poster-calendar-empty{display:grid;justify-items:center;padding:2.6rem 1.2rem;text-align:center;border-radius:16px;background:#f8fafb}
.poster-calendar-empty-mark{display:grid;place-items:center;width:42px;height:42px;margin-bottom:.6rem;border-radius:14px;background:#eaf4f2;color:var(--pc-brand-dark);font-size:1.4rem}
.poster-calendar-empty h3{margin:0;font-size:1.05rem}
.poster-calendar-empty p,.poster-calendar-note{max-width:480px;margin:.45rem 0 0;color:var(--pc-muted);font-size:.9rem;line-height:1.5}
.poster-calendar-note{max-width:none;padding:.75rem .9rem;border-radius:10px;background:#fff8e8;color:#80622a}
@media(max-width:760px){.poster-calendar-hero{align-items:flex-start;flex-direction:column;gap:1rem;border-radius:18px}.poster-calendar-period-count{padding:.65rem .8rem}.poster-calendar-period-count strong{font-size:1.6rem}.poster-calendar-date-list{display:flex;overflow-x:auto;gap:.5rem;padding:.15rem .1rem .7rem;scroll-snap-type:x mandatory;scrollbar-width:thin}.poster-calendar-date{flex:0 0 76px;scroll-snap-align:start}.poster-calendar-date-hint{max-width:130px;text-align:right}.poster-calendar-event{grid-template-columns:62px minmax(0,1fr);gap:.6rem}.poster-calendar-event-card{padding:.9rem}.poster-calendar-event-time{font-size:.82rem}}
@media(max-width:480px){.poster-calendar-period-nav a{padding:.62rem .7rem;font-size:.78rem}.poster-calendar-period-nav{gap:.45rem}.poster-calendar-date-panel,.poster-calendar-agenda{padding:1rem;border-radius:16px}.poster-calendar-date-heading h2,.poster-calendar-agenda-heading h2{font-size:1.15rem}.poster-calendar-date-hint{font-size:.72rem}.poster-calendar-event{grid-template-columns:52px minmax(0,1fr);gap:.4rem}.poster-calendar-event-card h3{font-size:1rem}.poster-calendar-event-place{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.poster-calendar-page *{scroll-behavior:auto!important;transition:none!important}}
