/* Desktop-only layout. New filename intentionally invalidates cached styles. */
@media (min-width: 981px) {
  html body #main .hero {
    min-height: 0 !important;
    padding-top: 24px !important;
    padding-bottom: 28px !important;
    align-items: start !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr) !important;
    column-gap: clamp(24px, 3vw, 48px) !important;
  }
  html body #main .hero .hero-copy {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    align-self: start !important;
    min-width: 0;
    padding-top: 0 !important;
  }
  html body #main .hero .hero-copy > * { order: 3; }
  html body #main .hero .hero-copy > .eyebrow {
    order: 0;
    align-self: flex-start;
    margin: 0 0 12px !important;
  }
  html body #main .hero .hero-copy > h1 {
    order: 1;
    font-size: clamp(32px, 3.25vw, 46px) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
    margin: 0 0 18px !important;
    max-width: none !important;
    overflow-wrap: break-word;
  }
  html body #main .hero .hero-copy > .hero-actions {
    order: 2;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    width: 100% !important;
    position: static !important;
  }
  html body #main .hero .hero-actions > a.button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    gap: 7px !important;
  }
  html body #main .hero .hero-actions > a.button svg {
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0;
  }
  html body #main .hero .hero-copy > p:not(.km-hours-inline):not(.eyebrow) {
    font-size: 15px !important;
    line-height: 1.45 !important;
    margin: 0 0 14px !important;
    max-width: none !important;
  }
  html body #main .hero .hero-copy > .km-hours-inline {
    order: 4;
    font-size: 12px !important;
    line-height: 1.45 !important;
    margin: 0 !important;
  }
  html body #main .hero > .hero-photo {
    min-height: 0 !important;
    height: clamp(260px, 48vh, 390px) !important;
    aspect-ratio: auto !important;
    align-self: start !important;
  }
  html body #main .hero > .hero-photo > img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}
@media (min-width: 981px) and (max-height: 650px) {
  html body #main .hero { padding-top: 18px !important; padding-bottom: 22px !important; }
  html body #main .hero .hero-copy > h1 { font-size: 32px !important; margin-bottom: 14px !important; }
  html body #main .hero .hero-copy > .hero-actions { margin-bottom: 16px !important; }
  html body #main .hero > .hero-photo { height: 280px !important; }
}

/* Hours in two columns on desktop; compact, consistent hero photographs. */
.km-hours-workshop{display:contents}
@media(min-width:981px){
 html body #main .hero .hero-copy > .km-hours-inline.km-hours-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px!important;align-items:start!important;width:100%!important}
 html body #main .hero .km-hours-workshop{display:block;min-width:0;text-align:left;line-height:1.5}
 html body #main .hero .km-hours-workshop > span{white-space:normal}
 html body #main .hero .km-hours-dot{display:inline-block;vertical-align:middle;margin-right:6px}
 html body #main .hero .km-onsite-hours{display:block!important;flex-basis:auto!important;width:auto!important;min-width:0;margin:0!important;text-align:right;line-height:1.5!important}
 html body #main .hero > .hero-photo{height:clamp(240px,34vh,320px)!important;min-height:0!important;max-height:320px!important;width:100%!important;overflow:hidden!important;border-radius:22px!important;position:relative!important}
 html body #main .hero > .hero-photo > img{display:block!important;width:100%!important;height:100%!important;min-height:0!important;object-fit:cover!important;object-position:center!important;border-radius:inherit}
 html body #main .hero > .hero-photo > .photo-caption{position:absolute!important;left:0!important;right:0!important;bottom:0!important;padding:18px 20px!important;background:linear-gradient(transparent,rgba(8,22,40,.82))!important;color:#fff!important}
}

/* Compact schedules, aligned from the left with matching green markers. */
html body #main .hero .km-hours-dot,
html body #main .hero .km-onsite-hours::before{display:inline-block!important;width:8px!important;height:8px!important;min-width:8px!important;border-radius:50%!important;background:#59d6a1!important;box-shadow:0 0 0 4px rgba(89,214,161,.13)!important;margin:0 7px 0 0!important;vertical-align:middle!important}
html body #main .hero .km-onsite-hours::before{content:""}
@media(min-width:981px){
 html body #main .hero .hero-copy > .km-hours-inline.km-hours-split{display:flex!important;flex-wrap:wrap!important;justify-content:flex-start!important;align-items:baseline!important;gap:8px 24px!important}
 html body #main .hero .km-hours-workshop{flex:0 1 auto!important;text-align:left!important;line-height:1.5!important}
 html body #main .hero .km-onsite-hours{flex:0 1 auto!important;width:auto!important;text-align:left!important;line-height:1.5!important}
}

/* Let the text column determine the desktop row height; photo fills that row. */
@media(min-width:981px){
 html body #main .hero > .hero-photo{align-self:stretch!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;margin-top:0!important;margin-bottom:0!important;position:relative!important}
 html body #main .hero > .hero-photo > img{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;object-fit:cover!important;object-position:center!important}
}

/* Mobile schedules: identical marker column and text inset, including wraps. */
@media(max-width:980px){
 html body #main .hero .hero-copy > .km-hours-inline.km-hours-split{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:6px!important}
 html body #main .hero .km-hours-split > .km-hours-workshop,
 html body #main .hero .km-hours-split > .km-onsite-hours{display:block!important;position:relative!important;box-sizing:border-box!important;width:100%!important;flex-basis:auto!important;margin:0!important;padding:0 0 0 20px!important;text-align:left!important;line-height:1.6!important;min-width:0!important}
 html body #main .hero .km-hours-split > .km-hours-workshop > .km-hours-dot,
 html body #main .hero .km-hours-split > .km-onsite-hours::before{position:absolute!important;left:0!important;top:calc(.8em - 4px)!important;margin:0!important}
 html body #main .hero .km-hours-workshop > span{white-space:normal!important}
}
