/* =====================================================================
   MEMBER DIRECTORY / EVENTS MODULE SKIN
   Restyles the markup that the membership system injects into div#gzns
   (search filters, results toolbar, listing cards). Loaded only by the
   module template page, after the module's own stylesheets.
   ===================================================================== */

.gz-shell {
  padding: clamp(48px, 5vw, 80px) 0 clamp(56px, 6vw, 96px);
  background: var(--surface);
}
.gz-shell .container { padding: 0 15px; }

/* One typeface everywhere, including text that members pasted in with their own
   fonts. Icon elements are left alone so the module's icon font still applies. */
div#gzns, div#gzns *:not(i) { font-family: var(--sans) !important; }
div#gzns { color: var(--ink-soft); }
div#gzns .gz-search-results { padding: 0; }
div#gzns a { color: var(--blue); }

/* ---------------------------------------------------------
   Base layer for every hosted page type
   Links, buttons, panels, form fields, and headings, so pages
   without their own section below still match the site.
   --------------------------------------------------------- */
div#gzns { font-size: 16px; line-height: 26px; color: var(--ink-soft); }
div#gzns a { color: var(--blue); }
div#gzns a:hover, div#gzns a:focus { color: var(--blue-dark); }
div#gzns .gz-pagetitle, div#gzns .gz-pagetitle-dealsbuttons { display: none !important; }
div#gzns .gz-banner:not(:has(img)) { display: none; }
div#gzns .container-fluid { padding: 0; }
div#gzns h2, div#gzns h3, div#gzns h4, div#gzns h5 { color: var(--ink); }
div#gzns .gz-subtitle {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  line-height: 20px;
  text-transform: uppercase;
  color: var(--blue);
}
div#gzns .btn, div#gzns a.btn, div#gzns button.btn {
  padding: 12px 28px 9px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--fill-blue);
  border: 1px solid transparent;
  border-radius: 0;
  box-shadow: none;
  transition: all .3s ease-in-out;
}
div#gzns .btn:hover, div#gzns .btn:focus, div#gzns a.btn:hover, div#gzns a.btn:focus {
  color: var(--white);
  background: var(--fill-blue-hover);
  border-color: transparent;
  text-decoration: none;
}
div#gzns .card {
  background: var(--white);
  border: 0;
  border-radius: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 22px 44px -20px rgba(0,0,0,.45);
}
div#gzns .card-header, div#gzns .card-footer { background: none; border-color: var(--rule-soft); border-radius: 0; }
div#gzns label {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: var(--ink);
}
div#gzns .gz-form-req { color: var(--red-text); }
div#gzns form:not(.mn-form) .form-control,
div#gzns form:not(.mn-form) .custom-select {
  height: 50px;
  padding: 0 16px;
  font-size: 16px;
  color: var(--ink);
  background-color: var(--white);
  border: 1px solid var(--rule);
  border-radius: 0;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
div#gzns form:not(.mn-form) textarea.form-control { height: auto; min-height: 150px; padding: 12px 16px; line-height: 24px; }
div#gzns form:not(.mn-form) .form-control:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(2,30,241,.15); }
div#gzns .invalid-feedback { font-size: 13px; color: var(--red-text); }
div#gzns .gz-search-pills:empty { display: none; }

/* Search filters */
div#gzns .gz-directory-search-filters { margin-bottom: 28px; }
div#gzns .gz-search-filters {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 18px;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 14px 28px -18px rgba(0,0,0,.4);
}
div#gzns .gz-search-filters .form-control,
div#gzns .gz-search-filters .custom-select {
  flex: 1 1 220px;
  width: auto;
  height: 50px;
  padding: 0 16px;
  font-size: 16px;
  color: var(--ink);
  background-color: var(--bg);
  border: 1px solid transparent;
  border-radius: 0 !important;
  box-shadow: none;
}
div#gzns .gz-search-filters .form-control:focus,
div#gzns .gz-search-filters .custom-select:focus { border-color: var(--blue); }
div#gzns .gz-search-filters .input-group-append { margin: 0; }
div#gzns .gz-search-btn {
  height: 50px;
  padding: 0 30px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--white) !important;
  background: var(--fill-blue) !important;
  border: 1px solid transparent !important;
  border-radius: 0 !important;
  transition: all .3s ease-in-out;
}
div#gzns .gz-search-btn:hover, div#gzns .gz-search-btn:focus {
  background: var(--fill-blue-hover) !important;
  border-color: transparent !important;
}
div#gzns .gz-search-btn i { margin-right: 8px; }

/* Results toolbar */
div#gzns .gz-toolbar { margin-bottom: 26px; }
div#gzns .gz-results-toolbar { align-items: center; }
div#gzns .gz-results-found-text {
  padding: 0;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink);
  background: none;
  border: 0;
}
div#gzns .gz-results-found-text .gz-subtitle { font-size: 14px; color: var(--ink); }
div#gzns .gz-results-count { margin-left: 6px; color: var(--blue) !important; }
div#gzns .gz-page-return { margin-right: 14px; color: var(--blue); }
div#gzns .gz-toolbar-buttons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-left: 6px;
  color: var(--blue);
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 0;
  transition: all .25s ease;
}
div#gzns .gz-toolbar-buttons a, div#gzns .gz-toolbar-buttons a i { color: var(--blue) !important; }
div#gzns .gz-toolbar-buttons a:hover, div#gzns .gz-toolbar-buttons a.active {
  background: var(--fill-blue);
  border-color: transparent;
  text-decoration: none;
}
div#gzns .gz-toolbar-buttons a:hover, div#gzns .gz-toolbar-buttons a:hover i,
div#gzns .gz-toolbar-buttons a.active, div#gzns .gz-toolbar-buttons a.active i { color: var(--white) !important; }

/* Listing cards */
div#gzns .gz-list-card-wrapper { margin-bottom: 30px; }
div#gzns .gz-results-card {
  height: 100%;
  background: var(--white);
  border: 0;
  border-bottom: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  border-radius: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.5);
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
div#gzns .gz-results-card:hover {
  border-bottom-color: var(--red);
  border-image: var(--bar-red-x) 1;
  box-shadow: 0 4px 10px rgba(0,0,0,.1), 0 36px 64px -18px rgba(0,0,0,.55);
  transform: translateY(-6px);
}
/* Logo area. Listings without a logo repeat the name here, so hide it. */
div#gzns .gz-results-card .card-header {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 130px;
  padding: 24px 30px;
  background: var(--white);
  border: 0;
  border-bottom: 1px solid var(--rule-soft);
  border-radius: 0;
}
div#gzns .gz-results-card .card-header img { max-height: 90px; width: auto; max-width: 100%; }
div#gzns .gz-results-card.gz-no-logo .card-header { display: none; }
div#gzns .gz-results-card .gz-card-top {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 30px 30px 0 !important;
  border: 0 !important;
}
/* The module hides the title on listings without a logo; show it since the name block above is hidden */
div#gzns .gz-results-card.gz-no-logo .gz-card-top,
div#gzns .gz-results-card.gz-no-logo .gz-card-title { display: block !important; }
div#gzns .gz-results-card.gz-no-logo .gz-card-title a { display: inline !important; }
/* The module sets its own heading font, size, and link color from its appearance
   settings, so the title rules are forced. */
div#gzns .gz-results-card .gz-card-title,
div#gzns .gz-results-card .gz-card-title a {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--sans) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 27px !important;
  letter-spacing: -.3px;
  text-align: left;
  color: var(--ink) !important;
}
div#gzns .gz-results-card .gz-card-title a:hover { color: var(--blue) !important; text-decoration: none; }
div#gzns .gz-results-card .gz-results-card-body { padding: 14px 30px 28px !important; }
div#gzns .gz-results-card .list-group { margin: 0; padding: 0; }
div#gzns .gz-results-card .list-group-item {
  padding: 6px 0 !important;
  font-size: 15px;
  line-height: 23px;
  text-align: left;
  background: none;
  border: 0;
}
div#gzns .gz-results-card .card-link {
  display: grid;
  grid-template-columns: 16px 1fr;
  column-gap: 12px;
  color: var(--ink-soft);
}
div#gzns .gz-results-card .card-link > i { grid-row: 1 / span 2; }
div#gzns .gz-results-card .card-link > span,
div#gzns .gz-results-card .card-link > div { grid-column: 2; }
div#gzns .gz-results-card .card-link { color: var(--ink-soft) !important; }
div#gzns .gz-results-card .card-link:hover { color: var(--blue) !important; text-decoration: none; }
div#gzns .gz-results-card .gz-card-phone .card-link { color: var(--ink) !important; }
div#gzns .gz-results-card .card-link i {
  margin-top: 4px;
  color: var(--blue);
}
div#gzns .gz-results-card .gz-card-phone .card-link { font-weight: 700; color: var(--ink); }
div#gzns .gz-results-card .gz-card-website .card-link { font-weight: 700; color: var(--blue) !important; }

/* ---------------------------------------------------------
   Member detail page
   Contact panel on the left, map on the right.
   --------------------------------------------------------- */
div#gzns .gz-search-details { padding: 0; }
div#gzns .gz-details-header {
  align-items: center;
  margin: 0 0 26px;
}
div#gzns .gz-details-header > .col { padding-left: 0 !important; padding-right: 0; }
div#gzns .gz-details-logo-col img {
  max-height: 110px;
  width: auto;
  margin-right: 24px;
  padding: 14px;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
div#gzns .gz-details-head {
  align-items: center;
  justify-content: flex-end;
}
div#gzns .gz-details-categories p { margin: 0; }
div#gzns .gz-cat {
  display: inline-block;
  margin: 0 8px 8px 0;
  padding: 8px 14px 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--blue);
  background: var(--white);
  border-left: 4px solid var(--blue);
  border-image: var(--bar-blue-y) 1;
}
div#gzns .gz-share-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-left: auto;
  color: var(--blue);
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 0;
  transition: all .25s ease;
}
div#gzns .gz-share-btn:hover, div#gzns .gz-share-btn:focus {
  color: var(--white);
  background: var(--fill-blue);
  border-color: transparent;
}
div#gzns .gz-details-links { align-items: stretch; }
div#gzns .gz-details-links .gz-list-group {
  height: 100%;
  margin: 0;
  padding: 14px 34px;
  background: var(--white);
  border-bottom: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  border-radius: 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.5);
}
div#gzns .gz-details-links .list-group-item {
  padding: 20px 0 !important;
  font-size: 18px;
  line-height: 26px;
  background: none;
  border: 0;
  border-bottom: 1px solid var(--rule-soft);
  border-radius: 0;
}
div#gzns .gz-details-links .list-group-item:last-child { border-bottom: 0; }
div#gzns .gz-details-links .card-link {
  position: static;
  padding: 0 !important;
  margin: 0 !important;
  text-indent: 0 !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  color: var(--ink);
}
div#gzns .gz-details-links .card-link:hover, div#gzns .gz-details-links .card-link:focus {
  color: var(--blue);
  text-decoration: none;
}
div#gzns .gz-details-links .card-link i {
  position: static !important;
  float: none !important;
  display: inline-flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0 12px 0 0 !important;
  top: auto !important;
  transform: none !important;
  line-height: 1 !important;
  color: var(--blue);
  background: var(--bg);
  border-radius: 50%;
}
div#gzns .gz-details-links .gz-card-phone .card-link { font-weight: 700; }
/* Website row reads as the primary action */
div#gzns .gz-details-links .gz-card-website .card-link span {
  padding: 11px 24px 9px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--fill-blue);
  transition: background-color .3s ease-in-out;
}
div#gzns .gz-details-links .gz-card-website .card-link:hover span { background: var(--fill-blue-hover); }
div#gzns .gz-map {
  height: 100%;
  min-height: 320px;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.5);
}
div#gzns .gz-map::before { display: none; }
div#gzns .gz-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
div#gzns .gz-details-about, div#gzns .gz-details-section {
  margin-top: 36px;
  padding: 34px;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 14px 28px -18px rgba(0,0,0,.4);
}
@media (max-width: 575px){
  div#gzns .gz-details-links > div + div { margin-top: 24px; }
  div#gzns .gz-details-links .gz-list-group { padding: 8px 22px; }
}

/* ---------------------------------------------------------
   Membership application
   Five-step form: numbered stepper, section headings, fields,
   package choices, and actions, on a white panel.
   --------------------------------------------------------- */
div#gzns .gz-memberapp { padding: 0; }
div#gzns .gz-memberapp-form > .col {
  padding: clamp(24px, 4vw, 52px);
  background: var(--white);
  border-top: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.45);
}

/* Stepper: numbered circles on a connecting line */
div#gzns .gz-app-stepper {
  margin: 0 0 40px;
  counter-reset: appstep;
}
div#gzns .gz-app-stepper .list-group-item {
  counter-increment: appstep;
  padding: 0 6px;
  color: var(--ink-soft);
  opacity: 1;
}
div#gzns .gz-app-stepper .list-group-item:hover { text-decoration: none; }
div#gzns .gz-app-stepper .list-group-item:before {
  top: 22px;
  border-top: 2px solid var(--rule-soft);
}
div#gzns .gz-app-stepper .gz-fa-stack {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 16px;
  line-height: 1;
  background: var(--white);
  border: 2px solid var(--rule);
  border-radius: 50%;
  animation: none !important;
  transition: background-color .25s ease, border-color .25s ease;
}
div#gzns .gz-app-stepper .gz-fa-stack i { display: none; }
div#gzns .gz-app-stepper .gz-fa-stack::before {
  content: counter(appstep);
  font-family: var(--sans);
  font-weight: 700;
  color: var(--ink-soft);
}
div#gzns .gz-app-stepper .gz-step {
  margin-top: 12px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  line-height: 16px;
  text-transform: uppercase;
  color: var(--ink-soft);
}
div#gzns .gz-app-stepper .gz-step span {
  margin-top: 2px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.2px;
  line-height: 20px;
  text-transform: none;
  color: inherit;
}
/* Completed steps */
div#gzns .gz-memberapp-form[step="2"] .gz-app-step.step-1 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-1 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-2 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-1 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-2 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-3 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-1 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-2 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-3 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-4 .gz-fa-stack { border-color: var(--blue); }
div#gzns .gz-memberapp-form[step="2"] .gz-app-step.step-1 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-1 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-2 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-1 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-2 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-3 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-1 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-2 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-3 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-4 .gz-fa-stack::before { color: var(--blue); }
/* Current step */
div#gzns .gz-memberapp-form[step="1"] .gz-app-step.step-1 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="2"] .gz-app-step.step-2 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-3 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-4 .gz-fa-stack,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-5 .gz-fa-stack {
  background: var(--fill-blue);
  border-color: transparent;
}
div#gzns .gz-memberapp-form[step="1"] .gz-app-step.step-1 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="2"] .gz-app-step.step-2 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-3 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-4 .gz-fa-stack::before,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-5 .gz-fa-stack::before { color: var(--white); }
div#gzns .gz-memberapp-form[step="1"] .gz-app-step.step-1 .gz-step,
div#gzns .gz-memberapp-form[step="2"] .gz-app-step.step-2 .gz-step,
div#gzns .gz-memberapp-form[step="3"] .gz-app-step.step-3 .gz-step,
div#gzns .gz-memberapp-form[step="4"] .gz-app-step.step-4 .gz-step,
div#gzns .gz-memberapp-form[step="5"] .gz-app-step.step-5 .gz-step { color: var(--ink); }

/* Headings inside a step */
div#gzns .gz-memberapp-form h3.gz-subtitle {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--blue);
}
div#gzns .gz-memberapp-form h5 {
  margin: 30px 0 18px;
  padding: 0 0 12px;
  font-size: 22px;
  font-weight: 700;
  line-height: 27px;
  letter-spacing: -.3px;
  color: var(--ink);
  border: 0;
  border-bottom: 1px solid var(--rule-soft);
}
div#gzns .gz-memberapp-form h3.gz-subtitle + h5, div#gzns .gz-memberapp-form [class*="applabel"] h5 { margin-top: 10px; }

/* Fields */
div#gzns .gz-memberapp-form .form-group { margin-bottom: 18px; }
div#gzns .gz-memberapp-form label {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: var(--ink);
}
div#gzns .gz-memberapp-form .gz-form-req { color: var(--red-text); }
div#gzns .gz-memberapp-form .gz-form-req-text {
  font-size: 12px;
  font-weight: 400;
  color: var(--ink-soft);
}
div#gzns .gz-memberapp-form .form-control,
div#gzns .gz-memberapp-form select.form-control,
div#gzns .gz-memberapp-form .custom-select {
  height: 50px;
  padding: 0 16px;
  font-size: 16px;
  color: var(--ink);
  background-color: var(--white);
  border: 1px solid var(--rule);
  border-radius: 0;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
div#gzns .gz-memberapp-form textarea.form-control {
  height: auto;
  min-height: 130px;
  padding: 12px 16px;
  line-height: 24px;
}
div#gzns .gz-memberapp-form .form-control::placeholder { color: #8A9197; }
div#gzns .gz-memberapp-form .form-control:focus,
div#gzns .gz-memberapp-form .custom-select:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(2,30,241,.15);
}
div#gzns .gz-memberapp-form .invalid-feedback { font-size: 13px; color: var(--red-text); }
div#gzns .gz-memberapp-form .form-check-label {
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: var(--ink-soft);
}

/* Membership packages */
div#gzns .gz-memberapp-form .gz-membership-package {
  margin-bottom: 10px;
  padding: 16px 20px;
  border: 1px solid var(--rule);
  transition: border-color .2s ease, background-color .2s ease;
}
div#gzns .gz-memberapp-form .gz-membership-package:hover {
  background: var(--surface);
  border-color: var(--blue);
}
div#gzns .gz-memberapp-form .gz-membership-package .form-check { margin: 0; }
div#gzns .gz-memberapp-form .gz-memberapp-pkgname strong {
  font-size: 18px;
  letter-spacing: -.2px;
  color: var(--ink);
}
div#gzns .gz-memberapp-form .gz-memberapp-pkgfee {
  margin-left: 8px;
  padding: 6px 12px 5px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .4px;
  color: var(--white);
  background: var(--fill-blue);
  border-radius: 0;
}
div#gzns .gz-memberapp-form .gz-memberapp-pkgdesc {
  font-size: 15px;
  line-height: 22px;
  color: var(--ink-soft);
}

/* Actions */
div#gzns .gz-memberapp-form .gz-back-next {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 36px 0 0;
}
div#gzns .gz-memberapp-form .btn {
  padding: 12px 28px 9px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--fill-blue);
  border: 1px solid transparent;
  border-radius: 0;
  transition: all .3s ease-in-out;
}
div#gzns .gz-memberapp-form .btn:hover, div#gzns .gz-memberapp-form .btn:focus {
  color: var(--white);
  background: var(--fill-blue-hover);
  border-color: transparent;
  text-decoration: none;
}
div#gzns .gz-memberapp-form .btn.gz-back-btn, div#gzns .gz-memberapp-form .btn.print-btn {
  color: var(--blue);
  background: var(--white);
}
div#gzns .gz-memberapp-form .btn.gz-back-btn:hover, div#gzns .gz-memberapp-form .btn.print-btn:hover,
div#gzns .gz-memberapp-form .btn.gz-back-btn:focus, div#gzns .gz-memberapp-form .btn.print-btn:focus {
  color: var(--white);
  background: var(--fill-blue);
  border-color: transparent;
}
@media (max-width: 575px){
  div#gzns .gz-app-stepper .gz-step { font-size: 10px; letter-spacing: 1px; }
  div#gzns .gz-app-stepper .gz-step span { display: none; }
  div#gzns .gz-app-stepper .gz-fa-stack { width: 38px; height: 38px; font-size: 14px; }
  div#gzns .gz-app-stepper .list-group-item:before { top: 19px; }
}

/* ---------------------------------------------------------
   Member login
   Centered sign-in card.
   --------------------------------------------------------- */
div#gzns .gz-login-index { padding: 0; }
div#gzns .gz-login-index > .col { padding: 0; }
div#gzns .gz-login-form {
  justify-content: center;
  margin: 0;
}
div#gzns .gz-login-form form {
  width: 100%;
  max-width: 460px;
  padding: clamp(28px, 4vw, 44px);
  background: var(--white);
  border-top: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.45);
}
div#gzns .gz-login-form .form-row { margin: 0; }
div#gzns .gz-login-form .form-group {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  margin-bottom: 20px;
  padding: 0;
}
div#gzns .gz-login-form label {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: var(--ink);
}
div#gzns .gz-login-form .form-control {
  height: 52px;
  padding: 0 16px;
  font-size: 16px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--rule);
  border-radius: 0;
  box-shadow: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
div#gzns .gz-login-form .form-control::placeholder { color: #8A9197; }
div#gzns .gz-login-form .form-control:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(2,30,241,.15);
}
div#gzns .gz-login-form .invalid-feedback { font-size: 13px; color: var(--red-text); }
div#gzns .gz-login-form .gz-LoginLinks { margin-bottom: 24px; }
div#gzns .gz-login-form .gz-LoginLinks a {
  font-size: 14px;
  font-weight: 700;
  color: var(--blue) !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}
div#gzns .gz-login-form .gz-login-submit .form-group { margin-bottom: 0; }
div#gzns .gz-login-form .btn {
  width: 100%;
  padding: 14px 28px 11px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--white);
  background: var(--fill-blue);
  border: 1px solid transparent;
  border-radius: 0;
  transition: all .3s ease-in-out;
}
div#gzns .gz-login-form .btn:hover, div#gzns .gz-login-form .btn:focus {
  background: var(--fill-blue-hover);
  border-color: transparent;
}


/* Search bar on the directory home and event pages */
div#gzns .gz-events-search-filters, div#gzns .gz-directory-search-filters, div#gzns .gz-search-filters-row { margin-bottom: 28px; }
div#gzns .gz-search-filters { max-width: none; margin: 0; border: 0; border-radius: 0; }
div#gzns .gz-search-filters .gz-search-keyword { flex: 2 1 260px; }
div#gzns .gz-search-filters .gz-search-btn { display: inline-flex; align-items: center; }
div#gzns form .gz-search-filters .form-control,
div#gzns form .gz-search-filters .custom-select { background-color: var(--bg); border-color: transparent; }
div#gzns form .gz-search-filters .form-control:focus,
div#gzns form .gz-search-filters .custom-select:focus { border-color: var(--blue); }

/* Directory home: category index */
div#gzns .gz-directory-cards.gz-no-cards { margin: 0; }
div#gzns .gz-subcats { width: 100%; }
div#gzns .gz-subcats ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 0 40px;
  margin: 0;
  padding: 0;
  list-style: none;
}
div#gzns .gz-subcats li { float: none; width: auto; margin: 0; padding: 0; border-bottom: 1px solid var(--rule); }
div#gzns .gz-subcats li a {
  position: relative;
  display: block;
  padding: 16px 30px 14px 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 24px;
  color: var(--ink);
  transition: color .25s ease, padding .25s ease;
}
div#gzns .gz-subcats li a::after {
  content: "\2192";
  position: absolute;
  right: 4px;
  top: 50%;
  color: var(--red-text);
  transform: translateY(-50%);
  transition: transform .25s ease;
}
div#gzns .gz-subcats li a:hover, div#gzns .gz-subcats li a:focus { padding-left: 8px; color: var(--blue); text-decoration: none; }
div#gzns .gz-subcats li a:hover::after { transform: translate(4px, -50%); }

/* ---------------------------------------------------------
   Event list
   Cards with the date as the lead line.
   --------------------------------------------------------- */
div#gzns .gz-events-card {
  height: 100%;
  border-bottom: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
div#gzns .gz-events-card:hover { border-bottom-color: var(--red); border-image: var(--bar-red-x) 1; transform: translateY(-6px); }
div#gzns .gz-events-card.gz-no-logo .card-header { display: none; }
div#gzns .gz-events-card .card-header { padding: 0; border: 0; }
div#gzns .gz-events-card .card-header img { width: 100%; height: auto; }
div#gzns .gz-events-card .card-body {
  display: flex;
  flex-direction: column;
  padding: 30px 30px 18px;
}
div#gzns .gz-events-card .list-group { order: -1; margin: 0 0 10px; }
div#gzns .gz-events-card .list-group-item { padding: 0 !important; background: none; border: 0; }
div#gzns .gz-events-card .gz-card-date .card-link { display: block; margin: 0; padding: 0 !important; text-indent: 0; }
div#gzns .gz-events-card .gz-card-date .card-link {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  line-height: 18px;
  text-transform: uppercase;
  color: var(--red-text);
}
div#gzns .gz-events-card .gz-card-date .card-link i { display: none; }
div#gzns .gz-events-card .gz-card-title,
div#gzns .gz-events-card .gz-card-title a {
  display: block !important;
  margin: 0;
  font-family: var(--sans) !important;
  font-size: 21px !important;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: -.3px;
  text-align: left;
  color: var(--ink);
}
div#gzns .gz-events-card .gz-card-title a:hover { color: var(--blue); text-decoration: none; }
div#gzns .gz-events-card .card-footer { padding: 0 30px 26px; border: 0; }
div#gzns .gz-events-card .card-footer:empty { display: none; }
div#gzns .gz-events-card .card-footer .btn { display: inline-block; width: auto; }
div#gzns .gz-events-cat { margin: 0; font-size: 13px; line-height: 20px; color: var(--ink-soft); }
div#gzns .gz-events-cat .gz-cat-label { display: none; }
div#gzns .gz-events-cat .gz-cat {
  margin: 0 6px 6px 0;
  padding: 5px 10px 4px;
  font-size: 11px;
  letter-spacing: 1.2px;
  color: var(--ink-soft);
  background: var(--bg);
  border: 0;
}

/* ---------------------------------------------------------
   Event detail
   Description on the left, a facts panel on the right.
   --------------------------------------------------------- */
div#gzns .gz-event-details .gz-page-return {
  align-items: center;
  justify-content: space-between;
  margin: 0 0 24px;
}
div#gzns .gz-page-return > a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--blue);
}
div#gzns .gz-event-details .gz-page-return > a::after { content: "All Events"; }
div#gzns .gz-page-return > a:hover { text-decoration: none; color: var(--blue-dark); }
div#gzns .gz-event-details-header { margin: 0; }
div#gzns .gz-event-details-header:not(:has(img)) { display: none; }
div#gzns .gz-event-details .gz-details-links { align-items: flex-start; }
div#gzns .gz-event-description { margin: 0; }
div#gzns .gz-event-description > .col {
  padding: clamp(24px, 3vw, 40px);
  font-size: 17px;
  line-height: 28px;
  color: var(--ink-soft);
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 14px 28px -18px rgba(0,0,0,.4);
}
div#gzns .gz-event-description > .col * { font-family: var(--sans) !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; }
div#gzns .gz-event-description > .col a { color: var(--blue) !important; }
div#gzns .gz-event-description > .col > :last-child { margin-bottom: 0; }
div#gzns .gz-eventdetails-card { border-top: 5px solid var(--blue); border-image: var(--bar-blue-x) 1; }
div#gzns .gz-eventdetails-card .gz-img-placeholder { display: none; }
div#gzns .gz-eventdetails-card img { width: 100%; height: auto; }
div#gzns .gz-eventdetails-card:not(:has(img, .btn)) { display: none; }
div#gzns .gz-eventdetails-card .card-footer { padding: 22px; border: 0; }
div#gzns .gz-btn-register i { margin-left: 6px; }
div#gzns .gz-event-reminder { margin-top: 14px; box-shadow: none; background: none; }
div#gzns .gz-event-reminder .card-header { padding: 0; border: 0; }
div#gzns .gz-event-reminder .reminder-btn {
  color: var(--blue);
  background: var(--white);
  border: 1px solid var(--blue);
}
div#gzns .gz-event-reminder .reminder-btn:hover { color: var(--white); background: var(--fill-blue); }
div#gzns .gz-event-facts {
  margin: 24px 0 0;
  padding: 8px 26px;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 22px 44px -20px rgba(0,0,0,.45);
}
div#gzns .gz-event-facts > div { padding: 18px 0; border-bottom: 1px solid var(--rule-soft); }
div#gzns .gz-event-facts > div:last-child { border-bottom: 0; }
div#gzns .gz-event-facts .gz-subtitle { margin: 0 0 6px; padding: 0; font-size: 12px; }
div#gzns .gz-event-facts .gz-subtitle::before, div#gzns .gz-event-facts .gz-subtitle i { display: none !important; }
div#gzns .gz-event-facts p { margin: 0; padding: 0; font-size: 16px; line-height: 25px; color: var(--ink); }
div#gzns .gz-event-facts p * { font-family: var(--sans) !important; font-size: inherit !important; line-height: inherit !important; }
div#gzns .gz-event-facts p > span { display: block; }
div#gzns .gz-details-time { color: var(--ink-soft); }

/* ---------------------------------------------------------
   Month calendar
   --------------------------------------------------------- */
div#gzns .gz-cal-grid {
  width: 100%;
  background: var(--white);
  border-collapse: collapse;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 22px 44px -20px rgba(0,0,0,.45);
}
div#gzns .gz-cal-header { padding: 0; background: #050A3A; border: 0; }
div#gzns .gz-cal-header h2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
  padding: 18px 22px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.3px;
  color: var(--white);
}
div#gzns .gz-cal-header a, div#gzns .gz-cal-header a i { color: var(--white); }
div#gzns .gz-cal-weekdays {
  padding: 12px 8px 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-align: center;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: var(--bg);
  border: 1px solid var(--rule-soft);
}
div#gzns .gz-cal-grid tbody td, div#gzns .gz-cal-grid td.gz-cal-day, div#gzns .gz-cal-grid tr:not(.gz-cal-rows-weekday) td {
  height: 118px;
  padding: 8px;
  vertical-align: top;
  font-size: 13px;
  line-height: 18px;
  border: 1px solid var(--rule-soft);
}
div#gzns .gz-cal-grid td a { color: var(--blue); }
div#gzns .gz-cal-grid td ul { margin: 6px 0 0; padding: 0; list-style: none; }
div#gzns .gz-cal-grid td li { margin: 0 0 6px; padding: 0 0 0 8px; font-weight: 600; border-left: 3px solid var(--red); border-image: var(--bar-red-y) 1; }

/* ---------------------------------------------------------
   Contact form and other single forms
   --------------------------------------------------------- */
div#gzns .gz-intro-paragraph { margin: 0 0 28px; font-size: 18px; line-height: 28px; color: var(--ink-soft); }
div#gzns .gz-intro-paragraph > .col { max-width: 760px; padding: 0; }
div#gzns .gz-contact-form { margin: 0; }
div#gzns .gz-contact-form > .col {
  max-width: 860px;
  padding: clamp(24px, 4vw, 48px);
  background: var(--white);
  border-top: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  box-shadow: 0 2px 6px rgba(0,0,0,.08), 0 28px 56px -18px rgba(0,0,0,.45);
}
div#gzns .gz-contact-form h3.gz-subtitle { margin: 0 0 4px; }
div#gzns .gz-form-reqnote { display: block; margin-bottom: 22px; }
div#gzns .gz-contact-form .form-group { margin-bottom: 18px; }
div#gzns .captcha-container > label, div#gzns .captcha-container > input { display: none; }

/* ---------------------------------------------------------
   Member detail: contacts, description, and extras
   --------------------------------------------------------- */
div#gzns .gz-details-reps, div#gzns .gz-details-about, div#gzns .gz-details-hours, div#gzns .gz-details-driving { margin-top: 40px; }
div#gzns .gz-details-reps > .col { padding: 0; }
div#gzns .gz-details-reps h3.gz-subtitle { margin: 0 0 16px; }
div#gzns .gz-details-reps .card-deck { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; margin: 0; }
div#gzns .gz-rep-card {
  flex-direction: row;
  align-items: center;
  gap: 20px;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 24px;
}
div#gzns .gz-rep-card > div:first-child { flex: 0 0 64px; width: 64px; max-width: 64px; padding: 0; }
div#gzns .gz-rep-img-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  color: var(--ink-soft);
  background: var(--bg);
  border-radius: 50%;
}
div#gzns .gz-rep-card img { width: 64px; height: 64px; object-fit: cover; border-radius: 50%; }
div#gzns .gz-rep-card .card-body { flex: 1 1 0; width: auto; min-width: 0; max-width: none; padding: 0; }
div#gzns .gz-rep-card .card-title { margin: 0 0 4px; }
div#gzns .gz-member-repname { font-size: 18px; font-weight: 700; line-height: 24px; letter-spacing: -.2px; color: var(--ink); }
div#gzns .gz-member-reptitle { font-size: 14px; color: var(--ink-soft); }
div#gzns .gz-rep-list .list-group-item { padding: 1px 0; font-size: 15px; line-height: 23px; background: none; border: 0; }
div#gzns .gz-rep-list a { font-weight: 700; }
/* Contact panel grows to fill the column; hours and directions sit under it */
div#gzns .gz-search-details .gz-details-links > div:first-child { display: flex; flex-direction: column; }
div#gzns .gz-search-details .gz-details-links .gz-list-group { flex: 1 1 auto; height: auto; }
div#gzns .gz-details-links .gz-details-hours,
div#gzns .gz-details-links .gz-details-driving {
  margin: 20px 0 0;
  padding: 22px 34px;
  font-size: 16px;
  line-height: 25px;
  overflow-wrap: anywhere;
  background: var(--white);
  box-shadow: 0 2px 6px rgba(0,0,0,.06), 0 14px 28px -18px rgba(0,0,0,.4);
}
div#gzns .gz-details-hours p, div#gzns .gz-details-driving p { margin: 0; }
div#gzns .gz-details-subtitle, div#gzns .gz-details-hours strong:first-child, div#gzns .gz-details-driving strong:first-child {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--blue);
}
div#gzns .gz-details-headerimg { margin: 0 0 28px; }
div#gzns .gz-details-headerimg img { max-width: 100%; height: auto; }
div#gzns .gz-details-about { margin-left: 0; margin-right: 0; font-size: 17px; line-height: 28px; }
div#gzns .gz-details-about > .col { padding: 0; }
div#gzns .gz-details-about h3 { margin: 0 0 10px; }
div#gzns .gz-details-about p:last-child { margin-bottom: 0; }
div#gzns .gz-video-highlights, div#gzns .gz-details-images { margin-top: 40px; }
div#gzns .gz-video-highlights h3, div#gzns .gz-details-images h3 { margin-bottom: 14px; }
div#gzns .gz-highlights-list { margin: 0; padding: 0; list-style: none; }
div#gzns .gz-highlights-list li { padding: 10px 0 8px; font-weight: 600; border-bottom: 1px solid var(--rule); }
div#gzns .gz-details-links [class*="gz-social-"] { margin-right: 8px; }
div#gzns .gz-social-links, div#gzns .gz-details-social { margin-top: 16px; }

/* ---------------------------------------------------------
   Deals, jobs, and news lists
   --------------------------------------------------------- */
div#gzns .gz-hotdeals-card, div#gzns .gz-jobs-card, div#gzns .gz-news-card, div#gzns .gz-deals-card {
  height: 100%;
  border-bottom: 5px solid var(--blue);
  border-image: var(--bar-blue-x) 1;
  transition: transform .3s ease, border-color .3s ease;
}
div#gzns .gz-hotdeals-card:hover, div#gzns .gz-jobs-card:hover, div#gzns .gz-news-card:hover, div#gzns .gz-deals-card:hover { border-bottom-color: var(--red); border-image: var(--bar-red-x) 1; transform: translateY(-6px); }
div#gzns .gz-cards .card:not(.gz-results-card):not(.gz-events-card) .card-body { padding: 26px 30px; }
div#gzns .gz-cards .card:not(.gz-results-card):not(.gz-events-card) .gz-card-title,
div#gzns .gz-cards .card:not(.gz-results-card):not(.gz-events-card) .gz-card-title a {
  font-family: var(--sans) !important;
  font-size: 20px !important;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: -.3px;
  color: var(--ink);
}
div#gzns .gz-cards .card .gz-card-title a:hover { color: var(--blue); text-decoration: none; }
div#gzns .gz-cards .card .card-header .gz-img-placeholder { color: var(--ink-soft); }
div#gzns .gz-no-results, div#gzns .gz-search-noresults { padding: 40px; font-size: 18px; text-align: center; color: var(--ink-soft); background: var(--white); }

/* Pop-ups stay hidden until the module opens them */
div#gzns .modal-content { border: 0; border-radius: 0; }
div#gzns .modal-title { font-size: 20px; font-weight: 700; color: var(--ink); }

/* Vendor credit badge is not shown */
div#gzns .gz-footer-logo { display: none !important; }

/* Deal and job detail pages */
div#gzns .gz-hotdeals-details .gz-page-return, div#gzns .gz-jobs-details .gz-page-return { align-items: center; justify-content: space-between; margin: 0 0 20px; }
div#gzns .gz-hotdeals-details .gz-details-links, div#gzns .gz-jobs-details .gz-details-links { align-items: flex-start; }
div#gzns .gz-hotdeals-details h2, div#gzns .gz-hotdeals-details h3, div#gzns .gz-hotdeals-details h4 { margin: 26px 0 10px; font-weight: 700; letter-spacing: -.3px; color: var(--ink); }
div#gzns .gz-hotdeals-details p, div#gzns .gz-hotdeals-details li { font-size: 17px !important; line-height: 28px !important; color: var(--ink-soft) !important; }
div#gzns .gz-hotdeals-details p span, div#gzns .gz-hotdeals-details li span { font-size: inherit !important; line-height: inherit !important; }
div#gzns .gz-hotdeals-details .card .list-group-item { padding: 4px 0; font-size: 15px; background: none; border: 0; }
div#gzns .gz-hotdeals-details .card .card-body, div#gzns .gz-hotdeals-details .card .card-footer { padding: 22px; }
div#gzns .gz-hotdeals-details .gz-page-return > a::after { content: "All Deals"; }
div#gzns .gz-hotdeals-details-card .card-header .gz-img-placeholder { color: var(--ink) !important; font-weight: 700; }
div#gzns .gz-hotdeals-details-card .card-link {
  position: static;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 0 !important;
  text-indent: 0 !important;
}
div#gzns .gz-hotdeals-details-card .card-link i {
  position: static !important;
  flex: 0 0 16px;
  margin: 5px 0 0 !important;
  transform: none !important;
}
div#gzns .gz-details-reps { margin-left: 0; margin-right: 0; }

/* Listing cards: the whole card opens the profile. Address, phone, and website
   are shown as plain text here and become links on the profile page itself. */
div#gzns .gz-results-card { position: relative; cursor: pointer; }
div#gzns .gz-results-card .gz-card-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
div#gzns .gz-results-card .card-link { pointer-events: none; }
div#gzns .gz-results-card:hover .gz-card-title a { color: var(--blue) !important; }
