/* DriveDiggers unified production theme
   Loaded last on public, authentication, customer and admin pages.
   Visual-only: does not change API, authentication or dashboard behaviour. */

:root {
  --dd-display: Baskerville, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, "Times New Roman", serif;
  --dd-body: "Segoe UI Variable", "Segoe UI", Arial, Helvetica, sans-serif;
  --dd-ink: #07131f;
  --dd-ink-2: #0b1d2b;
  --dd-paper: #f5f6f4;
  --dd-line: #d9dfdf;
  --dd-orange: #ff5b35;
  --dd-orange-dark: #e74a28;
  --dd-peach: #ffc6b3;
  --dd-teal: #2bc6b4;
}

/* --------------------------------------------------------------------------
   RELIABLE BRAND MARK — valid SVG asset, shared by every area of the website
   -------------------------------------------------------------------------- */
.public-site .brand-mark,
.public-site .site-header.scrolled .brand-mark,
.public-site .site-header.is-scrolled .brand-mark,
.auth-page .auth-brand-mark,
.customer-page .customer-brand-mark,
.admin-page .admin-brand-mark,
.customer-page .customer-auth-mark,
.admin-page .admin-auth-mark {
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
  border: 0 !important;
  border-radius: 11px !important;
  background-color: transparent !important;
  background-image: url("../images/brand/drive-diggers-mark.svg") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  box-shadow: none !important;
}
.public-site .brand-mark::before,
.public-site .brand-mark::after,
.auth-page .auth-brand-mark::before,
.auth-page .auth-brand-mark::after,
.customer-page .customer-brand-mark::before,
.customer-page .customer-brand-mark::after,
.admin-page .admin-brand-mark::before,
.admin-page .admin-brand-mark::after,
.public-site .brand-mark > span,
.auth-page .auth-brand-mark > span,
.customer-page .customer-brand-mark > span,
.admin-page .admin-brand-mark > span {
  display: none !important;
}
.public-site .brand-mark { width: 40px !important; height: 40px !important; flex-basis: 40px !important; }
.auth-page .auth-brand-mark { width: 47px !important; height: 47px !important; }
.customer-page .customer-brand-mark,
.admin-page .admin-brand-mark { width: 44px !important; height: 44px !important; }

.public-site .brand-copy strong,
.auth-page .auth-brand-copy strong,
.customer-page .customer-brand-copy strong,
.admin-page .admin-brand-copy strong,
.legal-page .legal-brand {
  font-family: var(--dd-display) !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

/* Add the same visible logo to compact legal pages. */
.legal-page .legal-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 11px !important;
}
.legal-page .legal-brand::before {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  background: url("../images/brand/drive-diggers-mark.svg") center/contain no-repeat;
  content: "";
}

/* --------------------------------------------------------------------------
   PUBLIC WEBSITE
   -------------------------------------------------------------------------- */
.public-site {
  font-family: var(--dd-body) !important;
}
.public-site h1,
.public-site h2,
.public-site h3,
.public-site h4,
.public-site .section-heading h2,
.public-site .section-heading-split h2,
.public-site .faq-header h2 {
  font-family: var(--dd-display) !important;
}
.public-site .btn-primary,
.public-site button.btn-primary,
.public-site .header-cta,
.public-site .form-submit,
.public-site .contact-submit,
.public-site .evaluation-submit {
  border-color: var(--dd-orange) !important;
  background: var(--dd-orange) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.public-site .btn-primary:hover,
.public-site button.btn-primary:hover,
.public-site .header-cta:hover,
.public-site .form-submit:hover,
.public-site .contact-submit:hover,
.public-site .evaluation-submit:hover {
  border-color: var(--dd-orange-dark) !important;
  background: var(--dd-orange-dark) !important;
  transform: translateY(-1px);
}
.public-site .section-label,
.public-site .drive-service-kicker,
.public-site .pricing-kicker,
.public-site .industry-kicker {
  color: var(--dd-orange) !important;
}

/* Home hero: maintain the approved editorial style and keep all actions visible. */
.public-site.page-home .hero {
  box-sizing: border-box !important;
}
.public-site.page-home .hero-actions {
  margin-top: 0 !important;
  padding-bottom: 2px !important;
}
.public-site.page-home .hero-actions .btn {
  white-space: nowrap !important;
}

/* Tablet/laptop widths where the old desktop sizing pushed the buttons below the fold. */
@media (min-width: 901px) and (max-width: 1180px) {
  .public-site.page-home .hero {
    min-height: 640px !important;
    padding: 112px 0 48px !important;
    background-position: center, center, 66% center !important;
  }
  .public-site.page-home .hero-content { max-width: 650px !important; }
  .public-site.page-home .hero-kicker-brand { margin-bottom: 20px !important; gap: 6px !important; }
  .public-site.page-home .hero-kicker-brand strong { font-size: 1.55rem !important; }
  .public-site.page-home .hero-kicker-brand strong::after { margin-top: 10px !important; }
  .public-site.page-home .hero h1 {
    max-width: 650px !important;
    margin-bottom: 20px !important;
    font-size: clamp(3.55rem, 6.7vw, 4.65rem) !important;
    line-height: .9 !important;
  }
  .public-site.page-home .hero-description {
    max-width: 610px !important;
    margin-bottom: 24px !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
  }
  .public-site.page-home .hero-actions .btn {
    min-height: 46px !important;
    padding-inline: 22px !important;
  }
}

/* Short laptop browser windows: compact only the first screen, never clip CTAs. */
@media (min-width: 760px) and (max-height: 720px) {
  .public-site.page-home .hero {
    min-height: 100svh !important;
    padding-top: 96px !important;
    padding-bottom: 28px !important;
  }
  .public-site.page-home .hero-kicker-brand { margin-bottom: 15px !important; }
  .public-site.page-home .hero-kicker-brand strong { font-size: 1.35rem !important; }
  .public-site.page-home .hero-kicker-brand span { font-size: .56rem !important; }
  .public-site.page-home .hero h1 {
    margin-bottom: 16px !important;
    font-size: clamp(3.1rem, 6.1vw, 4.2rem) !important;
    line-height: .91 !important;
  }
  .public-site.page-home .hero-description {
    margin-bottom: 18px !important;
    font-size: .96rem !important;
    line-height: 1.55 !important;
  }
  .public-site.page-home .hero-actions .btn { min-height: 44px !important; }
}

@media (max-width: 640px) {
  .public-site .brand-mark { width: 39px !important; height: 39px !important; flex-basis: 39px !important; }
  .public-site.page-home .hero-actions .btn { white-space: normal !important; }
}

/* --------------------------------------------------------------------------
   AUTHENTICATION PAGES — same navy, serif and orange brand language
   -------------------------------------------------------------------------- */
.auth-page {
  --auth-blue: var(--dd-orange) !important;
  --auth-blue-dark: var(--dd-orange-dark) !important;
  font-family: var(--dd-body) !important;
  background:
    linear-gradient(90deg, transparent calc(100% - 1px), rgba(255,255,255,.028) 100%) 0 0 / 76px 76px,
    linear-gradient(transparent calc(100% - 1px), rgba(255,255,255,.028) 100%) 0 0 / 76px 76px,
    radial-gradient(circle at 78% 68%, rgba(255,91,53,.10), transparent 28%),
    linear-gradient(135deg, #06111f, #081a25 60%, #0a2530) !important;
}
.auth-page h1,
.auth-page h2,
.auth-page h3,
.auth-page h4,
.auth-page .auth-showcase h1,
.auth-page .auth-card-heading h2,
.auth-page[data-account-action] .auth-visual-content h1 {
  font-family: var(--dd-display) !important;
  font-weight: 500 !important;
  letter-spacing: -.045em !important;
}
.auth-page .auth-showcase h1 {
  max-width: 640px !important;
  font-size: clamp(3.65rem, 5.5vw, 6.3rem) !important;
  line-height: .9 !important;
}
.auth-page .auth-showcase h1 span {
  color: var(--dd-peach) !important;
  font-family: var(--dd-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  -webkit-text-fill-color: currentColor !important;
}
.auth-page .auth-eyebrow,
.auth-page .auth-card-heading > span { color: var(--dd-orange) !important; }
.auth-page .auth-eyebrow > span { background: var(--dd-orange) !important; }
.auth-page .auth-card::before {
  background: linear-gradient(90deg, var(--dd-orange) 0 64%, var(--dd-peach) 64% 82%, var(--dd-teal) 82%) !important;
}
.auth-page .auth-submit {
  border-radius: 0 !important;
  background: var(--dd-orange) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.auth-page .auth-submit:hover { background: var(--dd-orange-dark) !important; box-shadow: none !important; }
.auth-page .auth-submit svg { stroke: #fff !important; }
.auth-page .auth-switcher a.active,
.auth-page .auth-switcher a[aria-current="page"] { color: var(--dd-orange) !important; }
.auth-page .auth-home-link:hover { border-color: rgba(255,91,53,.5) !important; background: rgba(255,91,53,.08) !important; }
.auth-page .auth-benefit-icon { color: var(--dd-orange) !important; background: rgba(255,91,53,.08) !important; }
.auth-page .auth-input-wrap:focus-within { border-color: var(--dd-orange) !important; box-shadow: 0 0 0 4px rgba(255,91,53,.1) !important; }

@media (max-width: 980px) {
  .auth-page .auth-showcase h1 { font-size: clamp(3rem, 9vw, 4.8rem) !important; }
}
@media (max-width: 640px) {
  .auth-page .auth-brand-mark { width: 41px !important; height: 41px !important; }
  .auth-page .auth-showcase h1 { font-size: clamp(2.7rem, 13vw, 3.8rem) !important; line-height: .94 !important; }
}

/* --------------------------------------------------------------------------
   CUSTOMER + ADMIN PORTALS — preserve layout and controls, unify branding
   -------------------------------------------------------------------------- */
.customer-page,
.admin-page {
  font-family: var(--dd-body) !important;
}
.customer-page h1,
.customer-page h2,
.customer-page h3,
.admin-page h1,
.admin-page h2,
.admin-page h3,
.customer-page .customer-page-title h1,
.admin-page .admin-page-title h1,
.customer-page .customer-welcome h2,
.admin-page .admin-welcome h2 {
  font-family: var(--dd-display) !important;
  letter-spacing: -.035em !important;
}
.customer-page .customer-sidebar,
.admin-page .admin-sidebar {
  background:
    radial-gradient(circle at 16% 0%, rgba(255,91,53,.13), transparent 30%),
    linear-gradient(180deg, #06111f 0%, #081a24 57%, #09232d 100%) !important;
}
.customer-page .customer-nav-link.active,
.admin-page .admin-nav-link.active {
  border-color: rgba(255,91,53,.30) !important;
  background: rgba(255,91,53,.10) !important;
}
.customer-page .customer-nav-link.active::before,
.admin-page .admin-nav-link.active::before { background: var(--dd-orange) !important; }
.customer-page .customer-primary-button,
.customer-page .customer-btn-primary,
.customer-page button.customer-btn-primary,
.admin-page .admin-primary-button,
.admin-page .admin-btn-primary,
.admin-page button.admin-btn-primary {
  border-color: var(--dd-orange) !important;
  background: var(--dd-orange) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.customer-page .customer-primary-button:hover,
.customer-page .customer-btn-primary:hover,
.admin-page .admin-primary-button:hover,
.admin-page .admin-btn-primary:hover {
  border-color: var(--dd-orange-dark) !important;
  background: var(--dd-orange-dark) !important;
}
.customer-page .customer-welcome,
.admin-page .admin-welcome,
.admin-page .admin-dashboard-hero {
  background:
    linear-gradient(105deg, rgba(6,17,31,.98), rgba(8,34,48,.94) 62%, rgba(255,91,53,.12)),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0/64px 64px !important;
}
.customer-page .customer-welcome h2 > span,
.admin-page .admin-welcome h2 > span,
.admin-page .admin-dashboard-hero h2 > span {
  color: var(--dd-peach) !important;
  font-family: var(--dd-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
}
.customer-page .customer-welcome-label,
.customer-page .customer-page-title > span,
.admin-page .admin-welcome-label,
.admin-page .admin-page-title > span,
.admin-page .admin-dashboard-hero-label {
  color: var(--dd-orange) !important;
}
.customer-page .customer-avatar,
.admin-page .admin-avatar {
  background: linear-gradient(145deg, var(--dd-orange), #ff8b6f) !important;
  color: #fff !important;
}
.customer-page .customer-online-dot,
.admin-page .admin-online-dot { background: var(--dd-teal) !important; }
.customer-page .customer-card,
.customer-page .customer-stat-card,
.admin-page .admin-card,
.admin-page .admin-stat-card {
  border-radius: 12px !important;
}
.customer-page input:focus,
.customer-page select:focus,
.customer-page textarea:focus,
.admin-page input:focus,
.admin-page select:focus,
.admin-page textarea:focus {
  border-color: var(--dd-orange) !important;
  box-shadow: 0 0 0 4px rgba(255,91,53,.10) !important;
}

/* Dashboard logo text remains readable on dark sidebars. */
.customer-page .customer-brand-copy strong,
.admin-page .admin-brand-copy strong { color: #fff !important; }
.customer-page .customer-brand-copy small,
.admin-page .admin-brand-copy small { color: #aeb9c1 !important; }

@media (max-width: 760px) {
  .customer-page .customer-brand-mark,
  .admin-page .admin-brand-mark { width: 41px !important; height: 41px !important; }
  .customer-page .customer-welcome h2,
  .admin-page .admin-welcome h2,
  .admin-page .admin-dashboard-hero h2 { font-size: clamp(2.25rem, 10vw, 3.2rem) !important; line-height: .98 !important; }
}

/* --------------------------------------------------------------------------
   LEGAL PAGES
   -------------------------------------------------------------------------- */
.legal-page { font-family: var(--dd-body) !important; }
.legal-page h1,
.legal-page h2,
.legal-page h3 { font-family: var(--dd-display) !important; letter-spacing: -.035em !important; }
.legal-page .legal-header { background: #06111f !important; border-bottom-color: rgba(255,255,255,.10) !important; }
.legal-page .legal-brand,
.legal-page .legal-nav a { color: #fff !important; }
.legal-page .legal-eyebrow { color: var(--dd-orange) !important; }
.legal-page a { text-decoration-color: rgba(255,91,53,.38); }

/* ========================================================================
   FINAL CLIENT CORRECTIONS — official logo, desktop call action and hero scale
   ======================================================================== */

/* Use the exact official Drive Diggers artwork everywhere; no generated DD tile. */
.public-site .brand-mark,
.auth-page .auth-brand-mark,
.customer-page .customer-brand-mark,
.admin-page .admin-brand-mark,
.customer-page .customer-auth-mark,
.admin-page .admin-auth-mark {
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: url("../images/brand/drive-diggers-mark.png") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
}
.public-site .brand-mark {
  width: 58px !important;
  height: 58px !important;
  flex-basis: 58px !important;
}
.auth-page .auth-brand-mark {
  width: 72px !important;
  height: 72px !important;
  flex-basis: 72px !important;
}
.customer-page .customer-brand-mark,
.admin-page .admin-brand-mark {
  width: 62px !important;
  height: 62px !important;
  flex-basis: 62px !important;
}
.legal-page .legal-brand::before {
  width: 50px !important;
  height: 50px !important;
  flex-basis: 50px !important;
  background-image: url("../images/brand/drive-diggers-mark.png") !important;
}

/* Header remains spacious, aligned and consistent with the editorial reference. */
.public-site .site-header,
.public-site .site-header.scrolled,
.public-site .site-header.is-scrolled {
  height: 86px !important;
}
.public-site .header-container {
  gap: 24px !important;
}
.public-site .brand {
  min-width: max-content !important;
  gap: 10px !important;
}
.public-site .brand-copy strong {
  font-size: 1.08rem !important;
}
.public-site .brand-copy small {
  font-size: .50rem !important;
  letter-spacing: .16em !important;
}
.public-site .desktop-nav ul {
  gap: clamp(17px, 1.65vw, 27px) !important;
}
.public-site .desktop-nav a {
  font-size: .81rem !important;
}
.public-site .header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.public-site .header-phone {
  min-height: 44px !important;
  padding: 6px 10px !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 7px !important;
  background: rgba(255,255,255,.035) !important;
  color: #fff !important;
}
.public-site .header-phone small {
  font-size: .48rem !important;
  letter-spacing: .10em !important;
}
.public-site .header-phone strong {
  font-size: .76rem !important;
  white-space: nowrap !important;
}
.public-site .header-phone-icon {
  width: 30px !important;
  height: 30px !important;
  flex-basis: 30px !important;
}
.public-site .header-cta {
  min-height: 44px !important;
  padding-inline: 16px !important;
  white-space: nowrap !important;
}

/* Keep desktop navigation visible on normal laptop widths like the reference. */
@media (min-width: 921px) {
  .public-site .desktop-nav { display: block !important; }
  .public-site .menu-toggle { display: none !important; }
}
@media (min-width: 1200px) {
  .public-site .header-phone { display: flex !important; }
  .public-site .header-cta { display: inline-flex !important; }
}
@media (min-width: 921px) and (max-width: 1199px) {
  .public-site .header-phone,
  .public-site .header-cta { display: none !important; }
  .public-site .header-container { gap: 18px !important; }
  .public-site .desktop-nav ul { gap: 20px !important; }
  .public-site .desktop-nav a { font-size: .80rem !important; }
}
@media (max-width: 920px) {
  .public-site .desktop-nav,
  .public-site .header-phone,
  .public-site .header-cta { display: none !important; }
  .public-site .menu-toggle { display: block !important; }
  .public-site .header-actions { margin-left: auto !important; }
}

/* Hero hierarchy: large editorial heading without pushing either CTA off screen. */
@media (min-width: 921px) {
  .public-site.page-home .hero {
    min-height: 680px !important;
    align-items: flex-start !important;
    padding: 142px 0 58px !important;
  }
  .public-site.page-home .hero-content {
    max-width: 790px !important;
  }
  .public-site.page-home .hero-kicker-brand {
    margin-bottom: 24px !important;
  }
  .public-site.page-home .hero h1 {
    max-width: 790px !important;
    margin-bottom: 24px !important;
    font-size: clamp(5rem, 6.8vw, 7.35rem) !important;
    line-height: .86 !important;
  }
  .public-site.page-home .hero-description {
    margin-bottom: 27px !important;
    font-size: 1.04rem !important;
    line-height: 1.72 !important;
  }
  .public-site.page-home .hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
  }
  .public-site.page-home .hero-actions .btn {
    min-height: 49px !important;
    padding-inline: 26px !important;
  }
}

/* Short laptop viewport: preserve the large headline and keep both buttons visible. */
@media (min-width: 921px) and (max-height: 720px) {
  .public-site.page-home .hero {
    min-height: 650px !important;
    padding-top: 122px !important;
    padding-bottom: 42px !important;
  }
  .public-site.page-home .hero-kicker-brand {
    margin-bottom: 18px !important;
  }
  .public-site.page-home .hero-kicker-brand strong {
    font-size: 1.42rem !important;
  }
  .public-site.page-home .hero-kicker-brand strong::after {
    margin-top: 9px !important;
  }
  .public-site.page-home .hero h1 {
    margin-bottom: 19px !important;
    font-size: clamp(4.7rem, 7.25vw, 5.45rem) !important;
    line-height: .86 !important;
  }
  .public-site.page-home .hero-description {
    max-width: 670px !important;
    margin-bottom: 20px !important;
    font-size: .98rem !important;
    line-height: 1.58 !important;
  }
  .public-site.page-home .hero-actions .btn {
    min-height: 47px !important;
  }
}

@media (max-width: 920px) {
  .public-site.page-home .hero {
    padding-top: 124px !important;
  }
  .public-site.page-home .hero h1 {
    font-size: clamp(3.8rem, 11vw, 5.55rem) !important;
    line-height: .88 !important;
  }
}

@media (max-width: 640px) {
  .public-site .site-header,
  .public-site .site-header.scrolled,
  .public-site .site-header.is-scrolled {
    height: 72px !important;
  }
  .public-site .brand-mark {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
  }
  .public-site .brand-copy strong { font-size: .96rem !important; }
  .public-site .brand-copy small { display: none !important; }
  .auth-page .auth-brand-mark {
    width: 58px !important;
    height: 58px !important;
    flex-basis: 58px !important;
  }
  .customer-page .customer-brand-mark,
  .admin-page .admin-brand-mark {
    width: 52px !important;
    height: 52px !important;
    flex-basis: 52px !important;
  }
  .public-site.page-home .hero {
    padding-top: 108px !important;
  }
  .public-site.page-home .hero h1 {
    font-size: clamp(3.25rem, 15.5vw, 4.55rem) !important;
  }
}

/* ========================================================================
   FINAL TYPOGRAPHY NORMALISATION — INTER ACROSS THE PRODUCT
   The approved DriveDiggers wordmark remains image/brand-styled; this only
   normalises readable interface/content typography and removes cramped tracking.
   ======================================================================== */
html body.public-site :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,td,th,.btn),
html body.legal-page :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,td,th,.btn),
html body.auth-page :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,.btn),
html body.customer-page :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,td,th,.btn),
html body.admin-page :where(h1,h2,h3,h4,h5,h6,p,a,button,input,textarea,select,label,li,td,th,.btn){
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif!important;
}
html body.public-site :where(h1,h2,h3,h4,h5,h6),
html body.legal-page :where(h1,h2,h3,h4,h5,h6),
html body.auth-page :where(h1,h2,h3,h4,h5,h6),
html body.customer-page :where(h1,h2,h3,h4,h5,h6),
html body.admin-page :where(h1,h2,h3,h4,h5,h6){
  letter-spacing:-.008em!important;
  word-spacing:.022em!important;
}
html body.public-site :where(p,li,td,th,label),
html body.legal-page :where(p,li,td,th,label),
html body.auth-page :where(p,li,label),
html body.customer-page :where(p,li,td,th,label),
html body.admin-page :where(p,li,td,th,label){
  letter-spacing:.002em!important;
  word-spacing:.025em!important;
}
html body.public-site :where(a,button,.btn),
html body.legal-page :where(a,button,.btn),
html body.auth-page :where(a,button,.btn),
html body.customer-page :where(a,button,.btn),
html body.admin-page :where(a,button,.btn){
  letter-spacing:.002em!important;
  word-spacing:.018em!important;
}
/* Do not restyle the client-approved DriveDiggers brand artwork/name treatment. */
.dd-approved-brand .dd-brand-copy strong,
.dd-approved-brand .dd-approved-wordmark,
.brand.dd-approved-brand,
.dd-footer-brand{letter-spacing:initial!important;word-spacing:normal!important}
