/* ==========================================================================
   Tender Management ERP — "e-Tendering / Bid Command Center" bespoke design
   Scoped under .tm-page. Deep indigo (governance) + cyan (data) + gold (award).
   Signature motifs: sealed-bid leaderboard, tender lifecycle pipeline,
   bid-evaluation scoring matrix. Deliberately distinct from ct-/dn- pages.
   ========================================================================== */
.tm-page {
    --tm-ink: #0e1230;        /* near-black indigo */
    --tm-deep: #1a1b4b;       /* deep indigo */
    --tm-indigo: #4f46e5;     /* electric indigo */
    --tm-indigo-2: #6366f1;
    --tm-cyan: #06b6d4;       /* data cyan */
    --tm-gold: #f5b301;       /* award gold */
    --tm-soft: #f2f3ff;       /* soft indigo tint */
    --tm-soft-2: #f7f8fc;
    --tm-line: #e6e7f2;
    --tm-muted: #5b607e;
    --tm-grad: linear-gradient(120deg, #6366f1 0%, #4f46e5 55%, #4338ca 100%);
    --tm-grad-cyan: linear-gradient(120deg, #22d3ee 0%, #06b6d4 100%);
    --tm-grad-gold: linear-gradient(120deg, #ffd76a 0%, #f5b301 100%);
    color: #333955;
}
.tm-page section { overflow: hidden; }

/* ---------- shared ---------- */
.tm-kicker {
    display: inline-flex; align-items: center; gap: .5rem; font-size: .76rem; font-weight: 800;
    letter-spacing: .14em; text-transform: uppercase; color: var(--tm-indigo);
    background: var(--tm-soft); padding: .45rem .95rem; border-radius: 2rem; border: 1px solid #e2e3fb;
}
.tm-kicker i { font-size: 1rem; }
.tm-kicker.cyan { color: #0891b2; background: #e8fbff; border-color: #cdf3fb; }
.tm-kicker.gold { color: #a9760a; background: #fff6e0; border-color: #f6e6bd; }
.tm-kicker.on-dark { color: #c7d2fe; background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.15); }
.tm-h { font-weight: 800; letter-spacing: -.02em; color: var(--tm-ink); line-height: 1.12; }
.tm-grad-txt { background: var(--tm-grad-cyan); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.tm-gold-txt { background: linear-gradient(120deg,#ffd76a,#f5b301); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.tm-lead { color: var(--tm-muted); font-size: 1.075rem; line-height: 1.7; }

.tm-btn { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; padding: .85rem 1.55rem; border-radius: .8rem; border: 0; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease, border-color .25s; text-decoration: none; }
.tm-btn i { transition: transform .25s ease; }
.tm-btn:hover i { transform: translate(2px,-2px); }
.tm-btn-primary { background: var(--tm-grad); color: #fff; box-shadow: 0 .8rem 1.7rem rgba(79,70,229,.36); }
.tm-btn-primary:hover { color: #fff; transform: translateY(-3px); box-shadow: 0 1.2rem 2.4rem rgba(79,70,229,.5); }
.tm-btn-ghost { background: #fff; color: var(--tm-indigo); border: 1.5px solid var(--tm-line); }
.tm-btn-ghost:hover { color: var(--tm-indigo); transform: translateY(-3px); border-color: var(--tm-indigo-2); box-shadow: 0 1rem 2rem rgba(79,70,229,.14); }
.tm-btn-glow { background: var(--tm-grad-cyan); color: #04283a; box-shadow: 0 .8rem 1.7rem rgba(6,182,212,.4); }
.tm-btn-glow:hover { color: #04283a; transform: translateY(-3px); box-shadow: 0 1.2rem 2.4rem rgba(6,182,212,.55); }
.tm-btn-outline-light { background: rgba(255,255,255,.06); color: #fff; border: 1.5px solid rgba(255,255,255,.28); }
.tm-btn-outline-light:hover { color: #fff; transform: translateY(-3px); background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.5); }

/* section heading */
.tm-head { max-width: 800px; margin: 0 auto 3.2rem; text-align: center; }
.tm-head h2 { font-size: clamp(1.9rem, 3.4vw, 2.75rem); }
.tm-head p { margin-top: 1rem; }

/* header logo swap (this sheet loads only on the tender page):
   white wordmark on the dark hero header, but the theme's sticky
   navbar clone has a white background — so flip back to the dark
   wordmark there to keep it legible. */
.tk-logo-dark { display: none; }
.navbar-clone .tk-logo-light { display: none; }
.navbar-clone .tk-logo-dark { display: inline-block; }

/* header blends into the dark hero */
.tm-header-bg { background: #0e1230; }
.tm-header-bg .navbar .nav-link { color: #dfe2f5 !important; }
.tm-header-bg .navbar .nav-link:hover { color: #fff !important; }
.tm-header-bg .social a { color: #9aa0c9; }

/* ==========================================================================
   HERO — dark control tower + sealed-bid leaderboard
   ========================================================================== */
.tm-hero {
    position: relative; color: #eef0ff;
    background:
        radial-gradient(900px 500px at 88% -10%, rgba(6,182,212,.22) 0%, rgba(6,182,212,0) 60%),
        radial-gradient(1000px 620px at 4% 8%, rgba(99,102,241,.34) 0%, rgba(99,102,241,0) 55%),
        linear-gradient(180deg, #0e1230 0%, #161a45 60%, #1a1e50 100%);
}
.tm-hero::before {
    content: ""; position: absolute; inset: 0; opacity: .5;
    background-image: linear-gradient(rgba(150,160,255,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(150,160,255,.10) 1px, transparent 1px);
    background-size: 46px 46px; -webkit-mask-image: radial-gradient(120% 90% at 50% 0%, #000 40%, transparent 78%); mask-image: radial-gradient(120% 90% at 50% 0%, #000 40%, transparent 78%);
}
.tm-hero .container { position: relative; z-index: 2; }
.tm-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.5rem); color: #fff; }
.tm-hero .tm-lead { color: #b9bfe6; font-size: 1.12rem; }
.tm-hero-trust { display: flex; flex-wrap: wrap; gap: 1rem 1.8rem; }
.tm-hero-trust .t { display: flex; align-items: center; gap: .5rem; font-weight: 600; color: #dfe2f8; font-size: .95rem; }
.tm-hero-trust .t i { color: var(--tm-cyan); font-size: 1.15rem; }

/* leaderboard card */
.tm-board-wrap { position: relative; }
.tm-board {
    position: relative; z-index: 2; border-radius: 1.4rem; padding: 1.5rem;
    background: linear-gradient(180deg, rgba(30,34,80,.92), rgba(18,21,58,.92));
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 2.6rem 5.5rem rgba(3,6,28,.6);
    backdrop-filter: blur(6px);
}
.tm-board__head { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.2rem; }
.tm-board__ic { width: 3rem; height: 3rem; border-radius: .85rem; flex: none; display: flex; align-items: center; justify-content: center; color: #04283a; font-size: 1.3rem; background: var(--tm-grad-cyan); box-shadow: 0 .5rem 1.1rem rgba(6,182,212,.4); }
.tm-board__head h6 { margin: 0; font-weight: 800; color: #fff; font-size: 1rem; }
.tm-board__head span { font-size: .78rem; color: #9aa0c9; }
.tm-live { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #6ee7b7; background: rgba(16,185,129,.14); padding: .34rem .7rem; border-radius: 2rem; border: 1px solid rgba(16,185,129,.3); }
.tm-live .dot { width: .5rem; height: .5rem; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52,211,153,.6); animation: tmpulse 1.7s infinite; }
@keyframes tmpulse { 70% { box-shadow: 0 0 0 .5rem rgba(52,211,153,0); } 100% { box-shadow: 0 0 0 0 rgba(52,211,153,0); } }

/* countdown row */
.tm-count { display: flex; align-items: center; gap: .8rem; background: rgba(245,179,1,.1); border: 1px solid rgba(245,179,1,.28); border-radius: .8rem; padding: .7rem .9rem; margin-bottom: 1.1rem; }
.tm-count i { color: var(--tm-gold); font-size: 1.35rem; }
.tm-count .lbl { font-size: .74rem; color: #c9cdec; }
.tm-count .val { margin-left: auto; display: flex; gap: .35rem; }
.tm-count .val b { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: .45rem; padding: .28rem .5rem; font-size: .95rem; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; }

/* ranked bid rows */
.tm-bids { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1rem; }
.tm-bidrow { display: grid; grid-template-columns: 1.7rem 1fr auto; align-items: center; gap: .7rem; padding: .7rem .85rem; border-radius: .7rem; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); }
.tm-bidrow .rk { width: 1.7rem; height: 1.7rem; border-radius: .5rem; display: flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 800; color: #cbd2ff; background: rgba(255,255,255,.08); }
.tm-bidrow .vn { display: flex; flex-direction: column; }
.tm-bidrow .vn b { font-size: .85rem; color: #fff; font-weight: 700; line-height: 1.1; }
.tm-bidrow .vn span { font-size: .68rem; color: #9aa0c9; }
.tm-bidrow .sc { text-align: right; }
.tm-bidrow .sc b { display: block; font-size: .9rem; font-weight: 800; color: #a5f3fc; line-height: 1; }
.tm-bidrow .sc span { font-size: .64rem; color: #9aa0c9; }
.tm-bidrow.lead { background: linear-gradient(90deg, rgba(245,179,1,.16), rgba(245,179,1,.05)); border-color: rgba(245,179,1,.38); }
.tm-bidrow.lead .rk { background: var(--tm-gold); color: #3a2a00; }
.tm-bidrow.lead .sc b { color: #ffe08a; }

.tm-board__foot { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; border-top: 1px dashed rgba(255,255,255,.14); padding-top: 1rem; }
.tm-board__foot .c { text-align: center; }
.tm-board__foot .c b { display: block; font-size: 1.05rem; font-weight: 800; color: #fff; }
.tm-board__foot .c span { font-size: .64rem; color: #9aa0c9; text-transform: uppercase; letter-spacing: .04em; }

/* floating badges */
.tm-badge { position: absolute; z-index: 3; background: #fff; border-radius: .9rem; box-shadow: 0 1.2rem 2.6rem rgba(3,6,28,.4); padding: .7rem .95rem; display: flex; align-items: center; gap: .6rem; animation: tmfloat 5.5s ease-in-out infinite; }
.tm-badge .ic { width: 2.1rem; height: 2.1rem; border-radius: .6rem; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.05rem; flex: none; }
.tm-badge b { display: block; font-size: .84rem; color: var(--tm-ink); line-height: 1.1; }
.tm-badge span { font-size: .72rem; color: var(--tm-muted); }
.tm-badge .ic--seal { background: var(--tm-grad); }
.tm-badge .ic--award { background: linear-gradient(120deg,#ffd76a,#f5b301); color: #3a2a00; }
.tm-badge--tl { top: -2rem; left: -1.5rem; }
.tm-badge--br { bottom: -1.8rem; right: -1.4rem; animation-delay: 1.6s; }
@keyframes tmfloat { 50% { transform: translateY(-11px); } }

/* ==========================================================================
   TRUST STRIP
   ========================================================================== */
.tm-strip { background: var(--tm-ink); position: relative; }
.tm-strip::after { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 200px at 50% 0%, rgba(99,102,241,.25), transparent 70%); }
.tm-strip .container { position: relative; z-index: 2; }
.tm-strip .s { text-align: center; padding: .5rem; }
.tm-strip .s b { display: block; font-size: clamp(1.7rem,3vw,2.35rem); font-weight: 800; color: #fff; line-height: 1; }
.tm-strip .s b em { font-style: normal; background: var(--tm-grad-cyan); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.tm-strip .s span { display: block; margin-top: .45rem; font-size: .84rem; color: #9aa0c9; }
.tm-strip .col + .col .s { border-left: 1px solid rgba(255,255,255,.09); }
@media (max-width: 767px){ .tm-strip .col + .col .s { border-left: 0; } }

/* ==========================================================================
   LIFECYCLE PIPELINE — signature horizontal stepper
   ========================================================================== */
.tm-flow { background: var(--tm-soft-2); }
.tm-pipe { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.tm-pipe::before { content: ""; position: absolute; top: 2.1rem; left: 6%; right: 6%; height: 3px; background: linear-gradient(90deg, var(--tm-indigo), var(--tm-cyan), var(--tm-gold)); border-radius: 3px; opacity: .35; }
.tm-stage { position: relative; text-align: center; z-index: 2; }
.tm-stage .num { position: relative; width: 4.2rem; height: 4.2rem; margin: 0 auto 1rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: #fff; background: var(--tm-grad); box-shadow: 0 .8rem 1.6rem rgba(79,70,229,.3); border: 4px solid #fff; }
.tm-stage:nth-child(2) .num { background: linear-gradient(120deg,#6366f1,#4f46e5); }
.tm-stage:nth-child(3) .num { background: linear-gradient(120deg,#4f46e5,#3aa0d8); }
.tm-stage:nth-child(4) .num { background: linear-gradient(120deg,#22d3ee,#06b6d4); color: #04283a; }
.tm-stage:nth-child(5) .num { background: linear-gradient(120deg,#0ea5a3,#0891b2); }
.tm-stage:nth-child(6) .num { background: linear-gradient(120deg,#ffd76a,#f5b301); color: #3a2a00; }
.tm-stage .step { display: inline-block; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--tm-indigo); margin-bottom: .35rem; }
.tm-stage h4 { font-size: 1rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .4rem; }
.tm-stage p { font-size: .82rem; color: var(--tm-muted); line-height: 1.5; margin: 0; }
@media (max-width: 991px){
    .tm-pipe { grid-template-columns: repeat(2,1fr); gap: 2rem 1rem; }
    .tm-pipe::before { display: none; }
}
@media (max-width: 575px){ .tm-pipe { grid-template-columns: 1fr; } }

/* ==========================================================================
   MODULES — bento grid, indigo left-accent cards + numbered flagship
   ========================================================================== */
.tm-bento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.tm-feat-hero { grid-column: span 1; grid-row: span 2; position: relative; overflow: hidden; border-radius: 1.3rem; padding: 2rem 1.8rem; color: #eef0ff; background: linear-gradient(160deg, #21255e 0%, #14173d 100%); border: 1px solid rgba(255,255,255,.08); }
.tm-feat-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(150,160,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(150,160,255,.08) 1px, transparent 1px); background-size: 30px 30px; -webkit-mask-image: radial-gradient(90% 70% at 80% 10%, #000, transparent 75%); mask-image: radial-gradient(90% 70% at 80% 10%, #000, transparent 75%); }
.tm-feat-hero > * { position: relative; z-index: 2; }
.tm-feat-hero__tag { display: inline-flex; align-items: center; gap: .4rem; font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: #ffe08a; background: rgba(245,179,1,.14); border: 1px solid rgba(245,179,1,.3); padding: .35rem .75rem; border-radius: 2rem; margin-bottom: 1.2rem; }
.tm-feat-hero__ic { width: 3.4rem; height: 3.4rem; border-radius: .95rem; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; color: #04283a; background: var(--tm-grad-cyan); margin-bottom: 1rem; }
.tm-feat-hero h3 { color: #fff; font-size: 1.35rem; font-weight: 800; margin-bottom: .6rem; }
.tm-feat-hero p { color: #b9bfe6; font-size: .92rem; line-height: 1.6; margin-bottom: 1.1rem; }
.tm-feat-hero .tm-ticks li { color: #d7dbf5; }
.tm-feat-hero .tm-ticks li i { color: var(--tm-cyan); }

/* sealed-bid vault mini-visual inside flagship */
.tm-vault { margin-top: 1.3rem; display: flex; flex-direction: column; gap: .5rem; }
.tm-vault .vr { display: flex; align-items: center; gap: .6rem; padding: .55rem .75rem; border-radius: .6rem; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); font-size: .8rem; }
.tm-vault .vr i { color: var(--tm-cyan); }
.tm-vault .vr span { color: #cbd2ff; }
.tm-vault .vr .lock { margin-left: auto; font-size: .68rem; font-weight: 700; color: #6ee7b7; display: inline-flex; align-items: center; gap: .3rem; }
.tm-vault .vr .lock i { color: #6ee7b7; }

.tm-feat { position: relative; background: #fff; border: 1px solid var(--tm-line); border-radius: 1.1rem; padding: 1.6rem; height: 100%; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; overflow: hidden; }
.tm-feat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--tm-grad); transform: scaleY(0); transform-origin: top; transition: transform .3s ease; }
.tm-feat:hover { transform: translateY(-.45rem); box-shadow: 0 1.5rem 3rem rgba(20,26,80,.13); border-color: transparent; }
.tm-feat:hover::before { transform: scaleY(1); }
.tm-feat .tm-ico { width: 3.2rem; height: 3.2rem; border-radius: .9rem; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; background: var(--tm-soft); color: var(--tm-indigo); font-size: 1.4rem; }
.tm-feat h3 { font-size: 1.08rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .5rem; }
.tm-feat p { font-size: .88rem; color: var(--tm-muted); margin: 0; line-height: 1.55; }

.tm-ticks { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .55rem; }
.tm-ticks li { position: relative; padding-left: 1.6rem; font-size: .88rem; line-height: 1.45; }
.tm-ticks li i { position: absolute; left: 0; top: .1rem; }
@media (max-width: 991px){ .tm-bento { grid-template-columns: repeat(2,1fr); } .tm-feat-hero { grid-column: span 2; grid-row: auto; } }
@media (max-width: 575px){ .tm-bento { grid-template-columns: 1fr; } .tm-feat-hero { grid-column: span 1; } }

/* ==========================================================================
   BID EVALUATION MATRIX — technical + financial scoring showcase
   ========================================================================== */
.tm-eval { background: var(--tm-soft-2); }
.tm-matrix { background: #fff; border: 1px solid var(--tm-line); border-radius: 1.3rem; box-shadow: 0 1.6rem 3.4rem rgba(20,26,80,.09); overflow: hidden; }
.tm-matrix__head, .tm-mrow { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1.1fr; align-items: center; }
.tm-matrix__head { background: var(--tm-ink); color: #fff; padding: 1rem 1.2rem; font-size: .74rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.tm-matrix__head span { color: #b9bfe6; }
.tm-matrix__head span:first-child { color: #fff; }
.tm-mrow { padding: 1rem 1.2rem; border-top: 1px solid var(--tm-line); font-size: .9rem; }
.tm-mrow .vend { display: flex; align-items: center; gap: .7rem; font-weight: 700; color: var(--tm-ink); }
.tm-mrow .vend .av { width: 2.1rem; height: 2.1rem; border-radius: .55rem; display: flex; align-items: center; justify-content: center; font-size: .74rem; font-weight: 800; color: #fff; background: var(--tm-grad); flex: none; }
.tm-scorebar { height: .45rem; border-radius: 2rem; background: #eef0f7; overflow: hidden; max-width: 6rem; }
.tm-scorebar > i { display: block; height: 100%; border-radius: 2rem; background: var(--tm-grad-cyan); }
.tm-mrow .num { font-weight: 700; color: #3b4263; font-variant-numeric: tabular-nums; }
.tm-rank { display: inline-flex; align-items: center; gap: .35rem; font-size: .75rem; font-weight: 800; padding: .3rem .65rem; border-radius: 2rem; }
.tm-rank.win { color: #a9760a; background: #fff6e0; border: 1px solid #f6e6bd; }
.tm-rank.mid { color: var(--tm-indigo); background: var(--tm-soft); border: 1px solid #e2e3fb; }
.tm-mrow.is-win { background: linear-gradient(90deg, rgba(245,179,1,.07), transparent); }
.tm-matrix__note { display: flex; align-items: center; gap: .6rem; padding: .9rem 1.2rem; background: var(--tm-soft); font-size: .82rem; color: var(--tm-muted); border-top: 1px solid var(--tm-line); }
.tm-matrix__note i { color: var(--tm-indigo); font-size: 1.1rem; }
.tm-eval-points { display: flex; flex-direction: column; gap: 1.2rem; }
.tm-epoint { display: flex; gap: .9rem; }
.tm-epoint .ic { width: 2.9rem; height: 2.9rem; flex: none; border-radius: .8rem; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; background: var(--tm-soft); color: var(--tm-indigo); }
.tm-epoint h4 { font-size: 1rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .25rem; }
.tm-epoint p { font-size: .88rem; color: var(--tm-muted); margin: 0; line-height: 1.55; }
@media (max-width: 767px){
    .tm-matrix { overflow-x: auto; }
    .tm-matrix__head, .tm-mrow { grid-template-columns: 9rem 6rem 6rem 6rem 7rem; min-width: 34rem; }
}

/* ==========================================================================
   AUDIENCE — buyer segments
   ========================================================================== */
.tm-aud { position: relative; background: #fff; border: 1px solid var(--tm-line); border-radius: 1.1rem; padding: 1.7rem; height: 100%; transition: transform .3s, box-shadow .3s; overflow: hidden; }
.tm-aud::after { content: ""; position: absolute; top: -3rem; right: -3rem; width: 8rem; height: 8rem; border-radius: 50%; background: var(--tm-soft); opacity: .8; transition: transform .4s; }
.tm-aud:hover { transform: translateY(-.4rem); box-shadow: 0 1.4rem 3rem rgba(20,26,80,.12); }
.tm-aud:hover::after { transform: scale(1.6); }
.tm-aud > * { position: relative; z-index: 2; }
.tm-aud .ic { width: 3.2rem; height: 3.2rem; border-radius: .9rem; display: flex; align-items: center; justify-content: center; font-size: 1.45rem; color: #fff; background: var(--tm-grad); margin-bottom: 1rem; }
.tm-aud h3 { font-size: 1.08rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .45rem; }
.tm-aud p { font-size: .88rem; color: var(--tm-muted); margin: 0; line-height: 1.55; }

/* ==========================================================================
   BENEFITS
   ========================================================================== */
.tm-benefits { background: var(--tm-soft-2); }
.tm-bchecks { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .9rem; }
.tm-bchecks li { display: flex; gap: .75rem; align-items: flex-start; font-size: .98rem; color: #3b4263; }
.tm-bchecks li i { flex: none; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .8rem; color: #fff; background: var(--tm-grad); margin-top: .1rem; }
.tm-collage { position: relative; display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.tm-metric { background: #fff; border: 1px solid var(--tm-line); border-radius: 1.1rem; padding: 1.5rem; box-shadow: 0 1rem 2.4rem rgba(20,26,80,.07); }
.tm-metric .ic { width: 2.7rem; height: 2.7rem; border-radius: .7rem; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; color: #fff; margin-bottom: .9rem; }
.tm-metric.i1 .ic { background: var(--tm-grad); } .tm-metric.i2 .ic { background: var(--tm-grad-cyan); color:#04283a; }
.tm-metric.i3 .ic { background: linear-gradient(120deg,#ffd76a,#f5b301); color:#3a2a00; } .tm-metric.i4 .ic { background: linear-gradient(120deg,#0ea5a3,#0891b2); }
.tm-metric b { display: block; font-size: 1.8rem; font-weight: 800; color: var(--tm-ink); line-height: 1; }
.tm-metric span { font-size: .82rem; color: var(--tm-muted); }
.tm-metric.up { transform: translateY(1.4rem); }
@media (max-width: 991px){ .tm-metric.up { transform: none; } }

/* ==========================================================================
   COMPLIANCE / SECURITY — dark
   ========================================================================== */
.tm-sec { position: relative; color: #dfe2f8; background: linear-gradient(180deg, #12153a 0%, #0e1230 100%); }
.tm-sec::before { content: ""; position: absolute; inset: 0; opacity: .4; background-image: linear-gradient(rgba(150,160,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(150,160,255,.08) 1px, transparent 1px); background-size: 46px 46px; -webkit-mask-image: radial-gradient(100% 80% at 50% 0%, #000, transparent 75%); mask-image: radial-gradient(100% 80% at 50% 0%, #000, transparent 75%); }
.tm-sec .container { position: relative; z-index: 2; }
.tm-sec .tm-h { color: #fff; }
.tm-sec .tm-head p { color: #b9bfe6; }
.tm-sec-tile { text-align: center; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 1rem; padding: 1.4rem 1rem; height: 100%; transition: transform .3s, background .3s; }
.tm-sec-tile:hover { transform: translateY(-.4rem); background: rgba(255,255,255,.07); }
.tm-sec-tile b { display: block; font-size: 1.9rem; font-weight: 800; color: #fff; line-height: 1; }
.tm-sec-tile span { font-size: .8rem; color: #9aa0c9; }
.tm-srow { display: flex; gap: .95rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.08); }
.tm-srow:last-child { border-bottom: 0; }
.tm-srow .ic { width: 2.9rem; height: 2.9rem; flex: none; border-radius: .8rem; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; color: #a5f3fc; background: rgba(6,182,212,.12); border: 1px solid rgba(6,182,212,.25); }
.tm-srow h4 { font-size: 1.02rem; font-weight: 800; color: #fff; margin-bottom: .25rem; }
.tm-srow p { font-size: .87rem; color: #a9b0d8; margin: 0; line-height: 1.55; }
.tm-sec-sub { font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #8b93c9; margin-bottom: .6rem; }

/* ==========================================================================
   INTEGRATIONS
   ========================================================================== */
.tm-eco-card { background: #fff; border: 1px solid var(--tm-line); border-radius: 1.1rem; padding: 1.5rem; height: 100%; transition: transform .3s, box-shadow .3s; }
.tm-eco-card:hover { transform: translateY(-.35rem); box-shadow: 0 1.3rem 2.8rem rgba(20,26,80,.1); }
.tm-eco-card h5 { font-size: 1rem; font-weight: 800; color: var(--tm-ink); margin-bottom: 1rem; }
.tm-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.tm-chip { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; font-weight: 600; color: #3b4263; background: var(--tm-soft); border: 1px solid #e2e3fb; padding: .4rem .75rem; border-radius: .6rem; }
.tm-chip i { color: var(--tm-indigo); font-size: .95rem; }
.tm-eco-card--more { background: linear-gradient(160deg, #21255e, #14173d); color: #eef0ff; border-color: transparent; }
.tm-eco-card--more h5 { color: #fff; }
.tm-eco-card--more p { color: #b9bfe6; font-size: .9rem; }
.tm-eco-card--more a { color: #a5f3fc; font-weight: 700; text-decoration: none; }
.tm-eco-card--more a:hover { color: #fff; }

/* ==========================================================================
   IMPLEMENTATION STEPS
   ========================================================================== */
.tm-step { display: flex; gap: 1.1rem; padding-bottom: 1.7rem; position: relative; }
.tm-step:not(:last-child)::before { content: ""; position: absolute; left: 1.35rem; top: 3rem; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--tm-indigo), transparent); }
.tm-step .num { width: 2.7rem; height: 2.7rem; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; color: #fff; background: var(--tm-grad); box-shadow: 0 .5rem 1.1rem rgba(79,70,229,.3); }
.tm-step h4 { font-size: 1.05rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .3rem; }
.tm-step p { font-size: .9rem; color: var(--tm-muted); margin: 0; line-height: 1.55; }
.tm-implebox { background: linear-gradient(160deg, #21255e, #14173d); border-radius: 1.3rem; padding: 2rem; color: #eef0ff; height: 100%; }
.tm-implebox h3 { color: #fff; font-weight: 800; }
.tm-implebox .row-i { display: flex; align-items: center; gap: .8rem; padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.09); }
.tm-implebox .row-i:last-child { border-bottom: 0; }
.tm-implebox .row-i i { color: var(--tm-cyan); font-size: 1.3rem; }
.tm-implebox .row-i b { color: #fff; font-size: .95rem; display: block; }
.tm-implebox .row-i span { color: #9aa0c9; font-size: .8rem; }
.tm-implebox .row-i .t { margin-left: auto; font-size: .82rem; font-weight: 700; color: #a5f3fc; }

/* ==========================================================================
   PRICING
   ========================================================================== */
.tm-price { background: var(--tm-soft-2); }
.tm-plan { position: relative; background: #fff; border: 1px solid var(--tm-line); border-radius: 1.3rem; padding: 2rem 1.7rem; height: 100%; display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; }
.tm-plan:hover { transform: translateY(-.4rem); box-shadow: 0 1.5rem 3.2rem rgba(20,26,80,.12); }
.tm-plan__name { font-size: 1.2rem; font-weight: 800; color: var(--tm-ink); }
.tm-plan__for { font-size: .84rem; color: var(--tm-muted); margin-bottom: 1.1rem; }
.tm-plan__price { font-size: 2.1rem; font-weight: 800; color: var(--tm-ink); margin-bottom: 1.3rem; }
.tm-plan__price small { display: block; font-size: .78rem; font-weight: 600; color: var(--tm-muted); margin-top: .2rem; }
.tm-plan__list { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-direction: column; gap: .6rem; flex-grow: 1; }
.tm-plan__list li { position: relative; padding-left: 1.8rem; font-size: .87rem; color: #3b4263; line-height: 1.4; }
.tm-plan__list li::before { content: "\2713"; position: absolute; left: 0; top: .05rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--tm-soft); color: var(--tm-indigo); font-size: .72rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.tm-plan__list li.no { color: #a2a8c0; }
.tm-plan__list li.no::before { content: "\00d7"; background: #f0f1f3; color: #cbcfe0; }
.tm-plan--feature .tm-plan__list li::before { background: rgba(6,182,212,.18); color: #67e8f9; }
.tm-plan--feature .tm-plan__list li.no::before { background: rgba(255,255,255,.08); color: #7a80ab; }
.tm-plan--feature { background: linear-gradient(170deg, #21255e 0%, #14173d 100%); border-color: transparent; box-shadow: 0 2rem 4rem rgba(20,26,80,.25); }
.tm-plan--feature .tm-plan__name, .tm-plan--feature .tm-plan__price { color: #fff; }
.tm-plan--feature .tm-plan__for { color: #b9bfe6; }
.tm-plan--feature .tm-plan__price small { color: #b9bfe6; }
.tm-plan--feature .tm-plan__list li { color: #d7dbf5; }
.tm-plan--feature .tm-plan__list li.no { color: #7a80ab; }
.tm-plan__tag { position: absolute; top: -.85rem; left: 50%; transform: translateX(-50%); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: #3a2a00; background: linear-gradient(120deg,#ffd76a,#f5b301); padding: .35rem .9rem; border-radius: 2rem; box-shadow: 0 .5rem 1.1rem rgba(245,179,1,.4); }

/* ==========================================================================
   TESTIMONIALS + COUNTERS
   ========================================================================== */
.tm-quote { background: #fff; border: 1px solid var(--tm-line); border-radius: 1.1rem; padding: 1.7rem; height: 100%; transition: transform .3s, box-shadow .3s; }
.tm-quote:hover { transform: translateY(-.4rem); box-shadow: 0 1.4rem 3rem rgba(20,26,80,.1); }
.tm-quote .stars { color: var(--tm-gold); font-size: 1rem; letter-spacing: .1em; margin-bottom: .8rem; }
.tm-quote .tx { font-size: .95rem; color: #3b4263; line-height: 1.65; margin-bottom: 1.2rem; }
.tm-quote .who { display: flex; align-items: center; gap: .7rem; }
.tm-quote .who .av { width: 2.6rem; height: 2.6rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: .82rem; color: #fff; background: var(--tm-grad); }
.tm-quote .who h6 { margin: 0; font-size: .92rem; font-weight: 800; color: var(--tm-ink); }
.tm-quote .who span { font-size: .78rem; color: var(--tm-muted); }
.tm-counter b { display: block; font-size: clamp(1.9rem,3vw,2.5rem); font-weight: 800; color: var(--tm-ink); line-height: 1; }
.tm-counter span { font-size: .84rem; color: var(--tm-muted); }

/* ==========================================================================
   LEAD FORM
   ========================================================================== */
.tm-lead-sec { background: var(--tm-soft-2); }
.tm-lead-sec .trust { list-style: none; padding: 0; margin: 1.4rem 0; display: grid; gap: .7rem; }
.tm-lead-sec .trust li { display: flex; align-items: center; gap: .6rem; font-size: .95rem; color: #3b4263; }
.tm-lead-sec .trust li i { color: var(--tm-cyan); font-size: 1.15rem; }
.tm-callbox { background: #fff; border: 1px solid var(--tm-line); border-radius: 1rem; padding: 1.3rem; }
.tm-callbox a { color: var(--tm-indigo); text-decoration: none; font-weight: 600; }
.tm-formcard { background: #fff; border: 1px solid var(--tm-line); border-radius: 1.3rem; padding: 2rem; box-shadow: 0 1.6rem 3.4rem rgba(20,26,80,.09); }
.tm-formcard .form-control { border-radius: .7rem; }
.tm-ta { min-height: 8rem; }
.tm-privacy { font-size: .78rem; color: var(--tm-muted); margin-top: .6rem; }

/* ==========================================================================
   CTA
   ========================================================================== */
.tm-cta-card { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--tm-line); border-radius: 1.2rem; padding: 2rem; text-align: center; height: 100%; transition: transform .3s, box-shadow .3s; }
.tm-cta-card:hover { transform: translateY(-.4rem); box-shadow: 0 1.6rem 3.2rem rgba(20,26,80,.13); }
.tm-cta-card .ic { width: 3.4rem; height: 3.4rem; margin: 0 auto 1rem; border-radius: 1rem; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; color: #fff; background: var(--tm-grad); }
.tm-cta-card h3 { font-size: 1.2rem; font-weight: 800; color: var(--tm-ink); margin-bottom: .6rem; }
.tm-cta-card p { font-size: .92rem; color: var(--tm-muted); margin-bottom: 1.3rem; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.tm-faq .tm-faq-cat { grid-column: 1 / -1; font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--tm-indigo); margin: 1.4rem 0 .3rem; }
.tm-faq-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.5rem; }
.tm-faq .accordion-item { border: 1px solid var(--tm-line); border-radius: 1rem !important; overflow: hidden; background: #fff; }
.tm-faq .card-header { background: transparent; border: 0; padding: 0; }
.tm-faq .accordion-item .card-header button { font-weight: 700; color: var(--tm-ink); font-size: .98rem; padding: 1.15rem 3rem 1.15rem 1.3rem; background: #fff; display: flex; align-items: center; width: 100%; text-align: left; border: 0; position: relative; }
.tm-faq .accordion-item .card-header button::before { display: none !important; }
.tm-faq .accordion-item .card-header button::after { content: ""; position: absolute; right: 1.4rem; top: 50%; width: .55rem; height: .55rem; margin-top: -.4rem; border-right: 2px solid var(--tm-indigo); border-bottom: 2px solid var(--tm-indigo); transform: rotate(225deg); transition: transform .25s ease; background: none; }
.tm-faq .accordion-item .card-header button.collapsed::after { transform: rotate(45deg); margin-top: -.15rem; }
.tm-faq .accordion-item .card-header button:not(.collapsed) { color: var(--tm-indigo); background: var(--tm-soft); box-shadow: none; }
.tm-faq .card-body { padding: 0 1.3rem 1.2rem; }
.tm-faq .card-body p, .tm-faq .card-body li { font-size: .9rem; color: var(--tm-muted); line-height: 1.6; }
.tm-faq-help { display: flex; align-items: center; gap: 1rem; background: linear-gradient(160deg, #21255e, #14173d); border-radius: 1.2rem; padding: 1.4rem; color: #eef0ff; }
.tm-faq-help .ic { width: 3rem; height: 3rem; flex: none; border-radius: .9rem; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; color: #04283a; background: var(--tm-grad-cyan); }
.tm-faq-help h4 { font-size: 1rem; font-weight: 800; color: #fff; margin-bottom: .2rem; }
.tm-faq-help p { font-size: .85rem; color: #b9bfe6; margin: 0; }
@media (max-width: 767px){ .tm-faq-grid { grid-template-columns: 1fr; } }

/* utility: section rhythm fallback if py-110 undefined */
.tm-page .py-110 { padding-top: 6.5rem; padding-bottom: 6.5rem; }
