/* CSS Document */

/* ============================================================
   MOBILE RESPONSIVE ENHANCEMENTS FOR TINMAN SYSTEMS
   Unified global + navigation + footer overrides
   Breakpoints:
     - max-width: 768px (tablets + phones)
     - max-width: 480px (small phones)
============================================================ */


/* ============================
   GLOBAL SPACING & TYPOGRAPHY
============================ */
@media (max-width: 768px) {

  body {
    line-height: 1.55;
  }

  .section,
  .systems-staggered-section,
  .product-suite,
  .final-cta {
    padding: 48px 20px;
  }

  .section-divider {
    margin: 40px 0;
  }

  h1 {
    font-size: 1.9rem;
    line-height: 1.2;
  }

  h2 {
    font-size: 1.6rem;
    line-height: 1.25;
  }

  h3 {
    font-size: 1.3rem;
  }

  p,
  .lead {
    font-size: 1rem;
  }
}

@media (max-width: 480px) {

  .section,
  .systems-staggered-section,
  .product-suite,
  .final-cta {
    padding: 36px 18px;
  }

  h1 {
    font-size: 1.7rem;
  }

  h2 {
    font-size: 1.45rem;
  }
}


/* ============================
   HEADER & NAVIGATION
============================ */
@media (max-width: 768px) {

  .nav-container {
    padding: 14px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .nav-container .logo img {
    width: 150px;
    height: auto;
  }

  /* Hamburger button */
  .menu-toggle {
    width: 42px;
    height: 42px;
    padding: 10px;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .menu-toggle svg,
  .menu-toggle img {
    width: 24px;
    height: 24px;
  }

  /* Slide-in mobile menu */
  .mobile-menu {
    position: fixed;
    top: 0;
    right: -100%;
    width: 78%;
    height: 100vh;
    background: #0c0c0c;
    padding: 40px 28px;
    box-shadow: -4px 0 18px rgba(0,0,0,0.4);
    transition: right 0.35s ease;
    z-index: 9999;
    overflow-y: auto;
  }

  .mobile-menu.menu-open {
    right: 0;
  }

  /* Menu links */
  .mobile-menu a {
    display: block;
    padding: 16px 0;
    font-size: 1.15rem;
    color: #ffffff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  .mobile-menu a:last-child {
    border-bottom: none;
  }

  /* Close button */
  .mobile-menu .close-menu {
    font-size: 1.4rem;
    font-weight: 600;
    margin-bottom: 24px;
    cursor: pointer;
    display: inline-block;
    -webkit-tap-highlight-color: transparent;
  }

  /* Backdrop */
  .menu-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
    z-index: 9998;
  }

  .menu-backdrop.menu-open {
    opacity: 1;
    pointer-events: auto;
  }

  /* Prevent scroll behind menu */
  body.menu-open {
    overflow: hidden;
  }
}

@media (max-width: 480px) {

  .nav-container .logo img {
    width: 135px;
  }

  .mobile-menu {
    width: 85%;
    padding: 36px 24px;
  }

  .mobile-menu a {
    font-size: 1.1rem;
    padding: 14px 0;
  }

  .menu-toggle {
    width: 40px;
    height: 40px;
  }
}


/* ============================
   HERO SECTION
============================ */
@media (max-width: 768px) {

  .hero-full-image {
    height: 60vh;
    object-fit: cover;
  }

  .hero-overlay-box {
    padding: 0 24px;
    max-width: 600px;
  }

  .hero-overlay-box p {
    margin-bottom: 16px;
  }

  .hero-cta {
    flex-direction: column;
    gap: 12px;
  }

  .btn-primary,
  .btn-secondary {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .hero-full-image {
    height: 50vh;
  }
}
/* Prevent hero text from clipping on mobile */
.hero-overlay-box {
  position: relative !important;
  top: 0 !important;
  transform: none !important;
  padding-top: 40px;   /* ensures clearance under the nav */
  padding-bottom: 20px;
}


/* ============================
   INTRO PARAGRAPHS
============================ */
@media (max-width: 768px) {

  .intro-wide {
    max-width: 600px;
    margin: 0 auto;
  }

  .intro-wide .lead {
    margin-bottom: 24px;
  }
}


/* ============================
   SYSTEMS STAGGERED SECTION
============================ */
@media (max-width: 768px) {

  .systems-row {
    flex-direction: column !important;
    gap: 20px;
  }

  .systems-img img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 6px;
  }

  .systems-text.panel {
    padding: 20px;
  }

  .tile-link {
    margin-top: 16px;
    display: inline-block;
  }
}

@media (max-width: 480px) {
  .systems-img img {
    height: 220px;
  }
}


/* ============================
   PRODUCT SUITE
============================ */
@media (max-width: 768px) {

  .product-block {
    flex-direction: column !important;
    gap: 20px;
    margin-bottom: 40px;
  }

  .product-media img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 6px;
  }

  .product-body {
    padding: 0 4px;
  }
}

@media (max-width: 480px) {
  .product-media img {
    height: 220px;
  }
}


/* ============================
   PLATFORM SECTION
============================ */
@media (max-width: 768px) {

  .tile-grid {
    grid-template-columns: 1fr !important;
    gap: 24px;
  }

  .tile {
    padding: 24px 20px;
  }
}


/* ============================
   FINAL CTA
============================ */
@media (max-width: 768px) {

  .final-cta h2 {
    margin-bottom: 16px;
  }

  .cta-subtext {
    margin-bottom: 20px;
  }

  .hero-cta {
    flex-direction: column;
    gap: 12px;
  }

  .hero-cta a {
    width: 100%;
    text-align: center;
  }
}


/* ============================
   IMAGE VIEWER (MOBILE)
============================ */
@media (max-width: 768px) {

  .image-viewer-modal img {
    max-width: 90vw;
    max-height: 80vh;
  }
}


/* ============================================================
   FOOTER — MOBILE RESPONSIVE ENHANCEMENTS
============================================================ */
@media (max-width: 768px) {

  .footer-container {
    padding: 36px 20px;
    text-align: left;
  }

  .footer-grid,
  .footer-columns,
  .footer-links,
  .footer-section {
    display: block !important;
    width: 100% !important;
  }

  .footer-section {
    margin-bottom: 28px;
  }

  .footer-section h4,
  .footer-section-title {
    font-size: 1.1rem;
    margin-bottom: 12px;
  }

  .footer-section a,
  .footer-link {
    display: block;
    padding: 8px 0;
    font-size: 0.98rem;
  }

  .footer-social {
    display: flex;
    gap: 16px;
    margin-top: 12px;
  }

  .footer-social img {
    width: 28px;
    height: 28px;
  }

  .footer-divider {
    margin: 24px 0;
  }

  .footer-legal,
  .footer-bottom {
    font-size: 0.85rem;
    text-align: center;
    margin-top: 20px;
    opacity: 0.8;
  }
}

@media (max-width: 480px) {

  .footer-container {
    padding: 32px 18px;
  }

  .footer-section {
    margin-bottom: 24px;
  }

  .footer-section h4,
  .footer-section-title {
    font-size: 1.05rem;
  }

  .footer-section a,
  .footer-link {
    font-size: 0.95rem;
  }

  .footer-social img {
    width: 26px;
    height: 26px;
  }

  .footer-legal,
  .footer-bottom {
    font-size: 0.8rem;
  }
}
/* ============================================================
   FOOTER — MOBILE RESPONSIVE FIXES FOR TINMAN SYSTEMS
   Matches actual footer.js structure
============================================================ */

@media (max-width: 768px) {

  /* Ensure footer never exceeds viewport width */
  .site-footer,
  .footer-content,
  .footer-col,
  .footer-bottom {
    box-sizing: border-box;
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Footer content becomes a wrapped column layout */
  .footer-content {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 0 20px;
  }

  /* Each column becomes full-width on mobile */
  .footer-col {
    width: 100%;
  }

  /* Headings */
  .footer-col h4 {
    font-size: 1.1rem;
    margin-bottom: 10px;
  }

  /* Links */
  .footer-col ul li a {
    display: block;
    padding: 6px 0;
    font-size: 0.98rem;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }

  /* Divider spacing */
  .footer-divider {
    margin: 28px 0;
  }

  /* Footer bottom section */
  .footer-bottom {
    text-align: center;
    padding: 0 20px;
  }

  .footer-bottom p,
  .footer-bottom a {
    font-size: 0.9rem;
    display: block;
    margin: 6px 0;
  }

  .back-to-top {
    margin-bottom: 12px;
  }
}

@media (max-width: 480px) {

  .footer-content {
    gap: 20px;
    padding: 0 18px;
  }

  .footer-col h4 {
    font-size: 1.05rem;
  }

  .footer-col ul li a {
    font-size: 0.95rem;
  }

  .footer-bottom p,
  .footer-bottom a {
    font-size: 0.82rem;
  }
}

/* ============================================
   ABOUT PAGE — HERO (MOBILE)
============================================ */

@media (max-width: 768px) {
  .about-hero {
    padding: 60px 0;
  }

  .about-hero-inner {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 32px;
  }

  .about-hero-text h1 {
    font-size: 2rem;
  }

  .about-hero-text p {
    margin: 0 auto;
    font-size: 1rem;
  }

  .about-hero-image img {
    max-width: 320px;
    margin: 0 auto;
  }
}

@media (max-width: 480px) {
  .about-hero {
    padding: 48px 0;
  }

  .about-hero-text h1 {
    font-size: 1.8rem;
  }
}
@media (max-width: 768px) {
  .products-hero-overlay {
    bottom: 24px;
    padding: 18px 20px;
    width: calc(100% - 2rem);
    text-align: center;
  }

  .products-hero-overlay h1 {
    font-size: 2rem;
  }

  .products-hero-overlay p {
    font-size: 1rem;
    margin: 0 auto;
  }
}
@media (max-width: 768px) {
  .product-hero {
    height: 340px;
  }

  .product-hero-overlay {
    bottom: 24px;
    padding: 18px 20px;
    width: calc(100% - 2rem);
    text-align: center;
  }

  .product-hero-overlay h1 {
    font-size: 2rem;
  }

  .product-hero-overlay p {
    font-size: 1rem;
    margin: 0 auto;
  }
}

@media (max-width: 480px) {
  .product-hero {
    height: 300px;
  }

  .product-hero-overlay h1 {
    font-size: 1.8rem;
  }
}

@media (max-width: 900px) {
  .two-column {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .two-column .image-block {
    order: 2;
  }

  .two-column .text-block {
    order: 1;
  }
}

@media (max-width: 768px) {
  .product-grid {
    gap: 40px;
  }

  .product-card {
    padding: 24px;
  }

  .product-content h3 {
    font-size: 1.5rem;
  }
}

/* Fix dark submenu items on mobile */
@media (max-width: 768px) {
  nav ul ul {
    background: #f9fafb !important; /* light background */
    border: 1px solid #e5e7eb;
  }

  nav ul ul li a {
    color: #111827 !important; /* dark text */
    padding: 12px 18px;
  }

  nav ul ul li a:hover {
    background: #e5e7eb;
  }
}

/* Fix hero overlay position on mobile */
@media (max-width: 768px) {
  .product-hero {
    min-height: 420px;
    display: flex;
    align-items: flex-end;
  }

  .product-hero-overlay {
    position: relative;
    top: auto;
    transform: none;
    padding: 28px 20px 40px;
    width: 100%;
    text-align: center;
  }

  .product-hero-overlay h1 {
    font-size: 1.9rem;
    line-height: 1.2;
  }

  .product-hero-overlay p {
    font-size: 1rem;
    margin-top: 10px;
  }
}

/* Fix unreadable submenu items on mobile */
@media (max-width: 768px) {
  nav ul ul {
    background: #f9fafb !important;
    border: 1px solid #e5e7eb;
  }

  nav ul ul li a {
    color: #111827 !important;
    padding: 14px 20px;
    font-size: 1rem;
  }

  nav ul ul li a:hover {
    background: #e5e7eb;
  }
}

@media (max-width: 768px) {
  .mobile-menu {
    background: #ffffff;
  }

  .mobile-menu a {
    color: #111827;
  }
}

/* UNIVERSAL MOBILE HERO FIX */
@media (max-width: 768px) {

  /* Ensure hero container has enough height */
  .product-hero,
  .platform-hero,
  .hero,
  .section-hero {
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    position: relative;
  }

  /* Override all absolute-positioned overlays */
  .product-hero-overlay,
  .platform-hero .hero-inner > div:first-child,
  .hero-overlay,
  .section-hero .overlay {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    padding: 28px 20px 40px;
    width: 100%;
    text-align: center;
  }

  /* Text scaling */
  .product-hero-overlay h1,
  .platform-hero h1,
  .hero-overlay h1,
  .section-hero h1 {
    font-size: 1.9rem;
    line-height: 1.2;
  }

  .product-hero-overlay p,
  .platform-hero p,
  .hero-overlay p,
  .section-hero p {
    font-size: 1rem;
    margin-top: 10px;
  }

  /* Ensure hero images behave */
  .product-hero-image,
  .platform-hero img,
  .hero img,
  .section-hero img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

@media (max-width: 768px) {

  /* Force hero overlay to behave on mobile */
  .hero-overlay-box {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding-top: 48px !important;
    padding-bottom: 24px !important;
  }

  /* Ensure the hero container doesn't push it upward */
  .hero,
  .hero-container,
  .hero-wrapper {
    display: block !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }
/* Stop hero content from being vertically centered on mobile */
.hero,
.hero-container,
.hero-wrapper,
.hero-overlay-parent {
  display: block !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
}
.hero-overlay-box {
  position: relative !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  margin: 0 !important;
  padding-top: 48px !important;
  padding-bottom: 24px !important;
}
}
@media (max-width: 620px) {

  /* Force hero to stop re-centering or sliding */
  .hero,
  .hero-container,
  .hero-wrapper,
  .hero-overlay-parent {
    display: block !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }

  .hero-overlay-box {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding-top: 48px !important;
    padding-bottom: 24px !important;
  }

  /* Prevent image height from collapsing below text height */
  .hero-full-image {
    min-height: 60vh !important;
    height: auto !important;
  }
}
@media (max-width: 768px) {

  /* Disable flex behavior on mobile */
  .hero-full {
    display: block !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    min-height: auto !important;
    padding-bottom: 0 !important;
  }

  /* Make the overlay flow naturally */
  .hero-overlay-content {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin-top: 20px !important;
    padding: 0 1.25rem !important;
  }

  .hero-overlay-box {
    position: relative !important;
    transform: none !important;
    margin: 0 !important;
    padding: 20px !important;
    display: block !important;
  }

  /* Ensure the image doesn't collapse */
  .hero-full-image {
    position: relative !important;
    height: auto !important;
    min-height: 55vh !important;
  }
}
/* ============================================
   UNIVERSAL TWO-COLUMN MOBILE COLLAPSE
   Works for ALL directories and ALL layouts
============================================ */
@media (max-width: 768px) {

  /* Collapse any grid-based two-column layout */
  .two-column,
  .platform-section,
  .platform-hero .hero-inner,
  .product-two-col,
  .content-two-col {
    display: block !important;
    grid-template-columns: none !important;
  }

  /* Collapse any flex-based two-column layout */
  .two-column,
  .product-two-col,
  .content-two-col {
    flex-direction: column !important;
  }

  /* Text blocks go full width */
  .two-column .text-block,
  .platform-section > div:first-child,
  .platform-hero .hero-inner > div:first-child,
  .product-two-col > div:first-child,
  .content-two-col > div:first-child {
    width: 100% !important;
    margin-bottom: 24px !important;
  }

  /* Image blocks go full width */
  .two-column .image-block,
  .platform-section > div:last-child,
  .platform-hero .hero-inner > div:last-child,
  .product-two-col > div:last-child,
  .content-two-col > div:last-child {
    width: 100% !important;
    text-align: center !important;
    margin-bottom: 32px !important;
  }

  /* Images scale properly */
  .two-column img,
  .platform-section img,
  .platform-hero img,
  .product-two-col img,
  .content-two-col img {
    width: 100% !important;
    max-width: 600px;
    height: auto !important;
    display: block;
    margin: 0 auto;
  }
}

/* MOBILE FIX — PLATFORM HERO */
@media (max-width: 768px) {
  .platform-hero {
    padding-top: 120px !important;   /* prevents text from sliding under browser chrome */
    padding-bottom: 40px;
  }

  .platform-hero .hero-inner {
    grid-template-columns: 1fr !important;  /* collapse to single column */
    gap: 24px;
  }

  .platform-hero h1 {
    font-size: 1.9rem;
    line-height: 1.25;
  }

  .platform-hero p {
    font-size: 1rem;
  }

  .platform-hero img {
    width: 100%;
    height: auto;
    border-radius: 8px;
  }
}

/* UNIVERSAL MOBILE FIX FOR SOLUTIONS HEROES */
@media (max-width: 768px) {

  /* Fix upward drift */
  .solutions-hero,
  .platform-hero,
  .product-hero,
  .system-hero {
    padding-top: 120px !important;
    padding-bottom: 40px !important;
  }

  /* Force single-column hero layout */
  .solutions-hero .hero-inner,
  .platform-hero .hero-inner {
    display: block !important;
  }

  /* Ensure hero images scale properly */
  .solutions-hero img,
  .platform-hero img {
    width: 100% !important;
    height: auto !important;
    margin-top: 20px;
    border-radius: 8px;
  }

  /* Improve text readability */
  .solutions-hero h1,
  .platform-hero h1 {
    font-size: 1.9rem;
    line-height: 1.25;
  }

  .solutions-hero p,
  .platform-hero p {
    font-size: 1rem;
  }

  /* CTA spacing */
  .hero-cta {
    margin-top: 20px;
  }
}
/* ============================================
   GLOBAL MOBILE HERO SAFE AREA FIX
   Prevents upward bleed on all hero types
============================================ */
@media (max-width: 768px) {

  .hero-full,
  .hero-full-with-image,
  .hero,
  .hero-slim,
  .platform-hero,
  .solutions-hero {
    padding-top: calc(92px + env(safe-area-inset-top)) !important;
  }

  /* Ensure overlay content never sits too high */
  .hero-overlay-content,
  .hero-slim-overlay {
    bottom: 24px !important;
  }
}
/* ============================================
   MOBILE SAFE HERO SPACING
============================================ */
@media (max-width: 768px) {

  .tm-hero {
    padding-top: calc(92px + env(safe-area-inset-top)) !important;
    padding-bottom: 40px;
    min-height: 420px;
  }

  .tm-hero-overlay {
    bottom: 28px !important;
    padding: 0 1.25rem;
  }

  .tm-hero-box h1 {
    font-size: 2.2rem;
    line-height: 1.25;
  }

  .tm-hero-box p {
    font-size: 1.05rem;
  }

  .tm-hero-image {
    object-position: center top;
  }
}
/* ============================
   FOOTER — MOBILE
============================ */
@media (max-width: 768px) {
  .footer-content {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .brand-col {
    grid-column: span 2;
  }
}

@media (max-width: 480px) {
  .footer-content {
    grid-template-columns: 1fr;
  }

  .brand-col {
    grid-column: span 1;
  }

  .footer-logo {
    width: 150px;
  }
}
@media (max-width: 768px) {
  .footer-content {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  .brand-col {
    grid-column: span 2;
  }
}

@media (max-width: 480px) {
  .footer-content {
    grid-template-columns: 1fr;
  }

  .brand-col {
    grid-column: span 1;
  }
}
/* Mobile hero text breathing room */
@media (max-width: 768px) {
  .industry-hero-content .page-container {
    padding-left: 20px;
    padding-right: 20px;
  }

  .industry-hero-textbox {
    max-width: 100%;
  }

  .industry-hero-textbox h1 {
    font-size: 1.9rem;
    line-height: 1.2;
  }

  .industry-hero-textbox p {
    font-size: 1rem;
    line-height: 1.5;
  }
}


@media (max-width: 480px) {
  .industry-hero-content .page-container {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* ============================
   HOME PAGE MOBILE HERO OVERLAY FIX
============================ */
@media (max-width: 768px) {

    .home-hero {
        position: relative;
    }

    .home-hero .hero-full-image {
        width: 100%;
        height: auto;
        display: block;
    }

.home-hero .hero-overlay-content {
    position: absolute !important;
    bottom: 0;     /* was 8vw — this pulls the text DOWN */
    left: 4vw;
    right: 4vw;
    z-index: 5;
    text-align: left;
}


    .home-hero .hero-overlay-box h1 {
        font-size: 8vw;
        line-height: 1.1;
        color: white;
        text-shadow: 0 2px 6px rgba(0,0,0,0.45);
    }

    .home-hero .hero-overlay-box p,
    .home-hero .hero-subheadline {
        font-size: 4vw;
        line-height: 1.35;
        color: white;
        text-shadow: 0 2px 6px rgba(0,0,0,0.45);
    }

    .home-hero .hero-cta {
        margin-top: 4vw;
    }
}
/* ============================
   HOME PAGE MOBILE HERO OVERLAY FIX (OVERRIDE)
============================ */
@media (max-width: 768px) {

  .hero-full.hero-full-with-image.home-hero {
    position: relative;
  }

  .hero-full.hero-full-with-image.home-hero .hero-overlay-content {
    position: absolute !important;
    bottom: 2vw;
    left: 4vw;
    right: 4vw;
    z-index: 5;
    text-align: left;
  }

  .hero-full.hero-full-with-image.home-hero .hero-full-image {
    width: 100%;
    height: auto;
    display: block;
  }

  .hero-full.hero-full-with-image.home-hero .hero-overlay-box h1 {
    font-size: 8vw;
    line-height: 1.1;
    color: #fff;
    text-shadow: 0 2px 6px rgba(0,0,0,0.45);
  }

  .hero-full.hero-full-with-image.home-hero .hero-overlay-box p,
  .hero-full.hero-full-with-image.home-hero .hero-subheadline {
    font-size: 4vw;
    line-height: 1.35;
    color: #fff;
    text-shadow: 0 2px 6px rgba(0,0,0,0.45);
  }
}
/* ============================================
   FINAL OVERRIDE — HOME PAGE HERO ONLY
   Forces overlay ON TOP of image on mobile
============================================ */
@media (max-width: 768px) {

  /* Make hero a positioned parent */
  .home-hero {
    position: relative !important;
  }

  /* Force overlay to be absolute again */
  .home-hero .hero-overlay-content,
  .home-hero .hero-overlay-box {
    position: absolute !important;
    bottom: 4vw !important;
    left: 4vw !important;
    right: 4vw !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Ensure image stays behind overlay */
  .home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    z-index: 1 !important;
  }
}
/* ============================================
   FINAL HOME PAGE FIX — OVERRIDES ALL GLOBAL HERO RULES
============================================ */
@media (max-width: 768px) {

  /* Keep hero image at the top */
  .home-hero {
    position: relative !important;
    display: block !important;
    padding-top: 0 !important;
  }

  .home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 !important;
  }

  /* Force overlay ON TOP of the image */
  .home-hero .hero-overlay-content,
  .home-hero .hero-overlay-box {
    position: absolute !important;
    top: auto !important;
    bottom: 4vw !important;
    left: 4vw !important;
    right: 4vw !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Fix button widths */
  .home-hero .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .home-hero .hero-cta a {
    width: 100% !important;
    text-align: center !important;
    display: block !important;
  }
}
/* ============================================
   FINAL HOME PAGE HERO FIX — HIGHEST PRIORITY
============================================ */
@media (max-width: 768px) {

  /* Ensure hero image is first and fills the top */
  section.hero-full.hero-full-with-image.home-hero {
    position: relative !important;
    display: block !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 55vh !important;
    object-fit: cover !important;
    margin: 0 !important;
    z-index: 1 !important;
  }

  /* Force overlay ON TOP of the image */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-content,
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box {
    position: absolute !important;
    top: auto !important;
    bottom: 5vw !important;
    left: 5vw !important;
    right: 5vw !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Fix text height */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box h1 {
    font-size: 7vw !important;
    line-height: 1.15 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box p,
  section.hero-full.hero-full-with-image.home-hero .hero-subheadline {
    font-size: 4vw !important;
    line-height: 1.4 !important;
  }

  /* Fix CTA buttons — same width, stacked cleanly */
  section.hero-full.hero-full-with-image.home-hero .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 4vw !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-cta a {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   FINAL HOME PAGE HERO CORRECTION
   Overrides all global hero resets
============================================ */
@media (max-width: 768px) {

  /* Ensure hero image is first and fills the top */
  section.hero-full.hero-full-with-image.home-hero {
    position: relative !important;
    display: block !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    margin: 0 !important;
    z-index: 1 !important;
  }

  /* Force overlay ON TOP of the image */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-content,
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box {
    position: absolute !important;
    bottom: 6vw !important;
    left: 5vw !important;
    right: 5vw !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Adjust text so it sits lower and reads cleanly */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box h1 {
    font-size: 7vw !important;
    line-height: 1.2 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box p,
  section.hero-full.hero-full-with-image.home-hero .hero-subheadline {
    font-size: 4vw !important;
    line-height: 1.45 !important;
  }

  /* Fix CTA buttons — identical width, stacked cleanly */
  section.hero-full.hero-full-with-image.home-hero .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 4vw !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-cta a {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   FINAL HOME PAGE HERO CORRECTION — HIGHEST PRIORITY
============================================ */
@media (max-width: 768px) {

  /* Ensure hero image is first and fills the top */
  section.hero-full.hero-full-with-image.home-hero {
    position: relative !important;
    display: block !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 55vh !important;
    object-fit: cover !important;
    margin: 0 !important;
    z-index: 1 !important;
  }

  /* Force overlay ON TOP of the image */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-content,
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box {
    position: absolute !important;
    bottom: 6vw !important;
    left: 5vw !important;
    right: 5vw !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Adjust text so it sits lower and reads cleanly */
  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box h1 {
    font-size: 7vw !important;
    line-height: 1.2 !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-overlay-box p,
  section.hero-full.hero-full-with-image.home-hero .hero-subheadline {
    font-size: 4vw !important;
    line-height: 1.45 !important;
  }

  /* Fix CTA buttons — identical width, stacked cleanly */
  section.hero-full.hero-full-with-image.home-hero .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 4vw !important;
  }

  section.hero-full.hero-full-with-image.home-hero .hero-cta a {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   FINAL HOME PAGE HERO FIX — OVERRIDES ALL GLOBAL RULES
============================================ */
@media (max-width: 768px) {

  /* Hero container */
  #home-hero {
    position: relative !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Hero image */
  #home-hero .hero-full-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 55vh !important;
    object-fit: cover !important;
    margin: 0 !important;
    z-index: 1 !important;
  }

  /* Overlay ON TOP of image */
  #home-hero .hero-overlay-content,
  #home-hero .hero-overlay-box {
    position: absolute !important;
    bottom: 6vw !important;
    left: 5vw !important;
    right: 5vw !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Text sizing */
  #home-hero .hero-overlay-box h1 {
    font-size: 7vw !important;
    line-height: 1.2 !important;
  }

  #home-hero .hero-overlay-box p,
  #home-hero .hero-subheadline {
    font-size: 4vw !important;
    line-height: 1.45 !important;
  }

  /* CTA buttons — identical width */
  #home-hero .hero-cta {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
    margin-top: 4vw !important;
  }

  #home-hero .hero-cta a {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   FINAL BUTTON WIDTH FIX — HOME HERO ONLY
============================================ */
@media (max-width: 768px) {

  #home-hero .hero-cta a.btn-primary,
  #home-hero .hero-cta a.btn-secondary {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   FINAL HOME PAGE HERO FIX — OVERRIDES GLOBAL RULES
============================================ */
@media (max-width: 768px) {

  /* Stop global hero padding from pushing text upward */
  #home-hero {
    padding-top: 0 !important;
  }

  /* Stop global overlay padding from pushing text upward */
  #home-hero .hero-overlay-box {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  #home-hero .hero-overlay-content {
    margin-top: 0 !important;
  }

  /* Force overlay ON TOP of the image */
  #home-hero .hero-overlay-content,
  #home-hero .hero-overlay-box {
    position: absolute !important;
    bottom: 6vw !important;
    left: 5vw !important;
    right: 5vw !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10 !important;
    text-align: left !important;
  }

  /* Make CTA width match the overlay box width */
  #home-hero .hero-cta {
    width: 100% !important;
    max-width: 100% !important;
  }

  #home-hero .hero-cta a {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
  }
}
/* ============================================
   HOME HERO EXCLUSION FROM GLOBAL HERO RULES
============================================ */

/* Prevent global hero rules from affecting the home hero */
#home-hero.hero-full,
#home-hero.hero-full-with-image,
#home-hero.hero,
#home-hero.hero-slim,
#home-hero.platform-hero,
#home-hero.solutions-hero {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: block !important;
  align-items: unset !important;
  justify-content: unset !important;
}

/* Prevent global overlay rules from overriding home hero */
#home-hero .hero-overlay-content,
#home-hero .hero-overlay-box {
  position: absolute !important;
  top: auto !important;
  bottom: 6vw !important;
  left: 5vw !important;
  right: 5vw !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  text-align: left !important;
  z-index: 10 !important;
}

/* Lock the hero image behind the overlay */
#home-hero .hero-full-image {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 55vh !important;
  object-fit: cover !important;
  z-index: 1 !important;
}

/* Fix CTA width inside overlay */
#home-hero .hero-cta {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

#home-hero .hero-cta a {
  width: 100% !important;
  display: block !important;
  text-align: center !important;
}
/* ============================================
   HOME HERO — FIX OVERLAY WIDTH AT 620px
============================================ */
@media (max-width: 768px) {

  /* Prevent global rules from forcing full-width overlay */
  #home-hero .hero-overlay-content {
    width: auto !important;
    max-width: 90% !important;   /* keeps it visually aligned */
    left: 5vw !important;
    right: 5vw !important;
    padding: 0 !important;
  }

  #home-hero .hero-overlay-box {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Buttons follow the overlay width */
  #home-hero .hero-cta {
    width: 100% !important;
  }

  #home-hero .hero-cta a {
    width: 100% !important;
  }
}
/* ============================================
   HOME PAGE HERO — MOBILE OVERRIDES
============================================ */
@media (max-width: 768px) {

  .tm-home-hero-image {
    height: auto;
    min-height: 55vh;
  }

  .tm-home-hero-overlay {
    bottom: 6vw;
    left: 5vw;
    right: 5vw;
    max-width: none;
  }

  .tm-home-hero-overlay h1 {
    font-size: 7vw;
    margin-bottom: 3vw;
  }

  .tm-home-hero-subheadline {
    font-size: 4vw;
    margin-bottom: 4vw;
  }

  .tm-home-hero-cta {
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  .tm-home-hero-cta a {
    width: 100%;
  }
}
@media (max-width: 768px) {
  .tm-home-hero-inner {
    max-width: 90%;
    margin: 0 auto;
  }
}
/* ============================================
   HOME HERO — FIX BUTTON WIDTH
============================================ */
@media (max-width: 768px) {

  .tm-home-hero-cta a.btn-primary,
  .tm-home-hero-cta a.btn-secondary {
    width: auto !important;
    display: inline-block !important;
    align-self: flex-start;
  }
}

