/* v0.5.0: season calendar, local inquiries, and visitor-information components. */
.hl-contact-block a,.hl-sponsorship-contact a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap:anywhere; }
.hl-contact-block p { margin-bottom:.8rem; }
.hl-contact-block--compact { font-size:1rem; line-height:1.65; }
.hl-map-actions { display:flex; flex-direction:column; gap:.75rem; margin-block:1rem; }
.hl-timed-note { margin-top:2rem; padding-top:2rem; border-top:1px solid #718882; max-width:70ch; }
.hl-legal-notices { padding:2rem 0; border-top:1px solid #718882; font-size:1rem; }
.hl-legal-notices h2 { font-family:var(--hl-sans); font-size:1.125rem; }
.hl-sponsorship-contact { padding:1.5rem; border-radius:var(--hl-radius); background:var(--hl-putty); }
.hl-party-gallery { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) minmax(0,1fr); gap:1.5rem; margin-block:2rem; }
.hl-party-gallery figure { margin:0; min-width:0; }
.hl-party-gallery a { display:block; width:100%; max-width:100%; min-width:0; aspect-ratio:auto; height:23rem; border-radius:var(--hl-radius); }
.hl-party-gallery img { width:100%; height:100%; object-fit:cover; }
.hl-party-gallery figcaption { margin-top:.8rem; font-size:1rem; }
.hl-party-inquiry-heading { max-width:54rem; margin-bottom:2rem; }
.hl-party-form { padding:clamp(1.25rem,4vw,3rem); background:var(--hl-cream); color:var(--hl-ink); border-radius:var(--hl-radius); max-width:62rem; }
.hl-form-placeholder h3 { color:var(--hl-ink); }
.hl-editor-form-note { margin-top:1.5rem; padding:1.25rem; border:1px dashed var(--hl-forest); border-radius:var(--hl-radius-control); font-size:1rem; background:var(--hl-putty); }
.hl-editor-form-note p { margin-bottom:0; }
/* Orbital variables + conservative legacy fallbacks; do not override visibility/conditional logic. */
.hl-party-form .gform_wrapper {
 --gf-color-primary:var(--hl-forest); --gf-color-primary-darker:var(--hl-forest-dark); --gf-color-primary-contrast:#fff;
 --gf-color-in-ctrl:#fff; --gf-color-in-ctrl-contrast:var(--hl-ink); --gf-color-danger:#922a20;
 --gf-ctrl-bg-color:#fff; --gf-ctrl-bg-color-hover:#fff; --gf-ctrl-bg-color-focus:#fff;
 --gf-ctrl-color:var(--hl-ink); --gf-ctrl-border-color:#728479; --gf-ctrl-border-color-hover:var(--hl-forest);
 --gf-ctrl-border-color-focus:var(--hl-ink); --gf-ctrl-radius:.5rem; --gf-radius:.5rem;
 --gf-ctrl-font-size:1.125rem; --gf-ctrl-line-height:1.5; --gf-ctrl-size:3.5rem;
 --gf-ctrl-label-color-primary:var(--hl-ink); --gf-ctrl-label-color-secondary:var(--hl-ink);
 --gf-ctrl-label-font-size-primary:1.125rem; --gf-ctrl-label-font-size-secondary:1rem;
 --gf-ctrl-desc-color:var(--hl-muted); --gf-ctrl-desc-font-size:1rem;
 --gf-ctrl-textarea-radius:.5rem; --gf-ctrl-textarea-line-height:1.6;
 --gf-ctrl-btn-bg-color-primary:var(--hl-forest); --gf-ctrl-btn-bg-color-hover-primary:var(--hl-forest-dark);
 --gf-ctrl-btn-color-primary:#fff; --gf-ctrl-btn-color-hover-primary:#fff;
 --gf-ctrl-btn-font-size:1.125rem; --gf-ctrl-btn-radius:.5rem;
 --gf-form-gap-y:1.5rem; --gf-field-gap-y:1rem; --gf-font-family-primary:var(--hl-sans);
 font-family:var(--hl-sans); color:var(--hl-ink);
}
.hl-party-form .gform_wrapper .gfield_label, .hl-party-form .gform_wrapper legend.gfield_label { font-size:1.125rem; font-weight:650; color:var(--hl-ink); line-height:1.5; }
.hl-party-form .gform_wrapper .gfield_description,.hl-party-form .gform_wrapper .gform-field-label--type-sub,.hl-party-form .gform_wrapper .ginput_complex label { font-size:1rem; line-height:1.6; }
.hl-party-form .gform_wrapper input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=file]):not([type=image]),
.hl-party-form .gform_wrapper select,.hl-party-form .gform_wrapper textarea { min-height:3.5rem; border-radius:.5rem; border:1px solid #728479; background:#fff; color:var(--hl-ink); padding:.75rem 1rem; font-family:inherit; font-size:1.125rem; max-width:100%; }
.hl-party-form .gform_wrapper textarea { min-height:10rem; resize:vertical; }
.hl-party-form .gform_wrapper .gchoice { min-height:2.75rem; padding-block:.4rem; }
.hl-party-form .gform_wrapper .gchoice label { font-size:1.125rem; line-height:1.5; padding:.25rem .35rem; }
.hl-party-form .gform_wrapper input[type=checkbox],.hl-party-form .gform_wrapper input[type=radio] { width:1.35rem; height:1.35rem; accent-color:var(--hl-forest); flex-shrink:0; }
.hl-party-form .gform_wrapper .gform_button,.hl-party-form .gform_wrapper button[type=submit],.hl-party-form .gform_wrapper input[type=submit] { min-height:3.5rem; padding:.8rem 1.5rem; border:2px solid var(--hl-forest); border-radius:.5rem; background:var(--hl-forest); color:#fff; font-size:1.125rem; font-weight:650; white-space:normal; }
.hl-party-form .gform_wrapper button:hover,.hl-party-form .gform_wrapper input[type=submit]:hover { background:var(--hl-forest-dark); border-color:var(--hl-forest-dark); color:#fff; }
.hl-party-form .gform_wrapper :is(input,textarea,select,button,a):focus-visible { outline:3px solid #fff; outline-offset:2px; box-shadow:0 0 0 6px var(--hl-ink); }
.hl-party-form .gform_wrapper .gfield_error input,.hl-party-form .gform_wrapper .gfield_error select,.hl-party-form .gform_wrapper .gfield_error textarea { border-color:#922a20; }
.hl-party-form .gform_wrapper .validation_message,.hl-party-form .gform_wrapper .gfield_validation_message,.hl-party-form .gform_wrapper .gform_validation_errors { color:#922a20; background:#fff6f3; border-radius:.5rem; font-size:1rem; }
.hl-party-form .gform_confirmation_message { padding:1.5rem; border:2px solid var(--hl-forest); border-radius:.75rem; background:var(--hl-putty); color:var(--hl-ink); font-size:1.125rem; }
.hl-party-form .gform_wrapper .gform_submission_error { font-size:1.125rem; line-height:1.5; }
/* Calendar: true table for the month overview, readable chronological alternative. */
.hl-calendar { margin-top:2rem; }
.hl-calendar [hidden] { display:none!important; }
.hl-calendar-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1.25rem; margin-bottom:1.5rem; }
.hl-calendar-month-controls,.hl-calendar-view-controls { display:flex; align-items:center; gap:.6rem; }
.hl-calendar-current { margin:0; font-size:1.4rem; padding-inline:.7rem; min-width:12rem; text-align:center; }
.hl-calendar-controls button { border:1px solid #67796d; border-radius:.5rem; background:var(--hl-cream); color:var(--hl-ink); min-height:3rem; min-width:3rem; padding:.5rem .8rem; font-size:1.125rem; font-weight:600; }
.hl-calendar-controls button[aria-pressed=true] { background:var(--hl-forest); color:#fff; border-color:var(--hl-forest); }
.hl-calendar-controls button:disabled { opacity:.5; cursor:default; }
.hl-table-scroll { max-width:100%; overflow-x:auto; border-radius:var(--hl-radius); }
.hl-month-table { width:100%; min-width:45rem; table-layout:fixed; border-collapse:separate; border-spacing:3px; font-size:1rem; }
.hl-month-table th { padding:.7rem .2rem; text-align:center; color:var(--hl-ink); font-size:1rem; }
.hl-month-table abbr { text-decoration:none; }
.hl-month-table td { vertical-align:top; padding:0; border-radius:.5rem; background:var(--hl-cream); }
.hl-month-table td button { display:flex; flex-direction:column; gap:.5rem; width:100%; height:100%; min-height:9.5rem; border:2px solid transparent; border-radius:.5rem; background:transparent; color:var(--hl-ink); padding:.75rem .55rem; text-align:left; overflow-wrap:anywhere; }
.hl-month-table td button strong { font-size:1.35rem; }
.hl-month-table td button span { font-size:1rem; line-height:1.4; }
.hl-month-table td button small { font-size:1rem; line-height:1.35; color:var(--hl-forest-dark); }
.hl-month-table td button[aria-pressed=true] { border-color:var(--hl-forest); background:#dce5d9; }
.hl-month-table .hl-calendar-empty { background:transparent; }
.hl-month-table .hl-calendar-outside { padding:.75rem; background:transparent; color:#495c50; }
.hl-calendar-outside small { display:block; margin-top:.6rem; font-size:1rem; line-height:1.3; }
.hl-month-table .hl-calendar-closed { background:#e5d9cf; }
.hl-calendar-selected { margin-top:1.5rem; padding:1.5rem; border:1px solid #87988b; border-radius:.75rem; background:var(--hl-cream); }
.hl-calendar-selected>p { margin:0; }
.hl-calendar-list-view { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.hl-calendar-day { min-width:0; padding:1.5rem; border-radius:.75rem; background:var(--hl-cream); border:1px solid #b2bcad; }
.hl-calendar-day h3 { font-size:1.5rem; line-height:1.4; }
.hl-calendar-day h4 { margin-top:1.4rem; font-size:1.3rem; }
.hl-calendar-day p { font-size:1.125rem; line-height:1.6; }
.hl-calendar-selected .hl-calendar-day { border:0; padding:0; }
.hl-calendar-day h3:focus-visible { outline:3px solid var(--hl-forest); outline-offset:5px; }
.hl-calendar-offer { font-weight:600; }
.hl-upcoming-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin-top:2rem; }
.hl-upcoming-grid article { padding:1.5rem; border:1px solid var(--hl-border); border-radius:.75rem; }
.hl-upcoming-grid h3 { font-size:1.5rem; }
.hl-tree-prices { margin-top:3rem; }
.hl-tree-prices table { width:100%; min-width:42rem; font-size:1.125rem; border-collapse:collapse; background:var(--hl-cream); }
.hl-tree-prices th,.hl-tree-prices td { padding:1rem; border-bottom:1px solid #9baa9f; text-align:left; }
.hl-tree-prices caption { color:var(--hl-ink); }
.hl-tree-prices thead { background:var(--hl-forest); color:#fff; }
.hl-tree-prices tbody tr:nth-child(even) { background:#efeee4; }
@media(max-width:991.98px) {
 .hl-party-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hl-party-gallery figure:last-child { grid-column:1 / -1; }
 .hl-party-gallery figure:last-child a { height:18rem; }
 .hl-upcoming-grid { grid-template-columns:1fr; }
 .hl-calendar-list-view { grid-template-columns:1fr; }
}
@media(max-width:575.98px) {
 .hl-party-gallery { grid-template-columns:minmax(0,1fr); }
 .hl-party-gallery a { height:19rem; }
 .hl-calendar-month-controls { width:100%; justify-content:space-between; gap:.2rem; }
 .hl-calendar-current { min-width:0; font-size:1.2rem; padding-inline:.1rem; }
 .hl-calendar-controls { gap:.75rem; }
 .hl-party-form { padding:1.25rem; }
}
@media(prefers-reduced-motion:reduce) { .hl-calendar * { scroll-behavior:auto!important; } }
@media(forced-colors:active) { .hl-calendar button[aria-pressed=true] { outline:3px solid Highlight; } }

/* v0.5.1 — NYE-only recognition and launch messaging. Supplied logos are not cropped. */
.hl-nye-identity{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.5rem;align-items:start;margin-block:1.75rem 2rem;}
.hl-nye-identity>div{min-width:0;}
.hl-nye-mark-label{font-size:1rem;line-height:1.5;margin:0 0 .75rem;color:inherit;font-weight:600;}
.hl-nye-sponsor-logo{display:block;width:100%;max-width:23rem;height:auto;object-fit:contain;border-radius:0;}
.hl-nye-performer-backing{display:block;width:min(100%,10rem);background:#fff;border-radius:var(--hl-radius-card,.75rem);padding:.25rem;}
.hl-nye-performer-logo{display:block;width:100%;height:auto;object-fit:contain;border-radius:0;}
.hl-nye-promo{width:min(100%,240px);margin:0 auto 1.25rem;}
.hl-nye-promo-image{display:block;width:100%;height:auto;object-fit:contain;border-radius:var(--hl-radius-card,.75rem);}
.hl-events-announcement--nye>.hl-btn{margin-top:1rem;max-width:100%;white-space:normal;}
.hl-launch-note{color:var(--hl-gold,#f0ce91);font-size:1rem;line-height:1.6;margin:1rem 0 0;}
.hl-calendar-day>.hl-btn{margin-top:.75rem;white-space:normal;max-width:100%;}
.hl-nye-ticket-notice{margin-block:1rem 0;}
@media(max-width:575.98px){.hl-nye-identity{grid-template-columns:minmax(0,1fr);gap:1.25rem;}.hl-nye-sponsor-logo{max-width:18rem;}.hl-nye-performer-backing{width:min(100%,8.5rem);}}
