@font-face { font-family: "Montserrat"; font-weight: 500; src: url("/assets/fonts/Montserrat-Medium.ttf?v=1") format("truetype"); }
@font-face { font-family: "Montserrat"; font-weight: 600; src: url("/assets/fonts/Montserrat-SemiBold.ttf?v=1") format("truetype"); }
@font-face { font-family: "Montserrat"; font-weight: 700; src: url("/assets/fonts/Montserrat-Bold.ttf?v=1") format("truetype"); }
@font-face { font-family: "Montserrat"; font-weight: 800; src: url("/assets/fonts/Montserrat-ExtraBold.ttf?v=1") format("truetype"); }
@font-face { font-family: "Montserrat"; font-weight: 900; src: url("/assets/fonts/Montserrat-Black.ttf?v=1") format("truetype"); }
.ptc-page {
  --pink: #D00857; --deep: #B0064A; --blush: #FBE4E8; --petal: #F6C4D3; --charcoal: #2F2A26; --gold: #967430;
  --grid: #EC8CAC; --closed: #FDF1F4;
}
@page { size: 11in 8.5in; margin: 0; }
.ptc-page, .ptc-page * { box-sizing: border-box; }
.ptc-page {
  position: relative; width: 11in; height: 8.5in; overflow: hidden; background: #fff;
  font-family: "Montserrat", sans-serif; color: var(--charcoal);
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.ptc-frame { position: absolute; left: 0; top: 0; width: 11in; height: 8.5in; }
.ptc-year {
  position: absolute; left: 0; top: 0.475in; width: 11in;
  display: flex; justify-content: center; align-items: center;
  font-weight: 900; font-size: 10.5pt; line-height: 1; letter-spacing: 0.4em; color: var(--deep);
}
.ptc-year span { margin-right: -0.4em; }
.ptc-year svg { width: 0.11in; height: 0.11in; fill: var(--pink); margin: 0 0.1in; }
.ptc-grid {
  position: absolute; left: 0.45in; top: 2.12in; width: 10.1in; height: 5.54in;
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: repeat(var(--rows), minmax(0, 1fr));
  border: 1.4pt solid var(--grid);
}
.ptc-cell { min-width: 0; min-height: 0; overflow: hidden;
  border-right: 0.9pt solid var(--grid); border-bottom: 0.9pt solid var(--grid); }
.ptc-cell.is-col-last { border-right: 0; }
.ptc-cell.is-row-last { border-bottom: 0; }
.ptc-day { display: flex; flex-direction: column; padding: 0.045in 0.05in 0.05in; }
.ptc-day.is-closed { background: var(--closed); }
.ptc-head { flex: none; display: flex; align-items: baseline; gap: 4pt; height: 13pt; }
.ptc-num { font-weight: 700; font-size: 12pt; line-height: 1; color: var(--pink); }
.ptc-day.is-weekend .ptc-num { color: var(--deep); }
.ptc-note { margin-left: auto; min-width: 0; align-self: center; text-align: right; overflow: hidden;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  font-weight: 800; font-size: 5.6pt; line-height: 1.1; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--deep); }
.ptc-list { flex: 1; min-height: 0; overflow: hidden; list-style: none; margin: 2.5pt 0 0; padding: 0;
  display: flex; flex-direction: column; gap: 2pt; }
.ptc-class {
  flex: none; position: relative; background: var(--bg); color: var(--ink);
  border-left: 2.4pt solid var(--bar); border-radius: 2.5pt; padding: 1.6pt 3pt 2pt 4pt;
}
.ptc-time { display: flex; align-items: center; gap: 2pt; white-space: nowrap;
  font-weight: 800; font-size: 6.6pt; line-height: 1.25; letter-spacing: 0.02em; color: var(--time); }
.ptc-time svg { flex: none; width: 6pt; height: 6pt; fill: currentColor; }
.ptc-when { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.ptc-short { display: none; }
.ptc-side { flex: none; margin-left: auto; }
.ptc-price { font-weight: 700; color: var(--ink); letter-spacing: 0; }
.ptc-tag { display: inline-block; font-weight: 800; font-size: 5.2pt; line-height: 1; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 1.3pt 2.6pt 1.1pt; border-radius: 4pt; }
.ptc-tag.is-soldout { background: var(--charcoal); color: #fff; }
.ptc-tag.is-few { background: #fff; color: var(--pink); border: 0.6pt solid var(--pink); padding: 0.7pt 2pt 0.5pt; }
.ptc-tag.is-badge { background: var(--gold); color: #fff; }
.ptc-title { font-weight: 700; font-size: 7.8pt; line-height: 1.16; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.ptc-class.is-soldout .ptc-title { text-decoration: line-through; text-decoration-thickness: 0.6pt; opacity: 0.6; }
.t-workshop { --bg: var(--blush); --bar: var(--pink); --time: var(--pink); --ink: var(--charcoal); }
.t-event    { --bg: var(--pink); --bar: var(--deep); --time: var(--blush); --ink: #fff; }
.t-meetup   { --bg: #fff; --bar: var(--deep); --time: var(--deep); --ink: var(--charcoal); }
.ptc-class.t-meetup { border: 0.7pt solid var(--petal); border-left: 2.4pt solid var(--bar); }
.ptc-list.is-snug .ptc-title { -webkit-line-clamp: 1; }
.ptc-list.is-compact { gap: 1.4pt; }
.ptc-list.is-compact .ptc-class { display: flex; align-items: baseline; gap: 2.5pt; padding: 1pt 3pt 1.2pt 3.5pt;
  border-left-width: 2pt; }
.ptc-list.is-compact .ptc-time { font-size: 6.4pt; }
.ptc-list.is-compact .ptc-time svg, .ptc-list.is-compact .ptc-side, .ptc-list.is-compact .ptc-full { display: none; }
.ptc-list.is-compact .ptc-short { display: inline; }
.ptc-list.is-compact .ptc-title { display: block; flex: 1; min-width: 0; white-space: nowrap; text-overflow: ellipsis;
  font-weight: 600; font-size: 6.9pt; }
.ptc-more { flex: none; padding-left: 2pt; font-weight: 700; font-size: 6.2pt; line-height: 1.2; color: var(--deep); }
.ptc-extra { padding: 0.05in; display: flex; }
.ptc-extra-box { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center;
  background: var(--blush); border-radius: 0.08in; padding: 0.08in; }
.ptc-extra-box img { display: block; width: 100%; height: 100%; max-height: 1.1in; object-fit: contain; }
.ptc-legend { position: absolute; left: 3.3in; top: 7.83in; width: 4.4in; height: 0.25in;
  display: flex; align-items: center; justify-content: center; gap: 0.18in; }
.ptc-key { display: flex; align-items: center; gap: 3pt; font-weight: 700; font-size: 7pt; color: var(--charcoal); }
.ptc-swatch { display: inline-flex; align-items: center; justify-content: center; width: 14pt; height: 9pt;
  border-radius: 2pt; background: var(--bg); border-left: 2.2pt solid var(--bar); color: var(--time); }
.ptc-swatch.t-meetup { border: 0.7pt solid var(--petal); border-left: 2.2pt solid var(--bar); }
.ptc-swatch svg { width: 5.5pt; height: 5.5pt; fill: currentColor; }
.ptc-hit { position: absolute; inset: 0; border-radius: inherit; }
.ptc-hit:hover { box-shadow: 0 0 0 1pt var(--deep); }
.ptc-hit:focus-visible { outline: 1.5pt solid var(--deep); outline-offset: 0.5pt; }

:root { color-scheme: light;
  --pink: #D00857; --deep: #B0064A; --blush: #FBE4E8; --petal: #F6C4D3; --charcoal: #2F2A26; --gold: #967430;
  --paper: #FFFFFF; --soft: #FDF1F4; --muted: #6B625C; --scrim: rgba(47, 42, 38, 0.45); }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--charcoal); font-family: "Montserrat", system-ui, sans-serif; font-weight: 500; font-size: 15px; line-height: 1.4; }
a { color: var(--deep); }
.pc-bar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px 12px 6px; }
.pc-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; min-width: 0; }
.pc-month { margin: 0 6px; min-width: 9.5em; text-align: center; font-size: 20px; font-weight: 800; letter-spacing: 0.02em; color: var(--deep); }
.pc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; min-width: 64px; padding: 0 14px;
  border: 1.5px solid var(--petal); border-radius: 999px; background: var(--paper); color: var(--deep); font-weight: 700; font-size: 14px; text-decoration: none; }
.pc-btn:hover { border-color: var(--pink); background: var(--blush); }
.pc-btn:focus-visible, .pc-kind:focus-visible, .pa-chip:focus-visible, .pp-go:focus-visible, .pp-x:focus-visible, .ptc-num.is-one:focus-visible { outline: 2px solid var(--deep); outline-offset: 2px; }
.pc-btn.is-off { opacity: 0.35; }
.pc-today { background: var(--pink); border-color: var(--pink); color: var(--paper); }
.pc-today:hover { background: var(--deep); border-color: var(--deep); }
.pc-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; min-width: 0; }
.pc-filters[hidden] { display: none; }
.pc-kind { min-height: 36px; padding: 0 14px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer;
  border-radius: 999px; border: 1.5px solid var(--petal); background: var(--paper); color: var(--charcoal); }
.pc-kind[aria-pressed="true"] { background: var(--deep); border-color: var(--deep); color: var(--paper); }
.pc-msg { margin: 4px 12px 8px; padding: 10px 12px; border-radius: 10px; background: var(--soft); color: var(--deep); font-weight: 600; text-align: center; }
.pc-main { display: grid; grid-template-columns: minmax(0, 1fr); }
.pc-sheet { --k: 1; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; padding: 4px 8px 8px; overflow: hidden; min-width: 0; }
.pc-fit { width: calc(11in * var(--k)); height: calc(8.5in * var(--k)); }
.pc-fit > .ptc-page { transform: scale(var(--k)); transform-origin: 0 0; }
.ptc-num.is-one { cursor: pointer; border-radius: 2pt; }
.ptc-num.is-one:hover { text-decoration: underline; }
.ptc-class[data-ref] { cursor: pointer; }
.pc-foot { padding: 6px 12px 14px; text-align: center; font-size: 13px; font-weight: 600; }
.pa { padding: 0 12px 8px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.pa-day { min-width: 0; }
.pa-date { margin: 0 0 6px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: 15px; font-weight: 800; color: var(--deep); }
.pa-note { font-size: 11px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--deep); }
.pa-note.is-closed { padding: 2px 8px; border-radius: 999px; background: var(--soft); }
.pa-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
.pa-item { min-width: 0; }
.pa-item[hidden], .pa-day[hidden] { display: none; }
.pa-chip { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "time side" "title title"; gap: 2px 8px;
  min-width: 0; padding: 8px 10px 9px 12px; border-radius: 8px; text-decoration: none; cursor: pointer;
  background: var(--bg); color: var(--ink); border-left: 5px solid var(--bar); }
.pa-chip.t-meetup { border: 1px solid var(--petal); border-left: 5px solid var(--bar); }
.pa-time { grid-area: time; min-width: 0; font-size: 13px; font-weight: 800; color: var(--time); }
.pa-title { grid-area: title; min-width: 0; overflow-wrap: anywhere; font-size: 15px; font-weight: 700; }
.pa-side { grid-area: side; display: flex; align-items: center; gap: 6px; }
.pa-price { font-weight: 700; font-size: 14px; }
.pa-chip.is-soldout .pa-title { text-decoration: line-through; opacity: 0.6; }
.pa-tag { display: inline-block; padding: 3px 7px 2px; border-radius: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.2; }
.pa-tag.is-soldout { background: var(--charcoal); color: var(--paper); }
.pa-tag.is-few { background: var(--paper); color: var(--pink); border: 1px solid var(--pink); }
.pa-tag.is-badge { background: var(--gold); color: var(--paper); }
.pa-empty { margin: 8px 0; text-align: center; color: var(--muted); }
.pa-chip.t-workshop, .pc-kind.t-workshop { --bg: var(--blush); --bar: var(--pink); --time: var(--pink); --ink: var(--charcoal); }
.pa-chip.t-event { --bg: var(--pink); --bar: var(--deep); --time: var(--blush); --ink: var(--paper); }
.pa-chip.t-meetup { --bg: var(--paper); --bar: var(--deep); --time: var(--deep); --ink: var(--charcoal); }
.pp { width: min(26rem, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 16px 18px 18px; border: 0; border-radius: 14px;
  border-top: 6px solid var(--pink); background: var(--paper); color: var(--charcoal); box-shadow: 0 12px 40px var(--scrim); }
.pp::backdrop { background: var(--scrim); }
.pp-head { display: flex; align-items: center; gap: 10px; }
.pp-kind { font-size: 11px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pink); }
.pp-x { margin-left: auto; min-height: 36px; padding: 0 12px; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer;
  border-radius: 999px; border: 1.5px solid var(--petal); background: var(--paper); color: var(--deep); }
.pp-title { margin: 8px 0 4px; font-size: 19px; font-weight: 800; line-height: 1.2; color: var(--charcoal); overflow-wrap: anywhere; }
.pp-when { margin: 0 0 6px; font-weight: 700; color: var(--deep); }
.pp-meta { margin: 0 0 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pp-price { font-weight: 800; font-size: 16px; }
.pp-sum { margin: 0 0 12px; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
.pp-sum[hidden], .pa-tag[hidden] { display: none; }
.pp-go { display: flex; align-items: center; justify-content: center; min-height: 44px; border-radius: 999px; background: var(--pink);
  color: var(--paper); font-weight: 800; text-decoration: none; }
.pp-go:hover { background: var(--deep); }
@media (max-width: 719.98px) {
  .pc-sheet { display: none; }
  .pc-month { font-size: 18px; min-width: 0; flex: 1 1 100%; order: -1; }
}
@media (min-width: 720px) {
  .pa:not(.pa-noscript) { display: none; }
  .pa-noscript { width: 100%; max-width: 40rem; }
}
