/* ─────────────────────────────────────────────────────────
   SITE FOOTER — mirrors the live liondigital.com.au layout.
   Dark background, 4-column grid on desktop, stacks on mobile.
   ────────────────────────────────────────────────────────── */

.site-footer {
  background: #0A0A0A;
  color: #E6E6E6;
  padding: 80px 48px 48px;
  font-family: var(--font);
  position: relative;
  overflow: hidden;
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255,44,85,0.05) 0%, transparent 40%),
    linear-gradient(225deg, rgba(255,255,255,0.02) 0%, transparent 60%);
  pointer-events: none;
}

.site-footer__inner {
  position: relative;
  max-width: 1320px;
  margin: 0 auto;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1.1fr;
  gap: 48px;
  align-items: start;
}

/* ── COL 1 · Newsletter + Contact ─────────────────────── */
.footer-col--newsletter { display: flex; flex-direction: column; gap: 28px; }

/* ── Footer newsletter (email-only quick-signup) ─── */
.footer-newsletter-h {
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.02em;
  margin: 0 0 18px;
  color: var(--red);
}
.footer-newsletter-h__mid { color: #fff; font-weight: 800; }
.footer-newsletter-form { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.footer-newsletter-form[hidden] { display: none; }
.footer-newsletter-form input[type="email"] {
  flex: 1 1 200px;
  min-width: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.35);
  color: #fff;
  font: 400 14px/1.4 var(--font);
  padding: 8px 0 10px;
  outline: none;
  transition: border-color 0.2s;
}
.footer-newsletter-form input[type="email"]::placeholder { color: rgba(255,255,255,0.5); }
.footer-newsletter-form input[type="email"]:focus { border-bottom-color: var(--red); }
.footer-newsletter-form button {
  background: var(--red);
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: 12px 28px;
  font: 800 13px/1 var(--font);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}
.footer-newsletter-form button:hover { background: #ff4569; transform: translateY(-1px); }
.footer-newsletter-form button[disabled] { opacity: 0.6; cursor: default; transform: none; }
.footer-newsletter-status {
  margin: 10px 0 0;
  font-size: 12px;
  letter-spacing: 0.02em;
}
.footer-newsletter-status--success { color: #8ef2b3; }
.footer-newsletter-status--error   { color: #ffb3c1; }

/* Reset the .ld-contact-card wrapper on the footer — no white card, dark bg */
.site-footer .ld-contact-card {
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
  border-radius: 0;
}

/* ── Audit modal — opens from the footer email quick-capture ───── */
.ld-audit-modal { position: fixed; inset: 0; z-index: 9999; }
.ld-audit-modal[hidden] { display: none !important; }
body.ld-modal-open { overflow: hidden; }
.ld-audit-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(10,10,10,0.72);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.ld-audit-modal__panel {
  position: relative;
  max-width: 960px;
  width: min(94vw, 960px);
  max-height: 92vh;
  overflow-y: auto;
  margin: 4vh auto 0;
  background: #0f0f0f;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 48px 56px 44px;
  color: #fff;
  box-shadow: 0 40px 80px rgba(0,0,0,0.5);
  outline: none;
}
.ld-audit-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,0.15);
  background: transparent;
  color: rgba(255,255,255,0.85);
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, border-color 0.18s;
}
.ld-audit-modal__close svg { width: 16px; height: 16px; }
.ld-audit-modal__close:hover { background: var(--red); color: #fff; border-color: var(--red); }
.ld-audit-modal__title {
  font-size: clamp(24px, 3.4vw, 32px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin: 0 0 8px;
  color: #fff;
  text-transform: uppercase;
}
.ld-audit-modal__title em { font-style: normal; color: var(--red); }
.ld-audit-modal__lede {
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.65);
  margin: 0 0 24px;
}
@media (max-width: 640px) {
  .ld-audit-modal__panel {
    max-width: 100vw;
    width: 100vw;
    margin: 0 auto;
    padding: 28px 20px 24px;
    max-height: 100vh;
    min-height: 100vh;
    border-radius: 0;
    border: 0;
  }
}

/* ── HubSpot audit form pair rows (Section 14). Base styling
   comes from `.ld-contact-form-block` in contact.css. ─── */
.ld-audit-embed .ld-audit-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 900px) {
  .ld-audit-embed .ld-audit-pair { grid-template-columns: 1fr; }
}

/* ── Dark-theme skin (Section 14). Keeps radio rendering, restyles for dark. ─── */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block {
  background: transparent;
  color: #fff;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-private { gap: 22px; }

/* Force every fieldset and input to span the full form width so single-line
   fields align with the paired names + full-width submit. */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form fieldset,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form fieldset.form-columns-1,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form fieldset.form-columns-2,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-field,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .input {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-input { width: 100% !important; max-width: none !important; box-sizing: border-box !important; }
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form fieldset .input {
  padding-right: 0 !important;
  padding-left: 0 !important;
  margin: 0 !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form fieldset > div.hs-form-field { padding: 0 !important; }

/* Field labels — uppercase micro-caps above each input (matches the mock).
   `label:empty::before { content: attr(placeholder) }` from contact.css keeps
   HubSpot label text populated from the input placeholder. */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-field > label {
  display: block !important;
  color: rgba(255,255,255,0.55) !important;
  font: 800 11px/1.4 var(--font) !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  margin: 0 0 10px !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-required { color: var(--red) !important; margin-left: 3px; }

/* Text/email/tel/url inputs + textarea + native select — underline treatment */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input[type="text"],
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input[type="email"],
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input[type="tel"],
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input[type="number"],
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input[type="url"],
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block textarea,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block select.hs-input {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,0.22) !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 10px 0 12px !important;
  font-size: 16px !important;
  box-shadow: none !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input::placeholder,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block textarea::placeholder { color: rgba(255,255,255,0.35) !important; }
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block input:focus,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block textarea:focus,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block select.hs-input:focus { border-bottom-color: var(--red) !important; }

/* Radio pill rows */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .inputs-list { gap: 10px 14px !important; }
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-radio-display {
  color: rgba(255,255,255,0.85) !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 999px !important;
  padding: 8px 14px 8px 10px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  transition: background 0.18s, border-color 0.18s, color 0.18s !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-radio-display:hover {
  background: rgba(255,44,85,0.08) !important;
  border-color: rgba(255,44,85,0.5) !important;
  color: #fff !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-radio-display input[type="radio"] {
  width: 14px !important; height: 14px !important;
  border: 2px solid rgba(255,255,255,0.4) !important;
  background: transparent !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-radio-display input[type="radio"]:checked {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 3px rgba(255,44,85,0.2) !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-form-radio-display input[type="radio"]:checked::after {
  background: var(--red) !important;
  inset: 2px !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block li:has(input:checked) .hs-form-radio-display {
  background: rgba(255,44,85,0.14) !important;
  border-color: var(--red) !important;
  color: #fff !important;
}

/* Submit — red rounded pill button */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-submit { margin-top: 12px !important; }
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-button {
  background: var(--red) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: 18px 28px !important;
  font: 800 13px/1 var(--font) !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: background 0.2s, transform 0.2s !important;
}
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-button:hover {
  background: #ff4569 !important;
  transform: translateY(-1px) !important;
}

/* Errors on dark bg */
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-error-msgs,
.ld-audit-embed.ld-audit-embed--dark.ld-contact-form-block .hs-error-msg { color: #ffb3c1 !important; }

.footer-contact-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.footer-contact-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
  color: rgba(255,255,255,0.8);
}
.footer-contact-list a { color: inherit; text-decoration: none; transition: color 0.2s; }
.footer-contact-list a:hover { color: var(--red); }

.footer-contact-icon {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  color: rgba(255,255,255,0.75);
  flex-shrink: 0;
}
.footer-contact-icon svg { width: 13px; height: 13px; }

/* ── COL 2/3 · Nav columns ────────────────────────────── */
.footer-nav-col { display: flex; flex-direction: column; gap: 18px; }
.footer-nav-h {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}
.footer-nav-h a { color: inherit; text-decoration: none; transition: color 0.2s; }
.footer-nav-h a:hover { color: var(--red); }

.footer-nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-nav-list a {
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  transition: color 0.2s;
}
.footer-nav-list a:hover { color: var(--red); }

/* ── COL 4 · Brand ────────────────────────────────────── */
.footer-col--brand { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

.footer-brand-link { display: inline-block; }
.footer-brand-logo {
  display: block;
  width: 160px;
  height: auto;
}

.footer-brand-tag {
  margin: 4px 0 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #fff;
  line-height: 1.4;
}

.footer-reviews-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255,255,255,0.85);
}
.footer-reviews-stars { display: inline-flex; gap: 2px; color: #FFC107; }
.footer-reviews-stars svg { width: 14px; height: 14px; }

.footer-social-row {
  display: flex;
  gap: 10px;
  margin-top: 4px;
}
.footer-social-row a {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 999px;
  color: #0A0A0A;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.footer-social-row a:hover { background: var(--red); color: #fff; transform: translateY(-2px); }
.footer-social-row svg { width: 16px; height: 16px; }

/* ── Partner logos strip ──────────────────────────────── */
.footer-partners {
  margin-top: 56px;
  padding-top: 40px;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 40px 56px;
}
.footer-partner-logo img {
  display: block;
  height: 38px;
  width: auto;
  max-width: 160px;
  opacity: 0.85;
  /* Inverts luminosity while preserving hue — black wordmarks become white
     on the dark footer; branded/coloured badges keep their colours. */
  filter: invert(1) hue-rotate(180deg);
  transition: opacity 0.2s, filter 0.2s;
}
.footer-partner-logo--google img { filter: none; opacity: 1; }
.footer-partner-logo:hover img { opacity: 1; }

/* ── Meta row (copyright) ─────────────────────────────── */
.footer-meta {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.08);
  display: flex;
  justify-content: center;
}
.footer-copy {
  font-size: 12px;
  letter-spacing: 0.05em;
  color: rgba(255,255,255,0.5);
}

/* ── Tablet ───────────────────────────────────────────── */
@media (max-width: 1100px) {
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-col--brand { grid-column: 1 / -1; }
}

/* ── Mobile ───────────────────────────────────────────── */
@media (max-width: 768px) {
  .site-footer { padding: 56px 20px 32px; }
  .site-footer__grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-col--brand { align-items: flex-start; }
  .footer-brand-logo { width: 140px; }
  .footer-partners { margin-top: 40px; padding-top: 28px; gap: 24px 32px; }
  .footer-partner-logo img { height: 28px; max-width: 120px; }
  .footer-meta { margin-top: 28px; padding-top: 20px; flex-direction: column; align-items: flex-start; }
}
