/* ============================================================
   THEME: highland (Highland Stores, Dunoon)
   ============================================================
   An outdoor outfitter's look: photographs edge to edge, heavy tight headings,
   square corners, small tracked capitals for labels and buttons, and the shop's
   slate, loch teal and heather rust. Nothing here is a "card in a box".

   Colours and fonts come from Admin Settings > Theme through the --clr-* and
   --font-* tokens (the headings use the preset's heading face, --font-serif,
   whatever it is). Darker and lighter shades are mixed from those tokens, so a
   change of colour in admin carries through. Linked after the core bundle, so
   these rules win the cascade.

   Page sections are ordinary CMS sections. Their look comes from the CSS Class
   field in the section editor:
     hs-band         stone-tinted full-width background
     hs-dark         dark slate background with light text
     hs-split        image and text side by side, the image running to the edge
                     of the screen (Image Left / Image Right / Map Right)
     hs-tiles        Cards as a photo mosaic (+ hs-tiles--small for a short row)
     hs-guides       Cards as editorial photo-on-top cards
     hs-brandcards   with hs-guides: a wider crop for brand banners
     hs-icons        Cards with an icon and no photo
     hs-logos        Cards as a scrolling strip of logos
     hs-gallery      Image Gallery as a tight grid (six photos get a feature)
     hs-narrow       text at a comfortable reading width (+ hs-prose)
   ============================================================ */

:root {
  --hs-max: 1440px;
  --hs-gutter: clamp(1.25rem, 4vw, 3rem);
  /* Distance from the screen edge to where the content column starts. */
  --hs-edge: max(var(--hs-gutter), calc((100vw - var(--hs-max)) / 2 + var(--hs-gutter)));
  --hs-gap: clamp(4rem, 8vw, 7.5rem);
  --hs-nav-h: 76px;
  /* Core's topbar is sticky and the navbar sticks below it; this theme's bar
     scrolls away, so the navbar must stick to the very top. */
  --topbar-height: 0px;

  --hs-ink: #1d272a;
  --hs-text: #3a474b;
  --hs-muted: #5d696d;
  --hs-stone: #f2f0eb;
  --hs-line: #e2dfd7;
  --hs-deep: #1b2528;
  --hs-accent-dk: #93391f;
  --hs-ease: cubic-bezier(.2, .7, .2, 1);
}

@supports (color: color-mix(in srgb, red, blue)) {
  :root {
    --hs-deep: color-mix(in srgb, var(--clr-primary) 72%, #000);
    --hs-accent-dk: color-mix(in srgb, var(--clr-accent) 80%, #000);
  }
}

body {
  color: var(--hs-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--clr-accent);
  color: #fff;
}

.container {
  max-width: var(--hs-max);
  padding-inline: var(--hs-gutter);
}

h1, h2, h3, h4,
.cmsBlock__heading {
  font-family: var(--font-serif);
  color: var(--hs-ink);
  font-weight: 800;
  letter-spacing: -.03em;
}

.content a,
.cmsBlock__body a {
  color: var(--clr-secondary);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.content a:hover,
.cmsBlock__body a:hover {
  color: var(--clr-accent);
}

/* ---- Small tracked capitals ---- */
.hsEyebrow {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin: 0 0 1.25rem;
  font-family: var(--font-sans);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--clr-accent);
}

.hsEyebrow::before {
  content: "";
  width: 2rem;
  height: 2px;
  background: currentColor;
}

.hsEyebrow--light { color: #fff; }

/* ---- Buttons ---- */
.hsBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  min-height: 54px;
  padding: .9rem 1.65rem;
  border: 1.5px solid transparent;
  border-radius: 2px;
  font-family: var(--font-sans);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}

.hsBtn:focus-visible {
  outline: 3px solid var(--clr-accent-lt);
  outline-offset: 3px;
}

.hsBtn--arrow::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .9em;
  transition: transform .25s var(--hs-ease);
}

.hsBtn--arrow:hover::after { transform: translateX(4px); }

.hsBtn--accent {
  background: var(--clr-accent);
  color: #fff;
}

.hsBtn--accent:hover,
.hsBtn--accent:focus-visible {
  background: var(--hs-accent-dk);
  color: #fff;
}

.hsBtn--ghost {
  border-color: rgba(255, 255, 255, .7);
  color: #fff;
}

.hsBtn--ghost:hover,
.hsBtn--ghost:focus-visible {
  border-color: #fff;
  background: #fff;
  color: var(--hs-ink);
}

.hsBtn--light {
  background: #fff;
  color: var(--hs-ink);
}

.hsBtn--light:hover,
.hsBtn--light:focus-visible {
  background: var(--hs-deep);
  color: #fff;
}

/* "Read more" style links inside page content */
.content a.hs-more,
.cmsBlock__body a.hs-more,
.hs-more {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding-bottom: .35rem;
  border-bottom: 2px solid var(--clr-accent);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--hs-ink);
}

.hs-more::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--clr-accent);
  transition: transform .25s var(--hs-ease);
}

.content a.hs-more:hover,
.hs-more:hover { color: var(--clr-accent); }

.hs-more:hover::after { transform: translateX(4px); }

/* ---- Top bar ---- */
.hsTop {
  background: var(--hs-deep);
  color: rgba(255, 255, 255, .78);
  font-size: .8rem;
  letter-spacing: .01em;
}

.hsTop__wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  min-height: 36px;
}

.hsTop__hours {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}

.hsTop__dot,
.hsFacts__dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #9aa7a9;
  flex: none;
}

.hs-is-open .hsTop__dot,
.hs-is-open .hsFacts__dot {
  background: #58d39a;
  box-shadow: 0 0 0 4px rgba(88, 211, 154, .18);
}

.hs-is-closed .hsTop__dot,
.hs-is-closed .hsFacts__dot { background: var(--clr-accent-lt); }

.hsTop__right {
  display: inline-flex;
  gap: 1.75rem;
}

.hsTop__link,
.hsTop__link:visited {
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
}

.hsTop__link:hover { text-decoration: underline; }
.hsTop__link i { opacity: .6; margin-right: .3rem; }

/* ---- Navbar (core markup; navbar.js adds .is-scrolled) ---- */
.siteNav {
  background: #fff;
  border-bottom: 1px solid var(--hs-line);
  box-shadow: none;
  transition: background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.siteNav.is-scrolled {
  box-shadow: 0 10px 30px rgba(20, 28, 30, .08);
}

.siteNav__wrap { height: var(--hs-nav-h); }

.siteNav__logo {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
}

.siteNav__logo img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.siteNav__logo-text {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--hs-ink);
  white-space: nowrap;
  transition: color .3s ease;
}

.siteNav__link {
  font-family: var(--font-sans);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--hs-ink);
  white-space: nowrap;
  text-decoration: none;
  transition: color .2s ease;
}

.siteNav__link:hover,
.siteNav__link:focus-visible,
.siteNav__item:hover > .siteNav__link {
  color: var(--clr-accent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 8px;
}

.siteNav__caret { font-size: .65em; margin-left: .2rem; }

.siteNav__action-btn,
.siteNav__action-btn:visited {
  color: var(--hs-ink);
  transition: color .3s ease;
}

.siteNav__hamburger {
  background: transparent;
  border: 1px solid var(--hs-line);
  border-radius: 2px;
  transition: border-color .3s ease;
}

.siteNav__hamburger span {
  background: var(--hs-ink);
  border-radius: 0;
  transition: background-color .3s ease;
}

.siteNav--over:not(.is-scrolled) .siteNav__hamburger { border-color: rgba(255, 255, 255, .45); }

.siteNav__dropdown {
  min-width: 270px;
  padding: .6rem;
  border: 0;
  border-radius: 2px;
  box-shadow: 0 24px 48px rgba(20, 28, 30, .16);
}

.siteNav__dropdown-link {
  border-radius: 0;
  padding: .65rem .85rem;
  font-size: .95rem;
  font-weight: 500;
  color: var(--hs-ink);
}

.siteNav__dropdown-link:hover {
  background: var(--hs-stone);
  color: var(--clr-accent);
}

.siteNav__dropdown-arrow { display: none; }

/* Homepage: transparent over the hero until the page scrolls. */
.siteNav--over:not(.is-scrolled) {
  background: transparent;
  border-bottom-color: transparent;
}

.siteNav--over:not(.is-scrolled) .siteNav__logo-text,
.siteNav--over:not(.is-scrolled) .siteNav__link,
.siteNav--over:not(.is-scrolled) .siteNav__action-btn {
  color: #fff;
}

.siteNav--over:not(.is-scrolled) .siteNav__link:hover,
.siteNav--over:not(.is-scrolled) .siteNav__item:hover > .siteNav__link {
  color: #fff;
}

.siteNav--over:not(.is-scrolled) .siteNav__hamburger span { background: #fff; }

body:has(.siteNav--over) .hsHero {
  margin-top: calc(-1 * var(--hs-nav-h) - 1px);
}

.mobileNav__header { background: var(--hs-deep); }

/* ---- Home hero ---- */
.hsHero {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: max(600px, calc(100svh - 36px));
  overflow: hidden;
  background: var(--hs-deep);
  color: #fff;
}

.hsHero__media,
.hsHero__shade {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.hsHero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

.hsHero__shade {
  background:
    linear-gradient(180deg, rgba(10, 15, 17, .55) 0%, rgba(10, 15, 17, 0) 22%),
    linear-gradient(0deg, rgba(10, 15, 17, .92) 0%, rgba(10, 15, 17, .45) 40%, rgba(10, 15, 17, 0) 68%),
    linear-gradient(90deg, rgba(10, 15, 17, var(--hero-overlay-opacity, .45)) 0%, rgba(10, 15, 17, 0) 62%);
}

.hsHero__inner {
  position: relative;
  padding-top: calc(var(--hs-nav-h) + 3rem);
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.hsHero__title {
  max-width: 11ch;
  margin: 0 0 1.5rem;
  color: #fff;
  font-size: clamp(3rem, 8vw, 7.5rem);
  line-height: .9;
  letter-spacing: -.03em;
  text-transform: uppercase;
  text-wrap: balance;
}

.hsHero__sub {
  max-width: 36rem;
  margin: 0 0 2.25rem;
  color: rgba(255, 255, 255, .88);
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.55;
}

.hsHero__btns {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* When / where / how bar along the foot of the hero */
.hsFacts {
  position: relative;
  border-top: 1px solid rgba(255, 255, 255, .16);
  background: rgba(12, 18, 20, .5);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.hsFacts__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.hsFacts__item {
  padding: 1.35rem 1.5rem 1.4rem 0;
}

.hsFacts__item + .hsFacts__item {
  padding-left: 2rem;
  border-left: 1px solid rgba(255, 255, 255, .16);
}

.hsFacts__item a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.hsFacts__item a:hover .hsFacts__value { text-decoration: underline; text-underline-offset: 4px; }

.hsFacts__label {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: .35rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .62);
}

.hsFacts__value {
  display: block;
  font-size: 1rem;
  font-weight: 500;
  color: #fff;
}

/* ---- Inner page header ---- */
.hsPageHead {
  background-color: var(--hs-deep);
  /* Ordnance-map contour lines, drawn rather than photographed. */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='240' fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.5'%3E%3Cpath d='M-20 200c90-60 160-70 250-30s170 30 250-20 130-50 200-30'/%3E%3Cpath d='M-20 160c90-60 160-70 250-30s170 30 250-20 130-50 200-30'/%3E%3Cpath d='M-20 120c80-50 170-60 250-25s170 25 250-20 130-45 200-25'/%3E%3Cpath d='M-20 80c80-45 170-50 250-20s170 20 250-20 130-40 200-20'/%3E%3Cpath d='M-20 40c80-35 170-40 250-15s170 15 250-15 130-30 200-15'/%3E%3C/svg%3E");
  color: #fff;
  padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(2.75rem, 5vw, 4.25rem);
}

.hsCrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .6);
}

.hsCrumbs li + li::before {
  content: "/";
  margin-right: .5rem;
  opacity: .5;
}

.hsCrumbs a {
  color: #fff;
  text-decoration: none;
}

.hsCrumbs a:hover { text-decoration: underline; text-underline-offset: 4px; }

.hsPageHead__title {
  max-width: 18ch;
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-weight: 800;
  font-size: clamp(2.6rem, 6.5vw, 5.75rem);
  line-height: .92;
  letter-spacing: -.03em;
  text-transform: uppercase;
  text-wrap: balance;
}

.hsPageHead__desc {
  max-width: 40rem;
  margin: 1.25rem 0 0;
  color: rgba(255, 255, 255, .8);
  font-size: 1.15rem;
  line-height: 1.55;
}

/* ---- Sections: rhythm and headings ---- */
/* :nth-child(n) matches core's alternating-gradient rule, which would otherwise win. */
.cms-content-section,
.cms-content-section:nth-child(n) {
  padding-block: var(--hs-gap);
  background: #fff;
}

.cms-content-section > .container,
.cms-content-section > .container.mt-5 {
  margin-top: 0 !important;
}

.cms-content-section.hs-band { background: var(--hs-stone); }

.cms-content-section h1,
.cms-content-section h2,
.cmsBlock__heading {
  margin-bottom: 1.25rem;
  font-size: clamp(2.1rem, 4.4vw, 3.75rem);
  line-height: 1;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.cmsBlock { padding-block: 0; margin-block: 0; }
.cmsBlock__heading::before { display: none; }

.cmsBlock__body {
  max-width: 40rem;
  margin-bottom: 0;
  color: var(--hs-muted);
  font-size: 1.125rem;
  line-height: 1.6;
}

.cmsBlock__body > p:first-child {
  font-size: inherit;
  color: inherit;
}

.cms-content-section .content p:last-child { margin-bottom: 0; }

/* A Cards section: title on the left, introduction on the right, cards below. */
.cmsBlock:has(> .cmsCards) {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  column-gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
}

.cmsBlock:has(> .cmsCards) > .cmsBlock__heading {
  grid-column: 1;
  margin-bottom: 0;
}

.cmsBlock:has(> .cmsCards) > .cmsBlock__body {
  grid-column: 2;
  justify-self: end;
  width: 100%;
  max-width: 32rem;
}

.cmsBlock:has(> .cmsCards) > .cmsCards {
  grid-column: 1 / -1;
}

.cmsBlock > .cmsBlock__heading ~ .cmsCards,
.cmsBlock > .cmsBlock__body ~ .cmsCards {
  margin-top: clamp(2.25rem, 4vw, 3.5rem);
}

/* ---- Cards: one grid for every style ---- */
.cmsCards {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 1.5rem;
  margin: 0;
}

.cmsCards > [class*="col"] {
  grid-column: span 4;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

.cmsCards__card {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Core lifts a card on hover; here the photograph moves instead. */
.cmsCards__card:hover,
.cmsCards__card:focus-within {
  transform: none;
  box-shadow: none;
}

.cmsCards__body { gap: 0; }

.cmsCards__card:has(.stretched-link:focus-visible) {
  outline: 3px solid var(--clr-accent);
  outline-offset: 3px;
}

/* ---- hs-tiles: a photo mosaic ---- */
.hs-tiles .cmsCards {
  gap: 6px;
  grid-auto-rows: clamp(280px, 30vw, 470px);
}

/* Six departments: wide, narrow, narrow / narrow, narrow, wide. :where() keeps
   these no more specific than the tablet and phone rules that undo them. */
.hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :where(:nth-child(n+2):nth-child(-n+5)) { grid-column: span 3; }
.hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :where(:nth-child(1), :nth-child(6)) { grid-column: span 6; }

.hs-tiles .cmsCards__card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
  overflow: hidden;
  background: var(--hs-deep);
}

.hs-tiles .cmsCards__media {
  position: absolute;
  inset: 0;
  margin: 0;
  aspect-ratio: auto;
}

.hs-tiles .cmsCards__media picture { display: block; height: 100%; }

.hs-tiles .cmsCards__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s var(--hs-ease);
}

.hs-tiles .cmsCards__card:hover .cmsCards__img { transform: scale(1.06); }

.hs-tiles .cmsCards__card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(10, 15, 17, .85) 0%, rgba(10, 15, 17, .35) 42%, rgba(10, 15, 17, 0) 70%);
  pointer-events: none;
}

.hs-tiles .cmsCards__card::after {
  content: "\f061";
  position: absolute;
  right: clamp(1.25rem, 2.2vw, 2rem);
  bottom: clamp(1.25rem, 2.2vw, 2rem);
  z-index: 2;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1.5px solid rgba(255, 255, 255, .65);
  border-radius: 50%;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .9rem;
  color: #fff;
  pointer-events: none;
  transition: background-color .3s ease, border-color .3s ease, transform .3s var(--hs-ease);
}

.hs-tiles .cmsCards__card:hover::after {
  background: var(--clr-accent);
  border-color: var(--clr-accent);
  transform: rotate(-45deg);
}

.hs-tiles .cmsCards__body {
  position: static;
  flex: 0 0 auto;
  padding: clamp(1.25rem, 2.2vw, 2rem);
  padding-right: calc(clamp(1.25rem, 2.2vw, 2rem) + 64px);
  background: none;
}

.hs-tiles .cmsCards__title,
.hs-tiles .cmsCards__text {
  position: relative;
  z-index: 2;
  pointer-events: none;
}

.hs-tiles .cmsCards__title {
  margin: 0 0 .45rem;
  color: #fff;
  font-size: clamp(1.5rem, 2.3vw, 2.35rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.hs-tiles .cmsCards__text {
  max-width: 34ch;
  margin: 0;
  color: rgba(255, 255, 255, .82);
  font-size: .975rem;
  line-height: 1.45;
}

.hs-tiles--small .cmsCards { grid-auto-rows: clamp(200px, 19vw, 300px); }
.hs-tiles--small .cmsCards__text { display: none; }

/* ---- hs-guides: editorial cards ---- */
.hs-guides .cmsCards { gap: 2.75rem 1.75rem; }

/* Four run four across and two run two across, rather than leave one or two
   cards stranded on a row of their own. */
.hs-guides .cmsCards:where(:has(> :nth-child(4):last-child)) > [class*="col"] { grid-column: span 3; }
.hs-guides .cmsCards:where(:has(> :nth-child(2):last-child)) > [class*="col"] { grid-column: span 6; }

.hs-guides .cmsCards__card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: transparent;
}

.hs-guides .cmsCards__media {
  aspect-ratio: 4 / 3;
  margin: 0 0 1.35rem;
  overflow: hidden;
  background: var(--hs-stone);
}

.hs-guides .cmsCards__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .9s var(--hs-ease);
}

.hs-guides .cmsCards__card:has(.stretched-link):hover .cmsCards__img { transform: scale(1.05); }

.hs-guides .cmsCards__body {
  position: static;
  padding: 0;
}

.hs-guides .cmsCards__title {
  margin: 0 0 .5rem;
  font-size: clamp(1.3rem, 1.7vw, 1.6rem);
  line-height: 1.15;
  letter-spacing: -.025em;
}

.hs-guides .cmsCards__card:has(.stretched-link) .cmsCards__title::after {
  content: "\f061";
  margin-left: .55rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: .65em;
  color: var(--clr-accent);
  vertical-align: .15em;
  transition: margin-left .25s var(--hs-ease);
}

.hs-guides .cmsCards__card:has(.stretched-link):hover .cmsCards__title { color: var(--clr-accent); }
.hs-guides .cmsCards__card:has(.stretched-link):hover .cmsCards__title::after { margin-left: .9rem; }

.hs-guides .cmsCards__text {
  margin: 0;
  color: var(--hs-muted);
  line-height: 1.55;
}

.hs-guides .cmsCards__icon {
  display: inline-flex;
  margin-bottom: .75rem;
  color: var(--clr-accent);
  font-size: 1.5rem;
}

/* Brand banners are very wide with the logo printed across the middle; a wider
   crop keeps the whole logo in view. */
.hs-brandcards .cmsCards__media {
  aspect-ratio: 2 / 1;
  background: #fff;
  border: 1px solid var(--hs-line);
}

/* ---- hs-icons: a spec sheet, ruled across the top ---- */
.hs-icons .cmsCards {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 2.5rem 2rem;
}

.hs-icons .cmsCards > [class*="col"] { grid-column: auto; }

.hs-icons .cmsCards__card {
  height: 100%;
  padding: 1.75rem 0 0;
  background: transparent;
  border-top: 2px solid var(--hs-ink);
}

.hs-icons .cmsCards__body { padding: 0; }

.hs-icons .cmsCards__icon {
  display: inline-flex;
  margin-bottom: 1.1rem;
  background: none;
  color: var(--clr-accent);
  font-size: 1.6rem;
}

.hs-icons .cmsCards__title {
  margin: 0 0 .5rem;
  font-size: 1.35rem;
  letter-spacing: -.025em;
}

.hs-icons .cmsCards__text {
  margin: 0;
  color: var(--hs-muted);
  line-height: 1.55;
}

/* ---- hs-logos: a ruled strip of logos (highland.js sets it scrolling) ---- */
.hs-logos { overflow: hidden; }

.hs-logos .cmsCards {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--hs-line);
  border-left: 1px solid var(--hs-line);
}

.hs-logos .cmsCards > [class*="col"] {
  grid-column: auto;
  border-right: 1px solid var(--hs-line);
  border-bottom: 1px solid var(--hs-line);
}

.hs-logos .cmsCards.hs-marquee {
  display: flex;
  width: max-content;
  margin-left: calc(-1 * var(--hs-edge));
  border-left: 0;
  border-bottom: 1px solid var(--hs-line);
  animation: hs-marquee var(--hs-marquee-time, 40s) linear infinite;
}

.hs-logos .cmsCards.hs-marquee > [class*="col"] {
  flex: none;
  width: clamp(160px, 15vw, 220px);
  border-bottom: 0;
}

.hs-logos .cmsCards.hs-marquee:hover { animation-play-state: paused; }

@keyframes hs-marquee {
  to { transform: translateX(-50%); }
}

.hs-logos .cmsCards__card {
  position: relative;
  display: flex;
  align-items: stretch;
  background: transparent;
}

.hs-logos .cmsCards__media {
  width: 100%;
  height: 120px;
  margin: 0;
  aspect-ratio: auto;
  background: transparent;
}

.hs-logos .cmsCards__img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 1.6rem 1.75rem;
  object-fit: contain;
  filter: grayscale(1);
  mix-blend-mode: multiply;
  opacity: .78;
  transition: filter .3s ease, opacity .3s ease;
}

.hs-logos .cmsCards__card:hover .cmsCards__img {
  filter: none;
  opacity: 1;
}

.hs-logos .cmsCards__body {
  position: static;
  padding: 0;
}

.hs-logos .cmsCards__title {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

/* ---- hs-split: image to the screen edge, text alongside ---- */
.cms-content-section.hs-split { padding-block: 0; }

.hs-split > .container {
  max-width: none;
  margin: 0 !important;
  padding: 0;
}

.hs-split .row {
  --bs-gutter-x: 0;
  margin: 0;
}

.hs-split .col-md-12 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: minmax(var(--hs-gap), 1fr) auto auto minmax(var(--hs-gap), 1fr);
  min-height: clamp(460px, 46vw, 700px);
  padding: 0;
}

.hs-split .col-md-12 > h1,
.hs-split .col-md-12 > h2,
.hs-split .col-md-12 > .content {
  grid-column: 2;
  padding-left: clamp(2rem, 6vw, 6.5rem);
  padding-right: var(--hs-edge);
}

.hs-split .col-md-12 > h1,
.hs-split .col-md-12 > h2 { grid-row: 2; }

.hs-split .col-md-12 > .content {
  grid-row: 3;
  color: var(--hs-text);
  font-size: 1.125rem;
  line-height: 1.65;
}

.hs-split .col-md-12 > .content > *,
.hs-split .col-md-12 > h1,
.hs-split .col-md-12 > h2 { max-width: calc(36rem + var(--hs-edge) + 6.5rem); }

.hs-split .content p + p:has(> .hs-more) { margin-top: 2rem; }

.hs-split .col-md-12 > .image,
.hs-split .col-md-12 > .data {
  position: relative;
  grid-column: 1;
  grid-row: 1 / -1;
  float: none;
  width: 100%;
  max-width: none;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
}

.hs-split .col-md-12 > .clearfix { display: none; }

/* Image Right and Map Right: mirror it. */
.hs-split .col-md-12:has(> .image-container-right) > h1,
.hs-split .col-md-12:has(> .image-container-right) > h2,
.hs-split .col-md-12:has(> .image-container-right) > .content,
.hs-split .col-md-12:has(> .map-container-right) > h1,
.hs-split .col-md-12:has(> .map-container-right) > h2,
.hs-split .col-md-12:has(> .map-container-right) > .content {
  grid-column: 1;
  padding-left: var(--hs-edge);
  padding-right: clamp(2rem, 6vw, 6.5rem);
}

.hs-split .col-md-12 > .image-container-right,
.hs-split .col-md-12 > .map-container-right {
  grid-column: 2;
}

.hs-split .image a,
.hs-split .image picture {
  display: block;
  height: 100%;
}

.hs-split .image img,
.hs-split .data iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  transition: transform 1.2s var(--hs-ease);
}

.hs-split .image:hover img { transform: scale(1.03); }

.hs-split .cms-lightbox-hover { z-index: 2; }

/* ---- hs-dark ---- */
.cms-content-section.hs-dark {
  background: var(--hs-deep);
  color: rgba(255, 255, 255, .8);
}

.hs-dark h1,
.hs-dark h2,
.hs-dark h3,
.hs-dark .cmsBlock__heading,
.hs-dark .cmsCards__title { color: #fff; }

.hs-dark .cmsBlock__body,
.hs-dark .cmsCards__text,
.hs-split.hs-dark .col-md-12 > .content { color: rgba(255, 255, 255, .78); }

.hs-dark .content a,
.hs-dark .cmsBlock__body a { color: #fff; }

.hs-dark .content a.hs-more,
.hs-dark .hs-more { color: #fff; }

.hs-dark .hs-icons .cmsCards__card,
.hs-dark.hs-icons .cmsCards__card { border-top-color: rgba(255, 255, 255, .8); }

/* ---- hs-gallery: a tight grid; six photos get a feature ---- */
.hs-gallery h1,
.hs-gallery h2 { margin-bottom: clamp(2rem, 4vw, 3rem) !important; }

.hs-gallery .row {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: clamp(200px, 24vw, 360px);
  gap: 6px;
  margin: 0;
}

.hs-gallery .row:has(> :nth-child(4n):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 19vw, 300px); }

.hs-gallery .row > * {
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
}

.hs-gallery .row:has(> :nth-child(6):last-child) > :first-child {
  grid-column: span 2;
  grid-row: span 2;
}

.hs-gallery figure,
.hs-gallery .cms-lightbox,
.hs-gallery picture {
  display: block;
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.hs-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform .9s var(--hs-ease);
}

.hs-gallery .cms-lightbox:hover img { transform: scale(1.05); }

/* ---- hs-narrow: reading width ---- */
.hs-narrow .container > .row > .col-md-12,
.hs-narrow .cmsBlock {
  max-width: 46rem;
  margin-inline: auto;
}

.hs-narrow .content {
  max-width: none;
  margin-bottom: 0;
  color: var(--hs-text);
  font-size: 1.125rem;
  line-height: 1.7;
}

.hs-narrow .content li + li { margin-top: .5rem; }

.hs-prose h3 {
  margin: 2.25rem 0 .5rem;
  font-size: 1.4rem;
  letter-spacing: -.025em;
}

/* Checklists and the story timeline */
.hs-check {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.cmsBlock__body ul.hs-check > li {
  position: relative;
  padding-left: 2rem;
}

.cmsBlock__body ul.hs-check > li::before {
  content: "\f00c";
  position: absolute;
  left: 0;
  top: .1rem;
  width: auto;
  height: auto;
  background: none;
  border-radius: 0;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--clr-accent);
}

.cmsBlock__body ol.hs-timeline {
  display: block;
  margin: 2rem 0 0;
  padding: 0;
  list-style: none;
  border-left: 2px solid var(--hs-ink);
}

.cmsBlock__body ol.hs-timeline > li {
  position: relative;
  margin: 0 0 2rem;
  padding-left: 2rem;
}

.cmsBlock__body ol.hs-timeline > li:last-child { margin-bottom: 0; }

.cmsBlock__body ol.hs-timeline > li::before {
  content: "";
  position: absolute;
  left: -7px;
  top: .7rem;
  width: 12px;
  height: 12px;
  border-radius: 0;
  background: var(--clr-accent);
}

.hs-timeline strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1.1;
  color: var(--hs-ink);
}

/* ---- Closing call to action ---- */
.hsCta {
  background: var(--clr-accent);
  color: #fff;
  padding-block: clamp(3.5rem, 7vw, 6rem);
}

.hsCta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 2rem 4rem;
}

.hsCta__title {
  max-width: 16ch;
  margin: 0 0 1rem;
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 4.25rem);
  line-height: .98;
  letter-spacing: -.04em;
  text-wrap: balance;
}

.hsCta__body {
  margin: 0;
  color: rgba(255, 255, 255, .9);
  font-size: 1.15rem;
}

.hsCta__btns {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* ---- Search page (core view: public/search/results.php) ----
   Restyled from here rather than edited, so a core merge can't conflict. The
   header matches .hsPageHead; core's curved bottom edge is removed. */
.search-header {
  overflow: visible;
  padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(2.75rem, 5vw, 4.25rem);
  background-color: var(--hs-deep);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='240' fill='none' stroke='%23ffffff' stroke-opacity='.06' stroke-width='1.5'%3E%3Cpath d='M-20 200c90-60 160-70 250-30s170 30 250-20 130-50 200-30'/%3E%3Cpath d='M-20 160c90-60 160-70 250-30s170 30 250-20 130-50 200-30'/%3E%3Cpath d='M-20 120c80-50 170-60 250-25s170 25 250-20 130-45 200-25'/%3E%3Cpath d='M-20 80c80-45 170-50 250-20s170 20 250-20 130-40 200-20'/%3E%3Cpath d='M-20 40c80-35 170-40 250-15s170 15 250-15 130-30 200-15'/%3E%3C/svg%3E");
}

.search-header::after { display: none; }

.search-header .breadcrumb {
  margin-bottom: 1.5rem;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.search-header .breadcrumb-item a { color: #fff !important; }
.search-header .breadcrumb-item a:hover { text-decoration: underline !important; text-underline-offset: 4px; }
.search-header .breadcrumb-item.active { color: rgba(255, 255, 255, .6) !important; }
.search-header .breadcrumb-item + .breadcrumb-item::before { content: "/"; color: rgba(255, 255, 255, .35); }

.search-header .search-header__title {
  margin: 0 0 2rem;
  color: #fff;
  font-size: clamp(2.6rem, 6.5vw, 5.75rem);
  font-weight: 800;
  line-height: .92;
  letter-spacing: -.03em;
  text-transform: uppercase;
}

.search-header__title > i { display: none; }

/* The view sets max-width inline. */
.search-header form { max-width: 44rem !important; }

.search-header .input-group { flex-wrap: nowrap; }

.search-header .form-control {
  height: 64px;
  padding-inline: 1.5rem;
  border: 0;
  border-radius: 2px 0 0 2px !important;
  font-size: 1.125rem;
  color: var(--hs-ink);
}

.search-header .form-control:focus {
  box-shadow: inset 0 0 0 2px var(--clr-accent);
}

.search-header .btn-primary {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding-inline: 2rem !important;
  border: 0;
  border-radius: 0 2px 2px 0 !important;
  background: var(--clr-accent);
  color: #fff;
  font-size: .8125rem;
  font-weight: 700 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.search-header .btn-primary:hover,
.search-header .btn-primary:focus-visible {
  background: var(--hs-accent-dk);
  color: #fff;
}

.search-header .btn-primary:focus-visible {
  outline: 3px solid var(--clr-accent-lt);
  outline-offset: 3px;
}

/* Results */
.search-header + section {
  padding-block: clamp(3rem, 6vw, 5.5rem) var(--hs-gap) !important;
}

.search-header + section > .container > .d-flex:first-child p {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hs-muted) !important;
}

.search-header + section > .container > .d-flex:first-child strong { color: var(--hs-ink) !important; }

.search-result-card {
  margin: 0 !important;
  padding: 1.75rem 0 !important;
  background: transparent;
  border: 0 !important;
  border-top: 1px solid var(--hs-line) !important;
  border-radius: 0 !important;
  transition: none;
}

.search-result-card:last-child { border-bottom: 1px solid var(--hs-line) !important; }

.search-result-card:hover,
.search-result-card:focus {
  background: transparent;
  transform: none;
  box-shadow: none !important;
}

.search-result-card:focus-visible {
  outline: 3px solid var(--clr-accent);
  outline-offset: 4px;
}

/* The document badge adds nothing beside a title. */
.search-result-card .flex-shrink-0.mt-1 { display: none; }

.search-result-card h6 {
  margin-bottom: .5rem !important;
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  font-weight: 800 !important;
  letter-spacing: -.025em;
  color: var(--hs-ink) !important;
  transition: color .2s ease;
}

.search-result-card:hover h6 { color: var(--clr-accent) !important; }

.search-result-card p.small {
  max-width: 52rem;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--hs-muted) !important;
}

.search-result-card span.text-muted {
  font-size: .7rem !important;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.search-result-card .fa-link { display: none; }

/* Core marks this column "min-width-0", which Bootstrap doesn't define, so a
   long excerpt or URL pushed it off the side of a phone. */
.search-result-card .flex-grow-1 { min-width: 0; }
.search-result-card span.text-muted { overflow-wrap: anywhere; }

.search-result-card .fa-chevron-right {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1.5px solid var(--hs-line);
  border-radius: 50%;
  color: var(--hs-ink) !important;
  font-size: .85rem;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.search-result-card:hover .fa-chevron-right {
  border-color: var(--clr-accent);
  background: var(--clr-accent);
  color: #fff !important;
}

.highlight {
  background: color-mix(in srgb, var(--clr-accent) 18%, transparent);
  border-radius: 0;
}

/* Empty and too-short states */
.search-header + section .text-center > i.fa-4x {
  font-size: 2.5rem;
  color: var(--clr-accent) !important;
  opacity: .85;
}

.search-header + section .text-center h4 {
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 800;
  letter-spacing: -.03em;
  color: var(--hs-ink) !important;
}

.search-header + section .text-center .btn {
  border-radius: 2px;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Tabs and pagination, for when results span types or pages */
.search-header + section .nav-tabs {
  border-bottom: 1px solid var(--hs-line);
}

.search-header + section .nav-tabs .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hs-muted);
}

.search-header + section .nav-tabs .nav-link.active {
  border-bottom-color: var(--clr-accent);
  background: transparent;
  color: var(--hs-ink);
}

.search-header + section .page-link {
  border-radius: 0 !important;
  color: var(--hs-ink);
}

.search-header + section .page-item.active .page-link {
  border-color: var(--clr-accent);
  background: var(--clr-accent);
  color: #fff;
}

@media (max-width: 575.98px) {
  .search-header .form-control { height: 56px; padding-inline: 1rem; font-size: 1rem; }
  .search-header .btn-primary { padding-inline: 1.1rem !important; }
  .search-header .btn-primary .fa-search { margin: 0 !important; }
  .search-result-card .flex-shrink-0.ms-auto { display: none; }
}

/* ---- Contact page (core view): core's submit button is a fixed green ---- */
.contact-section { padding-block: var(--hs-gap); }

.contact-info-card,
.contact-form-card,
.contact-map,
.contact-section .form-control {
  border-radius: 2px;
}

.contact-info-card { background: var(--hs-deep); }

.contact-submit-btn {
  border-radius: 2px;
  background: var(--clr-accent);
  box-shadow: none;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.contact-submit-btn:hover,
.contact-submit-btn:focus,
.contact-submit-btn:focus-visible {
  background: var(--hs-accent-dk);
  box-shadow: none;
}

.contact-submit-btn:focus-visible { outline-color: rgba(180, 73, 44, .35); }

/* Sharing buttons don't earn their place on a shop's department pages. */
section:has(> .container > .socialShare) { display: none; }

/* ---- Footer ---- */
.hsFooter {
  background: var(--hs-deep);
  color: rgba(255, 255, 255, .7);
  padding-top: clamp(3.5rem, 7vw, 6rem);
  font-size: .95rem;
}

.hsFooter a,
.hsFooter a:visited {
  color: rgba(255, 255, 255, .88);
  text-decoration: none;
}

.hsFooter a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.hsFooter__motto {
  margin: 0 0 clamp(2.5rem, 5vw, 4.5rem);
  padding-bottom: clamp(2.5rem, 5vw, 4.5rem);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
  font-family: var(--font-serif);
  font-size: clamp(2.75rem, 8.5vw, 8.25rem);
  font-weight: 800;
  line-height: .9;
  letter-spacing: -.05em;
  color: #fff;
}

.hsFooter__motto::after {
  content: ".";
  color: var(--clr-accent-lt);
}

.hsFooter__grid {
  display: grid;
  grid-template-columns: 1.5fr 1.35fr 1fr 1fr 1fr;
  gap: 2.5rem 2rem;
}

.hsFooter__logo {
  display: inline-flex;
  align-items: center;
  gap: .85rem;
}

.hsFooter a.hsFooter__logo:hover { text-decoration: none; }

.hsFooter__logo img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  border-radius: 50%;
  background: #fff;
  padding: 2px;
}

.hsFooter__name {
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
}

.hsFooter__tagline {
  max-width: 22rem;
  margin: 1.25rem 0 1rem;
  line-height: 1.6;
}

.hsFooter__social {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.hsFooter__social i { margin-right: .4rem; }

.hsFooter__head {
  margin: 0 0 1.1rem;
  color: rgba(255, 255, 255, .5);
  font-family: var(--font-sans);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.hsFooter__links {
  margin: 0;
  padding: 0;
  list-style: none;
}

.hsFooter__links li + li { margin-top: .55rem; }

.hsFooter__hours { margin: 0 0 1rem; }

.hsFooter__hours > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  max-width: 15rem;
}

.hsFooter__hours dt { font-weight: 400; }
.hsFooter__hours dd { margin: 0; color: #fff; }

.hsFooter__email { overflow-wrap: anywhere; }

.hsFooter__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .75rem 2rem;
  margin-top: clamp(3rem, 5vw, 4.5rem);
  padding-block: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, .14);
  font-size: .8rem;
  color: rgba(255, 255, 255, .55);
}

.hsFooter__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}

/* ---- Scroll-in motion (highland.js; never with reduced motion) ---- */
.hs-rise {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s ease, transform .9s var(--hs-ease);
}

.hs-rise.hs-in {
  opacity: 1;
  transform: none;
}

.cmsCards > .hs-rise:nth-child(3n+2),
.hs-gallery .row > .hs-rise:nth-child(3n+2) { transition-delay: .08s; }

.cmsCards > .hs-rise:nth-child(3n+3),
.hs-gallery .row > .hs-rise:nth-child(3n+3) { transition-delay: .16s; }

@media (prefers-reduced-motion: reduce) {
  .hs-rise { opacity: 1; transform: none; transition: none; }
  .hs-tiles .cmsCards__img,
  .hs-guides .cmsCards__img,
  .hs-gallery img,
  .hs-split .image img { transition: none; }
}

/* ---- Laptops ---- */
@media (max-width: 1199.98px) {
  .siteNav__link { font-size: .7rem; letter-spacing: .09em; }
  .siteNav__logo-text { font-size: .95rem; }
}

/* ---- Tablets ---- */
@media (max-width: 991.98px) {
  .hs-tiles .cmsCards > [class*="col"],
  .hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :nth-child(n) { grid-column: span 6; }

  .hs-guides .cmsCards > [class*="col"] { grid-column: span 6; }

  .hs-logos .cmsCards { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .hsCta__inner { grid-template-columns: 1fr; }

  .hsFooter__grid { grid-template-columns: repeat(3, 1fr); }
  .hsFooter__brand { grid-column: 1 / -1; }
}

/* ---- Phones ---- */
@media (max-width: 767.98px) {
  :root { --hs-nav-h: 64px; }

  .hsTop__link--address { display: none; }
  .hsTop { font-size: .75rem; }

  .siteNav__logo img { width: 40px; height: 40px; }

  .hsHero { min-height: calc(100svh - 36px); }

  .hsHero__title { font-size: clamp(2.6rem, 12.5vw, 4rem); }

  .hsHero__btns .hsBtn { flex: 1 1 100%; }

  .hsFacts__list { grid-template-columns: 1fr; }

  .hsFacts__item,
  .hsFacts__item + .hsFacts__item {
    padding: .75rem 0;
    border-left: 0;
  }

  .hsFacts__item + .hsFacts__item { border-top: 1px solid rgba(255, 255, 255, .14); }

  .hsFacts__label { margin-bottom: .2rem; font-size: .65rem; }
  .hsFacts__value { font-size: .925rem; }

  .cmsBlock:has(> .cmsCards) { grid-template-columns: 1fr; }
  .cmsBlock:has(> .cmsCards) > .cmsBlock__body {
    grid-column: 1;
    justify-self: start;
    margin-top: 1rem;
  }

  .cmsCards > [class*="col"] { grid-column: 1 / -1; }

  .hs-tiles .cmsCards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 230px;
  }

  .hs-tiles .cmsCards > [class*="col"],
  .hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :nth-child(n) { grid-column: span 1; }

  /* Six departments: wide, then two pairs, then wide. */
  .hs-tiles .cmsCards > :first-child,
  .hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :nth-child(1):nth-child(n),
  .hs-tiles .cmsCards:has(> :nth-child(6):last-child) > :nth-child(6):nth-child(n) { grid-column: 1 / -1; }

  .hs-tiles .cmsCards > :nth-child(n+2):nth-child(-n+5) .cmsCards__text { display: none; }

  .hs-tiles .cmsCards > :nth-child(n+2):nth-child(-n+5) .cmsCards__body { padding: 1rem 1rem 1.1rem; }
  .hs-tiles .cmsCards > :nth-child(n+2):nth-child(-n+5) .cmsCards__title { font-size: 1.25rem; padding-right: 0; }
  .hs-tiles .cmsCards > :nth-child(n+2):nth-child(-n+5) .cmsCards__card::after { display: none; }

  .hs-tiles--small .cmsCards { grid-auto-rows: 180px; }

  .hs-guides .cmsCards > [class*="col"] { grid-column: 1 / -1; }

  .hs-logos .cmsCards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hs-logos .cmsCards__media { height: 96px; }
  .hs-logos .cmsCards__img { padding: 1.1rem 1.25rem; }

  .hs-split .col-md-12 {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .hs-split .col-md-12 > .image,
  .hs-split .col-md-12 > .data {
    order: -1;
    aspect-ratio: 4 / 3;
    min-height: 0;
  }

  .hs-split .col-md-12 > h1,
  .hs-split .col-md-12 > h2,
  .hs-split .col-md-12 > .content,
  .hs-split .col-md-12:has(> .image-container-right) > h1,
  .hs-split .col-md-12:has(> .image-container-right) > h2,
  .hs-split .col-md-12:has(> .image-container-right) > .content,
  .hs-split .col-md-12:has(> .map-container-right) > h1,
  .hs-split .col-md-12:has(> .map-container-right) > h2,
  .hs-split .col-md-12:has(> .map-container-right) > .content {
    padding-inline: var(--hs-gutter);
  }

  .hs-split .col-md-12 > h1,
  .hs-split .col-md-12 > h2 { padding-top: 2.75rem; }

  .hs-split .col-md-12 > .content { padding-bottom: 3.5rem; }

  .hs-gallery .row,
  .hs-gallery .row:has(> :nth-child(4n):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 44vw;
  }

  .hs-gallery .row:has(> :nth-child(6):last-child) > :first-child {
    grid-column: auto;
    grid-row: auto;
  }

  .hsFooter__grid { grid-template-columns: repeat(2, 1fr); }

  /* Address and hours need the full width on a phone. */
  .hsFooter__brand + .hsFooter__col { grid-column: 1 / -1; }

  .hsFooter__bottom { flex-direction: column; }
}
