.elementor-kit-5{--e-global-color-primary:#000000;--e-global-color-secondary:#F2F2F2;--e-global-color-text:#000000;--e-global-color-accent:#D9D9D9;--e-global-typography-primary-font-family:"Arial";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Arial";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Arial";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-weight:400;background-color:#F2F2F2;}.elementor-kit-5 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   NZSTM — Elementor build styles (Site Settings > Custom CSS)
   Generated from ~/Sites/nzstm-replica/wp-build/site.css. Sizes were measured
   on the original Squarespace site at 1920px wide and converted to vw.
   ========================================================================== */

:root {
  --nz-light: #f2f2f2;
  --nz-fs-base: calc(0.9rem + 0.55vw);   /* 25.2px @1920 */
  --nz-fs-h2: calc(1.2rem + 1.27vw);     /* 43.6px @1920 */
  --nz-fs-h4: calc(1rem + 0.72vw);       /* 29.8px @1920 */
  --nz-fs-chip: calc(0.8rem + 0.53vw);   /* 22.9px @1920 */
  --nz-gutter: 11vw;
  --kit-widget-spacing: 0px;
}

body { background: var(--nz-light); color: #000; font-family: Arial, Helvetica, sans-serif; }

/* ---------- Sections & themes ---------- */
.nz-sec { --text: #000; color: var(--text); font-size: var(--nz-fs-base); line-height: 1.8; overflow: hidden; }
.nz-sec.e-con { position: relative; }
.nz-theme-black { --text: #fff; }
.nz-theme-dim   { --text: #d9d9d9; }
.nz-theme-white { --text: #fff; }

.nz-sec, .nz-sec .e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px; --margin-top: 0px; --margin-bottom: 0px;
}
.nz-sec .elementor-widget { margin: 0; }
.nz-sec a { color: inherit; }
.nz-sec h1, .nz-sec h2, .nz-sec h3, .nz-sec h4, .nz-sec p,
.nz-sec .elementor-heading-title { color: inherit; font-family: inherit; }
.nz-sec p { margin: 0 0 1rem; }
.nz-sec h2, .nz-sec .elementor-heading-title { font-size: var(--nz-fs-h2); line-height: 1.333; letter-spacing: -0.04em; font-weight: 400; }
.nz-sec h4 { font-size: var(--nz-fs-h4); line-height: 1.366; letter-spacing: -0.04em; font-weight: 400; margin: 0; }

/* Page heights (match original sections at 1920px) */
.nz-home          { --min-height: 84.8vw; }
.nz-about         { --min-height: 97.4vw; }
.nz-staff         { --min-height: 104.5vw; }
.nz-new-signings  { --min-height: 118.75vw; }
.nz-documents     { --min-height: 56.3vw; }
.nz-connect       { --min-height: 92.6vw; }

/* Content gutters + vertical offsets below the 391px (20.4vw) header */
.nz-sec .nz-content.e-con { --padding-left: var(--nz-gutter); --padding-right: var(--nz-gutter); }
.nz-home .nz-content.e-con          { --padding-top: 3.3vw;  --padding-bottom: 12vw; }
.nz-about .nz-content.e-con         { --padding-top: 0px;    --padding-bottom: 8vw; }
.nz-staff .nz-content.e-con         { --padding-top: 4.5vw;  --padding-bottom: 10.5vw; }
.nz-new-signings .nz-content.e-con  { --padding-top: 2.25vw; --padding-bottom: 9vw; }
.nz-questionnaire .nz-content.e-con { --padding-top: 3.3vw;  --padding-bottom: 12vw; }
.nz-connect .nz-content.e-con       { --padding-top: 0px;    --padding-bottom: 10vw; --padding-left: 24.1vw; --padding-right: 20.8vw; }

/* ---------- Header (template "NZSTM Header") ---------- */
.nz-sec .nz-header-slot { width: 100%; position: relative; z-index: 5; }
.nz-sec .nz-header.e-con { --padding-top: 1.8vw; min-height: 20.4vw; height: auto; align-items: center; }
.nz-sec .nz-logo { width: 39vw; max-width: 100%; }
.nz-sec .nz-logo img { width: 100%; height: auto; display: block; }
.nz-sec .nz-nav { width: 100%; }
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-nav-menu {
  display: flex; flex-wrap: wrap; justify-content: center;
  max-width: 34vw; margin: 0.55vw auto 0; column-gap: 1.5vw; row-gap: 0.52vw;
}
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-item {
  padding: 0 0 0.1em; margin: 0;
  font-family: Arial, Helvetica, sans-serif; font-size: var(--nz-fs-base); font-weight: 400; line-height: 1.6;
  color: var(--text);
  background: linear-gradient(currentColor, currentColor) no-repeat 0 calc(100% - 0.1em) / 0 1px;
  transition: background-size 0.25s ease;
}
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-item:hover,
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-item:focus,
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-item-active { color: var(--text); background-size: 100% 1px; }
.nz-sec .nz-nav .elementor-nav-menu--main .elementor-item-active { background-image: linear-gradient(#999, #999); }
.nz-theme-black .nz-nav .elementor-item-active,
.nz-theme-dim .nz-nav .elementor-item-active,
.nz-theme-white .nz-nav .elementor-item-active { background-image: linear-gradient(#d9d9d9, #d9d9d9) !important; }

/* Mobile menu toggle + dropdown */
.nz-sec .nz-nav .elementor-menu-toggle { color: var(--text); background: transparent; font-size: 28px; }
.nz-sec .nz-nav .elementor-nav-menu--dropdown { background: var(--nz-light); }
.nz-theme-black .nz-nav .elementor-nav-menu--dropdown,
.nz-theme-dim .nz-nav .elementor-nav-menu--dropdown { background: #000; }
.nz-sec .nz-nav .elementor-nav-menu--dropdown a {
  justify-content: center; color: var(--text); background: transparent;
  font-family: Arial, Helvetica, sans-serif; font-size: 20px; padding: 12px 0;
}
.nz-sec .nz-nav .elementor-nav-menu--dropdown a.elementor-item-active { text-decoration: underline; }

/* ---------- Curved bottom divider ---------- */
.nz-sec .nz-divider { position: absolute !important; left: 0; right: 0; bottom: -1px; width: 100% !important; z-index: 2; pointer-events: none; }
.nz-sec .nz-divider svg { display: block; width: 100%; height: 5.8vw; fill: var(--nz-light); }

/* ---------- Home ---------- */
.nz-home .nz-title .elementor-heading-title { text-align: center; margin-bottom: 1.9vw; }
.nz-home .nz-intro h4 { margin-bottom: 1.45vw; }
.nz-home .nz-contact-lines { text-align: center; margin-top: 1.15vw !important; }
.nz-home .nz-contact-lines h4 { margin-bottom: 1.45vw; }
.nz-home .nz-contact-lines a, .nz-home .nz-intro a, .nz-agent a {
  text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 1px;
}
.nz-home .nz-accredited.e-con { align-items: center; margin-top: 0.5vw; }
.nz-home .nz-badge img { width: 10.1vw; min-width: 150px; height: auto; }
.nz-home .nz-agent { text-align: center; }
.nz-home .nz-agent p { margin: 2.2vw 0 0; }
.nz-home .nz-agent a { color: #d9d9d9; }
.nz-btn-outline .elementor-button {
  margin-top: 0.9vw; padding: 0.25vw 2.2vw; border: 1px solid #d9d9d9; border-radius: 300px;
  background: transparent; color: #d9d9d9; font-family: Poppins, sans-serif; font-size: max(12px, 0.83vw); line-height: 1.6;
}
.nz-btn-outline .elementor-button:hover { opacity: 0.8; background: transparent; color: #d9d9d9; }

/* ---------- About ---------- */
.nz-about .nz-title .elementor-heading-title { text-align: center; margin-bottom: 1.6vw; }
.nz-about .nz-body h4 { margin-bottom: 1.65vw; }
.nz-about .nz-motto { text-align: center; color: #fff; }

/* ---------- Staff ---------- */
.nz-staff .nz-staff-grid.e-con {
  display: grid !important; grid-template-columns: repeat(2, 24.9vw); justify-content: center; gap: 2.9vw 1.3vw;
}
.nz-staff .nz-staff-card { width: 100%; }
.nz-staff .nz-staff-card img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }

/* ---------- New Signings ---------- */
.nz-new-signings .nz-poster { width: 43.4vw; margin: 0 auto; }
.nz-new-signings .nz-poster img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }

/* ---------- Documents ---------- */
.nz-documents .nz-content.e-con { position: absolute; inset: 0; }
.nz-documents .nz-doc-buttons.e-con { position: absolute; inset: 0; }
.nz-documents .nz-pill { position: absolute !important; }
.nz-pill .elementor-button {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;
  border-radius: 300px; background: #000; color: #fff;
  font-family: Poppins, sans-serif; font-size: 16px; line-height: 1.5; text-align: center; text-transform: uppercase;
}
.nz-pill .elementor-button:hover { opacity: 0.8; background: #000; color: #fff; }
.nz-pill .elementor-button-text { white-space: normal; }
.nz-b1, .nz-b3 { top: 27.45vw; width: 12.5vw !important; height: 32px; }
.nz-b1 { left: 14.27vw; }
.nz-b3 { left: 56.82vw; }
.nz-b1 .elementor-button, .nz-b3 .elementor-button { padding: 0 20.8px; }
.nz-b2 { left: 34.22vw; top: 25.47vw; width: 15.2vw !important; height: 58px; }
.nz-b4 { left: 76.46vw; top: 24.84vw; width: 9.27vw !important; height: 82px; }
.nz-b2 .elementor-button, .nz-b4 .elementor-button { padding: 16px 20.8px; }

/* ---------- Forms (Gravity Forms, "gravity-theme") ---------- */
.nz-form-wrap.e-con { max-width: 39vw; margin: 0 auto; width: 100%; }
.nz-questionnaire .nz-form-title .elementor-heading-title {
  font-size: var(--nz-fs-h4); line-height: 1.366; text-transform: uppercase; margin-bottom: 3.3vw;
}
.nz-connect .nz-copy { max-width: 55.1vw; line-height: 1.8; }
.nz-connect .nz-copy p { margin-bottom: 0.85vw; }
.nz-connect .nz-form-wrap.e-con { max-width: 32.2vw; margin: 4.2vw 0 0; }

.nz-sec .gform_wrapper.gravity-theme { margin: 0; }
.nz-sec .gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 1.25vw; }
.nz-sec .gform_wrapper.gravity-theme .gfield_label,
.nz-sec .gform_wrapper.gravity-theme legend.gfield_label {
  font-size: var(--nz-fs-base); font-weight: 400; line-height: 1.8; color: var(--text); margin: 0 0 0.3vw; padding: 0;
}
.nz-sec .gform_wrapper.gravity-theme .gfield_required { color: color-mix(in srgb, var(--text) 65%, transparent); font-size: 0.87em; margin-left: 0.35em; }
.nz-sec .gform_wrapper.gravity-theme .gfield_required_text { text-transform: lowercase; font-style: normal; }
.nz-sec .gform_wrapper.gravity-theme .gfield_description {
  color: color-mix(in srgb, var(--text) 65%, transparent); font-size: var(--nz-fs-base); padding: 0; margin: 0.3vw 0 0.8vw;
}
.nz-sec .gform_wrapper.gravity-theme input[type="text"],
.nz-sec .gform_wrapper.gravity-theme input[type="email"],
.nz-sec .gform_wrapper.gravity-theme input[type="tel"],
.nz-sec .gform_wrapper.gravity-theme input[type="url"],
.nz-sec .gform_wrapper.gravity-theme input[type="number"],
.nz-sec .gform_wrapper.gravity-theme textarea {
  width: 100%; min-height: 44px; padding: 5px 0; margin: 0;
  border: 0; border-bottom: 1px solid color-mix(in srgb, var(--text) 35%, transparent); border-radius: 0;
  background: transparent; color: var(--text); box-shadow: none;
  font-family: Arial, Helvetica, sans-serif; font-size: var(--nz-fs-base);
}
.nz-sec .gform_wrapper.gravity-theme input[type="text"],
.nz-sec .gform_wrapper.gravity-theme input[type="email"],
.nz-sec .gform_wrapper.gravity-theme input[type="tel"],
.nz-sec .gform_wrapper.gravity-theme input[type="url"] { height: 3.55vw; }
.nz-sec .gform_wrapper.gravity-theme textarea { height: 6.1vw; min-height: 90px; resize: vertical; }
.nz-sec .gform_wrapper.gravity-theme input::placeholder,
.nz-sec .gform_wrapper.gravity-theme textarea::placeholder { color: color-mix(in srgb, var(--text) 50%, transparent); }
.nz-sec .gform_wrapper.gravity-theme input:focus,
.nz-sec .gform_wrapper.gravity-theme textarea:focus { outline: none; border-bottom-color: var(--text); }

/* Name + date sub-labels above the inputs, like the original */
.nz-sec .gform_wrapper.gravity-theme .ginput_complex span { display: flex; flex-direction: column-reverse; }
.nz-sec .gform_wrapper.gravity-theme .ginput_complex label,
.nz-sec .gform_wrapper.gravity-theme .gform-field-label--type-sub {
  font-size: calc(var(--nz-fs-base) * 0.93); color: var(--text); padding: 0; margin: 0;
}
.nz-sec .gform_wrapper.gravity-theme .ginput_container_date input { width: 100%; }

/* Radio choices as boxed chips */
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gfield_radio { display: flex; flex-wrap: wrap; gap: 0.75vw; }
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gchoice { position: relative; margin: 0; }
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gfield-choice-input { position: absolute; opacity: 0; pointer-events: none; }
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gchoice label {
  display: inline-block; max-width: none; margin: 0; padding: 0 0.45vw;
  border: 1px solid #999; color: var(--text); font-size: var(--nz-fs-chip); line-height: 1.8; cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gfield-choice-input:checked + label { background: var(--text); color: var(--nz-light); border-color: var(--text); }
.nz-sec .gform_wrapper.gravity-theme .nz-chips .gfield-choice-input:focus-visible + label { outline: 2px solid var(--text); outline-offset: 2px; }

/* Submit buttons */
.nz-sec .gform_wrapper.gravity-theme .gform_footer { margin: 0.4vw 0 0; padding: 0; }
.nz-sec .gform_wrapper.gravity-theme .gform_footer .gform_button {
  padding: 1.05vw 1.1vw; border: 0; border-radius: 300px; background: #000; color: #fff;
  font-family: Poppins, sans-serif; font-size: max(12px, 0.83vw); line-height: 1.5; cursor: pointer; transition: opacity 0.2s;
}
.nz-sec .gform_wrapper.gravity-theme .gform_footer .gform_button:hover { opacity: 0.8; }
.nz-connect .gform_wrapper.gravity-theme .gform_footer .gform_button {
  background: #d9d9d9; color: #000; border: 1px solid #000; text-transform: uppercase; padding: 1vw 1.1vw;
}
.nz-sec .gform_confirmation_message { color: var(--text); font-size: var(--nz-fs-base); }

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  :root { --nz-gutter: 6vw; --nz-fs-base: 16px; --nz-fs-h2: 26px; --nz-fs-h4: 19px; --nz-fs-chip: 15px; }
  .nz-sec h4 { line-height: 1.5; }
  .nz-home, .nz-about, .nz-staff, .nz-new-signings, .nz-connect { --min-height: 0px; }
  .nz-documents { --min-height: 100vh; }

  .nz-sec .nz-header.e-con { --padding-top: 18px; --padding-bottom: 18px; height: auto; position: relative; }
  .nz-sec .nz-logo { width: 62vw; }
  .nz-sec .nz-nav { position: absolute !important; top: 50%; right: 4vw; width: auto !important; transform: translateY(-50%); }
  .nz-sec .nz-nav .elementor-nav-menu--dropdown { top: 100%; }

  .nz-sec .nz-content.e-con,
  .nz-home .nz-content.e-con, .nz-about .nz-content.e-con, .nz-staff .nz-content.e-con,
  .nz-new-signings .nz-content.e-con, .nz-questionnaire .nz-content.e-con, .nz-connect .nz-content.e-con {
    --padding-top: 10vw; --padding-right: var(--nz-gutter); --padding-bottom: 18vw; --padding-left: var(--nz-gutter);
  }
  .nz-home .nz-title .elementor-heading-title, .nz-about .nz-title .elementor-heading-title { margin-bottom: 20px; }
  .nz-home .nz-intro h4, .nz-home .nz-contact-lines h4, .nz-about .nz-body h4 { margin-bottom: 16px; }
  .nz-home .nz-agent p { margin-top: 18px; }
  .nz-btn-outline .elementor-button { padding: 4px 28px; margin-top: 12px; }

  .nz-staff .nz-staff-grid.e-con { grid-template-columns: 1fr; gap: 20px; }
  .nz-new-signings .nz-poster { width: 100%; }

  .nz-documents .nz-content.e-con, .nz-documents .nz-doc-buttons.e-con { position: static; }
  .nz-documents .nz-doc-buttons.e-con { flex-direction: column; align-items: center; gap: 16px; --gap: 16px; padding: 10vw 0 18vw; }
  .nz-documents .nz-pill { position: static !important; width: auto !important; height: auto; }
  .nz-pill .elementor-button { padding: 10px 24px !important; font-size: 13px; }

  .nz-form-wrap.e-con, .nz-connect .nz-copy, .nz-connect .nz-form-wrap.e-con { max-width: none; }
  .nz-questionnaire .nz-form-title .elementor-heading-title { font-size: 20px; margin-bottom: 28px; }
  .nz-sec .gform_wrapper.gravity-theme .gform_fields { grid-row-gap: 18px; }
  .nz-sec .gform_wrapper.gravity-theme input[type="text"],
  .nz-sec .gform_wrapper.gravity-theme input[type="email"],
  .nz-sec .gform_wrapper.gravity-theme input[type="tel"],
  .nz-sec .gform_wrapper.gravity-theme input[type="url"] { height: 44px; }
  .nz-sec .gform_wrapper.gravity-theme .nz-chips .gfield_radio { gap: 8px; }
  .nz-sec .gform_wrapper.gravity-theme .nz-chips .gchoice label { padding: 0 8px; }
  .nz-sec .gform_wrapper.gravity-theme .gform_footer .gform_button { padding: 14px 22px; font-size: 13px; }
  .nz-connect .nz-copy p { margin-bottom: 14px; }
  .nz-connect .nz-form-wrap.e-con { margin-top: 36px; }
  .nz-sec .nz-divider svg { height: 8vw; }
}


/* Tablet: give the menu more room so it does not wrap to 3 rows */
@media (max-width: 1024px) {
  .nz-sec .nz-nav .elementor-nav-menu--main .elementor-nav-menu { max-width: 70vw; }
}/* End custom CSS */