/* HolidayLights 2026 v0.2.0 — readability, warmth, and accessible interaction. */

:root {
  --hl-ink: #142b35;
  --hl-deep: #0d222b;
  --hl-forest: #355c48;
  --hl-forest-dark: #244636;
  --hl-cream: #fbf8f1;
  --hl-putty: #e8e8d9;
  --hl-gold: #efd29a;
  --hl-gold-dark: #b18c4f;
  --hl-muted: #53645a;
  --hl-border: #dedfd4;
  --hl-serif: Charter,"Bitstream Charter","Sitka Text",Cambria,Georgia,serif;
  --hl-sans: Montserrat,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --hl-radius: .75rem;
  --bs-body-font-family: var(--hl-sans);
  --bs-body-color: var(--hl-ink);
  --bs-body-bg: var(--hl-cream);
  --bs-link-color: var(--hl-forest);
  --bs-link-hover-color: var(--hl-ink);
  --bs-border-radius: var(--hl-radius-control);
  --bs-focus-ring-color: rgba(177,140,79,.45);
  --hl-font-body: 1.25rem;
  --hl-font-control: 1.125rem;
  --hl-font-small: 1rem;
  --hl-radius-control: .5rem;
  --hl-control-border: #81958d;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--hl-sticky-clearance, 0px) + 1rem);
}

body.hl-site {
  font-family: var(--hl-sans);
  background: var(--hl-cream);
  color: var(--hl-ink);
  font-size: var(--hl-font-body);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--hl-gold);
  color: var(--hl-ink);
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  color: inherit;
}

img {
  max-width: 100%;
  height: auto;
}

button,input,select,textarea {
  font: inherit;
}

button,a {
  touch-action: manipulation;
}

button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 7px #142b35;
}

a,button {
  transition: background .2s,color .2s,transform .2s,box-shadow .2s;
}

h1,h2,h3,h4 {
  font-family: var(--hl-serif);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1.12;
}

h1 {
  font-size: 4.75rem;
}

h2 {
  font-size: 3.5rem;
}

h3 {
  font-size: 1.9375rem;
}

p {
  margin-top: 0;
}

p:last-child {
  margin-bottom: 0;
}

.hl-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  vertical-align: middle;
}

.container {
  --hl-page-gutter: 48px;
  --bs-gutter-x: var(--hl-page-gutter);
  max-width: 1328px;
}

.hl-section {
  padding: 100px 0;
}

.hl-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--hl-sans);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .085em;
  text-transform: uppercase;
  margin: 0 0 22px;
  color: var(--hl-forest);
}

.hl-eyebrow .hl-icon {
  width: 19px;
  height: 19px;
}

.hl-eyebrow-light {
  color: var(--hl-gold);
}

.hl-label {
  display: block;
  font-size: 1rem;
  line-height: 1.5;
  text-transform: uppercase;
  letter-spacing: .085em;
  font-weight: 700;
  margin-bottom: 7px;
}

.hl-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
  margin-bottom: 44px;
}

.hl-section-heading h2 {
  margin: 0;
}

.hl-heading-note {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  max-width: 350px;
  margin: 0 0 5px;
  color: var(--hl-muted);
}

.hl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-height: 52px;
  padding: 14px 23px;
  border: 1px solid transparent;
  border-radius: var(--hl-radius-control);
  font-weight: 700;
  font-size: var(--hl-font-control);
  line-height: 1.4;
  letter-spacing: .01em;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.hl-btn .hl-icon {
  width: 19px;
  height: 19px;
}

.hl-btn:hover {
  transform: translateY(-2px);
}

.hl-btn-gold {
  background: var(--hl-gold);
  border-color: var(--hl-gold);
  color: var(--hl-ink);
}

.hl-btn-gold:hover {
  background: #f6ddb2;
  border-color: #f6ddb2;
  color: var(--hl-deep);
}

.hl-btn-cream {
  background: var(--hl-cream);
  border-color: var(--hl-cream);
  color: var(--hl-forest-dark);
}

.hl-btn-cream:hover {
  background: #fff;
  color: var(--hl-ink);
}

.hl-btn-ink {
  background: var(--hl-ink);
  color: #fff;
}

.hl-btn-ink:hover {
  background: var(--hl-forest-dark);
  color: #fff;
}

.hl-btn-outline-light {
  border-color: #71828a;
  color: #fff;
}

.hl-btn-outline-light:hover {
  background: #ffffff10;
  color: #fff;
}

.hl-btn-small {
  min-height: 43px;
  padding: 11px 16px;
  font-size: var(--hl-font-control);
}

.hl-text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-size: var(--hl-font-control);
  font-weight: 700;
  line-height: 1.5;
  padding: 9px 0;
  color: var(--hl-forest);
}

.hl-text-link .hl-icon {
  width: 20px;
  height: 20px;
  transition: transform .2s;
}

.hl-text-link:hover .hl-icon {
  transform: translateX(4px);
}

.hl-text-link:hover {
  color: var(--hl-ink);
}

.hl-text-link-light {
  color: var(--hl-gold);
}

.hl-text-link-light:hover {
  color: white;
}

.hl-skip-link {
  position: fixed;
  top: 0;
  left: 15px;
  transform: translateY(-130%);
  z-index: 2000;
  background: var(--hl-gold);
  color: var(--hl-ink);
  padding: 10px 18px;
}

.hl-skip-link:focus {
  transform: translateY(10px);
}

/* Shared shell */

.hl-utility {
  background: var(--hl-deep);
  color: #c8d2cd;
  font-size: 1rem;
  letter-spacing: .025em;
}

.hl-utility-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 33px;
}

.hl-utility-inner>div {
  display: flex;
  gap: 26px;
}

.hl-utility a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 0;
}

.hl-utility a:hover {
  color: var(--hl-gold);
}

.hl-utility .hl-icon {
  width: 13px;
  height: 13px;
}

.hl-utility-dot {
  padding: 0 8px;
  color: #bda678;
}

.hl-header {
  background: var(--hl-ink);
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 1020;
  border-bottom: 1px solid #ffffff16;
}

.hl-header.is-scrolled {
  box-shadow: 0 6px 25px #09202b24;
}

.admin-bar .hl-header {
  top: 32px;
}

.hl-header-inner {
  display: flex;
  align-items: center;
  gap: 30px;
  min-height: 91px;
}

.hl-brand {
  flex: 0 0 242px;
  display: inline-flex;
  align-items: center;
}

.hl-header-logo {
  display: block;
  width: 242px;
  height: auto;
  max-height: 65px;
  object-fit: contain;
}

.hl-desktop-nav {
  margin-left: auto;
}

.hl-menu {
  display: flex;
  align-items: center;
  gap: 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.hl-menu a {
  display: block;
  font-size: var(--hl-font-control);
  font-weight: 600;
  line-height: 1.4;
  padding: 14px 0;
  position: relative;
}

.hl-menu a:after {
  content: "";
  position: absolute;
  height: 1px;
  background: var(--hl-gold);
  bottom: 5px;
  left: 0;
  right: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s;
}

.hl-menu a:hover:after,.hl-menu .current-menu-item>a:after {
  transform: scaleX(1);
}

.hl-header-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}

.hl-header-actions .hl-btn {
  white-space: nowrap;
}

.hl-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  background: none;
  border: 1px solid #ffffff42;
  border-radius: var(--hl-radius-control);
  color: #fff;
}

.hl-mobile-menu {
  --bs-offcanvas-width: 390px;
  background: var(--hl-ink);
  color: #fff;
}

.hl-mobile-menu .offcanvas-header {
  padding: 26px;
  border-bottom: 1px solid #ffffff20;
}

.hl-mobile-menu .offcanvas-title {
  font-size: 1.4375rem;
  letter-spacing: -.02em;
}

.hl-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid #ffffff45;
  color: inherit;
  background: transparent;
  border-radius: 50%;
}

.hl-close:hover {
  background: #ffffff15;
}

.hl-mobile-menu .offcanvas-body {
  padding: 20px 26px 32px;
}

.hl-mobile-menu .hl-menu {
  display: block;
  margin-bottom: 25px;
}

.hl-mobile-menu .hl-menu a {
  font-size: 1.1875rem;
  font-family: var(--hl-serif);
  padding: 17px 0;
  border-bottom: 1px solid #ffffff24;
}

.hl-mobile-menu .hl-btn {
  width: 100%;
}

.hl-mobile-family {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 1px solid #ffffff24;
}

.hl-mobile-family .hl-eyebrow {
  color: var(--hl-gold);
  margin-bottom: 15px;
}

.hl-mobile-family>a {
  display: block;
  padding: 9px 0;
  font-size: var(--hl-font-control);
}

/* First impression */

.hl-hero {
  background: var(--hl-ink);
  color: var(--hl-cream);
  position: relative;
  isolation: isolate;
  min-height: 635px;
  overflow: hidden;
}

.hl-hero-photo {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 58%;
  z-index: -1;
}

.hl-hero-photo>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 52% 50%;
}

.hl-hero-photo:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,var(--hl-ink) 0%,rgba(20,43,53,.92) 16%,rgba(20,43,53,.35) 32%,rgba(20,43,53,0) 65%),linear-gradient(0deg,rgba(13,34,43,.65),transparent 38%);
}

.hl-hero-photo.hl-focus-left>img {
  object-position: 25% 50%;
}

.hl-hero-photo.hl-focus-right>img {
  object-position: 75% 50%;
}

.hl-hero-container {
  min-height: 635px;
  display: flex;
  align-items: center;
}

.hl-hero-content {
  width: 49%;
  padding: 45px 8px 80px 0;
  position: relative;
  z-index: 2;
}

.hl-hero .hl-eyebrow {
  margin-bottom: 26px;
}

.hl-hero h1 {
  margin: 0 0 25px;
  font-size: 4.75rem;
  line-height: 1.12;
  letter-spacing: -.04em;
}

.hl-hero h1>span {
  display: block;
}

.hl-hero-accent {
  color: var(--hl-gold);
  font-style: italic;
}

.hl-hero-description {
  max-width: 360px;
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: #d1d8d5;
  margin-bottom: 26px;
}

.hl-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 18px;
}

.hl-hero-actions .hl-text-link {
  font-size: var(--hl-font-control);
}

.hl-hero-location {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  letter-spacing: .02em;
  margin: 27px 0 0;
  color: #c2ccc7;
}

.hl-hero-location .hl-icon {
  width: 15px;
  height: 15px;
}

.hl-hero-location>span {
  padding: 0 2px;
  color: var(--hl-gold);
}

.hl-hero-caption {
  position: absolute;
  z-index: 2;
  right: 6%;
  bottom: 77px;
  display: flex;
  gap: 10px;
  align-items: center;
  font-family: var(--hl-serif);
  font-style: italic;
  font-size: 1.125rem;
  text-shadow: 0 1px 8px #000;
}

.hl-hero-caption .hl-icon {
  color: var(--hl-gold);
  width: 20px;
  height: 20px;
}

.hl-hero-stars {
  position: absolute;
  left: 40%;
  top: 25px;
  width: 96px;
  opacity: .42;
  z-index: 1;
  pointer-events: none;
}

.hl-season-wrap {
  position: relative;
  margin-top: -34px;
  z-index: 3;
}

.hl-season-strip {
  background: var(--hl-cream);
  border: 1px solid #ece6d8;
  border-radius: var(--hl-radius);
  display: grid;
  grid-template-columns: 1fr 1.2fr 1.2fr;
  box-shadow: 0 10px 30px #13283109;
  min-height: 103px;
}

.hl-season-item {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 22px 28px;
  position: relative;
}

.hl-season-item+.hl-season-item:before {
  content: "";
  height: 44px;
  width: 1px;
  background: var(--hl-border);
  position: absolute;
  left: 0;
}

.hl-season-item>.hl-icon {
  width: 27px;
  height: 27px;
  color: var(--hl-forest);
  stroke-width: 1.25;
}

.hl-season-item .hl-label {
  color: #636e60;
  font-size: 1rem;
  margin-bottom: 6px;
}

.hl-season-item strong {
  font-size: var(--hl-font-body);
  font-weight: 600;
}

.hl-season-hours>div>span:last-child {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  display: block;
  max-width: 270px;
}

.hl-season-jump {
  justify-content: space-between;
}

.hl-season-jump:hover {
  background: #eeeade;
}

.hl-season-jump>.hl-icon {
  background: var(--hl-forest);
  color: #fff;
  border-radius: 50%;
  padding: 9px;
  width: 40px;
  height: 40px;
}

.hl-presenter {
  background: var(--hl-cream);
}

.hl-presenter-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 21px;
  min-height: 90px;
  padding-top: 9px;
}

.hl-presenter .hl-label {
  margin: 0;
  font-size: 1rem;
  color: #697068;
}

.hl-sponsor-name {
  font-family: var(--hl-sans);
  font-size: 1.1875rem;
  font-weight: 600;
  letter-spacing: -.035em;
  color: var(--hl-ink);
}

.hl-sponsor-logo {
  max-width: 220px;
  max-height: 56px;
  width: auto;
  object-fit: contain;
}

.hl-partner-credit {
  font-size: 1rem;
  color: var(--hl-muted);
  border-left: 1px solid var(--hl-border);
  padding-left: 20px;
}

/* Experiences */

.hl-experience {
  padding-top: 68px;
}

.hl-experience-card {
  height: 100%;
  border-bottom: 1px solid var(--hl-border);
}

.hl-card-image {
  position: relative;
  aspect-ratio: 1.13;
  overflow: hidden;
  border-radius: var(--hl-radius);
}

.hl-card-image>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s;
}

.hl-experience-card:hover .hl-card-image>img {
  transform: scale(1.035);
}

.hl-image-tag {
  position: absolute;
  bottom: 17px;
  left: 17px;
  display: flex;
  align-items: center;
  gap: 8px;
  background: #142b35e6;
  color: #fff;
  padding: 7px 10px;
  font-size: 1rem;
  letter-spacing: .025em;
  border: 1px solid #ffffff25;
  border-radius: var(--hl-radius-control);
}

.hl-image-tag .hl-icon {
  width: 16px;
  height: 16px;
  color: var(--hl-gold);
}

.hl-card-body {
  padding: 24px 0 23px;
}

.hl-card-number {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: .14em;
  color: var(--hl-muted);
  margin-bottom: 10px;
}

.hl-card-body h3 {
  font-size: 1.875rem;
  margin-bottom: 12px;
  letter-spacing: -.035em;
}

.hl-card-body p {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: #606b64;
  margin-bottom: 13px;
  max-width: 340px;
}

.hl-card-body .hl-text-link {
  font-size: var(--hl-font-control);
}

.hl-pines {
  padding: 0 0 100px;
}

.hl-pines .row {
  border-radius: var(--hl-radius);
  overflow: hidden;
}

.hl-pines-photo {
  position: relative;
  min-height: 478px;
  overflow: hidden;
}

.hl-pines-photo>img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  position: absolute;
}

.hl-photo-note {
  position: absolute;
  left: 30px;
  bottom: 25px;
  background: #142b35db;
  color: #fff;
  padding: 9px 15px;
  font-family: var(--hl-serif);
  font-size: 1.125rem;
  font-style: italic;
  border-left: 2px solid var(--hl-gold);
}

.hl-pines-content {
  position: relative;
  background: var(--hl-putty);
  padding: 54px 58px;
  overflow: hidden;
}

.hl-pines-content>p:not(.hl-eyebrow) {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: #4d6153;
  max-width: 370px;
  margin: 20px 0 23px;
}

.hl-pines-content h2 {
  font-size: 3rem;
  position: relative;
  z-index: 1;
}

.hl-santa-hours {
  position: relative;
  z-index: 1;
  border-top: 1px solid #b8c0af;
  padding-top: 18px;
  max-width: 370px;
}

.hl-santa-hours .hl-label {
  font-size: 1rem;
  color: var(--hl-forest);
  margin-bottom: 7px;
}

.hl-santa-hours p {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: #465c4c;
}

.hl-pines-actions {
  margin-top: 16px;
  position: relative;
  z-index: 1;
}

.hl-pines-decoration {
  position: absolute;
  bottom: -20px;
  right: -10px;
  color: #becbb3;
  opacity: .48;
  pointer-events: none;
}

.hl-pines-decoration .hl-icon {
  height: 210px;
  width: 210px;
  stroke-width: .6;
}

/* Planning */

.hl-plan {
  background: var(--hl-ink);
  color: var(--hl-cream);
  position: relative;
}

.hl-plan .hl-section-heading {
  margin-bottom: 45px;
}

.hl-plan-intro {
  max-width: 395px;
  color: #cbd4ce;
  font-size: var(--hl-font-body);
  line-height: 1.65;
}

.hl-plan-intro .hl-btn {
  margin-top: 10px;
}

.hl-plan-card {
  background: #ffffff05;
  border: 1px solid #ffffff27;
  border-radius: var(--hl-radius);
  padding: 32px 31px;
}

.hl-plan-facts>div {
  display: flex;
  gap: 19px;
  margin-bottom: 27px;
}

.hl-plan-facts>div>.hl-icon {
  width: 23px;
  height: 23px;
  color: var(--hl-gold);
  margin-top: 2px;
  stroke-width: 1.3;
}

.hl-plan-facts .hl-label {
  font-size: 1rem;
  color: #b7c7bc;
  margin-bottom: 6px;
}

.hl-plan-facts h3 {
  font-size: 1.625rem;
  margin: 0;
}

.hl-plan-facts p {
  font-size: var(--hl-font-body);
  color: #edf0e9;
  line-height: 1.65;
}

.hl-plan-directions {
  display: flex;
  gap: 25px;
  flex-wrap: wrap;
  border-top: 1px solid #ffffff26;
  padding-top: 14px;
}

.hl-plan-directions .hl-text-link {
  font-size: var(--hl-font-control);
}

.hl-faq {
  border-top: 1px solid #ffffff3b;
}

.hl-faq details {
  border-bottom: 1px solid #ffffff3b;
  scroll-margin-top: .75rem;
}

.hl-faq summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 1px;
  font-size: var(--hl-font-body);
  font-weight: 500;
  cursor: pointer;
  gap: 20px;
}

.hl-faq summary::-webkit-details-marker {
  display: none;
}

.hl-faq summary>.hl-icon {
  width: 19px;
  height: 19px;
  color: var(--hl-gold);
  transition: transform .2s;
}

.hl-faq details[open] summary>.hl-icon {
  transform: rotate(45deg);
}

.hl-faq-answer {
  padding: 0 35px 23px 1px;
  color: #c7d2cd;
  font-size: var(--hl-font-body);
  line-height: 1.65;
}

.hl-faq-answer a:not(.hl-btn) {
  color: var(--hl-gold);
  text-decoration: underline;
  text-underline-offset: 4px;
}

.hl-faq-more {
  margin-top: 24px;
}

/* Seasonal programming & gallery */

.hl-events {
  padding-bottom: 65px;
}

.hl-events-shell {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 100px;
  align-items: center;
}

.hl-events-shell>div:first-child>p:not(.hl-eyebrow) {
  margin-top: 23px;
  max-width: 435px;
  color: var(--hl-muted);
  font-size: var(--hl-font-body);
  line-height: 1.65;
}

.hl-events-announcement {
  position: relative;
  border: 1px solid var(--hl-border);
  padding: 40px 40px 34px;
  text-align: center;
  background: #f2efE6;
  border-radius: var(--hl-radius);
}

.hl-events-announcement>.hl-icon {
  width: 31px;
  height: 31px;
  margin-bottom: 17px;
  color: var(--hl-forest);
  stroke-width: 1.3;
}

.hl-events-announcement>.hl-label {
  color: var(--hl-forest);
  font-size: 1rem;
}

.hl-events-announcement h3 {
  font-size: 2.1875rem;
  margin: 12px 0 14px;
}

.hl-events-announcement p {
  font-size: var(--hl-font-body);
  color: var(--hl-muted);
  max-width: 240px;
  margin: auto;
}

.hl-event-feature {
  border: 1px solid var(--hl-border);
  border-radius: var(--hl-radius);
  overflow: hidden;
}

.hl-event-feature>div {
  padding: 25px;
}

.hl-event-feature h3 {
  font-size: 1.8125rem;
}

.hl-event-feature p {
  font-size: var(--hl-font-body);
}

.hl-event-photo {
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.hl-gallery-section {
  padding: 35px 0 0;
}

.hl-gallery-heading {
  margin-bottom: 30px;
}

.hl-gallery-heading h2 {
  font-size: 2.6875rem;
}

.hl-gallery-heading .hl-eyebrow {
  margin-bottom: 14px;
}

.hl-gallery-note {
  font-size: 1rem;
  color: var(--hl-muted);
  line-height: 1.8;
  margin-bottom: 4px;
}

.hl-gallery-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1fr;
  gap: 13px;
}

.hl-gallery-item {
  display: block;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--hl-radius);
}

.hl-gallery-item>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s;
}

.hl-gallery-item:hover>img {
  transform: scale(1.055);
}

.hl-gallery-zoom {
  position: absolute;
  right: 12px;
  bottom: 12px;
  background: #142b35e0;
  color: #fff;
  width: 32px;
  height: 32px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid #ffffff35;
}

.hl-gallery-zoom .hl-icon {
  width: 17px;
  height: 17px;
}

.hl-gallery-modal .modal-content {
  background: var(--hl-deep);
  color: #fff;
  border: 1px solid #ffffff25;
}

.hl-gallery-modal .modal-header {
  border-color: #ffffff20;
  padding: 14px 20px;
}

.hl-gallery-modal .modal-title {
  font-family: var(--hl-sans);
  letter-spacing: 0;
}

.hl-gallery-modal .modal-body {
  padding: 0;
  min-height: 150px;
  text-align: center;
}

.hl-gallery-modal .modal-body>img {
  max-height: 80vh;
  width: 100%;
  object-fit: contain;
}

.hl-gallery-modal .hl-close {
  width: 37px;
  height: 37px;
}

/* Connected CALM experiences */

.hl-willows-wrap {
  padding-bottom: 0;
}

.hl-willows {
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 70px;
  align-items: center;
  background: var(--hl-forest);
  color: #fff;
  padding: 66px 75px;
  border-radius: var(--hl-radius);
  overflow: hidden;
}

.hl-willows h2 {
  font-size: 3.5625rem;
  color: #f8f6e9;
  margin-bottom: 20px;
}

.hl-willows>div:first-of-type>p:not(.hl-eyebrow) {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  max-width: 445px;
  color: #dfE6d8;
  margin-bottom: 25px;
}

.hl-willows .hl-eyebrow {
  font-size: 1rem;
}

.hl-willows .hl-btn {
  font-size: var(--hl-font-control);
}

.hl-willows-aside {
  position: relative;
  text-align: center;
  border-left: 1px solid #a5b59455;
  padding: 10px 0 10px 55px;
  color: #e5e8ce;
}

.hl-willows-aside>.hl-icon {
  width: 54px;
  height: 54px;
  display: block;
  margin: 0 auto 19px;
  stroke-width: 1;
}

.hl-willows-aside>span:not(.hl-willows-sub) {
  display: block;
  font-family: var(--hl-serif);
  font-size: 3.0625rem;
  letter-spacing: -.035em;
  line-height: 1.1;
}

.hl-willows-sub {
  display: block;
  font-size: 1rem;
  letter-spacing: .2em;
  margin-top: 13px;
}

.hl-willows-rule {
  height: 1px;
  width: 45px;
  background: #c4cdae77;
  margin: 25px auto;
}

.hl-willows-aside>p {
  font-family: var(--hl-serif);
  font-size: 1.25rem;
  font-style: italic;
  line-height: 1.45;
}

.hl-willows-stars {
  position: absolute;
  right: 25px;
  top: 20px;
  width: 130px;
  opacity: .18;
  pointer-events: none;
}

.hl-community {
  padding-top: 100px;
  padding-bottom: 95px;
}

.hl-membership-card {
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  height: 100%;
  background: #edece1;
  border-radius: var(--hl-radius);
  overflow: hidden;
  min-height: 438px;
}

.hl-membership-image {
  min-height: 340px;
  position: relative;
}

.hl-membership-image>img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  position: absolute;
}

.hl-membership-content {
  padding: 38px 30px;
}

.hl-membership-content .hl-eyebrow {
  font-size: 1rem;
  letter-spacing: .085em;
  margin-bottom: 19px;
}

.hl-membership-content h3 {
  font-size: 2.125rem;
  margin: 0 0 18px;
}

.hl-membership-content>p:not(.hl-eyebrow) {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: #56675b;
}

.hl-membership-content .hl-text-link {
  font-size: var(--hl-font-control);
  gap: 9px;
}

.hl-community-stack {
  display: flex;
  flex-direction: column;
  gap: 20px;
  height: 100%;
}

.hl-community-card {
  display: flex;
  gap: 21px;
  border: 1px solid var(--hl-border);
  padding: 28px 25px;
  flex: 1;
  border-radius: var(--hl-radius);
}

.hl-community-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  background: #e6e9dd;
  color: var(--hl-forest);
  border-radius: 50%;
}

.hl-community-card .hl-eyebrow {
  font-size: 1rem;
  margin-bottom: 9px;
}

.hl-community-card h3 {
  font-size: 1.6875rem;
  margin-bottom: 11px;
}

.hl-community-card p:not(.hl-eyebrow) {
  font-size: var(--hl-font-body);
  line-height: 1.65;
  color: var(--hl-muted);
  margin-bottom: 4px;
}

.hl-community-card .hl-text-link {
  font-size: var(--hl-font-control);
}

.hl-partner-card {
  background: #f1e9d9;
  border-color: #e4dac5;
}

.hl-partner-card .hl-community-icon {
  background: #e3d8c0;
}

.hl-signup {
  padding: 42px 0;
  background: #e9e8db;
  border-top: 1px solid #dcdccf;
}

.hl-signup-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}

.hl-signup-inner>div {
  display: flex;
  align-items: center;
  gap: 25px;
}

.hl-signup-inner>div>.hl-icon {
  width: 38px;
  height: 38px;
  stroke-width: 1.2;
}

.hl-signup h2 {
  font-size: 1.875rem;
  margin: 0 0 8px;
}

.hl-signup .hl-eyebrow {
  font-size: 1rem;
  margin-bottom: 12px;
}

.hl-signup p:not(.hl-eyebrow) {
  font-size: var(--hl-font-body);
  color: var(--hl-muted);
}

.hl-signup .hl-btn {
  font-size: var(--hl-font-control);
  flex-shrink: 0;
}

/* Footer & general-purpose templates */

.hl-footer {
  background: var(--hl-deep);
  color: #cfD6ce;
  padding: 67px 0 0;
  font-size: 1rem;
}

.hl-footer-main {
  padding-bottom: 54px;
}

.hl-footer-brand {
  display: block;
  max-width: 145px;
  margin-bottom: 24px;
}

.hl-footer-brand>img {
  width: 145px;
  height: auto;
  max-height: 145px;
  object-fit: contain;
  object-position: left center;
}

.hl-footer-main>.col-lg-4>p {
  font-size: 1rem;
  line-height: 1.85;
}

.hl-footer h2 {
  font-family: var(--hl-sans);
  font-weight: 600;
  font-size: var(--hl-font-control);
  letter-spacing: 0;
  color: var(--hl-gold);
  line-height: 1.6;
  margin: 7px 0 18px;
}

.hl-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.hl-footer li a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  min-width: 2.75rem;
  color: #d0d8d2;
  font-size: var(--hl-font-control);
  padding: 5px 0;
}

.hl-footer a:hover {
  color: var(--hl-gold);
}

.hl-footer-link>.hl-icon {
  display: none;
}

.hl-footer address {
  line-height: 1.9;
  font-size: 1rem;
  margin-bottom: 14px;
}

.hl-footer-phone {
  display: block;
  font-size: var(--hl-font-control);
  margin-bottom: 6px;
}

.hl-footer .hl-text-link {
  font-size: var(--hl-font-control);
}

.hl-socials {
  display: flex;
  gap: 13px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.hl-social-link {
  font-size: var(--hl-font-control);
}

.hl-social-link>.hl-icon {
  display: none;
}

.hl-footer-bottom {
  border-top: 1px solid #ffffff22;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 21px 0;
  color: #a4b2aa;
  font-size: 1rem;
  line-height: 1.8;
}

.hl-footer-bottom p {
  margin: 0;
}

.hl-footer-bottom p>span {
  padding: 0 7px;
}

.hl-footer-bottom>div {
  display: flex;
  gap: 22px;
}

.hl-footer-extra {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding-bottom: 20px !important;
}

.hl-interior {
  min-height: 60vh;
}

.hl-interior-hero {
  padding: 65px 0;
  background: #eaece1;
}

.hl-interior-hero h1 {
  max-width: 950px;
}

.hl-interior-hero .hl-eyebrow {
  margin-bottom: 15px;
}

.hl-breadcrumb {
  display: block;
  font-size: 1rem;
  margin-bottom: 28px;
  text-decoration: underline;
}

.hl-content-wrap {
  padding-top: 65px;
  padding-bottom: 80px;
}

.hl-prose {
  max-width: 850px;
  margin: auto;
  font-size: var(--hl-font-body);
  line-height: 1.65;
}

.hl-prose>h2 {
  margin-top: 45px;
  font-size: 2.5rem;
}

.hl-prose>h3 {
  margin-top: 35px;
}

.hl-prose a {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: var(--hl-forest);
}

.hl-prose ul,.hl-prose ol {
  padding-left: 24px;
}

.hl-prose img {
  max-width: 100%;
  height: auto;
}

.hl-prose .alignwide {
  max-width: 1100px;
}

.hl-featured-image {
  display: block;
  width: 100%;
  max-height: 550px;
  object-fit: cover;
  margin-bottom: 35px;
}

.hl-post-card {
  max-width: 850px;
  margin: 0 auto 35px;
  border-bottom: 1px solid var(--hl-border);
  padding-bottom: 30px;
}

.hl-post-card h2 {
  font-size: 2.25rem;
}

.hl-comments {
  max-width: 850px;
  margin: 45px auto;
}

.hl-comments input:not([type=checkbox]),.hl-comments textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--hl-border);
  border-radius: var(--hl-radius-control);
  background: #fff;
}

.hl-comments label {
  display: block;
}

.hl-comments input[type=submit] {
  width: auto;
  background: var(--hl-forest);
  color: #fff;
  padding: 12px 25px;
}

.hl-comments .comment-form-cookies-consent {
  display: flex;
  gap: 10px;
}

.hl-prose iframe {
  max-width: 100%;
}

.hl-prose table {
  max-width: 100%;
  display: block;
  overflow-x: auto;
}

/* Responsive: preserve the photo composition and readable planning details. */

.hl-gallery-item {
  height: 290px;
  aspect-ratio: auto;
}

.hl-gallery-item>img {
  display: block;
}

/* Grid gutters may not expand beyond the page padding during text enlargement. */
.hl-site .row.g-4 { --bs-gutter-x: min(1.5rem, var(--hl-page-gutter, 48px)); }
.hl-footer-main { --bs-gutter-x: min(3rem, var(--hl-page-gutter, 48px)); }

/* Readability and component safeguards. Font size is never reduced to make text fit. */
html { font-size: 100%; }
body.hl-site { --bs-body-font-size: var(--hl-font-body); }
h1, h2, h3, h4, h5, h6, p, li, address, summary, label, button, a {
  overflow-wrap: anywhere;
}
h5, h6 { font-size: 1.375rem; line-height: 1.35; }
button, input, select, textarea { max-width: 100%; }
:where(a, button, input, textarea, select, summary, [tabindex]):focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
  box-shadow: 0 0 0 7px #142b35;
}
:where(input, textarea, select) { accent-color: var(--hl-forest); }
.hl-prose :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.hl-comments :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: var(--hl-font-control);
  min-height: 3rem;
  border: 1px solid #65776a;
  border-radius: var(--hl-radius-control);
  padding: .75rem;
}
.hl-comments :where(input[type="checkbox"], input[type="radio"]) {
  width: 1.375rem; height: 1.375rem; vertical-align: middle; margin-right: .5rem;
}
.hl-comments .comment-form-cookies-consent label { display: inline; }
.hl-prose button, .hl-comments button, .hl-comments input[type="submit"] {
  min-height: 3rem; min-width: 3rem; font-size: var(--hl-font-control);
}
.hl-btn, .hl-btn-small, .hl-menu-toggle, .hl-close {
  min-width: 3rem; min-height: 3rem;
  border-radius: var(--hl-radius-control);
}
.hl-btn, .hl-btn-small {
  font-size: var(--hl-font-control); white-space: normal;
  padding: .875rem 1.375rem; line-height: 1.5; max-width: 100%;
}
.hl-btn > span:not(.visually-hidden) { min-width: 0; }
.hl-btn-small { padding: .625rem 1rem; }
.hl-text-link {
  font-size: var(--hl-font-control); min-height: 2.75rem;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em;
  max-width: 100%; gap: .625rem;
}
a:not(.hl-btn):hover { text-decoration: underline; text-underline-offset: .22em; }
.hl-brand:hover, .hl-gallery-item:hover, .hl-footer-brand:hover { text-decoration: none; }
.hl-btn .hl-icon, .hl-text-link .hl-icon { width: 1.375rem; height: 1.375rem; }
.hl-skip-link { border-radius: var(--hl-radius-control); font-size: 1.125rem; }
.hl-eyebrow, .hl-label, .hl-card-number, .hl-image-tag {
  font-size: var(--hl-font-small); line-height: 1.6;
}
.hl-heading-note { max-width: 25rem; }
.hl-section-heading > *, .hl-events-shell > *, .hl-signup-inner > *,
.hl-plan-facts > div > div, .hl-season-item > div, .hl-community-card > div,
.hl-membership-content, .hl-hero-content, .hl-footer-bottom > * { min-width: 0; }
.hl-prose { max-width: 52rem; }
.hl-prose :where(p, li) { line-height: 1.65; }
.hl-prose :where(figcaption, .wp-element-caption, small) { font-size: 1rem; line-height: 1.6; }
.hl-prose :where(img, video), .hl-featured-image { border-radius: var(--hl-radius); }
.hl-prose :where(pre, .wp-block-table) { max-width: 100%; overflow: auto; }
.hl-prose pre { padding: 1rem; border: 1px solid var(--hl-border); border-radius: var(--hl-radius); }
.hl-prose :where(.wp-block-columns, .wp-block-column) { min-width: 0; }
.hl-prose table { width: 100%; }
.hl-prose :where(th, td) { padding: .75rem; border: 1px solid var(--hl-border); }
.pagination .nav-links, .post-navigation .nav-links { display: flex; flex-wrap: wrap; gap: 1rem; }
.pagination .page-numbers, .post-navigation a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem; }

/* Readable navigation. Mobile stacks the ticket CTA instead of shrinking its text. */
.hl-utility { font-size: 1rem; }
.hl-utility-inner { gap: .5rem 1.5rem; flex-wrap: wrap; padding-block: .25rem; }
.hl-utility-inner > div { gap: 1.5rem; flex-wrap: wrap; }
.hl-utility a { min-height: 2.75rem; font-size: 1rem; }
.hl-utility .hl-icon { width: 1rem; height: 1rem; }
.hl-header-inner {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1.25rem; min-height: 6rem; padding-block: .875rem;
}
.hl-brand { min-width: 0; min-height: 2.75rem; }
.hl-header-logo { width: 220px; max-height: none; }
.hl-desktop-nav { margin-left: 0; min-width: 0; }
.hl-menu { justify-content: center; flex-wrap: wrap; gap: .25rem 1.125rem; }
.hl-menu li { min-width: 0; }
.hl-menu a { font-size: 1.125rem; min-height: 2.75rem; padding: .625rem 0; }
.hl-header-actions { min-width: 0; gap: .75rem; }
.hl-header-actions .hl-btn { white-space: normal; }
.hl-menu-toggle, .hl-close { border: 1px solid var(--hl-control-border); width: 3rem; height: 3rem; }
.hl-mobile-menu { --bs-offcanvas-width: min(100vw, 28rem); }
.hl-mobile-menu .offcanvas-header { gap: 1rem; padding: 1.5rem; }
.hl-mobile-menu .offcanvas-title { font-size: 1.625rem; line-height: 1.3; min-width: 0; }
.hl-mobile-menu .offcanvas-body { padding: 1.5rem; overscroll-behavior: contain; }
.hl-mobile-menu .hl-menu a { font-family: var(--hl-sans); font-size: 1.125rem; padding: 1rem 0; }
.hl-mobile-family > a { font-size: 1.125rem; min-height: 2.75rem; }
/* Never let an enlarged sticky header consume the working viewport. */
.hl-header.hl-header-unpinned { position: relative; top: auto; }

/* Photos and panels keep the first pass's layout, with gentler corners. */
.hl-hero-content { padding: 3rem .5rem 6rem 0; }
.hl-hero-description { max-width: 29rem; }
.hl-hero-actions { gap: .875rem 1.25rem; }
.hl-hero-actions .hl-text-link { font-size: 1.125rem; }
.hl-hero-location { font-size: 1rem; line-height: 1.6; flex-wrap: wrap; }
.hl-hero-location .hl-icon { width: 1.125rem; height: 1.125rem; }
.hl-hero-caption {
  font-size: 1.25rem; line-height: 1.5;
  padding: .5rem .875rem; background: #142b35f2;
  border-radius: var(--hl-radius-control); max-width: calc(100% - 3rem);
}
.hl-season-strip { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1.1fr); }
.hl-season-item { padding: 1.5rem; gap: 1rem; min-width: 0; overflow-wrap: anywhere; }
.hl-season-item .hl-label { font-size: 1rem; }
.hl-season-item strong, .hl-season-hours > div > span:last-child { font-size: 1.125rem; }
.hl-season-hours > div > span:last-child { max-width: none; }
.hl-season-item + .hl-season-item::before { height: 60%; }
.hl-season-jump > .hl-icon { min-width: 2.75rem; min-height: 2.75rem; }
.hl-presenter-inner { flex-wrap: wrap; gap: .75rem 1.5rem; }
.hl-presenter-inner > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.hl-presenter .hl-label, .hl-partner-credit { font-size: 1rem; }
.hl-sponsor-name { font-size: 1.5rem; }
.hl-experience-card { height: 100%; }
.hl-card-image { border-radius: var(--hl-radius); width: 100%; min-width: 0; }
.hl-card-body p { max-width: none; }
.hl-card-body h3 { font-size: 2.125rem; }
.hl-image-tag { max-width: calc(100% - 2rem); background: #142b35f2; padding: .5rem .75rem; }
.hl-photo-note { max-width: calc(100% - 3rem); border-radius: var(--hl-radius-control); background: #142b35f2; line-height: 1.5; }
.hl-pines-content { padding: 3rem; }
.hl-pines-content > :not(.hl-pines-decoration) { position: relative; z-index: 1; }
.hl-pines-content > p:not(.hl-eyebrow), .hl-santa-hours { max-width: none; }
.hl-santa-hours .hl-label, .hl-plan-facts .hl-label { font-size: 1rem; }
.hl-santa-hours p { font-size: 1.125rem; }
.hl-plan-card { border-color: #81958d; background: #1a343e; }
.hl-plan-facts > div { gap: 1rem; }
.hl-faq { border-top: 0; }
.hl-faq details { border: 1px solid #81958d; border-radius: var(--hl-radius); margin-bottom: .875rem; }
.hl-faq summary { border-radius: var(--hl-radius); padding: 1.125rem 1.25rem; min-height: 3rem; font-size: 1.125rem; }
.hl-faq summary:hover { background: #ffffff0b; }
.hl-faq-answer { padding: 0 1.25rem 1.25rem; }
.hl-faq-answer a[href^="tel:"] { display: inline-flex; align-items: center; min-height: 2.75rem; }
.hl-events-shell { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 4rem; }
.hl-events-announcement p { max-width: 25rem; }
.hl-event-feature .hl-label { font-size: 1rem; }
.hl-gallery-grid { grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)); gap: 1rem; }
.hl-gallery-zoom { width: 2.75rem; height: 2.75rem; background: var(--hl-ink); }
.hl-gallery-modal .modal-header { gap: 1rem; padding: 1.125rem; }
.hl-gallery-modal .modal-title { font-size: 1.125rem; line-height: 1.5; }
.hl-gallery-modal .hl-close { width: 3rem; height: 3rem; }
.hl-gallery-modal .modal-content { border-radius: var(--hl-radius); }
.hl-gallery-modal .modal-body { padding: 1rem; }
.hl-gallery-modal .modal-body > img { border-radius: var(--hl-radius-control); max-height: 65vh; }
.hl-gallery-status { padding: .75rem 1rem; font-size: 1.125rem; }
.hl-gallery-original { margin: .5rem 1.125rem 1.125rem; }
.hl-gallery-original .hl-text-link { font-size: 1.125rem; }
.hl-willows { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); padding: 3.5rem; gap: 3rem; }
.hl-willows .hl-eyebrow { font-size: 1rem; }
.hl-willows .hl-btn { font-size: 1.125rem; }
.hl-willows > div:first-of-type > p:not(.hl-eyebrow) { max-width: none; }
.hl-willows-aside { padding-left: 2rem; }
.hl-membership-card { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.hl-membership-content { padding: 2rem; }
.hl-membership-content .hl-eyebrow, .hl-community-card .hl-eyebrow { font-size: 1rem; }
.hl-membership-content .hl-text-link, .hl-community-card .hl-text-link { font-size: 1.125rem; }
.hl-community-card { padding: 1.75rem 1.5rem; gap: 1rem; }
.hl-community-card h3 { font-size: 1.875rem; line-height: 1.2; }
.hl-community-card p:not(.hl-eyebrow) { margin-bottom: .75rem; }
.hl-signup .hl-eyebrow { font-size: 1rem; }
.hl-signup .hl-btn { font-size: 1.125rem; flex-shrink: 1; }
.hl-footer { font-size: 1rem; }
.hl-footer h2 { font-size: 1.125rem; font-weight: 700; }
.hl-footer-main > .col-lg-4 > p, .hl-footer address { font-size: 1rem; }
.hl-footer :where(li a, .hl-footer-phone, .hl-text-link, .hl-social-link) {
  font-size: 1.125rem; min-height: 2.75rem; line-height: 1.6;
}
.hl-footer-phone { display: flex; align-items: center; width: max-content; max-width: 100%; }
.hl-social-link { display: inline-flex; align-items: center; padding-block: .5rem; }
.hl-footer-bottom { font-size: 1rem; flex-wrap: wrap; }
.hl-footer-bottom > div { flex-wrap: wrap; gap: .5rem 1.5rem; }
.hl-footer-bottom > div > a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.hl-breadcrumb { display: inline-flex; align-items: center; min-height: 2.75rem; font-size: 1.125rem; }

@media (max-width: 1399.98px) {
  .hl-header-inner { grid-template-columns: minmax(0, 1fr) auto; }
  .hl-desktop-nav { grid-column: 1 / -1; grid-row: 2; }
  .hl-interactive-nav .hl-desktop-nav { display: none; }
  .hl-interactive-nav .hl-menu-toggle { display: inline-flex; }
  .hl-header-actions { justify-content: flex-end; }
  .hl-hero h1 { font-size: 4.125rem; }
  .hl-membership-card { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); }
  .hl-membership-content { padding: 1.75rem; }
  .hl-willows { gap: 2rem; }
}
@media (max-width: 1199.98px) {
  .hl-section { padding: 5rem 0; }
  .hl-pines { padding-bottom: 5rem; }
  .hl-hero h1 { font-size: 3.75rem; }
  .hl-pines-content { padding: 2.25rem; }
  .hl-section-heading { gap: 2rem; }
  .hl-community > .container > .row > .col-lg-7,
  .hl-community > .container > .row > .col-lg-5 { width: 100%; }
  .hl-membership-card { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .hl-community-stack { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hl-willows-wrap { padding-bottom: 0; }
}
@media (max-width: 991.98px) {
  :root { --hl-font-body: 1.125rem; }
  .container { --hl-page-gutter: 40px; }
  .hl-hero, .hl-hero-container { min-height: 0; }
  .hl-hero-container { display: block; }
  .hl-hero-content { width: 100%; max-width: 45rem; padding: 3rem 0 2.5rem; }
  .hl-hero h1 { font-size: 4rem; }
  .hl-hero-description { max-width: 36rem; }
  .hl-hero-photo { position: relative; width: 100%; height: 440px; z-index: auto; }
  .hl-hero-photo::after { background: linear-gradient(180deg, #142b35 0%, #142b3500 22%, #142b3500 65%, #142b3540); }
  .hl-hero { display: flex; flex-direction: column; }
  .hl-hero-container { order: -1; width: 100%; }
  .hl-hero-caption { right: 1.5rem; bottom: 3rem; }
  .hl-hero-stars { left: auto; right: 2rem; top: 2rem; width: 80px; opacity: .22; }
  .hl-season-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hl-season-jump { grid-column: 1 / -1; border-top: 1px solid var(--hl-border); }
  .hl-season-jump::before { display: none; }
  .hl-section-heading { align-items: flex-start; }
  .hl-section-heading h2 { font-size: 3rem; }
  .hl-heading-note { max-width: 20rem; }
  .hl-experience .row > * { width: 100%; }
  .hl-experience-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; height: auto; }
  .hl-card-image { aspect-ratio: auto; min-height: 300px; }
  .hl-card-body { padding: 1rem 0; }
  .hl-pines-photo { min-height: 440px; }
  .hl-pines-content { padding: 2.5rem; }
  .hl-pines-content h2 { font-size: 3rem; }
  .hl-plan-facts { display: block; }
  .hl-plan-intro { max-width: 24rem; }
  .hl-events-shell { gap: 2rem; }
  .hl-events-shell h2 { font-size: 3rem; }
  .hl-events-announcement { padding: 2rem; }
  .hl-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hl-gallery-item { height: auto; aspect-ratio: 1.2; }
  .hl-willows { grid-template-columns: minmax(0, 1fr); padding: 3rem; }
  .hl-willows h2 { font-size: 3.25rem; }
  .hl-willows-aside { display: none; }
  .hl-willows-stars { opacity: .12; }
  .hl-signup-inner { flex-wrap: wrap; }
  .hl-footer-main > .col-lg-4 { display: flex; align-items: center; gap: 2rem; }
  .hl-footer-brand { flex-shrink: 0; }
  .hl-footer-bottom { display: block; }
  .hl-footer-bottom > div { margin-top: 1rem; }
}
@media (max-width: 767.98px) {
  .container { --hl-page-gutter: 36px; }
  .hl-section { padding: 3.75rem 0; }
  .hl-utility-inner { justify-content: center; text-align: center; gap: 0; padding-block: .5rem; }
  .hl-utility-inner > span { width: 100%; }
  .hl-utility-inner > div { justify-content: center; }
  .hl-utility-dot { padding: 0 .25rem; }
  .hl-section-heading { display: block; margin-bottom: 2rem; }
  .hl-section-heading h2 { font-size: 2.75rem; }
  .hl-heading-note { margin-top: 1.5rem; max-width: none; }
  .hl-hero h1 { font-size: 3.5rem; }
  .hl-hero-photo { height: 380px; }
  .hl-hero-description { max-width: none; }
  .hl-hero-content { padding: 2.75rem 0 2.25rem; }
  .hl-hero-stars { width: 64px; }
  .hl-season-strip { grid-template-columns: minmax(0, 1fr); }
  .hl-season-item { padding: 1.25rem; }
  .hl-season-item + .hl-season-item { border-top: 1px solid var(--hl-border); }
  .hl-season-item + .hl-season-item::before { display: none; }
  .hl-presenter { padding-block: 1.75rem; }
  .hl-presenter-inner { justify-content: center; }
  .hl-partner-credit { width: 100%; border: 0; padding-left: 0; text-align: center; }
  .hl-experience { padding-top: 2.5rem; }
  .hl-experience-card { display: block; margin-bottom: .75rem; }
  .hl-card-image { aspect-ratio: 1.25; min-height: 14rem; }
  .hl-card-body { padding: 1.5rem 0; }
  .hl-card-body h3 { font-size: 2.125rem; }
  .hl-pines { padding-bottom: 3.75rem; }
  .hl-pines-photo { min-height: 340px; }
  .hl-pines-content { padding: 2rem 1.5rem; }
  .hl-pines-content h2 { font-size: 2.75rem; }
  .hl-photo-note { left: 1rem; bottom: 1rem; max-width: calc(100% - 2rem); }
  .hl-plan-intro { max-width: none; margin-top: 1.5rem; }
  .hl-plan-card { padding: 1.5rem; }
  .hl-faq summary { padding: 1rem; gap: .875rem; }
  .hl-faq-answer { padding: 0 1rem 1.25rem; }
  .hl-events-shell { grid-template-columns: minmax(0, 1fr); }
  .hl-events-shell h2 { font-size: 2.75rem; }
  .hl-events-shell > div:first-child > p:not(.hl-eyebrow) { max-width: none; }
  .hl-events-announcement { padding: 2rem 1.5rem; }
  .hl-events { padding-bottom: 2.25rem; }
  .hl-gallery-section { padding-top: 1.5rem; }
  .hl-gallery-heading .hl-gallery-note { margin-top: 1.25rem; }
  .hl-gallery-grid { gap: .75rem; }
  .hl-gallery-item { aspect-ratio: 1; }
  .hl-gallery-zoom { right: .5rem; bottom: .5rem; }
  .hl-willows { padding: 2.5rem 1.5rem; }
  .hl-willows h2 { font-size: 2.75rem; }
  .hl-willows-wrap { padding-bottom: 0; }
  .hl-willows-stars { width: 70px; }
  .hl-membership-card { display: block; }
  .hl-membership-image { height: 350px; min-height: 0; }
  .hl-membership-content { padding: 2rem 1.5rem; }
  .hl-membership-content h3 { font-size: 2.375rem; }
  .hl-community-stack { grid-template-columns: minmax(0, 1fr); }
  .hl-community-card { padding: 1.5rem; }
  .hl-community-card h3 { font-size: 1.875rem; }
  .hl-signup-inner > div { align-items: flex-start; gap: 1rem; }
  .hl-signup .hl-btn { width: 100%; }
  .hl-footer { padding-top: 3rem; }
  .hl-footer-main { --bs-gutter-x: min(1.5rem, var(--hl-page-gutter)); padding-bottom: 2.5rem; }
  .hl-footer-brand, .hl-footer-brand > img { max-width: 125px; }
  .hl-footer-bottom { padding-block: 1.5rem; }
  .hl-interior-hero { padding: 3rem 0; }
  .hl-interior-hero h1 { font-size: 3rem; }
  .hl-content-wrap { padding-top: 2.5rem; padding-bottom: 3rem; }
  .hl-prose > h2 { font-size: 2.25rem; }
  .hl-prose > h3 { font-size: 1.875rem; }
  .hl-post-card h2 { font-size: 2.125rem; }
  .admin-bar .hl-header { top: 46px; }
}
@media (max-width: 599.98px) {
  .hl-header-inner { gap: .75rem 1rem; padding-block: 1rem; }
  .hl-header-logo { width: 210px; }
  .hl-header-actions { display: contents; }
  .hl-header-actions .hl-menu-toggle { grid-column: 2; grid-row: 1; }
  .hl-header-actions .hl-btn { grid-column: 1 / -1; grid-row: 2; width: 100%; }
  html:not(.hl-interactive-nav) .hl-header-actions .hl-btn { grid-row: 3; }
  .hl-hero h1 { font-size: 3rem; }
  .hl-hero-photo { height: 340px; }
  .hl-hero-caption { right: 1rem; bottom: 3rem; font-size: 1.125rem; max-width: calc(100% - 2rem); }
  .hl-hero .hl-eyebrow { padding-right: 1.5rem; }
  .hl-hero-actions { align-items: stretch; }
  .hl-hero-actions > .hl-btn { width: 100%; }
  .hl-hero-stars { opacity: .12; }
  .hl-photo-note { font-size: 1.125rem; }
  .hl-community-card { display: block; }
  .hl-community-icon { margin-bottom: 1rem; }
  .hl-footer-main > .col-6 { width: 100%; }
  .hl-footer-main > .col-lg-4 { flex-wrap: wrap; gap: 1rem; }
  .hl-footer-brand { margin-bottom: 0; }
}
@media (max-width: 360px) {
  .container { --hl-page-gutter: 32px; }
  .hl-header-logo { width: 185px; }
  .hl-hero h1 { font-size: 2.75rem; }
  .hl-section-heading h2, .hl-pines-content h2, .hl-events-shell h2, .hl-willows h2 { font-size: 2.5rem; }
}
@media (max-width: 600px), (max-height: 500px) {
  /* The admin toolbar and keyboard focus must not be trapped behind a tall sticky header. */
  .hl-header, .admin-bar .hl-header { position: relative; top: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .hl-experience-card:hover .hl-card-image > img, .hl-gallery-item:hover > img,
  .hl-btn:hover, .hl-text-link:hover .hl-icon { transform: none; }
}
@media (forced-colors: active) {
  :where(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline: 3px solid Highlight; box-shadow: none; }
  .hl-btn, .hl-menu-toggle, .hl-close, .hl-faq details, .hl-plan-card { border: 1px solid ButtonText; }
  .hl-image-tag, .hl-photo-note, .hl-hero-caption, .hl-gallery-zoom { background: Canvas; color: CanvasText; border: 1px solid CanvasText; }
  .hl-brand, .hl-footer-brand { background: #142b35; forced-color-adjust: none; }
  .hl-pines-decoration, .hl-hero-stars, .hl-willows-stars { display: none; }
}
@media print {
  .hl-utility, .hl-header, .hl-mobile-menu, .hl-gallery-modal, .hl-footer, .hl-gallery-zoom { display: none !important; }
  .hl-section { padding: 1.5rem 0; }
  .hl-hero, .hl-plan, .hl-willows { background: #fff !important; color: #000 !important; min-height: 0; }
  .hl-hero-content { width: 100%; padding: 1.5rem 0; }
  .hl-hero-photo, .hl-hero-stars, .hl-willows-stars { display: none; }
  .hl-hero-accent, .hl-hero-description, .hl-eyebrow, .hl-hero-location,
  .hl-faq-answer, .hl-plan-intro, .hl-plan-facts p, .hl-willows h2, .hl-willows p { color: #000 !important; }
  .hl-season-wrap { margin: 0; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 1rem; overflow-wrap: anywhere; }
  img { break-inside: avoid; }
}

/* v0.4.0: approved presenting-sponsor artwork; never recolor, stretch, or round the logo. */
.hl-presenter { padding-block: 2rem; }
.hl-presenter-inner { gap: 1rem 2rem; }
.hl-sponsor-mark { display: inline-flex; align-items: center; justify-content: center; min-width: 0; max-width: 100%; }
.hl-sponsor-mark--light, .hl-sponsor-mark--dark { width: 21rem; }
.hl-sponsor-mark--panel { width: 25rem; }
.hl-sponsor-mark--stacked { width: 31rem; }
.hl-sponsor-mark .hl-presenting-logo {
  display: block; width: 100%; height: auto; max-width: 100%; max-height: none;
  object-fit: contain; aspect-ratio: auto; border: 0; border-radius: 0;
  box-shadow: none; filter: none; transform: none; opacity: 1;
}
.hl-sponsor-mark--backed { background: var(--hl-cream); padding: 1rem; border-radius: var(--hl-radius); }
.hl-footer-presenter {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 1.25rem 2.25rem; border-top: 1px solid #537078;
  padding-block: 2.25rem; color: var(--hl-cream);
}
.hl-footer-presenter .hl-label { font-size: 1rem; color: var(--hl-gold); margin: 0; }
.hl-footer-presenter .hl-sponsor-name { color: var(--hl-cream); }
.hl-presenter .hl-partner-credit { flex-basis: 100%; text-align: center; }
@media (max-width: 575.98px) {
  .hl-presenter-inner, .hl-footer-presenter { flex-direction: column; gap: 1rem; }
  .hl-sponsor-mark--light, .hl-sponsor-mark--dark { width: min(21rem,100%); }
}
@media (forced-colors: active) {
  .hl-sponsor-mark--light, .hl-sponsor-mark--panel, .hl-sponsor-mark--backed { background: #fff; forced-color-adjust: none; }
  .hl-sponsor-mark--dark:not(.hl-sponsor-mark--backed) { background: #10262f; forced-color-adjust: none; }
}
