@page {
  size: A4 portrait;
  margin: 0;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  width: 210mm; height: 297mm; margin: 0 auto;
  font-family: 'Noto Sans TC', sans-serif;
  background: #faf7f2; color: #2d2a26;
  overflow: hidden; position: relative;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.bg-circle { position: absolute; border-radius: 50%; opacity: 0.08; z-index: 0; }
.bg-circle.c1 { width: 180mm; height: 180mm; top: -60mm; right: -50mm; }
.bg-circle.c2 { width: 120mm; height: 120mm; bottom: -30mm; left: -40mm; }
.bg-circle.c3 { width: 80mm; height: 80mm; top: 140mm; left: -30mm; }
.cat-family .bg-circle.c1 { background: #e8734a; }
.cat-family .bg-circle.c2 { background: #f0a835; }
.cat-family .bg-circle.c3 { background: #4a9e5c; }
.cat-craft .bg-circle.c1 { background: #d4a05a; }
.cat-craft .bg-circle.c2 { background: #e8c48a; }
.cat-craft .bg-circle.c3 { background: #4a9e5c; }
.cat-elder .bg-circle.c1 { background: #c0756b; }
.cat-elder .bg-circle.c2 { background: #d4a08a; }
.cat-elder .bg-circle.c3 { background: #4a9e5c; }
.cat-sport .bg-circle.c1 { background: #3498db; }
.cat-sport .bg-circle.c2 { background: #5dade2; }
.cat-sport .bg-circle.c3 { background: #4a9e5c; }
.cat-health .bg-circle.c1 { background: #5cb85c; }
.cat-health .bg-circle.c2 { background: #8fd18f; }
.cat-health .bg-circle.c3 { background: #f0a835; }
.cat-knowledge .bg-circle.c1 { background: #8e6cb8; }
.cat-knowledge .bg-circle.c2 { background: #b399d4; }
.cat-knowledge .bg-circle.c3 { background: #4a9e5c; }
.dot-pattern {
  position: absolute; inset: 0; z-index: 0;
  background-image: radial-gradient(circle, #4a9e5c 0.6px, transparent 0.6px);
  background-size: 12mm 12mm; background-position: 6mm 6mm; opacity: 0.04;
}
.poster {
  position: relative; z-index: 1; width: 100%; height: 100%;
  padding: 8mm 10mm 7mm; display: flex; flex-direction: column;
}
/* HEADER */
.header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4mm; padding-bottom: 3mm; border-bottom: 0.6mm solid #4a9e5c;
}
.header-left { display: flex; align-items: center; gap: 4mm; }
.logo { height: 14mm; object-fit: contain; }
.header-divider { width: 0.4mm; height: 12mm; background: #c5bfb5; }
.header-text { display: flex; flex-direction: column; }
.header-org { font-size: 10pt; color: #8a8378; letter-spacing: 0.3mm; }
.header-loc { font-size: 8pt; color: #a89e92; margin-top: 0.5mm; }
.header-right { text-align: right; }
.header-month { font-family: 'Noto Serif TC', serif; font-weight: 900; font-size: 28pt; color: #4a9e5c; line-height: 1; }
.header-month-label { font-size: 10pt; color: #8a8378; letter-spacing: 1mm; }
/* HERO */
.hero {
  width: 100%; height: 90mm; border-radius: 4mm; overflow: hidden;
  margin-bottom: 5mm; position: relative;
}
.hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero-badge {
  position: absolute; top: 4mm; right: 4mm;
  font-size: 14pt; font-weight: 900; padding: 1.5mm 4mm;
  border-radius: 2mm; z-index: 2;
}
.hero-badge.badge-free { background: #e8f5e9; color: #2e7d32; }
.hero-badge.badge-paid { background: #fff3e0; color: #e65100; }
/* COLOR STRIP */
.color-strip {
  position: absolute; bottom: 0; left: 0; right: 0; height: 2mm; z-index: 2;
}
.cat-family .color-strip { background: linear-gradient(90deg, #e8734a, #f0a835); }
.cat-craft .color-strip { background: linear-gradient(90deg, #d4a05a, #e8c48a); }
.cat-elder .color-strip { background: linear-gradient(90deg, #c0756b, #d4a08a); }
.cat-sport .color-strip { background: linear-gradient(90deg, #3498db, #5dade2); }
.cat-health .color-strip { background: linear-gradient(90deg, #5cb85c, #8fd18f); }
.cat-knowledge .color-strip { background: linear-gradient(90deg, #8e6cb8, #b399d4); }
/* CONTENT */
.content { flex: 1; display: flex; flex-direction: column; }
.event-title {
  font-family: 'Noto Serif TC', serif; font-weight: 900;
  font-size: 22pt; color: #333; line-height: 1.3; margin-bottom: 3mm;
}
.event-meta {
  display: flex; flex-wrap: wrap; gap: 3mm 6mm;
  margin-bottom: 4mm; padding-bottom: 4mm; border-bottom: 0.4mm solid #ede8e0;
}
.meta-item { display: flex; align-items: flex-start; gap: 2mm; font-size: 12pt; color: #5a5650; }
.meta-icon { font-size: 10pt; flex-shrink: 0; margin-top: 0.5mm; }
.meta-label { font-weight: 700; color: #4a9e5c; margin-right: 1mm; }
.event-desc {
  font-size: 12pt; color: #5a5650; line-height: 1.7; flex: 1; margin-bottom: 4mm;
}
.event-tags { display: flex; gap: 2mm; flex-wrap: wrap; margin-bottom: 4mm; }
.event-tag {
  font-size: 10pt; padding: 1mm 3mm; border-radius: 1.5mm;
  background: #f5f2ed; color: #8a8378; font-weight: 500;
}
.event-notes {
  background: #fff; border-radius: 3mm; padding: 3.5mm 4mm;
  border: 0.3mm solid #ede8e0; font-size: 10pt; color: #7a7570; line-height: 1.6;
}
.event-notes strong { color: #5a5650; }
/* FOOTER */
.footer {
  display: flex; align-items: stretch; gap: 4mm;
  background: #fff; border-radius: 3.5mm; padding: 3.5mm 4mm;
  border: 0.3mm solid #ede8e0; margin-top: auto;
}
.footer-qr { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; gap: 1.5mm; }
.footer-qr img { width: 22mm; height: 22mm; border: 0.4mm solid #ede8e0; border-radius: 1.5mm; padding: 0.5mm; }
.footer-qr-label { font-size: 8pt; font-weight: 700; color: #4a9e5c; text-align: center; }
.footer-divider { width: 0.3mm; background: #ede8e0; flex-shrink: 0; }
.footer-info { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 1.5mm; }
.footer-info-row { display: flex; align-items: flex-start; gap: 1.5mm; font-size: 10pt; color: #5a5650; line-height: 1.4; }
.footer-info-icon { flex-shrink: 0; width: 3.5mm; text-align: center; font-size: 6.5pt; }
.footer-cta { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-left: 3mm; border-left: 0.3mm dashed #ede8e0; }
.footer-cta-text { writing-mode: vertical-rl; font-family: 'Noto Serif TC', serif; font-weight: 900; font-size: 12pt; color: #4a9e5c; letter-spacing: 1.5mm; }
@media print {
  html, body { width: 210mm; height: 297mm; margin: 0; padding: 0; }
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
