.fest-hero{position:relative;min-height:18vh;display:flex;align-items:flex-end;color:var(--cream-soft);padding:2.5rem 1.5rem 2rem;overflow:hidden;isolation:isolate}.fest-hero:before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2;opacity:0;animation:heroFadeIn 1.5s ease-out forwards}.fest-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#3a24180d,#3a241873);z-index:-1}.fest-hero.sydney:before{background-image:url(../img/sydney.webp)}.fest-hero.melbourne:before{background-image:url(../img/melbourne.webp)}.fest-hero.gympie:before{background-image:url(../img/gympie.webp);background-position:center 65%}.fest-hero-inner{max-width:1180px;margin:0 auto;width:100%}.fest-hero .city{font-size:.82rem;letter-spacing:.45em;text-transform:uppercase;color:var(--gold-light)}.fest-hero h1{font-size:clamp(1.5rem,3vw,2.4rem);color:var(--cream-soft);margin:.3rem 0}.fest-hero h1 .city-accent{color:var(--gold-light)}.fest-hero .arch{font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.15rem}.fest-banner-img{width:100%;max-width:1774px;height:auto;display:block;margin:0 auto}.fest-placeholder{position:relative;max-width:960px;margin:0 auto;padding:3.5rem 3.25rem;background:#fff;border:1px solid var(--gold);border-radius:4px;box-shadow:0 0 0 5px var(--gold),0 0 0 6px var(--gold),var(--shadow-soft);text-align:center}.fest-page-body{padding:4rem 1.5rem;position:relative}.fest-page-body:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/festivals-bg.webp) center/cover no-repeat fixed;z-index:-1}.fest-hero.sydney~.fest-page-body:before{background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/sydney-bg.webp) center/cover no-repeat fixed}.fest-hero.melbourne~.fest-page-body:before{background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/melbourne-bg.webp) center/cover no-repeat fixed}.fest-hero.gympie~.fest-page-body:before{background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/gympie-bg.webp) center/cover no-repeat fixed}.fest-placeholder .corner{display:none;position:absolute;width:48px;height:48px;background:url(../img/corner.svg) center/contain no-repeat;pointer-events:none}.fest-placeholder .corner.tl{top:-4px;left:-4px}.fest-placeholder .corner.tr{top:-4px;right:-4px;transform:scaleX(-1)}.fest-placeholder .corner.bl{bottom:-4px;left:-4px;transform:scaleY(-1)}.fest-placeholder .corner.br{bottom:-4px;right:-4px;transform:scale(-1)}.fest-placeholder h2{margin-bottom:.6rem}.fest-placeholder p{color:var(--text-soft);font-family:Cormorant Garamond,serif;font-size:1.2rem}.menu-preview{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;text-align:left}.menu-col-primary{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.menu-col-primary li{list-style:none;padding:.45rem 0;border-bottom:1px dashed var(--hairline);font-size:.95rem;letter-spacing:.06em;color:var(--brown-warm)}.fest-dates{font-size:1.09rem;font-weight:600;letter-spacing:.12em;color:var(--gold-deep);text-align:left;margin-bottom:1.5rem}.menu-col-primary li a{color:var(--brown-warm);text-decoration:none}.menu-col-primary li a:hover{color:var(--gold-deep)}.menu-col-actions li{list-style:none;padding:.45rem 0;border-bottom:1px dashed var(--hairline);font-size:.95rem;letter-spacing:.06em;color:var(--gold-deep);font-weight:400}.menu-col-actions li a{color:var(--gold-deep);text-decoration:none}.menu-col-actions li a:hover{color:var(--rose)}.menu-col-actions li.contact-item{margin-top:auto;font-weight:600;letter-spacing:.04em}.menu-col-actions li.contact-item a{color:var(--gold-deep);text-decoration:none}.menu-col-actions li.menu-label{color:var(--brown-warm);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.82rem;border-bottom:1px solid var(--gold)}@media(max-width:640px){.menu-preview{grid-template-columns:1fr;gap:0}}.fest-content-region{max-width:960px;margin:0 auto}.fest-card-shell{position:relative;max-width:960px;margin:0 auto;background:#fff;border:1px solid var(--gold);border-radius:4px;box-shadow:0 0 0 5px var(--gold),0 0 0 6px var(--gold),var(--shadow-soft);overflow:hidden;transition:height var(--transition-duration) var(--transition-easing)}.fest-card-shell .corner{display:none;position:absolute;width:48px;height:48px;background:url(../img/corner.svg) center/contain no-repeat;pointer-events:none}.fest-card-shell .corner.tl{top:-4px;left:-4px}.fest-card-shell .corner.tr{top:-4px;right:-4px;transform:scaleX(-1)}.fest-card-shell .corner.bl{bottom:-4px;left:-4px;transform:scaleY(-1)}.fest-card-shell .corner.br{bottom:-4px;right:-4px;transform:scale(-1)}.fest-panel{padding:2rem 3.25rem;background:transparent;transition:opacity var(--transition-duration) var(--transition-easing)}.fest-panel.is-overlay{position:absolute;top:0;left:0;width:100%}.fest-panel.is-faded{opacity:0}.fest-panel.is-hidden{display:none}#festMenuCard h2{margin-bottom:.6rem}#festMenuCard p{color:var(--text-soft);font-family:Cormorant Garamond,serif;font-size:1.2rem}.fest-eyebrow{text-align:center;font-family:Cormorant Garamond,serif;font-size:.85rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem}.fest-heading{font-family:Cormorant Garamond,serif;font-size:clamp(1.8rem,3.5vw,2.4rem);color:var(--brown-deep);text-align:center;margin:0 0 2rem;line-height:1.3}.prog-update-note{font-size:clamp(.7rem,1.5vw,.9rem);font-weight:500;margin-bottom:2rem}.fest-subheading{font-family:Cormorant Garamond,serif;font-size:clamp(1.3rem,2vw,1.6rem);color:var(--gold-deep);margin:2.5rem 0 1rem;text-align:center}.fest-body{font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-weight:500;font-size:1.2rem;line-height:1.7;color:var(--text);margin:0 0 1.25rem;text-align:left}.fest-list{font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-weight:500;font-size:1.2rem;line-height:1.7;color:var(--text);margin:0 0 1.25rem;padding-left:1.8rem;list-style-position:outside;text-align:left}.fest-list li{margin-bottom:.4rem}.fest-hr{border:none;border-top:1px solid var(--hairline);margin:2rem 0}.fest-landing-summary{font-size:.9rem;font-weight:400;color:var(--text-soft);margin:0 0 1.5rem}.fest-landing-explore{font-family:Cormorant Garamond,serif;font-size:1.15rem;font-style:italic;font-weight:400;color:var(--gold-deep);text-align:center;margin:0 0 1.6rem}.fest-cta{text-align:center;margin:2.5rem 0}.fest-cta-button{display:inline-block;padding:1rem 2.5rem;background:var(--gold);color:var(--cream-soft);font-family:"Source Sans 3",sans-serif;font-size:1.05rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:4px;transition:background var(--transition-duration) var(--transition-easing)}.fest-cta-button:hover{background:var(--gold-deep)}.fest-note{font-size:.9rem;line-height:1.7;color:var(--text-soft);text-align:center;margin-top:1.5rem}.fest-back{margin-top:1.5rem;padding-top:1.5rem;border-top:1px dashed var(--hairline);text-align:center}.schedule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin:1.5rem 0}.schedule-item{padding:1rem 1.2rem;background:var(--cream-soft);border-left:3px solid var(--gold);border-radius:4px}.schedule-label{font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:500;color:var(--gold-deep);margin-bottom:.3rem}.schedule-detail{font-size:.9rem;color:var(--text-soft)}.principles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.2rem;margin:1.5rem 0}.principle-card{padding:1.2rem;background:var(--cream-soft);border-radius:6px;border:1px solid var(--hairline)}.principle-name{font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:500;color:var(--gold-deep);margin-bottom:.5rem}.principle-text{font-size:.92rem;line-height:1.6;color:var(--text)}.involve-list{margin:1rem 0 1.5rem;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.5rem}.involve-list li{font-size:1rem;padding:.5rem 0 .5rem 1.5rem;position:relative;color:var(--text)}.involve-list li:before{content:"\2726";position:absolute;left:0;color:var(--gold)}.form-embed{margin:1.5rem 0}.form-embed-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;font-family:"Source Sans 3",sans-serif}.form-embed-status{font-size:.82rem;color:var(--text-soft);letter-spacing:.04em}.form-embed-open{font-size:.82rem;font-weight:600;letter-spacing:.06em;color:var(--gold-deep);text-decoration:none;padding:.35rem .9rem;border:1px solid var(--hairline);border-radius:4px;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.form-embed-open:hover{background:var(--gold);color:var(--cream-soft);border-color:var(--gold)}.form-embed-frame{position:relative;min-height:320px}.form-embed-iframe{display:block;width:100%;height:800px;border:1px solid var(--hairline);border-radius:6px;background:var(--cream-soft)}.form-embed-fallback{text-align:center;margin-top:1.1rem;font-family:"Source Sans 3",sans-serif}.form-embed-fallback p{font-size:.85rem;color:var(--text-soft);margin:0 0 .8rem}.venue-lead{margin:1.75rem 0 .5rem;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-soft);border:1px solid rgba(212,162,76,.3)}.venue-lead img{display:block;width:100%;height:auto}.venue-blocks{display:flex;flex-direction:column;gap:1.75rem;margin:2rem 0 .5rem}.venue-block{display:flex;align-items:stretch;background:linear-gradient(180deg,var(--cream-soft) 0%,#fff 100%);border:1px solid rgba(212,162,76,.3);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-soft)}.venue-block-reverse{flex-direction:row-reverse}.venue-block-media{flex:1 1 46%;margin:0;min-height:220px}.venue-block-media img{display:block;width:100%;height:100%;object-fit:cover}.venue-block-text{flex:1 1 54%;padding:1.6rem 1.7rem;align-self:center}.venue-block-heading{font-family:Cormorant Garamond,serif;font-size:1.55rem;line-height:1.2;color:var(--gold-deep);margin:0 0 .55rem}.venue-block-text .fest-body{margin:0}@media(max-width:700px){.venue-block,.venue-block-reverse{flex-direction:column}.venue-block-media{flex-basis:auto;aspect-ratio:16 / 10;min-height:0}}.venue-food{display:flex;flex-direction:column;gap:1.75rem;margin:2.5rem 0 0}.venue-food-block{display:flex;align-items:stretch;background:linear-gradient(180deg,var(--cream-soft) 0%,#fff 100%);border:1px solid rgba(212,162,76,.3);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-soft)}.venue-food-block-reverse{flex-direction:row-reverse}.venue-food-block-media{flex:1 1 46%;margin:0;min-height:220px;display:flex;align-items:center;justify-content:center;padding:1.5rem}.venue-food-block-media img{display:block;width:100%;max-height:380px;height:auto;object-fit:contain}.venue-food-block-text{flex:1 1 54%;padding:1.6rem 1.7rem;align-self:center}.venue-food-heading{font-family:Cormorant Garamond,serif;font-size:1.55rem;color:var(--gold-deep);margin:.3rem 0 .55rem}.venue-food-intro{margin-bottom:.5rem}.venue-food-days{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:1.5rem;text-align:left}.venue-food-day{background:#ffffff80;border-radius:6px;padding:1.1rem 1.25rem;box-shadow:0 1px 4px #0000000f}.venue-food-day-label{font-family:Cormorant Garamond,serif;font-size:1.3rem;color:var(--gold-deep);margin:0 0 .6rem;border-bottom:1px solid rgba(212,162,76,.2);padding-bottom:.3rem}.venue-food-meals{list-style:disc;padding-left:1.25rem;margin:0}.venue-food-meals li{margin-bottom:.4rem;font-size:.95rem;line-height:1.45}.venue-food-meals li:last-child{margin-bottom:0}.venue-food-block.menu-full{flex-direction:column}.venue-food-block.menu-full .venue-food-block-media{flex:none;width:100%;max-height:280px;padding:1.5rem}.venue-food-block.menu-full .venue-food-block-text{flex:none;width:100%;padding:1.5rem 2rem}.venue-food-block.menu-full .venue-food-days{grid-template-columns:1fr 1fr}.venue-food-block.menu-full.menu-odd-days .venue-food-day:last-child{grid-column:1 / -1}.venue-food-block.menu-full .fest-cta{text-align:center;width:100%}.venue-food-block.menu-full .fest-cta .fest-cta-button{display:inline-block}@media(max-width:700px){.venue-food-block,.venue-food-block-reverse{flex-direction:column}.venue-food-block-media{flex-basis:auto;aspect-ratio:16 / 10;min-height:0}.venue-food-days,.venue-food-block.menu-full .venue-food-days{grid-template-columns:1fr}}.mailing-list-page{padding:4rem 1.5rem;position:relative;min-height:calc(100vh - 200px)}.mailing-list-page:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/gympie-bg.webp) center/cover no-repeat fixed;z-index:-1}.mailing-list-page-inner{max-width:680px;margin:0 auto;text-align:center}.mailing-list-page .section-sub{margin-bottom:2.5rem}.ml-form{text-align:left}.ml-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ml-field{display:flex;flex-direction:column;margin-bottom:1rem}.ml-field--wide{grid-column:2}.ml-field label{font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brown-warm);margin-bottom:.35rem}.ml-field input{padding:.75rem 1rem;border:1px solid var(--hairline);border-radius:8px;background:#fff;font-size:1rem;color:var(--text);transition:border-color .2s,box-shadow .2s;outline:none}.ml-field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d4a24c26}.ml-field input::placeholder{color:var(--text-soft);opacity:.6}.ml-submit{display:block;width:100%;margin-top:.5rem;padding:.9rem 2rem;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--cream-soft);font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;border:none;border-radius:999px;cursor:pointer;box-shadow:0 8px 24px #b0822c59;transition:transform .2s,box-shadow .2s,opacity .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.ml-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #b0822c80}.ml-submit:disabled{opacity:.7;cursor:not-allowed}.ml-spinner{animation:ml-spin .8s linear infinite}@keyframes ml-spin{to{transform:rotate(360deg)}}.ml-privacy{text-align:center;font-size:.82rem;color:var(--text-soft);margin-top:1rem}.ml-privacy a{color:var(--gold-deep);text-decoration:underline}.ml-privacy a:hover{color:var(--rose)}.ml-contact{text-align:center;font-size:.85rem;color:var(--text-soft);margin-top:.5rem}.ml-contact a{color:var(--gold-deep)}.ml-contact a:hover{color:var(--rose)}.ml-message{margin-top:1rem;padding:.75rem 1rem;border-radius:8px;font-size:.92rem;line-height:1.5;display:none}.ml-message--success{display:block;background:#4caf5014;border:1px solid rgba(76,175,80,.25);color:#2e7d32}.ml-message--error{display:block;background:#c6282814;border:1px solid rgba(198,40,40,.25);color:#c62828}@media(max-width:600px){.ml-row{grid-template-columns:1fr}.ml-field--wide{grid-column:auto}.mailing-list-page{padding:3rem 1.25rem}}.privacy-policy-page{padding:4rem 1.5rem;position:relative;min-height:calc(100vh - 200px)}.privacy-policy-page:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#faf3e433,#f1e2c433),url(../img/gympie-bg.webp) center/cover no-repeat fixed;z-index:-1}.privacy-policy-page-inner{max-width:720px;margin:0 auto}.privacy-policy-page .section-sub{margin-bottom:2.5rem}.privacy-content{text-align:left}.privacy-content h3{font-size:1.4rem;margin-top:2rem;margin-bottom:.75rem;color:var(--brown-deep)}.privacy-content p{font-family:Cormorant Garamond,serif;font-size:1.1rem;line-height:1.7;color:var(--text);margin-bottom:.75rem}.privacy-content ul{margin:.5rem 0 1.25rem 1.5rem}.privacy-content ul li{font-family:Cormorant Garamond,serif;font-size:1.1rem;line-height:1.7;color:var(--text);margin-bottom:.35rem}.privacy-content a{color:var(--gold-deep)}.privacy-content a:hover{color:var(--rose)}@media(max-width:600px){.privacy-policy-page{padding:3rem 1.25rem}}.contact-form-section{max-width:600px;margin:2rem auto 0}.contact-form-section .form-group{margin-bottom:1.25rem;text-align:center}.contact-form-section .form-group label{display:block;font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brown-warm);margin-bottom:.35rem}.contact-form-section .form-group .optional{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-soft)}.contact-form-section .form-group input,.contact-form-section .form-group textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--hairline);border-radius:8px;background:#fff;font-size:1rem;color:var(--text);font-family:"Source Sans 3",Segoe UI,sans-serif;transition:border-color .2s,box-shadow .2s;outline:none}.contact-form-section .form-group input:focus,.contact-form-section .form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d4a24c26}.contact-form-section .form-group input::placeholder,.contact-form-section .form-group textarea::placeholder{color:var(--text-soft);opacity:.6}.contact-form-section .form-group textarea{min-height:120px;resize:vertical}.contact-form-section .form-submit{text-align:center;margin-top:1.5rem}.contact-form-section .form-submit button{font-family:"Source Sans 3",Segoe UI,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:.9rem 2.5rem;background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--cream-soft);border:none;border-radius:999px;cursor:pointer;box-shadow:0 8px 24px #b0822c59;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:200px}.contact-form-section .form-submit button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #b0822c80}.contact-form-section .form-submit button:disabled{opacity:.7;cursor:not-allowed}.contact-form-section .ml-btn-loading{display:inline-flex;align-items:center}.contact-form-section .ml-btn-loading[hidden]{display:none!important}.contact-form-section .ml-message{margin-top:1em;padding:.8em 1em;border-radius:6px;text-align:center;font-family:"Source Sans 3",sans-serif;font-size:.95rem}.contact-form-section .ml-message--success{background:#3fb37a26;border:1px solid rgba(63,179,122,.4);color:#7bc89a}.contact-form-section .ml-message--error{background:#e6454526;border:1px solid rgba(230,69,69,.4);color:#e8a0a0}@media(max-width:600px){.contact-form-section{margin-left:1rem;margin-right:1rem}.contact-form-section .form-submit button{width:100%;min-width:unset}}
