:root{--cream:#fffdf4;--navy:#0b203e;--coral:#ff7b70;--aqua:#bdeeee;--yellow:#ffd078;--teal:#39b4ac;--blue:#12a9df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--navy);font-family:'Trebuchet MS',Arial,sans-serif}.page{max-width:960px;margin:auto;padding:10px 25px 0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip{position:absolute;left:20px;top:-100px;z-index:9;background:white;padding:12px}.skip:focus{top:10px}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;font:inherit;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #187c9c;outline-offset:5px}.masthead{position:relative;margin-bottom:12px}.brand-art{position:relative;overflow:hidden;aspect-ratio:991/332}.brand-art img{position:absolute;width:206.66%;max-width:none;left:-53.58%;top:-19.58%}.menu-button{position:absolute;right:1%;top:4%;width:54px;height:54px;background:var(--cream);border:0;border-radius:8px;padding:7px;display:flex;flex-direction:column;justify-content:space-around}.menu-button span{display:block;height:5px;background:var(--navy);border-radius:5px}nav{position:absolute;right:0;top:70px;z-index:5;min-width:230px;padding:12px;background:white;border:2px solid var(--aqua);border-radius:18px;box-shadow:0 10px 30px #0b203e20}nav a{display:block;text-decoration:none;padding:14px;border-radius:10px}nav a:hover{background:#d9f5f1}.intro{display:grid;grid-template-columns:1.08fr 1fr;gap:22px;background:#fffef8;border-radius:28px;padding:12px;box-shadow:0 3px 24px #1935420b}.family-art{position:relative;overflow:hidden;border-radius:23px;min-height:100%;aspect-ratio:510/595}.family-art img{position:absolute;width:401.57%;max-width:none;left:-104.31%;top:-70.92%}.intro-copy{padding:12px 8px 12px 0;display:flex;flex-direction:column;justify-content:center;font-size:clamp(16px,2.3vw,23px);line-height:1.27}.intro h2{font-size:1.13em;line-height:1.16;border-radius:24px;padding:13px 17px;margin:0 0 14px;background:#d1f3ee;letter-spacing:-.6px}.intro p{margin:0 5px 14px}.primary{background:var(--coral);border:0;color:#172540;border-radius:999px;font-size:1.12em;text-decoration:none;min-height:52px;padding:13px 23px;display:inline-flex;align-items:center;justify-content:center;gap:13px}.primary:hover{background:#ff9286}.find-cta{margin-top:0;align-self:flex-start;white-space:nowrap}#find{scroll-margin-top:24px}#search-form{margin:24px 0;display:flex;align-items:center;gap:15px;padding:9px 10px 9px 22px;background:#fff;border:1px solid #f0f0ea;border-radius:40px;box-shadow:0 3px 13px #0b203e0b}#search-form svg{width:40px;height:40px;fill:none;stroke:var(--navy);stroke-width:2.5;flex-shrink:0}input{min-width:0;flex:1;width:100%;border:0;background:transparent;font:inherit;font-size:22px;color:var(--navy);padding:10px 0}input::placeholder{color:#778394}#search-form .primary{min-width:180px;font-size:24px}.filters{display:flex;gap:13px}.filters button{border:2px solid transparent;border-radius:30px;flex:1;min-height:84px;padding:10px 13px;background:#ffe4db;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:700;font-size:21px;white-space:nowrap}.filters button:nth-child(2){background:#d4f3ef}.filters button:nth-child(3){background:#caeffc}.filters button:hover{transform:translateY(-2px)}.filters button[aria-pressed=true]{border-color:var(--navy);box-shadow:0 3px 0 var(--navy)}.calendar{font-size:46px;line-height:1}.coral{color:#f66c60}.teal{color:var(--teal)}.blue{color:var(--blue)}footer{margin:30px -25px 0;min-height:130px;text-align:center;background:linear-gradient(170deg,transparent 45%,#d6f5f3 46%,#bdeeee 100%);padding:20px 20px 24px}footer p{font-size:27px;margin:0 0 20px;color:#238faa;font-style:italic}footer small{font-size:14px}.results{margin:30px 0;background:white;border:2px solid #d3efeb;border-radius:24px;padding:24px;scroll-margin-top:20px}.results-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.results h2{font-size:24px;margin:0}.clear{border:0;background:#d5f4ee;border-radius:20px;padding:10px 16px}.empty{text-align:center;padding:16px 8px;line-height:1.6}.empty h3{font-size:24px;margin:8px}.empty a{color:#176b87}.empty p{max-width:530px;margin:10px auto 20px}@media(max-width:650px){.page{padding:7px 15px 0}.masthead{margin-bottom:12px}.menu-button{width:32px;height:32px;padding:4px}.menu-button span{height:3px}.intro{gap:0;padding:9px;grid-template-columns:1fr}.family-art{aspect-ratio:510/595;max-height:430px;min-height:0;width:100%;}.intro-copy{padding:18px 8px 8px;font-size:18px}.intro h2{font-size:24px;padding:14px}.intro p{margin-bottom:15px}.desktop-break{display:none}.find-cta{align-self:stretch}.intro .family-art{aspect-ratio:510/410}.family-art img{top:-103%}.intro h2 br{display:none}#search-form{gap:9px;padding:7px 8px 7px 14px;margin:20px 0 16px}#search-form svg{width:26px;height:26px}input{font-size:16px}#search-form .primary{min-width:76px;font-size:16px;padding:10px 14px;min-height:44px}.filters{gap:8px;flex-wrap:wrap}.filters button{font-size:16px;min-height:72px;padding:10px 8px;gap:6px;border-radius:20px;flex-basis:30%;white-space:normal;flex-direction:column;text-align:center}.calendar{font-size:29px}footer{margin-left:-15px;margin-right:-15px}.results{padding:18px}.results-top{align-items:flex-start}.results h2{font-size:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.filters button:hover{transform:none}}
/* A softer accent for the main invitation. */
.find-cta,#search-form .primary{background:#ffc4b5;color:var(--navy)}
.find-cta:hover,#search-form .primary:hover{background:#ffb6a5}

/* Umbrella identity stays secondary to the existing Family & Kids artwork. */
.umbrella-brand{text-align:center;padding:12px 0 14px}
.brand-name{font-size:16px;font-weight:700;letter-spacing:2px;text-decoration:none}
.umbrella-brand p{font-size:14px;line-height:1.5;margin:5px 0 0}
.brand-art{container-type:inline-size}
.section-label{position:absolute;left:22%;top:76%;width:59%;height:23%;display:flex;align-items:center;justify-content:center;background:#fffdf4;color:var(--navy);font-size:clamp(10px,1.8cqw,17px);font-weight:700;letter-spacing:.12em;white-space:nowrap;padding-bottom:1%}
@media(max-width:650px){.umbrella-brand{padding:10px 0 12px}.brand-name{font-size:14px}.umbrella-brand p{font-size:12px}.section-label{font-size:clamp(7px,1.8cqw,12px);letter-spacing:.08em}}
.events-section{margin:36px 0 0;padding-top:20px;scroll-margin-top:20px;outline:none}.events-header{text-align:center;position:relative;padding:0 135px 18px}.events-header>p:first-child{font-weight:700;font-size:23px;letter-spacing:1px;margin:0 0 5px}.events-header h2{font-size:17px;letter-spacing:2px;margin:0 0 8px}.events-tagline{font-size:14px;line-height:1.5;margin:0}.handwritten{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-style:italic;color:#258d9d;font-size:14px;line-height:1.5;position:absolute;right:0;top:0;transform:rotate(-7deg)}.event-search{max-width:660px;margin:10px auto 16px;display:flex;align-items:center;gap:12px;background:white;border:1px solid #e0e3db;border-radius:30px;padding:5px 6px 5px 15px}.event-search>span{font-size:32px}.event-search input{font-size:16px}.event-search .primary{min-height:38px;font-size:16px;padding:8px 24px;background:#ffc4b5;color:var(--navy)}.event-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.event-filters button{border:2px solid transparent;border-radius:14px;background:#ffede6;padding:14px 8px;font-size:16px;font-weight:700;min-height:56px}.event-filters button:nth-child(2){background:#daf5f2}.event-filters button:nth-child(3){background:#dbf0fc}.event-filters button:nth-child(4){background:#fff5d9}.event-filters button[aria-pressed=true]{border-color:#80bfc3}.sample-note{font-size:13px;line-height:1.45;color:#5d697a;margin:14px 0}.day-group{margin:20px 0 28px}.day-heading{display:flex;align-items:center;gap:12px;margin:0 0 12px}.day-heading>span{font-size:40px;color:#f47d75}.day-heading h3{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-size:31px;font-style:italic;margin:0;position:relative}.day-heading h3:after{content:'';position:absolute;bottom:-3px;left:0;right:-45px;height:4px;background:#ffa799;border-radius:50%;transform:rotate(1deg)}.day-heading p{font-size:14px;font-weight:700;margin:0 0 0 10px}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.event-card{overflow:hidden;border-radius:15px;background:#fffef9;box-shadow:0 2px 6px #14233212;border:1px solid #eeeee5;display:flex;flex-direction:column}.event-photo{overflow:hidden;position:relative}.event-photo img{position:absolute;max-width:none}.date-badge,.price-badge{position:absolute;top:8px;z-index:1;padding:6px 10px;border-radius:12px;font-size:14px;font-weight:700;text-align:center;line-height:1.15}.date-badge{left:8px;background:#ffda77;max-width:calc(100% - 16px);box-sizing:border-box}.price-badge{right:8px;background:#d5faf0;color:#166d70}.event-body{padding:10px 13px 12px;display:flex;flex-direction:column;flex:1}.event-body h4{font-size:18px;line-height:1.2;margin:0 0 8px;font-weight:700;letter-spacing:-.4px}.event-meta{font-size:14px;line-height:1.4;margin:0 0 4px;display:flex;gap:8px;color:#43637c}.event-meta span{color:#f47773;font-weight:700;font-size:18px;line-height:1}.event-meta.ages span{color:#31aca9}.event-description{font-size:14px;line-height:1.35;margin:4px 0 10px;color:#43637c;flex:1}.details-button{width:100%;border:0;border-radius:12px;background:#ffc4b5;color:var(--navy);font-size:16px;padding:8px 6px;min-height:38px}.details-button:hover{background:#ffb6a5}.contribution{text-align:center;padding:25px 20px;margin:25px 0;background:#e4f7f2;border-radius:23px}.contribution h3{font-size:23px;margin:0 0 10px}.contribution p{max-width:580px;margin:0 auto 18px;line-height:1.5}.contribution .primary{background:#ffc4b5;color:var(--navy);font-size:17px}dialog{max-width:540px;width:calc(100% - 30px);border:2px solid #bdeeee;border-radius:24px;padding:28px;background:var(--cream);color:var(--navy)}dialog::backdrop{background:#0b203e75}.dialog-close{position:absolute;right:12px;top:9px;background:transparent;border:0;font-size:30px}.dialog-done{font-size:16px;background:#ffc4b5;margin-top:15px}#detail-body{line-height:1.6}.event-card[hidden],.day-group[hidden]{display:none}@media(max-width:700px){.events-header{padding:0 0 12px}.handwritten{position:static;transform:none;margin:12px 0 0}.event-filters{grid-template-columns:repeat(2,1fr);gap:8px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-heading h3{font-size:28px}.day-heading p{font-size:12px}.event-body{padding:10px}.event-body h4{font-size:17px}}@media(max-width:460px){.event-grid{grid-template-columns:1fr;gap:17px}.event-body{padding:14px}.event-body h4{font-size:21px}.event-meta,.event-description{font-size:16px}.details-button{min-height:44px}.day-heading{gap:9px}.day-heading p{max-width:140px;margin-left:4px}.event-search .primary{padding:8px 16px}}
.event-photo-link{display:block;text-decoration:none}.details-button{text-decoration:none;text-align:center}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0}.detail-header>div p{font-size:13px;letter-spacing:1.5px;margin:6px 0 0}.detail-header nav{position:static;display:flex;min-width:0;padding:0;background:none;border:0;box-shadow:none;gap:12px}.detail-header nav a{font-size:14px;padding:8px 0}.detail-hand{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-style:italic;font-size:14px;line-height:1.4;color:#258d9d}.back-events{font-size:14px;background:#ffc4b5;min-height:38px;padding:8px 16px}.detail-page #event-content>.event-photo{border-radius:22px;overflow:hidden}.detail-summary{display:grid;grid-template-columns:1.1fr 1fr;gap:55px;margin:25px 10px 30px}.detail-intro h1{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-size:44px;line-height:1.15;margin:0 0 16px}.detail-description{font-size:17px;line-height:1.65;margin:0}.detail-flourish{color:#42b8bc;font-size:42px;margin:20px 0 0}.detail-facts{margin:10px 0;display:grid;gap:14px}.detail-facts>div{display:grid;grid-template-columns:72px 1fr;gap:10px}.detail-facts dt{color:#267d87;font-size:14px}.detail-facts dd{margin:0;font-weight:700;font-size:16px;line-height:1.4}.detail-two-column{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:25px 10px 35px}.detail-two-column h2,.related-events h2{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-size:22px;margin:0 0 18px}.activity-list{list-style:none;display:flex;gap:14px;margin:0;padding:0}.activity-list li{flex:1;text-align:center;font-size:14px;line-height:1.4}.activity-symbol{display:flex;align-items:center;justify-content:center;background:#ffe5b6;border-radius:50%;width:65px;height:65px;font-size:30px;margin:0 auto 10px}.activity-list li:nth-child(2) .activity-symbol{background:#ffdcd6}.activity-list li:nth-child(3) .activity-symbol{background:#cbefeb}.practical-list{padding-left:20px;font-size:15px;line-height:1.6}.practical-list li{margin:0 0 10px}.official-source{text-align:center;margin:35px auto;max-width:580px}.official-source .primary{background:#ffc4b5;font-size:18px;width:100%;border-radius:20px}.official-source .primary:disabled{cursor:default;opacity:.8}.official-source p{font-size:13px;line-height:1.6;margin:12px auto;max-width:500px}.related-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.related-heading a{font-size:14px}.related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.related-card{text-decoration:none;border-radius:12px;overflow:hidden;border:1px solid #edece2;background:#fffef9}.related-card h3{font-size:15px;margin:10px 10px 6px}.related-card p{font-size:13px;line-height:1.4;margin:0 10px 12px}@media(max-width:650px){.detail-header{flex-wrap:wrap;gap:8px}.detail-header nav{order:3;width:100%;gap:22px}.detail-hand{font-size:12px}.detail-summary,.detail-two-column{grid-template-columns:1fr;gap:20px;margin-left:0;margin-right:0}.detail-intro h1{font-size:34px}.detail-facts{background:#e6f7f1;padding:18px;border-radius:18px}.detail-flourish{margin:8px 0}.related-grid{grid-template-columns:repeat(2,1fr)}.related-heading{align-items:start}.activity-list{max-width:420px}.official-source .primary{font-size:16px}}

.photo-unavailable{display:flex;align-items:center;justify-content:center;min-height:130px;height:100%;background:#d4f3ef;color:#43637c;font-size:14px}.event-photo:has(.photo-unavailable){background:#d4f3ef}
/* Source-backed ticket and activity detail, in the existing palette. */
.ticket-section{margin:25px 10px 35px}.ticket-section>h2{font-family:'Comic Sans MS','Trebuchet MS',cursive;font-size:24px;margin:0 0 18px}.ticket-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ticket-option{border:1px solid #bdeeee;border-radius:20px;padding:20px;background:#fffef9}.ticket-option h3{margin:0 0 15px;font-size:20px;line-height:1.3}.ticket-costs{margin:0 0 16px}.ticket-costs>div{display:grid;grid-template-columns:90px 1fr;gap:12px;margin:9px 0}.ticket-costs dt{font-size:14px;color:#267d87}.ticket-costs dd{font-size:16px;font-weight:bold;margin:0;line-height:1.4}.ticket-option p,.ticket-note{font-size:15px;line-height:1.6}.ticket-option p{margin:10px 0 0}.ticket-note{margin:12px 0 0}.activity-group-title{font-size:17px;line-height:1.4;color:#267d87;margin:20px 0 8px}.activity-checklist{padding-left:22px;margin:0;font-size:16px;line-height:1.6}.activity-checklist li{margin:5px 0}.activity-list{flex-wrap:wrap}.activity-list li{min-width:85px}@media(max-width:650px){.ticket-section{margin-left:0;margin-right:0}.ticket-options{grid-template-columns:1fr}.ticket-costs>div{grid-template-columns:85px 1fr}}
/* Larger, readable event pages requested by Jeff. */
.detail-page{font-size:20px;line-height:1.6}.detail-description{font-size:22px;line-height:1.65}.detail-intro h1{font-size:48px}.detail-facts dt{font-size:18px}.detail-facts dd{font-size:21px;line-height:1.5}.detail-facts>div{grid-template-columns:85px minmax(0,1fr)}.detail-summary{gap:28px;grid-template-columns:1fr 1fr}.detail-two-column{grid-template-columns:1fr;gap:30px}.detail-two-column h2,.related-events h2,.ticket-section>h2{font-size:30px;line-height:1.3}.activity-group-title{font-size:23px}.activity-checklist,.practical-list{font-size:21px;line-height:1.7}.activity-list li{font-size:20px;min-width:140px}.ticket-options{grid-template-columns:1fr}.ticket-option{padding:24px}.ticket-option h3{font-size:25px}.ticket-costs dt{font-size:18px}.ticket-costs dd{font-size:22px}.ticket-costs>div{grid-template-columns:120px minmax(0,1fr)}.ticket-option p,.ticket-note{font-size:20px;line-height:1.65}.official-source{max-width:720px}.official-source .primary{font-size:21px}.official-source p{font-size:18px;max-width:650px}.detail-page .sample-note{font-size:16px}.detail-header nav a,.detail-hand,.back-events,.related-heading a{font-size:17px}.related-card h3{font-size:19px}.related-card p{font-size:17px}@media(max-width:700px){.detail-summary{grid-template-columns:1fr}.detail-intro h1{font-size:38px}.detail-description,.detail-facts dd,.activity-checklist,.practical-list{font-size:20px}.ticket-costs>div{grid-template-columns:1fr;gap:0}.ticket-costs dd{font-size:22px}.ticket-option{padding:20px}.detail-two-column h2,.related-events h2,.ticket-section>h2{font-size:27px}}

.event-flyer{max-width:760px;margin:40px auto}.event-flyer h2{font-size:30px}.event-flyer img{display:block;width:100%;height:auto;border-radius:16px}.event-flyer .details-button{display:block;max-width:260px;margin:18px auto}.event-card .event-photo[data-image-type="illustration"]::after{content:'Illustration';position:absolute;bottom:6px;right:6px;background:#fffdf4e8;color:#0b203e;font-size:11px;padding:3px 7px;border-radius:5px;pointer-events:none}.event-card .event-photo:has(.photo-unavailable)::after{display:none}

/* Let the existing hero artwork blend into the page instead of sitting in a frame. */
.intro{background:transparent;border:0;border-radius:0;box-shadow:none}
.brand-art{aspect-ratio:1030/340;background:var(--cream)}
/* Use the full header crop, including the handwriting at the right edge.
   Lift the photographed paper to white, then blend it into the page cream. */
.brand-art img{width:198.834951%;left:-49.514563%;top:-20.588235%;filter:brightness(1.06);mix-blend-mode:multiply}
/* Cover the screenshot's printed menu; the real accessible menu stays above it. */
.brand-art::after{content:'';position:absolute;right:0;top:0;width:13%;height:28%;background:var(--cream)}
.family-art{border:0;border-radius:0;box-shadow:none;mask-image:linear-gradient(to right,transparent,#000 6px,#000 calc(100% - 6px),transparent),linear-gradient(to bottom,transparent,#000 6px,#000 calc(100% - 6px),transparent);mask-composite:intersect}

/* Full-width page shell; the approved artwork and components retain their styling. */
:root{--content-width:1200px;--side-padding:clamp(15px,3vw,32px)}
.page{width:100%;max-width:none;margin:0;padding:10px 0 0;display:grid;grid-template-columns:minmax(0,1fr)}
.page> *{min-width:0;width:min(var(--content-width),calc(100% - 2 * var(--side-padding)));justify-self:center}
.page>.masthead,.page>.umbrella-brand,.page>.detail-header,.page>footer{width:100%;padding-left:max(var(--side-padding),calc((100% - var(--content-width))/2));padding-right:max(var(--side-padding),calc((100% - var(--content-width))/2))}
.masthead .menu-button{right:max(var(--side-padding),calc((100% - var(--content-width))/2))}
.masthead nav{right:max(var(--side-padding),calc((100% - var(--content-width))/2));max-width:calc(100% - 2 * var(--side-padding))}
.page>footer{margin-left:0;margin-right:0}
.page>.back-events{width:auto;justify-self:start;margin-left:max(var(--side-padding),calc((100% - var(--content-width))/2))}
.intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.intro-copy,.event-card,.related-card,.detail-summary>*,.detail-two-column>*{min-width:0}
.event-body,.related-card,.detail-facts dd,.ticket-option{overflow-wrap:anywhere}
.find-cta{max-width:100%;white-space:normal}
.filters{flex-wrap:wrap}
.filters button{flex:1 1 240px;white-space:normal}
.event-grid,.related-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.detail-header{flex-wrap:wrap}
.detail-header nav{flex-wrap:wrap}
@media(max-width:1199px){.event-grid,.related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.event-grid,.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 .page{padding-top:7px}
 .intro{grid-template-columns:minmax(0,1fr)}
 .event-grid,.related-grid{grid-template-columns:minmax(0,1fr)}
 .filters button{flex-basis:30%}
 .find-cta{white-space:normal}
 .day-heading{flex-wrap:wrap}
 .related-heading{flex-wrap:wrap}
 .event-body{padding:14px}
}

/* Desktop proportions: wide content without magnifying the source artwork. */
.brand-art{width:100%;max-width:960px;margin-inline:auto}
@media(min-width:901px){
 .intro{grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(24px,3vw,40px);align-items:center}
 .intro-copy{font-size:20px;line-height:1.4;padding:8px 0}
 .intro h2{font-size:23px;letter-spacing:-.4px}
 .intro p{margin-bottom:12px}
 .family-art{min-height:0;width:100%;max-width:400px}
 .find-cta{font-size:20px;min-height:46px;padding:10px 23px}
 #search-form{margin:20px 0;gap:12px;padding:6px 8px 6px 18px}
 #search-form svg{width:28px;height:28px}
 #search-form input{font-size:18px}
 #search-form .primary{font-size:18px;min-width:130px;min-height:44px;padding:10px 23px}
 .filters button{font-size:18px;min-height:64px}
 .filters .calendar{font-size:32px}
}
@media(min-width:651px) and (max-width:900px){
 .intro{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:22px}
 .intro-copy{font-size:18px;line-height:1.35}
}

/* Cover both lines of the printed subtitle independently of the live label.
   The cover begins below the peach underline and above the first printed pixels. */
.brand-art::before{content:"";position:absolute;z-index:1;left:22%;top:74%;width:59%;height:25%;background:var(--cream)}
.section-label{z-index:2}

/* Soften the family photograph without changing its crop or dimensions. */
.family-art img{filter:contrast(.9) saturate(.88)}

/* Additional calendar-month shortcuts use the existing filter palette. */
.month-filters{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}
@media(max-width:460px){.month-filters{grid-template-columns:minmax(0,1fr)}}


/* Consistent reading scale at normal browser zoom. */
:root{--content-width:1120px}
body{font-size:1rem;line-height:1.5}
.umbrella-brand{padding-top:6px;padding-bottom:6px}
.brand-art{max-width:680px}
.masthead{margin-bottom:8px}
.menu-button{width:44px;height:44px}
.menu-button span{height:4px}
.events-section{margin-top:24px;padding-top:8px}
.events-header{padding-bottom:12px}
.events-header>p:first-child{font-size:1.25rem}
.events-header h2{font-size:1rem}
.event-search{max-width:640px;margin:8px auto 12px}
.event-search input{font-size:1rem}
.event-search .primary{min-height:44px;font-size:1rem}
.event-filters{gap:10px}
.event-filters button{min-height:44px;padding:8px;font-size:1rem;border-radius:12px}
.month-filters{margin-top:8px}
.day-heading h3{font-size:1.75rem}
.day-heading>span{font-size:32px}
.event-body h4{font-size:1.125rem;line-height:1.3}
.event-description{font-size:1rem;line-height:1.45}
.details-button{font-size:1rem;min-height:44px}
.event-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.detail-page{font-size:1rem;line-height:1.6}
.detail-intro h1{font-size:2.25rem}
.detail-description,.detail-facts dd,.activity-checklist,.practical-list{font-size:1.125rem;line-height:1.6}
.detail-facts dt,.ticket-costs dt{font-size:1rem}
.detail-two-column h2,.related-events h2,.ticket-section>h2,.event-flyer h2{font-size:1.625rem}
.activity-group-title,.ticket-option h3,.ticket-costs dd{font-size:1.25rem}
.ticket-option p,.ticket-note,.official-source p{font-size:1rem}
.official-source .primary{font-size:1.125rem}
.related-card h3{font-size:1.125rem}
.related-card p{font-size:1rem}
@media(min-width:651px){
 .intro{grid-template-columns:minmax(0,280px) minmax(0,620px);gap:32px;justify-content:center;align-items:center;padding:6px 0}
 .family-art{min-height:0;max-width:280px;width:100%}
 .intro-copy{font-size:1.0625rem;line-height:1.45;padding:0}
 .intro h2{font-size:1.25rem;line-height:1.3;padding:10px 14px;margin-bottom:10px}
 .intro p{margin-bottom:10px}
 .find-cta{font-size:1rem;min-height:44px;padding:10px 20px}
}
@media(max-width:900px){
 .event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .events-header{padding-inline:0}
 .handwritten{position:static;transform:none;margin:8px 0 0}
}
@media(min-width:651px) and (max-width:800px){
 .intro{grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:20px}
}
@media(max-width:650px){
 .intro-copy{font-size:1rem;line-height:1.5}
 .intro h2{font-size:1.375rem}
 .intro .family-art{max-width:320px;justify-self:center}
 .find-cta{font-size:1rem;min-height:44px}
 .events-section{margin-top:20px}
 .event-grid{grid-template-columns:minmax(0,1fr)}
 .event-body h4{font-size:1.25rem}
 .detail-intro h1{font-size:2rem}
}

.event-image-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:45px 18px 18px;background:linear-gradient(135deg,#daf5f2,#dbf0fc 55%,#ffede6);color:#0b203e;text-align:center;box-sizing:border-box}.event-image-placeholder .placeholder-brand{font-size:12px;font-weight:700;letter-spacing:.1em}.event-image-placeholder strong{font-size:clamp(16px,2vw,24px);line-height:1.2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
