/* TECHNODATA — palette extraite du logo officiel */
:root {
  --td-orange: #F4A40A;
  --td-orange-deep: #FC8707;
  --td-lime: #A0C906;
  --td-green: #12CB2A;
  --td-green-bright: #06CD5C;
  --td-teal: #04C69D;
  --td-cyan: #05CAEC;
  --td-sky: #05ADE3;
  --td-blue: #0647C6;
  --td-ink: #1C1C1C;
  --td-muted: #5b6470;
  --td-soft: #f5f9fc;
  --td-gradient: linear-gradient(90deg, #FC8707 0%, #A0C906 30%, #12CB2A 50%, #04C69D 68%, #05ADE3 85%, #0647C6 100%);
  --bs-primary: #05ADE3;
  --bs-primary-rgb: 5,173,227;
  --bs-link-color: #0647C6;
  --bs-link-hover-color: #05ADE3;
}
body { font-family: 'Poppins', system-ui, sans-serif; color: var(--td-ink); }
h1,h2,h3,h4,h5 { font-weight: 600; }
.text-gradient { background: var(--td-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gradient-bar { height: 4px; background: var(--td-gradient); }
.section { padding: 80px 0; }
.section-soft { background: var(--td-soft); }
.section-title { text-align: center; margin-bottom: 48px; }
.section-title h2 { position: relative; display: inline-block; padding-bottom: 14px; margin: 0; }
.section-title h2::after { content: ""; position: absolute; left: 25%; right: 25%; bottom: 0; height: 4px; border-radius: 2px; background: var(--td-gradient); }
.section-title p { color: var(--td-muted); margin: 12px 0 0; }

.btn-td { background: var(--td-blue); color: #fff; border: 0; padding: .65rem 1.6rem; border-radius: 50rem; font-weight: 500; transition: .2s; }
.btn-td:hover { background: var(--td-sky); color: #fff; transform: translateY(-1px); }
.btn-td-outline { border: 2px solid var(--td-blue); color: var(--td-blue); border-radius: 50rem; padding: .55rem 1.5rem; font-weight: 500; }
.btn-td-outline:hover { background: var(--td-blue); color: #fff; }

/* Topbar & navbar */
.topbar { background: var(--td-ink); color: #cfd6dd; font-size: .85rem; padding: 6px 0; }
.topbar a { color: #cfd6dd; text-decoration: none; }
.topbar a:hover { color: var(--td-cyan); }
.navbar { background: #fff; box-shadow: 0 2px 14px rgba(0,0,0,.06); padding: .4rem 0; }
.navbar-brand img { height: 62px; }
.navbar .nav-link { color: var(--td-ink); font-weight: 500; padding: .6rem 1rem; position: relative; }
.navbar .nav-link:hover, .navbar .nav-link.active { color: var(--td-blue); }
.navbar .nav-link.active::after { content: ""; position: absolute; left: 1rem; right: 1rem; bottom: 2px; height: 3px; background: var(--td-gradient); border-radius: 2px; }

/* Carousel / page hero */
.hero-slide { min-height: 560px; background-size: cover; background-position: center; display: flex; align-items: center; position: relative; color: #fff; }
.hero-slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(6,71,198,.82), rgba(5,173,227,.45) 55%, rgba(18,203,42,.25)); }
.hero-slide .container { position: relative; z-index: 1; }
.hero-slide h1 { font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 700; }
.hero-slide p { font-size: 1.35rem; }
.page-hero { min-height: 260px; background-size: cover; background-position: center; display: flex; align-items: center; position: relative; color: #fff; text-align: center; }
.page-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(6,71,198,.88), rgba(5,173,227,.6)); }
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { font-weight: 700; margin: 0; }
.fallback-bg { background-color: var(--td-blue); background-image: var(--td-gradient); }

/* Cards */
.card-td { border: 0; border-radius: 16px; box-shadow: 0 8px 28px rgba(6,71,198,.08); height: 100%; transition: .25s; overflow: hidden; }
.card-td:hover { transform: translateY(-4px); box-shadow: 0 14px 34px rgba(6,71,198,.16); }
.card-top-img { height: 190px; object-fit: cover; width: 100%; background: var(--td-gradient); }
.icon-circle { width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 1.8rem; color: #fff; background: var(--td-gradient); }
.service-tile { display: block; text-decoration: none; color: var(--td-ink); text-align: center; padding: 30px 18px; background: #fff; border-radius: 16px; border-bottom: 4px solid transparent; box-shadow: 0 6px 22px rgba(0,0,0,.06); transition: .25s; height: 100%; }
.service-tile:hover { border-bottom-color: var(--td-green); transform: translateY(-4px); color: var(--td-blue); }
.service-tile h4 { font-size: 1.05rem; margin: 16px 0 0; }

/* CTA + stats */
.cta { background: var(--td-gradient); color: #fff; padding: 46px 0; }
.cta .btn { background: #fff; color: var(--td-blue); border-radius: 50rem; font-weight: 600; padding: .7rem 1.8rem; }
.stats { background: var(--td-ink); color: #fff; }
.stat-num { font-size: 3rem; font-weight: 700; background: var(--td-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat-label { text-transform: uppercase; letter-spacing: .08em; font-size: .85rem; color: #cfd6dd; }

/* Portfolio */
.filter-btns { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 30px; }
.filter-btns button { border: 0; background: #e9eff5; padding: .45rem 1.3rem; border-radius: 50rem; font-weight: 500; }
.filter-btns button.active { background: var(--td-blue); color: #fff; }
.portfolio-item { cursor: pointer; border-radius: 14px; overflow: hidden; position: relative; background: #fff; box-shadow: 0 6px 22px rgba(0,0,0,.08); height: 100%; }
.portfolio-item img { width: 100%; height: 220px; object-fit: cover; display: block; transition: .35s; background: var(--td-gradient); }
.portfolio-item:hover img { transform: scale(1.06); }
.portfolio-item .caption { padding: 14px 16px; font-weight: 500; font-size: .95rem; border-top: 3px solid transparent; border-image: var(--td-gradient) 1; }

/* Clients, testimonials */
.client-logo { height: 70px; width: 100%; object-fit: contain; filter: grayscale(1); opacity: .75; transition: .25s; }
.client-logo:hover { filter: none; opacity: 1; }
.testimonial { background: #fff; border-radius: 16px; padding: 30px; box-shadow: 0 8px 28px rgba(0,0,0,.07); height: 100%; }
.avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--td-gradient); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; }

/* Team */
.team-card { text-align: center; padding: 34px 20px; }
.team-card .avatar { width: 110px; height: 110px; font-size: 2rem; margin-bottom: 16px; }

/* Forms */
.form-control:focus, .form-select:focus { border-color: var(--td-sky); box-shadow: 0 0 0 .2rem rgba(5,173,227,.2); }

/* Footer */
.footer { background: var(--td-ink); color: #cfd6dd; padding: 60px 0 0; }
.footer h5 { color: #fff; margin-bottom: 18px; }
.footer a { color: #cfd6dd; text-decoration: none; }
.footer a:hover { color: var(--td-cyan); }
.footer .social a { display: inline-flex; width: 38px; height: 38px; align-items: center; justify-content: center; border-radius: 50%; background: #2c2f33; margin-right: 6px; }
.footer .social a:hover { background: var(--td-blue); color: #fff; }
.footer .copy { border-top: 1px solid #2f3338; margin-top: 40px; padding: 18px 0; font-size: .9rem; }
.list-check { list-style: none; padding: 0; }
.list-check li { padding-left: 28px; position: relative; margin-bottom: 8px; }
.list-check li::before { content: "\F26A"; font-family: "bootstrap-icons"; position: absolute; left: 0; color: var(--td-green); }
