/* Türkmen Mekanik — public theme (Next.js tasarım token’larıyla hizalı) */
:root {
  --brand: #c8102e;
  --brand-deep: #8e0b21;
  --brand-soft: rgba(200, 16, 46, 0.08);
  --steel: #12172a;
  --steel-soft: #1e2438;
  --mist: #eef1f6;
  --mist-deep: #dde3ec;
  --ink: #10131c;
  --muted: #5a6377;
  --surface: #ffffff;
  --line: rgba(18, 23, 42, 0.1);
  --line-strong: rgba(18, 23, 42, 0.18);
  --font-sans: "DM Sans", system-ui, sans-serif;
  --font-display: "Barlow Condensed", "Barlow", system-ui, sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--mist);
  color: var(--ink);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }

.tm-page { min-height: 100vh; display: flex; flex-direction: column; }
.tm-main { flex: 1; }

.container-page {
  width: min(1240px, calc(100% - 2.5rem));
  margin-inline: auto;
}

.section-pad { padding-block: clamp(4rem, 9vw, 7.5rem); }

.font-display {
  font-family: var(--font-display);
  letter-spacing: 0.01em;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--brand);
}
.eyebrow::before {
  content: "";
  width: 1.75rem;
  height: 1px;
  background: currentColor;
}
.eyebrow-light { color: rgba(255, 255, 255, 0.6); }

.title-lg {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1;
  font-size: clamp(2rem, 4.2vw, 3.4rem);
  margin: 0;
  color: var(--steel);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.95rem 1.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 0;
  cursor: pointer;
  transition: background-color .25s, color .25s, border-color .25s;
}
.btn-primary { background: var(--brand); color: #fff; }
.btn-primary:hover { background: var(--brand-deep); }
.btn-outline-light { border: 1px solid rgba(255,255,255,.35); color: #fff; background: transparent; }
.btn-outline-light:hover { background: rgba(255,255,255,.1); }
.btn-outline-dark { border: 1px solid var(--line-strong); color: var(--steel); background: transparent; }
.btn-outline-dark:hover { border-color: var(--brand); color: var(--brand); }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .875rem;
  font-weight: 600;
  color: var(--brand);
}
.link-arrow:hover { gap: .8rem; color: var(--brand-deep); }

.texture-grid {
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
}

/* ——— Header ——— */
.tm-topbar {
  background: var(--steel);
  color: rgba(255,255,255,.75);
  font-size: .78rem;
}
.tm-topbar .container-page {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
  justify-content: space-between;
  align-items: center;
  padding-block: .55rem;
}
.tm-topbar a:hover { color: #fff; }
.tm-topbar-brands { display: flex; gap: 1rem; flex-wrap: wrap; }

.tm-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(238, 241, 246, .92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.tm-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding-block: .9rem;
}
.tm-logo {
  display: flex;
  align-items: center;
  gap: .75rem;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.35rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--steel);
}
.tm-logo img { height: 48px; width: auto; max-width: min(220px, 52vw); object-fit: contain; }
.tm-nav {
  display: none;
  align-items: center;
  gap: .15rem;
}
.tm-nav a {
  padding: .55rem .85rem;
  font-size: .86rem;
  font-weight: 600;
  color: var(--steel);
}
.tm-nav a:hover,
.tm-nav li.active > a { color: var(--brand); }
.tm-nav .submenu {
  display: none;
  position: absolute;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 12px 40px rgba(18,23,42,.12);
  padding: .4rem 0;
}
.tm-nav li { position: relative; }
.tm-nav li:hover > .submenu { display: block; }
.tm-nav .submenu a {
  display: block;
  padding: .55rem 1rem;
  font-size: .84rem;
  font-weight: 500;
  color: var(--muted);
}
.tm-nav .submenu a:hover { color: var(--brand); background: var(--mist); }
.tm-header-cta { display: none; }
.tm-burger {
  width: 44px; height: 44px;
  border: 1px solid var(--line-strong);
  background: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: border-color .2s, background .2s;
}
.tm-burger:hover { border-color: var(--brand); }
.tm-burger span,
.tm-burger span::before,
.tm-burger span::after {
  display: block;
  width: 18px; height: 2px;
  background: var(--steel);
  transition: transform .25s ease, opacity .2s ease, top .25s ease;
}
.tm-burger span { position: relative; }
.tm-burger span::before,
.tm-burger span::after {
  content: "";
  position: absolute;
  left: 0;
}
.tm-burger span::before { top: -6px; }
.tm-burger span::after { top: 6px; }
.tm-burger.is-open span { background: transparent; }
.tm-burger.is-open span::before { top: 0; transform: rotate(45deg); }
.tm-burger.is-open span::after { top: 0; transform: rotate(-45deg); }

@media (min-width: 980px) {
  .tm-nav, .tm-header-cta { display: flex; }
  .tm-burger { display: none; }
  .tm-nav-mobile { display: none !important; }
}

body.tm-nav-open { overflow: hidden; }

.tm-nav-mobile {
  display: none;
  border-top: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(15,39,68,.04), transparent 120px),
    var(--mist);
  max-height: min(78vh, 640px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.tm-nav-mobile.open { display: block; animation: tmNavIn .22s ease; }
@keyframes tmNavIn {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}
.tm-nav-mobile__inner { padding: 1rem 0 1.35rem; }
.tm-mnav {
  display: grid;
  gap: .4rem;
  background: #fff;
  border: 1px solid var(--line);
}
.tm-mnav-item {
  border-bottom: 1px solid var(--line);
}
.tm-mnav-item:last-child { border-bottom: 0; }
.tm-mnav-row {
  display: flex;
  align-items: stretch;
}
.tm-mnav-link {
  flex: 1;
  display: flex;
  align-items: center;
  min-height: 3.15rem;
  padding: .85rem 1rem;
  font-family: var(--font-display);
  font-size: .98rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--steel);
  border: 0 !important;
}
.tm-mnav-item.is-active > .tm-mnav-link,
.tm-mnav-item.is-active > .tm-mnav-row > .tm-mnav-link {
  color: var(--brand);
  box-shadow: inset 3px 0 0 var(--brand);
}
.tm-mnav-toggle {
  width: 3.15rem;
  border: 0;
  border-left: 1px solid var(--line);
  background: var(--mist);
  color: var(--steel);
  cursor: pointer;
}
.tm-mnav-toggle i { transition: transform .2s ease; font-size: .75rem; }
.tm-mnav-item.is-open .tm-mnav-toggle i { transform: rotate(180deg); color: var(--brand); }
.tm-mnav-sub {
  display: none;
  padding: .15rem 0 .55rem;
  background: linear-gradient(90deg, rgba(196,30,58,.05), transparent 55%);
}
.tm-mnav-item.is-open .tm-mnav-sub { display: grid; }
.tm-mnav-sublink {
  display: block;
  padding: .55rem 1rem .55rem 1.35rem;
  margin-left: .75rem;
  border: 0 !important;
  border-left: 2px solid var(--line) !important;
  font-size: .9rem;
  font-weight: 500;
  color: var(--muted);
}
.tm-mnav-sublink:hover,
.tm-mnav-sublink.is-active {
  color: var(--brand);
  border-left-color: var(--brand) !important;
}
.tm-mnav-cta {
  display: grid;
  gap: .55rem;
  margin-top: 1rem;
}
.tm-mnav-cta .btn { width: 100%; }
.tm-mnav-meta {
  margin-top: .9rem;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem 1rem;
  align-items: center;
  justify-content: space-between;
  font-size: .78rem;
  color: var(--muted);
  letter-spacing: .04em;
}
.tm-mnav-meta a { color: var(--steel); font-weight: 600; border: 0 !important; padding: 0 !important; }
.tm-mnav-meta a:hover { color: var(--brand); }

/* ——— Hero ——— */
.tm-hero {
  position: relative;
  min-height: min(94vh, 900px);
  display: flex;
  align-items: center;
  color: #fff;
  background: var(--steel);
  overflow: hidden;
}
.tm-hero__bg {
  position: absolute; inset: 0;
}
.tm-hero__bg img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.tm-hero__shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, var(--steel) 0%, rgba(18,23,42,.88) 42%, rgba(18,23,42,.25) 100%),
    linear-gradient(0deg, var(--steel) 0%, transparent 45%, rgba(18,23,42,.55) 100%);
}
.tm-hero__content {
  position: relative;
  padding: 7rem 0 5rem;
  z-index: 1;
}
.tm-hero h1 {
  margin: 1.25rem 0 0;
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: clamp(3.2rem, 10vw, 5.5rem);
  line-height: .9;
  letter-spacing: .01em;
}
.tm-hero__rule {
  margin-top: 1.75rem;
  width: 6rem;
  height: 1px;
  background: var(--brand);
}
.tm-hero__lead {
  margin-top: 1.75rem;
  max-width: 36rem;
  font-size: clamp(1.1rem, 2vw, 1.25rem);
  font-weight: 500;
  color: rgba(255,255,255,.9);
}
.tm-hero__text {
  margin-top: 1rem;
  max-width: 32rem;
  color: rgba(255,255,255,.65);
}
.tm-hero__actions {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* ——— Cards / grids ——— */
.tm-section-head {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 3rem;
}
@media (min-width: 900px) {
  .tm-section-head {
    flex-direction: row;
    align-items: end;
    justify-content: space-between;
  }
  .tm-section-head p { max-width: 28rem; margin: 0; color: var(--muted); }
}

.tm-brand-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 768px) { .tm-brand-grid { grid-template-columns: repeat(3, 1fr); } }
.tm-brand-card {
  background: #fff;
  border: 1px solid var(--line);
  padding: 1.75rem;
  min-height: 160px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: border-color .25s;
}
.tm-brand-card:hover { border-color: var(--brand); }
.tm-brand-card__logo {
  display: flex;
  align-items: center;
  height: 56px;
  margin-bottom: 1rem;
}
.tm-brand-card__logo img {
  display: block;
  max-height: 48px;
  max-width: 180px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
}
.tm-brand-card span { font-weight: 600; color: var(--steel); font-size: .95rem; }

.tm-stats {
  position: relative;
  background: var(--steel);
  color: #fff;
  overflow: hidden;
}
.tm-stats::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--brand);
}
.tm-stats-grid {
  display: grid;
  gap: 1.75rem 1.25rem;
  padding-block: 3.5rem;
  grid-template-columns: 1fr 1fr;
}
@media (min-width: 1000px) { .tm-stats-grid { grid-template-columns: repeat(4, 1fr); gap: 2rem; } }
.tm-stat-value {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 5vw, 3.75rem);
  font-weight: 600;
  line-height: 1;
}
.tm-stat-label { margin-top: .75rem; font-weight: 500; }
.tm-stat-detail { margin-top: .25rem; font-size: .875rem; color: rgba(255,255,255,.5); }

.tm-service-grid {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .tm-service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tm-service-grid { grid-template-columns: repeat(3, 1fr); } }
.tm-service-card {
  background: #fff;
  padding: 1.75rem;
  display: block;
  min-height: 280px;
  transition: background .25s;
}
.tm-service-card:hover { background: var(--mist); }
.tm-service-card h3 {
  margin: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 1.25rem;
  color: var(--steel);
}
.tm-service-card p { margin: .85rem 0 0; color: var(--muted); font-size: .95rem; }
.tm-service-card img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  margin-bottom: 1.25rem;
}

.tm-steps {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  grid-template-columns: 1fr;
}
@media (min-width: 720px) { .tm-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tm-steps { grid-template-columns: repeat(4, 1fr); } }
.tm-step {
  background: #fff;
  padding: 1.75rem;
  position: relative;
}
.tm-step__n {
  position: absolute;
  right: 1.25rem; top: 1.25rem;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 600;
  color: var(--line-strong);
}
.tm-step h3 {
  margin: 2.5rem 0 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.1rem;
  color: var(--steel);
}
.tm-step p { margin: .75rem 0 0; color: var(--muted); font-size: .9rem; }

.tm-split {
  display: grid;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 960px) { .tm-split { grid-template-columns: 1fr 1fr; } }
.tm-split__media {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--steel);
}
.tm-split__media img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.tm-values { margin-top: 2rem; display: grid; gap: 1.25rem; }
.tm-value { display: flex; gap: 1rem; }
.tm-value strong { display: block; color: var(--steel); }
.tm-value span { display: block; margin-top: .25rem; color: var(--muted); font-size: .9rem; }

.tm-sectors {
  border-block: 1px solid var(--line);
  background: var(--mist);
  padding-block: 2.5rem;
}
.tm-sectors-inner {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 900px) {
  .tm-sectors-inner { flex-direction: row; align-items: center; gap: 3rem; }
}
.tm-sectors ul {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 2rem;
}
.tm-sectors li {
  font-size: .875rem;
  font-weight: 500;
  color: rgba(18,23,42,.7);
}

.tm-project-grid {
  display: grid;
  gap: .75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) { .tm-project-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tm-project-grid { grid-template-columns: repeat(3, 1fr); } }
.tm-project-card {
  position: relative;
  min-height: 280px;
  overflow: hidden;
  color: #fff;
  display: block;
}
.tm-project-card img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.tm-project-card__body {
  position: absolute; inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: end;
  padding: 1.5rem;
  background: linear-gradient(transparent, rgba(18,23,42,.9));
}
.tm-project-card h3 {
  margin: 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.25rem;
}
.tm-project-card p { margin: .35rem 0 0; color: rgba(255,255,255,.65); font-size: .85rem; }

.tm-cta {
  position: relative;
  overflow: hidden;
  color: #fff;
}
.tm-cta__bg {
  position: absolute; inset: 0;
}
.tm-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.tm-cta__shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(200,16,46,.85), rgba(200,16,46,.35), transparent),
    rgba(18,23,42,.92);
}
.tm-cta__inner {
  position: relative;
  padding-block: 4.5rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (min-width: 900px) {
  .tm-cta__inner {
    flex-direction: row;
    align-items: end;
    justify-content: space-between;
  }
}
.tm-cta .title-lg { color: #fff; }
.tm-cta p { color: rgba(255,255,255,.85); max-width: 36rem; }
.tm-cta__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.tm-cta .btn-white { background: #fff; color: var(--steel); }
.tm-cta .btn-white:hover { background: var(--mist); }

/* ——— Page hero ——— */
.tm-page-hero {
  position: relative;
  min-height: 340px;
  display: flex;
  align-items: end;
  color: #fff;
  background: var(--steel);
  overflow: hidden;
}
.tm-page-hero--about { min-height: min(72vh, 640px); }
.tm-page-hero--products { min-height: min(58vh, 520px); }
.tm-page-hero--products h1 {
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height: .95;
}
.tm-page-hero__bg { position: absolute; inset: 0; }
.tm-page-hero__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .45; }
.tm-page-hero__shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(18,23,42,.95) 0%, rgba(18,23,42,.72) 48%, rgba(18,23,42,.35) 100%),
    linear-gradient(0deg, rgba(18,23,42,.95), transparent 55%);
}
.tm-page-hero__content {
  position: relative;
  padding: 5rem 0 2.5rem;
  z-index: 1;
}
.tm-page-hero--about .tm-page-hero__content { padding: 7rem 0 3.5rem; }
.tm-page-hero h1 {
  margin: .75rem 0 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  line-height: 1;
}
.tm-page-hero--about h1 {
  font-size: clamp(3rem, 9vw, 5.25rem);
  line-height: .9;
  letter-spacing: .01em;
}
.tm-page-hero p { margin: 1rem 0 0; max-width: 40rem; color: rgba(255,255,255,.7); }
.tm-page-hero__lead {
  margin-top: 1.5rem !important;
  max-width: 34rem !important;
  font-size: 1.125rem;
  line-height: 1.65;
  color: rgba(255,255,255,.72) !important;
}
.tm-page-hero__meta {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.5rem;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.tm-page-hero__meta span { position: relative; }
.tm-page-hero__meta span:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -.85rem;
  top: 50%;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--brand);
  transform: translateY(-50%);
}
.tm-crumbs {
  display: flex; flex-wrap: wrap; gap: .5rem;
  font-size: .8rem; color: rgba(255,255,255,.55);
}
.tm-crumbs a:hover { color: #fff; }

/* ——— About page ——— */
.tm-about-intro { background: #fff; }
.tm-split--about { gap: clamp(2rem, 5vw, 4rem); }
.tm-split__badge {
  position: absolute;
  top: 0; right: 0;
  background: var(--brand);
  color: #fff;
  padding: 1rem 1.25rem;
  text-align: center;
}
.tm-split__badge strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.75rem;
  line-height: 1;
}
.tm-split__badge span {
  display: block;
  margin-top: .35rem;
  font-size: .65rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  opacity: .85;
}
.tm-split__caption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 1.75rem;
  background: linear-gradient(transparent, rgba(18,23,42,.88));
  color: #fff;
}
.tm-split__caption strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.75rem;
  text-transform: uppercase;
}
.tm-split__caption span {
  display: block;
  margin-top: .25rem;
  font-size: .8rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
}
.tm-about-prose {
  margin-top: 1.5rem;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.75;
  max-width: 36rem;
}
.tm-about-prose p { margin: 0 0 1.1rem; }
.tm-about-prose strong { color: var(--steel); font-weight: 600; }
.tm-about-actions {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.tm-stats--flush { margin: 0; }
.tm-about-pillars { background: #fff; }
.tm-pillar-grid {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .tm-pillar-grid { grid-template-columns: repeat(3, 1fr); }
}
.tm-pillar {
  background: #fff;
  padding: 2rem 1.75rem;
  position: relative;
  min-height: 260px;
}
.tm-pillar__n {
  position: absolute;
  top: 1.25rem; right: 1.25rem;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 600;
  color: var(--line-strong);
}
.tm-pillar i {
  color: var(--brand);
  font-size: 1.35rem;
}
.tm-pillar h3 {
  margin: 1.5rem 0 0;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 1.25rem;
  color: var(--steel);
}
.tm-pillar p {
  margin: .85rem 0 0;
  color: var(--muted);
  line-height: 1.65;
}
.tm-about-gallery { padding: 0 0 4rem; background: #fff; }
.tm-about-gallery__grid {
  display: grid;
  gap: .5rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .tm-about-gallery__grid { grid-template-columns: repeat(3, 1fr); gap: .75rem; }
}
.tm-about-gallery figure {
  margin: 0;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--steel);
}
.tm-about-gallery img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .9s cubic-bezier(.22,1,.36,1);
}
.tm-about-gallery figure:hover img { transform: scale(1.05); }

.tm-page-hero--products { min-height: min(58vh, 520px); }
.tm-page-hero--products h1 {
  font-size: clamp(2.4rem, 6vw, 4rem);
  line-height: .95;
}

.tm-catalog { background: #fff; }
.tm-catalog-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.tm-catalog-row {
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  background: var(--mist);
  overflow: hidden;
  grid-template-columns: 1fr;
}
@media (min-width: 900px) {
  .tm-catalog-row {
    grid-template-columns: minmax(280px, 0.92fr) 1.08fr;
    min-height: 340px;
  }
  .tm-catalog-row--flip .tm-catalog-row__media { order: 2; }
  .tm-catalog-row--flip .tm-catalog-row__body { order: 1; }
}
.tm-catalog-row__media {
  position: relative;
  min-height: 240px;
  background: var(--steel);
  overflow: hidden;
}
.tm-catalog-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .9s cubic-bezier(.22,1,.36,1);
}
.tm-catalog-row:hover .tm-catalog-row__media img { transform: scale(1.04); }
.tm-catalog-row__index {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  font-family: var(--font-display);
  font-size: 3rem;
  font-weight: 600;
  line-height: 1;
  color: rgba(255,255,255,.88);
  text-shadow: 0 8px 24px rgba(0,0,0,.35);
}
.tm-catalog-row__body {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: #fff;
  display: flex;
  flex-direction: column;
}
.tm-catalog-row__body h3 {
  margin: .85rem 0 0;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--steel);
  line-height: 1.05;
}
.tm-catalog-series {
  margin: 1.35rem 0 0;
  display: grid;
  gap: .7rem;
}
.tm-catalog-series li {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.45;
}
.tm-catalog-series li span {
  width: .35rem;
  height: .35rem;
  margin-top: .55rem;
  flex-shrink: 0;
  background: var(--brand);
}
.tm-catalog-series__more {
  color: rgba(90,99,119,.75) !important;
  font-size: .875rem !important;
  padding-left: 1.1rem;
}
.tm-catalog-row__actions {
  margin-top: auto;
  padding-top: 1.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.tm-catalog-footer {
  margin-top: 3rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

/* ——— CMS blocks ——— */
.tm-blocks { background: #fff; }
.tm-block { padding-block: 2.5rem; border-bottom: 1px solid var(--line); }
.tm-block h2 {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 1.75rem;
  color: var(--steel);
  margin: 0 0 1rem;
}
.tm-block .prose { color: var(--muted); max-width: 48rem; }
.tm-block .prose p { margin: 0 0 1rem; }
.tm-feature-grid {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .tm-feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .tm-feature-grid { grid-template-columns: repeat(3, 1fr); } }
.tm-feature {
  background: #fff;
  padding: 1.5rem;
}
.tm-feature h3 { margin: 0 0 .5rem; color: var(--steel); font-size: 1.05rem; }
.tm-feature p { margin: 0; color: var(--muted); font-size: .92rem; }
.tm-feature__media {
  margin-bottom: 1rem;
  overflow: hidden;
  background: var(--mist);
  aspect-ratio: 16/10;
}
.tm-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tm-feature__media--logo {
  aspect-ratio: auto;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: transparent;
  overflow: visible;
  padding: 0;
  margin-bottom: 1.25rem;
}
.tm-feature__media--logo img {
  width: auto;
  height: auto;
  max-height: 56px;
  max-width: min(100%, 200px);
  object-fit: contain;
  object-position: left center;
}
.tm-feature--logo {
  display: flex;
  flex-direction: column;
}
.tm-logo-row {
  display: grid;
  gap: .75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) { .tm-logo-row { grid-template-columns: repeat(3, 1fr); } }
.tm-logo-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100px;
  padding: 1.5rem;
  border: 1px solid var(--line);
  background: #fff;
}
.tm-logo-tile img {
  max-height: 56px;
  max-width: 180px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.tm-checklist { display: grid; gap: .75rem; }
.tm-checklist li {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  color: var(--steel);
}
.tm-checklist i { color: var(--brand); margin-top: .2rem; }
.tm-faq details {
  border: 1px solid var(--line);
  padding: 1rem 1.25rem;
  margin-bottom: .5rem;
  background: #fff;
}
.tm-faq summary { cursor: pointer; font-weight: 600; color: var(--steel); }
.tm-faq p { margin: .75rem 0 0; color: var(--muted); }

/* ——— Footer ——— */
.tm-footer {
  position: relative;
  background:
    linear-gradient(180deg, rgba(196,30,58,.12), transparent 42%),
    var(--steel);
  color: rgba(255,255,255,.68);
  padding: 2.75rem 0 1.5rem;
  margin-top: auto;
  overflow: hidden;
}
.tm-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(520px 180px at 0% 0%, rgba(255,255,255,.06), transparent 60%),
    linear-gradient(90deg, transparent, rgba(255,255,255,.035) 50%, transparent);
  pointer-events: none;
}
.tm-footer > .container-page { position: relative; z-index: 1; }
.tm-footer-top {
  display: grid;
  gap: 1rem;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.tm-footer-logo { display: inline-block; width: fit-content; }
.tm-footer-logo img {
  height: 42px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.tm-footer-brand {
  margin: 0;
  color: #fff;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.tm-footer-desc {
  margin: 0;
  max-width: 36rem;
  font-size: .9rem;
  line-height: 1.55;
  color: rgba(255,255,255,.55);
}
.tm-footer-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
}
.tm-footer-actions .btn { width: 100%; justify-content: center; padding-inline: .75rem; }
.tm-footer .btn-outline-light {
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  background: transparent;
}
.tm-footer .btn-outline-light:hover {
  border-color: #fff;
  background: rgba(255,255,255,.08);
  color: #fff;
}
.tm-footer-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 1fr;
}
.tm-footer h4 {
  margin: 0 0 .75rem;
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(255,255,255,.4);
  font-size: .72rem;
  font-weight: 600;
}
.tm-footer-menu {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .15rem .75rem;
}
.tm-footer-menu a {
  display: block;
  padding: .4rem 0;
  color: rgba(255,255,255,.78);
  font-size: .92rem;
  border: 0 !important;
}
.tm-footer-menu a:hover { color: #fff; }
.tm-footer-contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .7rem;
}
.tm-footer-contact a,
.tm-footer-address {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  color: rgba(255,255,255,.78);
  font-size: .92rem;
  line-height: 1.45;
  border: 0 !important;
  padding: 0 !important;
}
.tm-footer-contact a:hover { color: #fff; }
.tm-footer-contact i {
  margin-top: .2rem;
  width: 1rem;
  text-align: center;
  color: var(--brand);
  font-size: .85rem;
  flex-shrink: 0;
}
.tm-footer-copy {
  margin-top: 1.75rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: .8rem;
  color: rgba(255,255,255,.42);
  display: flex;
  flex-wrap: wrap;
  gap: .85rem 1.25rem;
  align-items: center;
  justify-content: space-between;
}
.tm-footer-copy p { margin: 0; max-width: 36rem; }
.tm-footer-credit {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: rgba(255,255,255,.5);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 0 !important;
  padding: 0 !important;
}
.tm-footer-credit:hover { color: #fff; }
.tm-footer-credit img {
  height: 24px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  opacity: .9;
}
.tm-footer-credit:hover img { opacity: 1; }

@media (min-width: 720px) {
  .tm-footer { padding: 3.25rem 0 1.75rem; }
  .tm-footer-top {
    grid-template-columns: 1.4fr auto;
    align-items: end;
    column-gap: 2rem;
    row-gap: .85rem;
  }
  .tm-footer-logo { grid-column: 1; }
  .tm-footer-desc { grid-column: 1; }
  .tm-footer-actions {
    grid-column: 2;
    grid-row: 1 / span 2;
    grid-template-columns: 1fr;
    min-width: 11.5rem;
    align-self: center;
  }
  .tm-footer-grid {
    grid-template-columns: 1.1fr 1fr;
    gap: 2rem;
  }
  .tm-footer-menu { gap: .2rem 1.25rem; }
}

.tm-whatsapp {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 60;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  display: grid;
  place-items: center;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  font-size: 1.5rem;
}
.tm-whatsapp:hover { color: #fff; filter: brightness(1.05); }

/* ——— Contact ——— */
.tm-contact__grid {
  display: grid;
  gap: 3rem;
}
@media (min-width: 980px) {
  .tm-contact__grid { grid-template-columns: .85fr 1.15fr; align-items: start; }
}
.tm-contact__cards {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.tm-contact__card {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.35rem 1.4rem;
  background: #fff;
  color: inherit;
}
a.tm-contact__card:hover { color: var(--brand); }
.tm-contact__card i {
  color: var(--brand);
  margin-top: .2rem;
  width: 1.25rem;
  text-align: center;
}
.tm-contact__card strong {
  display: block;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 650;
}
.tm-contact__card span span {
  display: block;
  margin-top: .4rem;
  color: var(--steel);
  line-height: 1.55;
}
.tm-contact__wa {
  margin-top: 1rem;
  width: 100%;
  background: #25d366;
  color: #fff;
}
.tm-contact__wa:hover { filter: brightness(.96); color: #fff; }
.tm-contact__form-wrap {
  border: 1px solid var(--line);
  background: #fff;
  padding: 1.5rem;
}
@media (min-width: 640px) {
  .tm-contact__form-wrap { padding: 2rem; }
}
.tm-form__grid {
  display: grid;
  gap: 1rem;
}
@media (min-width: 640px) {
  .tm-form__grid { grid-template-columns: 1fr 1fr; }
}
.tm-field span {
  display: block;
  margin-bottom: .45rem;
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}
.tm-field input,
.tm-field select,
.tm-field textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: var(--mist);
  padding: .8rem 1rem;
  color: var(--steel);
  font: inherit;
  outline: none;
  transition: border-color .2s, background .2s;
}
.tm-field input:focus,
.tm-field select:focus,
.tm-field textarea:focus {
  border-color: var(--brand);
  background: #fff;
}
.tm-form__hint.is-ok { color: #1b7a3d; }
.tm-form__hint.is-err { color: #b42318; }
.tm-form__hint {
  margin: .85rem 0 0;
  font-size: .88rem;
  color: var(--muted);
}
.tm-contact__map {
  background: var(--mist);
  padding: 0 0 4rem;
}
.tm-contact__map-frame {
  overflow: hidden;
  border: 1px solid var(--line);
  background: #fff;
}
.tm-contact__map-frame iframe {
  display: block;
  width: 100%;
  height: 420px;
  border: 0;
}

/* ——— Services mosaic ——— */
.tm-service-mosaic {
  display: grid;
  gap: .75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .tm-service-mosaic { grid-template-columns: 1fr 1fr; }
}
.tm-service-tile {
  position: relative;
  min-height: 300px;
  overflow: hidden;
  background: var(--steel);
  display: flex;
  align-items: flex-end;
  color: #fff;
}
@media (min-width: 720px) {
  .tm-service-tile { min-height: 340px; }
  .tm-service-tile--wide { grid-column: 1 / -1; }
}
.tm-service-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .58;
  transition: opacity .5s, transform .7s;
}
.tm-service-tile:hover img {
  opacity: .42;
  transform: scale(1.04);
}
.tm-service-tile__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(18,23,42,.92), rgba(18,23,42,.45) 55%, rgba(18,23,42,.12));
}
.tm-service-tile__body {
  position: relative;
  z-index: 1;
  padding: 1.75rem;
}
.tm-service-tile__body i {
  color: var(--brand);
  font-size: 1.5rem;
  margin-bottom: 1rem;
  display: inline-block;
}
.tm-service-tile__body h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #fff;
}
.tm-service-tile__body p {
  margin: .75rem 0 0;
  max-width: 28rem;
  color: rgba(255,255,255,.68);
  line-height: 1.55;
  font-size: .95rem;
}
.tm-service-tile__body .link-arrow {
  margin-top: 1.25rem;
}

/* ——— Mobile polish (phones) ——— */
@media (max-width: 719px) {
  html, body { overflow-x: clip; }

  .container-page {
    width: min(1240px, calc(100% - 1.75rem));
  }

  .section-pad {
    padding-block: clamp(2.85rem, 8vw, 4.25rem);
  }

  .eyebrow { letter-spacing: .12em; }
  .eyebrow::before { width: 1.25rem; }
  .title-lg {
    font-size: clamp(1.85rem, 8.5vw, 2.55rem);
    line-height: 1.05;
  }

  /* Topbar / header */
  .tm-topbar {
    font-size: .68rem;
    letter-spacing: .04em;
  }
  .tm-topbar .container-page {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding-block: .42rem;
  }
  .tm-topbar-brands {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  .tm-topbar-brands span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .tm-topbar .container-page > div:last-child {
    flex-shrink: 0;
  }
  .tm-topbar .container-page > div:last-child a[href^="mailto"] {
    display: none;
  }
  .tm-topbar .container-page > div:last-child span { display: none; }
  .tm-logo img {
    height: 40px;
    max-width: min(168px, 46vw);
  }
  .tm-header-inner { min-height: 64px; }
  .tm-nav-mobile {
    max-height: calc(100svh - 7.5rem);
  }

  /* Home hero */
  .tm-hero {
    min-height: min(68svh, 560px);
  }
  .tm-hero__content {
    padding: 3.85rem 0 2.5rem;
  }
  .tm-hero h1 {
    margin-top: .9rem;
    font-size: clamp(2.4rem, 11.5vw, 3.15rem);
    line-height: .92;
  }
  .tm-hero__shade {
    background:
      linear-gradient(0deg, var(--steel) 5%, rgba(18,23,42,.84) 48%, rgba(18,23,42,.48) 100%),
      linear-gradient(90deg, rgba(18,23,42,.62), transparent 72%);
  }
  .tm-hero__rule { margin-top: 1.15rem; width: 4.5rem; }
  .tm-hero__lead {
    margin-top: 1.1rem;
    font-size: 1.02rem;
  }
  .tm-hero__text {
    margin-top: .7rem;
    font-size: .92rem;
    line-height: 1.55;
  }
  .tm-hero__actions {
    margin-top: 1.45rem;
    flex-direction: column;
  }
  .tm-hero__actions .btn {
    width: 100%;
    min-height: 3rem;
  }

  /* Inner page heroes */
  .tm-page-hero { min-height: 270px; }
  .tm-page-hero__content { padding: 3.5rem 0 1.85rem; }
  .tm-page-hero--about {
    min-height: min(52svh, 420px);
  }
  .tm-page-hero--about .tm-page-hero__content {
    padding: 4rem 0 2.15rem;
  }
  .tm-page-hero--about h1 {
    font-size: clamp(2.35rem, 10.5vw, 3rem);
  }
  .tm-page-hero--products {
    min-height: min(42svh, 340px);
  }
  .tm-page-hero--products h1 {
    font-size: clamp(2rem, 9vw, 2.65rem);
  }
  .tm-page-hero h1 {
    font-size: clamp(2.05rem, 9vw, 2.75rem);
  }
  .tm-page-hero__shade {
    background:
      linear-gradient(0deg, rgba(18,23,42,.96), rgba(18,23,42,.58) 55%, rgba(18,23,42,.42)),
      linear-gradient(90deg, rgba(18,23,42,.55), transparent 76%);
  }
  .tm-page-hero__lead {
    font-size: 1rem;
    margin-top: 1rem !important;
    max-width: 34rem;
    line-height: 1.55;
  }
  .tm-page-hero__meta {
    margin-top: 1.15rem;
    gap: .4rem .75rem;
    letter-spacing: .08em;
    font-size: .68rem;
  }
  .tm-page-hero__meta span:not(:last-child)::after {
    display: none;
  }
  .tm-crumbs {
    font-size: .75rem;
    gap: .35rem;
  }

  .tm-section-head {
    margin-bottom: 1.65rem;
    gap: .75rem;
  }
  .tm-section-head p {
    margin: 0;
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.55;
  }

  /* Brand rail on home */
  .tm-brand-grid--rail {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: min(78%, 250px);
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    gap: .65rem;
    padding-bottom: .4rem;
    margin-inline: -.15rem;
    padding-inline: .15rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tm-brand-grid--rail::-webkit-scrollbar { display: none; }
  .tm-brand-grid--rail .tm-brand-card {
    scroll-snap-align: start;
    min-height: 128px;
    padding: 1.2rem;
  }
  .tm-brand-grid--rail .tm-brand-card__logo {
    height: 44px;
    margin-bottom: .65rem;
  }
  .tm-brand-grid--rail .tm-brand-card__logo img {
    max-height: 36px;
    max-width: 120px;
  }
  .tm-brand-card {
    min-height: 128px;
    padding: 1.25rem;
  }
  .tm-brand-card__logo { height: 44px; margin-bottom: .65rem; }
  .tm-brand-card__logo img { max-height: 36px; max-width: 120px; }
  .tm-brand-card span { font-size: .88rem; }

  /* Stats denser 2×2 */
  .tm-stats-grid {
    padding-block: 2.35rem;
    gap: 1.45rem 1rem;
  }
  .tm-stat-value { font-size: clamp(2rem, 9vw, 2.65rem); }
  .tm-stat-label { margin-top: .55rem; font-size: .9rem; }
  .tm-stat-detail { font-size: .76rem; }

  /* Service / product framed tiles */
  .tm-service-card {
    min-height: 0;
    padding: 1.25rem;
  }
  .tm-service-card img {
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }
  .tm-service-card h3 { font-size: 1.12rem; }
  .tm-service-card p {
    font-size: .9rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .tm-project-card {
    min-height: 0;
    aspect-ratio: 5 / 4;
  }
  .tm-service-tile {
    min-height: 0;
    aspect-ratio: 5 / 4;
  }
  .tm-service-tile--wide {
    aspect-ratio: 16 / 11;
  }
  .tm-service-tile__body {
    padding: 1.2rem;
  }
  .tm-service-tile__body i {
    font-size: 1.25rem;
    margin-bottom: .7rem;
  }
  .tm-service-tile__body h2 {
    font-size: 1.15rem;
  }
  .tm-service-tile__body p {
    font-size: .88rem;
    margin-top: .55rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .tm-service-tile__body .link-arrow {
    margin-top: .9rem;
  }

  /* Process steps */
  .tm-step { padding: 1.25rem; }
  .tm-step__n {
    font-size: 1.45rem;
    top: .9rem;
    right: .9rem;
  }
  .tm-step h3 {
    margin-top: 0;
    padding-right: 2.4rem;
    font-size: 1.05rem;
  }
  .tm-step p { font-size: .9rem; }

  /* Split / about */
  .tm-split { gap: 1.65rem; }
  .tm-split__media { aspect-ratio: 4 / 3; }
  .tm-split__badge {
    padding: .75rem .9rem;
  }
  .tm-split__badge strong { font-size: 1.35rem; }
  .tm-split__caption { padding: 1.1rem; }
  .tm-split__caption strong { font-size: 1.25rem; }
  .tm-about-prose {
    font-size: .98rem;
    line-height: 1.65;
  }
  .tm-about-actions {
    flex-direction: column;
  }
  .tm-about-actions .btn {
    width: 100%;
    min-height: 3rem;
  }
  .tm-pillar {
    min-height: 0;
    padding: 1.4rem 1.25rem;
  }
  .tm-about-gallery { padding-bottom: 2.5rem; }
  .tm-about-gallery__grid {
    grid-template-columns: 1fr 1fr;
    gap: .35rem;
  }
  .tm-about-gallery figure:first-child {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 10;
  }
  .tm-about-gallery figure:not(:first-child) {
    aspect-ratio: 1;
  }
  .tm-about-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .tm-sectors { padding-block: 1.65rem; }
  .tm-sectors ul {
    gap: .5rem .85rem;
    font-size: .9rem;
  }

  /* Catalog / products */
  .tm-catalog-row__media { min-height: 200px; }
  .tm-catalog-row__index { font-size: 2.15rem; }
  .tm-catalog-row__body { padding-top: 1.15rem; }
  .tm-catalog-series li:nth-child(n+5):not(.tm-catalog-series__more) {
    display: none;
  }
  .tm-catalog-row__actions,
  .tm-catalog-footer,
  .tm-cta__actions {
    flex-direction: column;
  }
  .tm-catalog-row__actions .btn,
  .tm-catalog-footer .btn,
  .tm-cta__actions .btn {
    width: 100%;
    min-height: 3rem;
  }
  .tm-cta__inner {
    padding-block: 2.75rem;
    gap: 1.2rem;
  }
  .tm-cta h2 {
    font-size: clamp(1.85rem, 8vw, 2.4rem);
  }

  /* Contact */
  .tm-contact__grid { gap: 1.75rem; }
  .tm-contact__form-wrap { padding: 1.15rem; }
  .tm-form .title-lg {
    font-size: clamp(1.5rem, 6.8vw, 2rem);
  }
  .tm-form .btn,
  .tm-contact__wa {
    width: 100%;
    min-height: 3rem;
  }
  .tm-contact__map-frame iframe,
  .tm-contact__map-frame iframe[style] {
    height: 260px !important;
  }
  .tm-field input,
  .tm-field select,
  .tm-field textarea {
    font-size: 16px; /* iOS zoom guard */
  }

  /* Feature / CMS blocks */
  .tm-block { padding-block: 1.85rem; }
  .tm-block h2 { font-size: 1.45rem; }
  .tm-feature { padding: 1.2rem; }
  .tm-feature__media--logo {
    height: 56px;
    margin-bottom: 1rem;
  }
  .tm-feature__media--logo img {
    max-height: 44px;
    max-width: min(100%, 160px);
  }
  .tm-logo-row {
    grid-template-columns: 1fr 1fr;
    gap: .55rem;
  }

  /* Project gallery (projeler page) */
  .tm-project-grid {
    gap: .65rem;
  }

  /* Footer */
  .tm-footer {
    padding: 2.35rem 0 1.35rem;
  }
  .tm-footer-actions {
    grid-template-columns: 1fr;
  }
  .tm-footer-actions .btn { min-height: 2.9rem; }
  .tm-footer-menu {
    gap: .05rem .65rem;
  }
  .tm-footer-copy {
    margin-top: 1.45rem;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
  }

  .tm-whatsapp {
    width: 52px;
    height: 52px;
    right: max(.9rem, env(safe-area-inset-right));
    bottom: max(.9rem, env(safe-area-inset-bottom));
  }

  /* Bleed safety for full-width bands inside padded blocks */
  .tm-cta,
  .tm-stats {
    max-width: 100vw;
  }
}

/* Mid phones / small tablets */
@media (min-width: 480px) and (max-width: 719px) {
  .tm-hero__actions {
    flex-direction: row;
  }
  .tm-hero__actions .btn {
    width: auto;
    flex: 1;
  }
  .tm-service-mosaic {
    grid-template-columns: 1fr 1fr;
  }
  .tm-service-tile--wide {
    grid-column: 1 / -1;
  }
}


/* —— Brand / catalog page helpers (uses shared tm-page-hero) —— */
.tm-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.tm-page-hero--brand .tm-page-hero__content {
  padding-top: 5rem;
  padding-bottom: 2.75rem;
}
.tm-brand-logo-chip {
  display: inline-flex;
  align-items: center;
  margin-top: 1.15rem;
  padding: .9rem 1.25rem;
  background: #fff;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}
.tm-brand-logo-chip img {
  display: block;
  max-height: 44px;
  max-width: min(220px, 70vw);
  width: auto;
  height: auto;
  object-fit: contain;
}
.tm-brand-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: 1.5rem;
}
.tm-hero-brand-logos {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-top: 1.5rem;
}
.tm-hero-brand-logos__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  min-height: 52px;
  padding: .55rem .85rem;
  background: #fff;
  border: 1px solid rgba(255,255,255,.16);
}
.tm-hero-brand-logos__item img {
  max-height: 28px;
  max-width: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
}

/* —— Brand category grid —— */
.tm-brand-hub {
  padding: 3rem 0 4rem;
  background: linear-gradient(180deg, #e8edf4 0%, #fff 40%);
}
.tm-brand-hub__head {
  margin-bottom: 2rem;
  max-width: 40rem;
}
.tm-brand-hub__head h2 { margin: .35rem 0 .55rem; }
.tm-brand-hub__head p { margin: 0; color: var(--muted); }

.tm-brand-cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.25rem;
}
.tm-brand-cat {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tm-brand-cat:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(18,23,42,.1);
  border-color: rgba(200,16,46,.28);
}
.tm-brand-cat__media {
  aspect-ratio: 16/11;
  background: linear-gradient(160deg, #eef2f6, #d8e0e8);
  overflow: hidden;
  display: grid;
  place-items: center;
}
.tm-brand-cat__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  padding: 1rem;
  box-sizing: border-box;
  transition: transform .45s ease;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.7), transparent 50%),
    linear-gradient(160deg, #f4f7fa, #e4ebf2);
}
.tm-brand-cat:hover .tm-brand-cat__media img { transform: scale(1.04); }
.tm-brand-cat__ph { width: 100%; height: 100%; background: linear-gradient(135deg,#e9eef3,#d5dde6); }
.tm-brand-cat__body {
  display: flex;
  flex-direction: column;
  gap: .45rem;
  padding: 1.15rem 1.2rem 1.35rem;
  flex: 1;
}
.tm-brand-cat__meta {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--brand);
}
.tm-brand-cat h2 {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.25;
  letter-spacing: -.01em;
}
.tm-brand-cat p {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
  flex: 1;
}
.tm-brand-cat__cta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .65rem;
  font-size: .9rem;
  font-weight: 700;
  color: var(--brand);
}
.tm-brand-cat__cta i { font-size: .72rem; transition: transform .2s ease; }
.tm-brand-cat:hover .tm-brand-cat__cta i { transform: translateX(3px); }

@media (max-width: 700px) {
  .tm-page-hero--brand .tm-page-hero__content {
    padding-top: 3.5rem;
    padding-bottom: 2rem;
  }
  .tm-brand-logo-chip {
    margin-top: 1rem;
    padding: .75rem 1rem;
  }
  .tm-brand-logo-chip img { max-height: 36px; }
  .tm-hero-brand-logos__item {
    min-width: 96px;
    min-height: 46px;
  }
}

/* —— Product catalog hub panels (/urunler) —— */
.tm-cat-hub {
  padding: 2.5rem 0 4rem;
  background: linear-gradient(180deg, #e8edf4 0%, var(--mist) 35%, #fff 100%);
}
.tm-cat-hub__panels {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 1024px) {
  .tm-cat-hub__panels {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    align-items: stretch;
  }
}

.tm-brand-panel {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  overflow: hidden;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.tm-brand-panel:hover {
  border-color: rgba(200,16,46,.35);
  box-shadow: 0 18px 40px rgba(18,23,42,.1);
  transform: translateY(-3px);
}
.tm-brand-panel__media {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #d8dee8;
}
.tm-brand-panel__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.tm-brand-panel:hover .tm-brand-panel__media img { transform: scale(1.04); }
.tm-brand-panel__body {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  padding: 1.35rem 1.35rem 1.5rem;
  flex: 1;
}
.tm-brand-panel__badge {
  display: inline-block;
  margin-bottom: .75rem;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brand);
}
.tm-brand-panel__logo {
  display: flex;
  align-items: center;
  min-height: 48px;
  margin-bottom: .85rem;
}
.tm-brand-panel__logo img {
  max-height: 40px;
  max-width: 170px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: left center;
}
.tm-brand-panel__top p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.5;
}
.tm-brand-panel__meta {
  display: flex;
  gap: .85rem;
  margin-top: 1rem;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--steel);
  opacity: .65;
  font-weight: 600;
}
.tm-brand-panel__cats {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  flex: 1;
}
.tm-brand-panel__cats li { border-bottom: 1px solid var(--line); }
.tm-brand-panel__cats a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .7rem 0;
  font-size: .92rem;
  color: var(--steel);
  transition: color .2s ease;
}
.tm-brand-panel__cats a i {
  font-size: .7rem;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity .2s ease, transform .2s ease;
  color: var(--brand);
}
.tm-brand-panel__cats a:hover { color: var(--brand); }
.tm-brand-panel__cats a:hover i {
  opacity: 1;
  transform: translateX(0);
}
.tm-brand-panel__cta {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin-top: auto;
  font-size: .9rem;
  font-weight: 700;
  color: var(--brand);
}
.tm-brand-panel__cta i { font-size: .75rem; transition: transform .2s ease; }
.tm-brand-panel:hover .tm-brand-panel__cta i { transform: translateX(4px); }

/* —— Product catalog —— */
.tm-catalog-brand { display:flex; flex-direction:column; gap:.65rem; padding:1.25rem; min-height:100%; }
.tm-catalog-brand span { color:var(--muted); font-size:.95rem; line-height:1.45; }
.tm-catalog-brand em { font-style:normal; font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; color:var(--steel); opacity:.7; }
.tm-catalog-cats { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.25rem; }
.tm-catalog-cat { display:grid; grid-template-columns:110px 1fr; gap:1rem; align-items:center; padding:1rem; border:1px solid rgba(15,31,48,.1); background:#fff; text-decoration:none; color:inherit; transition:border-color .2s, transform .2s; }
.tm-catalog-cat:hover { border-color:var(--accent, #c45c26); transform:translateY(-2px); }
.tm-catalog-cat img { width:110px; height:80px; object-fit:cover; }
.tm-catalog-cat h2 { font-size:1.15rem; margin:0 0 .35rem; }
.tm-catalog-cat p { margin:0 0 .75rem; color:var(--muted); font-size:.92rem; }
.tm-catalog-cat { border-radius:2px; }
.tm-product-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.25rem; }
.tm-product-grid--rich { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.tm-product-card { display:flex; flex-direction:column; background:#fff; border:1px solid rgba(15,31,48,.1); text-decoration:none; color:inherit; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.tm-product-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(15,31,48,.12); border-color:rgba(196,92,38,.35); }
.tm-product-card__media { position:relative; overflow:hidden; background:linear-gradient(160deg,#eef2f6,#d8e0e8); }
.tm-product-card__media img,
.tm-product-card img,
.tm-product-card__ph { width:100%; aspect-ratio:4/3; object-fit:contain; object-position:center; background:linear-gradient(160deg,#f4f7fa,#e4ebf2); display:block; transition:transform .45s ease; padding:.75rem; box-sizing:border-box; }
.tm-product-card:hover .tm-product-card__media img { transform:scale(1.04); }
.tm-product-card__body { padding:1.1rem 1.15rem 1.35rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
.tm-product-card__model { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.tm-product-card h2 { font-size:1.08rem; margin:0; line-height:1.3; letter-spacing:-.01em; }
.tm-product-card p { margin:0; color:var(--muted); font-size:.9rem; flex:1; line-height:1.45; }
.tm-product-card__cta { display:inline-flex; align-items:center; gap:.45rem; margin-top:.65rem; font-size:.88rem; font-weight:600; color:var(--accent,#c45c26); }
.tm-product-card__cta i { font-size:.75rem; transition:transform .2s ease; }
.tm-product-card:hover .tm-product-card__cta i { transform:translateX(3px); }

/* Product detail */
.tm-pd { padding:1.5rem 0 3rem; background:
  radial-gradient(ellipse 70% 50% at 10% 0%, rgba(196,92,38,.06), transparent 55%),
  linear-gradient(180deg, #f7f9fb 0%, #fff 40%); }
.tm-pd__crumbs { display:flex; flex-wrap:wrap; gap:.4rem .55rem; align-items:center; font-size:.82rem; color:var(--muted); margin-bottom:1.75rem; }
.tm-pd__crumbs a { color:inherit; text-decoration:none; }
.tm-pd__crumbs a:hover { color:var(--accent,#c45c26); }
.tm-pd__hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(1.5rem,4vw,3.25rem); align-items:start; }
.tm-pd__gallery { position:sticky; top:5.5rem; }
.tm-pd__stage { background:linear-gradient(165deg,#f1f5f8,#e2e9f0); border:1px solid rgba(15,31,48,.08); aspect-ratio:1; display:grid; place-items:center; overflow:hidden; }
.tm-pd__stage img { width:100%; height:100%; object-fit:contain; padding:1.5rem; box-sizing:border-box; transition:opacity .25s ease; }
.tm-pd__stage-ph { width:100%; height:100%; background:linear-gradient(135deg,#e9eef3,#d5dde6); }
.tm-pd__thumbs { display:flex; gap:.55rem; margin-top:.75rem; overflow-x:auto; padding-bottom:.25rem; }
.tm-pd__thumb { flex:0 0 72px; width:72px; height:72px; padding:0; border:1px solid rgba(15,31,48,.12); background:#fff; cursor:pointer; overflow:hidden; }
.tm-pd__thumb img { width:100%; height:100%; object-fit:contain; padding:.35rem; box-sizing:border-box; display:block; }
.tm-pd__thumb.is-active { border-color:var(--accent,#c45c26); box-shadow:0 0 0 1px var(--accent,#c45c26); }
.tm-pd__summary { padding-top:.25rem; }
.tm-pd__brand { margin:0; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--accent,#c45c26); }
.tm-pd__cat { margin:.35rem 0 0; color:var(--muted); font-size:.92rem; }
.tm-pd__summary h1 { margin:.55rem 0 0; font-size:clamp(1.75rem,3.5vw,2.55rem); line-height:1.15; letter-spacing:-.02em; }
.tm-pd__model { display:inline-flex; align-items:center; gap:.5rem; margin:1rem 0 0; padding:.4rem .75rem; background:rgba(15,31,48,.04); border:1px solid rgba(15,31,48,.08); font-size:.88rem; }
.tm-pd__model span { font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; }
.tm-pd__lead { margin:1rem 0 0; font-size:1.08rem; color:var(--steel); line-height:1.45; }
.tm-pd__desc { margin:.85rem 0 0; color:var(--muted); line-height:1.6; max-width:38rem; }
.tm-pd__highlights { list-style:none; margin:1.35rem 0 0; padding:0; display:grid; gap:.55rem; }
.tm-pd__highlights li { position:relative; padding:.15rem 0 .15rem 1.35rem; line-height:1.45; }
.tm-pd__highlights li::before { content:""; position:absolute; left:0; top:.55em; width:.55rem; height:.55rem; background:var(--accent,#c45c26); clip-path:polygon(0 0,100% 50%,0 100%); }
.tm-pd__actions { display:flex; flex-wrap:wrap; gap:.75rem; margin:1.75rem 0 1rem; }
.tm-pd__note { margin:0; font-size:.85rem; color:var(--muted); max-width:34rem; line-height:1.5; }

.tm-pd-section { padding:3.25rem 0; }
.tm-pd-section--muted { background:linear-gradient(180deg,#f6f8fa,#eef2f6); }
.tm-pd-section__inner { max-width:920px; }
.tm-pd-section__head { margin-bottom:1.75rem; }
.tm-pd-section__head h2 { margin:.35rem 0 .5rem; }
.tm-pd-section__head p { margin:0; color:var(--muted); max-width:36rem; }
.tm-pd-prose { font-size:1.05rem; line-height:1.7; color:var(--steel); }
.tm-pd-prose p + p { margin-top:1rem; }

.tm-pd-specs { display:grid; border:1px solid rgba(15,31,48,.1); background:#fff; }
.tm-pd-specs__row { display:grid; grid-template-columns:minmax(140px,.9fr) 1.2fr; gap:1rem; padding:.95rem 1.15rem; border-bottom:1px solid rgba(15,31,48,.08); }
.tm-pd-specs__row:nth-child(even) { background:rgba(15,31,48,.025); }
.tm-pd-specs__row:last-child { border-bottom:0; }
.tm-pd-specs__row dt { margin:0; font-weight:600; color:var(--steel); font-size:.92rem; }
.tm-pd-specs__row dd { margin:0; color:var(--muted); line-height:1.45; }

.tm-pd-features { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.85rem 1.25rem; }
.tm-pd-features li { padding:1rem 1.1rem 1rem 2.4rem; position:relative; background:#fff; border:1px solid rgba(15,31,48,.09); line-height:1.45; }
.tm-pd-features li::before { content:""; position:absolute; left:1rem; top:1.2rem; width:.55rem; height:.55rem; border-radius:50%; background:var(--accent,#c45c26); }

.tm-page-hero__meta { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1.25rem; }
.tm-page-hero__meta span { font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.28); padding:.35rem .7rem; }

.tm-specs-table { width:100%; border-collapse:collapse; }
.tm-specs-table th, .tm-specs-table td { padding:.75rem 1rem; border-bottom:1px solid rgba(15,31,48,.1); text-align:left; vertical-align:top; }
.tm-specs-table th { width:42%; font-weight:600; color:var(--steel); background:rgba(15,31,48,.03); }
.tm-feature-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.65rem 1.25rem; list-style:none; padding:0; margin:0; }
.tm-feature-list li { padding-left:1.1rem; position:relative; }
.tm-feature-list li::before { content:""; position:absolute; left:0; top:.55em; width:.45rem; height:.45rem; border-radius:50%; background:var(--accent,#c45c26); }
.tm-nav .submenu .submenu { left:100%; top:0; margin-top:0; }
.tm-nav > li { position:relative; }
.tm-nav .submenu > li { position:relative; }
.tm-nav .submenu > li.has-children > a::after { content:"›"; float:right; margin-left:.5rem; opacity:.55; }
.tm-nav .submenu .submenu .submenu {
  left: 100%;
  top: 0;
  margin-top: 0;
  min-width: 12.5rem;
  max-height: min(70vh, 28rem);
  overflow-y: auto;
}
.tm-mnav-sublink--nested { padding-left: 1.35rem !important; opacity: .92; }
.tm-mnav-sublink--deep { padding-left: 2.1rem !important; font-size: .92em; opacity: .88; }
@media (max-width: 900px) {
  .tm-pd__hero { grid-template-columns:1fr; }
  .tm-pd__gallery { position:static; }
  .tm-pd-specs__row { grid-template-columns:1fr; gap:.25rem; }
  .tm-catalog-cat { grid-template-columns:1fr; }
  .tm-catalog-cat img { width:100%; height:140px; }
}
