/* Hounderlust brand theme — tokens, layout, components, WooCommerce. */
:root{
  --hl-forest:#234536; --hl-evergreen:#18382D; --hl-cream:#F5F0E6; --hl-white:#FBFAF6; --hl-sand:#DCCCB2;
  --hl-tan:#B9956B; --hl-tan-deep:#8A6640; --hl-moss:#5E6B5A; --hl-charcoal:#292D29; --hl-forest-mid:#2C4A3B;
  --hl-serif:"Fraunces", Georgia, "Times New Roman", serif;
  --hl-sans:"Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --hl-wrap:1280px; --hl-gutter:32px; --hl-radius:4px;
  /* Kadence palette -> brand, so anything Kadence still draws (notices, inputs) matches */
  --global-palette1:#234536; --global-palette2:#18382D; --global-palette3:#292D29; --global-palette4:#292D29;
  --global-palette5:#3B403B; --global-palette6:#5E6B5A; --global-palette7:#DCCCB2; --global-palette8:#FBFAF6; --global-palette9:#F5F0E6;
  --global-body-font-family:var(--hl-sans); --global-heading-font-family:var(--hl-serif);
}
@media (max-width:760px){ :root{ --hl-gutter:20px; } }

/* ---------- base ---------- */
html{ scroll-behavior:smooth; }
body.hl{ background:var(--hl-cream); color:var(--hl-charcoal); font-family:var(--hl-sans); font-size:17px; line-height:1.6; overflow-x:clip; -webkit-font-smoothing:antialiased; }
body.hl h1, body.hl h2, body.hl h3, body.hl h4{ font-family:var(--hl-serif); font-weight:400; color:var(--hl-forest); letter-spacing:-0.015em; line-height:1.1; font-variation-settings:"SOFT" 50, "opsz" 96; }
body.hl a{ color:var(--hl-forest); text-underline-offset:3px; }
body.hl a:hover{ color:var(--hl-evergreen); }
body.hl :focus-visible{ outline:2px solid var(--hl-tan-deep); outline-offset:3px; }
.hl-wrap{ max-width:var(--hl-wrap); margin:0 auto; padding-left:var(--hl-gutter); padding-right:var(--hl-gutter); box-sizing:border-box; }
.hl-bleed{ width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.hl-display{ font-family:var(--hl-serif); font-variation-settings:"SOFT" 50, "opsz" 144; font-weight:400; letter-spacing:-0.022em; }
.hl-h2{ font-size:clamp(34px, 4.2vw, 52px); margin:0; }
.hl-eyebrow{ display:inline-block; font-family:var(--hl-sans); font-size:12.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--hl-tan-deep); text-decoration:none; }
.hl-eyebrow--tan{ color:var(--hl-tan); }
.hl-link-arrow{ font-weight:600; font-size:15px; text-decoration:none; white-space:nowrap; }
.hl-link-arrow::after{ content:" →"; }
.screen-reader-text{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.hl-hp{ position:absolute!important; left:-9999px; }

/* buttons */
.hl-btn, body.hl .hl-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:50px; padding:0 28px; border-radius:2px; border:1.5px solid transparent;
  font-family:var(--hl-sans); font-size:14px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:background .15s, color .15s, border-color .15s; line-height:1; box-shadow:none; }
.hl-btn--solid{ background:var(--hl-forest); color:var(--hl-cream)!important; }
.hl-btn--solid:hover{ background:var(--hl-forest); }
.hl-btn--cream{ background:var(--hl-cream); color:var(--hl-evergreen)!important; }
.hl-btn--cream:hover{ background:var(--hl-cream); }
body.hl .hl-btn--ghost-light{ border-color:var(--hl-cream); color:var(--hl-cream)!important; background:transparent; }
.hl-btn--ghost-light:hover{ background:transparent; }
body.hl .hl-btn--outline{ border-color:var(--hl-forest); color:var(--hl-forest)!important; background:transparent; }
body.hl .hl-btn--outline:hover{ color:var(--hl-cream)!important; }
.hl-btn--tan{ background:var(--hl-tan); color:var(--hl-evergreen)!important; }
.hl-btn--tan:hover{ background:var(--hl-tan); }
.hl-btn--sm{ min-height:44px; padding:0 16px; font-size:12.5px; }
.hl-btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* photos (real or placeholder) */
.hl-photo{ display:block; width:100%; height:100%; object-fit:cover; }
/* focal points for the illustrated scenes, so every crop (tall menu cards, wide collection headers) keeps the dog in view */
.hl-photo--road-trip{ object-position:55% 70%; } .hl-photo--trail-walk{ object-position:62% 34%; } .hl-photo--camp{ object-position:94% 70%; }
.hl-photo--kits{ object-position:86% 34%; }
/* real photos: keep the dog in frame (hero copy sits bottom-left, so the dog lives on the right) */
.hl-photo--hero{ object-position:66% 55%; }
/* with a real photo: darker on the left where the copy sits, and a narrower headline so it clears the dog */
.hl-hero__media::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg, rgba(18,43,34,.6) 0%, rgba(18,43,34,.32) 38%, rgba(18,43,34,0) 62%); }
@media (min-width:761px){ .hl-hero .hl-hero__title{ max-width:620px; font-size:clamp(46px, 5.6vw, 80px); } }
.hl-hero__kicker{ text-shadow:0 1px 10px rgba(18,43,34,.55); }
@media (max-width:760px){ .hl-hero__media::before{ background:rgba(18,43,34,.38); } } .hl-photo--notes-1{ object-position:50% 58%; } .hl-photo--notes-2{ object-position:58% 70%; } .hl-photo--notes-3{ object-position:52% 60%; } .hl-photo--story{ object-position:92% 50%; }
.hl-photo--ph{ position:relative; overflow:hidden; }
.hl-photo--ph svg{ position:absolute; inset:0; width:100%; height:100%; }

/* ---------- hide Kadence chrome we replace ---------- */
body.hl #masthead, body.hl #colophon, body.hl #mobile-drawer, body.hl .site-footer-wrap{ display:none!important; }
body.hl .site, body.hl #wrapper, body.hl #inner-wrap, body.hl .content-bg, body.hl .site-main{ background:transparent; }
body.hl .content-bg{ box-shadow:none; }
body.hl.content-style-boxed .content-bg:not(.loop-entry){ padding:0; }
body.hl-home .entry-hero, body.hl-home .entry-header, body.tax-product_cat .entry-hero, body.post-type-archive-product .entry-hero{ display:none; }
body.hl-home .content-area{ margin-top:0; margin-bottom:0; }
body.hl-home .site-container, body.hl-home .content-container{ max-width:none; padding:0; }
body.hl-home .entry-content > *{ margin-top:0; margin-bottom:0; }
body.tax-product_cat .content-area, body.post-type-archive-product .content-area{ margin-top:0; }

/* ---------- announcement + header ---------- */
.hl-announce{ background:var(--hl-evergreen); color:var(--hl-cream); font-size:13px; letter-spacing:.03em; text-align:center; padding:9px 16px; }
.hl-header{ position:sticky; top:0; z-index:50; background:var(--hl-cream); border-bottom:1px solid var(--hl-sand); }
.admin-bar .hl-header{ top:32px; }
@media (max-width:782px){ .admin-bar .hl-header{ top:0; position:relative; } }
.hl-header__row{ display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:76px; }
.hl-logo{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; }
.hl-wordmark{ font-family:var(--hl-serif); font-variation-settings:"SOFT" 50, "opsz" 144; font-weight:500; font-size:29px; letter-spacing:-0.025em; color:var(--hl-forest); line-height:1; }
.hl-logo--dark .hl-wordmark{ color:var(--hl-cream); }
.hl-nav{ display:flex; align-items:center; gap:28px; font-size:15px; font-weight:500; }
.hl-nav a, .hl-nav__shop{ color:var(--hl-charcoal); text-decoration:none; padding:6px 0; border-bottom:2px solid transparent; }
.hl-nav a:hover, .hl-nav a[aria-current="page"]{ color:var(--hl-forest); border-bottom-color:var(--hl-tan); }
.hl-nav__shop{ display:inline-flex; align-items:center; gap:4px; background:none; border-top:0; border-left:0; border-right:0; font:inherit; cursor:pointer; }
.hl-nav__shop .hl-ico{ width:14px; height:14px; transition:transform .15s; }
.hl-nav__shop[aria-expanded="true"]{ color:var(--hl-forest); border-bottom-color:var(--hl-tan); }
.hl-nav__shop[aria-expanded="true"] .hl-ico{ transform:rotate(180deg); }
.hl-header__tools{ display:flex; align-items:center; gap:4px; }
.hl-icon-btn{ position:relative; width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:0; background:transparent; color:var(--hl-charcoal)!important; cursor:pointer; border-radius:2px; padding:0; }
.hl-icon-btn:hover{ background:rgba(35,69,54,.07); }
.hl-cart-count{ position:absolute; top:4px; right:2px; min-width:18px; height:18px; padding:0 4px; box-sizing:border-box; border-radius:9px; background:var(--hl-forest); color:var(--hl-cream); font-size:11px; font-weight:700; line-height:18px; text-align:center; }
.hl-only-mobile{ display:none!important; }
@media (max-width:1024px){
  .hl-only-desktop{ display:none!important; } .hl-only-mobile{ display:inline-flex!important; }
  .hl-header__row{ min-height:60px; gap:8px; } .hl-header__row .hl-logo .hl-mark{ width:30px; height:30px; } .hl-wordmark{ font-size:23px; }
}

/* search + mega */
.hl-search-panel{ border-top:1px solid var(--hl-sand); padding:18px 0; background:var(--hl-cream); }
.hl-search-form{ display:flex; gap:10px; }
.hl-search-form input[type=search]{ flex:1; min-height:50px; padding:0 16px; border:1.5px solid var(--hl-sand); border-radius:2px; background:var(--hl-white); font:inherit; font-size:16px; color:var(--hl-charcoal); }
.hl-mega{ position:absolute; left:0; right:0; top:100%; background:var(--hl-cream); border-bottom:1px solid var(--hl-sand); box-shadow:0 18px 30px rgba(24,56,45,.16); }
.hl-mega__grid{ display:grid; grid-template-columns:1.1fr repeat(4, 1fr); gap:20px; padding-top:28px; padding-bottom:32px; }
.hl-mega__list{ display:flex; flex-direction:column; gap:10px; font-size:15px; }
.hl-mega__list a{ text-decoration:none; color:var(--hl-charcoal); }
.hl-mega__all{ font-family:var(--hl-serif); font-size:22px!important; color:var(--hl-forest)!important; }
.hl-mega__card{ display:flex; flex-direction:column; gap:10px; text-decoration:none; }
.hl-mega__img{ display:block; aspect-ratio:4/5; border-radius:var(--hl-radius); overflow:hidden; }
.hl-mega__name{ font-family:var(--hl-serif); font-size:20px; color:var(--hl-charcoal); }
.hl-mega__card:hover .hl-mega__name{ color:var(--hl-forest); text-decoration:underline; }

/* mobile drawer */
.hl-drawer{ position:fixed; inset:0; z-index:100; background:var(--hl-cream); display:flex; flex-direction:column; overflow-y:auto; }
.hl-drawer[hidden]{ display:none; }
.hl-drawer__top{ display:flex; align-items:center; justify-content:space-between; padding:8px 8px 8px 20px; border-bottom:1px solid var(--hl-sand); }
.hl-drawer__top .hl-wordmark{ font-size:23px; }
.hl-drawer__search{ padding:16px 20px 4px; }
.hl-drawer__search .hl-search-form .hl-btn{ display:none; }
.hl-drawer__nav{ padding:8px 20px; display:flex; flex-direction:column; }
.hl-drawer__col{ display:flex; align-items:center; gap:14px; min-height:78px; border-bottom:1px solid var(--hl-sand); text-decoration:none; }
.hl-drawer__thumb{ width:56px; height:56px; flex:none; border-radius:2px; overflow:hidden; }
.hl-drawer__name{ display:block; font-family:var(--hl-serif); font-size:24px; color:var(--hl-forest); line-height:1.15; }
.hl-drawer__line{ display:block; font-size:13px; color:var(--hl-moss); }
.hl-drawer__link{ display:flex; align-items:center; min-height:56px; border-bottom:1px solid var(--hl-sand); font-weight:600; color:var(--hl-charcoal)!important; text-decoration:none; }
.hl-drawer__foot{ margin-top:auto; background:var(--hl-evergreen); color:var(--hl-sand); padding:20px; display:flex; flex-wrap:wrap; gap:12px 20px; font-size:14px; }
.hl-drawer__foot a{ color:var(--hl-cream)!important; }
.hl-drawer__foot span{ flex-basis:100%; }
body.hl-locked{ overflow:hidden; }

/* ---------- homepage ---------- */
.hl-hero{ position:relative; min-height:min(84vh, 720px); display:flex; align-items:flex-end; background:var(--hl-forest-mid); overflow:hidden; }
.hl-hero__media{ position:absolute; inset:0; }
.hl-hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(18,43,34,.72) 0%, rgba(18,43,34,.25) 48%, rgba(18,43,34,0) 75%); }
.hl-hero__copy{ position:relative; width:100%; padding-top:120px; padding-bottom:84px; display:flex; flex-direction:column; gap:22px; }
.hl-hero__title{ margin:0; max-width:780px; font-size:clamp(46px, 7vw, 92px); line-height:.98; color:var(--hl-cream)!important; }
.hl-hero__lead{ margin:0; max-width:540px; font-size:19px; line-height:1.55; color:var(--hl-cream); }
@media (max-width:760px){ .hl-hero{ min-height:600px; } .hl-hero__copy{ padding-bottom:40px; } .hl-hero__copy .hl-btn{ width:100%; } .hl-hero__lead{ font-size:16px; } }

.hl-section{ padding-top:88px; padding-bottom:16px; }
.hl-section__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:34px; }
.hl-section__head > div{ display:flex; flex-direction:column; gap:10px; }
@media (max-width:760px){ .hl-section{ padding-top:56px; } }

.hl-missions{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
.hl-mission{ position:relative; display:flex; align-items:flex-end; min-height:460px; border-radius:var(--hl-radius); overflow:hidden; text-decoration:none; }
.hl-mission .hl-photo{ position:absolute; inset:0; transition:transform .5s ease; }
.hl-mission:hover .hl-photo{ transform:scale(1.03); }
.hl-mission::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(18,43,34,.7), rgba(18,43,34,0) 55%); }
.hl-mission__copy{ position:relative; z-index:1; padding:26px; display:flex; flex-direction:column; gap:6px; }
.hl-mission__name{ font-family:var(--hl-serif); font-size:38px; color:var(--hl-cream); line-height:1.05; }
.hl-mission__line{ color:var(--hl-cream); font-size:15px; }
@media (max-width:900px){ .hl-missions{ grid-template-columns:1fr; } .hl-mission{ min-height:200px; } .hl-mission__name{ font-size:28px; } }

/* product grid + cards */
body.hl ul.products, .hl-grid{ display:grid!important; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:40px 24px; list-style:none; margin:0; padding:0; }
.hl-grid--4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
body.hl ul.products::before, body.hl ul.products::after{ display:none; }
body.hl ul.products li.product, .hl-card{ width:auto!important; margin:0!important; float:none!important; padding:0; background:transparent; box-shadow:none; display:flex; flex-direction:column; gap:8px; text-align:left; }
.hl-card__media{ display:block; aspect-ratio:1/1; background:var(--hl-white); border-radius:var(--hl-radius); overflow:hidden; margin-bottom:6px; }
.hl-card__media img{ width:100%; height:100%; object-fit:contain; transition:transform .4s ease; }
.hl-card__frame:hover .hl-card__media img{ transform:scale(1.03); }
.hl-card__title{ margin:0!important; font-family:var(--hl-serif)!important; font-size:22px!important; line-height:1.2!important; color:var(--hl-charcoal)!important; padding:0!important; }
.hl-card__title a{ color:inherit!important; text-decoration:none; }
.hl-card__title a:hover{ text-decoration:underline; }
.hl-card__sub{ margin:0; font-size:15px; line-height:1.45; color:var(--hl-moss); }
.hl-card__dots{ display:flex; gap:6px; }
.hl-card__dots span{ width:11px; height:11px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(41,45,41,.18); }
.hl-card__foot{ margin-top:auto; padding-top:4px; display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.hl-card__price{ font-weight:700; font-size:17px; color:var(--hl-charcoal); }
.hl-card__price .hl-from{ font-weight:500; color:var(--hl-moss); }
.hl-card .added_to_cart{ font-size:13px; font-weight:600; }
@media (max-width:1100px){ .hl-grid--4{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:600px){
  body.hl ul.products, .hl-grid, .hl-grid--4{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:26px 12px; }
  .hl-card__title{ font-size:17px!important; } .hl-card__sub{ display:none; } .hl-card__price{ font-size:15px; }
}

/* story */
.hl-story{ background:var(--hl-evergreen); color:var(--hl-sand); margin-top:96px; }
.hl-story__row{ display:flex; flex-wrap:wrap; align-items:stretch; }
.hl-story__media{ flex:1 1 480px; min-height:540px; position:relative; }
.hl-story__media .hl-photo{ position:absolute; inset:0; }
.hl-story__copy{ flex:1 1 420px; padding:88px 0 88px 72px; display:flex; flex-direction:column; justify-content:center; gap:20px; }
.hl-story__copy h2{ color:var(--hl-cream)!important; }
.hl-story__copy p{ margin:0; font-size:18px; line-height:1.65; }
.hl-signoff{ font-family:var(--hl-serif); font-style:italic; font-size:24px!important; color:var(--hl-tan); }
.hl-story .hl-btn{ align-self:flex-start; }
@media (max-width:900px){ .hl-story .hl-wrap{ padding:0; } .hl-story__media{ min-height:280px; } .hl-story__copy{ padding:40px var(--hl-gutter) 52px; } }

/* kits */
.hl-kits{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
.hl-kit{ background:var(--hl-white); border:1px solid var(--hl-sand); border-radius:var(--hl-radius); padding:26px; display:flex; flex-direction:column; gap:14px; }
.hl-kit__thumbs{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; }
.hl-kit__thumb{ aspect-ratio:1/1; background:var(--hl-cream); border-radius:2px; overflow:hidden; display:block; }
.hl-kit__thumb img{ width:100%; height:100%; object-fit:contain; }
.hl-kit h3{ margin:0; font-size:28px; }
.hl-kit h3 a{ text-decoration:none; }
.hl-kit p{ margin:0; font-size:15px; color:var(--hl-moss); }
.hl-kit__foot{ margin-top:auto; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.hl-kit__save{ font-weight:500; font-size:14px; color:var(--hl-moss); }
@media (max-width:900px){ .hl-kits{ grid-template-columns:1fr; } }

/* field notes */
.hl-notes{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:24px; }
.hl-note{ display:flex; flex-direction:column; gap:12px; }
.hl-note__img{ aspect-ratio:4/3; height:auto; border-radius:var(--hl-radius); }
.hl-note h3{ margin:0; font-size:24px; color:var(--hl-charcoal)!important; }
.hl-note p{ margin:0; font-size:15.5px; color:var(--hl-charcoal); }
@media (max-width:900px){ .hl-notes{ grid-template-columns:1fr; } }

/* reassurance */
.hl-reassure{ background:var(--hl-sand); margin-top:88px; }
.hl-reassure__grid{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:24px; padding-top:36px; padding-bottom:36px; }
.hl-reassure__grid > div{ display:flex; gap:14px; align-items:flex-start; }
.hl-reassure .hl-ico{ flex:none; width:28px; height:28px; color:var(--hl-forest); }
.hl-reassure p{ margin:0; font-size:14px; line-height:1.45; }
.hl-reassure strong{ display:block; font-size:15px; }
@media (max-width:900px){ .hl-reassure__grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px 14px; } .hl-reassure .hl-ico{ display:none; } }

/* newsletter + footer */
.hl-newsletter{ background:var(--hl-forest); color:var(--hl-cream); }
.hl-newsletter__row{ display:flex; flex-wrap:wrap; gap:40px; align-items:center; justify-content:space-between; padding-top:84px; padding-bottom:84px; }
.hl-newsletter__copy{ flex:1 1 420px; }
.hl-newsletter__copy h2{ margin:0 0 12px; font-size:clamp(32px, 4vw, 52px); color:var(--hl-cream)!important; }
.hl-newsletter__copy p{ margin:0; color:var(--hl-sand); font-size:17px; }
.hl-newsletter__form{ flex:1 1 420px; display:flex; flex-direction:column; gap:10px; }
.hl-newsletter__form label{ font-size:14px; font-weight:600; }
.hl-newsletter__fields{ display:flex; gap:10px; flex-wrap:wrap; }
.hl-newsletter__fields input[type=email]{ flex:1 1 240px; min-height:52px; padding:0 16px; border:1.5px solid var(--hl-sand); background:var(--hl-cream); color:var(--hl-charcoal); border-radius:2px; font:inherit; font-size:16px; }
.hl-newsletter__fine, .hl-newsletter__msg{ margin:0; font-size:13px; color:var(--hl-sand); }
.hl-newsletter__msg{ font-size:15px; color:var(--hl-cream); font-weight:600; }
.hl-newsletter a{ color:var(--hl-cream)!important; }
@media (max-width:760px){ .hl-newsletter__row{ padding-top:48px; padding-bottom:48px; } .hl-newsletter__fields .hl-btn{ width:100%; } }
.hl-footer{ background:var(--hl-evergreen); color:var(--hl-sand); }
.hl-footer .hl-wrap{ padding-top:72px; padding-bottom:28px; display:flex; flex-direction:column; gap:48px; }
.hl-footer__grid{ display:grid; grid-template-columns:1.4fr repeat(3, 1fr); gap:32px; }
.hl-footer__line{ font-family:var(--hl-serif); font-style:italic; font-size:19px; color:var(--hl-tan); margin:14px 0 0; }
.hl-footer__col{ display:flex; flex-direction:column; gap:10px; font-size:15px; }
.hl-footer__col h2{ font-family:var(--hl-sans)!important; font-size:13px!important; font-weight:700!important; letter-spacing:.12em; text-transform:uppercase; color:var(--hl-cream)!important; margin:0 0 4px; }
.hl-footer__col a{ color:var(--hl-sand)!important; text-decoration:none; }
.hl-footer__col a:hover{ color:var(--hl-cream)!important; text-decoration:underline; }
.hl-footer__base{ border-top:1px solid var(--hl-forest-mid); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; }
.hl-footer__base a{ color:var(--hl-tan)!important; }
@media (max-width:900px){ .hl-footer__grid{ grid-template-columns:1fr 1fr; } .hl-footer__brand{ grid-column:1 / -1; } .hl-footer .hl-wrap{ padding-top:48px; } }

/* ---------- collection pages ---------- */
.hl-colhero{ position:relative; min-height:380px; display:flex; align-items:flex-end; background:var(--hl-forest-mid); overflow:hidden; margin-bottom:28px; }
.hl-colhero__media{ position:absolute; inset:0; }
.hl-colhero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(18,43,34,.75), rgba(18,43,34,.1) 70%); }
.hl-colhero__copy{ position:relative; width:100%; padding-top:90px; padding-bottom:48px; display:flex; flex-direction:column; gap:12px; }
.hl-colhero__title{ margin:0; font-size:clamp(44px, 6vw, 76px); color:var(--hl-cream)!important; line-height:1; }
.hl-colhero__line{ margin:0; max-width:620px; color:var(--hl-cream); font-size:18px; line-height:1.55; }
.hl-crumbs{ font-size:13px; color:var(--hl-sand); }
.hl-crumbs a{ color:var(--hl-sand)!important; }
@media (max-width:760px){ .hl-colhero{ min-height:300px; } .hl-colhero__line{ font-size:15px; } }
.hl-toolbar{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding-bottom:22px; margin-bottom:34px; border-bottom:1px solid var(--hl-sand); }
.hl-chips{ display:flex; gap:10px; flex-wrap:wrap; }
.hl-chip{ display:inline-flex; align-items:center; min-height:42px; padding:0 18px; border-radius:999px; border:1.5px solid var(--hl-sand); color:var(--hl-charcoal)!important; text-decoration:none; font-size:14px; font-weight:600; }
.hl-chip:hover{ border-color:var(--hl-forest); }
.hl-chip[aria-current="page"]{ background:var(--hl-forest); border-color:var(--hl-forest); color:var(--hl-cream)!important; }
body.hl .woocommerce-ordering{ margin:0; }
body.hl .woocommerce-ordering select, body.hl .variations select{ min-height:46px; padding:0 40px 0 14px; border:1.5px solid var(--hl-sand); border-radius:2px; background-color:var(--hl-white); font-family:var(--hl-sans); font-size:15px; color:var(--hl-charcoal); }
body.hl .kadence-shop-top-row, body.hl .kadence-product-toggle-container, body.hl .woocommerce-result-count{ display:none; }
@media (max-width:760px){ .hl-chips{ flex-wrap:nowrap; overflow-x:auto; width:100%; padding-bottom:4px; } .hl-chip{ flex:none; } }
.hl-kitband{ display:flex; flex-wrap:wrap; margin-top:72px; background:var(--hl-sand); border-radius:var(--hl-radius); overflow:hidden; }
.hl-kitband__media{ flex:1 1 360px; background:var(--hl-white); display:flex; align-items:center; justify-content:center; padding:24px; }
.hl-kitband__media img{ max-height:320px; width:auto; object-fit:contain; }
.hl-kitband__copy{ flex:1 1 420px; padding:44px; display:flex; flex-direction:column; gap:12px; justify-content:center; }
.hl-kitband__copy h2{ margin:0; font-size:40px; }
.hl-kitband__copy p{ margin:0; }
.hl-kitband .hl-btn{ align-self:flex-start; margin-top:6px; }
body.hl .woocommerce-pagination{ margin-top:48px; }

/* ---------- product page ---------- */
body.single-product .site-main{ padding-top:8px; }
body.single-product div.product{ display:flex; flex-wrap:wrap; gap:0 56px; }
body.single-product div.product .woocommerce-product-gallery{ flex:1 1 520px; min-width:0; width:auto!important; float:none!important; margin:0!important; }
body.single-product div.product .summary{ flex:1 1 400px; min-width:0; width:auto!important; float:none!important; margin:0!important; display:flex; flex-direction:column; gap:16px; }
body.single-product div.product > *:not(.woocommerce-product-gallery):not(.summary){ flex-basis:100%; }
.woocommerce-product-gallery__wrapper, .woocommerce-product-gallery .flex-viewport{ background:var(--hl-white); border-radius:var(--hl-radius); }
.woocommerce-product-gallery__image img{ object-fit:contain; }
body.hl .woocommerce-product-gallery .flex-control-thumbs{ display:grid!important; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px; margin-top:12px!important; }
body.hl .woocommerce-product-gallery .flex-control-thumbs li{ width:auto!important; margin:0!important; float:none!important; }
body.hl .woocommerce-product-gallery .flex-control-thumbs img{ background:var(--hl-white); border-radius:2px; border:1px solid var(--hl-sand); aspect-ratio:1/1; object-fit:contain; opacity:1; }
body.hl .woocommerce-product-gallery .flex-control-thumbs img.flex-active{ border:2px solid var(--hl-forest); }
.hl-pdp__eyebrow{ margin-top:4px; }
body.single-product .product_title{ margin:0!important; font-size:clamp(36px, 4.4vw, 54px)!important; line-height:1.02!important; color:var(--hl-forest)!important; font-variation-settings:"SOFT" 50, "opsz" 144; }
.hl-pdp__sub{ margin:0; font-size:19px; line-height:1.5; }
body.single-product .summary .price{ margin:0!important; font-family:var(--hl-serif); font-size:32px!important; color:var(--hl-charcoal)!important; font-weight:400; }
body.single-product .woocommerce-product-details__short-description ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:16px; }
body.single-product .woocommerce-product-details__short-description li{ position:relative; padding-left:24px; }
body.single-product .woocommerce-product-details__short-description li::before{ content:"—"; position:absolute; left:0; color:var(--hl-tan-deep); }
body.single-product form.cart{ display:flex; flex-wrap:wrap; gap:12px; margin:4px 0 0!important; }
body.single-product form.variations_form{ flex-direction:column; }
body.single-product .variations{ margin:0; border:0; }
body.single-product .variations th, body.single-product .variations td{ padding:0 0 8px; border:0; background:none; display:block; text-align:left; }
body.single-product .variations label{ font-size:14px; font-weight:600; }
body.single-product .reset_variations{ font-size:13px; }
body.single-product .woocommerce-variation-add-to-cart{ display:flex; flex-wrap:wrap; gap:12px; }
body.single-product .quantity .qty{ min-height:52px; width:72px; border:1.5px solid var(--hl-sand); border-radius:2px; background:var(--hl-white); font-size:16px; text-align:center; }
body.single-product .single_add_to_cart_button{ flex:1 1 220px; min-height:52px; border-radius:2px!important; background:var(--hl-forest)!important; color:var(--hl-cream)!important; font-family:var(--hl-sans); font-size:14px!important; font-weight:700; letter-spacing:.09em; text-transform:uppercase; border:0; }
body.single-product .single_add_to_cart_button:hover{ background:var(--hl-evergreen)!important; }
.hl-shipbox{ background:var(--hl-white); border:1px solid var(--hl-sand); border-radius:var(--hl-radius); padding:16px 20px; display:flex; flex-direction:column; gap:10px; font-size:14px; line-height:1.5; }
.hl-shipbox p{ margin:0; display:flex; gap:12px; align-items:flex-start; }
.hl-shipbox .hl-ico{ flex:none; width:22px; height:22px; color:var(--hl-forest); }
.hl-pdp-kit{ margin:64px 0 0; background:var(--hl-evergreen); color:var(--hl-sand); border-radius:var(--hl-radius); padding:34px; display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between; }
.hl-pdp-kit h2{ margin:6px 0; font-size:30px; color:var(--hl-cream)!important; }
.hl-pdp-kit p{ margin:0; }
body.single-product .woocommerce-tabs{ margin-top:72px; }
body.single-product .woocommerce-tabs ul.tabs{ display:flex; gap:28px; padding:0!important; margin:0 0 24px!important; border-bottom:1px solid var(--hl-sand); overflow-x:auto; }
body.single-product .woocommerce-tabs ul.tabs::before, body.single-product .woocommerce-tabs ul.tabs li::before, body.single-product .woocommerce-tabs ul.tabs li::after{ display:none!important; }
body.single-product .woocommerce-tabs ul.tabs li{ background:none!important; border:0!important; margin:0!important; padding:0!important; border-radius:0!important; }
body.single-product .woocommerce-tabs ul.tabs li a{ display:inline-block; padding:12px 0!important; font-family:var(--hl-sans); font-size:15px; font-weight:600; color:var(--hl-moss)!important; border-bottom:2px solid transparent; text-decoration:none; }
body.single-product .woocommerce-tabs ul.tabs li.active a{ color:var(--hl-forest)!important; border-bottom-color:var(--hl-forest); }
body.single-product .woocommerce-Tabs-panel{ max-width:760px; font-size:17px; line-height:1.7; padding:0!important; border:0!important; }
body.single-product .woocommerce-Tabs-panel h3{ font-size:24px; margin:28px 0 10px; }
.hl-specs{ width:100%; border-collapse:collapse; font-size:15px; }
.hl-specs th, .hl-specs td{ text-align:left; padding:12px 0; border-bottom:1px solid var(--hl-sand); vertical-align:top; }
.hl-specs th{ width:38%; font-weight:600; font-family:var(--hl-sans); }
.hl-faq details{ border-top:1px solid var(--hl-sand); padding:14px 0; }
.hl-faq details:last-child{ border-bottom:1px solid var(--hl-sand); }
.hl-faq summary{ cursor:pointer; font-weight:600; font-size:16px; }
.hl-faq p{ margin:10px 0 0; font-size:15.5px; }
body.single-product .related{ margin-top:80px; }
body.single-product .related > h2{ font-size:40px; margin:0 0 28px; }
.hl-sticky-atc{ position:fixed; left:0; right:0; bottom:0; z-index:40; background:var(--hl-white); border-top:1px solid var(--hl-sand); padding:10px 16px calc(10px + env(safe-area-inset-bottom)); display:flex; align-items:center; gap:14px; }
.hl-sticky-atc[hidden]{ display:none; }
.hl-sticky-atc .hl-btn{ flex:1; }
.hl-sticky-atc__price{ font-weight:700; }
@media (min-width:900px){ .hl-sticky-atc{ display:none!important; } }

/* ---------- cart + checkout (WooCommerce blocks) ---------- */
body.woocommerce-cart .entry-hero, body.woocommerce-checkout .entry-hero{ background:transparent; }
body.woocommerce-cart h1.entry-title, body.woocommerce-checkout h1.entry-title, body.page .entry-title{ font-family:var(--hl-serif); font-size:clamp(38px, 5vw, 56px); color:var(--hl-forest); }
body.hl .wc-block-components-button:not(.is-link), body.hl .wc-block-cart__submit-button, body.hl .wc-block-components-checkout-place-order-button{
  background:var(--hl-forest)!important; color:var(--hl-cream)!important; border-radius:2px!important; min-height:54px; font-family:var(--hl-sans); font-weight:700; letter-spacing:.09em; text-transform:uppercase; font-size:14px; }
body.hl .wc-block-components-button:not(.is-link):hover{ background:var(--hl-evergreen)!important; }
body.hl .wc-block-cart .wc-block-components-sidebar, body.hl .wc-block-checkout__sidebar .wc-block-components-order-summary, body.hl .wp-block-woocommerce-checkout-order-summary-block{
  background:var(--hl-white); border:1px solid var(--hl-sand); border-radius:var(--hl-radius); padding:24px!important; }
body.hl .wc-block-components-product-name{ font-family:var(--hl-serif); font-size:20px; color:var(--hl-charcoal)!important; text-decoration:none; }
body.hl .wc-block-cart-items, body.hl .wc-block-cart-items td, body.hl .wc-block-cart-items th{ border-color:var(--hl-sand)!important; }
body.hl .wc-block-cart-item__image img{ background:var(--hl-white); border-radius:2px; }
body.hl .wc-block-components-text-input input, body.hl .wc-block-components-combobox .wc-block-components-combobox-control input, body.hl .wc-blocks-components-select__select{
  background:var(--hl-white)!important; border:1.5px solid var(--hl-sand)!important; border-radius:2px!important; }
body.hl .wc-block-components-text-input.is-active input, body.hl .wc-block-components-text-input input:focus{ border-color:var(--hl-forest)!important; box-shadow:none!important; }
body.hl .wc-block-components-title, body.hl .wc-block-components-checkout-step__title{ font-family:var(--hl-serif)!important; font-weight:400!important; color:var(--hl-forest)!important; font-size:26px!important; }
body.hl .wc-block-components-totals-footer-item{ font-size:18px; }
.hl-kit-offer{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; background:var(--hl-sand); border-radius:var(--hl-radius); padding:22px 24px; margin:0 0 28px; }
.hl-kit-offer strong{ font-size:16px; }
.hl-kit-offer p{ margin:4px 0 0; font-size:15px; }
.hl-kit-offer form{ margin:0; }

/* ---------- notices + info pages ---------- */
body.hl .woocommerce-message, body.hl .woocommerce-info, body.hl .wc-block-components-notice-banner{ background:var(--hl-white); border:1px solid var(--hl-sand); border-left:0; border-radius:var(--hl-radius); color:var(--hl-charcoal); }
body.hl .woocommerce-message::before, body.hl .woocommerce-info::before{ color:var(--hl-forest); }
body.page:not(.hl-home):not(.woocommerce-cart):not(.woocommerce-checkout) .entry-content{ max-width:760px; margin-left:auto; margin-right:auto; font-size:17px; line-height:1.75; }
body.page:not(.hl-home) .entry-content h2{ font-size:32px; margin-top:48px; }
body.page:not(.hl-home) .entry-content h3{ font-size:24px; margin-top:32px; }
body.page:not(.hl-home) .entry-hero .entry-header{ text-align:left; }
body.page:not(.hl-home) .entry-hero-container-inner{ background:transparent!important; }

@media (prefers-reduced-motion:reduce){ *{ transition:none!important; scroll-behavior:auto!important; } }
body.page .entry-content .hl-lede{ font-family:var(--hl-serif); font-size:26px; line-height:1.35; color:var(--hl-forest); }
body.page .entry-content .hl-signoff{ margin-top:40px; }
/* traced logo */
.hl-mark, .hl-badge{ display:block; flex:none; }
.hl-footer__brand{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.hl-wordmark--light{ color:var(--hl-cream); }
.hl-footer__brand .hl-badge{ background:transparent; }

/* =====================================================================
   PERSONALITY + MOTION LAYER (Nov 2026). Motion only runs with html.hl-motion
   (JS on + no reduced-motion preference); without it everything is simply visible.
   ===================================================================== */
:root{ --hl-hand:"Caveat", "Segoe Print", "Bradley Hand", cursive; --hl-ease:cubic-bezier(.22,.8,.24,1); --hl-spring:cubic-bezier(.34,1.56,.64,1); }
.hl-hand{ font-family:var(--hl-hand); font-weight:600; font-size:1.35em; line-height:1.1; color:var(--hl-tan-deep); letter-spacing:0; text-transform:none; }
.hl-paw{ fill:currentColor; display:inline-block; vertical-align:-0.15em; }
.hl-visually-hidden{ position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; opacity:0; pointer-events:none; }

/* reveals */
.hl-motion [data-reveal]{ opacity:0; transform:translate3d(0,28px,0); transition:opacity .7s var(--hl-ease), transform .8s var(--hl-ease); transition-delay:calc(var(--i, 0) * 90ms); }
.hl-motion [data-reveal].is-in{ opacity:1; transform:none; }
.hl-motion [data-reveal="photo"]{ transform:translate3d(0,40px,0) scale(.97); }
.hl-w{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; margin-bottom:-.08em; }
.hl-w > span{ display:inline-block; }
.hl-motion [data-split] .hl-w > span{ transform:translate3d(0,105%,0); transition:transform .9s var(--hl-ease); transition-delay:calc(var(--i) * 70ms + 120ms); }
.hl-motion [data-split].is-in .hl-w > span, .hl-motion .hl-hero.is-in [data-split] .hl-w > span{ transform:none; }

/* ---------- header polish ---------- */
.hl-header{ transition:box-shadow .3s ease, background-color .3s ease; }
.hl-header.is-scrolled{ box-shadow:0 6px 24px rgba(24,56,45,.08); background:rgba(245,240,230,.94); backdrop-filter:saturate(1.2) blur(8px); }
.hl-header__row{ transition:min-height .3s var(--hl-ease); }
@media (min-width:1025px){ .hl-header.is-scrolled .hl-header__row{ min-height:64px; } }
.hl-logo .hl-mark{ transition:transform .5s var(--hl-spring); transform-origin:50% 70%; }
.hl-logo:hover .hl-mark{ transform:rotate(-12deg); }   /* the head tilt every dog owner knows */
.hl-nav a, .hl-nav__shop{ position:relative; border-bottom:0!important; }
.hl-nav a::after, .hl-nav__shop::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--hl-tan); transform:scaleX(0); transform-origin:right; transition:transform .35s var(--hl-ease); }
.hl-nav a:hover::after, .hl-nav a[aria-current="page"]::after, .hl-nav__shop[aria-expanded="true"]::after, .hl-nav__shop:hover::after{ transform:scaleX(1); transform-origin:left; }
.hl-cart-link.is-hop{ animation:hl-hop .7s var(--hl-spring); }
.hl-cart-link.is-hop .hl-cart-count{ animation:hl-pop .6s var(--hl-spring); }
@keyframes hl-hop{ 0%{transform:none} 30%{transform:translateY(-7px) rotate(-8deg)} 60%{transform:translateY(0) rotate(5deg)} 100%{transform:none} }
@keyframes hl-pop{ 0%{transform:scale(.4)} 70%{transform:scale(1.25)} 100%{transform:scale(1)} }

/* menus open with a little choreography */
.hl-mega, .hl-search-panel{ opacity:0; transform:translateY(-8px); transition:opacity .25s ease, transform .3s var(--hl-ease); }
.hl-mega.is-open, .hl-search-panel.is-open{ opacity:1; transform:none; }
.hl-mega__card{ opacity:0; transform:translateY(12px); transition:opacity .35s ease, transform .45s var(--hl-ease); }
.hl-mega.is-open .hl-mega__card{ opacity:1; transform:none; }
.hl-mega.is-open .hl-mega__card:nth-child(3){ transition-delay:.05s } .hl-mega.is-open .hl-mega__card:nth-child(4){ transition-delay:.1s } .hl-mega.is-open .hl-mega__card:nth-child(5){ transition-delay:.15s }
.hl-mega__img{ position:relative; } .hl-mega__img .hl-photo{ transition:transform .6s var(--hl-ease); } .hl-mega__card:hover .hl-mega__img .hl-photo{ transform:scale(1.05); }
.hl-drawer{ opacity:0; transform:translateX(-24px); transition:opacity .25s ease, transform .3s var(--hl-ease); }
.hl-drawer.is-open{ opacity:1; transform:none; }
.hl-drawer__col, .hl-drawer__link{ opacity:0; transform:translateX(-14px); transition:opacity .3s ease, transform .4s var(--hl-ease); }
.hl-drawer.is-open .hl-drawer__col, .hl-drawer.is-open .hl-drawer__link{ opacity:1; transform:none; }
.hl-drawer.is-open .hl-drawer__nav > :nth-child(2){ transition-delay:.04s } .hl-drawer.is-open .hl-drawer__nav > :nth-child(3){ transition-delay:.08s }
.hl-drawer.is-open .hl-drawer__nav > :nth-child(4){ transition-delay:.12s } .hl-drawer.is-open .hl-drawer__nav > :nth-child(n+5){ transition-delay:.16s }
html:not(.hl-js) .hl-mega:not([hidden]), html:not(.hl-js) .hl-drawer:not([hidden]){ opacity:1; transform:none; }

/* ---------- buttons ---------- */
.hl-btn{ position:relative; overflow:hidden; isolation:isolate; transition:background .2s, color .2s, border-color .2s, transform .25s var(--hl-ease), box-shadow .25s; }
.hl-btn--solid::before, .hl-btn--outline::before, .hl-btn--cream::before, .hl-btn--ghost-light::before, .hl-btn--tan::before{
  content:""; position:absolute; inset:0; z-index:-1; transform:scaleX(0); transform-origin:left; transition:transform .45s var(--hl-ease); }
.hl-btn--solid::before{ background:var(--hl-evergreen); } .hl-btn--outline::before{ background:var(--hl-forest); }
.hl-btn--cream::before{ background:var(--hl-white); } .hl-btn--ghost-light::before{ background:rgba(245,240,230,.16); } .hl-btn--tan::before{ background:#C9A57B; }
.hl-btn:hover::before{ transform:scaleX(1); }
.hl-btn:active{ transform:scale(.97); }
.hl-btn--arrow::after{ content:"→"; display:inline-block; margin-left:2px; transition:transform .35s var(--hl-spring); }
.hl-btn--arrow:hover::after{ transform:translateX(5px); }
.hl-link-arrow::after{ display:inline-block; transition:transform .35s var(--hl-spring); }
.hl-link-arrow:hover::after{ transform:translateX(5px); }
.hl-btn__paw{ width:0; opacity:0; margin-left:-8px; transition:width .3s var(--hl-ease), opacity .3s, margin .3s, transform .4s var(--hl-spring); }
.hl-btn:hover .hl-btn__paw{ width:16px; opacity:1; margin-left:0; transform:rotate(-14deg); }
.hl-btn.is-busy{ pointer-events:none; }
.hl-btn.is-busy .hl-btn__paw{ width:16px; opacity:1; margin-left:0; animation:hl-step .6s steps(2) infinite; }
@keyframes hl-step{ 0%{ transform:translateY(0) rotate(-14deg) } 100%{ transform:translateY(-3px) rotate(14deg) } }

/* ---------- hero: the opening scene ---------- */
.hl-hero__media{ will-change:transform; inset:-60px 0 -60px 0; }
.hl-hero__kb{ position:absolute; inset:0; }
.hl-motion .hl-hero__kb{ animation:hl-kenburns 26s ease-in-out infinite alternate; }
@keyframes hl-kenburns{ from{ transform:scale(1.02) translate3d(0,0,0) } to{ transform:scale(1.09) translate3d(-1.5%,-1%,0) } }
.hl-hero__kicker{ margin:0; display:inline-flex; align-items:center; gap:10px; color:var(--hl-sand); font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.hl-hero__kicker .hl-paw{ color:var(--hl-tan); }
.hl-motion .hl-hero [data-hero-step]{ opacity:0; transform:translate3d(0,18px,0); transition:opacity .8s var(--hl-ease), transform .9s var(--hl-ease); }
.hl-motion .hl-hero [data-hero-step="2"]{ transition-delay:.75s } .hl-motion .hl-hero [data-hero-step="3"]{ transition-delay:.95s }
.hl-motion .hl-hero.is-in [data-hero-step]{ opacity:1; transform:none; }
.hl-hero__copy{ padding-bottom:150px; z-index:2; }
.hl-scroll-cue{ position:absolute; z-index:3; right:max(32px, calc((100vw - 1280px) / 2 + 32px)); bottom:120px; display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--hl-cream)!important; text-decoration:none; font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; opacity:.85; }
.hl-scroll-cue__line{ width:1.5px; height:44px; background:linear-gradient(var(--hl-cream), rgba(245,240,230,0)); transform-origin:top; }
.hl-motion .hl-scroll-cue__line{ animation:hl-cue 2.4s var(--hl-ease) infinite; }
@keyframes hl-cue{ 0%{ transform:scaleY(0); opacity:1 } 60%{ transform:scaleY(1); opacity:1 } 100%{ transform:scaleY(1); opacity:0 } }
.hl-ridge{ position:absolute; left:0; right:0; width:100%; height:90px; display:block; pointer-events:none; }
.hl-ridge--hero{ bottom:-1px; z-index:2; }
@media (max-width:1024px){ .hl-scroll-cue{ display:none; } .hl-hero__copy{ padding-bottom:90px; } .hl-ridge{ height:46px; } }

/* ---------- paw trail ---------- */
.hl-trail{ display:flex; gap:30px; color:var(--hl-tan); margin:-4px 0 26px 4px; height:34px; }
.hl-trail .hl-paw{ width:21px; height:21px; }
.hl-trail__step{ display:block; transform:rotate(90deg); }
.hl-trail__step:nth-child(odd){ margin-top:10px; }
.hl-motion .hl-trail .hl-trail__step{ opacity:0; transform:rotate(90deg) scale(.4); transition:opacity .3s ease, transform .45s var(--hl-spring); transition-delay:calc(var(--i) * 140ms); }
.hl-motion .hl-trail.is-in .hl-trail__step{ opacity:1; transform:rotate(90deg); }
@media (max-width:760px){ .hl-trail{ display:none; } }

/* ---------- mission cards ---------- */
@media (min-width:901px){ .hl-missions .hl-mission:nth-child(2){ margin-top:48px; } .hl-missions{ padding-bottom:48px; } }
.hl-mission{ transition:transform .5s var(--hl-ease), box-shadow .5s var(--hl-ease); }
.hl-mission:hover{ transform:translateY(-6px); box-shadow:0 22px 40px rgba(24,56,45,.18); }
.hl-mission__media{ position:absolute; inset:-30px 0; display:block; }
.hl-mission__media .hl-photo{ position:absolute; inset:0; transition:transform .9s var(--hl-ease); }
.hl-mission:hover .hl-mission__media .hl-photo{ transform:scale(1.07); }
.hl-mission::after{ transition:background .5s ease; }
.hl-mission:hover::after{ background:linear-gradient(0deg, rgba(18,43,34,.86), rgba(18,43,34,.12) 70%); }
.hl-mission__count{ align-self:flex-start; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--hl-evergreen); background:var(--hl-cream); border-radius:999px; padding:5px 11px; transition:transform .4s var(--hl-spring); }
.hl-mission:hover .hl-mission__count{ transform:translateY(-3px) rotate(-3deg); }
.hl-mission__arrow{ display:inline-block; font-family:var(--hl-sans); font-size:.6em; transition:transform .4s var(--hl-spring); }
.hl-mission:hover .hl-mission__arrow{ transform:translateX(8px); }
.hl-mission__peek{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .45s var(--hl-ease); color:var(--hl-cream); }
.hl-mission__peek > *{ overflow:hidden; }
.hl-mission:hover .hl-mission__peek, .hl-mission:focus-visible .hl-mission__peek{ grid-template-rows:1fr; }
.hl-mission__items{ display:block; font-size:14px; opacity:.9; padding-top:6px; }
.hl-mission__peek .hl-hand{ display:block; color:var(--hl-tan); font-size:24px; padding-top:2px; }
.hl-mission__peek-in{ min-height:0; overflow:hidden; display:block; }
.hl-mission__paws{ position:absolute; z-index:1; right:22px; top:22px; display:flex; gap:6px; color:var(--hl-cream); }
.hl-mission__paws .hl-paw{ opacity:0; transform:translateY(6px) rotate(20deg); transition:opacity .25s, transform .35s var(--hl-spring); }
.hl-mission:hover .hl-mission__paws .hl-paw{ opacity:.85; transform:rotate(20deg); }
.hl-mission:hover .hl-mission__paws .hl-paw:nth-child(2){ transition-delay:.08s; transform:translateY(-6px) rotate(20deg); }
.hl-mission:hover .hl-mission__paws .hl-paw:nth-child(3){ transition-delay:.16s; }
.hl-mission:hover .hl-mission__paws .hl-paw:nth-child(4){ transition-delay:.24s; transform:translateY(-6px) rotate(20deg); }
@media (hover:none){ .hl-mission__peek{ grid-template-rows:1fr; } .hl-mission__peek .hl-hand{ display:none; } .hl-mission__paws{ display:none; } }

/* ---------- phrase band ---------- */
.hl-band{ overflow:hidden; background:var(--hl-sand); padding:22px 0; margin-top:24px; white-space:nowrap; }
.hl-band__track{ display:inline-flex; align-items:center; gap:28px; padding-right:28px; will-change:transform; }
/* a slow, continuous marquee; pauses under the pointer; still for reduced motion */
@media (prefers-reduced-motion: no-preference){
  .hl-band__track{ animation:hl-marquee 48s linear infinite; }
  .hl-band:hover .hl-band__track{ animation-play-state:paused; }
}
@keyframes hl-marquee{ from{ transform:translate3d(0,0,0) } to{ transform:translate3d(-50%,0,0) } }
.hl-band__track span{ font-family:var(--hl-serif); font-variation-settings:"SOFT" 50, "opsz" 144; font-size:clamp(24px, 3vw, 38px); color:var(--hl-forest); letter-spacing:-0.01em; }
.hl-band__track span:nth-of-type(even){ font-style:italic; color:var(--hl-tan-deep); }
.hl-band__paw{ color:var(--hl-tan); transform:rotate(15deg); }

/* ---------- product cards ---------- */
.hl-card__media{ position:relative; transition:box-shadow .4s var(--hl-ease), transform .4s var(--hl-ease); }
.hl-card__frame:hover .hl-card__media{ transform:translateY(-4px); box-shadow:0 16px 30px rgba(24,56,45,.12); }
.hl-card__img--alt{ position:absolute; inset:0; opacity:0; transition:opacity .45s ease, transform .6s var(--hl-ease)!important; background:var(--hl-white); }
/* second photo only while the pointer is on the photo itself (not the title or price) */
@media (hover:hover){ .hl-card--has-alt .hl-card__frame:hover .hl-card__img--alt{ opacity:1; } .hl-card--has-alt .hl-card__frame:hover .hl-card__img:not(.hl-card__img--alt){ transform:none; } }
.hl-card .hl-eyebrow{ transition:letter-spacing .4s var(--hl-ease); }
.hl-card:hover .hl-eyebrow{ letter-spacing:.17em; }
.hl-card__dots{ pointer-events:none; }   /* colors are picked on the product page */
body.hl .hl-card .add_to_cart_button.loading{ opacity:1; color:transparent!important; }
body.hl .hl-card .add_to_cart_button.loading::after{ content:""; position:absolute; inset:0; margin:auto; width:16px; height:16px; display:block; border:0!important;
  background:var(--hl-forest); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='15.6' rx='5' ry='4.3'/%3E%3Cellipse cx='5.4' cy='10.4' rx='2.1' ry='2.5'/%3E%3Cellipse cx='9.4' cy='6.4' rx='2.2' ry='2.7'/%3E%3Cellipse cx='14.6' cy='6.4' rx='2.2' ry='2.7'/%3E%3Cellipse cx='18.6' cy='10.4' rx='2.1' ry='2.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cellipse cx='12' cy='15.6' rx='5' ry='4.3'/%3E%3Cellipse cx='5.4' cy='10.4' rx='2.1' ry='2.5'/%3E%3Cellipse cx='9.4' cy='6.4' rx='2.2' ry='2.7'/%3E%3Cellipse cx='14.6' cy='6.4' rx='2.2' ry='2.7'/%3E%3Cellipse cx='18.6' cy='10.4' rx='2.1' ry='2.5'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:hl-step .5s steps(2) infinite; }
body.hl .hl-card .add_to_cart_button.is-added{ background:var(--hl-forest); color:var(--hl-cream)!important; }
body.hl .hl-card .add_to_cart_button.added::after{ display:none; }
body.hl .hl-card .add_to_cart_button.is-added::after{ content:" ✓"; display:inline; position:static; background:none; animation:hl-pop .5s var(--hl-spring); }
body.hl .hl-card .added_to_cart{ display:none; }   /* our toast offers "View cart" instead */

/* quick-add: a round button on the photo that opens into a pill on hover (replaces the old outline button) */
.hl-card__frame{ position:relative; margin-bottom:6px; }
.hl-card__frame .hl-card__media{ margin-bottom:0; }
body.hl .hl-qa{ position:absolute; right:12px; bottom:12px; z-index:2; box-sizing:border-box; display:inline-flex; align-items:center; height:46px; min-width:46px; padding:0 14px; margin:0;
  border:0; border-radius:999px; background:var(--hl-forest); color:var(--hl-cream)!important; text-decoration:none!important;
  font:700 12px/1 var(--hl-sans); letter-spacing:.09em; text-transform:uppercase; box-shadow:0 6px 18px rgba(24,56,45,.24);
  transition:background .25s, color .25s, box-shadow .3s, transform .35s var(--hl-spring); }
.hl-qa svg{ width:18px; height:18px; flex:none; transition:transform .4s var(--hl-spring), opacity .2s; }
.hl-qa .hl-qa__done{ display:none; }
.hl-qa__label{ display:inline-block; max-width:0; overflow:hidden; white-space:nowrap; opacity:0; transition:max-width .4s var(--hl-ease), opacity .25s, margin .4s var(--hl-ease); }
body.hl .hl-qa:hover, body.hl .hl-qa:focus-visible{ background:var(--hl-evergreen); box-shadow:0 12px 26px rgba(24,56,45,.32); transform:translateY(-6px); }
.hl-card__frame:hover .hl-qa{ transform:translateY(-4px); }   /* rides with the lifted photo */
body.hl .hl-qa:active{ transform:scale(.93); }
@media (hover:hover){
  .hl-card__frame:hover .hl-qa__label, .hl-qa:focus-visible .hl-qa__label{ max-width:150px; opacity:1; margin-left:9px; }
  .hl-qa:not(.hl-qa--choose):hover .hl-qa__icon{ transform:rotate(90deg); }
  .hl-qa--choose:hover .hl-qa__icon{ transform:translateX(3px); }
}
.hl-qa.loading{ pointer-events:none; }
body.hl .hl-card .hl-qa.loading::after{ background:var(--hl-cream); }
body.hl .hl-card .hl-qa.is-added{ background:var(--hl-tan); color:var(--hl-evergreen)!important; }
body.hl .hl-card .hl-qa.is-added::after{ display:none; }
.hl-qa.is-added .hl-qa__icon{ display:none; } .hl-qa.is-added .hl-qa__done{ display:block; animation:hl-pop .5s var(--hl-spring); }
.hl-qa.is-added .hl-qa__label{ max-width:0!important; opacity:0!important; margin:0!important; }
@media (max-width:600px){ body.hl .hl-qa{ right:8px; bottom:8px; height:40px; min-width:40px; padding:0 11px; } .hl-qa svg{ width:17px; height:17px; } }
/* Kadence decorates WooCommerce buttons with its own arrow/spinner/check icons; ours carry their own states */
body.hl .hl-card .kadence-svg-iconset, body.hl ul.products .kadence-svg-iconset{ display:none!important; }

/* ---------- toast ---------- */
.hl-toast{ position:fixed; z-index:120; left:50%; bottom:24px; transform:translate(-50%, 20px); opacity:0; display:flex; align-items:center; gap:12px; max-width:min(560px, calc(100vw - 32px));
  background:var(--hl-evergreen); color:var(--hl-cream); padding:14px 18px; border-radius:var(--hl-radius); box-shadow:0 18px 40px rgba(24,56,45,.3); font-size:14.5px; transition:opacity .3s ease, transform .45s var(--hl-spring); }
.hl-toast.is-open{ opacity:1; transform:translate(-50%, 0); }
.hl-toast .hl-paw{ color:var(--hl-tan); flex:none; animation:hl-pop .6s var(--hl-spring); }
.hl-toast a{ color:var(--hl-cream)!important; font-weight:700; white-space:nowrap; margin-left:auto; }
@media (max-width:899px){ body.single-product .hl-toast{ bottom:84px; } }

/* ---------- story: editorial composition ---------- */
.hl-story{ position:relative; margin-top:140px; overflow:visible; }
.hl-ridge--story{ top:-89px; height:90px; }
.hl-story__topo{ position:absolute; inset:0; background:url("topo-light.svg") center/cover no-repeat; opacity:.07; pointer-events:none; }
.hl-story__row{ position:relative; align-items:center; }
.hl-story__media{ position:relative; padding:56px 0 96px; }
.hl-story__frame{ position:relative; height:520px; border-radius:var(--hl-radius); overflow:hidden; transform:rotate(-1.5deg); box-shadow:18px 18px 0 var(--hl-tan); }
.hl-story__img{ position:absolute; inset:-40px 0; display:block; }
.hl-story__img .hl-photo{ position:absolute; inset:0; }
.hl-story__note{ position:absolute; right:24px; bottom:22px; margin:0; display:flex; align-items:flex-end; gap:0; transform:rotate(-4deg); }
.hl-story__note .hl-hand{ font-size:34px; color:var(--hl-tan); }
.hl-scribble{ width:96px; height:56px; fill:none; stroke:var(--hl-tan); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; transform:scaleX(-1) rotate(-30deg); margin-bottom:24px; }
.hl-motion .hl-scribble path{ stroke-dasharray:1; stroke-dashoffset:1; transition:stroke-dashoffset 1s var(--hl-ease) .5s; }
.hl-motion .is-in .hl-scribble path{ stroke-dashoffset:0; }
.hl-motion .is-in .hl-scribble path + path{ transition-delay:1.3s; }
.hl-story__title{ margin:0; font-size:clamp(40px, 5.4vw, 72px)!important; line-height:1!important; color:var(--hl-cream)!important; }
@media (min-width:901px){ .hl-story__row{ gap:72px; flex-wrap:nowrap; } .hl-story__media{ flex:1 1 52%; } .hl-story__copy{ flex:1 1 44%; padding-left:0; } }
@media (max-width:900px){ .hl-story{ margin-top:90px; } .hl-ridge--story{ top:-45px; height:46px; } .hl-story__media{ padding:24px var(--hl-gutter) 40px; } .hl-story__frame{ height:300px; box-shadow:10px 10px 0 var(--hl-tan); } .hl-story__note{ right:12px; bottom:0; } .hl-story__note .hl-hand{ font-size:26px; } }

/* ---------- kits + stamp ---------- */
.hl-kits-section{ position:relative; }
.hl-stamp{ position:absolute; z-index:2; right:calc(var(--hl-gutter) + 130px); top:40px; width:132px; height:132px; filter:drop-shadow(0 8px 14px rgba(24,56,45,.12)); }
.hl-stamp svg{ width:100%; height:100%; display:block; }
.hl-stamp__paw{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--hl-forest); }
.hl-stamp__paw .hl-paw{ transform:rotate(-12deg); }
@media (max-width:900px){ .hl-stamp{ width:92px; height:92px; right:var(--hl-gutter); top:24px; } }
.hl-kit{ transition:transform .45s var(--hl-ease), box-shadow .45s var(--hl-ease), border-color .3s; }
.hl-kit:hover{ transform:translateY(-6px) rotate(-.4deg); box-shadow:0 20px 36px rgba(24,56,45,.12); border-color:var(--hl-tan); }
.hl-kit__thumb{ transition:transform .5s var(--hl-spring); }
.hl-kit:hover .hl-kit__thumb:nth-child(1){ transform:rotate(-5deg) translateY(-4px); }
.hl-kit:hover .hl-kit__thumb:nth-child(2){ transform:translateY(-8px); transition-delay:.05s; }
.hl-kit:hover .hl-kit__thumb:nth-child(3){ transform:rotate(5deg) translateY(-4px); transition-delay:.1s; }

/* ---------- field notes: asymmetric editorial grid ---------- */
.hl-notes__aside{ margin:0; font-size:30px; transform:rotate(-3deg); }
@media (min-width:901px){
  .hl-notes{ grid-template-columns:1.35fr 1fr; grid-template-rows:min-content 1fr; column-gap:40px; row-gap:36px; align-items:start; }
  .hl-note--lead{ grid-row:1 / span 2; }
  .hl-note--lead .hl-note__media{ aspect-ratio:16/11; }
  .hl-note--lead h3{ font-size:34px!important; }
  .hl-note:not(.hl-note--lead){ display:grid; grid-template-columns:180px 1fr; column-gap:22px; align-content:start; }
  .hl-note:not(.hl-note--lead) .hl-note__media{ grid-row:1 / span 3; aspect-ratio:1/1; }
}
.hl-note__media{ display:block; aspect-ratio:4/3; border-radius:var(--hl-radius); overflow:hidden; position:relative; }
.hl-note__media .hl-photo{ position:absolute; inset:0; transition:transform .8s var(--hl-ease); }
.hl-note:hover .hl-note__media .hl-photo{ transform:scale(1.05); }

/* ---------- reassure ---------- */
.hl-reassure .hl-ico{ transition:transform .45s var(--hl-spring); }
.hl-reassure__grid > div:hover .hl-ico{ transform:translateY(-3px) rotate(-6deg); }

/* ---------- newsletter + footer easter eggs ---------- */
.hl-newsletter{ position:relative; overflow:hidden; }
.hl-newsletter::before{ content:""; position:absolute; inset:0; background:url("topo-light.svg") center/cover no-repeat; opacity:.06; pointer-events:none; }
.hl-newsletter__form{ position:relative; }
.hl-peek{ position:absolute; right:110px; top:-30px; width:56px; height:56px; transform:translateY(40px) rotate(8deg); opacity:0; transition:transform .55s var(--hl-spring), opacity .3s; pointer-events:none; }
.hl-peek .hl-mark{ width:56px; height:56px; }
.hl-newsletter__form:focus-within .hl-peek{ transform:translateY(0) rotate(-6deg); opacity:1; }
.hl-newsletter__msg--ok{ display:flex; align-items:center; gap:8px; }
.hl-newsletter__msg--ok .hl-paw{ color:var(--hl-tan); animation:hl-pop .6s var(--hl-spring); }
@media (max-width:760px){ .hl-peek{ right:12px; top:-26px; } }
.hl-goodboy{ position:relative; display:inline-block; }
.hl-goodboy .hl-badge{ transition:transform .6s var(--hl-spring); transform-origin:50% 80%; }
.hl-goodboy:hover .hl-badge{ transform:rotate(-8deg) scale(1.03); }
.hl-goodboy::after{ content:attr(data-bark); position:absolute; left:112px; top:6px; white-space:nowrap; background:var(--hl-cream); color:var(--hl-evergreen); font-family:var(--hl-hand); font-weight:600; font-size:22px; padding:4px 12px; border-radius:14px 14px 14px 2px;
  opacity:0; transform:translateY(6px) scale(.9); transform-origin:left bottom; transition:opacity .25s, transform .4s var(--hl-spring); pointer-events:none; }
.hl-goodboy:hover::after{ opacity:1; transform:none; }

/* ---------- product page touches ---------- */
.hl-swatches{ display:flex; flex-wrap:wrap; gap:10px; margin:2px 0 6px; }
.hl-swatch{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 14px 0 8px; border:1.5px solid var(--hl-sand); border-radius:999px; background:var(--hl-white); color:var(--hl-charcoal); font:600 14px var(--hl-sans); cursor:pointer; transition:border-color .2s, transform .3s var(--hl-spring), box-shadow .2s; }
.hl-swatch--text{ padding:0 16px; }
.hl-swatch:hover{ border-color:var(--hl-forest); transform:translateY(-2px); }
.hl-swatch[aria-pressed="true"]{ border-color:var(--hl-forest); box-shadow:0 0 0 1.5px var(--hl-forest); }
.hl-swatch:disabled{ opacity:.4; cursor:not-allowed; text-decoration:line-through; }
.hl-swatch__dot{ width:26px; height:26px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(41,45,41,.2); transition:transform .3s var(--hl-spring); }
.hl-swatch[aria-pressed="true"] .hl-swatch__dot{ transform:scale(1.12); }
body.single-product .woocommerce-product-gallery__image img{ transition:opacity .35s ease; }
body.single-product .woocommerce-product-gallery .flex-control-thumbs img{ transition:border-color .2s, transform .3s var(--hl-spring); }
body.single-product .woocommerce-product-gallery .flex-control-thumbs img:hover{ transform:translateY(-2px); }
.hl-approved{ display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--hl-forest); }
.hl-approved .hl-paw{ color:var(--hl-tan); animation:hl-pop .7s var(--hl-spring); }
.hl-faq summary, .entry-content details summary{ list-style:none; display:flex; justify-content:space-between; gap:16px; }
.hl-faq summary::-webkit-details-marker, .entry-content details summary::-webkit-details-marker{ display:none; }
.hl-faq summary::after, .entry-content details summary::after{ content:"+"; font-family:var(--hl-sans); font-weight:400; font-size:22px; line-height:1; color:var(--hl-tan-deep); transition:transform .3s var(--hl-spring); }
.hl-faq details[open] summary::after, .entry-content details[open] summary::after{ transform:rotate(45deg); }
.hl-sticky-atc{ transform:translateY(100%); transition:transform .35s var(--hl-ease); }
.hl-sticky-atc.is-open{ transform:none; }
html:not(.hl-js) .hl-sticky-atc{ display:none; }

/* ---------- collection hero gets the landscape edge too ---------- */
.hl-colhero::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:40px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath fill='%23F5F0E6' d='M0 60 L0 38 L120 22 L240 36 L380 12 L520 34 L660 20 L800 40 L940 18 L1080 34 L1220 16 L1340 30 L1440 22 L1440 60Z'/%3E%3C/svg%3E") bottom/100% 100% no-repeat; z-index:1; }
.hl-colhero__media{ inset:-30px 0; }
/* Kadence/WooCommerce set img{height:auto} on archive pages, which left the photo at its natural height (so the crop never moved). */
.hl-colhero__media .hl-photo{ position:absolute; inset:0; width:100%!important; height:100%!important; max-width:none; object-fit:cover; }
/* collection headers are a wide strip: frame each scene on its subject */
.hl-colhero__media .hl-photo--road-trip{ object-position:50% 78%; } .hl-colhero__media .hl-photo--trail-walk{ object-position:50% 27%; } .hl-colhero__media .hl-photo--camp{ object-position:50% 76%; } .hl-colhero__media .hl-photo--kits{ object-position:50% 40%; }
.hl-motion .hl-colhero__copy > *{ animation:hl-rise .9s var(--hl-ease) both; }
.hl-motion .hl-colhero__copy > :nth-child(2){ animation-delay:.08s } .hl-motion .hl-colhero__copy > :nth-child(3){ animation-delay:.18s }
@keyframes hl-rise{ from{ opacity:0; transform:translateY(18px) } to{ opacity:1; transform:none } }
.hl-chip{ transition:border-color .2s, background .2s, color .2s, transform .3s var(--hl-spring); }
.hl-chip:hover{ transform:translateY(-2px); }

/* ---------- reduced motion: everything visible, nothing moving ---------- */
@media (prefers-reduced-motion:reduce){
  .hl-hero__kb, .hl-scroll-cue__line, .hl-btn.is-busy .hl-btn__paw{ animation:none!important; }
  [data-parallax], [data-drift], [data-spin]{ transform:none!important; }
}

/* ---------- slide-out cart ---------- */
.hl-cd{ position:fixed; inset:0; z-index:120; }
.hl-cd[hidden]{ display:none; }
.hl-cd__scrim{ position:absolute; inset:0; background:rgba(18,43,34,.45); opacity:0; transition:opacity .3s ease; }
.hl-cd__panel{ position:absolute; top:0; right:0; bottom:0; width:min(440px, 100%); background:var(--hl-cream); display:flex; flex-direction:column;
  box-shadow:-20px 0 50px rgba(18,43,34,.18); transform:translateX(100%); transition:transform .38s var(--hl-ease); }
.hl-cd.is-open .hl-cd__scrim{ opacity:1; } .hl-cd.is-open .hl-cd__panel{ transform:none; }
html:not(.hl-js) .hl-cd:not([hidden]) .hl-cd__panel{ transform:none; }
.hl-cd__head{ display:flex; align-items:center; justify-content:space-between; padding:18px 18px 14px 24px; border-bottom:1px solid rgba(41,45,41,.1); }
body.hl .hl-cd__head h2{ margin:0; font-size:28px; }
.hl-cd__count{ font-family:var(--hl-sans); font-size:15px; font-weight:600; color:var(--hl-moss); letter-spacing:0; }
.hl-cd__body{ flex:1; overflow-y:auto; overscroll-behavior:contain; padding:0 24px 24px; }
.hl-cd__ship{ display:flex; align-items:center; gap:10px; margin:16px 0 4px; padding:10px 14px; background:var(--hl-white); border-radius:var(--hl-radius); font-size:14px; color:var(--hl-forest); }
.hl-cd__ship .hl-ico{ flex:none; color:var(--hl-tan-deep); }
.hl-cd__items{ list-style:none; margin:0; padding:0; }
.hl-cd__item{ position:relative; display:grid; grid-template-columns:84px 1fr; gap:14px; padding:18px 30px 18px 0; border-bottom:1px solid rgba(41,45,41,.1); transition:opacity .2s; }
.hl-cd__item.is-busy{ opacity:.45; pointer-events:none; }
.hl-cd__thumb{ display:block; width:84px; height:84px; background:var(--hl-white); border-radius:var(--hl-radius); overflow:hidden; }
.hl-cd__thumb img, .hl-cd__pthumb img{ width:100%; height:100%; object-fit:contain; }
.hl-cd__meta{ display:flex; flex-direction:column; gap:3px; min-width:0; }
body.hl a.hl-cd__name{ font-family:var(--hl-serif); font-size:18px; line-height:1.25; color:var(--hl-charcoal); text-decoration:none; }
.hl-cd__attrs{ font-size:13.5px; color:var(--hl-moss); }
.hl-cd__row{ margin-top:auto; padding-top:8px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hl-cd__qty{ display:inline-flex; align-items:center; border:1.5px solid rgba(35,69,54,.28); border-radius:999px; height:36px; }
.hl-cd__qty button{ width:36px; height:100%; border:0; background:transparent; color:var(--hl-forest); font-size:18px; line-height:1; cursor:pointer; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; padding:0; }
.hl-cd__qty button:hover{ background:rgba(35,69,54,.08); }
.hl-cd__qty span{ min-width:22px; text-align:center; font-weight:700; font-size:15px; }
.hl-cd__price{ font-weight:700; font-size:15px; }
.hl-cd__remove{ position:absolute; top:14px; right:-6px; width:34px; height:34px; border:0; background:transparent; color:var(--hl-moss); cursor:pointer; padding:0; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.hl-cd__remove:hover{ color:var(--hl-charcoal); background:rgba(41,45,41,.06); }
.hl-cd__remove .hl-ico{ width:16px; height:16px; }
.hl-cd__pairs{ margin-top:26px; }
.hl-cd__pairs-title{ margin:0 0 6px; } .hl-cd__pairs-title .hl-hand{ font-size:26px; }
.hl-cd__pairs ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.hl-cd__pairs li{ display:grid; grid-template-columns:60px 1fr auto; gap:12px; align-items:center; padding:10px; background:var(--hl-white); border-radius:var(--hl-radius); }
.hl-cd__pthumb{ display:block; width:60px; height:60px; border-radius:var(--hl-radius); overflow:hidden; }
.hl-cd__pairs li > div{ display:flex; flex-direction:column; min-width:0; }
body.hl a.hl-cd__pname{ font-weight:600; font-size:14.5px; line-height:1.3; color:var(--hl-charcoal); text-decoration:none; }
.hl-cd__pprice{ font-size:14px; color:var(--hl-moss); }
body.hl a.hl-cd__add{ position:relative; display:inline-flex; align-items:center; height:36px; padding:0 14px; border-radius:999px; border:1.5px solid var(--hl-forest); color:var(--hl-forest); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; white-space:nowrap; transition:background .2s, color .2s, transform .3s var(--hl-spring); }
body.hl a.hl-cd__add:hover{ background:var(--hl-forest); color:var(--hl-cream); transform:translateY(-2px); }
body.hl a.hl-cd__add.loading{ opacity:.5; pointer-events:none; }
body.hl a.hl-cd__add.loading::after, body.hl a.hl-cd__add.added::after{ display:none; }
.hl-cd .added_to_cart, .hl-cd .kadence-svg-iconset{ display:none!important; }
.hl-cd__foot{ padding:18px 24px 22px; border-top:1px solid rgba(41,45,41,.12); background:var(--hl-white); display:flex; flex-direction:column; gap:10px; }
.hl-cd__foot[hidden]{ display:none; }
.hl-cd__total{ display:flex; justify-content:space-between; align-items:baseline; margin:0; font-size:17px; }
.hl-cd__total strong{ font-size:20px; }
.hl-cd__note{ margin:-4px 0 4px; font-size:13px; color:var(--hl-moss); }
.hl-cd__foot .hl-btn{ width:100%; box-sizing:border-box; }
body.hl a.hl-cd__viewcart{ align-self:center; font-size:14px; font-weight:600; }
.hl-cd__empty{ text-align:center; padding:60px 10px 20px; display:flex; flex-direction:column; align-items:center; gap:6px; }
.hl-cd__empty .hl-paw{ color:var(--hl-tan); transform:rotate(-14deg); margin-bottom:8px; }
.hl-cd__empty p{ margin:0; color:var(--hl-moss); } .hl-cd__empty .hl-display{ font-size:26px; color:var(--hl-forest); }
.hl-cd__empty-links{ display:flex; flex-direction:column; gap:10px; margin-top:18px; }
.hl-cd.is-entering .hl-cd__item{ animation:hl-cd-in .45s var(--hl-ease) both; }
.hl-cd.is-entering .hl-cd__item:nth-child(2){ animation-delay:.05s } .hl-cd.is-entering .hl-cd__item:nth-child(3){ animation-delay:.1s } .hl-cd.is-entering .hl-cd__item:nth-child(n+4){ animation-delay:.15s }
@keyframes hl-cd-in{ from{ opacity:0; transform:translateX(24px) } to{ opacity:1; transform:none } }
@media (prefers-reduced-motion: reduce){ .hl-cd__panel, .hl-cd__scrim{ transition:none; } .hl-cd.is-entering .hl-cd__item{ animation:none; } }
@media (max-width:480px){ .hl-cd__body{ padding:0 18px 20px; } .hl-cd__head{ padding-left:18px; } .hl-cd__foot{ padding:16px 18px 18px; } }

/* ---------- "Play fetch" welcome offer ---------- */
.hl-fetch{ position:fixed; inset:0; z-index:130; display:flex; align-items:center; justify-content:center; padding:16px; }
.hl-fetch[hidden]{ display:none; }
.hl-fetch__scrim{ position:absolute; inset:0; background:rgba(18,43,34,.55); opacity:0; transition:opacity .3s ease; }
.hl-fetch__panel{ position:relative; width:min(560px, 100%); max-height:calc(100vh - 32px); overflow-y:auto; background:var(--hl-cream); border-radius:10px; padding:34px 32px 26px;
  box-shadow:0 30px 70px rgba(18,43,34,.3); opacity:0; transform:translateY(18px) scale(.97); transition:opacity .3s ease, transform .45s var(--hl-spring); }
.hl-fetch.is-open .hl-fetch__scrim{ opacity:1; } .hl-fetch.is-open .hl-fetch__panel{ opacity:1; transform:none; }
.hl-fetch__x{ position:absolute!important; top:8px; right:8px; }
.hl-fetch__step{ display:flex; flex-direction:column; gap:8px; }
.hl-fetch__step[hidden]{ display:none; }
.hl-fetch__step .hl-hand{ font-size:28px; }
body.hl .hl-fetch h2{ margin:0; font-size:clamp(28px, 5vw, 38px); color:var(--hl-forest); outline:none; }
.hl-fetch__lead{ margin:0; color:var(--hl-moss); font-size:15.5px; line-height:1.5; }
.hl-fetch__field{ position:relative; height:200px; margin-top:10px; border-radius:8px; overflow:hidden; cursor:crosshair; touch-action:manipulation;
  background:linear-gradient(180deg, #EFE6D4 0%, #F5F0E6 55%); box-shadow:inset 0 0 0 1px rgba(41,45,41,.08); -webkit-tap-highlight-color:transparent; }
.hl-fetch__field:focus-visible{ outline:2px solid var(--hl-tan-deep); outline-offset:3px; }
.hl-fetch__hills{ position:absolute; left:0; right:0; bottom:0; width:100%; height:110px; }
.hl-fetch__field::before{ content:""; position:absolute; right:52px; top:22px; width:40px; height:40px; border-radius:50%; background:var(--hl-tan); opacity:.55; }
.hl-fetch__dog{ position:absolute; left:0; top:0; width:96px; will-change:transform; z-index:2; }
.hl-dog{ display:block; width:100%; height:auto; overflow:visible; }
.hl-fetch__ball{ position:absolute; left:0; top:0; width:18px; height:18px; z-index:3; will-change:transform; }
.hl-fetch__ball svg{ display:block; width:100%; height:100%; }
.hl-fetch__hint{ position:absolute; left:50%; top:46%; transform:translate(-50%,-50%); font-family:var(--hl-hand); font-size:24px; color:var(--hl-tan-deep); pointer-events:none; white-space:nowrap; }
.hl-fetch__hint[hidden]{ display:none; }
.hl-fetch__bubble{ position:absolute; top:22px; z-index:4; padding:4px 12px; border-radius:14px 14px 14px 2px; background:var(--hl-forest); color:var(--hl-cream); font-family:var(--hl-hand); font-size:21px; line-height:1.2; white-space:nowrap; opacity:0; pointer-events:none; }
.hl-fetch__bubble.is-on{ animation:hl-bubble 1.3s var(--hl-ease) both; }
@keyframes hl-bubble{ 0%{ opacity:0; transform:translateY(8px) scale(.8) } 15%{ opacity:1; transform:none } 80%{ opacity:1 } 100%{ opacity:0; transform:translateY(-6px) } }
.hl-dog__tail{ transform-origin:24px 36px; animation:hl-wag .5s ease-in-out infinite alternate; }
.hl-dog__leg{ transform-box:fill-box; transform-origin:50% 0; }
.is-running .hl-dog__leg--f1, .is-running .hl-dog__leg--b2{ animation:hl-stride .26s linear infinite alternate; }
.is-running .hl-dog__leg--f2, .is-running .hl-dog__leg--b1{ animation:hl-stride .26s linear infinite alternate-reverse; }
.is-running .hl-dog__tail{ animation-duration:.18s; }
.is-running .hl-dog__ear{ transform-box:fill-box; transform-origin:50% 0; animation:hl-flap .26s linear infinite alternate; }
.hl-fetch__dog.is-happy .hl-dog{ animation:hl-hop .45s var(--hl-ease) 2; }
.hl-dog__tongue{ opacity:0; transition:opacity .2s; } .is-running .hl-dog__tongue, .is-happy .hl-dog__tongue{ opacity:1; }
@keyframes hl-wag{ from{ transform:rotate(-14deg) } to{ transform:rotate(16deg) } }
@keyframes hl-stride{ from{ transform:rotate(-24deg) } to{ transform:rotate(24deg) } }
@keyframes hl-flap{ from{ transform:rotate(-8deg) } to{ transform:rotate(14deg) } }
@keyframes hl-hop{ 0%,100%{ transform:none } 50%{ transform:translateY(-12px) } }
.hl-fetch__bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:6px; }
.hl-fetch__score{ display:flex; gap:6px; }
.hl-fetch__pip{ color:rgba(41,45,41,.18); transform:rotate(-12deg); transition:color .3s, transform .45s var(--hl-spring); }
.hl-fetch__pip.is-on{ color:var(--hl-tan-deep); transform:rotate(-12deg) scale(1.2); }
body.hl .hl-fetch__skip{ align-self:center; margin-top:6px; background:none; border:0; padding:6px; color:var(--hl-moss); font:500 13.5px var(--hl-sans); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.hl-fetch__form{ display:flex; flex-direction:column; gap:8px; margin-top:8px; }
.hl-fetch__form label{ font-weight:600; font-size:14px; }
.hl-fetch__fields{ display:flex; gap:10px; }
.hl-fetch__fields input[type=email]{ flex:1; min-width:0; height:50px; padding:0 14px; border:1.5px solid rgba(35,69,54,.35); border-radius:2px; background:var(--hl-white); font:500 16px var(--hl-sans); }
.hl-fetch__msg{ margin:0; min-height:1.2em; font-size:14px; color:#9B3B2A; }
.hl-fetch__msg:empty{ min-height:0; }
.hl-fetch__fine{ margin:0; font-size:12.5px; color:var(--hl-moss); }
.hl-fetch__code{ display:flex; align-items:center; gap:12px; margin:8px 0 4px; padding:14px 16px; border:2px dashed var(--hl-tan); border-radius:8px; background:var(--hl-white); }
.hl-fetch__code code{ flex:1; font:700 clamp(20px, 5vw, 26px)/1 var(--hl-sans); letter-spacing:.08em; color:var(--hl-forest); background:none; }
.hl-fetch__step[data-step="done"] > .hl-btn{ align-self:flex-start; margin-top:8px; }
@media (max-width:520px){ .hl-fetch__panel{ padding:30px 20px 20px; } .hl-fetch__field{ height:170px; } .hl-fetch__fields{ flex-direction:column; } }
@media (prefers-reduced-motion: reduce){ .hl-fetch__panel, .hl-fetch__scrim{ transition:none; } .hl-dog__tail, .hl-dog__leg, .hl-dog__ear, .hl-fetch__dog.is-happy .hl-dog{ animation:none!important; } }
.hl-fetch-chip{ position:fixed; left:16px; bottom:16px; z-index:90; display:inline-flex; align-items:center; gap:2px; height:46px; padding:0 8px 0 0; border-radius:999px;
  background:var(--hl-forest); box-shadow:0 10px 26px rgba(18,43,34,.28); transition:transform .3s var(--hl-spring); }
body.hl .hl-fetch-chip button{ border:0; background:transparent; color:var(--hl-cream); cursor:pointer; padding:0; }
body.hl .hl-fetch-chip__open{ display:inline-flex; align-items:center; gap:10px; height:46px; padding:0 6px 0 11px!important; font:700 13px var(--hl-sans); letter-spacing:.04em; border-radius:999px; }
.hl-fetch-chip[hidden]{ display:none; }
.hl-fetch-chip:hover{ transform:translateY(-3px); }
.hl-fetch-chip__ball{ width:24px; height:24px; display:block; }
.hl-fetch-chip__ball svg{ display:block; width:100%; height:100%; }
@media (prefers-reduced-motion: no-preference){ .hl-fetch-chip__ball{ animation:hl-bounce 2.4s var(--hl-ease) infinite; } }
@keyframes hl-bounce{ 0%,60%,100%{ transform:none } 70%{ transform:translateY(-8px) } 80%{ transform:none } 88%{ transform:translateY(-3px) } }
.hl-fetch-chip__x{ display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; opacity:.75; }
.hl-fetch-chip__x:hover{ opacity:1; background:rgba(245,240,230,.14); }
.hl-fetch-chip__x .hl-ico{ width:15px; height:15px; }
@media (max-width:760px){ body.single-product .hl-fetch-chip{ bottom:84px; } }

/* ---------- Our Story page photo ---------- */
.hl-about-photo{ margin:0 0 36px; border-radius:var(--hl-radius); overflow:hidden; aspect-ratio:16/9; box-shadow:14px 14px 0 var(--hl-tan); }
.hl-about-photo .hl-photo{ width:100%!important; height:100%!important; object-fit:cover; object-position:40% 55%; }
@media (max-width:760px){ .hl-about-photo{ aspect-ratio:4/3; box-shadow:8px 8px 0 var(--hl-tan); margin-bottom:24px; } }
