/*
Theme Name: NTHA Website v3.55.28
Theme URI: https://ntha.com.au/
Description: NTHA Website child theme adding reusable NTHA service-page blocks to the approved NTHA Website theme.
Author: NTHA
Version: 3.55.28
Template: ntha-website
Text Domain: ntha-v316
*/

/* Parent theme supplies the public-site design. */

/* Match the standard membDB acknowledged-popup action button. */
.ntha-email-confirm-modal .btn-red {
  background: #e01d2d;
  color: #fff;
  border: none;
}

.ntha-email-confirm-modal .btn-red:hover,
.ntha-email-confirm-modal .btn-red:focus {
  background: #c91624;
  color: #fff;
}


/* ==========================================================
   GLOBAL NTHA HEADER
   The approved index7 header is global and must render at the
   same compact scale on the homepage and every internal page.
   These sizing rules originally lived in home-v7.css only.
   ========================================================== */
.header-bar .navbar {
  justify-content: space-between;
}

.header-bar .navbar-collapse {
  flex-grow: initial;
}

.header-bar .serving-logo {
  max-width: 68px;
  height: auto;
}

.header-bar .header-logos {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  position: relative;
}

.header-bar .header-logos img {
  max-width: 65px;
  height: auto;
}

.header-bar .header-logos span {
  position: absolute;
  top: 0;
  left: 53px;
  font-size: 12px;
  font-weight: 600;
  font-family: Inter, sans-serif;
  color: #141B2B;
}

/* Keep custom WordPress logos constrained exactly like the
   prototype logo on all pages. */
.header-bar .navbar-brand img,
.header-bar .custom-logo {
  max-width: 100px;
  height: auto;
}

/* Responsive header behaviour: preserve the standard mobile
   navigation while preventing legacy logos from overflowing. */
@media (max-width: 991.98px) {
  .header-bar .header-logos {
    gap: 14px;
    margin-left: auto;
    margin-right: 12px;
  }

  .header-bar .header-logos img {
    max-width: 52px;
  }

  .header-bar .header-logos span {
    left: 42px;
    font-size: 10px;
  }

  .header-bar .serving-logo {
    max-width: 58px;
  }
}

@media (max-width: 767.98px) {
  .header-bar .header-logos {
    display: none;
  }
}


/* ==========================================================
   GLOBAL HERO / BANNER GEOMETRY
   One shared source of truth for banner dimensions.
   Both the homepage .main-banner and every NTHA service-page
   hero consume these variables. Change them here once and the
   size cascades site-wide.
   ========================================================== */
:root {
  --ntha-banner-height: 145px;
  --ntha-banner-bg: #fff;
  --ntha-banner-shadow: 0 2px 10px rgba(0,0,0,.08);
}

/* Parent homepage hero: override its historical hard-coded
   145px value so it also consumes the global variable. */
.main-banner {
  min-height: var(--ntha-banner-height);
  padding: 0;
  background: var(--ntha-banner-bg);
  box-shadow: var(--ntha-banner-shadow);
}
.main-banner .row {
  min-height: var(--ntha-banner-height);
}
.main-banner img {
  width: 100%;
  height: var(--ntha-banner-height);
  object-fit: cover;
  border-radius: 12px;
}

/* Service-page hero uses exactly the same global height. */
.ntha-service-hero {
  height: var(--ntha-banner-height);
  min-height: var(--ntha-banner-height);
  background: var(--ntha-banner-bg);
  box-shadow: var(--ntha-banner-shadow);
}
.ntha-service-hero .ntha-hero-image,
.ntha-service-hero .ntha-hero-image img {
  height: var(--ntha-banner-height);
  min-height: var(--ntha-banner-height);
  max-height: var(--ntha-banner-height);
}
.ntha-service-hero .ntha-hero-copy {
  min-height: var(--ntha-banner-height);
  padding: 12px 28px;
}

/* The page hero is still one horizontal band at tablet widths.
   At phone widths it stacks for usability rather than forcing
   three tiny columns. */
@media (max-width: 900px) and (min-width: 641px) {
  .ntha-service-hero {
    display: grid;
    grid-template-columns: 1fr 1.05fr 1fr;
    height: var(--ntha-banner-height);
    min-height: var(--ntha-banner-height);
  }
  .ntha-service-hero .ntha-hero-copy,
  .ntha-service-hero .ntha-hero-image-left,
  .ntha-service-hero .ntha-hero-image-right {
    grid-column: auto;
    grid-row: auto;
  }
  .ntha-service-hero .ntha-hero-copy {
    padding: 10px 16px;
  }
}

@media (max-width: 640px) {
  :root {
    --ntha-banner-height-mobile-image: 170px;
  }
  .ntha-service-hero {
    height: auto;
    min-height: 0;
    box-shadow: var(--ntha-banner-shadow);
  }
  .ntha-service-hero .ntha-hero-copy {
    min-height: 0;
    padding: 24px 20px;
  }
  .ntha-service-hero .ntha-hero-image,
  .ntha-service-hero .ntha-hero-image img {
    height: var(--ntha-banner-height-mobile-image);
    min-height: var(--ntha-banner-height-mobile-image);
    max-height: var(--ntha-banner-height-mobile-image);
  }
}

/* ==========================================================
   EDITABLE HOMEPAGE SERVICE TILES
   Keeps the approved index7 card appearance while making
   image/title/destination editable from the Home page.
   ========================================================== */
.ntha-home-service-link {
  display: block;
  position: relative;
  z-index: 2;
  pointer-events: auto !important;
  color: inherit;
  text-decoration: none;
}
.ntha-home-service-link:hover,
.ntha-home-service-link:focus {
  color: inherit;
  text-decoration: none;
}
.ntha-home-service-link .service-card {
  cursor: pointer;
}


/* ==========================================================
   MEMBERS ONLY CATALOGUE / LOGIN GATEWAY
   The Members Only landing page is public. Direct child pages are protected
   and send logged-out visitors back to the login gateway with a return URL.
   ========================================================== */
.ntha-members-page {
  padding-bottom: 72px;
}
.ntha-members-heading-shell,
.ntha-members-login-shell,
.ntha-members-status-shell,
.ntha-members-empty {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
.ntha-members-heading-shell {
  margin-top: 48px;
  margin-bottom: 18px;
}
.ntha-members-heading-shell h1 {
  margin: 0;
}
.ntha-members-catalogue-content > p,
.ntha-members-catalogue-content > h2,
.ntha-members-catalogue-content > h3,
.ntha-members-catalogue-content > ul,
.ntha-members-catalogue-content > ol {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
.ntha-members-only-tiles {
  margin-top: 34px;
  margin-bottom: 34px;
}
.ntha-members-login-shell {
  margin-top: 48px;
  margin-bottom: 40px;
}
.ntha-members-login-shell-below {
  margin-top: 28px;
}
.ntha-member-login-card {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(20,27,43,.12);
  box-shadow: 0 8px 28px rgba(20,27,43,.08);
  border-radius: 12px;
  padding: 28px;
}
.ntha-member-login-card h1,
.ntha-member-login-card h2 {
  margin-top: 0;
}
.ntha-member-login-once {
  color: #5d6470;
}
.ntha-member-login-card .login-username,
.ntha-member-login-card .login-password,
.ntha-member-login-card .login-remember,
.ntha-member-login-card .login-submit {
  margin-bottom: 16px;
}
.ntha-member-login-card label {
  display: block;
  font-weight: 600;
  margin-bottom: 6px;
}
.ntha-member-login-card .login-remember label {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-weight: 400;
}
.ntha-member-login-card input[type="text"],
.ntha-member-login-card input[type="password"] {
  width: 100%;
  min-height: 44px;
  border: 1px solid #c9cdd4;
  border-radius: 6px;
  padding: 9px 12px;
  box-sizing: border-box;
}
.ntha-member-login-card input[type="submit"],
.ntha-member-button {
  display: inline-block;
  min-height: 44px;
  border: 0;
  border-radius: 6px;
  padding: 11px 20px;
  background: #d71920;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  cursor: pointer;
}
.ntha-member-login-card input[type="submit"]:hover,
.ntha-member-button:hover {
  opacity: .9;
}
.ntha-member-login-error {
  padding: 10px 12px;
  border-left: 4px solid #d63638;
  background: #fff1f1;
  color: #8a2424;
  font-weight: 600;
}
.ntha-member-login-help {
  margin-top: 18px;
}
.ntha-member-login-help a,
.ntha-member-login-links a,
.ntha-member-logout-link {
  text-decoration: underline;
}
.ntha-member-login-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.ntha-member-status-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 18px 0 10px;
  padding: 12px 16px;
  border: 1px solid rgba(20,27,43,.12);
  border-radius: 8px;
  background: #f7f8fa;
}
.ntha-member-signed-in {
  margin: 0;
  font-weight: 600;
}
.ntha-members-empty {
  margin-top: 30px;
}
@media (max-width: 640px) {
  .ntha-members-page {
    padding-bottom: 48px;
  }
  .ntha-members-heading-shell,
  .ntha-members-login-shell,
  .ntha-members-status-shell,
  .ntha-members-empty,
  .ntha-members-catalogue-content > p,
  .ntha-members-catalogue-content > h2,
  .ntha-members-catalogue-content > h3,
  .ntha-members-catalogue-content > ul,
  .ntha-members-catalogue-content > ol {
    padding-left: 16px;
    padding-right: 16px;
  }
  .ntha-members-heading-shell,
  .ntha-members-login-shell {
    margin-top: 28px;
  }
  .ntha-member-login-card {
    padding: 20px;
  }
  .ntha-member-login-card input[type="submit"],
  .ntha-member-button {
    width: 100%;
    text-align: center;
  }
  .ntha-member-status-card {
    display: block;
  }
  .ntha-member-logout-link {
    display: inline-block;
    margin-top: 8px;
  }
  .ntha-member-login-links {
    display: block;
  }
  .ntha-member-login-links a {
    display: block;
    margin-top: 8px;
  }
}


/* ==========================================================
   v3.21 Global footer contact panel
   ========================================================== */
.ntha-footer-email-button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.ntha-footer-email-panel {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  background: rgba(0,0,0,.12);
}
.ntha-footer-email-panel[hidden] { display: none !important; }
.ntha-footer-email-form { margin: 0; }
.ntha-footer-email-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ntha-footer-email-fields label { display: block; margin: 0; }
.ntha-footer-email-fields label span { display: block; margin-bottom: 4px; font-size: .9rem; }
.ntha-footer-email-fields input,
.ntha-footer-email-fields textarea {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 5px;
  background: #fff;
  color: #222;
}
.ntha-footer-email-fields textarea { min-height: 110px; resize: vertical; }
.ntha-footer-email-subject,
.ntha-footer-email-message { grid-column: 1 / -1; }
.ntha-footer-email-actions { display: flex; gap: 10px; margin-top: 12px; }
.ntha-footer-email-send,
.ntha-footer-email-cancel {
  min-height: 42px;
  padding: 8px 16px;
  border-radius: 5px;
  cursor: pointer;
}
.ntha-footer-email-send { border: 1px solid #fff; background: #fff; color: #222; }
.ntha-footer-email-cancel { border: 1px solid rgba(255,255,255,.55); background: transparent; color: inherit; }
.ntha-footer-email-status { margin-top: 10px; min-height: 1.4em; }
.ntha-footer-email-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
@media (max-width: 767.98px) {
  .ntha-footer-email-fields { grid-template-columns: 1fr; }
  .ntha-footer-email-subject,
  .ntha-footer-email-message { grid-column: auto; }
  .ntha-footer-email-actions { flex-direction: column; }
  .ntha-footer-email-send,
  .ntha-footer-email-cancel { width: 100%; }
}


/* ==========================================================
   v3.54.58 Are My Workers Safe? enquiry service selection
   ========================================================== */
.ntha-footer-email-services {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0;
  border: 0;
}
.ntha-footer-email-services legend {
  margin: 0 0 8px;
  padding: 0;
  font-size: .9rem;
  font-weight: 600;
}
.ntha-footer-email-services .ntha-footer-email-service-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0 0 8px;
  cursor: pointer;
}
.ntha-footer-email-fields .ntha-footer-email-services .ntha-footer-email-service-option span {
  display: inline;
  margin: 0;
  font-size: 1rem;
  line-height: 1.35;
}
.ntha-footer-email-fields .ntha-footer-email-services input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 2px 0 0;
  padding: 0;
  accent-color: #e31b2b;
}
.ntha-footer-email-other-service {
  grid-column: 1 / -1;
}
@media (max-width: 767.98px) {
  .ntha-footer-email-services,
  .ntha-footer-email-other-service { grid-column: auto; }
}


/* v3.28 footer office/contact and legal-link refinements. */
.ntha-office-list { margin: 0 0 14px; }
.ntha-office { margin-bottom: 14px; }
.ntha-office:last-child { margin-bottom: 0; }
.ntha-office-heading { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 3px; }
.ntha-office-heading i { color: #e51b36; margin-top: 2px; flex: 0 0 auto; }
.ntha-office-lines { padding-left: 24px; line-height: 1.45; font-size: .92em; }
.ntha-office-lines span { display: inline-block; margin-top: 2px; }
.footer-contact .ntha-contact-methods { margin-top: 16px; }
.footer-legal-menu { display: flex; justify-content: flex-end; gap: 24px; align-items: center; list-style: none; margin: 0; padding: 0; }
.ntha-footer-legal-button { appearance: none; border: 0; background: transparent; padding: 0; color: inherit; font: inherit; text-decoration: none; cursor: pointer; }
.ntha-footer-legal-button:hover, .ntha-footer-legal-button:focus { color: #e51b36; }
@media (max-width: 991.98px) {
  .footer-legal-menu { justify-content: center; flex-wrap: wrap; }
}

/* Compact footer office presentation */
.ntha-office-list-visible { margin-bottom: 12px; }
.ntha-footer-office-button { appearance:none; border:0; background:transparent; padding:0; color:inherit; font:inherit; cursor:pointer; text-align:left; }
.ntha-footer-office-button:hover, .ntha-footer-office-button:focus { color:#e51b36; }
.ntha-offices-modal-body { line-height:1.5; }
.ntha-popup-office { margin-bottom:18px; }
.ntha-popup-office:last-child { margin-bottom:0; }
.ntha-popup-office span { display:inline-block; margin-top:3px; }


/* v3.52.3 - Application recipients are configured in the Staff App above the Applications table. */

/* v3.54.11 - Global hero image corner fix.
   Some hero layouts clip the image inside square wrapper elements, so the
   radius must be applied to both the image and its immediate image wrapper. */
.main-banner .banner-img-left,
.main-banner .banner-img-right,
.ntha-service-hero .ntha-hero-image,
.ntha-service-hero .ntha-hero-image-left,
.ntha-service-hero .ntha-hero-image-right {
  border-radius: 12px !important;
  overflow: hidden !important;
}

.main-banner .banner-img-left img,
.main-banner .banner-img-right img,
.main-banner img,
.ntha-service-hero .ntha-hero-image img,
.ntha-service-hero .ntha-hero-image-left img,
.ntha-service-hero .ntha-hero-image-right img {
  border-radius: 12px !important;
}

/* ==========================================================
   v3.54.15 TOPBAR CONTACT + SOCIAL ORDER
   Contact Us sits immediately before Member Login. The social
   cluster is the final/rightmost topbar item on desktop.
   ========================================================== */
.topbar-social-group {
  flex: 0 0 auto;
}

#contact-us {
  scroll-margin-top: 16px;
}

/* ==========================================================
   v3.54.33 HOMEPAGE PARTNERS
   Fixed Annual Partners plus a CMS-managed, randomised,
   continuously scrolling Supporting Industry Members row.
   ========================================================== */
.annual-partner-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 16px;
}

.annual-partner-grid .annual-partner-card {
  width: 100%;
  min-width: 0;
  height: 118px;
  margin: 0;
  padding: 16px;
}

.annual-partner-grid .annual-partner-card img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 76px;
  object-fit: contain;
}

.supporting-industry-members-section {
  padding: 0 0 50px;
  background: #F7F3F0;
  overflow: hidden;
}

.supporting-industry-members-section .section-title {
  margin-bottom: 30px;
}

.ntha-industry-marquee {
  width: 100%;
  overflow: hidden;
}

.ntha-industry-track {
  display: flex;
  align-items: stretch;
  width: max-content;
  will-change: transform;
}

.ntha-industry-marquee.is-ready .ntha-industry-track {
  animation: ntha-industry-scroll-right var(--ntha-industry-duration, 60s) linear infinite;
}

.ntha-industry-group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 20px;
  padding-right: 20px;
}

.industry-member-card {
  flex: 0 0 190px;
  width: 190px;
  height: 110px;
  padding: 14px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.industry-member-card img {
  display: block;
  width: auto;
  height: auto;
  max-width: 162px;
  max-height: 74px;
  object-fit: contain;
}

@keyframes ntha-industry-scroll-right {
  from {
    transform: translate3d(var(--ntha-industry-start, 0), 0, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}

@media (max-width: 1199.98px) {
  .annual-partner-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .annual-partner-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .annual-partner-grid .annual-partner-card {
    height: 105px;
    padding: 12px;
  }

  .industry-member-card {
    flex-basis: 155px;
    width: 155px;
    height: 96px;
    padding: 12px;
  }

  .industry-member-card img {
    max-width: 131px;
    max-height: 66px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ntha-industry-marquee {
    overflow-x: auto;
  }

  .ntha-industry-marquee.is-ready .ntha-industry-track {
    animation: none;
    transform: none;
  }

  .ntha-industry-group[aria-hidden="true"] {
    display: none;
  }
}


/* Members Only hotline line mirrors the footer phone treatment. */
.ntha-members-hotline {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  gap: 10px;
  margin: 0 0 24px;
  color: #141B2B;
  font-family: Inter, sans-serif;
  font-size: 18px;
  line-height: 1.4;
}

.ntha-members-hotline i {
  color: #e01d2d;
  font-size: 18px;
  line-height: 1;
}

.ntha-members-hotline a {
  color: inherit;
  text-decoration: none;
}

.ntha-members-hotline a:hover,
.ntha-members-hotline a:focus {
  color: #e01d2d;
  text-decoration: underline;
}


/* v3.54.57: visible owner-routed Enquire Now CTA inside flexible text blocks. */
.ntha-page-contact-cta {
  margin-top: 24px;
  margin-bottom: 8px;
}

.ntha-inline-enquire-button {
  display: inline-block;
  background: #e31b2b;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  line-height: 1.2;
  padding: 13px 28px;
  border-radius: 0;
}

.ntha-inline-enquire-button:hover,
.ntha-inline-enquire-button:focus {
  background: #b91523;
  color: #fff !important;
  text-decoration: none !important;
}

/* ==========================================================
   v3.54.95 AUTOMATIC PUBLIC SITEMAP
   ========================================================== */
.ntha-sitemap-page {
  padding: 56px 0 72px;
}

.ntha-sitemap-container {
  max-width: 1180px;
}

.ntha-sitemap-header {
  margin-bottom: 30px;
}

.ntha-sitemap-header h1 {
  margin-bottom: 10px;
}

.ntha-sitemap-header p {
  margin: 0;
  max-width: 760px;
}

.ntha-sitemap-navigation > .ntha-sitemap-root-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ntha-sitemap-root-list > .ntha-sitemap-item {
  margin: 0;
  padding: 22px 24px;
  border: 1px solid #e1e3e6;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(20, 27, 43, 0.06);
}

.ntha-sitemap-root-list > .ntha-sitemap-item > a {
  display: inline-block;
  position: relative;
  margin-bottom: 8px;
  padding-bottom: 7px;
  color: #141b2b;
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
}

.ntha-sitemap-root-list > .ntha-sitemap-item > a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 42px;
  height: 3px;
  border-radius: 2px;
  background: #e01d2d;
}

.ntha-sitemap-child-list {
  margin: 8px 0 0;
  padding: 0 0 0 18px;
}

.ntha-sitemap-child-list .ntha-sitemap-item {
  margin: 7px 0;
}

.ntha-sitemap-child-list a {
  color: #343a45;
  text-decoration: none;
}

.ntha-sitemap-navigation a:hover,
.ntha-sitemap-navigation a:focus {
  color: #e01d2d;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 991.98px) {
  .ntha-sitemap-navigation > .ntha-sitemap-root-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .ntha-sitemap-page {
    padding: 38px 0 52px;
  }

  .ntha-sitemap-navigation > .ntha-sitemap-root-list {
    grid-template-columns: 1fr;
  }
}
