/* Shared editorial rhythm. Keep existing hero and H1 size decisions. */
:root{--reading-width:72ch}
main h1,main h2,main h3{word-break:normal;overflow-wrap:break-word;text-wrap:balance}
.page-lead{padding-top:32px;padding-bottom:28px}
.page-lead h1{line-height:1.08;margin-top:12px;max-width:28ch}
.page-lead p{font-size:19px;line-height:1.55;margin:14px 0 0;max-width:64ch}
.article-layout{max-width:1320px;margin-inline:auto;grid-template-columns:150px minmax(0,1fr);gap:48px;padding-top:32px;padding-bottom:42px}
.article-layout aside{top:104px;border-top:1px solid var(--line);padding-top:12px}
.article-layout aside a{margin-top:10px}
.article-layout>.prose{width:100%;max-width:var(--reading-width)}
.prose{font-size:17px;line-height:1.65;word-break:normal;overflow-wrap:break-word}
.prose :is(p,ul,ol,blockquote){margin-top:0;margin-bottom:16px}
.prose h2,.event-blocks .prose h2{font-size:clamp(25px,2.3vw,32px);line-height:1.16;margin:28px 0 12px}
.prose h3{font-size:24px;line-height:1.2;margin:24px 0 10px}
.prose :is(h4,h5,h6){font-size:19px;line-height:1.3;margin:20px 0 8px}
.prose :is(h2,h3,h4)+:is(h2,h3,h4){margin-top:14px}
.prose :is(ul,ol){padding-left:22px}
.prose li{padding-left:3px;margin-bottom:6px}
.prose li:last-child{margin-bottom:0}
.prose li p{margin-bottom:8px}
.prose img{margin-block:20px;max-height:540px}
.prose>a:not(:has(img)){display:inline-block;margin:4px 18px 10px 0;line-height:1.45}
.prose>a:has(h2){display:block;margin:0}
.prose>a:has(h2) h2{font-size:24px;margin:16px 0}
.prose .content-date{font-size:15px;font-weight:600;letter-spacing:.04em;margin:8px 0 16px}
.prose .checklist{list-style:none;padding-left:0}
.prose .checklist li{position:relative;padding-left:24px;margin-bottom:9px}
.prose .checklist li::before{content:'✓';position:absolute;left:0;color:var(--ink)}
.prose table{display:block;max-width:100%;overflow-x:auto;font-size:15px;margin-block:20px}
.prose :is(td,th){padding:10px;line-height:1.45;overflow-wrap:anywhere}
.prose .refund-table{width:100%;border-collapse:collapse}
.prose .refund-table th{text-align:left;background:#20372b;color:#fff}
.prose .refund-table td{border-bottom:1px solid #c3cbbf;vertical-align:top}
.prose .refund-table th:first-child,.prose .refund-table td:first-child{min-width:165px}
.prose blockquote{margin-inline:0;padding:12px 20px;border-left:3px solid var(--mint)}
.event-blocks{max-width:1320px;margin-inline:auto;grid-template-columns:240px minmax(0,1fr)}
.event-blocks .prose{max-width:var(--reading-width)}
.product-layout{gap:40px;padding-block:32px}
.product-copy{max-width:64ch}
.product-options{margin-block:20px;padding-top:14px}
.product-options>div{gap:14px;padding-block:12px}
.product-details summary{font-size:23px;line-height:1.25;padding-block:17px}
.product-details details .prose>h2:first-child{font-size:25px;margin-top:10px}
.ticket h3{font-size:36px;line-height:1.1;margin:12px 0}
.ticket p{line-height:1.55;margin-block:10px}
.ticket-inclusions{gap:12px 28px}
.ticket-inclusions h2,.day-ticket h2{font-size:36px;line-height:1.12}
.ticket-inclusions ul{line-height:1.6}
.ticket-inclusions li{margin-bottom:6px}
.ticket-pdf summary{font-size:23px;line-height:1.25;padding-block:16px}
.pdf-text{line-height:1.6;overflow-wrap:anywhere;padding-bottom:18px}
.shop-item h2{font-size:30px;line-height:1.15;margin-top:16px}
.shop-item p{margin-block:8px}
.contact-block h2{font-size:32px;line-height:1.15}
.contact-block a,footer a{overflow-wrap:anywhere}
.archive-list a{padding-block:14px;gap:16px;line-height:1.4}
.newsletter h2{line-height:1.08}
@media(max-width:850px){
 .article-layout{grid-template-columns:1fr;gap:20px;padding-top:24px}
 .article-layout aside{position:static;display:flex;gap:18px;flex-wrap:wrap;padding:0 0 12px;border-top:0;border-bottom:1px solid var(--line)}
 .article-layout aside>.eyebrow{display:none}
 .article-layout aside a{margin:0}
 .event-blocks{grid-template-columns:1fr;gap:20px}
 .product-visual{top:104px}
}
@media(max-width:560px){
 .page-lead{padding:24px 6% 22px}
 .page-lead p{font-size:17px;line-height:1.5;margin-top:12px}
 .article-layout{padding:20px 6% 32px;gap:16px}
 .prose{font-size:16px;line-height:1.6}
 .prose :is(p,ul,ol,blockquote){margin-bottom:14px}
 .prose h2,.event-blocks .prose h2{font-size:25px;margin:24px 0 10px}
 .prose h3{font-size:22px;margin:20px 0 8px}
 .prose img{margin-block:16px;max-height:420px}
 .prose>a:not(:has(img)){font-size:14px;margin-right:14px}
 .event-blocks{padding:24px 6%}
 .product-layout{padding:24px 6%;gap:22px}
 .product-visual{position:static}
 .product-options strong,.product-options ul{font-size:14px}
 .ticket{padding:22px}
 .ticket h3{font-size:34px}
 .ticket-inclusions h2,.day-ticket h2{font-size:30px}
 .ticket-inclusions p{line-height:1.5}
 .shop-item h2{font-size:28px}
 .shop-grid{gap:28px}
 .archive-list a{padding-block:12px;gap:6px}
 .contact-block{gap:20px;padding-block:24px}
 .contact-block h2{font-size:28px}
 .newsletter h2{font-size:32px}
 .pdf-text{font-size:15px}
}
.ticket-section .section-top h2{font-size:38px;line-height:1.12}@media(max-width:560px){.ticket-section .section-top h2{font-size:30px}}

/* Fakt Pro: keep the date together at every width. */
.hero-date strong{font-size:82px;white-space:nowrap;letter-spacing:-.06em}.hero-date b{font-size:24px}
@media(max-width:560px){.hero-date strong{font-size:52px}.hero-date b{font-size:18px}.hero-date>div{gap:8px}}
