.cal-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 22px}
.cal-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border:0;border-radius:100px;background:var(--gold);color:#1a1206;font:700 15px var(--sans);cursor:pointer;text-decoration:none}
.cal-btn.alt{background:transparent;border:1px solid var(--line-strong);color:var(--emerald);font-weight:600}
.cal-btn:hover{transform:translateY(-1px)}
.cal-btn:focus-visible,.cal-check input:focus-visible{outline:3px solid var(--emerald);outline-offset:3px}
.cal-check{font-size:15px;color:var(--cream-dim);display:inline-flex;gap:8px;align-items:center;min-height:44px}
.cal-check input{width:18px;height:18px;accent-color:var(--emerald)}
.only-print{display:none}
.yr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin:0 0 14px}
.yr-card{border:1px solid var(--line);border-radius:14px;background:var(--bg-card);padding:12px 12px 8px}
table.cal{width:100%;border-collapse:separate;border-spacing:2px;table-layout:fixed}
table.cal caption{text-align:left;padding:2px 2px 8px}
table.cal caption h2,table.cal caption h3{display:inline;font:600 19px var(--serif);color:var(--emerald);margin:0}
table.cal caption a{color:var(--emerald);text-decoration:none}
table.cal caption a:hover{text-decoration:underline}
table.cal caption span{display:block;font-size:12.5px;color:var(--cream-muted);margin-top:2px}
table.cal th{font:700 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-text);padding:2px 0;text-align:center}
table.cal th abbr{text-decoration:none}
table.cal td.d{position:relative;text-align:center;border-radius:7px;background:var(--bg);padding:3px 0 2px;height:38px;vertical-align:top;font-size:12px}
table.cal td.x{background:none}
table.cal td.d b{display:block;font:600 14px/1.15 var(--sans);color:var(--cream)}
table.cal td.d i{display:block;font:normal 10.5px/1.2 var(--sans);color:var(--cream-muted)}
table.cal td.fri{background:var(--bg-elevated)}
table.cal th.fri{color:var(--emerald)}
table.cal td.rm{background:#dde9df}
table.cal td.rm.fri{background:#cbdfce}
table.cal td.rg{background:#efe3c8}
table.cal td.wd{box-shadow:inset 0 -3px 0 0 var(--gold)}
table.cal td.tq{background:repeating-linear-gradient(135deg,var(--bg) 0 4px,var(--bg-elevated) 4px 8px)}
table.cal td.eid{background:var(--gold);}
table.cal td.eid b,table.cal td.eid i{color:#1a1206}
table.cal td.ev::after{content:"";position:absolute;top:3px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--emerald)}
table.cal td.eid.ev::after{background:#1a1206}
table.cal td.today{outline:2px solid var(--emerald);outline-offset:-2px}
table.cal.big{border-spacing:3px}
table.cal.big caption h2{font-size:clamp(26px,3.4vw,36px)}
table.cal.big td.d{height:clamp(72px,11vw,104px);padding:6px 6px 4px;text-align:left;border-radius:10px}
table.cal.big td.d b{font-size:clamp(16px,2.2vw,22px)}
table.cal.big td.d i{font-size:clamp(10.5px,1.3vw,13px)}
table.cal.big td.d em{display:block;font:700 clamp(9.5px,1.15vw,12px)/1.2 var(--sans);color:var(--emerald);font-style:normal;margin-top:3px;overflow-wrap:anywhere}
table.cal.big td.d em.w,table.cal.big td.d em.end{color:var(--gold-text);font-weight:600}
table.cal.big td.eid em{color:#1a1206}
@media(max-width:560px){table.cal.big td.d{height:62px;padding:4px 2px 3px 4px}table.cal.big td.d em{font-size:8px;letter-spacing:-.02em;overflow-wrap:normal}}
.cal-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;padding:0;margin:10px 0 8px;font-size:13.5px;color:var(--cream-dim)}
.cal-legend li{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--bg);border:1px solid var(--line-strong)}
.sw.rm{background:#dde9df}.sw.eid{background:var(--gold)}.sw.ev{background:var(--bg);position:relative}
.sw.ev::after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--emerald)}
.sw.wd{box-shadow:inset 0 -3px 0 0 var(--gold)}.sw.fri{background:var(--bg-elevated)}
.sw.tq{background:repeating-linear-gradient(135deg,var(--bg) 0 3px,var(--bg-elevated) 3px 6px)}
.mo-sheets{display:none}
.mo-page{max-width:1000px;margin:0 0 6px}
.mo-nav{display:flex;justify-content:space-between;gap:12px;margin:14px 0 6px;font-size:15.5px}
.mo-nav a{color:var(--gold-text);text-decoration:underline;min-height:44px;display:inline-flex;align-items:center}
.cal-events td .dim{font-size:14px;color:var(--cream-muted)}
.cal-events td:first-child{white-space:nowrap}
@media(max-width:640px){
  .cal-events{min-width:0}
  .cal-events td:first-child{white-space:normal}
  .cal-events thead{display:none}
  .cal-events tr{display:block;padding:12px 14px;border-bottom:1px solid var(--line)}
  .cal-events td{display:block;border:0;padding:2px 0}
  .cal-events td::before{content:attr(data-label);display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text);font-weight:700;margin-top:6px}
  .cal-events td:first-child::before{margin-top:0}
}
/* ---- print ---- */
@media print{
  @page{size:landscape;margin:9mm}
  html,body{background:#fff !important}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .nav,.footer,.no-print,.hg-crumbs,.hg-cta,.hg-note,.lead,.gold-rule,.eyebrow,.hg-prose,.hg-short,.cal-actions,.mo-nav{display:none !important}
  main.hg-main{padding:0 !important}
  .lib-wrap{max-width:none !important;padding:0 !important}
  .hg-head{margin:0 0 1mm;max-width:none}
  .hg-head h1{font-size:16pt;margin:0;color:#1B4D35}
  .only-print{display:block}
  .print-title{font:600 8pt var(--sans);color:#444;margin:0 0 2mm}
  .cal-month .hg-head,.cal-month .mo-page{display:block}
  .cal-month .hg-prose.keep{display:block !important}
  /* year view */
  body.pm-year .yr-grid{grid-template-columns:repeat(4,1fr);gap:2.5mm;margin:0}
  body.pm-year .yr-card{border:.2mm solid #bbb;border-radius:2mm;padding:1.5mm 2mm 1mm;break-inside:avoid}
  body.pm-year table.cal{border-spacing:.6mm}
  body.pm-year table.cal caption h3,body.pm-year table.cal caption h3 a{font-size:9.5pt;color:#1B4D35}
  body.pm-year table.cal caption span{font-size:6.2pt}
  body.pm-year table.cal th{font-size:6pt}
  body.pm-year table.cal td.d{height:4.9mm;padding:.2mm 0;border-radius:1mm;line-height:1}
  body.pm-year table.cal td.d i{display:inline;margin-left:.4mm}
  body.pm-year table.cal td.d b{display:inline}
  body.pm-year table.cal caption{padding:0 0 .8mm}
  body.pm-year table.cal td.d b{font-size:7pt}
  body.pm-year table.cal td.d i{font-size:5.2pt}
  body.pm-year .cal-legend{font-size:6.5pt;margin:1.5mm 0 1mm;gap:2px 10px}
  body.pm-year .yr-key{font-size:7pt;line-height:1.5;margin:1mm 0 0;color:#222}
  body.pm-months .yr-wrap,body.pm-months .print-title{display:none}
  body.pm-months .mo-sheets{display:block}
  body.pm-months .hg-head{display:none}
  .mo-sheet{break-after:page;page-break-after:always;padding-top:2mm}
  .mo-sheet:last-child{break-after:auto;page-break-after:auto}
  .mo-sheet table.cal.big td.d{height:21mm;padding:1.4mm 1.6mm}
  .mo-sheet table.cal.big caption h2{font-size:20pt;color:#1B4D35}
  .mo-sheet table.cal.big caption span{font-size:9pt}
  .mo-sheet table.cal.big td.d b{font-size:12pt}.mo-sheet table.cal.big td.d i{font-size:7.5pt}
  .mo-sheet table.cal.big td.d em{font-size:7pt}
  .mo-sheet .cal-legend{font-size:8pt}
  .sheet-ev{list-style:none;padding:0;margin:1mm 0 0;columns:3;font-size:8.5pt;color:#222}
  .sheet-ev li{break-inside:avoid;margin:0 0 .8mm}
  /* month page */
  body.cal-month table.cal.big td.d{height:22mm}
  body.cal-month .mo-page{max-width:none}
  body.cal-month .hg-prose.print-keep{display:block}
}
