:root {
    --tx-ink: #12312B;
    --tx-ink-soft: #4B6560;
    --tx-teal: #0F6E56;
    --tx-teal-dark: #0A4A3A;
    --tx-stamp: #B23A2E;
    --tx-paper: #F7F6F1;
    --tx-card-line: #E4E0D4;
    --bs-primary: #0F6E56;
    --bs-primary-rgb: 15, 110, 86;
    --bs-body-font-family: 'Inter', -apple-system, sans-serif;
    --bs-link-color: #0F6E56;
    --bs-link-hover-color: #0A4A3A;
  }

  body {
    color: var(--tx-ink);
    background: #ffffff;
  }

  h1, h2, h3, h4, .display-font {
    font-family: 'Sora', 'Inter', sans-serif;
    letter-spacing: -0.01em;
  }

  .text-soft { color: var(--tx-ink-soft); }

  .btn-primary {
    background-color: var(--tx-teal);
    border-color: var(--tx-teal);
    font-weight: 600;
    padding: 0.7rem 1.6rem;
    border-radius: 6px;
  }
  .btn-primary:hover, .btn-primary:focus {
    background-color: var(--tx-teal-dark);
    border-color: var(--tx-teal-dark);
  }
  .btn-outline-light {
    font-weight: 600;
    padding: 0.7rem 1.6rem;
    border-radius: 6px;
    border-width: 1.5px;
  }
  .btn-outline-dark {
    font-weight: 600;
    padding: 0.65rem 1.4rem;
    border-radius: 6px;
    border-width: 1.5px;
    color: var(--tx-ink);
    border-color: var(--tx-ink);
  }
  .btn-outline-dark:hover {
    background-color: var(--tx-ink);
    color: #fff;
  }

  /* ---------- navbar ---------- */
  .navbar {
    transition: background-color 0.25s ease, box-shadow 0.25s ease, padding 0.25s ease;
    padding-top: 1.1rem;
    padding-bottom: 1.1rem;
  }
  .navbar.tx-scrolled {
    background-color: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 2px 18px rgba(18, 49, 43, 0.08);
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
  }
  .navbar-brand {
    font-family: 'Sora', sans-serif;
    font-weight: 700;
    font-size: 1.3rem;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .navbar.tx-scrolled .navbar-brand,
  .navbar.tx-scrolled .nav-link {
    color: var(--tx-ink) !important;
  }
  .nav-link {
    color: rgba(255, 255, 255, 0.92) !important;
    font-weight: 500;
    margin-left: 0.5rem;
  }
  .navbar.tx-scrolled .navbar-brand svg polygon { stroke: var(--tx-ink); }

  /* ---------- hero ---------- */
  .hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    background: url('../images/tadhex-hero.jpg') center center / cover no-repeat;
  }
  .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(26, 18, 12, 0.58) 0%, rgba(26, 18, 12, 0.32) 45%, rgba(20, 14, 10, 0.75) 100%);
  }
  .hero-content { position: relative; z-index: 2; }
  .hero .eyebrow {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #BFE3D6;
  }
  .hero h1 {
    font-size: clamp(2.4rem, 5vw, 3.6rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.1;
  }
  .hero p.lede {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.88);
    max-width: 560px;
  }
  .scroll-cue {
    position: absolute;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.75);
    font-size: 1.4rem;
    z-index: 2;
    animation: tx-bounce 2s infinite;
  }
  @keyframes tx-bounce {
    0%, 100% { transform: translate(-50%, 0); }
    50% { transform: translate(-50%, 8px); }
  }

  /* ---------- section basics ---------- */
  section { padding: 6rem 0; }
  .section-tight { padding: 4.5rem 0; }
  .eyebrow-dark {
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--tx-teal);
  }

  /* ---------- feature cards ---------- */
  .feature-card {
    border: 1px solid var(--tx-card-line);
    border-radius: 12px;
    padding: 2rem 1.75rem;
    height: 100%;
    background: #fff;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
  }
  .feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(18, 49, 43, 0.08);
  }
  .feature-icon {
    width: 52px;
    height: 52px;
    border-radius: 10px;
    background: rgba(15, 110, 86, 0.1);
    color: var(--tx-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    margin-bottom: 1.1rem;
  }

  /* ---------- split section with image ---------- */
  .split-img {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 24px 48px rgba(18, 49, 43, 0.14);
  }
  .split-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .check-item { display: flex; gap: 0.75rem; margin-bottom: 0.9rem; }
  .check-item i { color: var(--tx-teal); font-size: 1.2rem; margin-top: 0.15rem; }

  /* ---------- trust band ---------- */
  .trust-band {
    position: relative;
    background: url('../images/trust-brand.jpg') center center / cover no-repeat fixed;
    padding: 7rem 0;
  }
  .trust-band::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(10, 30, 26, 0.82);
  }
  .trust-band .container { position: relative; z-index: 2; }
  .trust-band h2, .trust-band p { color: #fff; }
  .trust-band p { color: rgba(255, 255, 255, 0.82); }

  /* ---------- demo form ---------- */
  #demo { background: var(--tx-paper); }
  .demo-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--tx-card-line);
    padding: 2.5rem;
    box-shadow: 0 20px 40px rgba(18, 49, 43, 0.08);
  }
  .form-label { font-weight: 600; font-size: 0.9rem; }
  .form-control {
    border-radius: 8px;
    padding: 0.65rem 0.9rem;
    border-color: var(--tx-card-line);
  }
  .form-control:focus {
    border-color: var(--tx-teal);
    box-shadow: 0 0 0 0.2rem rgba(15, 110, 86, 0.15);
  }
  .honeypot-field { position: absolute; left: -9999px; top: -9999px; }

  /* ---------- footer ---------- */
  footer {
    background: var(--tx-ink);
    color: rgba(255, 255, 255, 0.75);
    padding: 3rem 0;
  }
  footer a { color: rgba(255, 255, 255, 0.85); text-decoration: none; }
  footer a:hover { color: #fff; }

  @media (prefers-reduced-motion: reduce) {
    .scroll-cue { animation: none; }
  }