


/* ===== GLOBAL ===== */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background: #e8e8e8;
    color: #1A1A1A
}

/* ===== INDEX BAR ===== */
.index-bar {
    background: #1A1A1A;
    padding: 20px 40px;
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 3px solid #C62828
}

.index-bar-inner {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap
}

.index-logo {
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.5px;
    margin-right: 8px
}

.index-logo span {
    color: #C62828
}

.index-links {
    display: flex;
    gap: 6px;
    flex-wrap: wrap
}

.index-links a {
    font-size: 11px;
    padding: 4px 10px;
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    letter-spacing: 0.04em;
    border: 1px solid rgba(255, 255, 255, 0.1)
}

.index-links a:hover {
    background: #C62828;
    color: #fff
}

.index-note {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.35);
    margin-left: auto
}

/* ===== PAGE WRAPPER ===== */
.page-wrapper {
    margin: 24px auto;
    max-width: 1100px
}

.page-label {
    background: #C62828;
    color: #fff;
    padding: 10px 20px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.page-label span {
    opacity: 0.6;
    font-weight: 400
}

.page-frame {
    background: #fff;
    border: 1px solid #ccc;
    overflow: hidden
}

/* ===== SHARED COMPONENTS ===== */
.label {
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #C62828;
    font-weight: 600;
    margin-bottom: 12px
}

.section {
    padding: 52px 40px
}

.section-alt {
    background: #F5F5F5
}

.section-dark {
    background: #1A1A1A;
    color: #fff
}

/* Sticky wrapper — both nav bar and mobile dropdown live inside this */
.nav-wrapper {
    position: sticky;
    top: 0;
    z-index: 999;
}

.nav {
    background: #fff;
    padding: 0 40px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #e0e0e0;
    position: relative;
    z-index: 999;
}

.nav-logo {
    font-size: 18px;
    font-weight: 800;
    color: #1A1A1A;
    letter-spacing: -0.5px;
    text-decoration: none;
}

.nav-logo span {
    color: #C62828
}

.nav-links {
    display: flex;
    gap: 28px;
    align-items: center;
}

.nav-links a {
    font-size: 13px;
    color: #444;
    text-decoration: none
}

.nav-cta {
    background: #C62828;
    color: #fff;
    border: none;
    padding: 9px 20px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.04em
}

.nav-active {
    color: #C62828 !important;
    font-weight: 700 !important
}

.nav-back {
    font-size: 12px;
    color: #C62828;
    font-weight: 600
}

/* Hamburger Menu Toggle */
.nav-hamburger {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    flex-direction: column;
    gap: 5px;
}

.nav-hamburger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #1A1A1A;
    border-radius: 2px;
    transition: all 0.25s ease;
}

/* Mobile Dropdown Nav — sits directly below .nav inside .nav-wrapper */
.nav-mobile-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 3px solid #C62828;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    z-index: 998;
    padding: 8px 20px 16px;
    flex-direction: column;
    gap: 0;
}

.nav-mobile-menu.show {
    display: flex;
}

.nav-mobile-menu a {
    font-size: 14px;
    color: #444;
    text-decoration: none;
    padding: 13px 0;
    border-bottom: 1px solid #f0f0f0;
    display: block;
    font-weight: 500;
}

.nav-mobile-menu a:last-of-type {
    border-bottom: none;
}

.nav-mobile-menu .nav-cta {
    display: block !important;
    width: 100%;
    margin-top: 14px;
    text-align: center;
    padding: 13px 20px;
    font-size: 14px;
    background: #C62828;
    color: #fff;
    border: none;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.04em;
}

.cta-banner {
    background: #C62828;
    padding: 56px 40px;
    text-align: center
}

.cta-banner h2 {
    font-size: 24px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 10px
}

.cta-banner p {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 24px;
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7
}

.btn-white {
    background: #fff;
    color: #C62828;
    border: none;
    padding: 12px 28px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer
}

.btn-primary {
    background: #C62828;
    color: #fff;
    border: none;
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: 0.04em
}

.btn-outline {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    padding: 12px 24px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer
}

.vert-badge {
    display: inline-block;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    background: #C62828;
    color: #fff;
    padding: 4px 12px;
    margin-bottom: 20px;
    font-weight: 700
}

.scope-dot {
    width: 5px;
    height: 5px;
    background: #C62828;
    border-radius: 50%;
    margin-top: 6px;
    flex-shrink: 0
}

.footer {
    background: #111;
    padding: 40px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px
}

.footer-logo {
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 6px
}

.footer-logo span {
    color: #C62828
}

.footer-tag {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.35);
    margin-bottom: 4px
}

.footer-col-h {
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.35);
    margin-bottom: 14px
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.footer-link {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.55)
}

.footer-contact {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.8
}

.footer-bottom {
    background: #0a0a0a;
    padding: 16px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.footer-copy {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.2)
}

/* prob cards */
.prob-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    margin-top: 28px;
    border: 1px solid #e0e0e0
}

.prob-card {
    padding: 28px 24px;
    background: #FFEBEE;
    border-left: 4px solid #C62828
}

.prob-card:not(:first-child) {
    border-left: none
}

.prob-card:first-child {
    border-right: 1px solid #e0e0e0
}

.prob-card:nth-child(2) {
    border-right: 1px solid #e0e0e0
}

.prob-num {
    font-size: 24px;
    font-weight: 800;
    color: #C62828;
    opacity: 0.25;
    margin-bottom: 8px
}

.prob-h {
    font-size: 14px;
    font-weight: 700;
    color: #1A1A1A;
    margin-bottom: 10px;
    line-height: 1.4
}

.prob-body {
    font-size: 13px;
    color: #444;
    line-height: 1.65
}

/* scope cards */
.scope-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: #e0e0e0;
    margin-top: 28px
}

.scope-card {
    background: #fff;
    padding: 28px 24px
}

.scope-h {
    font-size: 14px;
    font-weight: 800;
    color: #1A1A1A;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px
}

.scope-tag {
    font-size: 10px;
    background: #1A1A1A;
    color: #fff;
    padding: 3px 8px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700
}

.scope-tag-red {
    font-size: 10px;
    background: #C62828;
    color: #fff;
    padding: 3px 8px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700
}

.scope-items {
    display: flex;
    flex-direction: column;
    gap: 7px
}

.scope-item {
    font-size: 13px;
    color: #444;
    line-height: 1.5;
    display: flex;
    gap: 8px;
    align-items: flex-start
}

/* proof cards */
.proof-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1px;
    background: #e0e0e0;
    margin-top: 28px
}

.proof-card {
    background: #fff;
    padding: 20px 18px
}

.proof-client {
    font-size: 13px;
    font-weight: 700;
    color: #1A1A1A;
    margin-bottom: 4px
}

.proof-scope {
    font-size: 12px;
    color: #616161;
    line-height: 1.5
}

.proof-scale {
    font-size: 11px;
    color: #C62828;
    font-weight: 700;
    margin-top: 6px;
    letter-spacing: 0.04em
}



/* ===== RESPONSIVE FIX ===== */

/* Tablet (Max 1024px) */
@media (max-width: 1024px) {
  .page-wrapper { margin: 0; }
  .nav { padding: 0 20px; }
  .nav-links { gap: 16px; }

  /* Hide nav links + desktop CTA — only the ones INSIDE the .nav bar */
  .nav-links { display: none !important; }
  .nav > .nav-cta { display: none !important; }
  .nav-hamburger { display: flex !important; }

  /* Keep nav bar always horizontal: logo left, hamburger right */
  .nav {
    flex-direction: row !important;
    justify-content: space-between !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    padding: 0 20px !important;
    height: 56px !important;
    min-height: 56px !important;
  }

  /* Ensure hamburger button has a proper tap size */
  .nav-hamburger {
    width: 40px !important;
    height: 40px !important;
    justify-content: center !important;
    align-items: center !important;
    flex-shrink: 0 !important;
  }

  .nav-wrapper {
    position: sticky;
    top: 0;
    z-index: 999;
  }
  
  /* Hero padding adjustments */
  .hero, div[style*="padding:88px"], div[style*="padding:72px 40px"], div[style*="padding:90px 40px"], div[style*="padding:80px 40px"] { 
      padding: 60px 20px !important; 
  }
  .hero h1, h1 { font-size: 32px !important; }
  
  /* Section padding */
  .section, div[style*="padding:64px 40px"], div[style*="padding:48px 40px"], .cta-banner { 
      padding: 40px 20px !important; 
  }

  /* Grids: 6 columns to 3 */
  div[style*="grid-template-columns:repeat(6"] { grid-template-columns: repeat(3, 1fr) !important; }
  
  /* Grids: 5 columns to 3 */
  div[style*="grid-template-columns:repeat(5"] { grid-template-columns: repeat(3, 1fr) !important; }

  /* Grids: 4 columns to 2 */
  div[style*="grid-template-columns:repeat(4"] { grid-template-columns: repeat(2, 1fr) !important; }

  /* Grids: 3 columns to 2 or 1 depending on content */
  .prob-grid, .proof-grid, div[style*="grid-template-columns:repeat(3"] { 
      grid-template-columns: repeat(2, 1fr) !important; 
  }
}

/* Mobile (Max 768px) */
@media (max-width: 768px) {
  /* NAVBAR - Stack vertically on small screens */
  .nav { flex-direction: column; height: auto; padding: 16px 20px; align-items: flex-start; gap: 12px; }
  .nav-links { flex-direction: column; width: 100%; gap: 12px; margin-top: 8px; }
  .nav-links a { display: block; padding: 8px 0; border-bottom: 1px solid #eee; }
  .nav-cta { width: 100%; margin-top: 8px; }

  /* INDEX BAR */
  .index-bar-inner { gap: 16px; }
  .index-links { gap: 8px; }

  /* Typography */
  h1 { font-size: 28px !important; }
  h2, div[style*="font-size:30px"], div[style*="font-size:26px"], div[style*="font-size:24px"] { font-size: 22px !important; }

  /* Convert all multi-column grids to 1 column on mobile */
  div[style*="grid-template-columns:repeat(6"],
  div[style*="grid-template-columns:repeat(5"],
  div[style*="grid-template-columns:repeat(4"],
  div[style*="grid-template-columns:repeat(3"],
  div[style*="grid-template-columns:repeat(2"],
  div[style*="grid-template-columns:1fr 1fr"],
  div[style*="grid-template-columns:1fr 2fr"],
  .prob-grid, .proof-grid, .scope-grid { 
      grid-template-columns: 1fr !important; 
      gap: 16px !important;
  }
  
  /* Handle specific asymmetrical grids found in resources/company */
  div[style*="grid-template-columns:140px 1fr"],
  div[style*="grid-template-columns:72px 1fr"] {
      grid-template-columns: 1fr !important;
  }

  /* Event list grid fix */
  div[style*="grid-template-columns:100px 1fr auto"] {
      grid-template-columns: 80px 1fr !important;
  }
  /* Hide the 'Speaking/Exhibiting' badge on very small screens to save space, or just let it wrap */
  div[style*="grid-template-columns:100px 1fr auto"] > div:nth-child(3) {
      grid-column: 1 / -1;
      padding: 0 16px 16px 16px !important;
  }

  /* Clients/Partners Flexbox Wrapping Fix */
  div[style*="display:flex;flex-wrap:wrap"] > div {
      flex: 1 1 40%; /* allow logos to take up half the row on mobile */
      text-align: center;
  }

  /* FOOTER */
  .footer { grid-template-columns: 1fr; gap: 32px; padding: 32px 20px; }
  .footer-bottom { flex-direction: column; gap: 16px; text-align: center; padding: 20px; }
  div[style*="display:flex;gap:20px"] { flex-wrap: wrap; justify-content: center; }
}

/* Small Mobile (Max 480px) */
@media (max-width: 480px) {
  h1 { font-size: 24px !important; }
  /* Buttons full width */
  .btn-primary, .btn-outline, .btn-white { width: 100%; text-align: center; display: block; margin-bottom: 8px; }
  div[style*="display:flex;gap:12px"] { flex-direction: column; }
}

/* ===== GLOBAL OVERFLOW PREVENTION ===== */
/* NOTE: overflow-x:hidden on <html> breaks position:sticky — use clip on body only */
html {
  max-width: 100%;
}

body {
  overflow-x: clip; /* clip doesn't create a scroll container, so sticky still works */
  max-width: 100%;
}

* {
  min-width: 0; /* Allows grid/flex children to shrink below content size */
}

/* ===== TRANSPORT INDUSTRY CARDS (280px 1fr) ===== */
@media (max-width: 768px) {
  div[style*="grid-template-columns:280px 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* Stack the colored sidebar on top of text for transport project cards */
  div[style*="grid-template-columns:280px 1fr"] > div:first-child {
    min-height: 100px;
  }
}

/* ===== ASYMMETRIC GRIDS (1fr 3fr, 2fr 1fr) ===== */
@media (max-width: 768px) {
  div[style*="grid-template-columns:1fr 3fr"],
  div[style*="grid-template-columns:2fr 1fr"],
  div[style*="grid-template-columns:3fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  /* iplatform hero dashboard mock  */
  div[style*="grid-template-columns:2fr 1fr"] {
    gap: 1px !important;
  }
}

/* ===== CTA SECTIONS ===== */
@media (max-width: 768px) {
  div[style*="background:#C62828;padding:72px"],
  div[style*="background:#C62828;padding:80px"],
  div[style*="background:#C62828;padding:64px"],
  div[style*="background:#1A1A1A;padding:64px"] {
    padding: 48px 20px !important;
  }
  div[style*="background:#C62828;padding:72px"] h2,
  div[style*="background:#C62828;padding:80px"] h2,
  div[style*="background:#C62828;padding:64px"] h2 {
    font-size: 22px !important;
  }
}

/* ===== STATS STRIP BORDER FIX ON MOBILE ===== */
@media (max-width: 768px) {
  /* Remove right borders from stats items since they stack */
  div[style*="border-right:1px solid rgba(255,255,255,0.1)"] {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
  }
  div[style*="border-right:1px solid rgba(255,255,255,0.2)"] {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.2) !important;
  }
}

/* ===== iPlatform HERO DASHBOARD ===== */
@media (max-width: 768px) {
  /* The dashboard mock below iPlatform hero should be scrollable if needed */
  div[style*="background:#111;border:1px solid rgba(255,255,255,0.06);border-bottom:none"] {
    overflow-x: auto;
  }
}

/* ===== NAV LINK HOVER ===== */
.nav-links a:hover { color: #C62828; }
.nav-mobile-menu a:hover { color: #C62828; }
