@import url('https://fonts.googleapis.com/css2?family=Libre+Bodoni:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap');

.sh101-businesses,
.sh101-embed-page {
  --sh101-navy: #1e427b;
  --sh101-navy-deep: #16335f;
  --sh101-navy-muted: #3d6b9b;
  --sh101-sky: #a9d6e7;
  --sh101-sky-soft: #eaf4f8;
  --sh101-paper: #f6fbfd;
  --sh101-gold: #f8de9c;
  --sh101-gold-ink: #72570b;
  --sh101-gold-hover: #f3d28a;
  --sh101-white: #fff;
  --sh101-charcoal: #2b2728;
  --sh101-line: rgba(30, 66, 123, .18);
  --sh101-line-solid: #c9dee9;
  --sh101-line-strong: #afcbe0;
  --sh101-shadow: 0 1.25rem 3rem rgba(22, 51, 95, .16);
  --sh101-radius: .375rem;
  --sh101-ease: cubic-bezier(.22, 1, .36, 1);
  --sh101-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --sh101-serif: 'Libre Bodoni', Georgia, 'Times New Roman', serif;
  display: block;
  color: var(--sh101-navy);
  font-family: var(--sh101-sans);
  line-height: 1.55;
  text-align: left;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.sh101-businesses *,
.sh101-businesses *::before,
.sh101-businesses *::after,
.sh101-embed-page *,
.sh101-embed-page *::before,
.sh101-embed-page *::after { box-sizing: border-box; }

.sh101-businesses button,
.sh101-businesses input,
.sh101-businesses select,
.sh101-businesses a { font: inherit; }

.sh101-businesses button,
.sh101-businesses input,
.sh101-businesses select {
  box-sizing: border-box;
  margin: 0;
}

.sh101-businesses button {
  appearance: none;
  padding: 0;
}

.sh101-businesses button,
.sh101-businesses a,
.sh101-businesses input,
.sh101-businesses select { -webkit-tap-highlight-color: transparent; }

.sh101-businesses button:focus-visible,
.sh101-businesses a:focus-visible,
.sh101-businesses input:focus-visible,
.sh101-businesses select:focus-visible {
  outline: .1875rem solid var(--sh101-navy-deep);
  outline-offset: .25rem;
}

.sh101-icon {
  width: 1.125rem;
  height: 1.125rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.sh101-sr-only {
  position: absolute;
  width: .0625rem;
  height: .0625rem;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.sh101-shell {
  width: 100%;
  max-width: none;
  margin-inline: auto;
  overflow: hidden;
  background: var(--sh101-white);
}

.sh101-directory-page-bar {
  height: 1.25rem;
  border-bottom: .25rem solid var(--sh101-gold);
  background: var(--sh101-navy-deep);
}

.sh101-directory-hero {
  padding: clamp(1.5rem, 4vw, 4rem) clamp(1rem, 4vw, 3.5rem) clamp(1.75rem, 3vw, 2.75rem);
  background: var(--sh101-sky);
  color: var(--sh101-navy);
}

.sh101-directory-hero-grid {
  width: min(100%, 78rem);
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(17rem, .62fr) minmax(0, 1.38fr);
  align-items: stretch;
}

.sh101-directory-hero-intro {
  min-height: clamp(15rem, 30vw, 21rem);
  padding: clamp(1.75rem, 3.5vw, 3rem);
  display: flex;
  align-items: flex-end;
  background: var(--sh101-navy);
  color: var(--sh101-white);
}

.sh101-directory-hero h1,
.sh101-directory-hero h2,
.sh101-directory-hero h3 {
  max-width: 9ch;
  margin: 0;
  color: var(--sh101-white);
  font-family: var(--sh101-serif);
  font-size: clamp(2.75rem, 4vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .9;
  text-wrap: balance;
}

.sh101-directory-hero-stage {
  position: relative;
  min-height: clamp(15rem, 30vw, 21rem);
  padding: clamp(1.75rem, 3.5vw, 3rem);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--sh101-sky-soft);
}

.sh101-directory-hero-stage::before {
  position: absolute;
  top: 31%;
  right: 0;
  left: 0;
  height: 38%;
  background: var(--sh101-gold);
  content: '';
}

.sh101-directory-hero-stage p {
  position: relative;
  z-index: 1;
  max-width: 28ch;
  margin: 0;
  color: var(--sh101-navy);
  font-family: var(--sh101-serif);
  font-size: clamp(1.3rem, 2.2vw, 1.9rem);
  line-height: 1.08;
  text-wrap: balance;
}

.sh101-directory-tools {
  width: min(100%, 78rem);
  margin: 1.25rem auto 0;
  padding: .75rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem) auto;
  align-items: stretch;
  gap: .75rem;
  border-top: .25rem solid var(--sh101-gold);
  background: var(--sh101-navy);
}

.sh101-directory-search {
  position: relative;
  width: 100%;
  min-width: 0;
}

.sh101-directory-search > .sh101-icon {
  position: absolute;
  top: 50%;
  left: .875rem;
  color: rgba(255, 255, 255, .7);
  transform: translateY(-50%);
  pointer-events: none;
}

.sh101-directory-search input {
  display: block;
  width: 100%;
  min-height: 2.875rem;
  border: .0625rem solid rgba(169, 214, 231, .52);
  border-radius: 0;
  padding: .6875rem .875rem .6875rem 2.625rem;
  background: rgba(255, 255, 255, .08);
  color: var(--sh101-white);
  font-size: 1rem;
  transition: border-color 160ms var(--sh101-ease), background-color 160ms var(--sh101-ease);
}

.sh101-directory-search input::placeholder { color: rgba(255, 255, 255, .68); }
.sh101-directory-search input:focus { border-color: var(--sh101-gold); outline: 0; }

.sh101-directory-filter,
.sh101-directory-submit {
  min-height: 2.875rem;
  border: .0625rem solid var(--sh101-gold);
  border-radius: 0;
  padding: .6875rem .9375rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: var(--sh101-gold);
  color: var(--sh101-gold-ink);
  cursor: pointer;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}

.sh101-directory-filter { width: 100%; min-width: 0; display: block; appearance: auto; }
.sh101-directory-submit { width: auto; justify-self: start; white-space: nowrap; }
.sh101-directory-submit .sh101-icon { width: 1rem; height: 1rem; }
.sh101-directory-filter:hover,
.sh101-directory-submit:hover { background: var(--sh101-gold-hover); border-color: var(--sh101-gold-hover); }

.sh101-stale-note {
  border-bottom: .0625rem solid var(--sh101-line-solid);
  padding: .75rem clamp(1rem, 4vw, 3.5rem);
  background: var(--sh101-gold);
  color: var(--sh101-gold-ink);
  font-size: .8125rem;
}

.sh101-directory-body {
  padding: clamp(3rem, 8vw, 7rem) clamp(1rem, 3vw, 3rem) clamp(4rem, 8vw, 7.5rem);
  background: var(--sh101-white);
}

.sh101-business-list {
  max-width: 67.5rem;
  margin-inline: auto;
  border-top: .0625rem solid var(--sh101-navy);
}

.sh101-business-row {
  min-height: 9.75rem;
  border-bottom: .0625rem solid var(--sh101-line-solid);
  padding: 1.375rem 0;
  display: grid;
  grid-template-columns: 5.375rem minmax(0, 1fr) 2.75rem 2.75rem;
  align-items: center;
  gap: clamp(.75rem, 2.5vw, 1.5rem);
  transition: background-color 180ms var(--sh101-ease);
}

.sh101-business-row:hover {
  background: var(--sh101-sky-soft);
}

.sh101-business-logo,
.sh101-profile-mark {
  width: 5.375rem;
  height: 5.375rem;
  border: .0625rem solid var(--sh101-navy);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--sh101-sky-soft);
  color: var(--sh101-navy);
}

.sh101-business-logo img,
.sh101-profile-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.sh101-business-logo .sh101-icon,
.sh101-profile-mark .sh101-icon { width: 2rem; height: 2rem; }

.sh101-business-open {
  width: 100%;
  min-width: 0;
  border: 0;
  padding: 0;
  display: block;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
  white-space: normal;
}

.sh101-business-open:hover,
.sh101-business-open:focus-visible,
.sh101-business-open:active {
  background: transparent;
  color: var(--sh101-navy);
}

.sh101-business-open:hover .sh101-business-name {
  text-decoration: underline;
  text-decoration-color: var(--sh101-gold);
  text-decoration-thickness: .1875rem;
  text-underline-offset: .375rem;
}

.sh101-business-name {
  display: block;
  margin: 0;
  color: var(--sh101-navy);
  font-family: var(--sh101-serif);
  font-size: clamp(1.625rem, 3.5vw, 2.5rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: 1;
  text-wrap: balance;
  transition: color 160ms var(--sh101-ease);
}

.sh101-business-copy {
  max-width: 54ch;
  margin: .5rem 0 0;
  color: var(--sh101-navy-muted);
  font-size: .9375rem;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}

.sh101-business-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .375rem .9375rem;
  margin-top: .625rem;
  color: var(--sh101-navy-muted);
  font-size: .875rem;
  line-height: 1.35;
  white-space: normal;
}

.sh101-business-meta span + span { position: relative; padding-left: .9375rem; }
.sh101-business-meta span + span::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: .3125rem;
  height: .3125rem;
  border-radius: 50%;
  background: var(--sh101-gold);
  content: '';
  transform: translateY(-50%);
}

.sh101-save,
.sh101-business-arrow {
  width: 2.75rem;
  height: 2.75rem;
  border: .0625rem solid var(--sh101-line-solid);
  display: grid;
  place-items: center;
  background: var(--sh101-white);
  color: var(--sh101-navy);
}

.sh101-save { cursor: pointer; }
.sh101-save { padding: 0; }
.sh101-save:hover { border-color: var(--sh101-navy); background: var(--sh101-sky-soft); color: var(--sh101-navy); }
.sh101-save[aria-pressed="true"] { border-color: var(--sh101-navy); background: var(--sh101-navy); color: var(--sh101-white); }
.sh101-save[aria-pressed="true"] .sh101-icon { fill: currentColor; }
.sh101-business-arrow { transition: border-color 160ms var(--sh101-ease), background-color 160ms var(--sh101-ease); }
.sh101-business-row:hover .sh101-business-arrow { border-color: var(--sh101-navy); background: var(--sh101-gold); }

.sh101-empty,
.sh101-error {
  min-height: 18rem;
  border-top: .0625rem solid var(--sh101-navy);
  border-bottom: .0625rem solid var(--sh101-line-solid);
  padding: 3rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--sh101-white);
  color: var(--sh101-navy-muted);
  text-align: center;
}

.sh101-empty-icon { margin-bottom: .75rem; color: var(--sh101-navy); }
.sh101-empty-icon .sh101-icon { width: 2rem; height: 2rem; }
.sh101-empty h2,
.sh101-error strong { margin: 0 0 .375rem; color: var(--sh101-navy); font-family: var(--sh101-serif); font-size: 1.75rem; font-weight: 500; line-height: 1; }
.sh101-empty p,
.sh101-error p { max-width: 30rem; margin: 0; font-size: .9375rem; }
.sh101-button { min-height: 2.75rem; margin-top: 1rem; border: .0625rem solid var(--sh101-navy); border-radius: var(--sh101-radius); padding: .6875rem 1rem; background: var(--sh101-navy); color: var(--sh101-white); cursor: pointer; font-weight: 700; }
.sh101-button:hover { background: var(--sh101-navy-deep); }
.sh101-loading { min-height: 14rem; display: flex; align-items: center; justify-content: center; gap: .75rem; color: var(--sh101-navy-muted); }
.sh101-loading span { width: 1.25rem; height: 1.25rem; border: .125rem solid var(--sh101-line-solid); border-top-color: var(--sh101-navy); border-radius: 50%; animation: sh101-spin 700ms linear infinite; }
@keyframes sh101-spin { to { transform: rotate(360deg); } }

.sh101-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  padding: 2rem 1.5rem;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  background: rgba(20, 36, 55, .64);
  animation: sh101-fade 180ms ease-out;
}

@keyframes sh101-fade { from { opacity: 0; } }

.sh101-modal {
  width: min(67.5rem, 100%);
  min-height: min(45rem, calc(100vh - 4rem));
  margin: auto;
  display: grid;
  grid-template-columns: minmax(15.625rem, .76fr) minmax(0, 1.24fr);
  background: var(--sh101-white);
  box-shadow: var(--sh101-shadow);
  animation: sh101-modal-in 230ms var(--sh101-ease);
}

@keyframes sh101-modal-in { from { opacity: 0; transform: translateY(.9375rem); } }

.sh101-profile-visual {
  position: relative;
  min-height: 33.125rem;
  padding: 2.125rem 1.875rem 1.9375rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  background: var(--sh101-charcoal);
  color: var(--sh101-white);
}

.sh101-profile-visual::before,
.sh101-profile-visual::after {
  position: absolute;
  right: -4.25rem;
  bottom: 3.8125rem;
  border: .0625rem solid rgba(169, 214, 231, .5);
  border-radius: 50%;
  content: '';
}

.sh101-profile-visual::before { width: 15rem; height: 15rem; }
.sh101-profile-visual::after { right: -2.25rem; bottom: 5.875rem; width: 11rem; height: 11rem; }
.sh101-profile-visual > * { position: relative; z-index: 1; }

.sh101-profile-mark { width: 9.375rem; height: 9.375rem; border: .125rem solid var(--sh101-sky); background: var(--sh101-navy-deep); color: var(--sh101-sky); }
.sh101-profile-mark .sh101-icon { width: 3rem; height: 3rem; }
.sh101-profile-visual-bottom { max-width: 19ch; }
.sh101-profile-visual-bottom h2 { margin: 0; color: var(--sh101-white); font-family: var(--sh101-serif); font-size: clamp(2.5rem, 5vw, 4.25rem); font-weight: 500; letter-spacing: -.06em; line-height: .9; text-wrap: balance; }
.sh101-profile-visual-bottom p { margin: 1.25rem 0 0; color: rgba(255, 255, 255, .68); font-size: .875rem; line-height: 1.4; }

.sh101-profile-content { min-width: 0; padding: 2.25rem 2.4375rem 2rem; background: var(--sh101-white); }
.sh101-profile-close-row { display: flex; justify-content: flex-end; margin-bottom: 2rem; }
.sh101-modal-close { width: 2.75rem; height: 2.75rem; border: .0625rem solid var(--sh101-line-solid); display: grid; place-items: center; background: var(--sh101-white); color: var(--sh101-navy); cursor: pointer; }
.sh101-modal-close:hover { border-color: var(--sh101-navy); background: var(--sh101-sky-soft); }
.sh101-profile-copy { max-width: 43ch; margin: 0 0 1.8125rem; color: var(--sh101-navy-muted); font-size: 1.125rem; line-height: 1.55; }
.sh101-profile-actions { display: flex; flex-wrap: wrap; gap: .625rem; margin-bottom: 1.6875rem; }
.sh101-profile-website,
.sh101-profile-secondary { min-height: 3.25rem; border: .0625rem solid var(--sh101-gold); padding: .8125rem .9375rem; display: inline-flex; align-items: center; justify-content: space-between; gap: .75rem; background: var(--sh101-gold); color: var(--sh101-gold-ink); font-size: .875rem; font-weight: 700; text-decoration: none; }
.sh101-profile-website { flex: 1 1 100%; }
.sh101-profile-secondary { min-height: 2.75rem; border-color: var(--sh101-line-solid); background: var(--sh101-white); color: var(--sh101-navy); }
.sh101-profile-website:hover { background: var(--sh101-gold-hover); border-color: var(--sh101-gold-hover); }
.sh101-profile-secondary:hover { border-color: var(--sh101-navy); background: var(--sh101-sky-soft); }
.sh101-profile-website .sh101-icon,
.sh101-profile-secondary .sh101-icon { width: 1rem; height: 1rem; }
.sh101-profile-contact { border-top: .0625rem solid var(--sh101-line-solid); padding: 1.0625rem 0 1.1875rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1.25rem; }
.sh101-profile-contact > span { min-width: 0; color: var(--sh101-navy); font-size: .9375rem; line-height: 1.35; }
.sh101-profile-contact small { display: block; margin-bottom: .1875rem; color: var(--sh101-navy-muted); font-size: .75rem; font-weight: 600; }
.sh101-profile-contact a { color: var(--sh101-navy); text-decoration: none; overflow-wrap: anywhere; }
.sh101-profile-contact a:hover { color: var(--sh101-gold-ink); text-decoration: underline; text-underline-offset: .25rem; }
.sh101-profile-social { border-top: .0625rem solid var(--sh101-line-solid); padding-top: 1.0625rem; display: flex; flex-wrap: wrap; gap: .6875rem 1.125rem; }
.sh101-profile-social a { color: var(--sh101-navy); font-size: .875rem; font-weight: 600; text-decoration: none; }
.sh101-profile-social a:hover { color: var(--sh101-gold-ink); text-decoration: underline; text-underline-offset: .25rem; }

@media (max-width: 52rem) {
  .sh101-directory-hero { padding: 1rem 1rem 2.25rem; }
  .sh101-directory-hero-grid { grid-template-columns: 1fr; gap: 1rem; }
  .sh101-directory-hero h1,
  .sh101-directory-hero h2,
  .sh101-directory-hero h3 { font-size: clamp(3.25rem, 14vw, 5.25rem); }
  .sh101-directory-hero-intro { min-height: 13rem; }
  .sh101-directory-hero-stage { min-height: 11rem; }
  .sh101-directory-tools { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(12rem, .75fr); }
  .sh101-directory-submit { grid-column: 1 / -1; }
  .sh101-directory-body { padding: 4.25rem 1.25rem 5rem; }
  .sh101-business-row { grid-template-columns: 4.25rem minmax(0, 1fr) 2.75rem 2.75rem; gap: .9375rem; }
  .sh101-business-logo { width: 4.25rem; height: 4.25rem; }
  .sh101-modal-overlay { padding: 0; }
  .sh101-modal { width: 100%; min-height: 100%; margin: 0; grid-template-columns: 1fr; }
  .sh101-profile-visual { min-height: 21.25rem; padding: 1.5625rem 1.5rem 1.6875rem; }
  .sh101-profile-mark { width: 6.25rem; height: 6.25rem; }
  .sh101-profile-content { padding: 1.5rem 1.4375rem 1.8125rem; }
  .sh101-profile-close-row { margin-bottom: 1.3125rem; }
}

@media (min-width: 52.0625rem) {
  .sh101-directory-hero-stage { align-items: center; }
}

@media (max-width: 30rem) {
  .sh101-directory-tools { grid-template-columns: 1fr; }
  .sh101-directory-filter,
  .sh101-directory-submit { width: 100%; }
  .sh101-business-row { grid-template-columns: 3.75rem minmax(0, 1fr) 2.75rem; gap: .75rem; align-items: start; padding-block: 1.125rem; }
  .sh101-business-logo { width: 3.75rem; height: 3.75rem; }
  .sh101-business-logo,
  .sh101-save { align-self: start; }
  .sh101-business-arrow { display: none; }
  .sh101-business-name { font-size: 1.75rem; }
  .sh101-business-copy { font-size: .875rem; }
  .sh101-business-meta { font-size: .8125rem; }
  .sh101-profile-contact { grid-template-columns: 1fr; }
  .sh101-profile-actions { flex-direction: column; align-items: stretch; }
  .sh101-profile-website,
  .sh101-profile-secondary { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .sh101-businesses *,
  .sh101-businesses *::before,
  .sh101-businesses *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* Hello Elementor's reset paints every button crimson on hover/focus
   (button:hover{background-color:#c36}). Restore brand behavior for this
   component's interactive elements. */
.sh101-businesses button:hover, .sh101-businesses button:focus, .sh101-businesses button:focus-visible,
.sh101-embed-page button:hover, .sh101-embed-page button:focus, .sh101-embed-page button:focus-visible { background-color: transparent; color: inherit; text-decoration: none; }
.sh101-businesses .sh101-directory-filter:hover, .sh101-businesses .sh101-directory-submit:hover, .sh101-embed-page .sh101-directory-filter:hover, .sh101-embed-page .sh101-directory-submit:hover { background: var(--sh101-gold-hover); border-color: var(--sh101-gold-hover); }
.sh101-businesses .sh101-save:hover, .sh101-embed-page .sh101-save:hover { border-color: var(--sh101-navy); background: var(--sh101-sky-soft); color: var(--sh101-navy); }
.sh101-businesses .sh101-button:hover, .sh101-embed-page .sh101-button:hover { background: var(--sh101-navy-deep); color: var(--sh101-white); }
