/* =========================================================
   Techbase Consult — "Horizon" design system
   Sky blue + orange, clean modern tech, professional + vibrant
   ========================================================= */

:root {
  /* Sky blue scale */
  --sky:       #0EA5E9;
  --sky-dk:    #0284C7;
  --sky-xdk:   #0369A1;
  --sky-lite:  #BAE6FD;
  --sky-bg:    #F0F9FF;

  /* Orange accent */
  --orange:    #F97316;
  --orange-dk: #EA580C;
  --orange-bg: #FFF7ED;

  /* Dark (hero / footer) */
  --dark:      #0F172A;
  --dark-card: #1E3A5F;

  /* Neutrals */
  --body:      #334155;
  --muted:     #64748B;
  --border:    #E2E8F0;
  --bg-alt:    #F8FAFC;
  --white:     #FFFFFF;

  /* Semantic */
  --success:   #22C55E;
  --success-bg:#DCFCE7;

  /* Layout */
  --max: 1180px;
  --radius:    12px;
  --radius-sm: 6px;
  --shadow-sm: 0 1px 3px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.05);
  --shadow-md: 0 4px 12px rgba(15,23,42,.10), 0 2px 4px rgba(15,23,42,.06);
  --shadow-lg: 0 12px 24px rgba(15,23,42,.12), 0 4px 8px rgba(15,23,42,.06);

  /* Fonts */
  --font-display: 'IBM Plex Sans Condensed', sans-serif;
  --font-body:    'IBM Plex Sans', sans-serif;
  --font-mono:    'IBM Plex Mono', monospace;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
body {
  margin:0;
  background:var(--white);
  color:var(--body);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { margin:0; padding:0; list-style:none; }
button { font-family:inherit; cursor:pointer; }
h1,h2,h3,h4 { font-family:var(--font-display); margin:0 0 .5em; line-height:1.15; font-weight:700; color:var(--dark); }

.tbc-skip { position:absolute; left:-9999px; top:0; background:var(--orange); color:#fff; padding:.6em 1em; z-index:300; }
.tbc-skip:focus { left:.5em; top:.5em; }
:focus-visible { outline:2px solid var(--sky); outline-offset:2px; }
.tbc-wrap { max-width:var(--max); margin:0 auto; padding:0 24px; }

/* ---------- Type helpers ---------- */
.tbc-eyebrow {
  font-family:var(--font-mono); font-size:11.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--sky-dk); margin:0 0 .7em; display:block;
}
.tbc-eyebrow--light { color:var(--sky-lite); }
.tbc-h2 { font-size:clamp(1.7rem,1.3rem + 1.6vw,2.5rem); color:var(--dark); }
.tbc-h2--light { color:#fff; }
.tbc-section__lede { max-width:600px; font-size:1.05rem; color:var(--muted); }
.tbc-section__lede--light { color:rgba(255,255,255,.75); }
.tbc-section__more { margin-top:28px; }

/* ---------- Buttons ---------- */
.tbc-btn {
  display:inline-flex; align-items:center; gap:.4em;
  font-family:var(--font-display); font-weight:700; font-size:.95rem;
  padding:.85em 1.75em; border-radius:50px; border:2px solid transparent;
  transition:transform .15s ease, background .15s ease, box-shadow .15s ease;
}
.tbc-btn:hover { transform:translateY(-2px); }
.tbc-btn--orange { background:var(--orange); color:#fff; box-shadow:0 4px 14px rgba(249,115,22,.3); }
.tbc-btn--orange:hover { background:var(--orange-dk); box-shadow:0 6px 20px rgba(249,115,22,.4); }
.tbc-btn--sky { background:var(--sky); color:#fff; box-shadow:0 4px 14px rgba(14,165,233,.3); }
.tbc-btn--sky:hover { background:var(--sky-dk); }
.tbc-btn--outline { border-color:var(--sky); color:var(--sky-dk); }
.tbc-btn--outline:hover { background:var(--sky); color:#fff; }
.tbc-btn--outline-light { border-color:rgba(255,255,255,.5); color:#fff; }
.tbc-btn--outline-light:hover { background:#fff; color:var(--sky-dk); }
.tbc-btn--ghost { border:none; color:var(--sky-dk); font-family:var(--font-mono); font-size:.8rem; padding:.4em 0; }

/* keep old --copper alias for any template refs */
.tbc-btn--copper { background:var(--orange); color:#fff; box-shadow:0 4px 14px rgba(249,115,22,.3); }
.tbc-btn--copper:hover { background:var(--orange-dk); }

.tbc-link-arrow { font-family:var(--font-mono); font-size:.82rem; color:var(--sky-dk); display:inline-flex; gap:.25em; border-bottom:1px solid transparent; transition:border-color .15s; }
.tbc-link-arrow:hover { border-color:currentColor; }
.tbc-link-arrow--light { color:var(--sky-lite); }

/* ---------- WhatsApp button ---------- */
.tbc-wa-btn {
  display:inline-flex; align-items:center; gap:.5em;
  background:#25D366; color:#fff; border-radius:50px;
  padding:.7em 1.4em; font-weight:600; font-size:.9rem;
  transition:background .15s ease, transform .15s ease;
}
.tbc-wa-btn:hover { background:#128C7E; transform:translateY(-2px); }
.tbc-wa-btn svg { flex-shrink:0; }

/* ---------- Header ---------- */
.tbc-header {
  position:sticky; top:0; z-index:100; background:#fff;
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.tbc-header__inner {
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 24px; gap:20px; max-width:var(--max); margin:0 auto;
}
.tbc-brand { display:flex; align-items:center; gap:10px; color:var(--dark); }
.tbc-brand__logo, .custom-logo { max-height:48px; width:auto; }
.tbc-brand__text { display:flex; flex-direction:column; line-height:1.1; }
.tbc-brand__name { font-family:var(--font-display); font-weight:700; font-size:1.1rem; color:var(--sky-xdk); }
.tbc-brand__sub { font-family:var(--font-mono); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }

/* Header contact actions */
.tbc-header__actions { display:none; align-items:center; gap:8px; }
@media (min-width:880px) { .tbc-header__actions { display:flex; } }
.tbc-header__phone {
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--font-mono); font-size:.78rem; color:var(--sky-dk);
  background:var(--sky-bg); border-radius:50px; padding:.45em 1em;
  border:1px solid var(--sky-lite); transition:background .15s;
}
.tbc-header__phone:hover { background:var(--sky-lite); }
.tbc-header__wa {
  display:inline-flex; align-items:center; gap:5px;
  background:#25D366; color:#fff; border-radius:50px;
  padding:.45em 1em; font-size:.78rem; font-weight:600;
  transition:background .15s;
}
.tbc-header__wa:hover { background:#128C7E; }

/* Mobile burger */
.tbc-burger { display:flex; flex-direction:column; gap:4px; align-items:flex-end; background:none; border:none; padding:6px 2px; }
.tbc-burger span { display:block; width:24px; height:2px; background:var(--dark); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
.tbc-burger__label { display:none; }
.tbc-burger[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.tbc-burger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.tbc-burger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* Nav */
.tbc-nav { display:none; }
.tbc-nav.is-open {
  display:block; position:absolute; top:100%; left:0; right:0;
  background:#fff; border-bottom:1px solid var(--border);
  padding:8px 24px 20px; box-shadow:var(--shadow-md);
}
.tbc-nav__list { display:flex; flex-direction:column; gap:2px; }
.tbc-nav__list a {
  display:block; padding:10px 8px; font-family:var(--font-display); font-weight:600;
  font-size:.95rem; color:var(--body); border-bottom:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.tbc-nav__list a.is-current, .tbc-nav__list a:hover { color:var(--sky-dk); background:var(--sky-bg); }
@media (min-width:880px) {
  .tbc-burger { display:none; }
  .tbc-nav { display:flex!important; align-items:center; gap:4px; position:static; background:none; border:none; padding:0; box-shadow:none; }
  .tbc-nav__list { flex-direction:row; gap:2px; flex-wrap:wrap; }
  .tbc-nav__list a { padding:.4em .7em; border-bottom:none; font-size:.85rem; border-radius:var(--radius-sm); }
  .tbc-nav__list a:hover { background:var(--sky-bg); color:var(--sky-dk); }
  .tbc-nav__list a.is-current { background:var(--sky-bg); color:var(--sky-dk); font-weight:700; }
}

/* ---------- Hero ---------- */
.tbc-hero {
  position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--dark) 0%, #0D4C7A 60%, #0B3D6B 100%);
  padding:96px 0 104px;
}
.tbc-hero__grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(14,165,233,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14,165,233,.12) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 80% 80% at 50% 30%, black 40%, transparent 85%);
}
.tbc-hero__blob {
  position:absolute; top:-80px; right:-80px;
  width:480px; height:480px; border-radius:50%;
  background:radial-gradient(circle, rgba(14,165,233,.25) 0%, transparent 70%);
  pointer-events:none;
}
.tbc-hero__inner { position:relative; z-index:2; max-width:760px; }
.tbc-hero__title { color:#fff; font-size:clamp(2rem,1.3rem + 3.5vw,3.6rem); }
.tbc-hero__title span { color:var(--sky-lite); }
.tbc-hero__lede { color:rgba(255,255,255,.8); font-size:1.1rem; max-width:580px; }
.tbc-hero__actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.tbc-hero__trust { display:flex; align-items:center; gap:10px; margin-top:28px; }
.tbc-hero__trust-text { font-family:var(--font-mono); font-size:.75rem; color:rgba(255,255,255,.5); letter-spacing:.06em; text-transform:uppercase; }
.tbc-hero__trust-badge { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:50px; padding:.3em .9em; font-size:.75rem; color:rgba(255,255,255,.8); font-family:var(--font-mono); }

/* ---------- Photo ticker ---------- */
.tbc-ticker-wrap { background:var(--dark); padding:0; overflow:hidden; }
.tbc-ticker { overflow:hidden; padding:14px 0; }
.tbc-ticker__track {
  display:flex; gap:14px; width:max-content;
  animation:tbc-ticker 40s linear infinite; will-change:transform;
}
.tbc-ticker-wrap:hover .tbc-ticker__track,
.tbc-ticker-wrap:focus-within .tbc-ticker__track { animation-play-state:paused; }
@keyframes tbc-ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-33.333%)} }
@media (prefers-reduced-motion:reduce) {
  .tbc-ticker__track { animation:none; overflow-x:auto; width:100%; }
}
.tbc-ticker__item { display:block; flex-shrink:0; border-radius:var(--radius-sm); overflow:hidden; }
.tbc-ticker__item img {
  height:180px; width:auto; max-width:280px; object-fit:cover; display:block;
  filter:brightness(.85) saturate(.9); border-radius:var(--radius-sm);
  transition:filter .2s;
}
.tbc-ticker__item:hover img { filter:brightness(1) saturate(1); }
.tbc-ticker__cta {
  display:block; text-align:center; padding:8px 24px 14px;
  font-family:var(--font-mono); font-size:.75rem; color:rgba(255,255,255,.4);
  letter-spacing:.06em; transition:color .15s;
}
.tbc-ticker__cta:hover { color:#fff; }

/* ---------- Sections ---------- */
.tbc-section { padding:80px 0; }
.tbc-section--sky { background:var(--sky-bg); }
.tbc-section--dark { background:var(--dark); color:#fff; }
.tbc-section--alt { background:var(--bg-alt); }
.tbc-section--ink { background:var(--dark); color:#fff; } /* legacy alias */

/* ---------- Services / circuit grid ---------- */
.tbc-circuit {
  display:grid; gap:20px; margin-top:48px;
  grid-template-columns:1fr;
}
@media (min-width:600px) { .tbc-circuit { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-circuit { grid-template-columns:repeat(4,1fr); } }

.tbc-node {
  background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:26px 22px;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative; overflow:hidden;
}
.tbc-node::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--sky), var(--orange));
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease;
}
.tbc-node:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg);
  border-color:var(--sky-lite);
}
.tbc-node:hover::before { transform:scaleX(1); }
.tbc-node__icon { color:var(--sky-dk); display:inline-flex; margin-bottom:14px; }
.tbc-node__title { font-size:1.05rem; color:var(--dark); margin-bottom:8px; }
.tbc-node__text { font-size:.9rem; color:var(--muted); margin:0; }

/* ---------- Why Choose Us ---------- */
.tbc-why__grid { display:grid; gap:18px; margin-top:44px; grid-template-columns:1fr; }
@media (min-width:600px) { .tbc-why__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-why__grid { grid-template-columns:repeat(3,1fr); } }
.tbc-why__card {
  background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  padding:24px 22px; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative; overflow:hidden;
}
.tbc-why__card::after {
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--sky), var(--orange));
  transform:scaleY(0); transform-origin:top; transition:transform .3s ease;
}
.tbc-why__card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--sky-lite); }
.tbc-why__card:hover::after { transform:scaleY(1); }
.tbc-why__mark { font-size:1.4rem; display:inline-block; margin-bottom:10px; }
.tbc-why__title { font-size:1rem; color:var(--dark); margin-bottom:8px; }
.tbc-why__text { font-size:.88rem; color:var(--muted); margin:0; }

/* ---------- Partners (scroll-animated) ---------- */
.tbc-partners__group-label { margin-top:44px; }
.tbc-partners__grid {
  display:grid; gap:16px; margin-top:16px;
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:640px) { .tbc-partners__grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:980px) { .tbc-partners__grid { grid-template-columns:repeat(6,1fr); } }
.tbc-partners__grid--orgs { grid-template-columns:repeat(2,1fr); }
@media (min-width:640px) { .tbc-partners__grid--orgs { grid-template-columns:repeat(3,1fr); } }
.tbc-partner {
  background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  padding:18px 14px; text-align:center; display:flex; flex-direction:column;
  align-items:center; gap:8px; box-shadow:var(--shadow-sm);
  opacity:0; transform:translateY(24px);
  transition:opacity .5s ease, transform .5s ease, border-color .2s, box-shadow .2s;
}
.tbc-partner.is-visible { opacity:1; transform:translateY(0); }
.tbc-partner:hover { border-color:var(--sky-lite); box-shadow:var(--shadow-md); }
.tbc-partner img { max-height:54px; width:auto; max-width:100%; object-fit:contain; }
.tbc-partner--wide img { max-height:38px; }
.tbc-partner__name { font-size:.78rem; font-weight:600; color:var(--dark); margin:4px 0 0; line-height:1.25; }
.tbc-partner__place { font-size:.7rem; color:var(--muted); margin:0; }

/* ---------- About teaser ---------- */
.tbc-about-teaser__grid { display:grid; gap:48px; align-items:center; grid-template-columns:1fr; }
@media (min-width:880px) { .tbc-about-teaser__grid { grid-template-columns:1.1fr .9fr; } }
.tbc-about-teaser__copy p { color:var(--muted); max-width:480px; }
.tbc-about-teaser__photo { max-width:340px; margin:0 auto; }
.tbc-about-teaser__photo img { width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-lg); }

/* ---------- Elsewhere / Proof of work ---------- */
.tbc-elsewhere__grid { display:grid; gap:18px; margin-top:36px; grid-template-columns:1fr; }
@media (min-width:680px) { .tbc-elsewhere__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px) { .tbc-elsewhere__grid { grid-template-columns:repeat(3,1fr); } }
.tbc-elsewhere__card {
  display:block; background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:24px; box-shadow:var(--shadow-sm);
  transition:border-color .15s, transform .2s, box-shadow .2s;
}
.tbc-elsewhere__card:hover { border-color:var(--sky); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.tbc-elsewhere__card h3 { color:var(--dark); font-size:1.1rem; margin:8px 0 10px; }
.tbc-elsewhere__card p { color:var(--muted); margin:0 0 14px; font-size:.88rem; }
.tbc-elsewhere__card--dark { background:var(--dark-card); border-color:rgba(255,255,255,.1); }
.tbc-elsewhere__card--dark .tbc-eyebrow { color:var(--sky-lite); }
.tbc-elsewhere__card--dark h3 { color:#fff; }
.tbc-elsewhere__card--dark:hover { border-color:var(--sky); }

/* ---------- CTA band ---------- */
.tbc-cta {
  background:linear-gradient(135deg, var(--sky-dk) 0%, var(--sky-xdk) 100%);
  padding:72px 0; text-align:center;
}
.tbc-cta__inner { max-width:580px; margin:0 auto; }
.tbc-cta .tbc-h2 { color:#fff; }
.tbc-cta__inner p { color:rgba(255,255,255,.8); margin-bottom:28px; }
.tbc-cta__actions { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }

/* ---------- Testimonials ---------- */
.tbc-testimonials__grid { display:grid; gap:20px; margin-top:44px; grid-template-columns:1fr; }
@media (min-width:720px) { .tbc-testimonials__grid { grid-template-columns:repeat(2,1fr); } }
.tbc-testimonial {
  background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  padding:28px; margin:0; box-shadow:var(--shadow-sm);
  transition:box-shadow .2s, transform .2s;
}
.tbc-testimonial:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.tbc-testimonial__stars { color:var(--orange); font-size:1rem; letter-spacing:.06em; margin-bottom:14px; }
.tbc-testimonial blockquote { margin:0 0 18px; }
.tbc-testimonial blockquote p { color:var(--body); font-size:.93rem; margin:0; }
.tbc-testimonial figcaption { display:flex; flex-direction:column; border-top:1px solid var(--border); padding-top:14px; }
.tbc-testimonial__name { font-family:var(--font-display); font-weight:700; color:var(--dark); font-size:.95rem; }
.tbc-testimonial__role { font-family:var(--font-mono); font-size:.75rem; color:var(--muted); }

/* ---------- Portfolio archive ---------- */
.tbc-portfolio-grid { display:grid; gap:22px; grid-template-columns:1fr; }
@media (min-width:640px) { .tbc-portfolio-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:980px) { .tbc-portfolio-grid { grid-template-columns:repeat(3,1fr); } }
.tbc-portfolio-card {
  display:block; background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.tbc-portfolio-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sky); }
.tbc-portfolio-card__media { aspect-ratio:4/3; background:var(--sky-bg); overflow:hidden; }
.tbc-portfolio-card__media img,.tbc-portfolio-card__motif svg { width:100%; height:100%; object-fit:cover; display:block; }
.tbc-portfolio-card__body { padding:18px 20px 22px; }
.tbc-portfolio-card__body h2 { font-size:1.05rem; color:var(--dark); margin:6px 0 8px; }
.tbc-portfolio-card__body p { font-size:.88rem; color:var(--muted); margin:0; }

/* ---------- Programs section (homepage) ---------- */
.tbc-programs__grid { display:grid; gap:20px; margin-top:40px; grid-template-columns:1fr; }
@media (min-width:720px) { .tbc-programs__grid { grid-template-columns:repeat(3,1fr); } }
.tbc-program-card {
  display:block; background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.tbc-program-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sky); }
.tbc-program-card__motif { aspect-ratio:16/10; background:var(--sky-bg); overflow:hidden; }
.tbc-program-card__motif svg,.tbc-program-card__motif img { width:100%; height:100%; object-fit:cover; display:block; }
.tbc-program-card h3 { font-size:.98rem; color:var(--dark); margin:10px 18px 8px; }
.tbc-program-card p { font-size:.85rem; color:var(--muted); margin:0 18px 20px; }

/* ---------- Portfolio single / carousel ---------- */
.tbc-section--portfolio-single { padding-top:44px; }
.tbc-portfolio-hero-img { margin-bottom:40px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md); }
.tbc-portfolio-hero-img img { width:100%; max-height:520px; object-fit:cover; display:block; }
.tbc-gallery-carousel {
  position:relative; margin-bottom:44px; border-radius:var(--radius);
  overflow:hidden; background:var(--dark); user-select:none;
  box-shadow:var(--shadow-lg);
}
.tbc-gallery-carousel__track { display:flex; transition:transform .45s cubic-bezier(.4,0,.2,1); will-change:transform; }
.tbc-gallery-carousel__slide { flex:0 0 100%; margin:0; padding:0; }
.tbc-gallery-carousel__slide img { width:100%; max-height:520px; object-fit:cover; display:block; }
.tbc-gallery-carousel__controls {
  position:absolute; bottom:0; left:0; right:0;
  display:flex; align-items:center; justify-content:center; gap:12px; padding:14px;
  background:linear-gradient(to top,rgba(15,23,42,.85) 0%,transparent 100%);
}
.tbc-carousel-btn {
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:#fff;
  border-radius:50%; width:38px; height:38px; font-size:1.4rem; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .15s; flex-shrink:0;
}
.tbc-carousel-btn:hover { background:rgba(249,115,22,.7); border-color:var(--orange); }
.tbc-carousel-btn:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.tbc-carousel-dots { display:flex; gap:6px; flex-wrap:wrap; justify-content:center; }
.tbc-carousel-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.35); border:none; padding:0; cursor:pointer; transition:background .2s, transform .2s; }
.tbc-carousel-dot.is-active { background:var(--orange); transform:scale(1.3); }
.tbc-carousel-dot:focus-visible { outline:2px solid var(--orange); outline-offset:3px; }
.tbc-carousel-counter { position:absolute; top:14px; right:16px; font-family:var(--font-mono); font-size:.72rem; color:rgba(255,255,255,.7); margin:0; background:rgba(15,23,42,.5); padding:2px 8px; border-radius:20px; }
.tbc-portfolio-content { max-width:720px; margin-top:36px; }
.tbc-portfolio-content p { color:var(--body); }
.tbc-portfolio-content .wp-block-gallery { display:none; }
.tbc-portfolio-video { margin:30px 0; }
.tbc-portfolio-video iframe { width:100%; aspect-ratio:16/9; border:0; border-radius:var(--radius-sm); }

/* ---------- Team page ---------- */
.tbc-team-grid { display:grid; gap:24px; margin-top:44px; grid-template-columns:1fr; }
@media (min-width:560px) { .tbc-team-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:860px) { .tbc-team-grid { grid-template-columns:repeat(3,1fr); } }
.tbc-team-card {
  background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-sm); text-align:center;
  transition:transform .2s, box-shadow .2s;
}
.tbc-team-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.tbc-team-card__photo { aspect-ratio:1; background:var(--sky-bg); overflow:hidden; }
.tbc-team-card__photo img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(10%); transition:filter .3s; }
.tbc-team-card:hover .tbc-team-card__photo img { filter:grayscale(0); }
.tbc-team-card__body { padding:20px 18px 22px; }
.tbc-team-card__name { font-size:1.05rem; color:var(--dark); margin-bottom:4px; }
.tbc-team-card__role { font-family:var(--font-mono); font-size:.75rem; color:var(--sky-dk); display:block; margin-bottom:10px; letter-spacing:.04em; }
.tbc-team-card__expertise { font-size:.82rem; color:var(--muted); margin-bottom:14px; }
.tbc-team-card__bio { font-size:.85rem; color:var(--body); margin-bottom:16px; text-align:left; }
.tbc-team-card__links { display:flex; gap:8px; justify-content:center; }
.tbc-team-card__links a { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:var(--sky-bg); color:var(--sky-dk); border:1px solid var(--sky-lite); transition:background .15s; }
.tbc-team-card__links a:hover { background:var(--sky); color:#fff; }
.tbc-team-card--placeholder .tbc-team-card__photo { display:flex; align-items:center; justify-content:center; }
.tbc-team-card--placeholder .tbc-team-placeholder-icon { font-size:3rem; opacity:.3; }

/* ---------- Tools / Proof of Work page ---------- */
.tbc-tools-grid { display:grid; gap:20px; margin-top:40px; grid-template-columns:1fr; }
@media (min-width:600px) { .tbc-tools-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-tools-grid { grid-template-columns:repeat(3,1fr); } }
.tbc-tool-card {
  display:flex; flex-direction:column; background:var(--white);
  border:1.5px solid var(--border); border-radius:var(--radius); padding:26px 22px;
  box-shadow:var(--shadow-sm); transition:transform .2s, box-shadow .2s, border-color .2s;
}
.tbc-tool-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sky); }
.tbc-tool-card__icon { width:44px; height:44px; border-radius:var(--radius-sm); background:var(--sky-bg); display:flex; align-items:center; justify-content:center; color:var(--sky-dk); margin-bottom:16px; font-size:1.4rem; }
.tbc-tool-card h3 { font-size:1.05rem; color:var(--dark); margin-bottom:8px; }
.tbc-tool-card p { font-size:.88rem; color:var(--muted); margin:0 0 20px; flex:1; }
.tbc-tool-card .tbc-link-arrow { margin-top:auto; }

/* ---------- About page ---------- */
.tbc-about-grid { display:grid; gap:50px; grid-template-columns:1fr; }
@media (min-width:880px) { .tbc-about-grid { grid-template-columns:1fr 1fr; } }
.tbc-about-grid p { color:var(--muted); }
.tbc-about-grid--with-photo { align-items:center; }
.tbc-about-photo img { border-radius:var(--radius); width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:var(--shadow-lg); }
.tbc-mission { border-left:3px solid var(--sky); padding-left:18px; margin-top:22px!important; font-family:var(--font-display); font-size:1.05rem; color:var(--dark)!important; font-weight:600; }
.tbc-steps { display:grid; gap:24px; margin-top:40px; grid-template-columns:1fr; }
@media (min-width:600px) { .tbc-steps { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-steps { grid-template-columns:repeat(4,1fr); } }
.tbc-steps__item { border-top:3px solid var(--sky); padding-top:16px; }
.tbc-steps__n { font-family:var(--font-mono); color:var(--sky); font-size:.82rem; }
.tbc-steps__item h3 { color:var(--dark); font-size:1.02rem; margin:6px 0 8px; }
.tbc-steps__item p { color:var(--muted); font-size:.9rem; margin:0; }

/* ---------- Services page ---------- */
.tbc-service-list { padding-top:56px; }
.tbc-service-row { display:grid; gap:24px; grid-template-columns:1fr; padding:36px 0; border-bottom:1.5px solid var(--border); }
.tbc-service-row:first-child { padding-top:0; }
@media (min-width:760px) { .tbc-service-row { grid-template-columns:140px 1fr; } }
.tbc-service-row__id { display:flex; flex-direction:row; align-items:center; gap:12px; }
@media (min-width:760px) { .tbc-service-row__id { flex-direction:column; align-items:flex-start; gap:8px; } }
.tbc-service-row__id .tbc-node__icon { margin:0; }
.tbc-service-row__body h2 { color:var(--dark); font-size:1.35rem; margin-bottom:10px; }
.tbc-service-row__text { color:var(--muted); max-width:640px; margin:0 0 22px; }
.tbc-service-row__meta { display:grid; gap:20px; grid-template-columns:1fr; max-width:640px; }
@media (min-width:540px) { .tbc-service-row__meta { grid-template-columns:1fr 1fr; } }
.tbc-service-row__meta ul { display:flex; flex-direction:column; gap:6px; }
.tbc-service-row__meta li { font-size:.88rem; color:var(--body); padding-left:14px; position:relative; }
.tbc-service-row__meta li::before { content:''; position:absolute; left:0; top:.58em; width:6px; height:1.5px; background:var(--sky); }

/* Curriculum cards */
.tbc-curriculum__grid { display:grid; gap:18px; margin-top:40px; grid-template-columns:1fr; }
@media (min-width:600px) { .tbc-curriculum__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-curriculum__grid { grid-template-columns:repeat(3,1fr); } }
.tbc-curriculum__card {
  display:block; background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:22px 20px; box-shadow:var(--shadow-sm);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.tbc-curriculum__card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--sky); }
.tbc-curriculum__card h3 { font-size:1.05rem; color:var(--dark); margin:4px 0 10px; }
.tbc-curriculum__card p:not(.tbc-eyebrow) { font-size:.88rem; color:var(--muted); margin:0 0 16px; }
.tbc-curriculum__card--wip { background:var(--bg-alt); }
.tbc-curriculum__card--wip h3 { color:var(--muted); }

/* ---------- Contact page ---------- */
.tbc-contact-wrap { display:grid; gap:44px; grid-template-columns:1fr; }
@media (min-width:900px) { .tbc-contact-wrap { grid-template-columns:.85fr 1.15fr; } }

.tbc-contact-cards { display:flex; flex-direction:column; gap:14px; }
.tbc-contact-card {
  display:flex; align-items:flex-start; gap:16px;
  background:var(--white); border:1.5px solid var(--border);
  border-radius:var(--radius); padding:20px;
  box-shadow:var(--shadow-sm); transition:box-shadow .2s, transform .2s;
}
.tbc-contact-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.tbc-contact-card__icon {
  width:44px; height:44px; flex-shrink:0;
  background:var(--sky-bg); border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  color:var(--sky-dk); font-size:1.2rem;
}
.tbc-contact-card__icon--green { background:var(--success-bg); color:#16a34a; }
.tbc-contact-card__icon--orange { background:var(--orange-bg); color:var(--orange-dk); }
.tbc-contact-card__body { flex:1; min-width:0; }
.tbc-contact-card__label { font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); display:block; margin-bottom:4px; }
.tbc-contact-card__value { font-weight:600; color:var(--dark); word-break:break-all; }
.tbc-contact-card__sub { font-size:.8rem; color:var(--muted); display:block; margin-top:4px; }
.tbc-contact-card__value a { color:inherit; }
.tbc-contact-card__value a:hover { color:var(--sky-dk); }

/* Contact form */
.tbc-form-card { background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow-md); }
.tbc-form-card h3 { font-size:1.2rem; color:var(--dark); margin-bottom:6px; }
.tbc-form-card .tbc-form-subtitle { color:var(--muted); font-size:.9rem; margin-bottom:24px; }
.tbc-form__hp { position:absolute; left:-9999px; }
.tbc-form__row { margin-bottom:18px; display:flex; flex-direction:column; gap:6px; }
.tbc-form__row--split { display:grid; gap:18px; grid-template-columns:1fr; }
@media (min-width:480px) { .tbc-form__row--split { grid-template-columns:1fr 1fr; } }
.tbc-form label { font-family:var(--font-mono); font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:500; }
.tbc-form label span { text-transform:none; letter-spacing:0; font-weight:400; }
.tbc-form input,.tbc-form select,.tbc-form textarea {
  font-family:var(--font-body); font-size:.95rem;
  padding:.7em .9em; border:1.5px solid var(--border); border-radius:var(--radius-sm);
  background:var(--white); color:var(--dark); width:100%;
  transition:border-color .15s, box-shadow .15s;
}
.tbc-form input:focus,.tbc-form select:focus,.tbc-form textarea:focus {
  border-color:var(--sky); box-shadow:0 0 0 3px rgba(14,165,233,.1); outline:none;
}
.tbc-form input[type="file"] { padding:.5em; background:var(--bg-alt); }
.tbc-form-notice { padding:14px 16px; border-radius:var(--radius-sm); margin-bottom:22px; font-size:.9rem; }
.tbc-form-notice--ok { background:var(--success-bg); border:1.5px solid var(--success); color:#14532d; }
.tbc-form-notice--error { background:var(--orange-bg); border:1.5px solid var(--orange); color:var(--orange-dk); }

/* WhatsApp CTA strip below contact form */
.tbc-contact-wa { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }

/* ---------- Careers page ---------- */
.tbc-careers-why { display:grid; gap:16px; margin-top:32px; grid-template-columns:1fr; }
@media (min-width:600px) { .tbc-careers-why { grid-template-columns:repeat(2,1fr); } }
.tbc-careers-why__item { display:flex; gap:12px; align-items:flex-start; }
.tbc-careers-why__dot { width:8px; height:8px; border-radius:50%; background:var(--sky); flex-shrink:0; margin-top:.55em; }

/* ---------- FAQ ---------- */
.tbc-faq { max-width:760px; }
.tbc-faq__item { border-top:1.5px solid var(--border); padding:20px 0; }
.tbc-faq__item:last-child { border-bottom:1.5px solid var(--border); }
.tbc-faq__q {
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;
  color:var(--dark); cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.tbc-faq__q::-webkit-details-marker { display:none; }
.tbc-faq__q::after { content:'+'; font-family:var(--font-mono); font-size:1.4rem; color:var(--sky); flex-shrink:0; transition:transform .15s; }
.tbc-faq__item[open] .tbc-faq__q::after { transform:rotate(45deg); }
.tbc-faq__a { color:var(--muted); margin:14px 0 0; max-width:620px; }
.tbc-faq__a p { margin:0; }

/* ---------- Blog ---------- */
.tbc-archive__item { padding:30px 0; border-bottom:1.5px solid var(--border); }
.tbc-archive__item h2 a { color:var(--dark); transition:color .15s; }
.tbc-archive__item h2 a:hover { color:var(--sky-dk); }
.tbc-archive__item p { color:var(--muted); }
.tbc-archive__item h2 { font-size:1.4rem; }
.tbc-archive__thumb { border-radius:var(--radius-sm); overflow:hidden; margin-bottom:16px; aspect-ratio:16/9; background:var(--sky-bg); }
.tbc-archive__thumb img { width:100%; height:100%; object-fit:cover; }
.tbc-blog-grid { display:grid; gap:24px; grid-template-columns:1fr; }
@media (min-width:640px) { .tbc-blog-grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .tbc-blog-grid { grid-template-columns:repeat(3,1fr); } }
.tbc-blog-card {
  background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-sm); display:flex; flex-direction:column;
  transition:transform .2s, box-shadow .2s;
}
.tbc-blog-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.tbc-blog-card__thumb { aspect-ratio:16/9; background:var(--sky-bg); overflow:hidden; }
.tbc-blog-card__thumb img { width:100%; height:100%; object-fit:cover; }
.tbc-blog-card__body { padding:20px; flex:1; display:flex; flex-direction:column; }
.tbc-blog-card__body h3 { font-size:1rem; color:var(--dark); margin-bottom:8px; }
.tbc-blog-card__body p { font-size:.86rem; color:var(--muted); flex:1; margin-bottom:14px; }

/* ---------- Generic page / prose ---------- */
.tbc-prose { max-width:740px; }
.tbc-prose p { color:var(--body); }
.tbc-prose__thumb { margin-bottom:28px; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-md); }
.tbc-prose h2,.tbc-prose h3 { color:var(--dark); }
.tbc-prose a { color:var(--sky-dk); text-decoration:underline; }

/* ---------- Page hero ---------- */
.tbc-page-hero {
  background:linear-gradient(135deg, var(--dark) 0%, #0D4C7A 100%);
  padding:64px 0 56px;
}
.tbc-page-hero__title { color:#fff; font-size:clamp(1.9rem,1.4rem + 2vw,2.8rem); }
.tbc-page-hero__lede { color:rgba(255,255,255,.75); max-width:580px; margin:0; }

/* ---------- Social / footer ---------- */
.tbc-footer { background:var(--dark); color:rgba(255,255,255,.7); padding:64px 0 28px; }
.tbc-footer__grid { display:grid; gap:36px; grid-template-columns:1fr; }
@media (min-width:720px) { .tbc-footer__grid { grid-template-columns:1.4fr 1fr 1fr 1fr; } }
.tbc-footer__logo { margin-bottom:14px; filter:brightness(1.2); }
.tbc-footer__name { font-family:var(--font-display); font-weight:700; color:#fff; font-size:1.1rem; margin:0 0 8px; }
.tbc-footer__tagline { max-width:300px; margin:0 0 14px; font-size:.9rem; }
.tbc-footer__addr { font-size:.85rem; color:rgba(255,255,255,.45); margin:0; }
.tbc-footer__heading { margin-bottom:14px; color:rgba(255,255,255,.5); }
.tbc-footer__list li { margin-bottom:10px; font-size:.88rem; }
.tbc-footer__list a { color:rgba(255,255,255,.6); transition:color .15s; }
.tbc-footer__list a:hover { color:#fff; }
.tbc-footer__bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:48px; padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:.8rem; color:rgba(255,255,255,.35); }
.tbc-social { display:flex; gap:8px; margin-top:18px; flex-wrap:wrap; }
.tbc-social a {
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.6);
  transition:border-color .15s, color .15s, background .15s;
}
.tbc-social a:hover { border-color:var(--sky); color:#fff; background:var(--sky-dk); }

/* ---------- 404 ---------- */
.tbc-404-links { display:flex; flex-wrap:wrap; gap:14px; }

/* ---------- Scroll animations ---------- */
.tbc-fade-up { opacity:0; transform:translateY(30px); transition:opacity .6s ease, transform .6s ease; }
.tbc-fade-up.is-visible { opacity:1; transform:translateY(0); }
/* Stagger delay for grid children */
.tbc-stagger > *:nth-child(1) { transition-delay:.05s; }
.tbc-stagger > *:nth-child(2) { transition-delay:.1s; }
.tbc-stagger > *:nth-child(3) { transition-delay:.15s; }
.tbc-stagger > *:nth-child(4) { transition-delay:.2s; }
.tbc-stagger > *:nth-child(5) { transition-delay:.25s; }
.tbc-stagger > *:nth-child(6) { transition-delay:.3s; }

/* Utilities */
.tbc-text-center { text-align:center; }
.tbc-mt-sm { margin-top:16px; }
.tbc-mt { margin-top:32px; }

/* ── Service node as anchor ─────────────── */
a.tbc-node { color:inherit; display:block; }
a.tbc-node:hover .tbc-node__title { color:var(--sky-dk); }

/* ── Remove stale node head / code dot ─── */
.tbc-node__head, .tbc-node__code, .tbc-node__dot { display:none; }
